
:root{
  --paper:oklch(95.5% 0.018 88);
  --paper-2:oklch(92.5% 0.021 85);
  --card:oklch(97% 0.014 88);
  --sunk:oklch(87% 0.024 82);
  --ink:oklch(28% 0.02 60);
  --ink-soft:oklch(42% 0.019 62);
  --frame:oklch(24% 0.045 15);
  --frame-2:oklch(30% 0.045 15);
  --cream:oklch(94% 0.02 85);
  --cream-soft:oklch(84% 0.025 80);
  --gold:oklch(80% 0.10 75);
  --gold-deep:oklch(43% 0.072 82);
  --green:oklch(43% 0.072 155);
  --hair:oklch(72% 0.06 78);
  --line:oklch(83% 0.028 80);
  --shadow:0 1px 2px oklch(30% 0.04 40 / .08),0 10px 28px -10px oklch(30% 0.04 40 / .22);
  --r:8px;
  --serif:"Gowun Batang","Nanum Myeongjo",serif;
  --sans:"IBM Plex Sans KR",system-ui,"Malgun Gothic",sans-serif;
  --mono:ui-monospace,"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --wrap:1160px;
  --measure:680px;
  --gut:clamp(16px,4vw,40px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:112px}
@media (min-width:760px){html{scroll-padding-top:96px}}
body{
  margin:0;color:var(--ink);background-color:var(--paper);
  background-image:radial-gradient(oklch(55% 0.04 70 / .07) .7px,transparent 1px),radial-gradient(oklch(55% 0.04 70 / .05) .7px,transparent 1px);
  background-size:6px 6px,11px 11px;background-position:0 0,3px 5px;
  font:400 1rem/1.8 var(--sans);word-break:keep-all;overflow-wrap:break-word;
}
@media (min-width:720px){body{font-size:1.0625rem}}
::selection{background:oklch(80% 0.10 75 / .45)}
img{max-width:100%;display:block}
a{color:var(--green);text-underline-offset:4px;text-decoration-thickness:1px}
:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:4px}
.head :focus-visible,.foot :focus-visible{outline-color:var(--gold)}
.skip{position:absolute;left:12px;top:-64px;z-index:100;background:var(--gold);color:var(--frame);padding:8px 14px;border-radius:6px;font-weight:600;text-decoration:none}
.skip:focus{top:12px}

/* ── Header ───────────────────────── */
.head{
  position:sticky;top:0;z-index:50;background:var(--frame);color:var(--cream);
  border-bottom:1px solid oklch(80% 0.10 75 / .55);
  box-shadow:inset 0 -3px 0 var(--frame),inset 0 -4px 0 oklch(80% 0.10 75 / .28),0 2px 12px oklch(20% 0.04 20 / .22);
}
.head-in{
  max-width:var(--wrap);margin:0 auto;padding:10px var(--gut);min-height:68px;
  display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"brand nav cta";align-items:center;gap:8px 28px;
}
.brand{grid-area:brand;display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;line-height:1.2}
.brand::before{content:"";flex:none;width:8px;height:8px;background:var(--gold);transform:rotate(45deg)}
.brand b{font:700 1.4rem/1 var(--serif);letter-spacing:.02em}
.brand small{font-size:.8rem;color:var(--gold);letter-spacing:.03em;padding-left:10px;border-left:1px solid oklch(80% 0.10 75 / .35)}
.nav{grid-area:nav}
.nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 22px}
.nav a{display:block;color:var(--cream-soft);text-decoration:none;font-size:.95rem;padding:6px 1px;border-bottom:1px solid transparent}
.nav a:hover{color:var(--cream);border-bottom-color:oklch(80% 0.10 75 / .6)}
.nav a[aria-current="page"]{color:var(--gold);border-bottom-color:var(--gold)}

/* ── Buttons ──────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:12px 22px;
  font:600 1rem/1.2 var(--sans);text-decoration:none;white-space:nowrap;border-radius:var(--r);
  transition:background-color .15s ease,transform .1s ease;
}
.btn:active{transform:translateY(1px)}
.btn-gold{background:var(--gold);color:var(--frame);border:1px solid oklch(62% 0.09 75);box-shadow:inset 0 1px 0 oklch(90% 0.07 80)}
.btn-gold:hover{background:oklch(84% 0.095 78)}
.btn-frame{
  background:var(--frame);color:var(--cream);border:1px solid var(--frame);padding:14px 26px;
  box-shadow:inset 0 0 0 3px var(--frame),inset 0 0 0 4px oklch(80% 0.10 75 / .6),var(--shadow);
}
.btn-frame:hover{background:var(--frame-2);box-shadow:inset 0 0 0 3px var(--frame-2),inset 0 0 0 4px oklch(80% 0.10 75 / .75),var(--shadow)}
.head .btn{grid-area:cta;padding:9px 18px;font-size:.95rem}

@media (max-width:759px){
  .head-in{grid-template-columns:1fr auto;grid-template-areas:"brand cta" "nav nav";min-height:0;padding-top:8px;padding-bottom:0;gap:6px 12px}
  .brand b{font-size:1.2rem}
  .head .btn{padding:8px 14px;font-size:.875rem;min-height:38px}
  .nav{margin:0 calc(var(--gut) * -1);padding:0 var(--gut);border-top:1px solid oklch(80% 0.10 75 / .18)}
  .nav ul{flex-wrap:nowrap;justify-content:space-between;gap:12px}
  .nav a{font-size:.875rem;padding:7px 0}
}
@media (max-width:479px),(min-width:760px) and (max-width:999px){.brand small{display:none}}

/* ── Placeholders ─────────────────── */
.ph{
  position:relative;display:grid;place-items:center;overflow:hidden;border-radius:var(--r);
  border:1px solid var(--line);
  background:repeating-linear-gradient(135deg,oklch(88.5% 0.024 82) 0 9px,oklch(85.5% 0.027 80) 9px 18px);
}
.ph span{
  max-width:calc(100% - 20px);padding:5px 10px;border-radius:4px;text-align:center;overflow-wrap:anywhere;
  font:500 .75rem/1.5 var(--mono);color:var(--ink-soft);background:oklch(95.5% 0.018 88 / .93);border:1px solid var(--line);
}

