
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
:root {
  --paper:#F6F4EF; --paper2:#EFECE5; --ink:#1A1917; --muted:#8A857C; --line:#E2DED6; --link:#33312D; --seal:#B3282B;
  --brush:url(../img/brush.webp);
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --paper:#151413; --paper2:#1E1C1A; --ink:#ECE8E0; --muted:#9A948A; --line:#2E2B28; --link:#D8D3CA; color-scheme:dark;
} }
:root[data-theme="dark"] { --paper:#151413; --paper2:#1E1C1A; --ink:#ECE8E0; --muted:#9A948A; --line:#2E2B28; --link:#D8D3CA; color-scheme:dark; }
body { margin:0; background:var(--paper); color:var(--ink); word-break:keep-all; overflow-wrap:break-word; -webkit-text-size-adjust:100%;
  font-family:'Noto Sans KR', 'Apple SD Gothic Neo', sans-serif; font-weight:400; font-size:16px; line-height:1.85; }
a { color:var(--link); text-underline-offset:3px; text-decoration-thickness:1px; }
.wrap { max-width:1040px; margin:0 auto; padding:0 max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left)); }
p { margin:0 0 1.1em; }
section { padding:96px 0; border-bottom:1px solid var(--line); }
.eyebrow { font-size:12px; letter-spacing:.4em; color:var(--muted); margin:0 0 14px; }
h2 { font-size:clamp(24px, 3vw, 30px); font-weight:600; letter-spacing:.04em; margin:0 0 40px; line-height:1.4; }
h3 { font-size:13px; font-weight:500; letter-spacing:.4em; color:var(--muted); margin:0 0 22px; padding-top:22px; border-top:1px solid var(--line); }
h3 .n { letter-spacing:.05em; margin-left:.6em; }
.ph { color:var(--muted); }

