/* Mach-X site design system ("Nachtraid" / "Daylight dossier"). Source of truth: docs/website/brand-brief.md.
   Light values on bare :root, dark under prefers-color-scheme; no toggle. Hero, reel, stat band, header and footer are .night in both themes.
   Markup for every component: site/_styleguide.html. No build step, no dependencies. */

/* ============ 1. Fonts (self-hosted, OFL; latin subset) ============ */
@font-face{font-family:"Black Ops One";src:url("../fonts/BlackOpsOne-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow";src:url("../fonts/barlow-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow";src:url("../fonts/barlow-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Barlow";src:url("../fonts/barlow-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow";src:url("../fonts/barlow-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Barlow";src:url("../fonts/barlow-latin-700-normal.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("../fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("../fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

/* ============ 2. Tokens ============ */
:root{
  color-scheme:light;
  /* Daylight dossier. --accent is #7a4f00, not the brief's #8a5a00: that measured 4.01:1 on --bg-2; #7a4f00 is 4.83 on --bg-2, 5.51 on --bg, 6.26 on --plate */
  --bg:#e9e2cf;--bg-2:#ddd4bc;--plate:#f5f0e2;--plate-hi:#fffaf0;
  --line:#24261f;--hair:rgba(36,38,31,.28);
  --ink:#1d1f1a;--ink-dim:#4e4d40;--accent:#7a4f00;
  --brass:#a07a1c;--brass-deep:#6b5208;--fire:#c2410c;--oxide:#a3281a;--olive:#3d4a22;--lamp-on:#2f7a17;--lamp-text:#276614; /* lamp-on as text measured 4.15 on --bg; this is 5.42 / 4.74 on --bg-2 */
  --drop:0 8px 18px rgba(0,0,0,.18);
  /* card/panel face texture: paper grain in daylight, brushed steel at night */
  --tex:var(--grain);

  /* fixed in both themes */
  --hazard-a:#f5c542;--hazard-b:#15171a;
  --night-0:#06080a;--night-1:#0d0f0d;--night-2:#191410;
  --halo:rgba(255,110,30,.34);--beam:rgba(255,236,190,.10);
  --stamp-night:#ef6a4c; /* oxide lifted for stamps on night/steel: 6.4:1 on #0b0c0b (brief oxide #b8341c is 3.3) */
  --paper:#efe6cc;

  /* type */
  --f-display:"Black Ops One","Stardos Stencil",Impact,"Arial Black",sans-serif;
  --f-body:"Barlow",Bahnschrift,"Roboto Condensed","Arial Narrow",system-ui,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
  --fs-hero:clamp(2.75rem,7vw,5.5rem);--fs-h1:clamp(2.1rem,5vw,3.5rem);--fs-h2:clamp(1.6rem,3.2vw,2.25rem);--fs-h3:1.25rem;
  --fs-kicker:.8125rem;--fs-lead:clamp(1.15rem,1.6vw,1.3rem);--fs-body:1.0625rem;--fs-small:.875rem;--fs-meta:.8125rem;--fs-stat:clamp(2.4rem,5vw,3.5rem);

  /* space (4px base) */
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;--s10:128px;
  --section:var(--s8);--pad-card:var(--s4);
  --gutter:max(16px,4vw);--container:1120px;--prose:720px;
  --r:3px;--head-h:56px;
  --t:150ms ease;

  /* materials (inline SVG/gradients, no texture images) */
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .22 0 0 0 0 .17 0 0 0 0 .08 .09 0 0 0 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --grain-lt:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .95 0 0 0 0 .85 .05 0 0 0 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --brushed:repeating-linear-gradient(115deg,transparent 0 22px,rgba(255,255,255,.05) 22px 23px);
  --rivet:#dfe5e8 0 1.5px,#1c2124 2px,transparent 2.6px;
  --rivets:radial-gradient(circle at 7px 7px,var(--rivet)),radial-gradient(circle at calc(100% - 7px) 7px,var(--rivet)),radial-gradient(circle at 7px calc(100% - 7px),var(--rivet)),radial-gradient(circle at calc(100% - 7px) calc(100% - 7px),var(--rivet));
  --hazard:repeating-linear-gradient(-45deg,var(--hazard-a) 0 6px,var(--hazard-b) 6px 12px);
  --city:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 48' preserveAspectRatio='none'%3E%3Cpath fill='%23050605' d='M0 48V28h14v-8h8v12h19V8h4v18h3l10-6 10 6v-8h2l2-14 2 14h4v12h22v-8h18v-8h4v20h28v-4q10-12 20 0V18h20v10h6v-4l7-6v6l7-6v6l7-6v6l7-6v6h3V6h4v18h29v12h20V16h16v12h24v20z'/%3E%3C/svg%3E");
}
@media (min-width:720px){:root{--section:var(--s9);--pad-card:var(--s5);--head-h:64px}}

@media (prefers-color-scheme:dark){
  :root{
    color-scheme:dark;
    --bg:#0b0c0b;--bg-2:#121412;--plate:#1b1f20;--plate-hi:#2c3335;
    --line:#050605;--hair:rgba(216,207,174,.22);
    --ink:#f1ead6;--ink-dim:#bdb393;--accent:#ffcf6a;
    --brass:#e0b552;--brass-deep:#8a6a10;--fire:#ff6e1e;--oxide:#b8341c;--olive:#2c3519;--lamp-on:#7fdc5a;--lamp-text:#7fdc5a;
    --drop:0 8px 18px rgba(0,0,0,.45);
    --tex:var(--brushed);
  }
}
/* night regions: the same dark values in both themes (pictures of the raid, not chrome) */
.night{
  color-scheme:dark;
  --bg:#0b0c0b;--bg-2:#121412;--plate:#1b1f20;--plate-hi:#2c3335;
  --line:#050605;--hair:rgba(216,207,174,.22);
  --ink:#f1ead6;--ink-dim:#bdb393;--accent:#ffcf6a;
  --brass:#e0b552;--brass-deep:#8a6a10;--fire:#ff6e1e;--oxide:#b8341c;--olive:#2c3519;--lamp-on:#7fdc5a;--lamp-text:#7fdc5a;
  --drop:0 8px 18px rgba(0,0,0,.45);--tex:var(--brushed);
  color:var(--ink);
}
/* paper: manila + ink in both themes (devlog slips, fact sheet, post headers) */
.paper{
  --plate:var(--paper);--plate-hi:#f8f1dc;--line:#24261f;--hair:rgba(36,38,31,.28);
  --ink:#1d1f1a;--ink-dim:#4e4d40;--accent:#7a4f00;--brass:#a07a1c;--brass-deep:#6b5208;--oxide:#a3281a;--lamp-on:#2f7a17;--lamp-text:#276614;
  color:var(--ink);
}

/* ============ 3. Base ============ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--head-h) + 16px)}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;
  font:400 var(--fs-body)/1.6 var(--f-body);color:var(--ink);background:var(--grain) var(--bg);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
@media (prefers-color-scheme:dark){body{background:var(--grain-lt) var(--bg)}}
main{flex:1}
img,svg,video{display:block;max-width:100%;height:auto}
[hidden]{display:none!important}
h1,h2,h3,h4{margin:0;font-family:var(--f-display);font-weight:400;text-wrap:balance}
h1{font-size:var(--fs-h1);line-height:1.05;letter-spacing:.03em}
h2{font-size:var(--fs-h2);line-height:1.1;letter-spacing:.04em}
h3{font-size:var(--fs-h3);line-height:1.15;letter-spacing:.05em;text-transform:uppercase}
p{margin:0}
p+p{margin-top:1em}
a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--t),text-shadow var(--t)}
a:hover{text-shadow:0 0 10px color-mix(in srgb,var(--accent) 45%,transparent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
::selection{background:var(--accent);color:var(--bg)}
.skip{position:absolute;left:8px;top:-60px;z-index:100;padding:10px 14px;background:#0b0c0b;color:#ffcf6a;font:400 var(--fs-kicker)/1 var(--f-display);letter-spacing:.2em;text-transform:uppercase}
.skip:focus{top:8px}
.skip:focus-visible{outline-color:#ffcf6a}
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* type roles */
.kicker{display:flex;align-items:center;gap:10px;margin:0 0 var(--s3);font:400 var(--fs-kicker)/1.2 var(--f-display);letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.kicker::before{content:"";flex:none;width:24px;height:2px;background:var(--brass)}
.kicker.bare::before{display:none}
.lead{font-size:var(--fs-lead);line-height:1.55;color:var(--ink);max-width:60ch}
.small,small{font-size:var(--fs-small);font-weight:500;line-height:1.45;letter-spacing:.01em}
.dim{color:var(--ink-dim)}
.meta{font:500 var(--fs-meta)/1.4 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-dim)}

/* ============ 4. Layout ============ */
.container{width:min(var(--container),100% - 2 * var(--gutter));margin-inline:auto}
.section{padding-block:var(--section)}
.section.alt{background:var(--grain) var(--bg-2);border-block:1px solid var(--hair)}
@media (prefers-color-scheme:dark){.section.alt{background:var(--grain-lt) var(--bg-2)}}
.section-head{max-width:68ch;margin-bottom:var(--s6)}
.section-head .lead{margin-top:var(--s3);color:var(--ink-dim)}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s5)}
.grid>*{grid-column:1/-1}
@media (min-width:960px){
  .grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s6)}
  .span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}
}
.cards{display:grid;gap:var(--s5);grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:960px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
.stack>*+*{margin-top:var(--s4)}

/* ============ 5. Materials ============ */
/* steel plate (dark) / paper card (light): face, 2px ink border, top highlight, hard + soft shadow */
.plate{position:relative;background:var(--tex),linear-gradient(var(--plate-hi),var(--plate) 38px);border:2px solid var(--line);border-radius:var(--r);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 3px 0 var(--line),var(--drop)}
.plate.riveted{background:var(--rivets),var(--tex),linear-gradient(var(--plate-hi),var(--plate) 38px)}
.paper.plate,.plate.paper{background:var(--grain),linear-gradient(#f8f1dc,var(--paper) 40px);box-shadow:inset 0 1px 0 #fffaf0,0 3px 0 var(--line),var(--drop)}
@media (prefers-color-scheme:dark){.paper.plate,.plate.paper{box-shadow:inset 0 0 0 1px #c9bd98,inset 0 0 26px rgba(90,64,20,.28),0 3px 0 var(--line),var(--drop)}}
/* rubber stamp: one per view */
.stamp{display:inline-block;padding:4px 10px 3px;border:2px solid currentColor;border-radius:2px;color:var(--oxide);opacity:.85;transform:rotate(-2deg);
  font:400 .9375rem/1.1 var(--f-display);letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;
  -webkit-mask:var(--grain-lt) 0 0/120px,linear-gradient(#000,#000);mask:var(--grain-lt) 0 0/120px,linear-gradient(#000,#000)}
.night .stamp,.plate:not(.paper) .stamp{color:var(--stamp-night)}
/* punched holes for paper slips (left edge) */
.paper.punched{padding-left:calc(var(--pad-card) + 18px)}
.punched::before{content:"";position:absolute;left:10px;top:22px;bottom:22px;width:10px;pointer-events:none;
  background:radial-gradient(circle,var(--bg) 0 4px,rgba(36,38,31,.45) 4.5px,transparent 5.5px) center top/10px 10px no-repeat,radial-gradient(circle,var(--bg) 0 4px,rgba(36,38,31,.45) 4.5px,transparent 5.5px) center bottom/10px 10px no-repeat}

/* status lamps: 10px radial dots */
.lamp{display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;vertical-align:middle;
  background:radial-gradient(circle at 35% 30%,#f2ffe6 0 14%,#7fdc5a 42%,#2d6a14 90%);box-shadow:0 0 0 2px rgba(0,0,0,.55),0 0 8px 2px rgba(127,220,90,.55)}
.lamp.blink{animation:lamp 1.1s steps(2,jump-none) infinite}
.lamp.amber{background:radial-gradient(circle at 35% 30%,#fff4d8 0 14%,#ffc560 42%,#8a5a00 90%);box-shadow:0 0 0 2px rgba(0,0,0,.55),0 0 8px 2px rgba(255,170,60,.6)}
.lamp.red{background:radial-gradient(circle at 36% 30%,#fff2e0 0 12%,#ff6a4a 40%,#9a1d0c 88%);box-shadow:0 0 0 2px #120806,0 0 8px 2px rgba(255,90,60,.6)}
@keyframes lamp{to{opacity:.35}}
.paper .lamp{box-shadow:0 0 0 2px #24261f,0 0 6px 1px rgba(47,122,23,.5)}

/* icons: inline SVG, single fill, 24px grid, cut-outs via evenodd */
.ico{width:24px;height:24px;flex:none;fill:currentColor;fill-rule:evenodd}
.ico.s20{width:20px;height:20px}.ico.s32{width:32px;height:32px}
.ico.lit{color:#ffd88a;filter:drop-shadow(0 0 5px rgba(255,170,60,.95)) drop-shadow(0 0 12px rgba(255,140,40,.6))}

/* ============ 6. Night sky (hero, reel band, footer, 404) ============ */
.nightsky{position:relative;isolation:isolate;overflow:hidden;
  background:radial-gradient(ellipse 80% 34% at 30% 100%,var(--halo),transparent 70%),radial-gradient(ellipse 60% 26% at 82% 100%,rgba(255,80,20,.28),transparent 70%),
    linear-gradient(var(--night-0),var(--night-1) 60%,var(--night-2))}
.nightsky::after{content:"";position:absolute;left:0;right:0;bottom:0;z-index:-1;height:clamp(36px,6vw,64px);background:var(--city) 0 100%/clamp(320px,40vw,560px) 100% repeat-x;pointer-events:none}
.sky{position:absolute;inset:0;z-index:-2;pointer-events:none;overflow:hidden}
.sky>*{position:absolute;display:block}
.beam{bottom:6%;left:18%;width:120px;height:135%;margin-left:-60px;transform-origin:50% 100%;transform:rotate(-24deg);
  background:linear-gradient(to top,rgba(255,236,190,.12),var(--beam) 50%,transparent 92%);clip-path:polygon(47% 100%,53% 100%,100% 0,0 0);
  animation:sweep 17s ease-in-out infinite alternate}
.beam.b{left:76%;transform:rotate(20deg);animation-duration:14s;animation-direction:alternate-reverse}
.beam.c{left:52%;transform:rotate(-6deg);animation-duration:20s;opacity:.7}
@keyframes sweep{from{rotate:-10deg}to{rotate:12deg}}
.flak{width:26px;height:26px;border-radius:50%;opacity:0;top:22%;left:64%;
  background:radial-gradient(circle,#fff6d8 0 12%,#ffb347 30%,rgba(255,110,30,.45) 55%,transparent 72%);animation:flak 5.6s 1.4s infinite}
.flak.b{top:12%;left:30%;width:18px;height:18px;animation-duration:6.9s;animation-delay:3.8s}
@keyframes flak{0%,90%{opacity:0;transform:scale(.4)}92%{opacity:1;transform:scale(1)}97%,100%{opacity:0;transform:scale(1.6)}}
.smoke{inset:0;background:radial-gradient(ellipse 70% 40% at 20% 60%,rgba(0,0,0,.35),transparent 70%),linear-gradient(rgba(4,5,4,.55),transparent 30%)}

/* ============ 7. Header / nav ============ */
.site-head{position:sticky;top:0;z-index:50;height:var(--head-h);background:#0b0c0b;border-bottom:1px solid var(--hair);box-shadow:0 3px 0 #050605}
@media (prefers-color-scheme:light){.site-head{background:var(--brushed),#3d4a22}}
.site-head .container{height:100%;display:flex;align-items:center;gap:var(--s4)}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto;color:var(--ink);text-decoration:none;font:400 1.25rem/1 var(--f-display);letter-spacing:.06em}
.brand img{width:36px;height:36px;border:2px solid #050605;border-radius:6px}
.brand:hover{text-shadow:none;color:var(--accent)}
.site-nav ul{display:flex;gap:var(--s1);margin:0;padding:0;list-style:none}
.site-nav ul a{position:relative;display:flex;align-items:center;min-height:44px;padding:0 10px;color:var(--ink-dim);text-decoration:none;
  font:400 .8125rem/1 var(--f-display);letter-spacing:.2em;text-transform:uppercase}
.site-nav ul a:hover{color:var(--ink);text-shadow:0 0 10px rgba(255,170,60,.45)}
.site-nav ul a[aria-current=page]{color:#ffd88a;text-shadow:0 0 10px rgba(255,170,60,.75),0 1px 2px #000}
.site-nav ul a[aria-current=page]::after{content:"";position:absolute;left:50%;bottom:4px;width:18px;height:3px;margin-left:-9px;border-radius:2px;background:#ffc560;box-shadow:0 0 8px 2px rgba(255,160,40,.7)}
.nav-toggle{display:none}
.head-cta{flex:none}
/* phone without JS: links run as a scrollable row under the band */
@media (max-width:899px){
  .site-head{height:auto;min-height:var(--head-h)}
  .site-head .container{flex-wrap:wrap;padding-block:6px}
  .site-nav{order:3;width:100%;overflow-x:auto}
  .site-head .head-cta{display:none}
  .js .site-head{height:var(--head-h)}
  .js .site-head .container{flex-wrap:nowrap;padding-block:0}
  .js .nav-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:2px solid #050605;border-radius:var(--r);cursor:pointer;
    background:var(--brushed),linear-gradient(#3a4245,#22282a);color:var(--ink);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 2px 0 #050605;
    font:400 .8125rem/1 var(--f-display);letter-spacing:.2em}
  .js .nav-toggle .bars{width:16px;height:10px;background:linear-gradient(currentColor 0 0) 0 0/100% 2px no-repeat,linear-gradient(currentColor 0 0) 0 50%/100% 2px no-repeat,linear-gradient(currentColor 0 0) 0 100%/100% 2px no-repeat}
  .js .nav-toggle[aria-expanded=true] .bars{background:linear-gradient(currentColor 0 0) 0 50%/100% 2px no-repeat}
  .js .site-nav{position:fixed;inset:var(--head-h) 0 0;z-index:49;width:auto;overflow:auto;padding:var(--s6) var(--gutter);display:none;background:var(--brushed),linear-gradient(#0b0c0b,#121412);border-top:3px solid #050605}
  .js.nav-open .site-nav{display:block}
  .js .site-nav ul{flex-direction:column;gap:var(--s2)}
  .js .site-nav ul a{min-height:56px;padding:0;font-size:1.5rem;letter-spacing:.14em;border-bottom:1px solid var(--hair)}
  .js .site-nav ul a[aria-current=page]::after{left:auto;right:0;bottom:50%;margin:0 0 -2px}
  .js .site-nav .head-cta-m{display:flex;margin-top:var(--s6)}
  .js.nav-open{overflow:hidden}
}
.site-nav .head-cta-m{display:none}
@media (min-width:900px){.site-nav .head-cta-m{display:none!important}}

/* ============ 8. Buttons ============ */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 20px;
  border:2px solid #050605;border-radius:var(--r);cursor:pointer;text-decoration:none;text-align:center;
  font:400 1rem/1.1 var(--f-display);letter-spacing:.12em;text-transform:uppercase;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 3px 0 #050605,0 6px 14px rgba(0,0,0,.3);
  transition:transform 80ms ease,box-shadow 80ms ease,filter var(--t)}
.btn:hover{text-shadow:none;filter:brightness(1.08)}
.btn:active{transform:translateY(2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 #050605,0 2px 6px rgba(0,0,0,.3)}
.btn .ico{width:18px;height:18px}
/* primary: brass face, hazard edges top and bottom (the only hazard stripes on the site) */
.btn.play{padding-block:9px;color:#2a1f00;background:var(--rivets),linear-gradient(#ffd96a,#d99a1c)}
.btn.play::before,.btn.play::after{content:"";position:absolute;left:0;right:0;height:5px;background:var(--hazard);pointer-events:none}
.btn.play::before{top:0}.btn.play::after{bottom:0}
/* secondary: gunmetal + green lamp */
.btn.test{color:#f1ead6;background:var(--rivets),var(--brushed),linear-gradient(#3e474a,#22282a)}
/* support: oxide plate like the game's TAKE OFF (darkened from the brief's #e0523a so the label passes 4.5:1) */
.btn.donate{color:#fff4e4;text-shadow:0 1px 0 rgba(0,0,0,.45);background:var(--rivets),linear-gradient(#c4452e,#8f2414)}
.btn.sm{min-height:40px;padding:0 14px;font-size:.8125rem;letter-spacing:.1em}
.btn.sm.play{padding-block:7px}
.cta-row{display:flex;flex-wrap:wrap;gap:var(--s4);align-items:flex-start}
.cta{display:inline-flex;flex-direction:column;gap:6px}
.cta-note{font-size:var(--fs-small);font-weight:500;color:var(--ink-dim)}
@media (max-width:479px){.cta-row>.btn,.cta-row>.cta,.cta .btn{width:100%}}
/* text link with arrow */
.go{font:400 var(--fs-kicker)/1.2 var(--f-display);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;display:inline-flex;align-items:center;gap:8px;min-height:24px}
.go::after{content:"\2192";font-family:var(--f-body);font-weight:600;transition:transform var(--t)}
.go:hover::after{transform:translateX(3px)}

/* ============ 9. Hero + reel ============ */
.hero{min-height:calc(100svh - var(--head-h));display:flex;align-items:center;padding-block:var(--s7) calc(var(--s8) + 40px)}
@media (min-width:960px){.hero{min-height:min(88svh,880px)}}
@media (max-width:959px){.hero-bg{display:none}} /* phone: the reel already shows the frame */
.hero-bg{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover;filter:brightness(.6) saturate(.8) sepia(.2);opacity:.2;
  -webkit-mask:radial-gradient(ellipse 70% 80% at 75% 45%,#000,transparent 75%);mask:radial-gradient(ellipse 70% 80% at 75% 45%,#000,transparent 75%)}
.hero .container{display:grid;gap:var(--s7);align-items:center}
@media (min-width:960px){.hero .container{grid-template-columns:5fr 7fr;gap:var(--s7)}}
.hero-copy>*+*{margin-top:var(--s5)}
.hero .kicker{gap:10px;color:var(--ink)}
.hero .kicker::before{display:none}
.wordmark{width:min(100%,460px);filter:drop-shadow(0 4px 0 #050605) drop-shadow(0 0 28px rgba(255,140,40,.25))}
.tagline{text-wrap:balance;font:400 clamp(1.3rem,2.6vw,1.75rem)/1.15 var(--f-display);letter-spacing:.04em;color:var(--accent);text-shadow:0 0 18px rgba(255,170,60,.35)}
.hero-title{font-size:var(--fs-hero);line-height:1;letter-spacing:.03em}
@media (max-width:959px){.hero-copy{text-align:center}.hero-copy .kicker,.hero-copy .cta-row{justify-content:center}.wordmark{margin-inline:auto}.hero .lead{margin-inline:auto}}

/* gun-camera reel: 16:9, 2px ink + 1px brass inner rim, registration marks, reticle, frame counter */
.reel{margin:0}
.reel-frame{position:relative;aspect-ratio:16/9;overflow:hidden;background:#050605;border:2px solid #050605;border-radius:2px;
  box-shadow:0 0 0 1px rgba(224,181,82,.35),0 3px 0 #050605,0 18px 40px rgba(0,0,0,.6),0 0 60px rgba(255,120,40,.12)}
.reel-frame>img,.reel-frame>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.reel-frame>img{filter:contrast(1.05) saturate(.85) sepia(.12)}
.reel-hud{position:absolute;inset:0;pointer-events:none;
  background:
    /* corner registration marks */
    linear-gradient(#ffe7b0,#ffe7b0) 14px 14px/18px 2px,linear-gradient(#ffe7b0,#ffe7b0) 14px 14px/2px 18px,
    linear-gradient(#ffe7b0,#ffe7b0) calc(100% - 14px) 14px/18px 2px,linear-gradient(#ffe7b0,#ffe7b0) calc(100% - 14px) 14px/2px 18px,
    linear-gradient(#ffe7b0,#ffe7b0) 14px calc(100% - 14px)/18px 2px,linear-gradient(#ffe7b0,#ffe7b0) 14px calc(100% - 14px)/2px 18px,
    linear-gradient(#ffe7b0,#ffe7b0) calc(100% - 14px) calc(100% - 14px)/18px 2px,linear-gradient(#ffe7b0,#ffe7b0) calc(100% - 14px) calc(100% - 14px)/2px 18px,
    /* reticle: thin cross with a gap in the middle */
    linear-gradient(90deg,transparent calc(50% - 60px),rgba(255,231,176,.55) calc(50% - 60px) calc(50% - 12px),transparent calc(50% - 12px) calc(50% + 12px),rgba(255,231,176,.55) calc(50% + 12px) calc(50% + 60px),transparent calc(50% + 60px)) 0 50%/100% 1px,
    linear-gradient(transparent calc(50% - 60px),rgba(255,231,176,.55) calc(50% - 60px) calc(50% - 12px),transparent calc(50% - 12px) calc(50% + 12px),rgba(255,231,176,.55) calc(50% + 12px) calc(50% + 60px),transparent calc(50% + 60px)) 50% 0/1px 100%,
    /* vignette + film scan lines */
    radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55)),repeating-linear-gradient(transparent 0 3px,rgba(0,0,0,.08) 3px 4px);
  background-repeat:no-repeat;opacity:.9}
.reel-hud::before{content:"";position:absolute;inset:5px;border:1px solid rgba(224,181,82,.55)}
.reel-cam{position:absolute;left:14px;bottom:30px;color:#ffe7b0;font:500 .75rem/1 var(--f-mono);letter-spacing:.08em;text-shadow:0 1px 2px #000}
.reel-rec{position:absolute;right:38px;top:28px;display:flex;align-items:center;gap:6px;color:#ffe7b0;font:500 .75rem/1 var(--f-mono);letter-spacing:.08em;text-shadow:0 1px 2px #000}
.reel .stamp{position:absolute;left:50%;top:50%;translate:-50% -50%;font-size:clamp(.95rem,2.4vw,1.35rem);background:rgba(10,8,6,.55);opacity:.92}
.reel figcaption{margin-top:var(--s3);font-size:var(--fs-small);font-weight:500;color:var(--ink-dim)}
.reel figcaption .meta{margin-right:8px;color:var(--accent)}
.reel-play{position:absolute;left:50%;top:50%;z-index:2;display:grid;place-items:center;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;
  background:radial-gradient(circle at 40% 32%,#fff3c4,#e8b84a 45%,#9a6c12 100%);border:2px solid #050605;
  box-shadow:inset 0 0 0 3px rgba(255,240,200,.45),inset 0 -4px 8px rgba(80,50,0,.45),0 3px 0 #050605,0 0 30px rgba(255,170,60,.45);color:#2a1f00;transition:transform var(--t),box-shadow var(--t)}
.reel-play::before{content:"";width:0;height:0;margin-left:6px;border-style:solid;border-width:13px 0 13px 22px;border-color:transparent transparent transparent currentColor}
.reel-play:hover{transform:scale(1.06);box-shadow:inset 0 0 0 3px rgba(255,240,200,.55),inset 0 -4px 8px rgba(80,50,0,.45),0 3px 0 #050605,0 0 44px rgba(255,170,60,.7)}
.reel-play:focus-visible{outline:2px solid #ffcf6a;outline-offset:4px}
.reel[data-state=pending] .reel-play,.reel[data-state=pending] video{display:none}
.reel[data-state=ready] .stamp{display:none}
.reel[data-state=playing] :is(.reel-hud,.reel-play,.stamp,.reel-cam,.reel-rec,img){display:none}
@media (max-width:479px){.reel-hud::before{inset:4px}.reel-cam{bottom:24px;left:12px;font-size:.6875rem}.reel-rec{right:34px;top:24px;font-size:.6875rem}.reel-play{width:60px;height:60px;margin:-30px 0 0 -30px}}

/* ============ 10. Stat band ============ */
.statband{padding-block:var(--s7);border-block:3px solid #050605;
  background:var(--brushed),radial-gradient(ellipse 60% 120% at 50% 130%,rgba(255,110,30,.16),transparent 70%),linear-gradient(#0d0f0d,#0b0c0b)}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;text-align:center}
.stat{display:flex;flex-direction:column;align-items:center;gap:8px;padding:var(--s4) var(--s2);box-shadow:-1px 0 0 var(--hair)}
.stat:nth-child(3n+1){box-shadow:none}
.stat:nth-child(n+4){border-top:1px solid var(--hair)}
.stat b{font:400 var(--fs-stat)/1 var(--f-display);letter-spacing:.02em;color:var(--accent);text-shadow:0 0 18px rgba(255,170,60,.45),0 2px 0 #050605;font-variant-numeric:tabular-nums}
.stat span{font:400 .8125rem/1.1 var(--f-display);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim)}
@media (min-width:900px){.stats{grid-template-columns:repeat(6,minmax(0,1fr))}.stat:nth-child(3n+1){box-shadow:-1px 0 0 var(--hair)}.stat:first-child{box-shadow:none}.stat:nth-child(n+4){border-top:0}}

/* ============ 11. Feature cards ============ */
.card{position:relative;display:flex;flex-direction:column;overflow:hidden;padding:0;border-left-width:5px;border-left-color:var(--brass-deep)}
.card .shot{aspect-ratio:16/10;width:100%;object-fit:cover;border-bottom:2px solid var(--line);background:#050605}
.card-body{padding:var(--pad-card) var(--pad-card) calc(var(--pad-card) + 4px)}
.card-body .kicker{margin-bottom:var(--s2)}
.card-body h3{margin-bottom:var(--s2)}
.card-body p{color:var(--ink-dim)}
.card::after,.shine::after{content:"";position:absolute;top:-20%;bottom:-20%;left:0;width:34%;pointer-events:none;opacity:0;transform:translateX(-140%) skewX(-20deg);
  background:linear-gradient(90deg,transparent,rgba(255,250,225,.16) 45%,rgba(255,255,255,.24) 50%,rgba(255,250,225,.16) 55%,transparent)}
.card:hover,.card:focus-within{box-shadow:inset 0 2px 0 var(--plate-hi),inset 0 1px 0 rgba(255,255,255,.08),0 3px 0 var(--line),var(--drop)}
.card:hover::after,.shine:hover::after{opacity:1;transform:translateX(420%) skewX(-20deg);transition:transform 600ms ease-in-out,opacity 0s}
/* wide row (Features page): image + text alternate */
.feature-row{display:grid;gap:0;padding:0}
.feature-row .shot{aspect-ratio:16/10;width:100%;height:100%;object-fit:cover;border-bottom:2px solid var(--line)}
.feature-row .card-body{align-self:center;padding:var(--s5)}
.feature-row .card-body p{max-width:58ch}
@media (min-width:800px){
  .feature-row{grid-template-columns:7fr 5fr}
  .feature-row .shot{border-bottom:0;border-right:2px solid var(--line)}
  .feature-row.flip{grid-template-columns:5fr 7fr}
  .feature-row.flip .shot{order:2;border-right:0;border-left:2px solid var(--line)}
  .feature-row .card-body{padding:var(--s6)}
}
.rows>*+*{margin-top:var(--s6)}
/* dossier ID photo (pilots on Features / Press) */
.idphoto{display:inline-block;margin:0;padding:6px 6px 22px;background:var(--grain),#f3ecd8;border:1px solid #24261f;box-shadow:0 2px 0 #24261f;transform:rotate(-1.5deg)}
.idphoto img{width:112px;height:112px;object-fit:cover;filter:grayscale(.3) contrast(1.05);border:1px solid #24261f}
.idphoto figcaption{margin-top:4px;color:#1d1f1a;font:500 .6875rem/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;text-align:center}

/* ============ 12. Screenshot gallery + lightbox ============ */
.gallery{margin:0;padding:0 0 var(--s3);list-style:none;display:grid;grid-auto-flow:column;grid-auto-columns:min(62vw,240px);gap:var(--s4);
  overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--brass) var(--bg-2);border-radius:var(--r)}
.gallery>li{scroll-snap-align:start}
.gallery:focus-visible{outline-offset:4px}
@media (min-width:960px){.gallery{grid-auto-flow:row;grid-template-columns:repeat(6,minmax(0,1fr));overflow:visible}}
/* mixed grid: 2 / 3 / 6 columns; the 16:9 shot spans 2 / 3 / 3 so its height stays close to a 9:16 cell */
.gallery.grid-mix{grid-auto-flow:row dense;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;align-items:start}
.gallery.grid-mix .wide{grid-column:span 2}
@media (min-width:640px){.gallery.grid-mix{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery.grid-mix .wide{grid-column:span 3}}
@media (min-width:960px){.gallery.grid-mix{grid-template-columns:repeat(6,minmax(0,1fr))}}
.shotf{margin:0;border:2px solid var(--line);background:#050605;box-shadow:0 3px 0 var(--line)}
.shotf a{display:block;position:relative;overflow:hidden}
.shotf a:focus-visible{outline:3px solid #ffcf6a;outline-offset:-5px}
.shotf img{width:100%;aspect-ratio:9/16;object-fit:cover;transition:filter var(--t),transform 300ms ease}
.wide .shotf img{aspect-ratio:16/9}
.shotf a:hover img{filter:brightness(1.08);transform:scale(1.015)}
.shotf figcaption{padding:7px 10px 6px;border-top:2px solid var(--line);background:#121412;color:#d8cfae;font:500 .75rem/1.3 var(--f-mono);letter-spacing:.04em;text-transform:uppercase}
.shotf figcaption b{font-weight:500;color:#ffcf6a}
.lightbox{width:100vw;max-width:100vw;height:100%;max-height:100%;margin:0;padding:0;border:0;background:transparent;color:#f1ead6;overflow:hidden}
.lightbox::backdrop{background:rgba(4,5,4,.92)}
.lightbox[open]{display:grid;grid-template-rows:auto 1fr auto;place-items:center}
.lightbox img{max-width:min(96vw,1080px);max-height:calc(100svh - 140px);width:auto;border:2px solid #050605;box-shadow:0 0 0 1px rgba(224,181,82,.4),0 20px 60px #000;touch-action:pan-y}
.lightbox .lb-bar{justify-self:stretch;display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) var(--gutter)}
.lightbox .lb-cap{padding:var(--s3) var(--gutter);color:#d8cfae;font:500 .8125rem/1.3 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;text-align:center}
.lb-key{display:inline-grid;place-items:center;min-width:48px;min-height:48px;padding:0 12px;border:2px solid #050605;border-radius:var(--r);cursor:pointer;color:#f1ead6;
  background:var(--brushed),linear-gradient(#3e474a,#22282a);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 3px 0 #050605;font:400 .8125rem/1 var(--f-display);letter-spacing:.16em}
.lb-key:focus-visible{outline-color:#ffcf6a}
.lb-nav{display:flex;gap:var(--s2)}

/* ============ 13. Devlog: report slips, post header, prose ============ */
.report{display:grid;gap:var(--s4);padding:var(--pad-card)}
.report .meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;color:var(--ink-dim)}
.report .report-t{font-size:clamp(1.15rem,2.4vw,1.4rem);letter-spacing:.04em;text-transform:none}
.report .report-t a{color:var(--ink);text-decoration:none}
.report .report-t a::after{content:"";position:absolute;inset:0;z-index:1} /* whole slip is the link target */
.report .report-t a:focus-visible{outline:0}
.report:focus-within{outline:2px solid var(--accent);outline-offset:3px}
.report p{color:var(--ink-dim)}
.report .thumb{width:100%;aspect-ratio:16/9;object-fit:cover;border:2px solid var(--line)}
.report .go{position:relative;z-index:2}
.newtag{display:inline-flex;align-items:center;gap:6px;color:var(--lamp-text);font-weight:500}
@media (min-width:720px){.report{grid-template-columns:minmax(0,1fr) 280px;align-items:start;padding:var(--s5) var(--s5) var(--s5) calc(var(--s5) + 18px)}.report .thumb{grid-column:2;grid-row:1/span 4}}
.reports>*+*{margin-top:var(--s5)}
/* paper clip on the first slip */
.clip .meta{padding-right:28px}
.clip::after{content:"";position:absolute;top:-14px;right:14px;width:18px;height:46px;border:3px solid #8b9196;border-radius:9px;border-bottom-color:transparent;box-shadow:inset 0 0 0 3px transparent;
  background:linear-gradient(#8b9196,#8b9196) 50% 8px/3px 26px no-repeat;z-index:3;filter:drop-shadow(0 1px 0 rgba(0,0,0,.4))}

.post-head{position:relative;padding:var(--s6) var(--pad-card);margin-top:var(--s7)}
@media (min-width:720px){.post-head{padding:var(--s7) var(--s7) var(--s6) calc(var(--s7) + 10px)}}
.post-head h1{margin-block:var(--s3) var(--s4);max-width:22ch}
.post-head .lead{color:var(--ink-dim)}
@media (min-width:720px){.post-head.punched{padding-left:calc(var(--s7) + 10px)}}
.post-head .stamp{position:absolute;right:var(--s5);top:var(--s5)}
@media (max-width:559px){.post-head .stamp{position:static;margin-bottom:var(--s3)}}
.prose{max-width:var(--prose);margin-inline:auto;padding-block:var(--s7) var(--section)}
.prose>*{margin:0}
.prose>*+*{margin-top:1.1em}
.prose h2{margin-top:1.8em;font-size:clamp(1.35rem,2.6vw,1.75rem)}
.prose h3{margin-top:1.6em}
.prose ul,.prose ol{padding-left:1.3em}
.prose li+li{margin-top:.35em}
.prose li::marker{color:var(--brass)}
.prose strong{font-weight:600}
.prose blockquote{padding:var(--s3) var(--s4);border-left:4px solid var(--brass-deep);background:var(--plate);color:var(--ink-dim);font-style:italic}
.prose figure{margin-block:1.8em}
.prose figure img{width:100%;border:2px solid var(--line);box-shadow:0 3px 0 var(--line)}
.prose figcaption{margin-top:var(--s2);font-size:var(--fs-small);font-weight:500;color:var(--ink-dim)}
.prose code{padding:1px 5px;border:1px solid var(--hair);border-radius:2px;background:var(--plate);font:400 .9em var(--f-mono)}
.prose hr{height:2px;border:0;background:repeating-linear-gradient(90deg,var(--brass) 0 8px,transparent 8px 16px)}
.prose .meta-foot{padding-top:var(--s2)}

/* ============ 14. Flight log (development timeline) ============ */
.flightlog{position:relative;margin:0;padding:0 0 0 44px;list-style:none;max-width:var(--prose)}
.flightlog::before{content:"";position:absolute;left:15px;top:6px;bottom:6px;width:2px;background:repeating-linear-gradient(var(--brass) 0 8px,transparent 8px 16px)}
.leg{position:relative;padding-bottom:var(--s6)}
.leg:last-child{padding-bottom:0}
.leg::before{content:"";position:absolute;left:-36px;top:5px;width:14px;height:14px;transform:rotate(45deg);background:var(--bg);border:2px solid var(--brass);box-shadow:0 0 0 3px var(--bg)}
.leg-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px}
.leg-ver{font:400 1.375rem/1 var(--f-display);letter-spacing:.04em;color:var(--ink)}
.leg ul{margin:var(--s2) 0 0;padding:0;list-style:none;color:var(--ink-dim)}
.leg li{position:relative;padding-left:16px}
.leg li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:2px;background:var(--brass)}
.leg .go{margin-top:var(--s2)}
.leg.now::before{left:-38px;top:3px;width:18px;height:18px;transform:none;border-radius:50%;border:0;
  background:radial-gradient(circle at 35% 30%,#f2ffe6 0 14%,#7fdc5a 42%,#2d6a14 90%);box-shadow:0 0 0 3px var(--bg),0 0 0 5px #050605,0 0 14px 4px rgba(127,220,90,.55)}
.nowtag{display:inline-flex;align-items:center;padding:3px 8px 2px;border:2px solid currentColor;border-radius:2px;color:var(--lamp-text);font:400 .75rem/1 var(--f-display);letter-spacing:.18em;text-transform:uppercase}
.leg.planned{opacity:.62}
.leg.planned::before{background:var(--bg);border-color:var(--ink-dim)}
.leg.planned .leg-ver{font-size:1.125rem}

/* ============ 15. Press fact sheet ============ */
.factsheet{width:100%;border-collapse:collapse}
.factsheet th,.factsheet td{padding:var(--s3) 0;border-bottom:1px solid var(--hair);text-align:left;vertical-align:top}
.factsheet th{width:34%;padding-right:var(--s4);font:400 .75rem/1.5 var(--f-display);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim)}
.factsheet td{font:500 .875rem/1.5 var(--f-mono);letter-spacing:.02em;overflow-wrap:anywhere}
.factsheet tr:last-child>*{border-bottom:0}
.factsheet caption{text-align:left;padding-bottom:var(--s3)}
@media (max-width:559px){.factsheet,.factsheet tbody,.factsheet tr,.factsheet th,.factsheet td{display:block;width:auto}.factsheet th{padding-bottom:0;border-bottom:0}.factsheet td{padding-top:2px}}
.dossier{padding:var(--s5) var(--pad-card)}
@media (min-width:720px){.dossier{padding:var(--s6) var(--s6) var(--s6) calc(var(--s6) + 10px)}}
.dossier-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s4)}

/* ============ 16. Support plates ============ */
.offer{padding:var(--s5) var(--pad-card)}
.offer h3{margin-bottom:var(--s3)}
.offer ul{margin:var(--s3) 0 var(--s5);padding-left:1.2em;color:var(--ink-dim)}
.offer li::marker{color:var(--brass)}

/* ============ 17. Footer ============ */
.site-foot{position:relative;margin-top:56px;padding-block:var(--s7) var(--s5);background:linear-gradient(#0b0c0b,#0d0f0d);border-top:0}
.site-foot::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:56px;pointer-events:none;
  background:var(--city) 0 100%/560px 100% repeat-x,radial-gradient(ellipse 50% 90% at 30% 100%,rgba(255,110,30,.22),transparent 70%)}
.foot-cols{display:grid;gap:var(--s6)}
@media (min-width:800px){.foot-cols{grid-template-columns:5fr 4fr 4fr}}
.site-foot .wm{width:180px}
.site-foot .tagline{margin-top:var(--s3);font-size:1rem}
.site-foot .foot-h{margin-bottom:var(--s3);font-family:var(--f-display);line-height:1.2;font-size:var(--fs-kicker);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim)}
.foot-links{margin:0;padding:0;list-style:none;columns:2;column-gap:var(--s5)}
.foot-links a{display:inline-flex;align-items:center;min-height:36px;color:var(--ink);text-decoration:none}
.foot-links a:hover{color:var(--accent)}
.site-foot address{font-style:normal;color:var(--ink-dim)}
.site-foot address a{display:inline-block;margin-top:var(--s2);font-family:var(--f-mono);font-size:.9375rem}
.foot-line{margin-top:var(--s7);padding-top:var(--s4);border-top:1px solid var(--hair);display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s2)}

/* ============ 18. 404: the one bullet-holed plate ============ */
.crash{min-height:calc(100svh - var(--head-h));display:grid;place-items:center;padding-block:var(--s8) calc(var(--s8) + 40px)}
.crash-plate{--hole:#050505 0 3px,#d9dfe2 3.6px 4.6px,rgba(28,18,8,.65) 5.2px 8px,transparent 11px;
  position:relative;width:min(100%,560px);margin-inline:auto;padding:var(--s7) var(--s5) var(--s6);text-align:center;transform:rotate(-1.2deg);
  border:2px solid #050605;border-radius:4px;color:#f1ead6;
  background:radial-gradient(circle at 5% 22%,var(--hole)),radial-gradient(circle at 93% 11%,var(--hole)),radial-gradient(circle at 90% 91%,var(--hole)),radial-gradient(circle at 7% 90%,var(--hole)),radial-gradient(circle at 96% 54%,var(--hole)),
    radial-gradient(ellipse 30% 26% at 92% 88%,rgba(20,10,4,.75),transparent 70%),radial-gradient(ellipse 24% 20% at 6% 22%,rgba(20,10,4,.6),transparent 70%),
    var(--rivets),var(--brushed),linear-gradient(#56605f,#353d3f 55%,#262c2e);
  box-shadow:inset 0 0 0 2px #7b858b,inset 0 0 0 4px #1f2426,0 4px 0 #050605,0 12px 30px rgba(0,0,0,.6),0 0 60px 6px rgba(255,150,60,.12)}
.crash-plate .meta{color:#ffe7b0}
.crash.nightsky::after{display:none} /* the footer's skyline is the horizon here */
main:has(>.crash:last-child)+.site-foot{margin-top:0}
.crash-plate h1{margin-block:var(--s3) var(--s4);text-shadow:0 2px 0 #050605}
.crash-plate p{color:#e2d9bd}
.crash-plate .cta-row{justify-content:center;margin-top:var(--s5)}

/* ============ 18b. Page pieces added with the full site (same tokens, same materials) ============ */
h2.h3{font-size:var(--fs-h3);line-height:1.15;letter-spacing:.05em;text-transform:uppercase}
.card-body .h3{margin-bottom:var(--s2)}
.page-top{padding-bottom:0}
.page-top .section-head{margin-bottom:0}
.page-top+.section{padding-top:var(--s7)}
.page-top.nightsky{padding-bottom:calc(var(--s7) + clamp(36px,6vw,64px))} /* sub-page heads: room for the skyline */
.more{margin-top:var(--s5)}
/* devlog / changelog pager: older left, newer right */
.post-nav{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));margin-top:var(--s6)!important}
.post-nav a{display:flex;flex-direction:column;gap:4px;padding:var(--s3) var(--s4);border:2px solid var(--line);border-radius:var(--r);background:var(--plate);color:var(--ink);text-decoration:none;font-weight:600;box-shadow:0 3px 0 var(--line);transition:color var(--t),background var(--t)}
.post-nav a:hover{color:var(--accent);background:var(--plate-hi)}
.post-nav .meta{color:var(--accent)}
.post-nav .older .meta::before{content:"\2190\00a0"}
.post-nav .newer{text-align:right;align-items:flex-end}
.post-nav .newer .meta::after{content:"\00a0\2192"}
.leg-links{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:var(--s2)}
/* legal pages: their own text, shared chrome */
.legal .prose>h1{margin-bottom:var(--s2)}
.legal .meta{text-transform:none;letter-spacing:.02em}
/* press kit */
.press-copy{padding-block:0}
.card .shot.contain{object-fit:contain;padding:var(--s5);background:radial-gradient(ellipse at 50% 80%,rgba(255,110,30,.22),transparent 70%),linear-gradient(#06080a,#191410)}
.press-tm{margin-top:var(--s5)}

/* ============ 18c. Review fixes (a11y, finish gate) ============ */
.feature-row .card-body p{font-size:var(--fs-body)}
.offer h2.h3{margin-bottom:var(--s3)}
/* galleries: the 16:9 shot gets a full row on desktop; the press grid runs five portraits a row so nothing is orphaned */
@media (min-width:960px){.gallery.grid-mix .wide{grid-column:1/-1}.gallery.grid-mix.five{grid-template-columns:repeat(5,minmax(0,1fr))}}
/* pilots as dossier ID photos */
.pilots{display:flex;flex-wrap:wrap;gap:var(--s4);margin:var(--s4) 0 0;padding:0;list-style:none}
.pilots .idphoto img{width:84px;height:84px}
.pilots li:nth-child(2) .idphoto{transform:rotate(1.2deg)}
/* support: monuments row above the price list, barracks band (Donate and Other ways stack beside the packs plate, so no dead space) */
.monuments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3);margin:0 0 var(--s4);padding:0;list-style:none}
.monuments figure{margin:0;padding:var(--s2) var(--s2) var(--s3);border:2px solid #050605;border-radius:var(--r);text-align:center;
  background:radial-gradient(ellipse at 50% 85%,rgba(255,140,40,.25),transparent 65%),linear-gradient(#0d0f0d,#191410)}
.monuments img{width:100%;height:auto;aspect-ratio:400/420;object-fit:contain}
.monuments figcaption{margin-top:var(--s1);color:#ffe7b0;font:500 .6875rem/1.2 var(--f-mono);letter-spacing:.06em;text-transform:uppercase}
.band{border-block:3px solid #050605;background:#0b0c0b}
.band img{width:100%;height:clamp(200px,38vw,460px);object-fit:cover;filter:saturate(.9) sepia(.1)}
/* light theme: the paper headers keep an edge on the manila page */
@media (prefers-color-scheme:light){.post-head.paper{border-color:#24261f;box-shadow:inset 0 1px 0 #fffaf0,0 4px 0 #24261f,0 12px 26px rgba(40,30,10,.28)}}
/* pending reel: darker frame and the stamp sits over the in-game GRAZE label, so the stamp is the only text */
.reel[data-state=pending] .reel-frame>img{filter:contrast(1.05) saturate(.8) sepia(.15) brightness(.62)}
.reel[data-state=pending] .stamp{top:59.5%}
button.reel-play{padding:0;cursor:pointer;font:inherit}
.reel-desc{display:block;margin-top:var(--s2)}
/* devlog index: older reports as compact rows, older builds folded away */
.older-h{margin:var(--s7) 0 var(--s3)}
.report-rows{margin:0;padding:0;list-style:none;border-top:1px solid var(--hair)}
.report-rows a{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;padding:var(--s3) 0;border-bottom:1px solid var(--hair);color:var(--ink);text-decoration:none}
.report-rows a:hover .row-t{color:var(--accent)}
.report-rows .row-t{font-weight:600;font-size:1.0625rem}
.earlier{margin-top:var(--s6);max-width:var(--prose)}
.earlier summary{display:inline-flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;color:var(--accent);font:400 var(--fs-kicker)/1.2 var(--f-display);letter-spacing:.18em;text-transform:uppercase}
.earlier[open] summary{margin-bottom:var(--s5)}
.earlier summary::before{content:"+";width:1ch;font-family:var(--f-mono)}
.earlier[open] summary::before{content:"\2212"}
/* M5: footer links of posts and release pages as a row with real tap height */
.prose ul.meta-foot{display:flex;flex-wrap:wrap;gap:0 18px;padding:var(--s2) 0 0;list-style:none}
.prose ul.meta-foot li{margin:0}
.meta-foot a{display:inline-block;padding-block:6px}
/* phone menu: the key says CLOSE while the panel is open */
.js .nav-toggle .nav-label{min-width:5ch}
/* M3: the page behind the lightbox does not scroll */
html:has(dialog[open]){overflow:hidden}
/* S1: decorative motion stops after 5 s (site.js adds .still), WCAG 2.2.2 */
.still :is(.beam,.flak,.lamp){animation-play-state:paused!important}
.still .flak{opacity:0}
/* M2: forced colours draw the decorative sky as grey bars */
@media (forced-colors:active){.sky,.hero-bg{display:none}}

/* roadmap: compact board on home, planned legs (dimmed, undated) on the devlog index */
.board-teaser{margin-top:var(--s6);padding:var(--s5) var(--pad-card);max-width:var(--prose)}
.board-teaser h3{margin-bottom:var(--s3)}
.board{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 var(--s4);padding:0;list-style:none}
.board li{padding:6px 10px;border:1px solid var(--hair);border-radius:var(--r);background:var(--bg-2);font:500 var(--fs-meta)/1.2 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-dim)}
.board-log .leg.planned{opacity:.8}

/* ============ 18d. Raid pass: stars, flyby, scroll parallax, reveal, gun-sight cards, dispatch, release typography ============ */
/* stars over the night sky (static, decorative) */
.sky::before{content:"";inset:0 0 40% 0;opacity:.55;
  background:radial-gradient(1px 1px at 12% 18%,#fff6d8 50%,transparent 51%),radial-gradient(1px 1px at 27% 8%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 41% 30%,#ffe7b0 50%,transparent 51%),
    radial-gradient(1px 1px at 58% 12%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 69% 34%,#fff6d8 50%,transparent 51%),radial-gradient(1.5px 1.5px at 83% 9%,#fff 50%,transparent 51%),
    radial-gradient(1px 1px at 92% 26%,#ffe7b0 50%,transparent 51%),radial-gradient(1px 1px at 6% 40%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 50% 46%,#fff6d8 50%,transparent 51%)}
/* flyby: three ink silhouettes with contrails cross once on load and are gone within 5 s (WCAG 2.2.2) */
.plane{left:-90px;top:62%;width:52px;height:52px;opacity:0;rotate:58deg;filter:drop-shadow(0 0 8px rgba(255,190,110,.35));
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='%2322291f' stroke='%23ffcf6a' stroke-opacity='.75' stroke-width='1.5' d='M32 3c2 0 3 4 3 8v12l25 8v6l-25-3v15l9 6v4l-12-2-12 2v-4l9-6V39L4 42v-6l25-8V11c0-4 1-8 3-8z'/%3E%3C/svg%3E") center/contain no-repeat;
  animation:flyby 3.8s .3s cubic-bezier(.3,.1,.6,1) both}
.plane::after{content:"";position:absolute;left:50%;top:100%;width:2px;height:120px;margin-left:-1px;background:linear-gradient(rgba(255,236,190,.45),transparent)}
.plane.b{width:38px;height:38px;top:72%;animation-delay:.55s}
.plane.c{width:38px;height:38px;top:55%;animation-delay:.7s}
@keyframes flyby{0%{opacity:0;transform:translate(0,0)}8%{opacity:.95}85%{opacity:.95}100%{opacity:0;transform:translate(118vw,-70vh)}}
/* scroll parallax: the sky drifts slower than the page (CSS scroll timeline; browsers without it keep a still sky) */
@supports (animation-timeline:scroll()){
  .hero .sky{animation:sky-drift linear both;animation-timeline:scroll(root);animation-range:0 100vh}
  .hero .hero-copy{animation:copy-lift linear both;animation-timeline:scroll(root);animation-range:0 90vh}
}
@keyframes sky-drift{to{transform:translateY(22%)}}
@keyframes copy-lift{to{transform:translateY(-36px);opacity:.35}}
/* hero: what's-new strip + second key */
.ticker{display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:7px 14px 6px;border:1px solid rgba(224,181,82,.45);border-radius:999px;
  background:rgba(10,8,6,.55);color:#ffe7b0;text-decoration:none;font:500 var(--fs-meta)/1.3 var(--f-mono);letter-spacing:.04em;text-transform:uppercase}
.ticker b{flex:none;padding:2px 7px 1px;border-radius:2px;background:#ffcf6a;color:#2a1f00;font:400 .75rem/1.2 var(--f-display);letter-spacing:.14em}
.ticker:hover{color:#fff;border-color:#ffcf6a;text-shadow:none}
.hero .cta-row .btn.test{min-height:48px}
/* reveal on scroll: only when site.js turned it on (root .rv-on), so no-JS / failed JS shows everything */
.rv-on .rv{opacity:0;translate:0 22px;transition:opacity .6s ease,translate .7s cubic-bezier(.2,.7,.2,1)}
.rv-on .rv.in{opacity:1;translate:none}
.rv-on .cards>.rv:nth-child(3n+2){transition-delay:.08s}.rv-on .cards>.rv:nth-child(3n){transition-delay:.16s}
/* cards: gun-sight brackets close on the shot at hover/focus */
.card::before{content:"";position:absolute;z-index:2;left:0;right:0;top:0;aspect-ratio:16/10;pointer-events:none;opacity:0;
  --b:#ffcf6a;--k:22px;--i:22px;
  background:linear-gradient(var(--b) 0 0) var(--i) var(--i)/var(--k) 2px,linear-gradient(var(--b) 0 0) var(--i) var(--i)/2px var(--k),
    linear-gradient(var(--b) 0 0) calc(100% - var(--i)) var(--i)/var(--k) 2px,linear-gradient(var(--b) 0 0) calc(100% - var(--i)) var(--i)/2px var(--k),
    linear-gradient(var(--b) 0 0) var(--i) calc(100% - var(--i))/var(--k) 2px,linear-gradient(var(--b) 0 0) var(--i) calc(100% - var(--i))/2px var(--k),
    linear-gradient(var(--b) 0 0) calc(100% - var(--i)) calc(100% - var(--i))/var(--k) 2px,linear-gradient(var(--b) 0 0) calc(100% - var(--i)) calc(100% - var(--i))/2px var(--k);
  background-repeat:no-repeat;filter:drop-shadow(0 0 4px rgba(255,170,60,.8)) drop-shadow(0 1px 0 #050605);transition:opacity var(--t),--i 250ms ease}
.feature-row::before{display:none}
.card:hover::before,.card:focus-within::before{opacity:1;--i:12px}
@property --i{syntax:"<length>";inherits:false;initial-value:22px}
.card .shot{transition:filter 250ms ease}
.card:hover .shot{filter:saturate(1.15) contrast(1.06) brightness(1.04)}
.card:hover{translate:0 -3px}
.card{transition:translate 200ms ease,box-shadow 200ms ease}
/* dispatch: the newest update, a night band between the stats and the briefing */
.dispatch{position:relative;padding-block:var(--section);border-bottom:3px solid #050605;
  background:radial-gradient(ellipse 50% 60% at 85% 0%,rgba(255,110,30,.16),transparent 70%),var(--brushed),linear-gradient(#121412,#0b0c0b)}
.dispatch .section-head h2{font-size:clamp(1.9rem,4.2vw,2.9rem);text-shadow:0 3px 0 #050605}
.dispatch .card{border-left-color:#e0b552}
.tag{display:inline-block;margin-left:6px;padding:2px 6px 1px;border:1px solid currentColor;border-radius:2px;font:500 .6875rem/1.2 var(--f-mono);letter-spacing:.06em;color:#7fdc5a;vertical-align:2px}
.chevrons{display:flex;flex-wrap:wrap;gap:6px;margin:var(--s4) 0 0;padding:0;list-style:none}
.chevrons li{display:grid;place-items:center;min-width:34px;height:26px;padding:0 6px;border:1px solid var(--hair);border-radius:2px;background:#0b0c0b;color:#e0b552;font:400 .75rem/1 var(--f-display);letter-spacing:.08em}
.chevrons li.top{color:#2a1f00;background:linear-gradient(#ffd96a,#d99a1c);border-color:#050605}
/* section heads: a brass rule grows under the heading */
.section-head h2{position:relative;padding-bottom:var(--s3)}
.section-head h2::after{content:"";position:absolute;left:0;bottom:0;width:64px;height:3px;background:linear-gradient(90deg,var(--brass),transparent);transform-origin:left;transition:transform .8s ease .2s}
.rv-on .section-head.rv:not(.in) h2::after{transform:scaleX(0)}
/* release notes / field reports: stencil rule after h2, diamond bullets, bold lead-ins */
.prose h2{display:flex;align-items:center;gap:14px}
.prose h2::after{content:"";flex:1;height:2px;min-width:24px;background:repeating-linear-gradient(90deg,var(--brass) 0 10px,transparent 10px 16px);opacity:.75}
.prose ul:not(.meta-foot){list-style:none;padding-left:1.5em}
.prose ul:not(.meta-foot)>li{position:relative}
.prose ul:not(.meta-foot)>li::before{content:"";position:absolute;left:-1.15em;top:.6em;width:7px;height:7px;background:var(--brass);transform:rotate(45deg);box-shadow:0 0 0 2px color-mix(in srgb,var(--brass) 25%,transparent)}
.prose li+li{margin-top:.6em}
.prose .lead-in{color:var(--ink);font-weight:700;letter-spacing:.01em}
.post-head h1{text-shadow:0 2px 0 rgba(36,38,31,.12)}
/* stat numbers: a faint scanline over the brass digits */
.stat b{background:linear-gradient(#ffe7a0,#e0a63a);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 2px 0 #050605) drop-shadow(0 0 12px rgba(255,170,60,.35))}
@media (forced-colors:active){.stat b{color:CanvasText;background:none}.plane,.card::before{display:none}}

/* ============ 19. Motion preferences ============ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .flak{display:none!important}
  .card:hover::after,.shine:hover::after{opacity:0}
}
@media print{.site-head,.site-foot,.sky,.reel-play{display:none}body{background:#fff;color:#000}}
