@font-face{font-family:"Pretendard";src:url("/font/pretendard-sub.woff2") format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}
/* 시안 B(오브젝트, 2026-10-28): 딥 잉크 전체 화면 + 책을 물건처럼 + 책마다 표지 색 배경.
   상자·둥근 모서리는 쓰지 않고 선과 여백으로 나눈다. 둥근 것은 골드 주요 버튼과 작은 표시뿐 */
:root{
  --ink:#141B26;         /* 메인 딥 잉크 */
  --sub:#4A6283;         /* 서브 */
  --gold:#F6C343;        /* 골드 — 바탕·작은 포인트에만 */
  --gold-ink:#7A5C1B;    /* 흰 바탕 위 골드 글자 */
  --soft:#EDF1F6;        /* 서브 연한 바탕 (책이 놓이는 바닥) */
  --deep:#0E141D;        /* 잉크보다 한 단 어두운 구간 */
  --bg:#FFFFFF; --bg2:#F6F7F9;
  --body:#4B5563; --muted:#8A93A0; --line:#E2E6EC;
  --on-ink:#E6EAF0; --on-ink-2:#9AA6B6;
  --sans:"Pretendard",'Apple SD Gothic Neo','Malgun Gothic',system-ui,-apple-system,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:72px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.8;letter-spacing:-.02em;
  -webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:anywhere;overflow-x:hidden}
h1,h2,h3{margin:0;font-weight:800;letter-spacing:-.045em;line-height:1.3;text-wrap:balance}
p{margin:0}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.wrap{max-width:1080px;margin:0 auto;padding-inline:20px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* 헤더 (딥 잉크) */
header{position:sticky;top:0;z-index:50;background:rgba(20,27,38,.94);backdrop-filter:saturate(1.4) blur(12px);
  -webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid rgba(255,255,255,.07)}
.nav{display:flex;align-items:center;height:64px;gap:4px}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-decoration:none;margin-right:auto}
.brand img{height:26px;width:auto;filter:brightness(0) invert(1)}   /* 흰색 로고 */
.brand span{font-size:9.5px;font-weight:600;color:var(--on-ink-2);letter-spacing:-.01em;line-height:1}
.nav a.nl{font-size:14px;font-weight:600;color:var(--on-ink-2);text-decoration:none;padding:8px 10px}
.nav a.nl:hover,.nav a.nl[aria-current]{color:#fff}
.nav a.nl[aria-current]{box-shadow:inset 0 -2px 0 var(--gold)}
@media(max-width:420px){.nav a.nl{padding:8px 7px;font-size:13.5px}}

/* 공통 섹션 */
.sec{padding-block:clamp(72px,11vw,130px)}
.sec.alt{background:var(--bg2)}
/* 작은 머리말: 장식 없이 글자만 */
.kick{display:inline-block;font-size:14px;font-weight:700;color:var(--sub);margin-bottom:12px;letter-spacing:-.01em}
.ch{font-size:clamp(28px,4.4vw,48px);margin-bottom:clamp(30px,4.6vw,52px)}
.lead{font-size:clamp(15px,1.8vw,17.5px);color:var(--body);line-height:1.9;max-width:46ch}
.fine{margin-top:16px;font-size:12px;color:var(--muted);line-height:1.7}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-size:15px;font-weight:700;
  padding:13px 22px;border-radius:3px;text-decoration:none;border:0;cursor:pointer;letter-spacing:-.02em;transition:background .2s,box-shadow .2s,color .2s}