/* 위 차림표 */
nav.top { position:fixed; top:0; left:0; right:0; z-index:20; transition:background .3s, border-color .3s; border-bottom:1px solid transparent; }
nav.top .wrap { display:flex; justify-content:space-between; height:60px; align-items:center; }
nav.top.solid { background:color-mix(in srgb, var(--paper) 92%, transparent); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border-bottom-color:var(--line); }
.logo { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); font-weight:600; letter-spacing:.2em; font-size:14px; opacity:0; transition:opacity .3s; pointer-events:none; }
nav.top.solid .logo { opacity:1; pointer-events:auto; }
.logo .mk { display:inline-grid; place-items:center; width:26px; height:26px; background:var(--seal); color:#F6F4EF; font-family:'Noto Serif KR', serif; font-size:16px; letter-spacing:0; border-radius:3px; }
.menu { display:flex; gap:28px; list-style:none; margin:0; padding:0; font-size:13px; letter-spacing:.14em; }
.menu a { text-decoration:none; color:var(--muted); }
.menu a:hover, .menu a[aria-current] { color:var(--ink); }
.has-sub { position:relative; }
.has-sub > a::after { content:''; display:inline-block; width:5px; height:5px; border:solid currentColor; border-width:0 1px 1px 0; transform:rotate(45deg); margin:0 0 3px 8px; }
.dd { position:absolute; top:100%; left:-18px; min-width:260px; max-height:70vh; overflow:auto; list-style:none; margin:10px 0 0; padding:10px 0;
  background:var(--paper); border:1px solid var(--line); box-shadow:0 18px 40px -24px rgba(0,0,0,.4);
  opacity:0; visibility:hidden; transform:translateY(-4px); transition:opacity .2s, transform .2s, visibility .2s; letter-spacing:.02em; font-size:14px; }
.dd::before { content:''; position:absolute; top:-12px; left:0; right:0; height:12px; }
.has-sub:hover .dd, .has-sub:focus-within .dd { opacity:1; visibility:visible; transform:none; }
.dd a { display:block; padding:7px 18px; color:var(--ink); }
.dd a:hover { background:var(--paper2); }
.menu-btn { display:none; font:inherit; font-size:13px; letter-spacing:.14em; background:none; border:0; color:var(--ink); padding:8px 0 8px 12px; cursor:pointer; }

/* 첫 화면 */
.hero { position:relative; height:min(92svh, 760px); min-height:520px; border-bottom:1px solid var(--line); overflow:hidden; }
.land { position:absolute; inset:0; width:100%; height:100%; }
.land .moon { opacity:.8; }
.land .rg { fill:var(--ink); }
.land .r0 { opacity:.025; } .land .r1 { opacity:.04; } .land .r2 { opacity:.055; } .land .r3 { opacity:.075; }
.land .mist ellipse { fill:var(--paper); opacity:.9; }
.land .mist { animation:mist 70s ease-in-out infinite alternate; }
@keyframes mist { to { transform:translateX(160px); } }
.hero .brush { position:absolute; top:0; left:max(16px, 7vw); height:86%; aspect-ratio:560/1140;
  -webkit-mask:var(--brush) top left/contain no-repeat; mask:var(--brush) top left/contain no-repeat; }
.hero .brush svg { display:block; width:100%; height:100%; }
.brush .st { fill:none; stroke:var(--ink); stroke-linecap:round; stroke-linejoin:round; }
.brush .fill { fill:var(--ink); }
.hero .id { position:absolute; right:max(16px, 7vw); bottom:max(48px, 9%); text-align:right; }
.hero .rule { width:44px; height:2px; background:var(--seal); margin:0 0 20px auto; }
.hero h1 { font-size:clamp(24px, 3vw, 34px); font-weight:600; letter-spacing:.32em; margin:0 -.32em 0 0; line-height:1.4; }
.hero .en { font-size:12px; font-weight:300; letter-spacing:.5em; color:var(--muted); margin:10px -.5em 0 0; }
.hero .motto { font-size:14px; color:var(--muted); margin:26px 0 0; }
.jar { position:absolute; left:50%; top:50%; width:min(46vw, 300px); transform:translate(-50%,-54%); opacity:0; pointer-events:none; }
.jar svg { display:block; width:100%; height:auto; filter:drop-shadow(0 10px 16px rgba(90,74,54,.07)); }
.skip { display:none; position:absolute; left:max(16px, 7vw); bottom:24px; font:inherit; font-size:12px; letter-spacing:.2em; color:var(--muted); background:none; border:0; border-bottom:1px solid var(--line); padding:4px 0; cursor:pointer; }

/* 처음 한 번만: 백자 → 항아리 안의 산수 → 壺를 획순대로 */
.intro .jar { animation:jar-in 1.2s .1s ease-out forwards, jar-out 1.4s 1.2s cubic-bezier(.4,0,.6,1) forwards; }
@keyframes jar-in { from { opacity:0; transform:translate(-50%,-50%) scale(.94); } to { opacity:1; transform:translate(-50%,-54%) scale(1); } }
@keyframes jar-out { from { opacity:1; transform:translate(-50%,-54%) scale(1); filter:blur(0); } to { opacity:0; transform:translate(-50%,-54%) scale(1.25); filter:blur(10px); } }
.intro .land { clip-path:circle(0 at 50% 46%); animation:open 2s 1.35s cubic-bezier(.6,0,.3,1) forwards; }
@keyframes open { from { clip-path:circle(8% at 50% 46%); } to { clip-path:circle(150% at 50% 46%); } }
.intro .land .rg, .intro .land .moon { transform:translateY(24px); animation:rise 2.2s ease-out forwards; }
.intro .land .moon { animation-delay:1.4s; } .intro .land .r0 { animation-delay:1.45s; } .intro .land .r1 { animation-delay:1.6s; }
.intro .land .r2 { animation-delay:1.75s; } .intro .land .r3 { animation-delay:1.9s; }
@keyframes rise { to { transform:none; } }
.intro .brush .st { stroke-dasharray:1 1; stroke-dashoffset:1; opacity:0; animation:draw var(--d) var(--t) cubic-bezier(.45,.05,.35,1) forwards; }
@keyframes draw { from { opacity:1; stroke-dashoffset:1; } to { opacity:1; stroke-dashoffset:0; } }
.intro .brush .fill { opacity:0; animation:fade .6s 5.73s ease forwards; }
.intro .hero .rule { transform:scaleX(0); transform-origin:right; animation:grow .5s calc(5.73s + .1s) ease-out forwards; }
@keyframes grow { to { transform:none; } }
.intro .hero h1, .intro .hero .en, .intro .hero .motto { opacity:0; animation:fade .8s ease forwards; }
.intro .hero h1 { animation-delay:calc(5.73s + .3s); } .intro .hero .en { animation-delay:calc(5.73s + .55s); } .intro .hero .motto { animation-delay:calc(5.73s + .8s); }
.intro nav.top { opacity:0; animation:fade .6s calc(5.73s + .6s) forwards; }
@keyframes fade { to { opacity:1; } }
.intro .skip { display:block; }

/* 펴낸 책 */
ul.shelf { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(210px, 1fr)); gap:48px 36px; }
ul.shelf a { display:block; text-decoration:none; color:var(--ink); perspective:900px; }
.cv { display:block; width:100%; max-width:100%; background:var(--paper2); }
.cv img { display:block; width:100%; height:auto; }
ul.shelf .cv { box-shadow:0 1px 0 var(--line), 0 16px 28px -18px rgba(0,0,0,.4); transform-origin:left center; transition:transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s; }
ul.shelf a:hover .cv, ul.shelf a:focus-visible .cv { transform:translateY(-6px) rotateY(-9deg); box-shadow:0 1px 0 var(--line), 14px 26px 34px -18px rgba(0,0,0,.45); }
ul.shelf b { display:block; font-weight:600; font-size:17px; line-height:1.45; margin-top:18px; }
ul.shelf .s { display:block; color:var(--muted); font-size:14px; line-height:1.6; margin-top:6px; }
ul.shelf .a { display:block; font-size:13px; margin-top:8px; }
ul.shelf a:hover b { text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1px; }

