/* Press Room prototype — the portfolio composed from the Press Room v3 handoff and its 14 plates.
   Brand law (handoff): cream #faf7f2 / void #0b0d12, gold is ornament only, one sapphire per screen,
   no drop shadows (zero-offset glows only where a plate names one), no purple, no neon cyan.
   Muted text tones are darker than the plates' greys where those fail WCAG AA at small sizes. */
@font-face{font-family:"Copydesk Serif";src:url(../fonts/copydesk-serif-roman.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Copydesk Serif";src:url(../fonts/copydesk-serif-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:Geist;src:url(../fonts/geist-latin.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Geist Mono";src:url(../fonts/geist-mono-latin.woff2) format("woff2");font-weight:100 900;font-display:swap}
/* metric-matched fallbacks (measured 2026-10-08 against the web fonts): the swap barely moves a line, so a late
   font is not a layout shift. size-adjust from set width; the overrides are divided by it, because the spec scales them */
@font-face{font-family:"Copydesk Fallback";src:local("Georgia");size-adjust:79.61%;ascent-override:130.64%;descent-override:42.71%;line-gap-override:0%}
@font-face{font-family:"Geist Fallback";src:local("Arial");size-adjust:101.15%;ascent-override:99.85%;descent-override:29.66%;line-gap-override:0%}
@font-face{font-family:"Geist Mono Fallback";src:local("Consolas");size-adjust:109.13%;ascent-override:92.55%;descent-override:27.49%;line-gap-override:0%}

:root{
  color-scheme:light;
  --paper:#faf7f2;--paper-2:#f3eee4;--card:#fffdf9;
  --ink:#1c1914;--ink-2:#4a4337;--ink-3:#655e50;
  --line:#d9cfbd;--line-2:#ebe4d6;
  --gold:#b08d3f;--gold-soft:rgba(176,141,63,.12);--gold-line:rgba(176,141,63,.5);
  --sap:#2a4a7a;
  --green:#1c6b45;--green-soft:rgba(28,107,69,.1);
  --red:#a8322b;
  --serif:"Copydesk Serif","Copydesk Fallback",Georgia,"Times New Roman",serif;
  --sans:Geist,"Geist Fallback",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"Geist Mono","Geist Mono Fallback",ui-monospace,Consolas,monospace;
  --ts:1;
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --paper:#0b0d12;--paper-2:#11141b;--card:#151921;
  --ink:#e9e2cf;--ink-2:#c3baa5;--ink-3:#9a917e;
  --line:rgba(201,164,74,.28);--line-2:rgba(201,164,74,.14);
  --gold:#c9a44a;--gold-soft:rgba(201,164,74,.12);--gold-line:rgba(201,164,74,.5);
  --sap:#3d6cb0;
  --green:#54c98d;--green-soft:rgba(84,201,141,.12);
  --red:#e0776e;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  color-scheme:dark;
  --paper:#0b0d12;--paper-2:#11141b;--card:#151921;
  --ink:#e9e2cf;--ink-2:#c3baa5;--ink-3:#9a917e;
  --line:rgba(201,164,74,.28);--line-2:rgba(201,164,74,.14);
  --gold:#c9a44a;--gold-soft:rgba(201,164,74,.12);--gold-line:rgba(201,164,74,.5);
  --sap:#3d6cb0;
  --green:#54c98d;--green-soft:rgba(84,201,141,.12);
  --red:#e0776e;
}}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:76px;font-size:calc(16px * var(--ts));-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.6;overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{position:fixed;left:12px;top:10px;z-index:100;width:auto;height:auto;clip:auto;padding:10px 14px;background:var(--paper);border:1px solid var(--ink)}
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}

/* ---------- top bar ---------- */
.nav{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}
.nav-in{max-width:1180px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.brand{text-decoration:none;display:flex;flex-direction:column;justify-content:center;min-height:44px;line-height:1.15}
.brand b{font:650 1.15rem/1.1 var(--serif);letter-spacing:-.01em}
.brand i{font:500 .6875rem/1.3 var(--mono);font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.nav-links{display:flex;gap:2px;flex-wrap:wrap;margin-left:auto}
.nav-links a{font:600 .6875rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--ink-2);padding:15px 8px;min-height:44px;display:inline-flex;align-items:center}
.nav-links a:hover{color:var(--ink)}
.tools{display:flex;gap:6px;align-items:center}
.tbtn{min-width:44px;min-height:44px;padding:0 12px;border:1px solid var(--line);background:var(--card);cursor:pointer;
  font:700 .6875rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;gap:6px}
.tbtn:hover{border-color:var(--ink);color:var(--ink)}
.tbtn[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.ts{display:inline-flex;border:1px solid var(--line)}
.ts .tbtn{border:0;min-width:44px;padding:0 8px}
.ts .tbtn+.tbtn{border-left:1px solid var(--line)}
@media (max-width:860px){.nav-links{display:none}}
@media (max-width:420px){.ts{display:none}.tbtn{padding:0 10px}}

/* ---------- the sheet ---------- */
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.sheet{position:relative;margin:22px 0 40px;padding:28px 40px 38px;border:1px solid var(--line);background:var(--paper)}
.sheet::before,.sheet::after,.trim::before,.trim::after{content:"";position:absolute;width:14px;height:14px;pointer-events:none}
.sheet::before{top:10px;left:10px;border-top:1px solid var(--gold);border-left:1px solid var(--gold)}
.sheet::after{top:10px;right:10px;border-top:1px solid var(--gold);border-right:1px solid var(--gold)}
.trim::before{bottom:10px;left:10px;border-bottom:1px solid var(--gold);border-left:1px solid var(--gold)}
.trim::after{bottom:10px;right:10px;border-bottom:1px solid var(--gold);border-right:1px solid var(--gold)}
.runbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font:600 .6875rem/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);padding-bottom:12px;border-bottom:1px solid var(--line)}
.runbar b{color:var(--ink)}
@media (max-width:760px){.sheet{padding:20px 16px 28px;margin:14px 0 28px}.wrap{padding:0 12px}}

