/* Interaction layer. The editorial identity stays; motion never owns sticky layout. */
.hero-v2{--pointer-x:72%;--pointer-y:38%;background:radial-gradient(ellipse at 85% 20%,rgba(128,231,255,.025),transparent 50%),var(--bg);}
.hero-v2 .hero-layout{grid-template-columns:minmax(0,1.03fr) minmax(0,1fr);gap:clamp(30px,4vw,70px);align-items:center;}
.hero-v2 .hero-title{font-size:clamp(60px,6.55vw,112px);line-height:.97;letter-spacing:-.055em;}
.hero-v2 .hero-title em{color:var(--acid);}
.hero-v2 .hero-kicker{max-width:95%;line-height:1.65;}
.hero-v2 .hero-bottom{margin-top:28px;}
.hero-pointer-light{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 360px 300px at var(--pointer-x) var(--pointer-y),rgba(216,255,79,.085),transparent 75%);opacity:0;transition:opacity .6s;z-index:1;}
.motion-enabled .hero:hover .hero-pointer-light{opacity:1;}
.hero-lab.hero-constellation{border:1px solid rgba(216,255,79,.14);border-radius:24px;padding:0 22px 20px;background:linear-gradient(145deg,rgba(242,240,232,.025),transparent 50%);}
.constellation-kicker{border-bottom-color:rgba(216,255,79,.12);}
.constellation-kicker>b{font-size:10px;}
.hero-orbits{position:absolute;inset:0;pointer-events:none;display:grid;place-items:center;z-index:1;}
.hero-orbit-ring{position:absolute;width:250px;height:250px;border:1px solid rgba(216,255,79,.18);border-radius:50%;}
.hero-orbit-ring:nth-child(2){width:320px;height:320px;border-style:dashed;border-color:rgba(128,231,255,.14);}
.hero-orbit-ring:nth-child(3){width:370px;height:370px;border-color:rgba(216,255,79,.065);}
.hero-orbit-ring:before{content:'';position:absolute;top:50%;left:-3px;width:5px;height:5px;background:var(--acid);border-radius:50%;box-shadow:0 0 12px rgba(216,255,79,.65);}
.hero-orbit-ring:nth-child(2):before{left:auto;right:10%;top:18%;background:var(--cyan);}
.hero-orbit-ring:nth-child(3):before{display:none;}
.hero-constellation .constellation-core{width:112px;height:112px;background:radial-gradient(circle at 30% 25%,#243219,#0b0e0c 70%);box-shadow:0 0 0 9px rgba(216,255,79,.025),0 0 45px rgba(216,255,79,.10);}
.hero-constellation .constellation-node{background:rgba(12,16,14,.97);border-color:rgba(242,240,232,.22);border-radius:13px;}
.hero-constellation .constellation-node[aria-pressed=true]{border-color:var(--acid);background:#172010;box-shadow:0 0 26px rgba(216,255,79,.08);}
.hero-constellation .constellation-node:hover{border-color:var(--acid);}
.constellation-readout{min-height:205px;}
@media(min-width:901px){.constellation-stage{height:390px;}.hero-v2 .hero-layout{margin-bottom:10px;}}
.constellation-throughline{display:none;}
.constellation-lens>strong{font-size:31px;line-height:1.05;}
.constellation-lens>p{min-height:69px;}
.hero-interaction-note{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:0;padding:13px 0 0;color:var(--muted);font:400 10px/1.5 var(--mono);letter-spacing:.07em;text-transform:uppercase;border-top:1px solid var(--line);}
.hero-interaction-note i{color:var(--acid);font-style:normal;}
.hero-rail{position:relative;}
.hero-rail:before{content:'';position:absolute;left:0;top:-1px;width:64px;height:1px;background:var(--acid);}
.motion-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:44px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink);cursor:pointer;font:400 10px/1 var(--mono);text-transform:uppercase;letter-spacing:.03em;}
.motion-toggle>span:first-child{font-size:13px;color:var(--acid);}
.motion-toggle:disabled{opacity:.7;cursor:default;}
.cursor{position:fixed;left:0;top:0;width:0;height:0;pointer-events:none;z-index:10020;opacity:0;transition:opacity .15s;}
.cursor-dot,.cursor-ring,.cursor>span{position:absolute;left:0;top:0;transform:translate(-50%,-50%);pointer-events:none;}
.cursor-dot{width:5px;height:5px;border-radius:50%;background:var(--acid);}
.cursor-ring{width:32px;height:32px;border:1px solid rgba(216,255,79,.65);border-radius:50%;transition:width .22s,height .22s,background .22s,border-color .22s;}
.cursor>span{font:500 9px/1 var(--mono);letter-spacing:.04em;color:#090a0a;white-space:nowrap;opacity:0;}
.cursor[data-state=link] .cursor-ring{width:48px;height:48px;background:rgba(216,255,79,.06);}
.cursor[data-state=label] .cursor-ring{width:72px;height:72px;background:var(--acid);border-color:var(--acid);}
.cursor[data-state=label] .cursor-dot{opacity:0;}
.cursor[data-state=label]>span{opacity:1;}
.cursor-ready .cursor{opacity:1;}body.cursor-ready,body.cursor-ready a,body.cursor-ready button,body.cursor-ready summary{cursor:none;}
.page-curtain{position:fixed;inset:0;z-index:10010;pointer-events:none;display:none;grid-template-columns:1fr 1fr;}
.page-curtain.is-covering{display:grid;pointer-events:auto;}
.page-curtain>i{background:#151d10;transform:scaleY(0);}
.page-curtain>i:nth-child(2){background:#202c12;}
.page-curtain>span{position:absolute;inset:0;display:grid;place-items:center;color:var(--acid);font:500 13px/1 var(--mono);letter-spacing:.18em;opacity:0;}
.experience-item{transition:border-color .35s;}
.experience-item.is-reading{border-color:rgba(216,255,79,.5);}
.experience-item.is-reading .experience-date{color:var(--acid);}
.project-open span,.magnetic>span{display:inline-block;}
.project-visual:after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;border:1px solid transparent;background:radial-gradient(220px circle at var(--visual-x,50%) var(--visual-y,50%),rgba(216,255,79,.055),transparent 70%);}
.stack-marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,black 4%,black 96%,transparent);}
.stack-marquee-track{width:max-content;will-change:transform;}
.stack-marquee-track i{display:inline-block;flex-shrink:0;}
.stack-stage{position:relative;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:clamp(40px,5vw,88px);align-items:start;}
.stack-sticky{position:sticky;top:108px;align-self:start;transform:none!important;opacity:1!important;visibility:visible!important;padding:20px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#13180f,#0d100d 60%);}
.stack-sticky-top{display:flex;justify-content:space-between;align-items:center;gap:20px;}
.stack-sticky-top>span{letter-spacing:.12em;}
.stack-system-map{margin:22px 0;}
.stack-map-layer{appearance:none;width:100%;text-align:left;color:var(--ink);font-family:inherit;cursor:pointer;min-height:68px;padding:10px 12px;transform:none!important;}
.stack-map-layer b{text-transform:none;font:500 14px/1.3 var(--sans);letter-spacing:0;}
.stack-map-layer small{font:400 11px/1.45 var(--mono);letter-spacing:0;}
.stack-map-layer.is-active{transform:none;border-color:rgba(216,255,79,.6);background:rgba(216,255,79,.07);box-shadow:inset 2px 0 var(--acid);}
.stack-map-layer:hover{border-color:var(--acid);}
.stack-active-summary{min-height:218px;}
.stack-sticky h3{font-size:36px;line-height:1.05;letter-spacing:-.03em;margin:0 0 12px;}
.stack-active-summary>p{font-size:14px;line-height:1.65;color:var(--ink-soft);margin:0 0 16px;}
.stack-active-tools{gap:6px;}
.stack-active-tools span{font-size:10px;padding:5px 8px;}
.stack-panel{scroll-margin-top:130px;padding-bottom:25px;min-height:65vh;}
.stack-panel.is-active .stack-panel-head{border-color:rgba(216,255,79,.5);}
.stack-panel.is-active .stack-panel-head>span{color:var(--acid);}
.stack-sticky>small{font:400 10px/1.5 var(--mono);color:var(--muted);}
.case-reading-meter{height:2px;position:absolute;left:0;right:0;bottom:0;background:var(--acid);transform:scaleX(0);transform-origin:left;pointer-events:none;}
.case-study-nav{position:relative;}
.case-page-header{position:sticky;top:0;z-index:30;background:rgba(9,10,10,.93);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);}
.case-page .case-hero{position:relative;}
.case-page .case-hero:before{content:'';position:absolute;top:0;left:0;width:70px;height:2px;background:var(--acid);}
.case-next a{transition:color .25s,border-color .25s;}
.case-next a:hover{color:var(--acid);}
@media (min-width:1001px) and (max-height:800px){
 .stack-sticky{top:96px;padding:15px;}.stack-system-map{margin:14px 0;gap:7px;}.stack-map-layer{min-height:59px;padding:8px 10px;}.stack-sticky h3{font-size:28px;}.stack-active-summary{min-height:188px;}.stack-active-summary>p{font-size:13px;line-height:1.5;}.stack-active-tools{display:none;}
}
@media (max-width:1180px) and (min-width:901px){.hero-v2 .hero-layout{grid-template-columns:1fr 1fr;gap:30px;}.hero-lab.hero-constellation{padding:0 14px 14px;}.hero-v2 .hero-title{font-size:6.8vw;}.constellation-node{width:132px;}.hero-orbit-ring{width:195px;height:195px;}.hero-orbit-ring:nth-child(2){width:250px;height:250px;}.hero-orbit-ring:nth-child(3){width:300px;height:300px;}.constellation-kicker>b{display:none;}}
@media (max-width:1000px){
 .stack-stage{display:block;}.stack-sticky{position:sticky;top:88px;z-index:20;margin-bottom:32px;padding:12px;background:rgba(13,16,13,.98);backdrop-filter:blur(12px);}.stack-system-map{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding-left:0;margin:10px 0 0;}.stack-map-layer{grid-template-columns:1fr;gap:6px;padding:10px 7px;min-height:81px;border-radius:8px;}.stack-map-layer>span{font-size:10px;}.stack-map-layer b{font-size:12px;line-height:1.3;}.stack-map-layer small,.stack-map-layer:before,.stack-map-spine,.stack-active-summary,.stack-sticky>small{display:none;}.stack-sticky-top{font-size:10px;}.stack-panel{min-height:0;scroll-margin-top:245px;}.motion-toggle-label{display:none;}
}
@media (max-width:900px){
 .hero-v2 .hero-layout{display:block;}.hero-v2 .hero-title{font-size:clamp(52px,10vw,90px);}.hero-lab.hero-constellation{margin-top:34px;padding:8px 16px 16px;border-radius:16px;}.hero-orbits{display:none;}.constellation-readout{min-height:0;}.constellation-lens>p{min-height:0;}.hero-interaction-note{font-size:9px;}.hero-constellation .constellation-core{width:100%;height:auto;}.hero-v2 .hero-bottom{margin-top:22px;}.hero-rail{margin-top:32px!important;}
}
@media (max-width:480px){.hero-v2 .hero-title{font-size:clamp(47px,11.6vw,58px);line-height:1.02;}.header-actions{gap:4px;}.header-resume{padding:10px;gap:5px;}.motion-toggle{padding:8px;}.stack-map-layer b{font-size:11px;}.case-page-header .motion-toggle{display:none;}}
@media (prefers-reduced-motion:reduce){.cursor,.page-curtain{display:none!important;}.hero-pointer-light{display:none;}.stack-marquee-track{will-change:auto;}html{scroll-behavior:auto;}*,*:before,*:after{animation:none!important;transition:none!important;}}

/* Keep case-study actions reachable; animate the artwork, not overlapping hit surfaces. */
.project-stack .project-card{position:relative;top:auto!important;}
.project-reading-meter{position:absolute;top:0;left:0;right:0;height:2px;background:var(--acid);transform:scaleX(0);transform-origin:left;pointer-events:none;z-index:5;}
