@font-face{font-family:'Anton';src:url('/assets/fonts/anton-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url('/assets/fonts/source-serif-4-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url('/assets/fonts/source-serif-4-latin-400-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url('/assets/fonts/source-serif-4-latin-600-normal.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url('/assets/fonts/source-serif-4-latin-700-normal.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/assets/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('/assets/fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/assets/fonts/ibm-plex-mono-latin-600-normal.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}

:root{
  --paper:#e9e2d2; --paper-2:#e4dccb; --paper-3:#f3ecdc; --ink:#1a1714; --ink-2:#4b443b; --muted:#6b6358;
  --press:#d4231b; --press-ink:#fff8f0; --rule:#b9b09f; --night:#120d08; --gov:#e6e9ed; --gov-ink:#1b2430;
  --shadow-hard:4px 4px 0 var(--ink); --radius:0; --pill:999px;
  --font-display:'Anton',Impact,sans-serif; --font-body:'Source Serif 4',Georgia,'Times New Roman',serif; --font-mono:'IBM Plex Mono',ui-monospace,monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:auto;background:var(--night)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font:400 clamp(16px,1.05vw,18px)/1.55 var(--font-body);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--press);text-underline-offset:3px}
a:hover{color:var(--ink)}
button{font:inherit;cursor:pointer}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--paper);padding:.6rem 1rem;z-index:100}
.skip:focus{left:0}
.wrap{padding-inline:clamp(18px,4.5vw,96px);max-width:1280px;margin-inline:auto}
.label{font:600 .68rem/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* grain canvas */
#grain{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:80;opacity:.09;mix-blend-mode:multiply}

/* NAV */
.mast-nav{
  position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:1rem;
  height:58px;padding-inline:clamp(14px,3vw,40px);
  background:color-mix(in oklab,var(--paper) 92%,transparent);backdrop-filter:blur(10px);
  border-bottom:2px solid var(--ink);
}
.brand{display:inline-flex;align-items:center;gap:.55rem;text-decoration:none;color:var(--ink);font:400 1.05rem/1 var(--font-display);text-transform:uppercase;letter-spacing:.04em}
.brand img{border:2px solid var(--ink);filter:grayscale(1) contrast(1.15)}
.nav-links{display:none;gap:1.1rem;margin-inline:auto}
.nav-links a{font:500 .7rem/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);text-decoration:none}
.nav-links a:hover,.nav-links a.is-active{color:var(--press)}
.nav-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}
.nav-toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;border:2px solid var(--ink);background:var(--paper);padding:0}
.nav-toggle span{display:block;height:2px;margin-inline:8px;background:var(--ink)}
.mobile-nav{display:grid;gap:.2rem;padding:12px clamp(14px,3vw,40px) 18px;background:var(--paper-2);border-bottom:2px solid var(--ink)}
.mobile-nav a{font:500 .85rem/1.2 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink);text-decoration:none;padding:.55rem 0;border-bottom:1px solid var(--rule)}
@media (min-width:960px){
  .nav-links{display:flex}
  .nav-toggle{display:none}
}

/* BUTTONS */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.4em;
  padding:.72em 1.15em;border:2.5px solid var(--ink);background:var(--paper);color:var(--ink);
  font:400 .95rem/1 var(--font-display);text-transform:uppercase;letter-spacing:.04em;text-decoration:none;
  box-shadow:var(--shadow-hard);transition:transform .08s,box-shadow .08s;border-radius:2px;
}
.btn:hover{transform:translate(-1px,-1px);box-shadow:6px 6px 0 var(--ink);color:var(--ink)}
.btn:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--ink)}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ink:hover{color:var(--paper)}
.btn-red{background:var(--press);color:var(--press-ink);border-color:var(--ink)}
.btn-red:hover{color:var(--press-ink)}
.btn-ghost{background:transparent;box-shadow:none}
.btn-ghost:hover{box-shadow:3px 3px 0 var(--ink)}
.btn-sm{padding:.45em .8em;font-size:.78rem}
.btn-lg{padding:.95em 1.4em;font-size:1.15rem}
.btn.is-disabled,.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;pointer-events:none;box-shadow:2px 2px 0 var(--ink)}

