/* ============================================================
   shared/chrome.css — the single source of truth for how the
   NAV + MOBILE SHEET + FOOTER look. Pairs with shared/chrome.js
   (which owns the markup). Every page loads BOTH:
     <link rel="stylesheet" href="/shared/chrome.css">
     ...
     <script src="/shared/chrome.js"></script>
     <script src="/clarity-perspective/theme-toggle.js"></script>

   Depends only on the shared design tokens (--nav-glass, --ink,
   --accent, --display, --sans, --exhale, etc.) which each page's
   tokens file defines — so the chrome inherits each page's palette
   (paper, Deep Field, screening-room) automatically.

   To restyle the nav/footer anywhere, edit THIS FILE ONLY.
   Case is presentation: labels are authored sentence-case in
   chrome.js and lowercased here via text-transform.
   ============================================================ */

/* ---- header (glass) ---- */
.nav{position:sticky;top:0;z-index:100;backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);
  background:var(--nav-glass);border-bottom:1px solid var(--nav-border);box-shadow:var(--nav-shadow)}
.nav .inner{max-width:1120px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px 24px;gap:20px;flex-wrap:nowrap}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--nav-ink);flex:none}
.brand .mark{width:26px;height:26px;color:var(--nav-accent)}
.brand .mark svg{width:100%;height:100%}
.brand .name{font-family:var(--display);font-size:17px;font-weight:800;text-transform:lowercase;letter-spacing:.01em}
.nav .links{display:flex;align-items:center;gap:4px;font-family:var(--sans);text-transform:lowercase}
.nav .links a{position:relative;white-space:nowrap;text-decoration:none;color:var(--nav-ink-soft);font-size:13.5px;letter-spacing:.02em;padding:9px 12px;border-radius:var(--r-sm);transition:color .25s var(--exhale)}
.nav .links a:hover{color:var(--nav-ink)}
body:not(.dark) .nav .links a:hover{text-shadow:0 4px 5px rgba(60,45,22,.42)}
body.dark .nav .links a:hover{background:radial-gradient(closest-side at 50% 50%,color-mix(in srgb,var(--accent) 14%,transparent),transparent 100%)}
.nav .links a.current{color:var(--nav-ink)}
.nav .links a.current::after{content:"";position:absolute;left:14px;right:14px;bottom:3px;height:1.5px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--nav-hairline),transparent)}
.nav .cta{font-family:var(--sans);font-size:13px;text-decoration:none;color:var(--nav-ink);display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:var(--r-sm);flex:none;border:1px solid var(--nav-hairline);background:color-mix(in srgb,var(--nav-accent) 10%,transparent);transition:transform .3s var(--exhale),background .3s}
.nav .cta:hover{transform:translateY(-1px);background:color-mix(in srgb,var(--nav-accent) 18%,transparent)}
.cal-ico{position:relative;display:inline-flex;flex:none;width:17px;height:17px}
.cal-ico svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.cal-ico .live{position:absolute;top:-3px;right:-3px;width:7px;height:7px;border-radius:50%;background:#d64b3f;box-shadow:0 0 0 1.5px var(--page-bg);animation:livePulse 2.2s ease-in-out infinite}
@keyframes livePulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.82)}}
.nav .tools{display:flex;align-items:center;gap:6px;flex:none}
.icon-btn{all:unset;cursor:pointer;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--nav-ink-soft);transition:background .25s,color .25s}
.icon-btn:hover{background:color-mix(in srgb,var(--nav-ink) 7%,transparent);color:var(--nav-ink)}
.icon-btn svg{width:19px;height:19px}
.mbtn{all:unset;cursor:pointer;width:40px;height:40px;display:none;align-items:center;justify-content:center;color:var(--nav-ink);flex:none;position:relative;z-index:130}
.mbtn:hover{color:var(--nav-accent)}
.mbtn svg{width:24px;height:24px;overflow:visible}
.mbtn .bar{transform-origin:12px 12px;transition:transform .5s var(--breath)}
.mbtn .t{transform:translateY(-4px)}.mbtn .b{transform:translateY(4px)}
body.menu-open .mbtn .t{transform:translateY(0) rotate(45deg)}
body.menu-open .mbtn .b{transform:translateY(0) rotate(-45deg)}

