/* 승인된 시안 en.html 의 CSS 그대로 */
:root{--bg:#0e1015;--bg2:#141821;--card:#181c26;--card2:#1f2431;--ink:#eceef3;--sub:#a1a7b6;--faint:#6d7384;--line:#262b38;--acc:#ff8a3d;--acc2:#5ad1c8;--star:#ffc24b;--up:#4ade80;--down:#f87171}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.5}
a{color:inherit;text-decoration:none}
button{font:inherit;border:0;background:none;color:inherit;cursor:pointer}
ul{list-style:none}
.wrap{max-width:1180px;margin:0 auto;padding:0 16px}
.noscroll{scrollbar-width:none}.noscroll::-webkit-scrollbar{display:none}

/* header */
.hd{position:sticky;top:0;z-index:30;background:rgba(14,16,21,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.hd .in{display:flex;align-items:center;gap:14px;height:58px}
.logo{font-family:'Fraunces',serif;font-weight:800;font-size:23px;letter-spacing:-.5px;display:flex;align-items:center;gap:7px}
.logo svg{width:22px;height:22px}
.logo span{color:var(--acc)}
.mnav{display:none;gap:4px}
.mnav a{font-size:14px;font-weight:600;color:var(--sub);padding:8px 12px;border-radius:8px}
.mnav a:hover,.mnav a.on{color:var(--ink);background:var(--card)}
.sp{flex:1}
.ic{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;color:var(--sub)}
.ic svg{width:21px;height:21px}
.lang{position:relative}
.lang summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--sub);border:1px solid var(--line);padding:6px 10px;border-radius:8px;white-space:nowrap}
.lang summary::-webkit-details-marker{display:none}
.lang summary svg{width:15px;height:15px}
.lang ul{position:absolute;right:0;top:calc(100% + 6px);background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:6px;min-width:130px;box-shadow:0 12px 30px rgba(0,0,0,.5)}
.lang li a{display:block;padding:8px 12px;border-radius:7px;font-size:14px}
.lang li a:hover,.lang li a[aria-current]{background:rgba(255,138,61,.14);color:var(--acc)}
.signin{display:none;font-size:14px;font-weight:700;background:var(--acc);color:#1a0f06;padding:8px 16px;border-radius:9px}
.subnav{display:flex;gap:4px;overflow-x:auto;padding:0 0 10px}
.subnav a{flex:0 0 auto;font-size:14px;font-weight:600;color:var(--sub);padding:7px 12px;border-radius:8px;background:var(--card)}
.subnav a.on{color:#1a0f06;background:var(--ink)}

/* hero */
.feat{margin-top:20px;border-radius:18px;overflow:hidden;position:relative;background:radial-gradient(ellipse at 20% 0%,rgba(255,138,61,.28),transparent 55%),radial-gradient(ellipse at 100% 100%,rgba(90,209,200,.14),transparent 50%),var(--bg2);border:1px solid var(--line);padding:20px;display:grid;grid-template-columns:118px minmax(0,1fr);gap:18px}
.feat .lab{grid-column:1/-1;font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--acc)}
.feat .art{border-radius:8px;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.55);align-self:start}
.feat h1{font-family:'Fraunces',serif;font-weight:800;font-size:23px;line-height:1.15;letter-spacing:-.3px}
.feat .by{font-size:14px;color:var(--sub);margin-top:6px}
.feat .by a{color:var(--acc2);font-weight:600}
.feat .blurb{grid-column:1/-1;font-size:15px;line-height:1.65;color:#c9cdd8}
.feat .cta{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:14px;padding:11px 18px;border-radius:10px;white-space:nowrap}
.btn svg{width:17px;height:17px}
.btn.pri{background:var(--acc);color:#1a0f06}
.btn.ghost{border:1px solid var(--line);color:var(--ink);background:rgba(255,255,255,.03)}
.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.chip{font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px;background:rgba(255,255,255,.06);color:var(--sub);border:1px solid var(--line);white-space:nowrap}
.chip.hot{color:var(--acc);border-color:rgba(255,138,61,.4);background:rgba(255,138,61,.08)}
.stats{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--sub);margin-top:10px}
.stats span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.stats svg{width:14px;height:14px;flex:0 0 auto}
.stats b{color:var(--ink);font-weight:700}
.stats .st{color:var(--star)}
.feat .stats{grid-column:1/-1;margin-top:0;gap:8px}
.feat .stats span{background:rgba(255,255,255,.04);border:1px solid var(--line);padding:6px 10px;border-radius:8px}

/* layout */
.layout{display:grid;grid-template-columns:minmax(0,1fr);gap:36px;padding:32px 0 50px}
.layout>*{min-width:0}
.sh{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.sh h2{font-family:'Fraunces',serif;font-weight:800;font-size:22px;letter-spacing:-.3px;display:flex;align-items:center;gap:8px}
.sh h2 svg{width:20px;height:20px;color:var(--acc)}
.sh .more{margin-left:auto;font-size:13px;font-weight:600;color:var(--acc2);white-space:nowrap}
.sh .sub{font-size:12px;color:var(--faint)}

/* rising stars */
.rs{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.rsi{display:grid;grid-template-columns:26px 58px minmax(0,1fr);gap:12px;padding:14px;border-top:1px solid var(--line);align-items:start}
.rsi:first-child{border-top:0}
.rsi:hover{background:var(--card2)}
.rsi .n{font-family:'Fraunces',serif;font-weight:800;font-size:20px;text-align:center;line-height:1.1;padding-top:2px}
.rsi .n small{display:block;font-family:'Inter';font-size:10px;font-weight:700;margin-top:3px}
.mv-u{color:var(--up)}.mv-d{color:var(--down)}.mv-n{color:var(--acc)}.mv-s{color:var(--faint)}
.rsi .c{border-radius:6px;overflow:hidden}
.rsi h3{font-size:15.5px;font-weight:700;line-height:1.3}
.rsi .au{font-size:13px;color:var(--sub);margin-top:2px}
.rsi .stats{margin-top:6px;font-size:12px;gap:4px 12px}
.rsi .chips{margin-top:7px}

/* popular grid */
.pgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}
.pc{display:block;min-width:0}
.pc .c{border-radius:8px;overflow:hidden;position:relative;box-shadow:0 10px 24px rgba(0,0,0,.4)}
.pc .rt{position:absolute;right:6px;top:6px;z-index:3;background:rgba(10,12,18,.8);backdrop-filter:blur(4px);color:var(--star);font-size:12px;font-weight:700;padding:3px 7px;border-radius:6px}
.pc .done{display:inline-block;vertical-align:1px;margin-right:6px;background:var(--acc2);color:#062a27;font-size:10px;font-weight:800;padding:3px 6px;border-radius:5px;letter-spacing:.4px}
.pc h3{font-size:14.5px;font-weight:700;line-height:1.3;margin-top:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pc .au{font-size:12.5px;color:var(--sub);margin-top:3px}
.pc .stats{font-size:12px;gap:3px 10px;margin-top:6px}
.pc .sched{margin-top:6px;font-size:11.5px;color:var(--acc2);font-weight:600;display:flex;align-items:center;gap:5px}
.pc .sched svg{width:13px;height:13px}

/* tags */
.tagbox{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}
.tagbox .tg{display:flex;flex-wrap:wrap;gap:7px}
.tagbox a{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:7px 11px;border-radius:8px;background:var(--card2);border:1px solid var(--line);color:var(--ink)}
.tagbox a small{color:var(--faint);font-weight:500;font-size:11px}
.tagbox a:hover{border-color:var(--acc);color:var(--acc)}
.tagbox a i{width:8px;height:8px;border-radius:50%;background:var(--c)}

/* reviews */
.rev{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}
.rev+.rev{margin-top:12px}
.rev .top{display:flex;gap:10px;align-items:center}
.avt{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;color:#10131a;flex:0 0 auto}
.rev .who{min-width:0}
.rev .who b{font-size:14px;display:block}
.rev .who span{font-size:12px;color:var(--faint)}
.rev .sc{margin-left:auto;color:var(--star);font-size:13px;font-weight:700;white-space:nowrap}
.rev .on{font-size:12px;color:var(--sub);margin-top:10px}
.rev .on a{color:var(--acc2);font-weight:600}
.rev h4{font-size:15px;margin-top:6px;font-family:'Fraunces',serif;font-weight:600}
.rev p.x{font-size:14px;line-height:1.65;color:#c9cdd8;margin-top:6px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.rev .bars{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--faint);margin-top:10px}
.rev .bars b{color:var(--sub)}
.rev .act{display:flex;gap:16px;margin-top:10px;font-size:12px;color:var(--sub);font-weight:600}

/* completed row */
.crow{display:grid;grid-auto-flow:column;grid-auto-columns:40%;gap:12px;overflow-x:auto;padding-bottom:6px}

.banner{margin-top:34px;border-radius:16px;padding:22px;background:linear-gradient(120deg,#23150c,#3a1f10 40%,#0f2a2a);border:1px solid var(--line);display:grid;gap:12px}
.banner h3{font-family:'Fraunces',serif;font-size:21px;font-weight:800}
.banner p{color:#cbbfb3;font-size:14px;line-height:1.6}

footer{border-top:1px solid var(--line);padding:26px 0 36px;font-size:13px;color:var(--faint);line-height:1.8}
footer nav{display:flex;flex-wrap:wrap;gap:4px 18px;color:var(--sub);margin-bottom:6px}

/* =========================================================
   COVERS (EN · genre-mood, distinct per author)
   ========================================================= */
.cv{position:relative;aspect-ratio:2/3;overflow:hidden;container-type:inline-size;isolation:isolate;background:linear-gradient(180deg,var(--c1),var(--c2))}
.cv svg{position:absolute;display:block}
.cv-t{position:absolute;z-index:2;left:8%;right:8%;overflow-wrap:break-word}
.cv-au{position:absolute;z-index:2;left:8%;right:8%;font-size:6.2cqw;letter-spacing:.4em;text-transform:uppercase}
/* Jino : forge embers, Cinzel, centered emblem */
.cv-jino{background:radial-gradient(ellipse at 50% 100%,var(--c2) 0%,rgba(0,0,0,0) 62%),radial-gradient(circle at 30% 70%,rgba(255,200,120,.9) 0 .7cqw,transparent 1cqw),radial-gradient(circle at 64% 58%,rgba(255,200,120,.8) 0 .6cqw,transparent .9cqw),radial-gradient(circle at 44% 50%,rgba(255,220,150,.7) 0 .5cqw,transparent .8cqw),radial-gradient(circle at 72% 76%,rgba(255,180,90,.9) 0 .8cqw,transparent 1.1cqw),var(--c1)}
.cv-jino .emb{left:50%;top:40%;width:52%;transform:translate(-50%,-50%);fill:none;stroke:#ffcf8a;stroke-width:2.4;filter:drop-shadow(0 0 4px rgba(255,150,60,.9))}
.cv-jino .cv-t{top:70%;text-align:center;font-family:'Cinzel',serif;font-weight:900;font-size:9.4cqw;line-height:1.08;color:#fff1dc;text-shadow:0 0 3cqw rgba(255,120,40,.8);letter-spacing:.02em}
.cv-jino .cv-au{top:6%;text-align:center;color:#ffcf8a;font-family:'Cinzel',serif;font-weight:700}
.cv-jino::after{content:"";position:absolute;left:8%;right:8%;top:66%;height:1px;background:linear-gradient(90deg,transparent,#ffcf8a,transparent)}
/* Moru : cozy flat, Fredoka, rounded frame */
.cv-moru{background:var(--c1)}
.cv-moru::before{content:"";position:absolute;left:-20%;right:-20%;bottom:-30%;height:70%;border-radius:50%;background:var(--c2)}
.cv-moru .emb{left:50%;top:50%;width:56%;transform:translate(-50%,-50%);fill:#fff8ec;stroke:#23303a;stroke-width:3}
.cv-moru .cv-t{top:7%;font-family:'Fredoka',sans-serif;font-weight:700;font-size:11cqw;line-height:1.02;color:#23303a}
.cv-moru .cv-au{bottom:6%;color:#23303a;font-family:'Fredoka';font-weight:700;letter-spacing:.2em}
.cv-moru::after{content:"";position:absolute;inset:3.5cqw;border:1.2cqw solid #23303a;border-radius:6cqw;z-index:1;pointer-events:none}
/* Yeonmuk : ink & crimson, Cormorant italic, enso */
.cv-yeonmuk{background:radial-gradient(ellipse at 50% 35%,rgba(255,255,255,.07),transparent 60%),linear-gradient(180deg,var(--c1),var(--c2))}
.cv-yeonmuk .emb{left:50%;top:36%;width:66%;transform:translate(-50%,-50%);fill:none;stroke:#e6ddd0;stroke-width:7;stroke-linecap:round;opacity:.9}
.cv-yeonmuk .dot{right:9%;top:7%;width:11%;fill:#c62a2a}
.cv-yeonmuk .cv-t{bottom:13%;font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;font-size:11.5cqw;line-height:1;color:#f2ebe0}
.cv-yeonmuk .cv-au{bottom:6%;color:#c62a2a;font-weight:700;letter-spacing:.35em}
/* Pinecat : rose-gold romance, Playfair italic, ornament frame */
.cv-pinecat{background:radial-gradient(circle at 50% 38%,rgba(255,255,255,.45),transparent 42%),linear-gradient(170deg,var(--c1),var(--c2))}
.cv-pinecat::after{content:"";position:absolute;inset:5cqw;border:.6cqw solid rgba(255,244,236,.85);outline:.4cqw solid rgba(255,244,236,.5);outline-offset:1.6cqw;z-index:1}
.cv-pinecat .emb{left:50%;top:35%;width:40%;transform:translate(-50%,-50%);fill:rgba(255,248,242,.92)}
.cv-pinecat .cv-t{top:52%;text-align:center;font-family:'Playfair Display',serif;font-style:italic;font-weight:700;font-size:9.4cqw;line-height:1.08;color:#fffaf5;text-shadow:0 .5cqw 2cqw rgba(90,20,50,.5)}
.cv-pinecat .cv-au{bottom:9%;text-align:center;color:#fff3ea;font-size:5.4cqw}
/* Hanbam : synthwave city, Bebas Neue */
.cv-hanbam{background:linear-gradient(180deg,var(--c1) 0%,var(--c2) 58%,#07060f 58.2%)}
.cv-hanbam::before{content:"";position:absolute;left:0;right:0;top:58%;bottom:0;background:repeating-linear-gradient(90deg,rgba(255,64,200,.55) 0 1px,transparent 1px 12cqw),repeating-linear-gradient(0deg,rgba(255,64,200,.45) 0 1px,transparent 1px 7cqw);transform:perspective(40cqw) rotateX(55deg);transform-origin:top}
.cv-hanbam .sun{left:50%;top:26%;width:48%;transform:translateX(-50%)}
.cv-hanbam .city{left:0;right:0;width:100%;top:42%;height:17%;fill:#07060f}
.cv-hanbam .cv-t{bottom:8%;font-family:'Bebas Neue',sans-serif;font-size:17cqw;line-height:.9;color:#fff;text-shadow:0 0 2cqw #39f3ff,0 0 5cqw #ff3fd0;letter-spacing:.02em}
.cv-hanbam .cv-au{top:6%;color:#39f3ff;font-weight:700}

@media (min-width:640px){
  .pgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .feat{grid-template-columns:170px minmax(0,1fr);padding:26px;gap:24px}
  .feat .blurb,.feat .cta,.feat .stats{grid-column:2}
  .feat .art{grid-row:2/6}
  .feat h1{font-size:32px}
  .crow{grid-auto-columns:calc((100% - 36px)/4)}
}
@media (min-width:1000px){
  .mnav{display:flex}.signin{display:inline-block}.subnav{display:none}
  .layout{grid-template-columns:minmax(0,1fr) 340px;gap:40px}
  .pgrid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .feat{grid-template-columns:200px minmax(0,1fr);padding:32px}
  .feat .art{grid-row:2/7}
}
