/* UVU Review: page tokens, layout and the static sections. Map player styles live in recon-ui.css. */

/* Metric-matched fallback faces, so text keeps its size and line breaks when the web fonts arrive (no hero jump).
   Computed with fontTools 4.61 from the woff2 files Google Fonts serves for this page's css2 request (latin subset):
   oswald/v57/TK3IWkUHHAIjg75cFRf3bXL8LICs1_Fv40pKlN4NNSeSASz7FmlWHYg.woff2, inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2,
   jetbrainsmono/v24/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2 (variable fonts, instanced
   at the weight named), against Windows arial.ttf, arialbd.ttf and cour.ttf.
   size-adjust = web average advance / fallback average advance (English letter frequencies; Oswald bold measured on the
   hero headline in capitals, Inter regular on the hero paragraph); ascent/descent = hhea ascender/|descender| / UPM / size-adjust. */
@font-face{font-family:'Oswald Fallback';src:local('Arial'),local('ArialMT');font-weight:100 500;
  size-adjust:87.56%;ascent-override:136.24%;descent-override:33.00%;line-gap-override:0%}
@font-face{font-family:'Oswald Fallback';src:local('Arial Bold'),local('Arial-BoldMT');font-weight:600 900;
  size-adjust:78.15%;ascent-override:152.66%;descent-override:36.98%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback';src:local('Arial'),local('ArialMT');font-weight:100 500;
  size-adjust:107.45%;ascent-override:90.16%;descent-override:22.45%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback';src:local('Arial Bold'),local('Arial-BoldMT');font-weight:600 900;
  size-adjust:102.35%;ascent-override:94.65%;descent-override:23.57%;line-gap-override:0%}
@font-face{font-family:'JetBrains Mono Fallback';src:local('Courier New'),local('CourierNewPSMT'),local('Menlo'),local('Consolas');
  size-adjust:100%;ascent-override:102.02%;descent-override:30.00%;line-gap-override:0%}

:root{
  color-scheme:dark;
  --f-head:'Oswald','Oswald Fallback','Arial Narrow',sans-serif;
  --f-sans:'Inter','Inter Fallback',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --f-mono:'JetBrains Mono','JetBrains Mono Fallback',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --bg:#0a0d13;
  --bg-2:#0f141d;
  --panel:#141b26;
  --panel-2:#1a232f;
  --line:#26313f;
  --ink:#eef2f7;
  --ink-2:#c9d2dd;
  --muted:#93a1b3;
  --faint:#5f6d7e;
  /* --faint is for lines and decoration; small text uses --faint-ink (at least 4.6:1 on every page and panel background) */
  --faint-ink:#808d9e;
  --red:#e23b3b;
  --red-soft:#ff6b5e;
  --blue:#3d8bff;
  --blue-soft:#7fb2ff;
  --amber:#f4b740;
  --white:#f7fafc;
  --ok:#43c08a;
  --maxw:1180px;
  --gutter:16px;
}
:root:not([data-theme="light"]){}
*{box-sizing:border-box}
/* phones in landscape must not inflate the text on their own */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--f-sans);
  -webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden;
}
h1,h2,h3,.display{font-family:var(--f-head);font-weight:600;letter-spacing:.01em;line-height:1.08;margin:0}
.mono{font-family:var(--f-mono)}
a{color:var(--blue-soft);text-decoration:none}
/* the side padding never lets text into a notch's unsafe strip in landscape */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 max(var(--gutter),env(safe-area-inset-right)) 0 max(var(--gutter),env(safe-area-inset-left))}
.eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--red-soft)}
.kicker{color:var(--muted);font-size:13px;letter-spacing:.16em;text-transform:uppercase;font-family:var(--f-mono)}
.pill{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:999px;font-size:11.5px;line-height:1.3;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-family:var(--f-mono)}
section{position:relative}
.divider{height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent);margin:0}