/* ---- mobile sheet ---- */
.sheet{position:fixed;inset:0 0 auto 0;top:0;z-index:90;opacity:0;visibility:hidden;transition:opacity .7s ease,visibility 0s linear .7s;padding:88px 26px 40px;min-height:min(80vh,520px);background:var(--nav-glass);backdrop-filter:blur(22px) saturate(1.4);-webkit-backdrop-filter:blur(22px) saturate(1.4);border-bottom:1px solid var(--nav-border);box-shadow:var(--nav-shadow)}
body.menu-open .sheet{opacity:1;visibility:visible;transition:opacity .7s ease}
.sheet-links{display:flex;flex-direction:column;gap:2px;max-width:560px;margin:0 auto}
.sheet-links a{font-family:var(--display);font-size:clamp(26px,7vw,38px);font-weight:800;text-transform:lowercase;letter-spacing:-.01em;text-decoration:none;color:var(--nav-ink);padding:12px 4px;border-bottom:1px solid var(--nav-border);opacity:0;transform:translateY(10px);filter:blur(3px);transition:opacity .55s ease,transform .6s var(--breath),filter .55s ease,color .3s}
.sheet-links a:last-child{border-bottom:none}
.sheet-links a.current{color:var(--nav-accent);font-style:italic}
body.menu-open .sheet-links a{opacity:1;transform:none;filter:blur(0)}
.sheet-links a:nth-child(1){transition-delay:.28s}.sheet-links a:nth-child(2){transition-delay:.21s}.sheet-links a:nth-child(3){transition-delay:.14s}.sheet-links a:nth-child(4){transition-delay:.07s}.sheet-links a:nth-child(5){transition-delay:0s}
body.menu-open .sheet-links a:nth-child(1){transition-delay:.12s}body.menu-open .sheet-links a:nth-child(2){transition-delay:.19s}body.menu-open .sheet-links a:nth-child(3){transition-delay:.26s}body.menu-open .sheet-links a:nth-child(4){transition-delay:.33s}body.menu-open .sheet-links a:nth-child(5){transition-delay:.40s}
.sheet-cta{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:14px;margin:22px auto 0;padding:12px 20px;border-radius:var(--r-sm);border:1px solid var(--nav-hairline);background:color-mix(in srgb,var(--nav-accent) 12%,transparent);color:var(--nav-ink);text-decoration:none;max-width:max-content}

/* ---- footer ---- */
footer.site{backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);background:var(--nav-glass)}
footer.site .fwrap{max-width:1120px;margin:0 auto;padding:44px 24px 64px}
footer.site .ftop{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;flex-wrap:wrap;margin-bottom:26px}
footer.site .fbrand{display:flex;align-items:center;gap:11px}
footer.site .fbrand .mark{width:24px;height:24px;color:var(--nav-accent)}
footer.site .fbrand .name{font-family:var(--display);font-size:16px;font-weight:800;text-transform:lowercase}
footer.site nav.fnav{display:flex;flex-wrap:wrap;gap:8px 20px;font-family:var(--mono);font-size:13.5px;text-transform:lowercase}
footer.site nav.fnav a{color:var(--ink-soft);text-decoration:none;transition:color .25s}
footer.site nav.fnav a:hover{color:var(--accent)}
footer.site .fline{height:1px;background:linear-gradient(90deg,transparent,var(--nav-hairline),transparent);margin:6px 0 22px}
footer.site .fbottom{display:flex;justify-content:space-between;gap:14px 24px;flex-wrap:wrap;font-family:var(--mono);font-size:12.5px;color:var(--ink-faint)}
footer.site .fbottom .fine{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px}
footer.site .fbottom a{color:var(--ink-faint);text-decoration:none;border-bottom:1px solid var(--nav-border)}
footer.site .fbottom a:hover{color:var(--accent)}

/* ---- motion toggle (in the footer fine row) ---- */
.motion-toggle{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:12.5px;color:var(--ink-faint);transition:color .25s}
.motion-toggle:hover{color:var(--accent)}
.motion-toggle .mt-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);transition:background .25s,box-shadow .25s;box-shadow:0 0 6px color-mix(in srgb,var(--accent) 60%,transparent)}
.motion-toggle[aria-pressed="true"] .mt-dot{background:var(--ink-faint);box-shadow:none}

/* ---- responsive: keep 6 nav items + CTA from wrapping, then collapse to the sheet ---- */
@media(max-width:1040px) and (min-width:761px){
  .nav .inner{gap:14px;padding:14px 20px}
  .nav .links{gap:2px}
  .nav .links a{padding:9px 9px;font-size:13px;letter-spacing:.01em}
  .nav .links a.current::after{left:9px;right:9px}
}
@media(max-width:760px){
  .nav .links{display:none}
  .mbtn{display:flex}
  .nav .cta .lbl{display:none}
  .nav .cta{padding:9px 10px;gap:0}
}
@media(max-width:400px){
  .nav .inner{padding:12px 14px;gap:10px}
  .brand .name{font-size:15px}
}
@media(max-width:380px){.nav .cta{display:none}}

/* Motion off → still the chrome (nav/footer never animate anyway; page scenes honor body.reduced themselves) */
@media(prefers-reduced-motion:reduce){.cal-ico .live{animation:none}}
body.reduced .cal-ico .live{animation:none}
