/* v4 editorial layout. All visible typography and spacing overrides live here.
   Surface/color tokens are maintained in experience.css; no external fonts. */
:root { --hero-name-size:clamp(31px,2.7vw,39px); }
.hero {grid-template-columns:.94fr 1.18fr;column-gap:38px;padding-top:42px;}
.hero-copy {padding-block:16px 30px;}
.hero-identity {gap:18px;margin-block:28px 26px;}
.hero .hero-name {font-size:var(--hero-name-size);}
.hero .hero-line {font-size:clamp(24px,2.1vw,29px);line-height:1.3;}
.hero-description {font-size:15px;line-height:1.9;max-width:455px;}
.identity-subline {font-size:8px;letter-spacing:.025em;}
.avatar-block {width:88px;flex-basis:88px;}
.profile-avatar {width:88px;height:88px;border-radius:22px;}
.city-stage {height:530px;isolation:isolate;}
.city-stage::before {inset:16% 4%;background:radial-gradient(ellipse,var(--scene-halo),transparent 68%);}
.scene-controls,.scene-labels,.agent-label {display:none!important;}
.hero-footline {margin-top:8px;}
.section {padding-block:78px;}
.section-heading h2,.about-section h2,.publications-section .section-heading h2 {font-size:34px;letter-spacing:-.035em;line-height:1.3;}
.section-aside {font-size:13px;max-width:310px;line-height:1.8;}
.about-content p {font-size:15px;line-height:1.95;}
.research-card h3 {font-size:22px;}
.research-card p {font-size:13px;line-height:1.85;}
.research-tags span {font-size:9px;}
.publications-toolbar {margin-top:25px;}
.publication {display:block;padding:27px 0 28px;}
.publication:hover {background:transparent;border-bottom-color:var(--accent);}
.paper-meta {gap:11px;margin-bottom:10px;}
.venue-badge {font-size:10px;padding:3px 7px;}
.paper-status {font-size:11px;}
.paper-body h3 {font-size:20px;line-height:1.45;font-weight:530;max-width:1070px;}
.paper-authors {font-size:13px;margin-top:8px;line-height:1.85;}
.paper-summary {font-size:13px;line-height:1.8;margin-top:7px;max-width:1010px;}
.paper-links {gap:20px;margin-top:12px;}
.paper-links:empty {display:none;}
.paper-link {font-size:12px;}
.publication-note {font-size:11px;line-height:1.85;}
.journey-grid {grid-template-columns:1fr 1.08fr;gap:72px;}
.timeline h4,.experience-item h4 {font-size:17px;line-height:1.55;}
.education-detail,.education-location,.experience-detail,.experience-description {font-size:12px;line-height:1.85;}
.contact-section {padding-block:74px 65px;}
.contact-grid {gap:55px;align-items:center;}
.contact-grid h2 {font-family:var(--font);font-style:normal;font-size:clamp(32px,3vw,43px);font-weight:450;letter-spacing:-.04em;line-height:1.2;}
.contact-description {font-size:14px;line-height:1.9;max-width:460px;margin-top:20px;}
.email-link {font-size:19px;overflow-wrap:anywhere;}
.site-footer {font-size:10px;}
.footer-motion {font:inherit;padding:5px 0;background:none;color:var(--muted);border:0;}
.footer-motion:hover {color:var(--accent);}
@media(max-width:1190px){.hero{column-gap:22px;}.hero .hero-name{font-size:34px;}.avatar-block{width:76px;flex-basis:76px;}.profile-avatar{width:76px;height:76px;}.identity-subline{font-size:6px;}.city-stage{height:475px;}}
@media(max-width:980px){.hero{grid-template-columns:1fr 1.05fr;gap:14px;}.hero .hero-name{font-size:29px;}.hero-identity{gap:13px;}.avatar-block{width:65px;flex-basis:65px;}.profile-avatar{width:65px;height:65px;}.identity-subline{display:none;}.hero-description{font-size:14px;}.city-stage{height:420px;}.journey-grid{gap:40px;}.email-link{font-size:16px;}}
@media(max-width:740px){.hero{grid-template-columns:1fr;padding-top:28px;}.hero .hero-name{font-size:34px;}.avatar-block{width:80px;flex-basis:80px;}.profile-avatar{width:80px;height:80px;}.hero-identity{gap:16px;margin:25px 0;}.identity-subline{display:block;font-size:6px;}.hero-copy{padding-bottom:2px;}.hero-description{font-size:14px;max-width:520px;}.hero-visual.city-experience{margin-top:0;}.city-stage{height:345px;}.section{padding-block:56px;}.section-heading h2,.about-section h2,.publications-section .section-heading h2{font-size:29px;}.paper-body h3{font-size:18px;}.paper-authors,.paper-summary{font-size:12px;}.publication{padding-block:24px;}.paper-status{font-size:10px;}.journey-grid{display:block;}.contact-section{padding-block:56px;}.contact-grid{gap:26px;}.email-link{font-size:17px;}.site-footer{flex-wrap:wrap;gap:13px 23px;}.contact-grid h2{font-size:36px;}}
@media(max-width:370px){.hero .hero-name{font-size:29px;}.avatar-block{width:68px;flex-basis:68px;}.profile-avatar{width:68px;height:68px;}.city-stage{height:300px;}.hero-identity{gap:12px;}.identity-subline{font-size:5px;}}
@media print{.visitors-section,.footer-motion,.cursor-halo{display:none!important;}.publication{display:block!important;}.paper-body h3{font-size:13pt;}}

/* Functional local SVG cursor + a small inertial ring; no pointer lock. */
:root {--site-cursor:url("interaction/pointer-dark.svg") 12 12,crosshair;}
html[data-theme='light'] {--site-cursor:url("interaction/pointer-light.svg") 12 12,crosshair;}
.cursor-halo {position:fixed;left:0;top:0;width:0;height:0;z-index:10000;pointer-events:none;opacity:0;transition:opacity .2s;}
.cursor-halo::before {content:'';position:absolute;left:-15px;top:-15px;width:30px;height:30px;border:1px solid var(--accent);border-radius:50%;opacity:.32;transition:width .18s,height .18s,left .18s,top .18s,border-radius .2s,opacity .2s;}
.cursor-halo.is-visible {opacity:1;}
.cursor-halo.is-action::before {width:42px;height:42px;left:-21px;top:-21px;opacity:.65;}
.cursor-halo.is-scene::before {border-radius:6px;opacity:.48;}
.cursor-halo.is-down::before {width:20px;height:20px;left:-10px;top:-10px;opacity:.85;}
@media(hover:hover) and (pointer:fine){html,body,body a,body button,body summary,#city-canvas,#city-canvas.is-dragging,.map-marker{cursor:var(--site-cursor)!important;}input,textarea,[contenteditable='true']{cursor:url("interaction/pointer-text.svg") 12 12,text!important;}}
@media(hover:none),(pointer:coarse){.cursor-halo{display:none!important;}}
@media(forced-colors:active){.cursor-halo{display:none!important;}html,body,body a,body button,#city-canvas{cursor:auto!important;}}
