/* Airframe Ultra guide site — palette sampled from the game's own official Steam art.
   See DESIGN-BRIEF.md for the measured hex table and which screenshot each token came from. */
@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/chakrapetch-500.woff2) format('woff2')}
@font-face{font-family:'Chakra Petch';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/chakrapetch-700.woff2) format('woff2')}
@font-face{font-family:'Share Tech Mono';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/sharetechmono-400.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/barlow-400.woff2) format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/barlow-600.woff2) format('woff2')}

:root{
  --ink:#0b0a12; --ink-2:#100d1a; --panel:#141126; --panel-2:#1e1b33;
  --rust:#b45a34; --rust-deep:#7a3421; --rust-lit:#d9784a;
  --acid:#2f7fe0; --acid-dim:#1b4c8f; --acid-lit:#5b9eed; --mint:#79c98a; --blood:#8e1f24;
  --bone:#e6ddc6; --bone-dim:#a99f8c; --line:#2a2540;
  --maxw:1440px; --radius:2px;
  --display:'Chakra Petch','Arial Narrow',system-ui,sans-serif;
  --mono:'Share Tech Mono',ui-monospace,'Courier New',monospace;
  --body:'Barlow','Segoe UI',system-ui,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--ink)}
body{
  margin:0;color:var(--bone);font:400 17px/1.62 var(--body);
  background:
    radial-gradient(1100px 520px at 12% -8%,rgba(47,127,224,.16) 0%,transparent 68%),
    radial-gradient(900px 460px at 92% 4%,rgba(180,90,52,.15) 0%,transparent 70%),
    linear-gradient(180deg,#0b0a12 0%,#0d0b16 42%,#0b0a12 100%);
  background-color:var(--ink);
}
img{max-width:100%;height:auto}
a{color:#5b9eed;text-decoration:none;border-bottom:1px solid rgba(91,158,237,.35)}
a:hover{color:#a6cdff;border-bottom-color:#a6cdff}
a:focus-visible{outline:2px dashed var(--rust);outline-offset:2px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 26px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:10px;background:var(--acid);color:#06101d;padding:8px 14px;z-index:99}
::selection{background:var(--rust);color:#120a06}

/* ---------- top strip (race control) + nav ---------- */
.ribbon{
  font:400 12px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#f7efdc;
  background:
    repeating-linear-gradient(115deg,rgba(230,221,198,.16) 0 10px,transparent 10px 22px),
    linear-gradient(90deg,var(--rust-deep),var(--rust) 55%,#5c2a1a);
  border-bottom:1px solid #120a06;
}
.ribbon .wrap{padding:8px 26px}
.topbar{position:sticky;top:0;z-index:40;background:rgba(11,10,18,.95);border-bottom:1px solid var(--line)}
.topbar::after{content:"";display:block;height:5px;
  background:repeating-linear-gradient(90deg,var(--bone) 0 26px,transparent 26px 52px);opacity:.15}
.bar{display:flex;align-items:center;gap:24px;padding:12px 26px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;color:var(--bone);border:0;flex:0 0 auto}
.brand img{width:40px;height:40px;filter:drop-shadow(0 0 10px rgba(47,127,224,.45))}
.brand span{font:700 19px/1 var(--display);letter-spacing:.06em;text-transform:uppercase}
.brand span::after{content:"";display:block;height:3px;margin-top:7px;background:linear-gradient(90deg,var(--rust),transparent)}
.nav{display:flex;align-items:center;gap:10px;margin-left:auto;flex-wrap:wrap}
.nav > ul{list-style:none;display:flex;align-items:center;gap:2px;margin:0;padding:0;flex-wrap:wrap}
.nav > ul > li{position:relative}
.nav > ul > li > a{display:block;padding:9px 12px;border:0;color:#c9c0ab;
  font:500 12.5px/1 var(--display);letter-spacing:.13em;text-transform:uppercase}
.nav > ul > li.active > a,.nav > ul > li > a:hover{color:var(--bone);background:rgba(47,127,224,.13)}
.nav > ul > li.active > a{box-shadow:inset 0 -2px 0 var(--rust)}
.nav > ul > li.has-kids > a::after{content:" ▾";color:var(--rust-lit);font-size:10px}
.nav .kids{display:none;position:absolute;left:0;top:100%;min-width:100%;width:max-content;max-width:320px;
  list-style:none;margin:0;padding:8px 0;background:var(--panel-2);border:1px solid var(--line);
  border-top:2px solid var(--rust);box-shadow:6px 6px 0 rgba(0,0,0,.55)}
.nav .has-kids:hover .kids,.nav .has-kids:focus-within .kids{display:block}
.nav .kids a{display:block;padding:8px 16px;border:0;color:#cfc6b1;font:400 13px/1.25 var(--body);text-transform:none;white-space:nowrap}
.nav .kids a:hover{background:rgba(180,90,52,.22);color:#fff3dc}
.cta{display:inline-block;padding:11px 18px;border:2px solid #120a06;background:var(--rust);color:#120a06;
  font:700 12.5px/1 var(--display);letter-spacing:.13em;text-transform:uppercase;
  box-shadow:4px 4px 0 #120a06;white-space:nowrap}
.cta:hover{background:var(--rust-lit);color:#120a06;transform:translate(-1px,-1px);box-shadow:5px 5px 0 #120a06}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);background:#07060c}
.hero-in{display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);gap:34px;align-items:center;padding:42px 26px 44px}
.hero-copy{position:relative;z-index:2;min-width:0}
.eyebrow{display:inline-block;margin:0 0 14px;padding:5px 11px;border:1px solid rgba(121,201,138,.5);
  color:var(--mint);background:rgba(121,201,138,.08);
  font:400 11.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase}
.hero h1{font:700 clamp(38px,5.2vw,72px)/.94 var(--display);letter-spacing:-.01em;text-transform:uppercase;
  margin:0 0 16px;color:#fff8e8;text-shadow:0 0 26px rgba(47,127,224,.32),4px 4px 0 rgba(122,52,33,.7)}
.lead{margin:0 0 20px;font-size:18px;color:#cfc6b1;max-width:52ch}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin:0}
.btn{display:inline-block;padding:13px 20px;border:2px solid #120a06;background:var(--acid);color:#04101f;
  font:700 13px/1 var(--display);letter-spacing:.11em;text-transform:uppercase;box-shadow:4px 4px 0 #120a06}
.btn:hover{background:#61a4f0;color:#04101f;transform:translate(-1px,-1px);box-shadow:5px 5px 0 #120a06}
.btn.ghost{background:transparent;color:var(--bone);border-color:rgba(230,221,198,.55);box-shadow:none}
.btn.ghost:hover{background:rgba(230,221,198,.1);color:#fff}
.hero-shot{position:relative;margin:0;min-width:0}
.hero-shot img{display:block;width:100%;height:auto;border:0;outline:2px solid rgba(47,127,224,.5);box-shadow:10px 10px 0 rgba(0,0,0,.55)}
.hero-shot::before,.hero-shot::after{content:"";position:absolute;width:30px;height:30px;border:3px solid var(--acid);opacity:.85}
.hero-shot::before{left:-9px;top:-9px;border-right:0;border-bottom:0}
.hero-shot::after{right:-9px;bottom:26px;border-left:0;border-top:0}
.hero-play{position:absolute;left:12px;top:12px;z-index:2;padding:5px 10px;background:rgba(11,10,18,.74);
  color:var(--mint);font:400 11px/1 var(--mono);letter-spacing:.2em;border:1px solid rgba(121,201,138,.45)}
.hero-shot figcaption{margin-top:9px;font:400 11px/1.4 var(--mono);letter-spacing:.05em;color:#8c8375;text-transform:uppercase}

/* ---------- facts strip (telemetry) ---------- */
.facts-strip{background:linear-gradient(180deg,#13101f,#0e0c18);border-bottom:1px solid var(--line)}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);padding:0 26px}
.fact{background:#131020;padding:15px 16px 16px}
.fact-k{display:block;font:400 10.5px/1 var(--mono);letter-spacing:.18em;color:#8a8172;text-transform:uppercase;margin-bottom:7px}
.fact-v{display:block;font:700 19px/1.15 var(--display);letter-spacing:.02em;color:#fff3dc}

/* ---------- sections + cards ---------- */
.home{padding:0 26px 18px}
.section-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:36px 0 16px;
  border-bottom:1px solid var(--line);padding-bottom:10px}
.overline{font:400 10.5px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--rust-lit)}
.section-head h2{margin:0;font:700 24px/1.1 var(--display);letter-spacing:.02em;text-transform:uppercase;color:#fff3dc}
.count-pill{display:inline-block;margin-left:10px;padding:3px 9px;background:var(--acid);color:#04101f;
  font:400 12px/1.3 var(--mono);vertical-align:middle}
.grid{display:flex;flex-wrap:wrap;gap:18px;margin:0 0 8px}
.grid[data-n="2"] .card{flex:1 1 calc(50% - 9px)}
.grid[data-n="3"] .card{flex:1 1 calc(33.333% - 12px)}
.grid[data-n="4"] .card{flex:1 1 calc(25% - 14px)}
.card{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);color:var(--bone);
  box-shadow:5px 5px 0 rgba(0,0,0,.5);position:relative;overflow:hidden}
.card:hover{border-color:rgba(180,90,52,.7);box-shadow:7px 7px 0 rgba(122,52,33,.55);transform:translate(-1px,-1px)}
.card::before{content:"";position:absolute;left:0;top:0;width:3px;height:100%;
  background:linear-gradient(180deg,var(--rust),var(--acid-dim))}
.thumb{display:block;position:relative;background:#08070d;border-bottom:1px solid var(--line);overflow:hidden}
.thumb img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;filter:saturate(1.05)}
.thumb::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(11,10,18,0) 42%,rgba(11,10,18,.55))}
.thumb.contain{display:flex;align-items:center;justify-content:center;padding:10px 14px;min-height:150px;
  background:radial-gradient(circle at 50% 40%,#1a1730,#0a0812)}
.thumb.contain img{object-fit:contain;width:auto;height:100%;aspect-ratio:auto}
.pill-tag{position:absolute;left:10px;top:10px;z-index:3;padding:4px 9px;background:rgba(11,10,18,.84);
  color:var(--mint);border:1px solid rgba(121,201,138,.45);
  font:400 10.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase}
.card-body{padding:14px 16px 15px;display:flex;flex-direction:column;gap:8px;flex:1}
.card-body h3{margin:0;font:700 17px/1.22 var(--display);color:#fff3dc}
.card-body p{margin:0;font-size:14.5px;line-height:1.5;color:#b3aa98;flex:1}
.go{margin-top:2px;font:400 11.5px/1 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--rust-lit)}
.card:hover .go{color:#ffb98d}
.card.sm .card-body h3{font-size:15px}
.all-guides{margin:34px 0 6px;border-top:1px solid var(--line);padding-top:8px}
.all-more{margin:12px 0 0;font:400 12px/1 var(--mono);letter-spacing:.13em;text-transform:uppercase}

/* ---------- home prose ---------- */
.home-prose{margin:26px auto 34px;max-width:1000px}
.home-prose h2{font:700 22px/1.2 var(--display);text-transform:uppercase;letter-spacing:.02em;
  color:#fff3dc;margin:30px 0 10px;padding-bottom:7px;border-bottom:1px solid var(--line)}
.home-prose h2::before{content:"LAP";display:inline-block;margin-right:9px;padding:2px 6px;
  background:rgba(180,90,52,.18);color:var(--rust-lit);font:400 10px/1.4 var(--mono);letter-spacing:.14em;vertical-align:2px}
.home-prose p{margin:0 0 14px;max-width:94ch}
.home-prose ul,.home-prose ol{margin:0 0 16px;padding-left:22px;max-width:92ch}
.home-prose li{margin:0 0 7px}
.home-prose strong{color:#fff6e4}
.home-prose blockquote{margin:16px 0;padding:6px 0 6px 16px;border-left:3px solid var(--rust);color:#cfc6b1}

/* ---------- article ---------- */
.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 244px;gap:34px;padding:26px 26px 42px;align-items:start}
.article-grid > div{min-width:0}
.crumb{font:400 11px/1.5 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:#8a8172;margin:0 0 14px}
.crumb a{color:#b3aa98;border:0}
.crumb .sep{color:#5d564a;margin:0 6px}
.crumb .here{color:var(--rust-lit)}
article{background:var(--panel);border:1px solid var(--line);box-shadow:8px 8px 0 rgba(0,0,0,.45);
  padding:28px 32px 32px;border-radius:var(--radius);min-width:0}
article h1{font:700 clamp(28px,3.2vw,42px)/1.05 var(--display);text-transform:uppercase;letter-spacing:-.005em;
  color:#fff8e8;margin:0 0 12px;text-shadow:3px 3px 0 rgba(122,52,33,.5)}
.art-meta{margin:0 0 22px;padding-bottom:14px;border-bottom:1px dashed var(--line);
  font:400 11px/1 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:#8a8172}
.art-meta b{color:var(--mint);font-weight:400}
.art-lead{color:#cfc6b1;font-size:17px;margin:0 0 16px;max-width:88ch}
article h2{position:relative;margin:34px 0 12px;font:700 22px/1.24 var(--display);letter-spacing:.01em;
  text-transform:uppercase;color:#fff3dc;border-bottom:1px solid var(--line);padding-bottom:8px}
article h2::before{content:"LAP";display:inline-block;margin-right:10px;padding:2px 7px;
  background:rgba(180,90,52,.18);color:var(--rust-lit);
  font:400 10px/1.4 var(--mono);letter-spacing:.14em;vertical-align:3px}
article h3{font:600 17px/1.3 var(--display);letter-spacing:.02em;color:#f4e9d3;margin:22px 0 8px}
article p{margin:0 0 14px;max-width:92ch}
article ul,article ol{margin:0 0 16px;padding-left:22px;max-width:90ch}
article li{margin:0 0 7px}
article strong,article b{color:#fff6e4}
article code{font:400 13.5px/1 var(--mono);background:#221e38;color:var(--mint);padding:2px 5px}
article blockquote{margin:16px 0;padding:6px 0 6px 16px;border-left:3px solid var(--rust);color:#cfc6b1}
.callout{margin:20px 0;padding:14px 16px 14px 18px;background:#191533;border-left:3px solid var(--acid);font-size:15.5px;color:#cfc6b1}
.callout p:last-child{margin-bottom:0}
.quick-answer{margin:0 0 24px;padding:16px 18px;border:1px solid rgba(47,127,224,.4);border-left:4px solid var(--acid);
  background:repeating-linear-gradient(135deg,rgba(47,127,224,.07) 0 12px,transparent 12px 24px),#141b32}
.qa-stamp{display:block;margin-bottom:7px;font:400 10.5px/1 var(--mono);letter-spacing:.2em;
  text-transform:uppercase;color:var(--mint)}
.quick-answer p{margin:0;font-size:16px;color:#e3dac5;max-width:88ch}

/* ---------- tables: timing board ---------- */
.tbl-wrap{overflow-x:auto;margin:18px 0 22px;border:1px solid var(--line);background:#100d1c}
table{width:100%;border-collapse:collapse;font:400 14px/1.45 var(--mono);font-variant-numeric:tabular-nums}
thead th{background:repeating-linear-gradient(115deg,rgba(230,221,198,.07) 0 8px,transparent 8px 16px),#241f3c;
  color:#fff3dc;text-align:left;padding:10px 12px;border-bottom:2px solid var(--rust);
  font:400 11.5px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
tbody td{padding:9px 12px;border-bottom:1px dotted #2f2a46;color:#cfc6b1;vertical-align:top}
tbody tr:nth-child(even){background:rgba(255,255,255,.018)}
tbody tr:hover{background:rgba(47,127,224,.09)}
table strong,table b{color:#fff6e4;font-weight:400}
td:first-child{color:#e8dfca}

/* ---------- figures / toc / footer ---------- */
article img.zoom{display:block;width:100%;height:auto;margin:20px 0 6px;border:0;outline:1px solid var(--line);
  cursor:zoom-in;box-shadow:6px 6px 0 rgba(0,0,0,.45)}
.toc{position:sticky;top:96px;min-width:0}
.toc .overline{display:block;margin-bottom:10px}
.toc-list{display:flex;flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;border-left:1px solid var(--line)}
.toc-list a{display:block;padding:7px 0 7px 12px;border:0;border-left:2px solid transparent;
  color:#a99f8c;font:400 13px/1.34 var(--body)}
.toc-list a:hover{color:#fff3dc;border-left-color:var(--rust);background:rgba(180,90,52,.08)}
.foot{border-top:1px solid var(--line);background:#08070e;padding:26px 0 34px;margin-top:18px}
.foot .wrap{padding:0 26px}
.disclaimer{margin:0 0 10px;font-size:13px;color:#8a8172;max-width:88ch}
.foot-links{margin:0 0 10px;font:400 12px/1.9 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:#8a8172}
.foot-links a{color:#b3aa98;border:0;margin-right:2px}
.foot-links a:hover{color:var(--rust-lit)}
.muted{margin:0;font:400 11.5px/1.6 var(--mono);letter-spacing:.05em;color:#8f8674}
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(4,4,8,.95);display:flex;align-items:center;
  justify-content:center;cursor:zoom-out;padding:20px}
.lightbox img{max-width:96vw;max-height:92vh;width:auto;height:auto}

/* ---------- ad slots (empty until the deploy layer adds keys) ---------- */
.ad-slot{display:none}
@media (hover: hover) and (pointer: fine){.ad-slot-native{display:block}}
@media not all and (hover: hover) and (pointer: fine){.ad-slot-mobile{display:block}}
.ad-inner{min-height:90px;border:1px dashed var(--line);background:var(--panel);
  display:flex;align-items:center;justify-content:center}
.ad-banner-box{min-height:50px}
@media print{.ad-slot{display:none}}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .article-grid{grid-template-columns:minmax(0,1fr)}
  .toc{position:static;border-top:1px solid var(--line);padding-top:16px}
  .toc-list{flex-direction:row;flex-wrap:wrap;gap:6px 16px;border-left:0}
  .toc-list a{padding:4px 0;border-left:0;border-bottom:1px solid transparent}
  .toc-list a:hover{border-left:0;border-bottom-color:var(--rust);background:none}
}
@media (max-width:980px){
  .hero-in{grid-template-columns:minmax(0,1fr);gap:22px;padding:28px 20px 32px}
  .hero-shot{order:-1}
  .hero h1{font-size:clamp(32px,8vw,50px)}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid[data-n="3"] .card,.grid[data-n="4"] .card{flex:1 1 calc(50% - 9px)}
  article{padding:24px 20px 28px}
}
@media (max-width:720px){
  .wrap,.home,.article-grid,.foot .wrap{padding-left:16px;padding-right:16px}
  .ribbon .wrap{padding:8px 16px;font-size:10.5px;letter-spacing:.12em}
  .bar{gap:10px;padding:11px 16px}
  .brand span{font-size:16px}
  .nav{width:100%;margin-left:0}
  .nav > ul{gap:0}
  .nav > ul > li > a{padding:8px 9px;font-size:11.5px;letter-spacing:.08em}
  .nav .kids{position:static;display:none;width:100%;box-shadow:none;border:0;
    border-left:2px solid var(--rust);padding:4px 0 4px 8px;background:transparent}
  .nav .has-kids:hover .kids,.nav .has-kids:focus-within .kids{display:flex;flex-direction:row;flex-wrap:wrap}
  .nav .kids a{padding:6px 8px;font-size:12.5px;border:1px solid var(--line);margin:2px;white-space:normal}
  .cta{padding:9px 13px;font-size:11.5px}
  .grid[data-n] .card{flex:1 1 100%}
  .facts{grid-template-columns:minmax(0,1fr)}
  .home-prose h2::before,article h2::before{display:none}
  article h1{font-size:clamp(24px,7vw,32px)}
  table{font-size:13px}
  thead th{white-space:normal}
  tbody td{overflow-wrap:anywhere}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  .card:hover,.btn:hover,.cta:hover{transform:none}
}
/* ---------- lo-fi / PS1 texture layer (this game's own look: CRT scanlines + dithered edges) ---------- */
.hero-shot::before,.hero-shot::after{/* keep corner brackets above the scanline layer */}
.hero-shot img,.thumb img{position:relative}
.hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(4,4,10,.22) 0 1px,rgba(4,4,10,0) 1px 3px)}
.thumb::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.55;
  background:repeating-linear-gradient(0deg,rgba(4,4,10,.26) 0 1px,rgba(4,4,10,0) 1px 3px)}
.hero-copy{text-shadow:0 1px 0 rgba(0,0,0,.5)}
article table thead th, .tbl-wrap{box-shadow:inset 0 0 0 1px rgba(230,221,198,.04)}
/* dithered edge under each section heading, like a PS1 texture seam */
.section-head{position:relative}
.section-head::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:3px;pointer-events:none;
  background:repeating-linear-gradient(90deg,var(--rust) 0 4px,transparent 4px 8px);opacity:.28}
@media (max-width:720px){.hero::before{background:none}}