/* 책 한 권 */
.bookview { padding:112px 0 96px; border-bottom:1px solid var(--line); }
.back { display:inline-block; font-size:13px; letter-spacing:.1em; color:var(--muted); text-decoration:none; margin-bottom:40px; }
.back::before { content:''; display:inline-block; width:6px; height:6px; border:solid currentColor; border-width:0 0 1px 1px; transform:rotate(45deg); margin:0 10px 2px 2px; }
.back:hover { color:var(--ink); }
.book { display:grid; grid-template-columns:minmax(0, 300px) minmax(0,1fr); gap:56px; align-items:start; }
.cvbox .cv { box-shadow:0 1px 0 var(--line), 0 24px 40px -24px rgba(0,0,0,.35); }
.book .title { margin:0; line-height:1.35; font-size:clamp(28px, 4vw, 38px); font-weight:600; }
.book .sub { color:var(--muted); margin:8px 0 6px; }
.book .by { font-size:14px; margin:0 0 28px; }
.book .lead { font-size:19px; font-weight:500; line-height:1.7; }
dl.spec { display:grid; grid-template-columns:auto 1fr; gap:6px 24px; font-size:14px; margin:28px 0 0; padding-top:20px; border-top:1px solid var(--line); }
dl.spec dt { color:var(--muted); } dl.spec dd { margin:0; }
ul.jump { list-style:none; display:flex; gap:28px; margin:72px 0 0; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-size:14px; letter-spacing:.2em;
  position:sticky; top:60px; background:var(--paper); z-index:5; }
