/* The Tilted Gent — shared chrome for every site page (not the report documents).
   Load this first; a page's own stylesheet comes after it and may extend, never redefine, what is here.
   Palette: Fremont Street (reference copy and roles in assets/palettes/fremont-street.css). */

:root{
  --bg:#06050B; --bg2:#0B0913; --card:#120E1C; --card2:#1A1428; --line:#2C2440;
  --cream:#F1E6CF; --dim:#A399A6; --dim2:#867D8C;
  --gold:#D9A85C; --gold-hi:#FFD57A; --gold-deep:#B8863E;
  --gold-line:rgba(217,168,92,.20); --gold-line-soft:rgba(217,168,92,.11);
  --pink:#FF3E9A; --pink-neon:#FF77C0; --pink-deep:#7A1449;
  --cyan:#1FCBE3; --cyan-neon:#6FF2FF; --cyan-deep:#0A4F5C;
  --violet:#7C4DFF; --violet-neon:#B79CFF; --violet-deep:#2E1A66;
  --green:#3FA46A; --red:#E0384F; --red-neon:#FF5C70; /* data only */
  --glow-gold:0 0 14px rgba(255,201,94,.35), 0 0 40px rgba(255,201,94,.16);
  --glow-pink:0 0 14px rgba(255,62,154,.55), 0 0 40px rgba(255,62,154,.25);
  --glow-cyan:0 0 14px rgba(31,203,227,.50), 0 0 40px rgba(31,203,227,.22);
  --serif:'Cinzel',Georgia,serif; --sans:'DM Sans',Arial,sans-serif; --mono:'JetBrains Mono','Courier New',monospace;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--cream);font-family:var(--sans);line-height:1.65;}
.serif{font-family:var(--serif);}
.mono{font-family:var(--mono);}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}
a{color:inherit;text-decoration:none;}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;}
img,svg{display:block;max-width:100%;height:auto;}
::selection{background:var(--gold);color:#140B0C;}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
@media(max-width:560px){.wrap{padding:0 18px;}}

/* ===== site nav: the same rooms on every page (tools/chrome.py) ===== */
nav.site{position:sticky;top:0;z-index:50;background:rgba(6,5,11,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--gold-line);}
nav.site .navrow{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 28px;}
.navbrand{display:flex;align-items:center;gap:13px;min-width:0;}
.navbrand img{width:46px;height:46px;flex-shrink:0;}
.navword{font-family:var(--serif);font-weight:700;font-size:17px;letter-spacing:3px;color:var(--gold);white-space:nowrap;}
.navword .tilt{display:inline-block;transform:rotate(-5deg) translateY(-1px);transform-origin:50% 60%;color:var(--gold-hi);}
nav.site .navlinks{display:flex;gap:24px;align-items:center;font-size:14px;font-weight:500;color:var(--dim);}
nav.site .navlinks a{padding:8px 0;transition:color .15s;}
nav.site .navlinks > a,nav.site .navmenu summary{white-space:nowrap;}
nav.site .navlinks a:hover{color:var(--cyan-neon);}
nav.site .navlinks a[aria-current="page"]{color:var(--gold-hi);box-shadow:inset 0 -2px 0 var(--gold);}
nav.site .navlinks .cta{color:#140B0C;background:var(--gold);padding:9px 18px;border-radius:6px;font-weight:700;box-shadow:var(--glow-gold);}
nav.site .navlinks .cta:hover{background:var(--gold-hi);color:#140B0C;}
/* sections that open a panel of links: native <details>, so they work without JS (site.js adds the niceties) */
nav.site .navmenu{position:relative;}
nav.site .navmenu summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:7px;padding:8px 0;transition:color .15s;}
nav.site .navmenu summary::-webkit-details-marker{display:none;}
nav.site .navmenu summary::after{content:'';width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s;}
nav.site .navmenu[open] summary::after{transform:translateY(1px) rotate(-135deg);}
nav.site .navmenu summary:hover{color:var(--cyan-neon);}
nav.site .navmenu summary.on{color:var(--gold-hi);box-shadow:inset 0 -2px 0 var(--gold);}
nav.site .navmenu summary:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;}
nav.site .navpanel{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);z-index:60;min-width:190px;
  display:grid;gap:26px;padding:18px 24px 14px;background:var(--card);border:1px solid var(--line);border-radius:10px;
  box-shadow:0 18px 44px rgba(0,0,0,.6),0 0 32px rgba(124,77,255,.14);}
nav.site .navpanel.navwide{grid-template-columns:repeat(2,minmax(170px,auto));}
nav.site .navpanel.navwide{grid-template-rows:auto 1fr;}
nav.site .navpanel.navwide .navgroup:first-child{grid-row:span 2;}   /* a third group stacks under the second */
nav.site .navgh{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin:0 0 8px;}
nav.site .navgroup ul{list-style:none;margin:0;padding:0;}
nav.site .navgroup a{display:block;padding:6px 0;color:var(--cream);white-space:nowrap;}
nav.site .navgroup a:hover{color:var(--cyan-neon);}
nav.site .navgroup a[aria-current="page"]{color:var(--gold-hi);box-shadow:none;}
nav.site .soon{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:1px;text-transform:uppercase;padding:1px 6px;margin-left:3px;
  border:1px solid var(--line);border-radius:4px;color:var(--dim2);vertical-align:1px;}
.navtoggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;padding:0;
           background:transparent;border:1px solid var(--gold-line);border-radius:10px;cursor:pointer;transition:border-color .15s, box-shadow .15s;}
.navtoggle:hover{border-color:var(--gold);box-shadow:var(--glow-gold);}
.navtoggle .bars{display:block;position:relative;width:20px;height:2px;background:var(--gold);border-radius:2px;transition:background .15s;}
.navtoggle .bars::before,.navtoggle .bars::after{content:'';position:absolute;left:0;width:20px;height:2px;background:var(--gold);border-radius:2px;transition:transform .2s;}
.navtoggle .bars::before{top:-6px;}
.navtoggle .bars::after{top:6px;}
nav.site.open .navtoggle .bars{background:transparent;}
nav.site.open .navtoggle .bars::before{transform:translateY(6px) rotate(45deg);}
nav.site.open .navtoggle .bars::after{transform:translateY(-6px) rotate(-45deg);}
@media(max-width:1060px){ nav.site .navlinks{gap:18px;font-size:13.5px;} }
@media(max-width:980px){   /* the drawer: below this the row (with the Soon chips) no longer clears the wordmark */
  nav.site .navrow{padding:10px 18px;}
  .navbrand img{width:40px;height:40px;}
  .navword{font-size:15px;letter-spacing:2.5px;}
  .navtoggle{display:flex;}
  nav.site .navlinks{position:absolute;top:100%;left:0;right:0;z-index:60;flex-direction:column;align-items:stretch;gap:0;
            background:var(--bg2);border-bottom:1px solid var(--gold-line);padding:6px 24px 22px;
            box-shadow:0 20px 44px rgba(0,0,0,.6);max-height:calc(100vh - 70px);overflow-y:auto;}
  nav.site .navlinks a{padding:15px 2px;font-size:16px;color:var(--cream);border-bottom:1px solid var(--gold-line-soft);}
  nav.site .navlinks a[aria-current="page"]{box-shadow:none;color:var(--gold-hi);}
  /* in the drawer the sections fold open in place */
  nav.site .navmenu{border-bottom:1px solid var(--gold-line-soft);}
  nav.site .navmenu summary{justify-content:space-between;padding:15px 2px;font-size:16px;color:var(--cream);}
  nav.site .navmenu summary.on{box-shadow:none;color:var(--gold-hi);}
  nav.site .navpanel,nav.site .navpanel.navwide{position:static;transform:none;display:block;min-width:0;padding:0 0 8px 12px;
            background:none;border:0;border-radius:0;box-shadow:none;}
  nav.site .navgroup{margin:2px 0 10px;}
  nav.site .navgroup a{padding:11px 2px;font-size:15px;border-bottom:0;white-space:normal;}
  nav.site .navlinks .cta{margin-top:18px;padding:15px 18px;border-radius:8px;text-align:center;font-size:15px;border-bottom:0;color:#140B0C;}
  /* without JS the drawer is a plain stacked list, never a dead button */
  html:not(.js) nav.site .navrow{flex-wrap:wrap;}
  html:not(.js) nav.site .navlinks{position:static;flex-basis:100%;padding:0 0 12px;box-shadow:none;border-bottom:0;}
  html:not(.js) .navtoggle{display:none;}
  html.js nav.site .navlinks{display:none;}
  html.js nav.site.open .navlinks{display:flex;}
}
@media(max-width:360px){ .navword{font-size:13.5px;letter-spacing:2px;} }

/* ===== footer ===== */
footer.site{border-top:1px solid var(--gold-line-soft);padding:52px 0 64px;background:var(--bg2);}
footer.site .foot{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
footer.site .footbrand{display:flex;align-items:center;gap:12px;}
footer.site .footbrand img{width:40px;height:40px;}
footer.site p{color:var(--dim);font-size:13px;margin-top:12px;}
footer.site .footlinks{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:16px;font-size:13.5px;color:var(--dim);}
footer.site .footlinks a{padding:4px 0;}
footer.site .footlinks a:hover{color:var(--cyan-neon);}
footer.site .motto{font-family:var(--mono);font-size:12px;letter-spacing:2px;color:var(--gold);}
footer.site .fine{font-size:13px;line-height:1.7;}
footer.site .fine b{color:var(--cream);font-weight:500;}
@media(max-width:720px){ footer.site .foot{grid-template-columns:1fr;} }

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .navtoggle,.navtoggle .bars,.navtoggle .bars::before,.navtoggle .bars::after{transition:none;}
  nav.site .navmenu summary,nav.site .navmenu summary::after{transition:none;}
}

/* touch: no double-tap zoom delay on controls; a gold tap flash instead of the grey default */
a,button,[role="tab"],summary,label,select,input{touch-action:manipulation;}
a,button,[role="tab"]{-webkit-tap-highlight-color:rgba(217,168,92,.18);}
