/* ═══════════════════════════════════════════════════════════════════════
   deck-forge.css — THE FORGE SKIN for the scroll decks
   Loaded AFTER each deck's inline <style>, so it wins on the cascade.
   Only two jobs: (1) let the decks claim the glass, (2) put the blade on.
   Scroll choreography, pinning and reveal logic are untouched.
   ═══════════════════════════════════════════════════════════════════════ */

:root{
  --bg:#0a0716; --bg2:#100b24; --panel:#160f33;
  --line:rgba(239,234,255,.13);
  --magenta:#ff2f8e; --gold:#ffc94a;
  --ink:#efeaff; --dim:#a79dd0; --faint:#655b90;
}

body{font-family:Jost,"Zen Kaku Gothic New",sans-serif}

/* ── the anti-safety-margin: 1180px column → the whole spread ── */
section,
#how, #method, #pin .inner{
  max-width:min(2200px,94vw) !important;
  padding-left:clamp(20px,3vw,64px) !important;
  padding-right:clamp(20px,3vw,64px) !important;
}
section{margin-inline:auto}

/* ── impact type ── */
h1,h2,h3{letter-spacing:.01em}
h2{
  font-family:Anton,"Arial Narrow",sans-serif !important;font-weight:400 !important;
  text-transform:uppercase;line-height:1.02 !important;
  font-size:clamp(2rem,4.8vw,4.2rem) !important;
}
h2 em, h2 .it, em.grad{
  font-family:"Instrument Serif",serif !important;font-style:italic;
  text-transform:none;font-weight:400;
}
#hero h1{
  font-family:Anton,"Arial Narrow",sans-serif !important;font-weight:400 !important;
  text-transform:uppercase;line-height:.94 !important;
}
#hero h1 .it{font-family:"Instrument Serif",serif !important;text-transform:none}
.kicker{letter-spacing:.34em;font-size:.7rem}
.lead{max-width:74ch !important;line-height:1.85}

/* ── hard-edged panels: ink borders, sliced corners, screentone ── */
.card,.codecard,.fighter,.champ,.cm,.exists,.dream,.join,.step,.pnl{
  border-radius:0 !important;
  border:1.5px solid var(--line) !important;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%);
  position:relative;
}
.card::before,.codecard::before,.fighter::before,.champ::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:radial-gradient(circle,rgba(239,234,255,.09) .8px,transparent 1.1px);
  background-size:5px 5px;opacity:.5;
  mask-image:linear-gradient(160deg,#000,transparent 60%);
  -webkit-mask-image:linear-gradient(160deg,#000,transparent 60%);
}
.card>*,.codecard>*,.fighter>*,.champ>*{position:relative;z-index:1}

/* ── buttons ── */
.btn,.btn-hot,.btn-ghost,.btn-p,.btn-s{
  border-radius:0 !important;
  text-transform:uppercase;letter-spacing:.14em;font-size:.82rem;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%);
}
.btn-hot:hover,.btn-p:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 rgba(255,201,74,.45)}
.btn-ghost:hover,.btn-s:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 rgba(124,92,255,.3)}

/* ── the scroll rail: a blade edge, not a hairline ── */
#bar{height:3px;background:linear-gradient(90deg,var(--violet),var(--magenta),var(--gold))}
#dots a{border-radius:0;transform:rotate(45deg)}
#dots a.on{background:var(--magenta);transform:rotate(45deg) scale(1.4)}

/* ── the kanji rail on the left edge of every deck ── */
body::before{
  content:"不可能は仮説である";
  position:fixed;left:10px;top:50%;transform:translateY(-50%);z-index:5;
  writing-mode:vertical-rl;text-orientation:upright;
  font-family:"Zen Kaku Gothic New","Hiragino Sans",sans-serif;
  font-size:11px;letter-spacing:.42em;color:rgba(101,91,144,.55);
  pointer-events:none;
}
@media(max-width:1180px){body::before{display:none}}

/* home link, hard-edged */
#homelink{border-radius:0 !important;text-transform:uppercase;letter-spacing:.14em;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%)}

@media (prefers-reduced-motion:reduce){
  .btn-hot:hover,.btn-ghost:hover,.btn-p:hover,.btn-s:hover{transform:none;box-shadow:none}
}