ul.jump a { text-decoration:none; color:var(--muted); } ul.jump a:hover { color:var(--ink); }
.blk { padding:64px 0 0; border:0; scroll-margin-top:120px; }
ol.toc { list-style:none; padding:0; margin:0; columns:2; column-gap:48px; }
ol.toc li { break-inside:avoid; padding:7px 0; }
ol.toc li.part { font-size:13px; letter-spacing:.12em; color:var(--muted); padding:22px 0 7px; }
ol.toc li.part:first-child { padding-top:0; }
ol.toc .ct { display:block; font-size:16px; line-height:1.6; font-weight:500; }
ol.toc .cs { display:block; color:var(--muted); font-size:14px; line-height:1.6; }
ol.toc li.app { font-size:15px; }
.bio { max-width:720px; }
.bio .name { font-size:18px; margin-bottom:10px; font-weight:500; }
.src-intro { max-width:720px; color:var(--muted); }
.src-tools { display:flex; gap:12px; flex-wrap:wrap; margin:20px 0 24px; }
.src-tools input { flex:1 1 260px; min-width:0; font:inherit; font-size:15px; padding:10px 14px; border:1px solid var(--line); background:var(--paper2); color:var(--ink); border-radius:0; }
.src-tools button { font:inherit; font-size:14px; padding:10px 16px; border:1px solid var(--line); background:transparent; color:var(--ink); cursor:pointer; border-radius:0; }
details { border-top:1px solid var(--line); }
details:last-of-type { border-bottom:1px solid var(--line); }
summary { display:flex; justify-content:space-between; gap:16px; padding:16px 2px; cursor:pointer; list-style:none; font-weight:500; }
summary::-webkit-details-marker { display:none; }
summary::before { content:'+'; color:var(--muted); width:18px; flex:none; }
details[open] summary::before { content:'−'; }
summary span:first-of-type { flex:1; }
summary .n { font-size:13px; color:var(--muted); }
details ol { margin:0 0 24px; padding-left:20px; font-size:14.5px; line-height:1.75; }
details li { padding:10px 0; border-bottom:1px dashed var(--line); }
details li:last-child { border-bottom:0; }
details li p { margin:0; }
details .q { color:var(--muted); }
details .s { font-size:13.5px; overflow-wrap:anywhere; word-break:normal; }
.empty { color:var(--muted); font-size:14px; display:none; }
nav.pn { display:flex; justify-content:space-between; gap:24px; margin-top:96px; padding-top:28px; border-top:1px solid var(--line); }
nav.pn a { text-decoration:none; color:var(--ink); font-weight:500; max-width:48%; }
nav.pn small { display:block; font-size:12px; letter-spacing:.2em; color:var(--muted); font-weight:400; }
nav.pn .x { text-align:right; margin-left:auto; }

/* 출판사, 연락처 */
.about { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:56px; }
.about .big { font-size:clamp(46px, 8vw, 84px); letter-spacing:.2em; line-height:1.2; margin:0; font-weight:400; font-family:'Noto Serif KR', serif; }
.about .big span { display:inline-block; }
.about .gloss { font-size:14px; color:var(--muted); letter-spacing:.1em; }
.contact .card { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; align-items:start; }
.contact .who b { display:block; font-size:30px; font-weight:600; letter-spacing:.06em; }
.contact .who span { display:block; color:var(--muted); letter-spacing:.1em; margin-top:6px; }
.contact dl { display:grid; grid-template-columns:auto 1fr; gap:12px 28px; margin:6px 0 0; }
.contact dt { font-size:12px; letter-spacing:.2em; color:var(--muted); padding-top:3px; }
.contact dd { margin:0; }
.contact .sig { display:flex; justify-content:space-between; align-items:flex-end; margin-top:72px; }
.contact .sig span { font-size:12px; font-weight:300; letter-spacing:.5em; color:var(--muted); }
.contact .sig img { height:72px; width:auto; }
footer { padding:28px 0 max(36px, env(safe-area-inset-bottom)); font-size:12px; letter-spacing:.2em; color:var(--muted); }

