/* Fonts (self-hosted, OFL) */
@font-face{font-family:"DM Serif Display";src:url(../fonts/dm-serif-display-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"DM Serif Display";src:url(../fonts/dm-serif-display-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url(../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(../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(../fonts/source-serif-4-latin-600-normal.woff2) format("woff2");font-weight:600;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}
@font-face{font-family:"Special Elite";src:url(../fonts/special-elite-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}

/* Tokens */
:root{
  --ink:#0E1117;--surface:#161B24;--line:#262C38;--line-2:#2E3543;--field:#4A5163;
  --text:#EDE7DA;--text-2:#CFC8B8;--muted:#A9A293;--faint:#8E887A;
  --brass:#D9A441;--brass-hi:#F0C46A;--glow:#E8B556;
  --paper:#EFE8D8;--paper-2:#F7F3EA;--paper-line:#CFC5AD;--paper-ink:#1B1A17;--paper-muted:#4A4436;--paper-label:#5A5140;--paper-accent:#8A5A12;
  --stamp:#E36A4F;--seal:#B23A26;--ok:#7FB38A;
  --display:"DM Serif Display",Georgia,serif;--serif:"Source Serif 4",Georgia,serif;--mono:"IBM Plex Mono",ui-monospace,monospace;--type:"Special Elite","Courier New",monospace;
  --wrap:1240px;--gutter:32px;
}

/* Base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--text);font-family:var(--serif);font-size:17px;line-height:1.6;overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:var(--brass)}a:hover{color:var(--brass-hi)}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
h1,h2,h3{font-family:var(--display);font-weight:400;margin:0}
p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gutter)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--brass);color:var(--paper-ink);padding:10px 14px;z-index:10}
.skip:focus{left:8px}
.label{font-family:var(--mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.lede{font-size:18px;color:var(--muted)}
.gold{color:var(--glow)}
.stamp{align-self:flex-start;font-family:var(--type);font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--stamp);border:2px solid var(--stamp);padding:6px 14px;transform:rotate(-3deg)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;font-family:var(--mono);font-size:14px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border-radius:2px;border:1px solid transparent;cursor:pointer}
.btn-gold{background:var(--brass);color:#14110A}
.btn-gold:hover{background:var(--brass-hi);color:#14110A}
.btn-ghost{background:transparent;border-color:var(--field);color:var(--text)}
.btn-ghost:hover{border-color:var(--text);color:var(--text)}
.btn-dark{background:var(--paper-ink);color:var(--paper)}
.btn-dark:hover{background:#000;color:var(--paper)}
.btn[aria-disabled="true"]{cursor:default}
.btn-sm{min-height:44px;padding:0 14px;font-size:13px;font-weight:400;text-transform:none;letter-spacing:0}

/* Header */
.site-header{border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-block:22px}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--display);font-size:24px;color:var(--text);text-decoration:none}
.brand:hover{color:var(--text)}
.nav{display:flex;flex-wrap:wrap;gap:8px 28px;font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.nav a{color:var(--text);text-decoration:none;padding:8px 0}
.nav a[aria-current="page"],.nav .nav-hi{color:var(--brass)}
.nav-toggle{display:none}

/* Hero */
.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:64px;align-items:center;padding-block:96px 104px}
.hero-text{display:flex;flex-direction:column;gap:22px}
.hero h1{font-size:clamp(42px,6vw,72px);line-height:1;letter-spacing:-.01em}
.hero h1 .big{display:block;font-style:italic;font-size:clamp(64px,8.6vw,104px);color:var(--glow)}
.hero .pitch{max-width:520px;font-size:21px;line-height:1.5;color:#E2DBCB}
.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px}
.cover-wrap{display:flex;justify-content:center}
.cover{width:min(380px,80vw);aspect-ratio:6/9;background:var(--surface);border:1px solid var(--line-2);box-shadow:0 40px 80px rgba(0,0,0,.55),0 0 0 10px rgba(217,164,65,.04);transform:rotate(2deg);display:flex;flex-direction:column;justify-content:space-between;padding:34px}
.cover img{width:100%;height:100%;object-fit:cover}
.cover .c-author{font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:var(--muted);text-transform:uppercase}
.cover .c-title{font-family:var(--display);font-size:32px;line-height:1.1}
.cover .c-big{font-family:var(--display);font-size:68px;line-height:1;color:var(--glow);margin-top:4px}
.cover .c-note{font-family:var(--mono);font-size:12px;color:var(--muted)}
.cover.has-img{padding:0}

/* Paper section */
.paper{background:var(--paper);color:var(--paper-ink)}
.paper .wrap{padding-block:88px;display:flex;flex-direction:column;gap:48px}
.paper h2{max-width:760px;font-size:clamp(32px,4vw,46px);line-height:1.08}
.five{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:24px;margin:0;padding:0;list-style:none}
.five li{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.five .n{font-family:var(--display);font-size:48px;line-height:1}
.five .k{font-family:var(--mono);font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--paper-label)}
.total{display:flex;flex-wrap:wrap;align-items:baseline;gap:18px;border-top:2px solid var(--paper-ink);padding-top:24px}
.total .n{font-family:var(--display);font-size:clamp(44px,6vw,64px);line-height:1}
.total .t{font-size:22px;color:var(--paper-muted)}
.total .t em{font-style:normal;font-family:var(--display);color:var(--paper-accent)}

/* Dossier spread */
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:56px;align-items:center;padding-block:100px}
.split-text{display:flex;flex-direction:column;gap:18px}
.split-text h2{font-size:clamp(34px,4vw,46px);line-height:1.08}
.spread{position:relative;height:520px;max-width:520px}
.doc{position:absolute;box-shadow:0 20px 40px rgba(0,0,0,.5)}
.doc-pv{left:20px;top:30px;width:300px;height:400px;background:var(--paper);color:var(--paper-ink);padding:26px;transform:rotate(-6deg);display:flex;flex-direction:column;gap:10px}
.doc-pv .h{font-family:var(--type);font-size:13px;letter-spacing:.08em}
.doc-pv .rule{height:2px;background:var(--paper-ink)}
.bar{height:8px;background:var(--paper-line)}
.bar.dark{background:var(--paper-ink)}
.w40{width:40%}.w60{width:60%}.w70{width:70%}.w75{width:75%}.w80{width:80%}.w85{width:85%}.w88{width:88%}.w90{width:90%}
.seal-text{margin-top:auto;align-self:flex-end;font-family:var(--type);font-size:18px;color:var(--seal);border:2px solid var(--seal);padding:4px 10px;transform:rotate(-8deg)}
.doc-photo{left:230px;top:0;width:250px;background:var(--paper-2);padding:12px 12px 40px;transform:rotate(5deg)}
.doc-photo .cap{position:absolute;left:14px;bottom:12px;font-family:var(--type);font-size:13px;color:#3A352B}
.doc-log{left:150px;top:270px;width:320px;background:var(--surface);border:1px solid var(--line-2);padding:18px;transform:rotate(-2deg);box-shadow:0 20px 40px rgba(0,0,0,.6);font-family:var(--mono);font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:9px}
.doc-log .t{color:var(--text);letter-spacing:.1em}
.doc-log .cols{display:flex;justify-content:space-between}
.doc-log .sep{height:1px;background:var(--line-2)}
.doc-log .row{display:flex;gap:10px}
.doc-log .row span{height:8px;background:var(--line-2)}
.doc-log .row .a{flex:1}.doc-log .row .b{width:40px;background:var(--field)}.doc-log .row .c{width:60px}
.doc-log .row .b.hi{background:var(--brass)}
.badge-18{position:absolute;left:400px;top:400px;width:70px;height:70px;border-radius:50%;background:var(--seal);box-shadow:0 8px 18px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;font-family:var(--type);font-size:14px;color:var(--paper-2);transform:rotate(-12deg)}

/* Modes band */
.band{background:var(--surface);border-block:1px solid var(--line)}
.band .wrap{padding-block:88px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:32px}
.feature{display:flex;flex-direction:column;gap:16px}
.feature h3{font-size:32px}
.feature p{color:var(--muted)}

/* Series */
.books{display:flex;gap:22px;align-items:flex-end;justify-content:center}
.book{aspect-ratio:6/9;display:flex;flex-direction:column;justify-content:space-between}
.book-1{width:190px;background:#1A2130;border:1px solid #3A4252;box-shadow:0 24px 48px rgba(0,0,0,.55);padding:18px}
.book-2{width:160px;border:1px dashed var(--field);padding:16px;color:var(--muted)}
.book .a{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--muted)}
.book-1 .t{font-family:var(--display);font-size:34px;line-height:1;color:var(--glow)}
.book-2 .t{font-family:var(--display);font-size:44px;line-height:1}
.book .s{font-family:var(--mono);font-size:10px;color:var(--muted)}
.tomes{list-style:none;margin:8px 0 0;padding:0}
.tomes li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.tomes .t{font-family:var(--display);font-size:22px}
.tomes .d{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--brass)}
.tomes .muted{color:var(--muted)}

/* Subscribe */
.subscribe{border-top:1px solid var(--line)}
.subscribe .wrap{max-width:760px;padding-block:96px;display:flex;flex-direction:column;gap:20px;text-align:center;align-items:center}
.subscribe h2{font-size:clamp(30px,4vw,42px);line-height:1.1}
.form{display:flex;flex-direction:column;gap:12px;width:100%}
.form-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.input{flex:1 1 280px;min-height:52px;padding:0 16px;background:var(--surface);border:1px solid var(--field);color:var(--text);font-family:var(--serif);font-size:16px;border-radius:2px}
.input::placeholder{color:#7D7869}
.check{display:flex;gap:10px;align-items:flex-start;text-align:left;font-size:14px;line-height:1.45;color:var(--text-2)}
.check input{width:20px;height:20px;margin:0;flex:none;accent-color:var(--brass)}
.fine{font-size:13px;color:var(--faint)}
.msg{min-height:1.4em;font-family:var(--mono);font-size:13px}
.msg.ok{color:var(--ok)}.msg.err{color:var(--stamp)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ts{display:flex;justify-content:center;min-height:0}

/* Footer */
.site-footer{border-top:1px solid var(--line)}
.site-footer .wrap{padding-block:40px;display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:13px;color:var(--muted)}
.site-footer .links{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center}
.reveal-out a{font-family:var(--mono)}

/* Minuit */
.desk{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:48px;align-items:center;padding-block:64px 48px}
.desk h1{font-size:clamp(40px,5.5vw,64px);line-height:1.02}
.safe{display:flex;gap:10px;align-items:center;font-family:var(--mono);font-size:13px;color:var(--muted)}
.desk-art{width:100%;height:auto;max-height:340px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:24px;padding-bottom:64px}
.card{background:var(--surface);border:1px solid var(--line-2);padding:30px;display:flex;flex-direction:column;gap:18px;border-radius:2px}
.card.paper-card{background:var(--paper);color:var(--paper-ink);border-color:var(--paper)}
.card-head{display:flex;align-items:center;gap:14px}
.card h2{font-size:32px}
.files{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;list-style:none;margin:0;padding:0}
.file{display:flex;flex-direction:column;gap:10px;color:var(--paper-ink);text-decoration:none}
.file:hover{color:var(--paper-ink)}
.file .th{aspect-ratio:3/4;background:var(--paper-2);border:1px solid var(--paper-line);box-shadow:0 6px 14px rgba(27,26,23,.15);padding:12px}
.file .nm{font-size:16px}
.file .meta{font-family:var(--mono);font-size:11px;color:#6B5A35}
.th-notes{display:flex;flex-direction:column;gap:6px}
.th-notes .h{font-family:var(--type);font-size:11px}
.th-notes .l{height:5px;background:var(--paper-line)}
.th-notes .box{flex:1;border:1px solid var(--paper-line)}
.th-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.th-grid span{border:1px solid var(--paper-line)}
.th-grid .x{background:var(--paper-ink)}
.th-sheet{display:flex;flex-direction:column;gap:4px}
.th-sheet .top{height:10px;background:#2F6B45}
.th-sheet .r{height:6px;border-bottom:1px solid var(--paper-line)}
.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;opacity:.6;list-style:none;margin:0;padding:0}
.slots li{border:1px solid var(--field);min-height:64px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-family:var(--mono);font-size:11px;color:var(--muted)}
.slots b{font-weight:400;font-size:18px;color:var(--text)}
.stamp-gold{align-self:flex-start;font-family:var(--type);font-size:14px;color:var(--brass);border:2px solid var(--brass);padding:4px 10px;transform:rotate(-2deg)}
.errata{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 0;border-block:1px solid var(--line-2)}
.errata .ed{font-size:18px}
.errata .st{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:13px;color:var(--ok)}
.card .form .input{background:var(--ink);flex:none}
.card .lbl{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);text-align:left}
.review{background:var(--paper);color:var(--paper-ink)}
.review .wrap{padding-block:48px;display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:center}
.review .in{display:flex;align-items:center;gap:18px}
.review h2{font-size:30px}
.review p{color:var(--paper-muted)}

/* Text pages */
.prose{max-width:760px;padding-block:72px 96px}
.prose h1{font-size:clamp(36px,5vw,52px);line-height:1.05;margin-bottom:28px}
.prose h2{font-size:26px;margin:40px 0 12px}
.prose p,.prose li{color:var(--text-2)}
.prose p+p{margin-top:12px}
.prose ul{padding-left:22px}
.todo{font-family:var(--mono);font-size:14px;color:var(--stamp)}

/* Mobile */
@media (max-width:760px){
  :root{--gutter:20px}
  .nav-toggle{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;background:transparent;border:1px solid var(--field);border-radius:2px;cursor:pointer}
  .nav{display:none;width:100%;flex-direction:column;gap:0}
  .nav.open{display:flex}
  .nav a{padding:14px 0;border-top:1px solid var(--line)}
  .hero{padding-block:40px 56px;gap:36px}
  .cover{padding:22px}
  .cover .c-title{font-size:22px}.cover .c-big{font-size:46px}
  .spread{height:380px;transform:scale(.72);transform-origin:top left;width:138%}
  .split{padding-block:56px}
  .files{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .five{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}
  .five .n{font-size:36px}
  .card{padding:22px}
  .books .book-1{width:150px}.books .book-2{width:126px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
