:root{
  --ink:#0b0a09; --ink-2:#14120f; --ink-3:#1d1a16;
  --paper:#efe7d6; --paper-dim:#b9b0a0; --mute:#8a8274;
  --gold:#c9a45c; --red:#b3262d; --red-hi:#d23a3f;
  --line:rgba(239,231,214,.12);
  --serif:"Archivo", "Manrope", system-ui, sans-serif;
  --sans:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  --gutter:clamp(16px, 4vw, 48px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--ink);color:var(--paper);font:400 16px/1.65 var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--red);color:var(--paper)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* film grain + cursor ember */
.grain{position:fixed;inset:-50%;z-index:60;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
.ember{position:fixed;left:0;top:0;width:520px;height:520px;margin:-260px 0 0 -260px;z-index:5;pointer-events:none;border-radius:50%;
  background:radial-gradient(circle, rgba(255,150,60,.16) 0%, rgba(255,120,40,.06) 35%, transparent 65%);
  mix-blend-mode:screen;opacity:0;transition:opacity .6s;will-change:transform}
body.has-pointer .ember{opacity:1}

/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  padding:calc(14px + env(safe-area-inset-top)) var(--gutter) 14px;transition:background .4s, backdrop-filter .4s}
.nav.solid{background:rgba(11,10,9,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px}
.brand-mark{width:22px;height:22px;border:1.5px solid var(--paper);transform:rotate(4deg);position:relative;border-radius:2px}
.brand-mark::after{content:"";position:absolute;inset:3px;border-top:1.5px solid var(--gold);transform:rotate(-14deg) translateY(5px)}
.brand-word{font:600 15px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.brand-word em{font-style:normal;color:var(--paper-dim);font-weight:500}
.nav-links{display:flex;align-items:center;gap:clamp(14px,2.4vw,32px);font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.nav-links a{opacity:.8;transition:opacity .2s}
.nav-links a:hover{opacity:1}
.nav-cta{border:1px solid var(--paper);padding:8px 14px;border-radius:999px;opacity:1!important}
.nav-cta:hover{background:var(--paper);color:var(--ink)}
@media (max-width:640px){
  .nav-links a:not(.nav-cta){display:none}
  .brand-word{font-size:12px}
}

/* HERO */
.hero{position:relative;height:540vh;background:#000}
.hero-stick{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.hero-canvas,.hero-poster{position:absolute;inset:-3%;width:106%;height:106%;object-fit:cover;will-change:transform}
.hero-poster{opacity:1;transition:opacity .8s}
.hero.ready .hero-poster{opacity:0}
.hero-poster.fallback{object-position:center 22%;filter:brightness(.62) contrast(1.08)}
.hero-shade{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse at 50% 55%, transparent 40%, rgba(0,0,0,.55) 100%), linear-gradient(to bottom, rgba(0,0,0,.45), transparent 22%, transparent 60%, rgba(11,10,9,.95))}
.beat{position:absolute;left:0;right:0;padding:0 var(--gutter);text-align:center;opacity:0;transform:translateY(24px);will-change:opacity,transform;pointer-events:none}
.beat.on{pointer-events:auto}
.beat-1{bottom:18vh}
.beat-2{top:50%;margin-top:-.6em}
.beat-3{bottom:16vh}
.beat-4{bottom:12vh}
.kicker{font:500 12px/1 var(--sans);letter-spacing:.42em;text-transform:uppercase;color:var(--paper-dim)}
.title{font:600 clamp(64px,15vw,220px)/.84 var(--serif);letter-spacing:-.01em;text-shadow:0 10px 60px rgba(0,0,0,.6)}
.title span{display:block;color:var(--gold);font-style:italic;font-weight:500;font-size:.46em;letter-spacing:.32em;margin-top:.12em;padding-left:.32em}
.logline{font:500 clamp(24px,3.6vw,46px)/1.2 var(--serif);text-shadow:0 4px 30px rgba(0,0,0,.8)}
.logline em{color:var(--gold)}
.cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;min-height:48px;padding:0 24px;border-radius:999px;font:700 13px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;transition:transform .25s, background .25s, color .25s}
.btn:hover{transform:translateY(-2px)}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-hi)}
.btn-ghost{border:1px solid rgba(239,231,214,.5);backdrop-filter:blur(6px)}
.btn-ghost:hover{background:var(--paper);color:var(--ink)}
.scroll-hint{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:var(--paper-dim);transition:opacity .4s}
.scroll-hint i{width:1px;height:42px;background:linear-gradient(var(--paper),transparent);animation:drip 1.8s ease-in-out infinite;transform-origin:top}
@keyframes drip{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.loader{position:absolute;left:0;right:0;bottom:0;height:2px;background:transparent}
.loader i{display:block;height:100%;width:0;background:var(--gold);transition:width .2s, opacity .6s}
.hero.ready .loader i{opacity:0}

/* sections */
.section{position:relative;padding:clamp(96px,14vw,180px) 0;z-index:2}
.wrap{max-width:1180px;margin:0 auto;padding:0 var(--gutter)}
.sec-num{font:600 12px/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
h2{font:600 clamp(44px,7vw,96px)/.95 var(--serif);letter-spacing:-.01em}
.lede{max-width:640px;margin-top:24px;font-size:clamp(17px,1.6vw,20px);color:var(--paper-dim)}
.sec-head{margin-bottom:clamp(48px,7vw,88px)}
.text-link{display:inline-block;margin-top:18px;font:700 13px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid currentColor;padding-bottom:4px}

.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s cubic-bezier(.2,.7,.2,1), transform 1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

/* episode */
.episode{display:grid;grid-template-columns:1.45fr 1fr;gap:clamp(24px,4vw,56px);align-items:center}
.player{position:relative;aspect-ratio:16/9;width:100%;border:0;padding:0;background:#000;cursor:pointer;overflow:hidden;border-radius:4px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.player img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1), filter .6s;filter:brightness(.8)}
.player:hover img{transform:scale(1.04);filter:brightness(1)}
.play{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;background:rgba(179,38,45,.92);transition:transform .3s}
.play::after{content:"";position:absolute;left:34px;top:27px;border-left:22px solid #fff;border-top:15px solid transparent;border-bottom:15px solid transparent}
.player:hover .play{transform:scale(1.08)}
.player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ep-no{font:700 12px/1 var(--sans);letter-spacing:.3em;color:var(--red-hi);margin-bottom:14px}
.ep-meta h3{font:600 clamp(34px,4vw,52px)/1 var(--serif)}
.ep-meta h3 span{display:block;font-style:italic;font-weight:500;font-size:.56em;color:var(--paper-dim);margin-top:8px}
.ep-meta>p{margin-top:20px;color:var(--paper-dim)}
.facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;list-style:none}
.facts li{font-size:12px;letter-spacing:.06em;border:1px solid var(--line);padding:6px 10px;border-radius:999px;color:var(--paper-dim)}
.next{display:flex;align-items:baseline;gap:20px;margin-top:56px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.next .ep-no{margin:0;color:var(--mute)}
.next-line{font:500 clamp(20px,2.4vw,28px)/1.3 var(--serif);font-style:italic}

/* cast */
.cast{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);margin-top:clamp(64px,9vw,120px);align-items:end}
.cast-card{position:relative}
.swap{position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:4px;background:var(--ink-2)}
.swap img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%;transition:opacity .7s, transform 1.4s cubic-bezier(.2,.7,.2,1)}
.swap .alt{opacity:0}
.cast-card:hover .swap .alt,.cast-card:focus .swap .alt{opacity:1}
.cast-card:hover .swap img,.cast-card:focus .swap img{transform:scale(1.04)}
.cast-card figcaption{margin-top:20px}
h4{font:600 30px/1 var(--serif);margin-bottom:10px}
.cast-card p,.cast-mini p{color:var(--paper-dim)}
.cast-side{display:grid;gap:clamp(24px,3vw,40px)}
.cast-mini{border-top:1px solid var(--line);padding-top:24px}

/* games */
.games{background:linear-gradient(var(--ink),var(--ink-2) 30%,var(--ink-2) 70%,var(--ink))}
.game-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,40px)}
.game{display:flex;flex-direction:column;background:var(--ink-3);border:1px solid var(--line);border-radius:6px;overflow:hidden;transition:transform .5s cubic-bezier(.2,.7,.2,1), border-color .4s, box-shadow .5s}
.game:hover{transform:translateY(-6px);border-color:rgba(201,164,92,.5);box-shadow:0 30px 70px rgba(0,0,0,.5)}
.game-art{aspect-ratio:1200/630;overflow:hidden}
.game-art img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.game:hover .game-art img{transform:scale(1.05)}
.game-body{padding:clamp(22px,3vw,34px)}
.game-tag{font:700 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.game h3{font:600 clamp(28px,3vw,38px)/1.05 var(--serif);margin-bottom:12px}
.game p{color:var(--paper-dim)}

/* studio */
.studio-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,6vw,96px);align-items:center}
.studio p{margin-top:20px;color:var(--paper-dim);max-width:560px}
.studio .lede{margin-top:28px}
.sig{color:var(--paper)!important}
.sig strong{color:var(--gold);font-weight:700}
.socials{display:flex;gap:20px;list-style:none;margin-top:28px;font:700 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase}
.socials a{border-bottom:1px solid var(--line);padding-bottom:6px}
.socials a:hover{border-color:var(--gold);color:var(--gold)}
.paper{aspect-ratio:4/5;border-radius:3px;position:relative;transition:transform .2s ease-out;
  background:
    linear-gradient(115deg, transparent 0 30%, rgba(0,0,0,.18) 31%, transparent 34% 58%, rgba(255,255,255,.18) 59%, transparent 62%),
    linear-gradient(28deg, transparent 0 46%, rgba(0,0,0,.14) 47%, transparent 51%),
    linear-gradient(160deg, transparent 0 66%, rgba(0,0,0,.12) 67%, transparent 70%),
    linear-gradient(72deg, transparent 0 18%, rgba(255,255,255,.14) 19%, transparent 22%),
    #e9e0cd;
  box-shadow:0 40px 90px rgba(0,0,0,.55), inset 0 0 80px rgba(120,100,70,.25)}