/* ============ TOP BAR ============ */
.topbar{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;
  padding:12px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));background:linear-gradient(180deg,rgba(10,13,19,.92),rgba(10,13,19,.4));
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(38,49,63,.5)}
/* touch screens: a live blur under a fixed bar costs every scrolled frame on phones, so the bar is simply near-opaque */
@media(pointer:coarse){.topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(10,13,19,.96)}}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--f-head);font-weight:600;font-size:15px;letter-spacing:.03em}
.brand .dot{width:10px;height:10px;border-radius:2px;background:var(--red);box-shadow:0 0 12px var(--red)}
.brand small{display:block;font-family:var(--f-mono);font-weight:400;font-size:9.5px;letter-spacing:.18em;color:var(--faint-ink);text-transform:uppercase}
.topbar .src{font-size:11px;color:var(--muted);font-family:var(--f-mono)}
.topbar .src b{color:var(--ink)}

/* ============ HERO ============ */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;padding:90px 0 40px}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(61,139,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(61,139,255,.05) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 30%,transparent 80%)}
.hero-glow{position:absolute;width:60vw;height:60vw;max-width:720px;max-height:720px;border-radius:50%;background:radial-gradient(circle,rgba(226,59,59,.16),transparent 62%);top:-8%;right:-12%;filter:blur(10px)}
.hero-inner{position:relative;z-index:2}
.hero h1{font-size:clamp(38px,8.5vw,104px);font-weight:700;text-transform:uppercase;letter-spacing:-.01em}
.hero h1 .red{color:var(--red-soft)}
.hero .sub{max-width:640px;margin-top:22px;font-size:clamp(16px,2.4vw,21px);color:var(--muted)}
.hero .sub b{color:var(--white);font-weight:600}
.hero .meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.scrollcue{margin-top:44px;display:flex;align-items:center;gap:12px;color:var(--faint-ink);font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.scrollcue .bar{width:1px;height:34px;background:linear-gradient(var(--red),transparent);animation:drop 1.8s infinite}
@keyframes drop{0%{opacity:.2;transform:translateY(-6px)}50%{opacity:1}100%{opacity:.2;transform:translateY(6px)}}
/* ============ STANDARD SECTION ============ */
.sec{padding:88px 0}
.sec-head{max-width:760px;margin-bottom:40px}
.sec-head .eyebrow{margin-bottom:14px;display:block}
.sec-head h2{font-size:clamp(28px,5vw,50px);text-transform:uppercase;font-weight:600}
.sec-head p{color:var(--muted);font-size:17px;margin-top:16px}

/* ============ PREMISE STRIP ============ */
.premise{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.premise .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;padding:0}
.pstat{padding:30px 22px;background:var(--bg)}
.pstat .n{font-family:var(--f-head);font-size:clamp(30px,4vw,46px);font-weight:700;color:var(--white);line-height:1}
.pstat .n.red{color:var(--red-soft)}
.pstat .n.amber{color:var(--amber)}
.pstat .l{margin-top:8px;font-size:12.5px;color:var(--muted);letter-spacing:.02em}

/* ============ TIMELINE ============ */
.tl-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.chip{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;padding:7px 13px;border:1px solid var(--line);border-radius:999px;color:var(--muted);cursor:pointer;background:transparent;transition:.15s}
.chip[aria-pressed="true"]{background:var(--ink);color:#0a0d13;border-color:var(--ink)}
.chip.dp[aria-pressed="true"]{background:var(--amber);border-color:var(--amber)}
.timeline{position:relative;border-left:2px solid var(--line);margin-left:8px}
.tev{position:relative;padding:0 0 26px 30px}
.tev::before{content:"";position:absolute;left:-9px;top:3px;width:14px;height:14px;border-radius:50%;background:var(--panel);border:2px solid var(--faint)}
.tev.dp::before{background:var(--amber);border-color:var(--amber);box-shadow:0 0 0 4px rgba(244,183,64,.15)}
.tev.hot::before{background:var(--red);border-color:var(--red);box-shadow:0 0 0 4px rgba(226,59,59,.15)}
.tev .time{font-family:var(--f-mono);font-size:12.5px;color:var(--blue-soft);letter-spacing:.04em}
.tev.dp .time{color:var(--amber)}
.tev .txt{margin-top:5px;font-size:15px;color:var(--ink)}
.tev .tag{display:inline-block;margin-top:8px;font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint-ink);border:1px solid var(--line);padding:2px 8px;border-radius:4px}
.tev.dp .tag{color:var(--amber);border-color:rgba(244,183,64,.4)}
.tev mark{background:transparent;color:var(--red-soft);font-weight:600}
.tev b{color:var(--white)}

/* ============ TEXT THREAD ============ */
.thread-wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
.phone{max-width:360px;margin:0 auto;background:#000;border:8px solid #1b1b1f;border-radius:38px;padding:16px 12px 22px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.phone .hdr{text-align:center;padding:6px 0 14px;border-bottom:1px solid #222}
.phone .hdr .nm{font-family:var(--f-head);font-size:15px}
.phone .hdr .sub{font-size:11px;color:var(--faint-ink);font-family:var(--f-mono)}
.msgs{padding:16px 4px 0;display:flex;flex-direction:column;gap:10px}
.msg{max-width:80%;padding:9px 13px;border-radius:16px;font-size:14px;line-height:1.4}
.msg.in{align-self:flex-start;background:#262a30;border-bottom-left-radius:5px}
.msg.out{align-self:flex-end;background:#1d6fe0;color:#fff;border-bottom-right-radius:5px}
.msg.sum{font-style:italic;background:#1c2026;border:1px dashed #4a5361;color:#c9d2dd}
.msg .who{display:block;font-size:9.5px;font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;opacity:.6;margin-bottom:3px}
.tstamp{align-self:center;font-family:var(--f-mono);font-size:10px;color:var(--faint-ink);letter-spacing:.1em;margin:4px 0}
.thread-note h3{font-size:26px;text-transform:uppercase;margin-bottom:14px}
.thread-note p{color:var(--muted);margin:0 0 14px}
.thread-note .hl{color:var(--red-soft);font-weight:600}

/* ============ FINDINGS ============ */
.finds{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;align-items:start}
.find{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:.2s}
@media(hover:hover){.find:hover{border-color:var(--faint)}}
.find summary{list-style:none;cursor:pointer;padding:20px 22px;display:flex;gap:16px;align-items:flex-start;border-radius:11px}
.find[open] summary{border-radius:11px 11px 0 0}
/* the card clips its overflow, so the focus ring is drawn inside the row instead of around it */
.find summary:focus-visible{outline:3px solid var(--amber);outline-offset:-3px}
.find summary::-webkit-details-marker{display:none}
.find .num{font-family:var(--f-head);font-size:26px;font-weight:700;color:var(--red-soft);line-height:1;min-width:34px}
.find .ft{font-family:var(--f-head);font-size:18px;font-weight:500;line-height:1.2;flex:1}
.find .plus{color:var(--faint);font-size:22px;transition:.2s;font-family:var(--f-mono)}
.find[open] .plus{transform:rotate(45deg);color:var(--red)}
.find .body{padding:0 22px 22px 72px}
.find .body p{margin:0 0 10px;font-size:14.5px;color:var(--muted)}
.find .body .cite{font-family:var(--f-mono);font-size:11px;color:var(--faint-ink)}
.find .body .cite a{display:inline-flex;align-items:center;min-height:44px;vertical-align:middle}

/* ============ ALERT WHIPLASH ============ */
#alerts{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.alert-stack{display:flex;flex-direction:column;gap:10px;max-width:560px;margin:0 auto}
.alert{display:flex;gap:14px;align-items:flex-start;background:rgba(20,27,38,.7);border:1px solid var(--line);border-radius:14px;padding:14px 16px;position:relative}
.alert .a-time{font-family:var(--f-mono);font-size:12px;color:var(--faint-ink);min-width:64px;padding-top:2px}
.alert .a-body{flex:1}
.alert .a-src{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-soft);margin-bottom:3px}
.alert .a-msg{font-size:14.5px;color:var(--ink)}
.alert.contra{border-color:rgba(226,59,59,.5)}
.alert.contra::after{content:"CONTRADICTS PRIOR";position:absolute;top:10px;right:12px;font-family:var(--f-mono);font-size:9px;letter-spacing:.1em;color:var(--red-soft)}
.alert.err{border-color:var(--amber)}
.alert.err::after{content:"SENT IN ERROR";position:absolute;top:10px;right:12px;font-family:var(--f-mono);font-size:9px;letter-spacing:.1em;color:var(--amber)}

/* ============ FIX LIST / RECS ============ */
.rec-legend{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:22px;font-size:12.5px;font-family:var(--f-mono);color:var(--muted)}
.rec-legend span{display:flex;align-items:center;gap:7px}
.sw{width:14px;height:14px;border-radius:3px;flex:0 0 auto}
.sw.done{background:var(--ok)} .sw.prog{background:var(--blue)} .sw.todo{background:var(--amber)}
.recs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.recgrp{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px}
.recgrp h4{font-family:var(--f-head);font-size:15px;font-weight:600;margin:0 0 12px;color:var(--white)}
.recitem{display:flex;gap:10px;font-size:13px;color:var(--muted);margin-bottom:9px;align-items:flex-start}
.recitem .st{width:11px;height:11px;border-radius:3px;margin-top:4px;flex-shrink:0}
.st.done{background:var(--ok)} .st.prog{background:var(--blue)} .st.todo{background:var(--amber)}

/* ============ LANES (what baron skipped) ============ */
.lanes{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.lane{background:linear-gradient(180deg,var(--panel),var(--bg-2));border:1px solid var(--line);border-radius:12px;padding:22px}
.lane .lnum{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;color:var(--red-soft);text-transform:uppercase}
.lane h3{font-family:var(--f-head);font-size:20px;font-weight:600;margin:8px 0 10px;line-height:1.6;letter-spacing:normal}
.lane p{font-size:14px;color:var(--muted);margin:0}
.lane p b{color:var(--white)}
.lane .lane-src{display:block;margin-top:12px;font-family:var(--f-mono);font-size:11.5px;line-height:1.6;color:var(--muted)}

/* ============ DOC CTA ============ */
.doc-cta{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.doc-cta .l{padding:36px;background:var(--panel)}
.doc-cta .r{padding:36px;background:var(--bg-2);display:flex;flex-direction:column;justify-content:center;gap:14px}
.doc-cta h3{font-size:26px;text-transform:uppercase;margin-bottom:12px}
.doc-cta p{color:var(--muted);font-size:15px}
.big-btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;background:var(--red);color:#fff;padding:14px 22px;border-radius:10px;font-weight:600;width:fit-content}
.big-btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}

/* ============ FOOTER ============ */
footer{padding:56px 0 40px;border-top:1px solid var(--line);background:var(--bg-2)}
.foot-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px}
.foot-brand .brand{min-height:44px}
.method{max-width:640px;font-size:13px;color:var(--faint-ink);line-height:1.7}
.method b{color:var(--muted)}


/* ============ BURIED FINDINGS ============ */
.bf-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.bf-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.bf{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px 22px;border-top:3px solid var(--faint)}
.bf.tpusa{border-top-color:var(--amber)} .bf.uvu{border-top-color:var(--blue)} .bf.report{border-top-color:var(--red)} .bf.both{border-top-color:#b18cff}
.bf .side{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint-ink)}
.bf.tpusa .side{color:var(--amber)} .bf.uvu .side{color:var(--blue-soft)} .bf.report .side{color:var(--red-soft)} .bf.both .side{color:#c9b3ff}
.bf h3{font-family:var(--f-head);font-size:20px;font-weight:600;margin:8px 0 10px;line-height:1.2;letter-spacing:normal}
.bf p{font-size:14.5px;color:var(--muted);margin:0 0 12px}
.bf blockquote{margin:0 0 10px;padding:8px 12px;border-left:2px solid var(--line);background:rgba(255,255,255,.02);font-size:14px;color:var(--ink)}
/* the page link is a 44 px tall target; the negative margins keep the quote block's spacing as before */
.bf blockquote a{display:flex;align-items:center;width:fit-content;min-height:44px;margin:-6px 0 -8px;font-family:var(--f-mono);font-size:11px;color:var(--blue-soft)}
.bf .inf{font-size:13px;color:var(--muted);border:1px dashed var(--line);border-radius:8px;padding:8px 10px}
.bf .inf b{color:var(--amber);font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em}
@media(max-width:860px){.bf-grid{grid-template-columns:1fr}}

/* ============ RESPONSIVE ============ */
@media(max-width:860px){
  .premise .wrap{grid-template-columns:repeat(2,1fr)}
  .finds,.lanes{grid-template-columns:1fr}
  .recs{grid-template-columns:1fr}
  .thread-wrap{grid-template-columns:1fr;gap:28px}
  .doc-cta{grid-template-columns:1fr}
}
@media(max-width:520px){
  .premise .wrap{grid-template-columns:1fr 1fr}
  .find .body{padding-left:22px}
}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
