
/* Mobile header: burger lines <-> cross via CSS, slide-in menu, auto-hide on scroll. */
@media (max-width:820px){
.site-header{transition:transform .35s var(--ease-out-quart,ease),box-shadow .2s ease}
.site-header.nav-hidden{transform:translateY(-110%)}
.header-inner{flex-wrap:wrap;gap:10px}
.nav-toggle{display:inline-flex;align-items:center;gap:10px;min-height:44px;min-width:44px;padding:6px 10px;border:0;background:none;font:inherit;cursor:pointer;color:var(--text,#1d1d1f)}
.nav-toggle-box{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:24px;height:18px}
.nav-toggle-line{display:block;height:2px;border-radius:1px;background:currentColor;transition:transform .3s var(--ease-out-quart,ease),opacity .2s ease;width:100%;transform-origin:center}
.nav-toggle.is-open .nav-toggle-line:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.is-open .nav-toggle-line:nth-child(2){opacity:0;transform:scaleX(.2)}
.nav-toggle.is-open .nav-toggle-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-toggle-label{font-size:13px;font-weight:600}
.site-nav{position:fixed;top:0;right:0;bottom:0;width:min(78vw,320px);flex-direction:column;align-items:stretch;gap:0;padding:84px 22px 22px;background:rgba(255,255,255,.96);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-left:1px solid var(--hairline,rgba(0,0,0,.07));box-shadow:var(--sh-overlay,0 18px 50px rgba(0,0,0,.18));transform:translateX(100%);visibility:hidden;transition:transform .35s var(--ease-out-quart,ease),visibility .35s;z-index:60;margin:0}
.site-nav.is-open{transform:translateX(0);visibility:visible}
.site-nav a{padding:14px 4px;border-bottom:1px solid var(--hairline,rgba(0,0,0,.07));min-height:48px}
.site-nav .button{margin-top:18px;justify-content:center}
.site-header{z-index:70}
.nav-hidden .site-nav{}
}
@media (min-width:821px){.nav-toggle{display:none}}
@media (prefers-reduced-motion:reduce){.site-header,.site-nav,.nav-toggle-line{transition:none}}

/* Fullscreen mobile menu with visible close button. */
@media (max-width:820px){
.site-nav{width:100vw;max-width:none;padding:76px 24px 24px;transform:translateY(-100%);border-left:0;border-top:1px solid var(--hairline,rgba(0,0,0,.07))}
.site-nav.is-open{transform:translateY(0)}
.nav-close{position:absolute;top:16px;right:20px;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--hairline,rgba(0,0,0,.1));background:rgba(255,255,255,.85);cursor:pointer}
.nav-close:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.header-user{margin-left:auto}
.nav-toggle{margin-left:8px}
}
@media (min-width:821px){.nav-close{display:none}}