/* CA pill */
.ca{
  display:flex;align-items:center;gap:.55rem;max-width:100%;
  padding:.35rem .35rem .35rem .85rem;background:var(--ink);color:var(--paper);
  border:2.5px solid var(--ink);box-shadow:4px 4px 0 var(--press);
}
.ca-tag{font:600 .65rem/1 var(--font-mono);letter-spacing:.14em;color:var(--press)}
.ca code{font:600 .78rem/1.2 var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(42vw,280px)}
.ca button{border:0;background:var(--paper);color:var(--ink);padding:.55em .85em;font:400 .78rem/1 var(--font-display);text-transform:uppercase}
.ca.is-soon{box-shadow:4px 4px 0 var(--rule)}
.ca-block{margin-block:1rem}

/* PAPER SECTIONS */
.paper{position:relative;background:var(--paper);border-bottom:3px solid var(--ink)}
.paper.sec-alt{background:var(--paper-2)}
.redtop{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:1rem;
  background:var(--press);color:var(--press-ink);padding:.55rem clamp(14px,4vw,48px);
  font:400 .72rem/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;
}
.mast-title{font:400 clamp(1.4rem,4vw,2.4rem)/1 var(--font-display);letter-spacing:.06em;text-align:center;text-transform:uppercase}
.dateline{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:.7rem;border-bottom:2px solid var(--ink);font:500 .72rem/1.2 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.folio{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;padding-bottom:.8rem;margin-bottom:1.2rem;border-bottom:1px solid var(--rule);font:500 .72rem/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.edition{padding-bottom:clamp(48px,8vw,96px)}
.sec{padding-block:clamp(56px,8vw,110px)}
.hero-block{padding-top:clamp(28px,5vw,56px)}
.kicker{margin:0 0 .6rem;color:var(--press)}
.hed{
  margin:0 0 .85rem;font:400 clamp(3.2rem,12vw,8.5rem)/.88 var(--font-display);
  text-transform:uppercase;letter-spacing:-.01em;max-width:18ch;
}
.hed .red,.red{color:var(--press)}
.hed-sm{margin:0 0 .75rem;font:400 clamp(2.2rem,6.5vw,4.8rem)/.92 var(--font-display);text-transform:uppercase;letter-spacing:-.01em;max-width:22ch}
.standfirst{font:400 clamp(1.1rem,2vw,1.35rem)/1.45 var(--font-body);max-width:62ch;margin:0 0 1.4rem;color:var(--ink)}
.sub{margin:0 0 1.6rem;color:var(--ink-2);max-width:56ch}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin:1.4rem 0 .9rem}
.anti-scam{font:400 .85rem/1.4 var(--font-body);color:var(--ink-2);max-width:62ch;margin:0 0 1.2rem}
.front-grid{display:grid;gap:1.6rem;margin-top:1.8rem}
@media (min-width:900px){.front-grid{grid-template-columns:1.05fr .95fr;align-items:start}}
.splash{margin:0;border:3px solid var(--ink);background:#fff;box-shadow:6px 6px 0 var(--ink)}
.splash figcaption,.polaroid figcaption{padding:.65rem .8rem .85rem;font:400 .82rem/1.35 var(--font-body);color:var(--ink-2);border-top:1px solid var(--rule)}
.byline{font:600 .78rem/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--press);margin:0 0 .8rem}
.lede{font-size:1.12rem}
.pull{
  margin:1.2rem 0;padding:1rem 1.1rem;border-left:4px solid var(--press);
  font:italic 1.15rem/1.35 var(--font-body);background:color-mix(in oklab,var(--press) 8%,var(--paper));
}
.pull cite{display:block;margin-top:.5rem;font:600 .72rem/1 var(--font-mono);font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.2rem}
.chip{border:2px solid var(--ink);background:var(--paper-3);padding:.45rem .7rem;display:grid;gap:.2rem;min-width:5.5rem;box-shadow:3px 3px 0 var(--ink)}
.chip-k{font:600 .62rem/1 var(--font-mono);letter-spacing:.12em;color:var(--muted)}
.chip-v{font:400 1rem/1 var(--font-display)}

/* marquee */
.marquee{overflow:hidden;border-block:3px solid var(--ink);background:var(--press);color:var(--press-ink);transform:rotate(-.6deg);margin-block:.5rem}
.track{display:flex;width:max-content;animation:crawl 32s linear infinite}
.track>*{padding:.55em 1.2em;font:400 1.25rem/1 var(--font-display);text-transform:uppercase;white-space:nowrap;letter-spacing:.04em}
@keyframes crawl{to{transform:translateX(-50%)}}

/* columns / beats */
.cols-2{display:grid;gap:2rem}
@media (min-width:880px){.cols-2{grid-template-columns:1.15fr .85fr}}
.dossier{list-style:none;padding:0;margin:1.4rem 0 0;border:2px solid var(--ink);background:var(--paper-3)}
.dossier li{display:grid;grid-template-columns:7.5rem 1fr;gap:.75rem;padding:.7rem .9rem;border-bottom:1px solid var(--rule)}
.dossier li:last-child{border-bottom:0}
.polaroid{margin:0;background:#fff;padding:12px 12px 8px;border:3px solid var(--ink);box-shadow:7px 7px 0 var(--ink);transform:rotate(1.5deg)}
.polaroid img{width:100%}

.beats{display:grid;gap:2.4rem}
.beat{display:grid;gap:1.2rem;align-items:center}
.beat figure{margin:0;border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink);background:#fff;overflow:hidden}
.beat h3{margin:.35rem 0 .5rem;font:400 clamp(1.5rem,3vw,2.2rem)/1.05 var(--font-display);text-transform:uppercase}
.beat p{margin:0;color:var(--ink-2)}
@media (min-width:800px){
  .beat{grid-template-columns:1fr 1fr}
  .beat.flip figure{order:2}
}

/* halftone newsprint treatment on photos */
.halftone img{
  filter:grayscale(1) contrast(1.2) brightness(1.02);
  mix-blend-mode:multiply;
}
.halftone{background:var(--paper-2);position:relative}
.halftone::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;mix-blend-mode:multiply;
  background-image:radial-gradient(circle,#1a1714 0.45px,transparent .6px);
  background-size:3px 3px;
}

/* stamp desk */
.stamp-desk{margin-top:1rem}
.stamp-toolbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:.9rem}
.stamp-stage{display:grid;gap:1rem}
@media (min-width:900px){.stamp-stage{grid-template-columns:1fr 160px;align-items:start}}
#stamp-canvas{
  width:100%;height:auto;border:3px solid var(--ink);background:var(--paper-3);
  box-shadow:6px 6px 0 var(--ink);cursor:crosshair;touch-action:none;display:block;
}
.stamp-pad{border:3px solid var(--ink);background:var(--ink);color:var(--paper);padding:1rem;text-align:center;box-shadow:4px 4px 0 var(--press)}
.rubber{
  font:400 1.05rem/.95 var(--font-display);text-transform:uppercase;color:var(--press);
  border:3px solid var(--press);padding:.7rem .4rem;margin-bottom:.6rem;background:#2a221c;
  transform:rotate(-6deg);user-select:none;
}