/* ---------- masthead (the lede's identity, plate B's editorial spread) ---------- */
.masthead{padding:26px 0 22px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:26px;align-items:start}
.id{display:grid;grid-template-columns:96px minmax(0,1fr);gap:22px;align-items:start}
.portrait{width:96px;height:96px;border-radius:50%;object-fit:cover;border:1px solid var(--line);background:var(--paper-2)}
.kick{font:700 .6875rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.kick::before{content:"";display:inline-block;width:18px;height:1px;background:var(--gold);vertical-align:middle;margin-right:8px}
h1{font:650 clamp(2.2rem,5vw,3.3rem)/1.02 var(--serif);letter-spacing:-.03em;margin-top:8px}
.role{font:600 .78rem/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin-top:10px}
.lede-txt{font-size:1rem;max-width:62ch;margin-top:14px}
.meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:14px;font:500 .72rem/1.6 var(--mono);color:var(--ink-2)}
.meta span::before{content:"";display:inline-block;width:5px;height:5px;background:var(--gold);margin-right:7px;vertical-align:middle}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.btn{font:700 .7rem/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;min-height:44px;padding:0 16px;border:1px solid var(--ink);
  background:transparent;color:var(--ink);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn.solid{background:var(--ink);color:var(--paper)}
.btn.solid:hover{background:transparent;color:var(--ink)}
.btn.ghost{border-color:var(--line);color:var(--ink-2)}
.btn.ghost:hover{border-color:var(--ink);background:transparent;color:var(--ink)}
.llc{display:flex;align-items:center;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line-2)}
.llc img{width:52px;height:52px;border-radius:50%;object-fit:cover}
.llc b{display:block;font:700 .72rem/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.llc span{font-size:.82rem;color:var(--ink-2)}
.ring-mark{text-align:center}
.ring-mark svg{display:block;margin:0 auto;overflow:visible}
.ring-mark .rot{animation:spin 46s linear infinite;transform-origin:75px 75px}
@keyframes spin{to{transform:rotate(360deg)}}
.ring-mark p{font:600 .6875rem/1.6 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-top:8px}
.ring-mark p b{color:var(--ink)}
@media (max-width:860px){.masthead{grid-template-columns:1fr}.ring-mark{display:none}}
@media (max-width:520px){.id{grid-template-columns:64px minmax(0,1fr);gap:14px}.portrait{width:64px;height:64px}}

/* ---------- sections ---------- */
section.ps{padding:34px 0 6px}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap;padding-bottom:10px;border-bottom:2px solid var(--ink);margin-bottom:20px}
.sec-kick{font:600 .6875rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
h2.sec-title{font:650 clamp(1.3rem,2.6vw,1.6rem)/1.2 var(--serif);letter-spacing:-.02em;margin-top:6px}
.hint{font:500 .6875rem/1.4 var(--mono);color:var(--ink-3)}
.pill{font:700 .6875rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:5px 8px;border:1px solid var(--line);color:var(--ink-2);display:inline-block}
.pill.live{color:var(--green);border-color:var(--green);background:var(--green-soft)}
.pill.gated,.pill.held,.pill.building{color:var(--ink);border-color:var(--gold);background:var(--gold-soft)}

/* ---------- the lede metrics ---------- */
.lede-metrics{display:flex;gap:24px;flex-wrap:wrap;margin:16px 0 4px;font:600 .7rem/1.5 var(--mono);color:var(--ink-2)}
.lede-metrics b{display:block;font:650 1.2rem/1.2 var(--serif);color:var(--ink);font-variant-numeric:tabular-nums}

/* ---------- the column beside the orbit ---------- */
.column{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.62fr);gap:20px;align-items:stretch}
.caseinfo{border:1px solid var(--line);background:var(--card);padding:18px;display:flex;flex-direction:column}
.caseinfo .ci-tag{font:700 .6875rem/1 var(--mono);letter-spacing:.14em;color:var(--ink-3);text-transform:uppercase}
.caseinfo h3{font:650 1.25rem/1.2 var(--serif);margin:8px 0 10px;letter-spacing:-.01em}
.caseinfo p{font-size:.84rem;color:var(--ink-2);line-height:1.65}
.caseinfo .ci-meta{font:600 .7rem/1.5 var(--mono);color:var(--ink);margin-top:12px}
.caseinfo .ci-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:14px}
.caseinfo .ci-state{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line-2)}
.curn{font:600 .6875rem/1 var(--mono);color:var(--ink-3)}
@media (max-width:900px){.column{grid-template-columns:1fr}}

