:root{
  --bg:#0E0E10;
  --surface:#161618;
  --raised:#1E1E22;
  --border:rgba(255,255,255,.10);
  --border-strong:rgba(255,255,255,.18);
  --text:#F4F3F2;
  --muted:rgba(244,243,242,.62);
  --faint:rgba(244,243,242,.40);
  --scarlet:#E23B4E;
  --scarlet-soft:rgba(226,59,78,.12);
  --neon:#5FD0D8;
  --neon-soft:rgba(95,208,216,.12);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.wrap{max-width:1080px;margin:0 auto;padding:0 32px}
section{padding:72px 0}
.eyebrow{
  font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--scarlet);font-weight:700;margin-bottom:16px;
}
h2{font-size:30px;line-height:1.15;font-weight:700;letter-spacing:-.01em;margin-bottom:12px}
.lead{color:var(--muted);max-width:640px;font-size:17px}

/* HERO */
.hero{
  position:relative;min-height:82vh;display:flex;flex-direction:column;
  justify-content:center;padding:96px 0 80px;overflow:hidden;
}
.hero-bg{position:absolute;inset:0;z-index:0}
.grid-lines{
  position:absolute;inset:0;
  background-image:linear-gradient(rgba(95,208,216,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(95,208,216,.05) 1px,transparent 1px);
  background-size:52px 52px;
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000 30%,transparent 78%);
          mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000 30%,transparent 78%);
}
.crack{
  position:absolute;top:-5%;left:62%;width:2px;height:110%;
  background:linear-gradient(180deg,transparent,var(--scarlet) 22%,#ff6b7a 50%,var(--scarlet) 78%,transparent);
  filter:drop-shadow(0 0 10px rgba(226,59,78,.75));
  transform:rotate(9deg);opacity:.85;
}
.crack::before{
  content:"";position:absolute;top:38%;left:-30px;width:60px;height:1px;
  background:linear-gradient(90deg,transparent,var(--scarlet),transparent);
  filter:drop-shadow(0 0 6px rgba(226,59,78,.7));transform:rotate(-24deg);
}
.crack::after{
  content:"";position:absolute;top:64%;left:-14px;width:38px;height:1px;
  background:linear-gradient(90deg,transparent,var(--scarlet),transparent);
  filter:drop-shadow(0 0 6px rgba(226,59,78,.7));transform:rotate(28deg);
}
.hero-inner{position:relative;z-index:2}
.tag-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}
.chip{
  font-size:12px;letter-spacing:.05em;padding:6px 12px;border-radius:999px;
  border:1px solid var(--border-strong);color:var(--muted);background:rgba(255,255,255,.02);
}
.title{
  font-size:clamp(84px,20vw,220px);line-height:.86;font-weight:800;letter-spacing:-.04em;
  position:relative;display:inline-block;
}
.title span{
  position:absolute;left:0;top:0;color:var(--scarlet);
  clip-path:polygon(0 12%,100% 8%,100% 34%,0 40%);
  transform:translateX(6px);opacity:.9;mix-blend-mode:screen;
}
.title span.b{
  color:var(--neon);clip-path:polygon(0 58%,100% 52%,100% 82%,0 88%);
  transform:translateX(-5px);
}
.subtitle{font-size:18px;color:var(--muted);margin-top:22px;letter-spacing:.02em}
.tagline{
  margin-top:40px;max-width:560px;font-size:20px;line-height:1.5;font-weight:500;
  border-left:2px solid var(--scarlet);padding-left:20px;color:var(--text);
}
.tagline em{color:var(--faint);font-style:italic;font-weight:400}

/* PREMISE */
.premise-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start}
.premise-grid p{color:var(--muted);margin-bottom:16px}
.facts{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:28px}
.fact{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--border)}
.fact:last-child{border-bottom:none}
.fact .k{color:var(--faint);font-size:14px}
.fact .v{color:var(--text);font-size:14px;text-align:right;font-weight:500}