/* classifieds */
.class-grid{display:grid;gap:1.4rem}
@media (min-width:900px){.class-grid{grid-template-columns:1.1fr .9fr;grid-template-rows:auto auto}
  .want-card{grid-row:span 2}
}
.want-card,.stats-block,.how-card{border:3px solid var(--ink);background:var(--paper);padding:clamp(16px,2vw,28px);box-shadow:5px 5px 0 var(--ink)}
.want-h{margin:0 0 .5rem;font:400 clamp(1.8rem,4vw,2.8rem)/1 var(--font-display);text-transform:uppercase;color:var(--press)}
.want-h.soft{color:var(--ink)}
.want-sub{margin:0 0 1rem;color:var(--ink-2)}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:1rem 0}
.stat{border:2px solid var(--ink);padding:.7rem .8rem;background:var(--paper-3)}
.stat strong{display:block;margin-top:.35rem;font:400 1.35rem/1 var(--font-display)}
.tk-meta{display:grid;gap:.45rem;margin:0;padding:0}
.tk-meta > div{display:grid;grid-template-columns:5.5rem 1fr;gap:.5rem;padding:.35rem 0;border-bottom:1px dashed var(--rule)}
.tk-meta dd{margin:0;font-weight:600}
.tk-links{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}
.steps li{display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:start}
.step-n{font:400 1.2rem/1 var(--font-display);color:var(--press);border:2px solid var(--ink);width:2.2rem;height:2.2rem;display:grid;place-items:center;background:var(--paper-3)}
.steps strong{font:400 1.05rem/1.1 var(--font-display);text-transform:uppercase;display:block;margin-bottom:.2rem}
.steps p{margin:0;color:var(--ink-2);font-size:.92rem}