.paper::after{content:"UNCRUMPLED";position:absolute;left:0;right:0;bottom:12%;text-align:center;font:600 clamp(18px,2.4vw,28px)/1 var(--serif);letter-spacing:.32em;color:rgba(30,26,20,.75);padding-left:.32em}

.foot{display:flex;justify-content:space-between;gap:16px;padding:32px var(--gutter) calc(32px + env(safe-area-inset-bottom));border-top:1px solid var(--line);font-size:13px;color:var(--mute)}
.foot a:hover{color:var(--paper)}

@media (max-width:860px){
  .episode,.cast,.game-grid,.studio-grid{grid-template-columns:1fr}
  .paper{max-width:320px;aspect-ratio:1/1}
  .next{flex-direction:column;gap:10px}
}
@media (prefers-reduced-motion:reduce){
  .grain,.scroll-hint i{animation:none}
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

/* ---------- language switch ---------- */
.lang{display:flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px}
.lang button{appearance:none;border:0;background:none;color:var(--paper-dim);font:600 11px/1 var(--sans);letter-spacing:.08em;padding:7px 10px;border-radius:999px;cursor:pointer;transition:background .2s,color .2s}
.lang button[lang="ko"]{font-family:"Noto Sans KR",var(--sans);letter-spacing:0}
.lang button[lang="ja"]{font-family:"Zen Kaku Gothic New",var(--sans);letter-spacing:0}
.lang button:hover{color:var(--paper)}
.lang button[aria-pressed="true"]{background:var(--paper);color:var(--ink)}
.lang .short{display:none}
@media (max-width:640px){
  .lang .full{display:none}.lang .short{display:inline}
  .lang button{padding:7px 8px;letter-spacing:.06em}
  .nav-links{gap:8px}
  .nav-cta{padding:8px 11px}
}

/* ---------- per-language typography ---------- */
/* brand words stay in the Latin display face in every language */

html[lang="ko"]{--serif:"Noto Sans KR","Archivo",sans-serif;--sans:"Noto Sans KR","Manrope",system-ui,sans-serif}
html[lang="ja"]{--serif:"Zen Kaku Gothic New","Archivo",sans-serif;--sans:"Zen Kaku Gothic New","Manrope",system-ui,sans-serif}
html[lang="ko"] .title,html[lang="ja"] .title{font-family:"Archivo",sans-serif}
html[lang="ko"] .brand-word,html[lang="ja"] .brand-word,html[lang="ko"] .ep-no,html[lang="ja"] .ep-no,
html[lang="ko"] .nav-cta,html[lang="ja"] .nav-cta{font-family:"Manrope",system-ui,sans-serif}

html[lang="ko"] body,html[lang="ja"] body{line-height:1.8}
html[lang="ko"]{word-break:keep-all;overflow-wrap:break-word}
html[lang="ja"]{line-break:strict}

/* CJK has no true italic: keep the gold accent, drop the slant */
html[lang="ko"] em,html[lang="ja"] em,
html[lang="ko"] .next-line,html[lang="ja"] .next-line{font-style:normal}

/* headings: heavier mincho, tighter tracking, a touch smaller */
html[lang="ko"] h2,html[lang="ja"] h2{font-weight:800;font-size:clamp(36px,5.6vw,76px);line-height:1.15;letter-spacing:-.02em}
html[lang="ja"] h2{font-weight:700}
html[lang="ko"] .series h2,html[lang="ja"] .series h2{font-family:"Archivo",sans-serif;font-weight:900;font-stretch:125%;font-size:clamp(40px,6.4vw,88px);letter-spacing:-.02em}
html[lang="ko"] .logline,html[lang="ja"] .logline{font-weight:700;font-size:clamp(22px,3vw,40px);line-height:1.45;letter-spacing:-.01em}
html[lang="ko"] h3,html[lang="ja"] h3{font-weight:800;letter-spacing:-.02em;line-height:1.25}
html[lang="ja"] h3{font-weight:700}
html[lang="ko"] h4,html[lang="ja"] h4{font-weight:800;font-size:26px}
html[lang="ko"] .next-line,html[lang="ja"] .next-line{font-weight:700;font-size:clamp(18px,2vw,24px);line-height:1.5}

/* small caps labels: CJK reads badly with wide tracking */
html[lang="ko"] .sec-num,html[lang="ja"] .sec-num,
html[lang="ko"] .game-tag,html[lang="ja"] .game-tag,
html[lang="ko"] .text-link,html[lang="ja"] .text-link,
html[lang="ko"] .btn,html[lang="ja"] .btn,
html[lang="ko"] .nav-links a:not(.nav-cta),html[lang="ja"] .nav-links a:not(.nav-cta),
html[lang="ko"] .scroll-hint,html[lang="ja"] .scroll-hint{letter-spacing:.08em}
html[lang="ko"] .btn,html[lang="ja"] .btn{font-size:14px}
html[lang="ko"] .lede,html[lang="ja"] .lede{font-size:clamp(16px,1.45vw,19px)}

.nav-cta{white-space:nowrap}
.nav-cta .short{display:none}
@media (max-width:640px){.nav-cta .full{display:none}.nav-cta .short{display:inline}}
html[lang="ja"] h2{font-size:clamp(32px,4.4vw,60px);text-wrap:balance}
html[lang="ko"] h2{text-wrap:balance}
html[lang="ja"] h3,html[lang="ja"] h2,html[lang="ja"] .logline{word-break:keep-all}
.logline rt{font-size:.38em;font-weight:500;letter-spacing:.1em;color:var(--paper-dim)}

/* ---------- v2 typography: modern action (Archivo expanded) ---------- */
.title{font-weight:900;font-stretch:125%;font-size:clamp(52px,12.5vw,190px);line-height:.86;letter-spacing:-.035em}
.title span{font-weight:700;font-stretch:100%;font-style:italic;font-size:.34em;letter-spacing:.42em;padding-left:.42em;margin-top:.28em}
h2{font-weight:800;font-stretch:112%;letter-spacing:-.03em;line-height:.98;font-size:clamp(40px,6.2vw,88px)}
.series h2{font-weight:900;font-stretch:125%}
.logline{font-weight:700;font-stretch:100%;letter-spacing:-.015em;line-height:1.18}
.logline em{font-weight:600}
.ep-meta h3{font-weight:800;font-stretch:108%;letter-spacing:-.02em}
.ep-meta h3 span{font-weight:500;font-stretch:100%;letter-spacing:0}
.next-line{font-weight:600;font-stretch:100%;letter-spacing:-.01em}
h4{font-weight:800;font-stretch:112%;letter-spacing:-.02em;font-size:26px}
.game h3{font-weight:800;font-stretch:108%;letter-spacing:-.025em;line-height:1.08}
.paper::after{font-family:"Archivo",sans-serif;font-weight:800;font-stretch:125%;letter-spacing:.24em;padding-left:.24em}
/* CJK: heavy modern gothic headings */
html[lang="ko"] h2,html[lang="ja"] h2{font-weight:900;letter-spacing:-.04em;line-height:1.12;font-stretch:100%}
html[lang="ko"] .series h2,html[lang="ja"] .series h2{line-height:.98}
html[lang="ko"] h3,html[lang="ja"] h3,html[lang="ko"] h4,html[lang="ja"] h4{font-weight:900;letter-spacing:-.035em;font-stretch:100%}
html[lang="ko"] .logline,html[lang="ja"] .logline{font-weight:900;letter-spacing:-.035em}
html[lang="ko"] .logline em,html[lang="ja"] .logline em{font-weight:700}
html[lang="ko"] .next-line,html[lang="ja"] .next-line{font-weight:700;letter-spacing:-.02em}
html[lang="ko"] .ep-meta h3 span,html[lang="ja"] .ep-meta h3 span{font-family:"Archivo",sans-serif;font-style:italic;font-weight:500}
.studio h2{font-size:clamp(34px,4.4vw,62px)}