/* THEME SPECTRUM */
.spectrum{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:36px}
.step{
  background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:22px 20px;position:relative;
}
.step .num{font-size:12px;color:var(--faint);letter-spacing:.1em;margin-bottom:10px}
.step h4{font-size:16px;margin-bottom:8px;font-weight:700}
.step p{font-size:13.5px;color:var(--muted);line-height:1.5}
.step.on{border-color:rgba(226,59,78,.5);background:linear-gradient(180deg,var(--scarlet-soft),var(--surface))}
.step.on h4{color:#ff8a97}

/* CHARACTERS */
.chars{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px}
.card{
  background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;
  transition:transform .2s ease,border-color .2s ease;
}
.card:hover{transform:translateY(-3px);border-color:var(--border-strong)}
.card .top{padding:24px 24px 18px;position:relative}
.avatar{
  width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:24px;font-weight:800;margin-bottom:16px;
}
.a-noah{background:var(--scarlet-soft);color:#ff8a97;border:1px solid rgba(226,59,78,.4)}
.a-siria{background:var(--neon-soft);color:var(--neon);border:1px solid rgba(95,208,216,.4)}
.a-billie{background:rgba(180,150,255,.12);color:#c3aaff;border:1px solid rgba(180,150,255,.4)}
.card h3{font-size:20px;margin-bottom:2px}
.card .role{font-size:12.5px;color:var(--faint);letter-spacing:.05em;text-transform:uppercase}
.card .body{padding:0 24px 24px}
.card .body p{font-size:14px;color:var(--muted);line-height:1.55}
.traits{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.trait{font-size:11.5px;padding:4px 10px;border-radius:999px;background:var(--raised);color:var(--muted);border:1px solid var(--border)}

/* WORLD */
.world{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:36px}
.wcard{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px}
.wcard .ico{font-size:22px;margin-bottom:12px;display:block}
.wcard h4{font-size:17px;margin-bottom:7px;font-weight:700}
.wcard p{font-size:14px;color:var(--muted);line-height:1.55}
.wcard .neon-h{color:var(--neon)}
.wcard .scar-h{color:#ff8a97}

/* CHAPTERS */
.chapters{margin-top:36px;border:1px solid var(--border);border-radius:14px;overflow:hidden}
.ch{display:grid;grid-template-columns:56px 1fr auto;gap:18px;align-items:center;padding:18px 24px;border-bottom:1px solid var(--border)}
.ch:last-child{border-bottom:none}
.ch .no{font-size:20px;font-weight:800;color:var(--faint)}
.ch .nm{font-size:15.5px;font-weight:600}
.ch .nm small{display:block;font-weight:400;color:var(--faint);font-size:12.5px;margin-top:2px}
.status{font-size:11.5px;padding:5px 12px;border-radius:999px;white-space:nowrap;font-weight:600}
.st-prog{background:var(--neon-soft);color:var(--neon);border:1px solid rgba(95,208,216,.35)}
.st-soon{background:rgba(255,255,255,.04);color:var(--faint);border:1px solid var(--border)}
.ch.active{background:linear-gradient(90deg,var(--scarlet-soft),transparent)}

/* SYNOPSIS */
.synopsis{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:36px;margin-top:36px}
.beats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:26px}
.beat{padding-top:18px;border-top:2px solid var(--scarlet)}
.beat .lbl{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--scarlet);font-weight:700;margin-bottom:8px}
.beat p{font-size:13.5px;color:var(--muted);line-height:1.55}

footer{padding:48px 0 64px;border-top:1px solid var(--border);text-align:center}
footer .fmark{font-size:22px;font-weight:800;letter-spacing:-.02em}
footer p{color:var(--faint);font-size:13px;margin-top:8px}

@media(max-width:820px){
  .premise-grid,.spectrum,.chars,.world,.beats{grid-template-columns:1fr}
  .spectrum{gap:12px}
  section{padding:56px 0}
  .wrap{padding:0 22px}
  .ch{grid-template-columns:40px 1fr;grid-template-areas:"no nm" ". st"}
  .ch .status{grid-area:st;justify-self:start}
}