/* ── Hero ─────────────────────────── */
.hero{padding:clamp(28px,5vw,64px) 0 clamp(32px,5vw,56px)}
.hero-in{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut);display:grid;gap:28px;align-items:center}
@media (min-width:900px){.hero-in{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px}}
@media (min-width:900px){.hero-in--single{grid-template-columns:minmax(0,1fr)}}
.kicker{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-size:.85rem;font-weight:600;letter-spacing:.08em;color:var(--gold-deep)}
.kicker::before{content:"";width:28px;height:1px;background:var(--gold-deep)}
h1{margin:0 0 18px;font:700 clamp(1.9rem,1.3rem + 2.4vw,3rem)/1.32 var(--serif);letter-spacing:-.01em}
.lead{margin:0 0 26px;font-size:1.075rem;color:var(--ink-soft);max-width:34em}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.hero-actions a:not(.btn){font-weight:500}
.hero-note{margin:16px 0 0;font-size:.85rem;color:var(--ink-soft)}
.hero-fig{margin:0;padding:10px;background:var(--paper-2);border:1px solid var(--hair);border-radius:10px;box-shadow:var(--shadow)}
.hero-fig .ph{aspect-ratio:3/2;border-radius:6px}

/* ── Facts strip ──────────────────── */
.facts{background:var(--sunk);border-block:1px solid var(--hair)}
.facts dl{max-width:var(--wrap);margin:0 auto;padding:18px var(--gut);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px}
@media (min-width:760px){.facts dl{grid-template-columns:repeat(5,minmax(0,1fr))}}
.facts div{padding-left:14px;border-left:1px solid oklch(62% 0.06 78 / .6)}
.facts dt{font-size:.78rem;letter-spacing:.06em;color:var(--ink-soft)}
.facts dd{margin:0;font:700 1.05rem/1.45 var(--serif)}

/* ── Article ──────────────────────── */
main{display:block;counter-reset:fig;padding-bottom:8px}
.sec{padding:clamp(44px,6vw,76px) var(--gut) 0}
.prose,.sec-head{max-width:var(--measure);margin:0 auto}
.sec-head{margin-bottom:28px}
.sec-head p{margin:0;color:var(--ink-soft)}
h2{display:flex;align-items:center;gap:12px;margin:0 0 18px;font:700 clamp(1.45rem,1.2rem + 1vw,1.85rem)/1.4 var(--serif)}
h2::before{content:"";flex:none;width:9px;height:9px;background:var(--gold);border:1px solid var(--gold-deep);transform:rotate(45deg)}
.prose p{margin:0 0 1.1em}
.more{display:inline-block;margin-top:10px;font-weight:500}
.fig{margin:30px 0 32px;counter-increment:fig}
@media (min-width:860px){.fig{margin-inline:-56px}}
.fig .ph{aspect-ratio:16/9}
.fig figcaption{display:flex;gap:10px;margin-top:10px;font-size:.875rem;line-height:1.65;color:var(--ink-soft)}
.fig figcaption::before{content:"그림 " counter(fig);flex:none;font-weight:600;color:var(--gold-deep)}
@media (min-width:860px){.fig figcaption{padding-inline:56px}}
.note{margin:28px 0 0;padding:16px 20px 16px 18px;background:var(--sunk);border-left:3px solid var(--green);border-radius:8px}
.note h3{margin:0 0 4px;font:700 1rem/1.5 var(--serif);color:var(--green)}
.note p{margin:0;font-size:.95rem}