/* 스크롤하면 천천히 떠오름, 낙관은 찍히듯 */
.js .rv { opacity:0; transform:translateY(18px); transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.js .rv.in { opacity:1; transform:none; }
.js .shelf .rv:nth-child(3n+2) { transition-delay:.12s; } .js .shelf .rv:nth-child(3n) { transition-delay:.24s; }
.js .about .rv.in .big span { animation:ink 1.4s ease both; }
.js .about .rv.in .big span + span { animation-delay:.35s; }
@keyframes ink { from { opacity:0; filter:blur(6px); } to { opacity:1; filter:none; } }
.js .seal { opacity:0; transform:scale(1.35) rotate(-4deg); }
.js .seal.in { animation:stamp .55s cubic-bezier(.3,1.4,.5,1) forwards; }
@keyframes stamp { 60% { opacity:1; transform:scale(.96); } to { opacity:1; transform:none; } }

@media (max-width: 760px) {
  section { padding:64px 0; }
  .book, .about { grid-template-columns:1fr; gap:32px; }
  .cvbox { max-width:220px; }
  ol.toc { columns:1; }
  ul.shelf { grid-template-columns:repeat(2, minmax(0,1fr)); gap:36px 18px; }
  ul.shelf b { font-size:15px; margin-top:12px; }
  ul.shelf .s { font-size:13px; }
  .hero { height:86svh; min-height:560px; }
  .hero .brush { height:64%; max-width:52vw; left:16px; }
  .hero h1 { letter-spacing:.24em; margin-right:-.24em; }
  .jar { width:62vw; }
  .contact .card { grid-template-columns:1fr; }
  .bookview { padding-top:92px; }
  ul.jump { gap:22px; margin-top:56px; }
  .menu-btn { display:block; }
  .menu { display:none; position:absolute; top:60px; left:0; right:0; flex-direction:column; gap:0; padding:8px 16px 20px; background:var(--paper); border-bottom:1px solid var(--line); font-size:15px; max-height:calc(100svh - 60px); overflow:auto; }
  nav.top.open .menu { display:flex; }
  nav.top.open { background:var(--paper); }
  .menu > li > a { display:block; padding:12px 0; color:var(--ink); }
  .has-sub > a::after { display:none; }
  .dd { position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; border-left:1px solid var(--line); margin:0 0 8px; padding:0; min-width:0; max-height:none; background:none; }
  .dd a { padding:8px 14px; color:var(--muted); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .land .mist { animation:none; }
  .js .rv { transform:none; transition:opacity .3s; }
  ul.shelf .cv { transition:none; }
  ul.shelf a:hover .cv { transform:none; }
  .js .seal { opacity:1; transform:none; } .js .seal.in { animation:none; }
  .js .about .rv.in .big span { animation:none; }
}
.logo .nm { letter-spacing:.04em; }
footer a { letter-spacing:.04em; }


/* ───── 여러 쪽으로 나눈 뒤 더한 것 ───── */
nav.top { padding-top:env(safe-area-inset-top, 0px); }
body.sub nav.top { background:color-mix(in srgb, var(--paper) 92%, transparent); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border-bottom-color:var(--line); }
body.sub nav.top .logo { opacity:1; pointer-events:auto; }
.skiplink { position:absolute; left:-9999px; top:8px; z-index:50; background:var(--ink); color:var(--paper); padding:8px 14px; font-size:14px; }
.skiplink:focus { left:16px; }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible { outline:2px solid var(--seal); outline-offset:3px; }
.btn { display:inline-flex; align-items:center; gap:8px; font:inherit; font-size:14px; letter-spacing:.06em; padding:11px 20px; border:1px solid var(--ink); background:var(--ink); color:var(--paper); text-decoration:none; cursor:pointer; border-radius:0; line-height:1.4; }
.btn.ghost { background:transparent; color:var(--ink); border-color:var(--line); }
.btn:hover { opacity:.86; } .btn.ghost:hover { border-color:var(--ink); opacity:1; }
.btns { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.page { padding:120px 0 96px; border-bottom:1px solid var(--line); }
.page .lede { font-size:18px; max-width:640px; }
.measure { max-width:680px; }

/* 첫 화면 책장: 책이 적을 때는 한 권씩 크게 */
.feature { display:grid; gap:72px; }
.feat { display:grid; grid-template-columns:minmax(0, 280px) minmax(0,1fr); gap:56px; align-items:center; }
.feat:nth-child(even) { grid-template-columns:minmax(0,1fr) minmax(0, 280px); }
.feat:nth-child(even) .fcv { order:2; }
.fcv a { display:block; perspective:900px; }
.fcv .cv { box-shadow:0 1px 0 var(--line), 0 22px 36px -22px rgba(0,0,0,.45); transform-origin:left center; transition:transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s; }
.fcv a:hover .cv, .fcv a:focus-visible .cv { transform:translateY(-6px) rotateY(-9deg); box-shadow:0 1px 0 var(--line), 14px 26px 34px -18px rgba(0,0,0,.45); }
.feat h3.bt { font-size:clamp(24px, 3vw, 30px); letter-spacing:.02em; color:var(--ink); border:0; padding:0; margin:0; font-weight:600; line-height:1.35; text-wrap:balance; }
.feat h3.bt a { text-decoration:none; color:inherit; }
.feat .sub { color:var(--muted); margin:8px 0 4px; }
.feat .by { font-size:14px; margin:0 0 22px; }
.feat .lead { font-size:18px; font-weight:500; margin-bottom:12px; }
.meta { font-size:13px; letter-spacing:.06em; color:var(--muted); margin:18px 0 0; }
.meta span + span::before { content:'·'; margin:0 .6em; }

/* 만드는 방식 */
.craft { background:var(--paper2); }
.craft .grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:40px; }
.craft h4 { font-size:17px; font-weight:600; margin:0 0 10px; letter-spacing:.02em; }
.craft p { color:var(--ink); font-size:15px; }
.craft .k { font-family:'Noto Serif KR', serif; color:var(--seal); font-size:14px; letter-spacing:.2em; margin-bottom:12px; display:block; }
.tally { display:flex; flex-wrap:wrap; gap:16px 48px; margin:0 0 56px; }
.tally a { text-decoration:none; color:var(--ink); display:block; }
.tally b { display:block; font-size:clamp(40px, 6vw, 56px); font-weight:500; line-height:1.1; font-variant-numeric:tabular-nums; font-family:'Noto Serif KR', serif; }
.tally b small { font-size:.4em; margin-left:4px; font-family:'Noto Sans KR', sans-serif; }
.tally span { font-size:13px; color:var(--muted); letter-spacing:.04em; }
.tally a:hover span { color:var(--ink); text-decoration:underline; }

/* 새 책 소식 */
.notify .box { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:48px; align-items:start; }
form.sub-form { display:grid; gap:14px; }
.sub-form .row { display:flex; gap:10px; flex-wrap:wrap; }
.sub-form input[type=email] { flex:1 1 220px; min-width:0; font:inherit; font-size:15px; padding:11px 14px; border:1px solid var(--line); background:var(--paper); color:var(--ink); border-radius:0; }
.sub-form label.agree { display:flex; gap:10px; align-items:flex-start; font-size:13px; color:var(--muted); line-height:1.7; cursor:pointer; }
.sub-form label.agree input { margin-top:5px; accent-color:var(--seal); flex:none; }
.sub-form .msg { font-size:14px; margin:0; padding:12px 14px; border-left:2px solid var(--seal); background:var(--paper2); }
.sub-form .msg.err { border-left-color:var(--muted); }
.compact { border-top:1px solid var(--line); margin-top:72px; padding-top:40px; }
.compact .box { gap:32px; }

/* 책 한 권 */
.forwho { margin:28px 0 0; padding:20px 22px; background:var(--paper2); }
.forwho p.h { font-size:13px; letter-spacing:.2em; color:var(--muted); margin:0 0 8px; }
.forwho ul { margin:0; padding-left:1.1em; }
.forwho li { padding:3px 0; }
.forwho li::marker { color:var(--seal); }
.excerpt { max-width:680px; font-family:'Noto Serif KR', serif; font-size:17px; line-height:2; }
.excerpt .eh { font-family:'Noto Sans KR', sans-serif; font-size:13px; color:var(--muted); letter-spacing:.06em; margin-bottom:28px; }
.excerpt .eh b { display:block; font-size:20px; color:var(--ink); letter-spacing:.02em; font-weight:600; font-family:'Noto Serif KR', serif; margin-bottom:4px; }
.excerpt h4 { font-family:'Noto Sans KR', sans-serif; font-size:15px; font-weight:600; margin:40px 0 14px; letter-spacing:.04em; }
.excerpt h4:first-of-type { margin-top:0; }
.excerpt p { text-indent:1em; }
.excerpt p.end { text-indent:0; font-weight:500; margin-top:1.6em; }
.excerpt details { border:0; }
.excerpt details:last-of-type { border:0; }
.excerpt summary { display:inline-flex; font-family:'Noto Sans KR', sans-serif; font-size:14px; letter-spacing:.06em; padding:10px 18px; border:1px solid var(--line); margin:8px 0 0; font-weight:400; }
.excerpt summary::before { content:'+'; width:auto; margin-right:8px; }
.excerpt details[open] summary { display:none; }
.chap { list-style:none; margin:0 0 28px; padding:0; columns:2; column-gap:48px; font-size:14.5px; }
.chap li { display:flex; justify-content:space-between; gap:16px; padding:7px 0; border-bottom:1px dashed var(--line); break-inside:avoid; }
.chap li span:last-child { color:var(--muted); font-variant-numeric:tabular-nums; flex:none; }
.kit { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:12px; }
.kit > * { border:1px solid var(--line); padding:16px 18px; font-size:14px; display:flex; flex-direction:column; gap:6px; background:transparent; color:var(--ink); text-align:left; font:inherit; font-size:14px; text-decoration:none; cursor:pointer; line-height:1.6; }
.kit > *:hover { border-color:var(--ink); }
.kit b { font-weight:500; }
.kit small { color:var(--muted); font-size:12.5px; }
.kit .ph-card { cursor:default; color:var(--muted); }
.kit .ph-card:hover { border-color:var(--line); }

/* 출처 한 쪽 */
.srcpage .head { display:grid; grid-template-columns:120px minmax(0,1fr); gap:28px; align-items:center; margin-bottom:40px; }
.srcpage .head .cv { box-shadow:0 1px 0 var(--line), 0 14px 24px -16px rgba(0,0,0,.4); }
.srcpage h1 { font-size:clamp(24px, 3.4vw, 32px); margin:0; line-height:1.4; font-weight:600; }
.srcpage .head p { margin:4px 0 0; color:var(--muted); font-size:14px; }

/* 출판사, 투고, 자료 */
.page h1 { font-size:clamp(28px, 4vw, 38px); font-weight:600; margin:0 0 20px; line-height:1.35; text-wrap:balance; }
.page section { padding:72px 0 0; border:0; }
.page section h2 { margin-bottom:24px; }
.two { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; }
ul.plain { padding-left:1.1em; margin:0 0 1.1em; }
ul.plain li { padding:4px 0; }
ul.plain li::marker { color:var(--seal); }
.mailbox { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; padding:18px 20px; border:1px solid var(--line); margin:8px 0 0; }
.mailbox code { font-family:inherit; font-size:17px; font-weight:500; user-select:all; }
.mailbox small { flex-basis:100%; color:var(--muted); font-size:13px; }
.copy { font:inherit; font-size:13px; padding:6px 12px; border:1px solid var(--line); background:transparent; color:var(--ink); cursor:pointer; border-radius:0; }
.copy:hover { border-color:var(--ink); }
.presskit { display:grid; gap:56px; }
.pk { display:grid; grid-template-columns:160px minmax(0,1fr); gap:32px; align-items:start; }
.pk .cv { box-shadow:0 1px 0 var(--line), 0 14px 24px -16px rgba(0,0,0,.4); }
.pk h3 { border:0; padding:0; font-size:20px; letter-spacing:.02em; color:var(--ink); font-weight:600; margin:0 0 4px; }
.pk .sub { color:var(--muted); margin:0 0 16px; }
.txtbox { position:relative; border:1px solid var(--line); padding:16px 18px 14px; margin:12px 0 0; }
.txtbox .lab { display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:12px; letter-spacing:.2em; color:var(--muted); margin-bottom:8px; }
.txtbox .t { font-size:14.5px; white-space:pre-line; }
.notfound { min-height:60svh; display:grid; align-content:center; }
.notfound .big { font-family:'Noto Serif KR', serif; font-size:clamp(64px, 12vw, 120px); line-height:1; color:var(--seal); margin:0 0 20px; }
footer .wrap { display:flex; flex-wrap:wrap; gap:6px 18px; justify-content:space-between; }
footer nav { display:flex; flex-wrap:wrap; gap:6px 18px; }
footer a { color:var(--muted); text-decoration:none; } footer a:hover { color:var(--ink); }

@media (max-width: 760px) {
  .feat, .feat:nth-child(even) { grid-template-columns:1fr; gap:28px; }
  .feat:nth-child(even) .fcv { order:0; }
  .fcv { max-width:220px; }
  .craft .grid, .notify .box, .two { grid-template-columns:1fr; gap:32px; }
  .chap { columns:1; }
  .page { padding-top:92px; }
  .srcpage .head { grid-template-columns:84px minmax(0,1fr); gap:18px; }
  .pk { grid-template-columns:96px minmax(0,1fr); gap:18px; }
  .excerpt { font-size:16px; }
}
@media (prefers-reduced-motion: reduce) {
  .fcv .cv { transition:none; } .fcv a:hover .cv { transform:none; }
}
[hidden] { display:none !important; }
.excerpt p.eh { text-indent:0; }
ul.jump { overflow-x:auto; scrollbar-width:none; white-space:nowrap; }
ul.jump::-webkit-scrollbar { display:none; }
.excerpt hr.brk { border:0; height:auto; margin:1.4em 0 1.6em; text-align:center; line-height:1; }
.excerpt hr.brk::before { content:'·   ·   ·'; white-space:pre; color:var(--muted); letter-spacing:.3em; }
.excerpt sup.fr { line-height:0; font-family:'Noto Sans KR', sans-serif; font-size:.62em; margin-left:1px; }
.excerpt sup.fr a { text-decoration:none; color:var(--seal); padding:0 2px; }
.excerpt ol.fn { margin:48px 0 0; padding:20px 0 0 1.4em; border-top:1px solid var(--line); font-family:'Noto Sans KR', sans-serif; font-size:13.5px; line-height:1.75; color:var(--muted); }
.excerpt ol.fn li { padding:4px 0; text-indent:0; }
.excerpt ol.fn a { text-decoration:none; color:var(--muted); }
.excerpt [id^=fn-], .excerpt [id^=fr-] { scroll-margin-top:140px; }
/* 미리 읽기 속 사진과 그림 */
.excerpt figure.fig { margin:2.2em 0; font-family:'Noto Sans KR', sans-serif; }
.excerpt figure.fig img { display:block; width:100%; height:auto; background:var(--paper2); border:1px solid var(--line); }
.excerpt figure.narrow { max-width:440px; }
.excerpt figcaption { font-size:13px; line-height:1.7; color:var(--muted); margin-top:10px; text-indent:0; }
.excerpt figcaption .src { display:block; font-size:12px; margin-top:2px; }
.excerpt figcaption b { color:var(--seal); font-weight:600; margin-right:4px; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .excerpt figure.fig img { filter:brightness(.88); } }
:root[data-theme="dark"] .excerpt figure.fig img { filter:brightness(.88); }
.tl-scroll { overflow-x:auto; padding-bottom:4px; }
.tl { display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:6px; min-width:560px; font-size:12.5px; line-height:1.5; text-align:center; }
.tl-h { margin:0; text-align:left; font-weight:600; font-size:13px; color:var(--ink); padding-top:6px; }
.tl-h.ai { color:var(--seal); margin-top:10px; }
.tl-span { margin:0; position:relative; align-self:end; color:var(--muted); font-size:12px; border-top:1px solid var(--muted); }
.tl-span::before, .tl-span::after { content:''; position:absolute; top:-1px; width:1px; height:7px; background:var(--muted); }
.tl-span::before { left:0; } .tl-span::after { right:0; }
.tl-span span { position:relative; top:-.85em; background:var(--paper); padding:0 8px; }
.tl-b { border:1px solid var(--ink); padding:10px 4px; color:var(--ink); }
.tl-b b { display:block; font-size:13.5px; margin-bottom:2px; }
.tl-b small { display:block; color:var(--muted); font-size:11.5px; }
.tl-b.peak { background:var(--paper2); }
.tl-b.ai { border-color:var(--seal); }
.tl-b.ai b { color:var(--seal); }
.tl-b.unknown { border:1px dashed var(--muted); color:var(--muted); display:grid; place-items:center; }