/* ---------- shelf ⇄ contact sheet switch ---------- */
.view-switch{display:inline-flex;border:1px solid var(--line)}
.view-switch button{min-height:44px;padding:0 14px;border:0;background:var(--card);cursor:pointer;font:700 .6875rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.view-switch button+button{border-left:1px solid var(--line)}
.view-switch button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.slips{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.slip{border:1px solid var(--line);background:var(--card);display:flex;flex-direction:column}
.slip .shot{aspect-ratio:16/10;overflow:hidden;border-bottom:1px solid var(--line-2);background:var(--paper-2)}
.slip .shot img{width:100%;height:100%;object-fit:cover;object-position:top}
.slip .sb{padding:12px;display:flex;flex-direction:column;gap:6px;flex:1}
.slip h3{font:650 1rem/1.25 var(--serif)}
.slip p{font-size:.8rem;color:var(--ink-2);line-height:1.55}
.slip .sl-f{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:6px}
.slip a.go{font:700 .6875rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;min-height:44px;display:inline-flex;align-items:center}

/* ---------- the map (the live site's atlas, restyled to the press) ---------- */
.atlas{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:20px;align-items:start;border:1px solid var(--line);background:var(--card);padding:16px}
.atlas svg{width:100%;height:auto;display:block}
.atlas .land{fill:var(--paper-2);stroke:var(--ink-3);stroke-width:1.2}
.atlas .route{fill:none;stroke:var(--gold);stroke-width:2;stroke-dasharray:6 7}
.atlas .pin circle{fill:var(--ink)}
.atlas .pin.home circle{fill:var(--gold)}
.atlas .pin path{stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;fill:none}
.atlas .tag{opacity:0;transition:opacity .15s}
.atlas .tag rect{fill:var(--ink)}
.atlas .tag text{fill:var(--paper);font:600 15px var(--mono)}
.atlas .on .tag{opacity:1}
.atlas .pin.on circle{fill:var(--gold)}
.atlas-key{display:grid;gap:14px}
.atlas-key h3,.atlas-key h4{font:700 .6875rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}
.atlas-key ul{list-style:none}
.atlas-key .ml{width:100%;min-height:44px;text-align:left;display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 8px;
  border:0;border-bottom:1px solid var(--line-2);background:transparent;cursor:pointer;font:500 .74rem/1.4 var(--mono);color:var(--ink-2)}
.atlas-key .ml b{color:var(--ink);font-weight:650}
.atlas-key .ml.on,.atlas-key .ml:hover{background:var(--gold-soft)}
@media (max-width:860px){.atlas{grid-template-columns:1fr}}

/* ---------- the critic (a labelled sample on this static prototype) ---------- */
.critic{border:1px solid var(--line);background:var(--card);padding:22px 24px}
.critic p{font-size:.9rem;color:var(--ink-2);max-width:62ch}
.critic-form{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.critic label{width:100%;font:700 .6875rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.critic input{flex:1;min-width:220px;min-height:44px;font:.84rem var(--mono);padding:0 12px;border:1px solid var(--line);background:var(--paper);color:var(--ink)}
.critic .out{margin-top:16px;border-top:1px solid var(--line-2);padding-top:14px}
.critic .out[hidden]{display:none}
.critic .sample{display:inline-block;font:700 .6875rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--ink);padding:5px 8px;margin-bottom:10px}
.critic .out h3{font:700 .6875rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}
.critic .out ol{margin:0 0 14px 18px}
.critic .out li{font-size:.84rem;color:var(--ink-2);margin-bottom:6px}
.critic .test{font:600 .74rem/1.6 var(--mono);color:var(--ink);border:1px dashed var(--gold);background:var(--gold-soft);padding:10px 12px}
.critic .note{font:500 .6875rem/1.5 var(--mono);color:var(--ink-3);margin-top:10px}

/* ---------- closer ---------- */
footer.pf{margin-top:40px;border-top:2px solid var(--ink);padding-top:24px;text-align:center}
.pop{font:650 clamp(1.7rem,4vw,2.4rem)/1.1 var(--serif);letter-spacing:-.03em}
.pop-sub{font:600 .6875rem/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3);margin-top:10px}
.resumes{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px;list-style:none}
.resumes a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;border:1px solid var(--line);text-decoration:none;font:600 .7rem/1.3 var(--mono)}
.resumes a:hover{border-color:var(--ink)}
.colophon{font:500 .6875rem/1.8 var(--mono);color:var(--ink-3);margin-top:16px}
.colophon a{min-height:44px;display:inline-flex;align-items:center}