/* ── Ad slot ──────────────────────── */
.ad{max-width:var(--wrap);margin:clamp(52px,7vw,84px) auto 0;padding:0 var(--gut)}
.ad-box{
  position:relative;max-width:970px;min-height:250px;margin:0 auto;display:grid;place-items:center;
  background:oklch(93% 0.008 85);border:1px dashed oklch(58% 0.015 70 / .6);border-radius:2px;
}
.ad-label{position:absolute;top:8px;left:10px;font:500 .7rem/1 var(--mono);letter-spacing:.14em;color:var(--ink-soft)}
.ad-box p{margin:0;padding:0 16px;text-align:center;font:400 .78rem/1.6 var(--mono);color:oklch(48% 0.012 65)}

/* ── Cards (shared) ───────────────── */
.cast,.ends{list-style:none;max-width:var(--wrap);margin:0 auto;padding:0;display:grid;grid-template-columns:1fr;gap:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 2px oklch(30% 0.04 40 / .06)}
.card h3{margin:0;font:700 1.12rem/1.45 var(--serif)}
.clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}
.portrait{aspect-ratio:1/1;border-radius:6px}
.thumb{aspect-ratio:3/2;border-radius:6px}
.portrait span,.thumb span{font-size:.68rem;padding:3px 7px}

.cast .card{display:grid;grid-template-columns:88px 1fr;gap:14px;align-items:center;padding:12px}
.role{margin:2px 0 4px;font-size:.8rem;font-weight:600;color:var(--green);line-height:1.5}
.intro,.end-body p.desc{margin:0;font-size:.875rem;line-height:1.65;color:var(--ink-soft)}

.ends .card{display:grid;grid-template-columns:112px 1fr;gap:12px;align-items:start;padding:10px}
.end-meta{display:flex;align-items:center;gap:8px;margin:0 0 4px}
.no{font:700 .8rem/1 var(--serif);color:var(--gold-deep);letter-spacing:.04em}
.tag{font-size:.7rem;font-weight:600;line-height:1.5;padding:1px 8px;border-radius:999px;color:var(--gold-deep);background:oklch(95% 0.03 85);border:1px solid oklch(72% 0.06 78)}
.tag.g{color:var(--green);background:oklch(95% 0.02 155);border-color:oklch(70% 0.05 155)}
.is-secret .ph{border-color:oklch(35% 0.045 15);background:repeating-linear-gradient(135deg,oklch(30% 0.045 15) 0 9px,oklch(27% 0.045 15) 9px 18px)}
.is-secret .ph span{color:var(--gold);background:var(--frame);border-color:oklch(80% 0.10 75 / .4)}

@media (min-width:560px){
  .cast,.ends{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .cast .card,.ends .card{display:block;padding:10px}
  .card-body{padding:12px 6px 6px}
}
@media (min-width:1000px){.cast,.ends{grid-template-columns:repeat(4,minmax(0,1fr))}}

.grid-note{max-width:var(--wrap);margin:22px auto 0;padding:14px 18px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;font-size:.9rem;color:var(--ink-soft);border-top:1px solid var(--hair)}
.grid-note strong{font:700 1.05rem/1.4 var(--serif);color:var(--gold-deep)}

/* ── Steps + CTA ──────────────────── */
.steps{list-style:none;margin:0 0 28px;padding:0;counter-reset:st;display:grid;gap:12px}
.steps li{counter-increment:st;display:grid;grid-template-columns:36px 1fr;gap:14px;padding:16px 18px;background:var(--card);border:1px solid var(--line);border-radius:10px}
.steps li::before{content:counter(st);width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--gold-deep);color:var(--gold-deep);font:700 1rem/1 var(--serif)}
.steps strong{display:block;margin-bottom:2px;font:700 1.05rem/1.5 var(--serif)}
.steps p{margin:0;font-size:.95rem;line-height:1.7;color:var(--ink-soft)}
.cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px;padding:22px 24px;background:var(--sunk);border:1px solid var(--hair);border-radius:10px}
.cta p{flex:1 1 240px;margin:0;font:700 1.1rem/1.55 var(--serif)}
.cta small{display:block;font:400 .85rem/1.6 var(--sans);color:var(--ink-soft)}

/* ── Footer ───────────────────────── */
.foot{
  margin-top:clamp(64px,8vw,100px);background:var(--frame);color:var(--cream-soft);
  border-top:1px solid oklch(80% 0.10 75 / .55);
  box-shadow:inset 0 3px 0 var(--frame),inset 0 4px 0 oklch(80% 0.10 75 / .28);
}
.foot-in{max-width:var(--wrap);margin:0 auto;padding:40px var(--gut) 28px}
.foot-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px}
.foot-brand{margin:0;font:700 1.2rem/1.3 var(--serif);color:var(--cream)}
.foot-brand small{display:block;margin-top:4px;font:400 .8rem/1.5 var(--sans);color:var(--gold)}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 24px}
.foot a{display:inline-block;padding:8px 0;color:var(--cream)}
.foot a:hover{color:var(--gold)}
.foot .ad{margin:32px 0 0;padding:0}
.foot .ad-box{min-height:120px;max-width:none}
.copy{margin:28px 0 0;padding-top:16px;border-top:1px solid oklch(80% 0.10 75 / .2);font-size:.85rem}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}

.hero-fig img,.fig img,.portrait img,.thumb img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