/* mosaic */
.mosaic{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}
@media (min-width:700px){.mosaic{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1000px){.mosaic{grid-template-columns:repeat(4,1fr)}}
.mosaic button{
  margin:0;padding:0;border:2.5px solid var(--ink);background:var(--paper-2);overflow:hidden;
  box-shadow:3px 3px 0 var(--ink);cursor:zoom-in;
}
.mosaic button img{width:100%;aspect-ratio:1;object-fit:cover;filter:grayscale(1) contrast(1.15)}
.mosaic button:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink)}

/* faq */
.faq details{border-bottom:2px solid var(--ink);padding:.9rem 0}
.faq summary{cursor:pointer;font:400 1.25rem/1.2 var(--font-display);text-transform:uppercase;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';float:right;color:var(--press)}
.faq details[open] summary::after{content:'–'}
.faq p{margin:.7rem 0 0;color:var(--ink-2);max-width:68ch}

.close{padding-block:clamp(64px,10vw,120px);text-align:center}
.close .banner{margin:0 auto 1.6rem;border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);max-width:960px;overflow:hidden}
.close .standfirst{margin-inline:auto}
.close-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;margin-top:1.4rem}

.foot{background:var(--night);color:#f6ead6;padding:48px 0 28px;border-top:4px solid var(--press)}
.foot-inner{display:grid;gap:1.4rem}
@media (min-width:800px){.foot-inner{grid-template-columns:1.4fr 1fr;align-items:start}}
.foot p{color:#b9a58a;max-width:52ch}
.foot-links{display:flex;flex-wrap:wrap;gap:.9rem 1.2rem;font:500 .75rem/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}
.foot-links a{color:#f6ead6;text-decoration:none;border-bottom:1px solid var(--press)}
.foot-links span{color:#6b6358}
.foot-copy{margin:2rem auto 0;font:400 .72rem/1.4 var(--font-mono);color:#6b6358;letter-spacing:.06em}

/* lightbox */
.lightbox{border:0;padding:0;max-width:min(96vw,1100px);background:transparent;color:var(--paper)}
.lightbox::backdrop{background:rgba(18,13,8,.88)}
.lightbox[open]{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem}
.lightbox figure{margin:0;border:3px solid var(--paper)}
.lightbox img{max-height:80svh;width:auto;margin-inline:auto;filter:grayscale(.3) contrast(1.05)}
.lightbox figcaption{padding:.6rem .8rem;background:var(--ink);font:400 .85rem var(--font-body)}
.lb-close,.lb-nav{background:var(--paper);color:var(--ink);border:2px solid var(--ink);width:44px;height:44px;font-size:1.3rem}
.lb-close{position:fixed;top:16px;right:16px;z-index:2}

.toast{
  position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(120%);
  background:var(--ink);color:var(--paper);padding:.7rem 1.1rem;border:2px solid var(--press);
  font:500 .78rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;z-index:100;
  transition:transform .25s ease;pointer-events:none;
}
.toast.show{transform:translateX(-50%) translateY(0)}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0)*70ms)}
[data-reveal].in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1;transform:none;transition:none}
  .track{animation:none}
}
