/* Hallmark · pre-emit critique: P4 H5 E4 S5 R5 V4
 * SatNav opening · public visual reference: VGGT · local rebuild, step 1 */
@font-face{font-family:SatNavSans;src:url('assets/fonts/noto-sans-400.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:SatNavSans;src:url('assets/fonts/noto-sans-600.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
:root{--paper:#fff;--ink:#363636;--secondary:#555;--author:#1687ba;--button:#363636;--button-hover:#242424;--focus:#167eb0;--font-heading:SatNavSans,'Segoe UI',sans-serif;--font-body:SatNavSans,'Segoe UI',sans-serif}
*{box-sizing:border-box}
html,body{margin:0;overflow-x:clip}
body{background:var(--paper);color:var(--ink);font-family:var(--font-body);line-height:1.5}
.publication-header{max-width:1120px;margin:0 auto;padding:48px 28px 64px;text-align:center}
h1{max-width:1060px;margin:0 auto 28px;font-family:var(--font-heading);font-size:clamp(30px,3.6vw,46px);font-style:normal;font-weight:600;letter-spacing:-1.4px;line-height:1.18;overflow-wrap:anywhere;text-wrap:balance}
.title-line{display:block}
.project-name{display:block;font-size:48px;line-height:1.15;margin-bottom:14px}
.paper-subtitle{display:block;font-size:clamp(25px,3.1vw,36px);line-height:1.25;letter-spacing:-.85px}
.authors{display:flex;flex-wrap:wrap;justify-content:center;gap:5px 20px;max-width:940px;margin:0 auto;font-size:20px;line-height:1.6}
.author{white-space:nowrap}
.author-name{color:var(--author)}
sup{position:relative;vertical-align:super;font-size:.67em;line-height:0;margin-left:1px}
.affiliations{display:flex;flex-wrap:wrap;justify-content:center;gap:3px 20px;margin:13px auto 0;max-width:920px;color:var(--ink);font-size:17px;line-height:1.7}
.affiliations p{margin:0;white-space:nowrap}
.contribution{margin:10px 0 0;color:var(--secondary);font-size:13px}
.publication-links{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin-top:22px}
.resource-tag{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:41px;padding:8px 18px;border-radius:999px;background:var(--button);color:var(--paper);font-size:16px;line-height:1.5;text-decoration:none;white-space:nowrap;transition:background-color .15s}
.resource-tag:hover{background:var(--button-hover)}
.resource-tag:active{background:var(--ink)}
.resource-tag:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.resource-tag svg{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(min-width:1000px){.authors{max-width:740px}}
@media(max-width:767px){.publication-header{padding:36px 22px 48px}h1{font-size:34px;letter-spacing:-.9px;margin-bottom:24px}.title-line{display:inline}.authors{font-size:18px;gap:5px 16px}.affiliations{font-size:15px}.publication-links{margin-top:20px}}
@media(max-width:420px){.publication-header{padding:30px 18px 40px}h1{font-size:29px;letter-spacing:-.65px}.authors{font-size:16px;gap:7px 13px}.affiliations{font-size:14px;margin-top:16px}.contribution{font-size:12px}.publication-links{gap:8px;max-width:290px;margin-inline:auto}.resource-tag{font-size:14px;min-height:40px;padding:8px 16px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(max-width:767px){.project-name{font-size:42px;margin-bottom:12px}.paper-subtitle{font-size:clamp(23px,4vw,30px);letter-spacing:-.5px}}

.resource-tag .brand-icon{fill:currentColor;stroke:none}
.platform-emoji{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;font-size:18px;line-height:1;flex:none}

.publication-abstract{width:min(860px,calc(100% - 48px));margin:0 auto 80px}
.publication-abstract h2{margin:0 0 24px;text-align:center;font-family:var(--font-heading);font-size:32px;line-height:1.25;font-weight:600;letter-spacing:-.5px}
.publication-abstract p{margin:0;font-size:17px;line-height:1.8;text-align:left}
@media(max-width:600px){.publication-abstract{width:calc(100% - 40px);margin-bottom:48px}.publication-abstract h2{font-size:28px;margin-bottom:20px}.publication-abstract p{font-size:16px;line-height:1.75}}

.publication-venue{margin:-6px auto 26px;font-size:clamp(21px,2.4vw,28px);line-height:1.6;color:var(--ink);font-weight:400}
