/* Mobile navigation: technical framing, measured motion, generous touch targets. */
.mobile-header-rail{display:none}
@media(max-width:900px){
 html{scroll-padding-top:108px}
 .site-header,.site-header.is-scrolled{height:96px;padding-top:8px;padding-bottom:12px;gap:14px;background:rgba(12,27,35,.9);backdrop-filter:blur(18px);border-bottom-color:#5a9ebd45}
 .menu-open .site-header{background:#0d202b;border-bottom-color:#5a9ebd70}
 .mobile-header-rail{position:absolute;inset:auto var(--pad) 0;height:13px;display:flex;align-items:center;gap:14px;pointer-events:none;font:6px/1 ui-monospace,monospace;letter-spacing:.12em;color:#8fb0c1}
 .mobile-header-rail>span{white-space:nowrap;display:flex;align-items:center;gap:6px}
 .mobile-header-rail i{display:block;width:3px;height:3px;background:var(--orange);box-shadow:0 0 7px #ec812877}
 .mobile-header-rail>b{flex:1;height:1px;background:#355466;position:relative;overflow:hidden}
 .mobile-header-rail>b:after{content:'';position:absolute;inset:0 auto 0 -30%;width:30%;background:linear-gradient(90deg,transparent,#69c4dd);animation:nav-rail-current 6s ease-in-out infinite}
 .menu-toggle{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;flex-shrink:0;width:54px;height:46px;padding:8px 10px 16px;margin-left:auto;border:1px solid #6197ad77;background:linear-gradient(140deg,#244b5c66,#0b1e2900);clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px));transition:border-color .25s,background .25s}
 .menu-toggle:before{content:'';position:absolute;top:0;left:0;width:13px;height:2px;background:var(--orange);box-shadow:0 0 8px #ec812866}
 .menu-toggle span{display:block;width:24px;height:1px;margin:0;background:#d4e9ef;transform-origin:center;transition:transform .35s cubic-bezier(.2,.8,.2,1),width .35s,background .35s}
 .menu-toggle span:nth-child(2){width:17px;align-self:flex-end;margin-right:4px;background:var(--orange)}
 .menu-toggle .menu-toggle-label{position:absolute;bottom:5px;left:0;right:0;font:500 6px/1 ui-monospace,monospace;letter-spacing:.13em;text-align:center;color:#a5c9d8}
 .menu-toggle[aria-expanded=true]{border-color:var(--orange);background:#244b5c55}
 .menu-open .menu-toggle span:first-child{transform:translateY(3px) rotate(45deg)}
 .menu-open .menu-toggle span:nth-child(2){width:24px;margin-right:0;align-self:center;transform:translateY(-3px) rotate(-45deg)}
 .menu-toggle:focus-visible{outline-offset:-5px}
 .mobile-menu{inset:96px 0 auto;height:calc(100vh - 96px);height:calc(100dvh - 96px);padding:23px var(--pad) max(20px,env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:flex-start;gap:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;isolation:isolate;background:radial-gradient(ellipse at 90% 20%,#17465b77,transparent 60%),linear-gradient(125deg,#0d202b,#0c1820);border-top:1px solid #91cde312;transition:opacity .3s,visibility .3s}
 .mobile-menu:before{content:'';position:absolute;inset:0;z-index:-1;background-image:linear-gradient(#91cde308 1px,transparent 1px),linear-gradient(90deg,#91cde308 1px,transparent 1px);background-size:36px 36px;pointer-events:none}
 .mobile-menu:after{content:'';position:absolute;inset:-15% 0 auto;height:12%;background:linear-gradient(0deg,transparent,#7dd6ec09,transparent);pointer-events:none;opacity:0;z-index:-1}
 .menu-open .mobile-menu:after{animation:nav-open-scan 1.4s ease-out both}
 .mobile-menu-schema{position:absolute;right:-26px;top:0;width:min(80%,390px);height:100%;min-height:500px;z-index:-1;stroke:#6db3cd;stroke-width:.7;opacity:.15;pointer-events:none}
 .mobile-menu-schema circle{fill:#10232e;stroke:var(--orange);stroke-width:1.5}
 .mobile-menu-current{stroke:var(--orange);stroke-width:1.3;stroke-dasharray:18 200;animation:nav-pipe-current 9s linear infinite;animation-play-state:paused}
 .menu-open .mobile-menu-current{animation-play-state:running}
 .mobile-menu-topline{display:flex;justify-content:space-between;gap:20px;margin-bottom:19px;font:7px/1.5 ui-monospace,monospace;letter-spacing:.12em;color:#7197ac}
 .mobile-menu-topline>span:first-child{color:var(--orange)}
 .mobile-menu-links{position:relative;flex:0 0 auto;border-top:1px solid #6ea3bb40}
 .mobile-menu a.mobile-menu-link{position:relative;display:flex;align-items:center;gap:20px;min-height:clamp(54px,8svh,82px);padding:10px 3px;border-bottom:1px solid #6ea3bb35;font:inherit;opacity:0;transform:translateX(-14px);transition:opacity .35s,transform .4s cubic-bezier(.2,.7,.2,1),background .2s}
 .menu-open .mobile-menu a.mobile-menu-link{opacity:1;transform:translateX(0);transition-delay:var(--nav-delay,0ms),var(--nav-delay,0ms),0ms}
 .mobile-link-number{font:8px/1 ui-monospace,monospace;color:#7397aa;align-self:flex-start;margin-top:10px}
 .mobile-link-copy{display:block;flex:1;min-width:0}
 .mobile-link-copy strong{display:block;font:500 clamp(29px,5vw,42px)/1.08 var(--head);color:#e8f0f4;letter-spacing:.01em}
 .mobile-link-copy small{display:block;margin-top:5px;font:6px/1.5 ui-monospace,monospace;letter-spacing:.08em;color:#86a6b8}
 .mobile-link-arrow{display:grid;place-items:center;width:24px;height:24px;border:1px solid #5a899f45;font:17px/1 var(--body);color:#7ba6bb;transition:color .2s,border-color .2s,transform .25s}
 .mobile-menu a.mobile-menu-link:before{content:'';position:absolute;left:-12px;top:50%;width:3px;height:18px;margin-top:-9px;background:var(--orange);opacity:0;transform:scaleY(.3);transition:opacity .2s,transform .25s}
 .mobile-menu a.mobile-menu-link[aria-current],.mobile-menu a.mobile-menu-link:hover{background:linear-gradient(90deg,#599db00e,transparent)}
 .mobile-menu-link[aria-current] .mobile-link-number,.mobile-menu-link[aria-current] .mobile-link-arrow{color:var(--orange);border-color:#ec812866}
 .mobile-menu a.mobile-menu-link[aria-current]:before,.mobile-menu a.mobile-menu-link:focus-visible:before{opacity:1;transform:scaleY(1)}
 .mobile-menu a:focus-visible{outline-offset:3px}
 .mobile-menu-bottom{margin-top:auto;padding-top:24px;opacity:0;transform:translateY(8px);transition:opacity .4s,transform .4s}
 .menu-open .mobile-menu-bottom{opacity:1;transform:translateY(0);transition-delay:.26s}
 .mobile-menu-disciplines{display:flex;gap:15px;margin-bottom:14px;font:6px/1.5 ui-monospace,monospace;letter-spacing:.08em;color:#759bad}
 .mobile-menu-disciplines span:before{content:'+';margin-right:5px;color:var(--orange)}
 .mobile-menu a.mobile-menu-email{display:flex;justify-content:space-between;align-items:center;gap:15px;min-height:52px;padding:11px 13px;border:1px solid #46708477;background:#183b4c55;font:7px/1.5 ui-monospace,monospace;letter-spacing:.08em;color:#e0edf3}
 .mobile-menu-email small{display:block;margin-top:4px;font:10px/1.5 var(--body);letter-spacing:0;color:#a3c2d3}
 .mobile-menu-email b{font:24px/1 var(--head);color:var(--orange)}
 .mobile-menu-signoff{display:flex;justify-content:space-between;gap:12px;margin-top:16px;font:5.5px/1.5 ui-monospace,monospace;letter-spacing:.07em;color:#5e8398}
 .menu-open .film-timeline,.menu-open .chapter-nav{pointer-events:none}
}
@media(max-width:360px){
 .site-header,.site-header.is-scrolled{padding-left:20px;padding-right:20px}
 .site-header .brand>img{width:54px;height:54px}
 .site-header .brand-wordmark{width:124px}
 .mobile-header-rail{left:20px;right:20px}
 .mobile-menu a.mobile-menu-link{gap:15px}
 .mobile-link-copy strong{font-size:29px}
 .mobile-link-copy small{font-size:5.5px}
}
@media(max-height:650px) and (max-width:900px){
 .mobile-menu{padding-top:16px;padding-bottom:max(16px,env(safe-area-inset-bottom))}
 .mobile-menu-topline{margin-bottom:12px}
 .mobile-menu a.mobile-menu-link{min-height:52px;padding-top:8px;padding-bottom:8px}
 .mobile-link-copy strong{font-size:28px}
 .mobile-link-copy small{margin-top:3px}
 .mobile-menu-bottom{padding-top:18px}
 .mobile-menu-disciplines{margin-bottom:10px}
 .mobile-menu-signoff{margin-top:12px}
}
@keyframes nav-rail-current{0%,20%{left:-30%}80%,100%{left:100%}}
@keyframes nav-open-scan{0%{transform:translateY(0);opacity:0}15%{opacity:1}100%{transform:translateY(900%);opacity:0}}
@keyframes nav-pipe-current{to{stroke-dashoffset:-872}}
@media(prefers-reduced-motion:reduce){
 .mobile-header-rail>b:after,.mobile-menu-current,.mobile-menu:after{animation:none!important}
 .mobile-menu,.mobile-menu a,.mobile-menu-bottom,.menu-toggle,.menu-toggle span{transition:none!important}
}