.btn.gold{background:var(--gold);color:var(--ink);border-radius:999px;padding:14px 26px}
.btn.gold:hover{background:#FFD45E}
.btn.ink{background:var(--ink);color:#fff}
.btn.ink:hover{background:#1E2735}
.btn.line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.line:hover{background:var(--ink);color:#fff}
.btn.ghost{background:transparent;color:#fff;font-weight:700;padding-inline:4px}
.btn.ghost:hover{color:var(--gold)}
.btn[aria-disabled=true]{background:transparent;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);cursor:default}
.arw::after{content:"→";font-weight:700}

/* 책을 물건으로: 책등 그림자 + 바닥 그림자 (종이 단면은 잘린 목업처럼 보여 뺐다) */
.obj{position:relative;aspect-ratio:760/1040;border-radius:1px 3px 3px 1px;
  box-shadow:0 1px 2px rgba(0,0,0,.18),0 26px 50px -20px rgba(0,0,0,.55)}
.obj img{width:100%;height:100%;object-fit:cover;border-radius:inherit;-webkit-user-drag:none}
.obj::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(90deg,rgba(0,0,0,.34) 0,rgba(255,255,255,.18) 1.6%,rgba(0,0,0,.12) 3.4%,rgba(255,255,255,0) 7%,rgba(255,255,255,0) 92%,rgba(0,0,0,.08) 100%)}

/* 홈 배너 (5초마다 옆으로). 장마다 바탕이 다르다: 1 딥 잉크, 2·3 그 책 표지 색 */
.slider{position:relative;overflow:hidden;background:var(--ink)}
.track{display:flex;transition:transform .8s cubic-bezier(.2,.7,.2,1);touch-action:pan-y;-webkit-user-select:none;user-select:none;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.track.drag{transition:none;cursor:grabbing}
.track img{-webkit-user-drag:none}
.slide{flex:0 0 100%;min-width:0;overflow:hidden;display:flex;flex-direction:column;justify-content:center;color:#fff;background:var(--c,var(--ink))}
.slide.home{background:radial-gradient(120% 70% at 50% 100%,#25344A 0%,var(--ink) 62%)}
.dots{position:absolute;left:0;right:0;bottom:clamp(18px,3vw,30px);display:flex;justify-content:center;gap:8px}
.dots button{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.32);cursor:pointer;transition:width .3s,background .3s}
.dots button[aria-current=true]{width:26px;background:var(--gold)}

.hero{padding-block:clamp(60px,9vw,104px) clamp(72px,9vw,108px);display:grid;gap:clamp(36px,6vw,64px);align-items:center}
@media(min-width:900px){.hero{grid-template-columns:1fr 1.05fr}}
.hero .kick{color:var(--gold)}
.hero h1,.hero .ht{font-size:clamp(36px,6.2vw,66px);letter-spacing:-.055em;line-height:1.14;color:#fff}
.hero h1 em,.hero .ht em{font-style:normal;color:var(--gold)}
.hero .lead{margin-top:22px;color:rgba(255,255,255,.74)}
.hero .cta{display:flex;gap:14px 22px;flex-wrap:wrap;align-items:center;margin-top:32px}

/* 첫 장: 가운데 정렬 + 펴낸 책이 무대에 선다 */
.hero.c{display:block;text-align:center;padding-bottom:0}
.hero.c h1{font-size:clamp(38px,7.4vw,92px);line-height:1.08}
.hero.c .lead{margin-inline:auto;max-width:52ch;text-wrap:balance}
.hero.c .cta{justify-content:center}
/* 펴낸 책 10권을 한 더미로 뭉쳐 두고, 마우스를 올리면(폰은 누르면) 부채처럼 살짝 퍼진다.
   뒤 줄 5권(어둡게)은 앞 줄 5권 위로 머리만 보인다. 이동은 각 책 너비 기준 % */
.stage{margin-top:clamp(44px,6vw,68px);padding-bottom:clamp(70px,8vw,92px);cursor:default}
.stage .rw{display:flex;justify-content:center;align-items:flex-end}
.stage .front{margin-top:calc(-1 * clamp(70px,13vw,170px));position:relative}
.stage .obj{flex:none;transform-origin:50% 100%;transition:transform .8s cubic-bezier(.34,1.45,.5,1),translate .35s ease}
.stage .back .obj{width:clamp(44px,10vw,128px);filter:brightness(.66)}
.stage .back .obj.mid{width:clamp(66px,15vw,184px);filter:brightness(.82)}
.stage .front .obj{width:clamp(50px,13vw,150px)}
.stage .front .obj.m{width:clamp(58px,15vw,176px);z-index:2}
.stage .front .obj.top{width:clamp(74px,19vw,232px);z-index:3}
.stage .back .obj:nth-child(1){transform:translateX(130%) rotate(-12deg)}
.stage .back .obj:nth-child(2){transform:translateX(62%) rotate(-6deg)}
.stage .back .obj:nth-child(4){transform:translateX(-62%) rotate(6deg)}
.stage .back .obj:nth-child(5){transform:translateX(-130%) rotate(12deg)}
.stage .front .obj:nth-child(1){transform:translateX(96%) rotate(-9deg)}
.stage .front .obj:nth-child(2){transform:translateX(44%) rotate(-4deg)}
.stage .front .obj:nth-child(4){transform:translateX(-44%) rotate(4deg)}
.stage .front .obj:nth-child(5){transform:translateX(-96%) rotate(9deg)}
/* 퍼짐 */
.stage.open .back .obj:nth-child(1){transform:translateX(30%) rotate(-16deg)}
.stage.open .back .obj:nth-child(2){transform:translateX(8%) rotate(-8deg)}
.stage.open .back .obj:nth-child(3){transform:translateY(-8%)}
.stage.open .back .obj:nth-child(4){transform:translateX(-8%) rotate(8deg)}
.stage.open .back .obj:nth-child(5){transform:translateX(-30%) rotate(16deg)}
.stage.open .front .obj:nth-child(1){transform:translateX(26%) rotate(-11deg)}
.stage.open .front .obj:nth-child(2){transform:translateX(10%) rotate(-5deg)}
.stage.open .front .obj:nth-child(3){transform:translateY(-4%)}
.stage.open .front .obj:nth-child(4){transform:translateX(-10%) rotate(5deg)}
.stage.open .front .obj:nth-child(5){transform:translateX(-26%) rotate(11deg)}
.stage a.obj{cursor:pointer}
.stage .obj{transition:transform .8s cubic-bezier(.34,1.45,.5,1),translate .35s ease,filter .35s ease}
@media(hover:hover){.stage:hover .obj{transition-duration:.8s,.35s,.35s}.stage.open .obj:hover{translate:0 -14px;filter:none;z-index:5}}
.stage .obj:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

/* 2·3장, 책 페이지 머리: 지역판 세 권 부채꼴 */
.fan{position:relative;height:clamp(280px,40vw,440px)}
.fan .obj{position:absolute;bottom:0;left:50%;height:88%;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .5s}
.fan .obj:nth-child(1){transform:translateX(-110%) scale(.8) rotate(-6deg);transform-origin:50% 100%;filter:brightness(.72)}
.fan .obj:nth-child(2){transform:translateX(10%) scale(.8) rotate(6deg);transform-origin:50% 100%;filter:brightness(.72)}
.fan .obj:nth-child(3){transform:translateX(-50%);z-index:2}

/* ── 스크롤 흐름: 구간마다 바탕색(--fb)이 있고, 스크립트가 켜지면 main 바탕이 이어서 바뀐다 ── */
main{transition:background-color .2s linear}
.flow{background:var(--fb,transparent)}
main.flowing .flow{background:transparent}
.lt{color:#fff}
.lt .kick{color:var(--gold)}
.flow .ch,.flow .kick,.flow .rech{transition:color .6s ease}
main.dark .flow:not(.lt) .ch,main.dark .flow:not(.lt) .rech{color:#fff}
main.dark .flow:not(.lt) .kick{color:var(--gold)}

/* 기록: 은은하게 움직이는 색 번짐 위에 칸들. 숫자가 다 올라가면 한 번 튀며 반짝인다 */
.rec{position:relative;overflow:hidden;isolation:isolate}
.rec::before,.rec::after{content:"";position:absolute;z-index:-1;border-radius:50%;filter:blur(70px);opacity:.55;pointer-events:none}
.rec::before{width:56vw;height:56vw;left:-16vw;top:-12vw;background:radial-gradient(circle,#B9C8DE,transparent 68%);animation:blob 18s ease-in-out infinite alternate}
.rec::after{width:46vw;height:46vw;right:-12vw;bottom:-14vw;background:radial-gradient(circle,#FBE3A0,transparent 66%);animation:blob 22s ease-in-out infinite alternate-reverse}
@keyframes blob{to{transform:translate(8vw,6vw) scale(1.12)}}
.rech{text-align:center;font-size:clamp(32px,5.4vw,64px);letter-spacing:-.055em;margin-bottom:clamp(36px,5vw,60px)}
.bento{display:grid;gap:14px;grid-template-columns:repeat(12,minmax(0,1fr))}
.tile{position:relative;overflow:hidden;border-radius:4px;padding:clamp(24px,3vw,38px);display:flex;flex-direction:column;justify-content:space-between;min-height:220px}
.t-big{grid-column:1/8;background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 20px 50px -34px rgba(20,27,38,.4)}
.t-ring{grid-column:8/13;grid-row:1/3;background:linear-gradient(165deg,#24324A,#141B26 70%);color:#fff;align-items:center;text-align:center;justify-content:center;gap:18px}
.t-cov{grid-column:1/5;background:#FFF4D6}
.t-sub{grid-column:5/8;background:var(--sub);color:#fff}
.t-time{grid-column:1/13;display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(24px,5vw,64px);align-items:end;min-height:0;
  background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 20px 50px -34px rgba(20,27,38,.4)}
.ct{display:block;font-size:clamp(80px,12vw,168px);font-weight:850;line-height:.9;letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.ct small{font-size:.2em;font-weight:700;letter-spacing:-.02em;margin-left:8px}
.ct.sm{font-size:clamp(52px,6.4vw,84px)}
.ct.sm small{font-size:.28em}
.ct span{display:inline-block}
.t-big .ct span{background:linear-gradient(100deg,#141B26 0%,#4A6283 40%,#C99A2E 50%,#4A6283 60%,#141B26 100%);background-size:250% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;color:transparent}
.ct.done span{animation:pop .7s cubic-bezier(.3,1.6,.5,1)}
.t-big .ct.done span{animation:pop .7s cubic-bezier(.3,1.6,.5,1),shine 1.6s ease .2s forwards}
@keyframes pop{40%{transform:scale(1.14)}100%{transform:none}}
@keyframes shine{to{background-position:0 0}}
.tile p{margin-top:14px;font-size:15px;font-weight:600;line-height:1.6;color:var(--body)}
.tile p strong{color:var(--ink)}
.t-ring p,.t-sub p{color:rgba(255,255,255,.8)}
.ring{position:relative;width:min(100%,300px);aspect-ratio:1;display:grid;place-items:center}
.ring svg{position:absolute;inset:0;width:100%;height:100%}
.ring circle{fill:none;stroke-width:7;transform-box:fill-box;transform-origin:center}
.ring .trk{stroke:rgba(255,255,255,.12);stroke-dasharray:36 4;transform:rotate(-88deg)}
.ring .seg{stroke:var(--gold);stroke-dasharray:36 324;transform:rotate(calc(var(--k) * 40deg - 88deg));opacity:0;transition:opacity .35s calc(var(--k) * 150ms + .2s)}
.tile.in .ring .seg{opacity:1}
.ring .ct{color:var(--gold);font-size:clamp(84px,10vw,128px);text-align:center}
.ring .ct small{display:block;margin:10px 0 0;font-size:.17em;color:#fff}
.mini{display:flex;gap:8px;margin-top:18px}
.mini img{width:clamp(44px,5vw,62px);aspect-ratio:760/1040;object-fit:cover;border-radius:1px 3px 3px 1px;box-shadow:0 10px 18px -10px rgba(20,27,38,.6);
  transform:translateY(24px);opacity:0;transition:transform .7s cubic-bezier(.3,1.5,.5,1) calc(var(--k) * 120ms + .3s),opacity .4s calc(var(--k) * 120ms + .3s)}
.tile.in .mini img{transform:none;opacity:1}
.years{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px}
.years li{font-size:12px;font-weight:700;color:var(--muted);padding-top:10px;border-top:4px solid var(--line);font-variant-numeric:tabular-nums;
  transition:border-color .4s calc(var(--k) * 110ms + .3s),color .4s calc(var(--k) * 110ms + .3s)}
.tile.in .years li{border-color:var(--sub);color:var(--ink)}
.tile.in .years li:last-child{border-color:var(--gold)}
.bento .tile.rv:nth-child(2){transition-delay:.08s}
.bento .tile.rv:nth-child(3){transition-delay:.16s}
.bento .tile.rv:nth-child(4){transition-delay:.24s}
.bento .tile.rv:nth-child(5){transition-delay:.32s}
@media(max-width:760px){
  .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .t-big,.t-ring,.t-time{grid-column:1/3;grid-row:auto}
  .t-cov{grid-column:1/2}.t-sub{grid-column:2/3}
  .tile{min-height:170px}
  .t-time{grid-template-columns:1fr}
  .years{grid-template-columns:repeat(5,minmax(0,1fr));row-gap:12px}
  .ring{width:min(100%,240px)}
}

/* 1위 캡처가 옆으로 흐르는 띠 (마우스를 올리면 멈춤) */
.marq{overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.mq{display:flex;gap:18px;width:max-content;padding-block:10px 30px;animation:mq 70s linear infinite}
.marq:hover .mq{animation-play-state:paused}
.mq img{width:clamp(150px,18vw,220px);aspect-ratio:360/486;object-fit:cover;border-radius:6px;background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.08),0 22px 40px -24px rgba(20,27,38,.55)}
@keyframes mq{to{transform:translateX(calc(-50% - 9px))}}
.rank .fine{margin-top:6px}

/* 책 소개: 한 권씩 한 화면, 들어오면 글이 차례로 뜨고 책이 부채처럼 펴진다 */
.story .sh{padding-top:clamp(72px,10vw,120px)}
.story .sh .ch{margin-bottom:0}
.chap{overflow:hidden}
.chap{min-height:86vh;display:flex;align-items:center;padding-block:clamp(64px,9vw,110px)}
.cg{display:grid;gap:clamp(34px,5vw,60px);align-items:center;width:100%}
@media(min-width:900px){.cg{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}}
.chap h3{font-size:clamp(34px,5.4vw,64px);line-height:1.12;letter-spacing:-.055em}
.chap .tx p{margin-top:18px;font-size:clamp(15px,1.8vw,17.5px);line-height:1.85;max-width:34em;color:var(--body)}
.chap.lt .tx p{color:rgba(255,255,255,.74)}
.facts{list-style:none;padding:0;margin:30px 0 34px;display:flex;gap:clamp(18px,3vw,34px);flex-wrap:wrap}
.facts li{display:flex;flex-direction:column;font-size:13px;color:rgba(255,255,255,.7);border-top:2px solid rgba(255,255,255,.5);padding-top:10px}
.facts b{font-size:clamp(22px,2.6vw,30px);font-weight:800;letter-spacing:-.04em;color:#fff;line-height:1.3}
.chap .soon{font-weight:700;color:var(--muted)}
.js .chap .tx>*{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.js .chap .tx>*:nth-child(2){transition-delay:.08s}
.js .chap .tx>*:nth-child(3){transition-delay:.16s}
.js .chap .tx>*:nth-child(4){transition-delay:.24s}
.js .chap .tx>*:nth-child(5){transition-delay:.32s}
.js .chap.in .tx>*{opacity:1;transform:none}
.fan.op .obj:nth-child(n){transform:translateX(-50%) translateY(8%) scale(.86);filter:none}
.chap.in .fan.op .obj:nth-child(1){transform:translateX(-110%) scale(.8) rotate(-6deg);filter:brightness(.72)}
.chap.in .fan.op .obj:nth-child(2){transform:translateX(10%) scale(.8) rotate(6deg);filter:brightness(.72)}
.chap.in .fan.op .obj:nth-child(3){transform:translateX(-50%)}
.fan.four .obj{height:80%}
.chap.in .fan.four .obj:nth-child(1){transform:translateX(-128%) scale(.8) rotate(-9deg);filter:brightness(.9)}
.chap.in .fan.four .obj:nth-child(2){transform:translateX(28%) scale(.8) rotate(9deg);filter:brightness(.9)}
.chap.in .fan.four .obj:nth-child(3){transform:translateX(-88%) rotate(-3deg);z-index:2;filter:none}
.chap.in .fan.four .obj:nth-child(4){transform:translateX(-12%) rotate(3deg);z-index:3;filter:none}
.chap .fan .obj{transition-duration:1s}

/* 합격 후기: 카톡처럼. 화면에 들어오는 대로 두 개씩(왼쪽 → 오른쪽) 아래에서 부드럽게 올라온다.
   자리는 처음부터 잡혀 있어 글이 밀리거나 덜컥거리지 않는다 */
.vst{padding-block:clamp(72px,10vw,120px)}
.chat{display:flex;flex-direction:column;gap:clamp(18px,2.4vw,26px);max-width:820px;margin:clamp(8px,2vw,20px) auto 0}
.bb{margin:0;max-width:min(620px,88%);display:flex;flex-direction:column}
.bb figcaption{margin:0 0 8px;padding-inline:4px;font-size:13.5px;font-weight:700;color:var(--sub)}
.bb blockquote{margin:0;padding:18px 22px;font-size:clamp(16px,1.9vw,18px);line-height:1.72;font-weight:600;letter-spacing:-.03em;background:#fff;color:var(--ink);
  border-radius:4px 22px 22px 22px;box-shadow:0 1px 2px rgba(20,27,38,.06),0 14px 30px -18px rgba(20,27,38,.35)}
.bb.r{align-self:flex-end;align-items:flex-end}
.bb.r blockquote{background:var(--ink);color:#fff;border-radius:22px 4px 22px 22px}
.js .bb{opacity:0;transform:translateY(40px);transform-origin:left bottom;
  transition:opacity .7s ease,transform .9s cubic-bezier(.22,1,.36,1)}
.js .bb.r{transform-origin:right bottom}
.js .bb.in{opacity:1;transform:none}
.js .bb.in.r{transition-delay:.35s}

/* 0302.kr: 스크롤에 따라 단어가 하나씩 켜진다 */
.say{background:var(--deep);text-align:center}
.say h2{margin:6px auto 0;max-width:18em;font-size:clamp(32px,5.6vw,70px);line-height:1.14;letter-spacing:-.05em}
.say h2 em{font-style:normal;color:var(--gold)}
.words .w{transition:color .35s ease}
.words.split .w{color:rgba(255,255,255,.16)}
.words.split .w.on{color:#fff}
.words.split em .w.on{color:var(--gold)}
.say .lead{margin:26px auto 30px;color:var(--on-ink-2)}

@media(prefers-reduced-motion:reduce){
  .mq{animation:none}.marq{overflow-x:auto}
  .js .chap .tx>*{opacity:1;transform:none;transition:none}
  .rec::before,.rec::after{animation:none}
  .bars i,.fill i,.years li{transition:none}
}

/* 링크 목록 (선으로만 나눔) */
.links{border-top:2px solid var(--ink)}
.lrow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 0;text-decoration:none;border-bottom:1px solid var(--line)}
.lrow b{display:block;font-size:clamp(17px,2vw,20px);font-weight:800;letter-spacing:-.04em}
.lrow span{display:block;margin-top:3px;font-size:13.5px;color:var(--muted)}
.lrow i{flex:none;font-style:normal;font-weight:700;color:var(--sub)}
.lrow:hover b{text-decoration:underline;text-underline-offset:5px}

/* 푸터 */
footer{padding-block:44px 56px;color:var(--on-ink-2);font-size:13px;background:var(--deep);border-top:1px solid #222C3A}
.ft{display:flex;flex-wrap:wrap;gap:20px 40px;justify-content:space-between;align-items:flex-start}
.ft img{height:18px;width:auto;filter:brightness(0) invert(1);opacity:.9}
.ft .tg{margin-top:6px;font-size:12px}
.fl{display:flex;flex-wrap:wrap;gap:6px 20px}
.fl a{text-decoration:none}
.fl a:hover{color:#fff}
.cp{margin-top:22px;font-size:12px}

/* ── 책 페이지 머리: 고른 지역판 표지 색 ── */
.bhead{background:var(--c,var(--ink));color:#fff;padding-block:clamp(56px,8vw,100px);transition:background-color .7s ease}
.bh{display:grid;gap:clamp(30px,5vw,56px);align-items:center}
@media(min-width:880px){.bh{grid-template-columns:minmax(0,1fr) minmax(0,.95fr)}}
.bh .sub{font-size:13px;font-weight:700;color:var(--gold);letter-spacing:.02em}
.bh h1{font-size:clamp(38px,6.4vw,68px);letter-spacing:-.055em;margin-top:12px;line-height:1.12}
.bh .one{margin-top:16px;font-size:clamp(17px,2.2vw,22px);font-weight:700;letter-spacing:-.035em}
.bh .one em{font-style:normal;color:var(--gold)}
.bh .lead{margin-top:14px;color:rgba(255,255,255,.74)}
.bh .meta{margin-top:24px;display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:12.5px;font-weight:600;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);padding:6px 12px;border-radius:2px}
.trio{display:flex;gap:clamp(12px,2vw,22px);align-items:flex-end;justify-content:center}
.trio .obj{width:clamp(88px,15vw,152px);transition:filter .5s,transform .5s cubic-bezier(.2,.7,.2,1)}
.trio .obj:not(.dim){transform:translateY(-10px)}
.trio .obj.dim{filter:brightness(.55)}

.hook{text-align:center}
.hook .big{font-size:clamp(28px,5.4vw,56px);font-weight:800;letter-spacing:-.055em;line-height:1.3}
.hook .big em{font-style:normal;color:var(--sub)}
.hook .lead{margin:22px auto 0;text-align:center}

/* 지역 탭: 글자 크기에 맞춘 테두리 칸, 고른 칸은 그 지역판 표지 색(--tc)으로 칠함 */
.tabs{display:grid;grid-template-columns:repeat(3,1fr);width:max-content;max-width:100%;margin-bottom:clamp(30px,4vw,44px);border:1.5px solid var(--ink);border-radius:3px;overflow:hidden}
.tabs button{font:inherit;font-size:16px;font-weight:800;color:var(--ink);background:#fff;border:0;padding:9px 22px;cursor:pointer;letter-spacing:-.03em;
  transition:background-color .35s,color .35s}
.tabs button+button{box-shadow:inset 1.5px 0 0 var(--ink)}
.tabs button:hover{background:var(--soft)}
.tabs button[aria-selected=true],.tabs button[aria-pressed=true]{background:var(--tc,var(--ink));color:#fff}
.tabs button:focus-visible{outline:3px solid var(--gold);outline-offset:-5px}
.trio .obj{cursor:pointer}
.trio .obj.dim:hover{filter:brightness(.85)}
.trio .obj:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.rp[hidden]{display:none}
.rtop{display:grid;gap:clamp(26px,4vw,48px);align-items:start;margin-bottom:clamp(40px,5vw,60px)}
@media(min-width:820px){.rtop{grid-template-columns:auto 1fr}}
.rtop .obj{width:clamp(130px,20vw,190px)}
.rtop h3{font-size:clamp(24px,3.2vw,32px)}
.rtop .area{margin-top:8px;font-size:13.5px;color:var(--muted);line-height:1.8}
.nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:24px;max-width:500px}
.num{border-top:2px solid var(--ink);padding-top:12px}
.num b{display:block;font-size:clamp(20px,4.6vw,28px);font-weight:800;letter-spacing:-.045em;line-height:1.2}
.num span{display:block;font-size:12px;color:var(--muted);line-height:1.5;margin-top:4px}
.price{margin-top:18px;font-size:14px;color:var(--body)}
.price b{color:var(--ink)}
.steps{display:grid;gap:0 48px;border-top:2px solid var(--ink)}
@media(min-width:900px){.steps{grid-template-columns:1fr 1fr}}
.st{padding:28px 0 30px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px}
.sn{font-size:36px;font-weight:850;line-height:1;color:var(--sub);letter-spacing:-.05em;font-variant-numeric:tabular-nums}
.st h4{margin:0 0 4px;font-size:18px;font-weight:800;letter-spacing:-.04em;line-height:1.4}
.st q{display:block;font-size:13.5px;color:var(--gold-ink);font-weight:600;margin-bottom:8px;quotes:none}
.st p{font-size:14.5px;color:var(--body);line-height:1.9}

/* 상세페이지 (접어 두었다가 펼쳐 보기) */
.detail{max-width:860px;margin:clamp(40px,5vw,60px) auto 0}
.dimg{position:relative;max-height:1200px;overflow:hidden;border-radius:2px;background:#fff;
  box-shadow:0 1px 2px rgba(20,27,38,.06),0 30px 60px -36px rgba(20,27,38,.45)}
.dimg img{width:100%;height:auto}
.dimg::after{content:"";position:absolute;left:0;right:0;bottom:0;height:180px;background:linear-gradient(rgba(246,247,249,0),var(--bg2));pointer-events:none}
.detail.open .dimg{max-height:none}
.detail.open .dimg::after{display:none}
.dmore{display:flex;width:100%;margin-top:14px}

/* 독자 후기 */
.vcs{display:grid;gap:40px}
@media(min-width:900px){.vcs{grid-template-columns:repeat(3,1fr);gap:32px}}
.vc{margin:0;border-top:2px solid var(--ink);padding-top:22px;display:flex;flex-direction:column;gap:14px}
.vc blockquote{margin:0;font-size:17px;font-weight:700;line-height:1.7;letter-spacing:-.035em}
.vc blockquote::before{content:"“";display:block;font-size:40px;line-height:.8;color:var(--gold);font-weight:800}
.vc p{font-size:14px;color:var(--body);line-height:1.85}
.vc figcaption{margin-top:auto;font-size:12.5px;color:var(--muted)}

/* 구매 */
.buy{display:grid;gap:10px}
@media(min-width:760px){.buy{grid-template-columns:repeat(3,1fr)}}
.bl{font-size:13px;font-weight:700;color:var(--sub);margin:0 0 10px}
.buy + .bl{margin-top:28px}
@media(min-width:760px){.buy.four{grid-template-columns:repeat(4,1fr)}}
.buyset[hidden]{display:none}
.rtop .area .rg{display:block;font-weight:700;color:var(--ink);font-size:14.5px;line-height:1.75;margin-bottom:4px}
.rtop .area .rg em{font-style:normal;color:var(--gold-ink)}
.kr{margin-top:36px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;background:var(--ink);color:#fff;padding:28px clamp(22px,3vw,34px)}
.kr b{display:block;font-size:18px;font-weight:800;letter-spacing:-.04em}
.kr span{font-size:14px;color:var(--on-ink-2)}
.kr .btn{background:var(--gold);color:var(--ink);border-radius:999px}

.rv{opacity:0;transform:translateY(14px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.fan .obj,.stage .obj,.bhead{transition:none}}

/* 구매로 바로 가기 — 지역판 패널의 '이 지역판 구매하기', 홈 책 소개의 '구매하기', 모바일 아래 고정 버튼 */
.tobuy{margin-top:22px}
.chap .tx .tobuy-home{margin-left:18px}
.fbuy{display:none}
@media(max-width:760px){
  .fbuy{display:inline-flex;position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:40;
    padding:11px 22px;font-size:14px;box-shadow:0 6px 20px rgba(20,27,38,.28);
    transform:translate(-50%,140%);opacity:0;pointer-events:none;transition:transform .3s ease,opacity .3s ease}
  .fbuy.on{transform:translate(-50%,0);opacity:1;pointer-events:auto}
}
@media(prefers-reduced-motion:reduce){.fbuy{transition:none}}
