/* 바둑 배움터(2026-11-08 대표님): 정석사전과 함께 배우는 바둑 — 서가와 큰 그림책. 글꼴 Noto Sans KR */
:root{--paper:#fbf6ea;--ink:#2f6b4f;--accent:#f2d48a;--bg:#13261e}
*{box-sizing:border-box}
body.school{margin:0;min-height:100dvh;background:radial-gradient(100% 70% at 50% 0%,#24453a,#0e1c16 70%);color:#f5eedb;font-family:'Noto Sans KR',sans-serif}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* 위 메뉴: 왼쪽 제목, 정석사전 아이콘 · 바둑 연구학습실 · 바둑 배움터 · 홈 */
.school-nav{display:flex;align-items:center;gap:6px;padding:12px 22px;background:#0b1712cc;border-bottom:1px solid #ffffff14;position:sticky;top:0;z-index:20;backdrop-filter:blur(6px)}
.school-nav .brand{display:flex;flex-direction:column;margin-right:auto;text-decoration:none;color:#fff4d6}
.school-nav .brand small{font-size:10.5px;letter-spacing:.22em;color:#e8c77f}
.school-nav .brand b{font-size:18px;font-weight:900;letter-spacing:-.01em}
.school-nav a.item{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:10px;color:#e9e3cf;text-decoration:none;font-size:14px;font-weight:700}
.school-nav a.item:hover{background:#ffffff12}
.school-nav a.item[aria-current=page]{background:#e8c77f;color:#20372c}
.school-nav .ic{width:20px;height:20px;border-radius:5px;display:inline-grid;place-items:center;background:#ffffff1c;font-size:12px}
@media(max-width:760px){.school-nav{flex-wrap:wrap;padding:10px 12px}.school-nav .brand{flex-basis:100%;margin-bottom:4px}.school-nav a.item{padding:7px 10px;font-size:13px}}
/* 서가 */
.shelf-wrap{max-width:1180px;margin:0 auto;padding:34px 22px 60px}
.shelf-intro small{color:#e8c77f;letter-spacing:.2em;font-size:12px;font-weight:700}
.shelf-intro h1{margin:10px 0 10px;font-size:clamp(28px,3.6vw,44px);font-weight:900;line-height:1.25;letter-spacing:-.02em;word-break:keep-all}
.shelf-intro p{max-width:760px;color:#d9d2bd;line-height:1.85;font-size:15.5px;word-break:keep-all}
.shelf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:34px}
.vol{display:flex;flex-direction:column;gap:16px}
.vol-cover{position:relative;aspect-ratio:3/4;border-radius:6px 14px 14px 6px;background:linear-gradient(90deg,#0003 0 5%,#fff2 5.5%,transparent 7%),var(--c);box-shadow:inset -10px 0 18px #0002,14px 18px 34px -10px #000a;padding:28px 26px 22px 34px;display:flex;flex-direction:column;color:#fff;text-decoration:none;transition:transform .25s}
.vol-cover:hover{transform:translateY(-6px) rotate(-.6deg)}
.vol-cover .no{font-size:64px;font-weight:900;line-height:1;color:var(--a);opacity:.95}
.vol-cover small{letter-spacing:.24em;font-size:10.5px;opacity:.8;margin-top:6px}
.vol-cover h2{margin:auto 0 8px;font-size:clamp(22px,2.3vw,30px);line-height:1.25;font-weight:900;color:var(--a);word-break:keep-all}
.vol-cover p{margin:0;font-size:13px;line-height:1.7;opacity:.92;word-break:keep-all}
.vol-cover .pages{margin-top:14px;font-size:12px;opacity:.85}
.vol-cover .board{position:absolute;right:20px;bottom:40%;width:38%;aspect-ratio:1;border-radius:6px;background:#e2b878;opacity:.9;background-image:linear-gradient(#5b3f1c88 1px,transparent 1px),linear-gradient(90deg,#5b3f1c88 1px,transparent 1px);background-size:12.5% 12.5%;box-shadow:0 6px 14px #0006;transform:rotate(6deg)}
.vol-info{padding:0 4px}
.vol-info b{font-size:15px}
.vol-info ol{margin:8px 0 0;padding-left:20px;color:#d7d0bb;font-size:13px;line-height:1.75}
.vol-info .prog{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:12px;color:#cfc7b0}
.vol-info .prog i{flex:1;height:6px;border-radius:3px;background:#ffffff1c;overflow:hidden}.vol-info .prog i::after{content:'';display:block;height:100%;width:var(--p,0%);background:var(--a)}
.vol-open{display:inline-flex;justify-content:center;padding:13px 18px;border-radius:12px;background:var(--a);color:#20372c;text-decoration:none;font-weight:900}
@media(max-width:900px){.shelf{grid-template-columns:1fr;max-width:420px;margin-inline:auto}}
/* 책 읽기 */
.sb-host{display:flex;flex-direction:column;min-height:calc(100dvh - 64px)}
.sb-top{display:flex;align-items:center;gap:12px;padding:10px 22px;color:#f4ecd6}
.sb-top strong{font-size:16px;font-weight:900}
.sb-count{font-size:12.5px;color:#f4ecd6aa}.sb-score{margin-left:auto;font-size:12.5px;padding:4px 10px;border-radius:999px;background:#ffffff14}
.sb-tocb{padding:8px 14px;border-radius:10px;border:1px solid #ffffff40;background:#ffffff14;color:#fff;font:inherit;font-size:13px;cursor:pointer}
.sb-stage{position:relative;flex:1;display:grid;place-items:center;padding:4px 74px 8px;min-height:0}
.sb-spread{--h:min(clamp(700px,calc(100dvh - 140px),1000px),calc((100vw - 170px)/1.44));position:relative;display:grid;grid-template-columns:1fr 1fr;width:calc(var(--h)*1.44);height:var(--h);perspective:3000px;filter:drop-shadow(0 34px 44px #000a);transition:opacity .18s}
.sb-spread.sb-fade{opacity:0}
.sb-spread::before{content:'';position:absolute;inset:-12px -14px;border-radius:16px;background:var(--ink);z-index:-1;box-shadow:inset 0 0 0 3px #0003,inset 0 0 0 9px #ffffff10}
.sb-slot{position:relative;min-width:0;height:100%}
.sb-page{position:absolute;inset:0;display:flex;flex-direction:column;gap:12px;padding:clamp(22px,3.4%,40px) clamp(24px,4.6%,48px) 30px;background:var(--paper);color:#2a2a22;overflow:auto;scrollbar-width:thin}
.sb-left .sb-page,.sb-leaf.back .front .sb-page,.sb-leaf:not(.back) .backside .sb-page{border-radius:9px 2px 2px 9px;background:linear-gradient(270deg,#e6dcc2 0,var(--paper) 6%,var(--paper))}
.sb-right .sb-page,.sb-leaf:not(.back) .front .sb-page,.sb-leaf.back .backside .sb-page{border-radius:2px 9px 9px 2px;background:linear-gradient(90deg,#e4d9bd 0,var(--paper) 6%,var(--paper))}
.sb-kicker{display:block;font-size:12.5px;font-weight:900;letter-spacing:.14em;color:var(--ink)}
.sb-page h2{margin:6px 0 0;font-size:clamp(21px,2.1vw,31px);line-height:1.32;font-weight:900;color:#1d2721;letter-spacing:-.01em;word-break:keep-all}
.sb-body p{margin:0 0 10px;font-size:clamp(14.5px,1.12vw,17px);line-height:1.9;word-break:keep-all;color:#30342d}
.sb-body p:first-child{font-weight:500;color:#1f241f}
.sb-fig{flex:0 0 auto;height:min(40%,370px);min-height:190px;border-radius:14px;overflow:hidden;background:#f3ead2;display:grid;place-items:stretch;position:relative}
.sb-fig>.fig200{height:100%;min-height:0}.sb-fig .stage200{position:absolute;inset:0}
.sb-fig-sm{height:clamp(230px,34vh,340px);min-height:0}.sb-cmp figcaption{font-size:11.5px!important;line-height:1.5}
.sb-key{padding:12px 16px;border-radius:12px;background:#fff;border:1px solid #e6dcc0}.sb-key b{font-size:13px;color:var(--ink)}.sb-key ul{margin:6px 0 0;padding-left:18px;font-size:14px;line-height:1.75}
.sb-tip{margin:0;padding:10px 14px;border-radius:10px;background:#f0e6c9;font-size:13.5px;line-height:1.75;color:#5a4b26}
.sb-folio{margin-top:auto;text-align:center;font-size:11.5px;color:#a0957a;padding-top:4px}
.sb-cover{background-color:var(--ink);color:#fff;text-align:center;justify-content:flex-start;padding-top:clamp(30px,6%,60px)}
.sb-cover h1{margin:8px 0 0;font-size:clamp(32px,3.8vw,54px);font-weight:900;color:var(--accent);line-height:1.15;word-break:keep-all}
.sb-brand{font-size:11px;letter-spacing:.3em;color:#fffa}.sb-sub{margin:6px 0 0;font-size:clamp(14px,1.25vw,17px);color:#ffffffd5}
.sb-cover-art{position:relative;flex:1;min-height:240px;margin:10px -12px 0;border-radius:12px;overflow:hidden}.sb-cover-art .stage200{position:absolute;inset:0}.sb-cover .stage200-ui,.sb-cover .stage200-say{display:none}
.sb-cover-foot{margin:0;font-size:13px;color:var(--accent)}
.sb-toc ol{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.sb-toc li button{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:0 10px;width:100%;padding:9px 12px;border:0;border-bottom:1px dashed #d8ccab;background:none;text-align:left;font:inherit;color:#2a2a22;cursor:pointer;border-radius:8px}
.sb-toc li button:hover{background:#f1e7cb}.sb-toc li b{font-size:15px}.sb-toc li span{grid-column:1;font-size:12.5px;color:#7d745e}.sb-toc li em{grid-row:1/3;grid-column:2;align-self:center;font-style:normal;font-weight:900;color:var(--ink)}
.sb-chapter{justify-content:center;text-align:center;background:linear-gradient(180deg,var(--paper),#f1e5c6)!important}
.sb-chapter .sb-kicker{font-size:15px}.sb-chapter h2{font-size:clamp(28px,3vw,42px)}.sb-chsub{margin:0;color:#6d6550;font-size:15px}
.sb-intro{margin:0 auto;max-width:90%;font-size:15.5px;line-height:1.9;word-break:keep-all;color:#3a3a30}
.sb-points{margin:0;padding-left:20px;font-size:15px;line-height:1.95}.sb-nextch{margin:0;padding:10px 14px;border-radius:10px;background:var(--ink);color:#fff;font-size:13.5px}
.sb-endpaper{background:repeating-linear-gradient(45deg,#f1e8d2 0 14px,#f6efdc 14px 28px)!important;align-items:center;justify-content:center;color:#b7a983}
.sb-blank{background:#f4ecd8!important}
.sb-compare{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sb-cmp{display:flex;flex-direction:column;gap:6px}.sb-cmp>b{font-size:13.5px;color:var(--ink);text-align:center}
.sb-leaf{position:absolute;top:0;right:0;width:50%;height:100%;transform-origin:left center;transform-style:preserve-3d;transition:transform .9s cubic-bezier(.35,.1,.2,1);z-index:5}
.sb-leaf.back{left:0;right:auto;transform-origin:right center}.sb-leaf.go{transform:rotateY(-180deg)}.sb-leaf.back.go{transform:rotateY(180deg)}
.sb-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}.sb-face.backside{transform:rotateY(180deg)}
.sb-nav{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border-radius:50%;border:1px solid #ffffff44;background:#ffffff18;color:#fff;font-size:34px;line-height:1;cursor:pointer;z-index:6}.sb-nav:disabled{opacity:.25;cursor:default}.sb-prev{left:12px}.sb-next{right:12px}
.sb-progress{height:4px;margin:6px auto 14px;width:min(640px,80vw);border-radius:2px;background:#ffffff1c;overflow:hidden}.sb-progress i{display:block;height:100%;background:var(--accent);transition:width .3s}
.sb-drawer{position:fixed;inset:0;z-index:30;background:#0008;display:flex;justify-content:flex-end}.sb-drawer[hidden]{display:none}
.sb-drawer-in{width:min(380px,92vw);height:100%;overflow:auto;background:#fbf6ea;color:#2a2a22;padding:22px}.sb-drawer-in h3{margin:0 0 10px}
.sb-drawer-in button{display:flex;justify-content:space-between;gap:10px;width:100%;padding:11px 10px;border:0;border-bottom:1px dashed #d8ccab;background:none;font:inherit;text-align:left;cursor:pointer}.sb-drawer-in em{font-style:normal;color:var(--ink);font-weight:800}
/* 문제 */
.sp-problem{display:flex;flex-direction:column;gap:10px;align-items:stretch}
.sp-problem svg{width:100%;max-height:min(40vh,370px);filter:drop-shadow(0 6px 12px #0003)}
.sp-hit{cursor:pointer}.sp-hit:hover{fill:#00000012}
.sp-new{animation:spdrop .35s cubic-bezier(.2,.9,.3,1.25)}@keyframes spdrop{from{transform:translateY(-14px);opacity:0}}
.sp-say{margin:0;padding:10px 14px;border-radius:10px;background:#fff;border:1px solid #e6dcc0;font-size:14px;line-height:1.75;word-break:keep-all}
.sp-say.ok{background:#e4f3e8;border-color:#9fd1ae;color:#1f5a33}.sp-say.no{background:#fbe7e4;border-color:#efb3aa;color:#8a2a1e}.sp-say.hint{background:#fff5d6;border-color:#ecd28a;color:#6a4e10}.sp-say.show{background:#eef1fb;border-color:#b9c3ea;color:#2b3a77}
.sp-bar{display:flex;gap:8px;flex-wrap:wrap}.sp-bar button,.sq-choices button{padding:9px 14px;border-radius:10px;border:1px solid #cbbf9f;background:#fff;font:inherit;font-size:13.5px;font-weight:700;cursor:pointer;color:#2a2a22}
.sb-problem-page.solved .sb-kicker::after{content:'  ✓ 풀었음';color:#2f9e6e}
.sq-quiz{display:flex;flex-direction:column;gap:10px}.sq-quiz .fig200{height:auto;max-height:300px}.sq-q{margin:0;font-size:16px;font-weight:700;line-height:1.7}
.sq-choices{display:flex;flex-wrap:wrap;gap:8px}.sq-choices button.ok{background:#e4f3e8;border-color:#5cb37a}.sq-choices button.no{background:#fbe7e4;border-color:#e08b7e}
/* 한 쪽 보기(휴대폰·좁은 창) */
.sb-single .sb-stage{padding:4px 10px 8px}
.sb-single .sb-spread{grid-template-columns:1fr;width:min(94vw,calc((100dvh - 150px)*.72));height:min(calc(100dvh - 150px),calc(94vw/.68))}
.sb-single .sb-right{display:none}.sb-single .sb-page{border-radius:9px!important;background:var(--paper)}.sb-single .sb-leaf{width:100%;left:0}
.sb-single .sb-nav{position:fixed;top:auto;bottom:10px;transform:none;width:46px;height:46px;font-size:28px;background:#0007}.sb-single .sb-prev{left:10px}.sb-single .sb-next{right:10px}
.sb-single .sb-page{padding:18px 18px 12px}.sb-single .sb-top{padding:8px 12px;flex-wrap:wrap}
@media(prefers-reduced-motion:reduce){.sb-leaf{transition:none}.sp-new{animation:none}}

/* 11-08 대표님: 책을 위로 끌어올려 세로를 꽉 채우고(FHD 기준) 스크롤 없이. 넘치면 --z 로 글자·그림을 조금씩 줄임 */
body.school-reading{height:100dvh;overflow:hidden;display:flex;flex-direction:column}
body.school-reading .school-nav{position:static;padding:6px 14px;gap:4px;flex:0 0 auto}
body.school-reading .school-nav .brand small{display:none}body.school-reading .school-nav .brand{margin-right:14px}body.school-reading .school-nav .brand b{font-size:15px}
body.school-reading .school-nav a.item{padding:6px 10px;font-size:13px}
.nav-slot{display:flex;flex:1;min-width:0;align-items:center}
body.school-reading main{flex:1;min-height:0}
.sb-host{min-height:0;height:100%}
.sb-top{flex:1;min-width:0;padding:0 10px;gap:12px}
.sb-top strong{font-size:14.5px;white-space:nowrap}
.sb-tocs{max-width:280px;padding:7px 10px;border-radius:9px;border:1px solid #ffffff44;background:#ffffff14;color:#fff;font:inherit;font-size:13.5px;font-weight:700;cursor:pointer}
.sb-tocs option{color:#222;background:#fff}
.sb-score{margin-left:0}
.sb-stage{padding:10px 70px 0}
.sb-spread{--h:min(calc(100dvh - 86px),calc((100vw - 170px)/1.5));width:calc(var(--h)*1.5);height:var(--h)}
.sb-progress{margin:8px auto 8px}
.sb-page{overflow:hidden;gap:calc(var(--z,1)*12px);padding:clamp(18px,3%,34px) clamp(24px,4.4%,50px) 14px}
.sb-page h2{font-size:calc(var(--z,1)*clamp(21px,1.75vw,32px))}
.sb-body p{font-size:calc(var(--z,1)*clamp(14.5px,1vw,18px));line-height:1.82;margin-bottom:calc(var(--z,1)*9px)}
.sb-points{font-size:calc(var(--z,1)*16px)}.sb-key ul{font-size:calc(var(--z,1)*14.5px)}.sb-tip{font-size:calc(var(--z,1)*14px)}.sb-intro{font-size:calc(var(--z,1)*16px)}
.sb-fig{flex:1 1 auto;height:auto;min-height:calc(var(--z,1)*150px);max-height:54%}
.sb-chapter .sb-fig{max-height:46%}
.sb-compare{flex:1 1 auto;min-height:0}.sb-cmp{min-height:0}.sb-fig-sm{flex:1 1 auto;height:auto;max-height:none;min-height:calc(var(--z,1)*170px)}
.sb-body,.sb-key,.sb-tip,.sb-head,.sb-points,.sb-nextch{flex:0 0 auto}
.sp-problem{flex:1 1 auto;min-height:0}.sp-problem svg{flex:1 1 auto;min-height:calc(var(--z,1)*230px);max-height:none}.sp-say,.sp-bar{flex:0 0 auto}
.sp-say{font-size:calc(var(--z,1)*14.5px)}
.sq-quiz{flex:1 1 auto;min-height:0}.sq-quiz .fig200{flex:1 1 auto;min-height:0;max-height:none}.sq-q{font-size:calc(var(--z,1)*16px)}
.sb-toc ol{gap:0}.sb-toc li button{padding:calc(var(--z,1)*8px) 12px}
@media(max-width:900px){body.school-reading{height:auto;overflow:auto}.sb-page{overflow:auto}.sb-spread{--h:0}.sb-single .sb-spread{height:min(calc(100dvh - 130px),calc(94vw/.66))}.nav-slot{flex-basis:100%;order:9}}
.sp-boardbox{display:contents}.sp-panel{display:contents}
.sp-cand{fill:#2f9e6e;opacity:.55}.sp-ans{fill:#e0812f;opacity:.75}

/* 바둑 연구학습실: 깨끗하고 쉽게 — 과목 → 난이도 → 단계, 왼쪽 판 · 오른쪽 설명 */
body.lab-page{background:#f5f1e6;color:#26302a}
.lab-page .school-nav{background:#173027}
.lab-wrap{max-width:1180px;margin:0 auto;padding:28px 22px 50px}
.lab-head small{letter-spacing:.2em;font-size:11.5px;font-weight:800;color:#8a6a2c}
.lab-head h1{margin:8px 0 8px;font-size:clamp(28px,3vw,40px);font-weight:900;letter-spacing:-.02em}
.lab-head p{margin:0;max-width:760px;line-height:1.8;color:#55604f;word-break:keep-all}
.lab-tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.lab-page button{font:inherit;cursor:pointer}
.lab-tools button,.lab-bar button{padding:10px 16px;border-radius:10px;border:1px solid #cfc7ae;background:#fff;color:#26302a;font-weight:700;font-size:14px}
.lab-page button.primary{background:#20473a;border-color:#20473a;color:#fff6dc;font-weight:800}
.lab-page button:disabled{opacity:.45;cursor:default}
.lab-subjects{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:26px}
.lab-subjects button{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:16px 18px;border-radius:14px;border:1px solid #dfd8c2;background:#fff;text-align:left}
.lab-subjects b{font-size:20px;font-weight:900}.lab-subjects span{font-size:12.5px;color:#7a7f6c}
.lab-subjects button[aria-pressed=true]{background:#20473a;border-color:#20473a;color:#fff}.lab-subjects button[aria-pressed=true] span{color:#d4dcc8}
.lab-levels{display:inline-flex;gap:0;margin-top:14px;padding:4px;border-radius:12px;background:#e9e3d2}
.lab-levels button{display:flex;align-items:baseline;gap:7px;padding:9px 22px;border:0;border-radius:9px;background:transparent;color:#4b5548}
.lab-levels b{font-size:15px}.lab-levels span{font-size:11.5px;color:#868a78}
.lab-levels button[aria-pressed=true]{background:#fff;box-shadow:0 2px 6px #0002;color:#20473a}
.lab-stages{display:grid;gap:10px;margin-top:18px}
.lab-stage{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:14px;width:100%;padding:16px 18px;border-radius:14px;border:1px solid #dfd8c2;background:#fff;text-align:left;color:inherit}
button.lab-stage:hover{border-color:#20473a;transform:translateY(-1px)}
.lab-stage .no{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#20473a;color:#fff;font-weight:900}
.lab-stage .txt b{font-size:17px}.lab-stage .txt p{margin:3px 0 0;font-size:13.5px;color:#6a7262;word-break:keep-all}
.lab-stage .state{font-size:13px;font-weight:800;color:#20473a;padding:6px 12px;border-radius:999px;background:#e8f0e4}
.lab-stage.passed .no{background:#c79a3e}.lab-stage.passed .state{background:#f6ebcf;color:#7a5a12}
.lab-stage.locked{opacity:.55}.lab-stage.locked .no{background:#a9ab9c}.lab-stage.locked .state{background:#eee;color:#888}
.lab-empty{padding:30px;text-align:center;color:#7a7f6c}
/* 단계 진행: 한 화면에 */
.lab-run{display:flex;flex-direction:column;gap:14px;min-height:calc(100dvh - 130px)}
.lab-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.lab-bar .ttl{display:flex;flex-direction:column}.lab-bar .ttl small{font-size:11.5px;color:#7a7f6c}.lab-bar .ttl b{font-size:18px;font-weight:900}
.lab-pips{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}
.pip{padding:6px 12px;border-radius:999px;background:#e9e3d2;color:#7a7f6c;font-size:12.5px;font-weight:800}.pip.on{background:#20473a;color:#fff}.pip.done{background:#d9e6d3;color:#2c5a43}
.lab-body{flex:1;min-height:0;display:flex}
.lab-concept,.sp-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:24px;width:100%;align-items:stretch}
.lab-fig{border-radius:16px;background:#fff;border:1px solid #e3dcc6;overflow:hidden;min-height:min(62dvh,620px);display:grid}.lab-fig .fig200{height:100%}
.lab-text{display:flex;flex-direction:column;gap:12px;align-self:center}.lab-text small{font-size:12px;font-weight:800;color:#8a6a2c;letter-spacing:.08em}.lab-text .goal{margin:0;font-weight:700;color:#20473a}.lab-text h2{margin:4px 0 0;font-size:28px;font-weight:900;word-break:keep-all}.lab-text p{margin:0;line-height:1.85;font-size:16px;word-break:keep-all}.lab-text .keys{margin:0;padding:12px 16px 12px 32px;border-radius:12px;background:#fff;border:1px solid #e3dcc6;line-height:1.8;font-size:14.5px}.lab-text button{align-self:flex-start;padding:13px 22px;border-radius:12px}
.sp-split .sp-boardbox{display:block;border-radius:16px;background:#fff;border:1px solid #e3dcc6;padding:12px}
.sp-split svg{display:block;width:100%;height:min(70dvh,680px);max-height:none;min-height:0}
.sp-split .sp-panel{display:flex;flex-direction:column;gap:10px;align-self:stretch;min-width:0}
.sp-q{margin:0;font-size:21px;font-weight:900;line-height:1.5;word-break:keep-all}
.sp-split .sp-say{font-size:15.5px;background:#fff}.sp-split .sp-say.ok{background:#e4f3e8}.sp-split .sp-say.no{background:#fbe7e4}.sp-split .sp-say.hint{background:#fff5d6}.sp-split .sp-say.show{background:#eef1fb}
.sp-hints{margin:0;padding:12px 16px 12px 34px;border-radius:12px;background:#fff8e3;border:1px solid #efdfa9;font-size:14.5px;line-height:1.75;word-break:keep-all}.sp-hints:empty{display:none}
.lab-extra{display:flex;flex-direction:column;gap:10px;margin-top:auto}.lab-extra>button{align-self:flex-end;padding:13px 24px;border-radius:12px}
.lab-joseki{padding:12px 14px;border-radius:12px;background:#fff;border:1px solid #e3dcc6}.lab-joseki[hidden]{display:none}.lab-joseki b{font-size:13px;color:#8a6a2c}.lab-joseki p{margin:4px 0 8px;font-size:14px;line-height:1.7;word-break:keep-all}.lab-jfig{height:220px;display:grid}.lab-jfig .fig200{height:100%}
.lab-result{margin:auto;text-align:center;padding:40px 60px;border-radius:20px;background:#fff;border:1px solid #e3dcc6}.lab-result .big{font-size:56px;font-weight:900;margin:6px 0;color:#20473a}.lab-result.no .big{color:#b0523d}.lab-result .row{margin-top:14px}.lab-result button{padding:13px 26px;border-radius:12px}
@media(max-width:860px){.lab-subjects{grid-template-columns:repeat(2,1fr)}.lab-concept,.sp-split{grid-template-columns:1fr}.lab-fig{min-height:300px}.sp-split svg{height:auto;max-height:60dvh}.lab-pips{margin-left:0}}

/* 표지: 실제 책처럼 — 그림 전면, 위에 제목, 아래 띠지 */
.vol-cover{background-size:cover;background-position:center;padding:30px 28px 0 36px;overflow:hidden;justify-content:flex-start;color:#fff}
.vol-cover::before{content:'';position:absolute;left:0;top:0;bottom:0;width:18px;background:linear-gradient(90deg,#0005,#fff3 70%,#0003)}
.vol-cover small{font-size:12px;letter-spacing:.3em;font-weight:800;opacity:1;margin:0}
.vol-cover h2{margin:12px 0 8px;font-size:clamp(28px,2.9vw,42px);line-height:1.2;font-weight:900;color:inherit;letter-spacing:-.02em}
.vol-cover p{font-size:14.5px;font-weight:700;opacity:1;line-height:1.55}
.vol-cover .band{position:absolute;left:18px;right:0;bottom:44px;padding:10px 18px;background:#000b;color:#fff;font-size:13px;font-weight:800;text-align:center;backdrop-filter:blur(2px)}
.vol-cover .pub{position:absolute;left:0;right:0;bottom:14px;text-align:center;font-size:11.5px;font-weight:700;letter-spacing:.14em;color:#ffffffd9}
.vol[data-book=basic] .vol-cover{color:#1d4a35}.vol[data-book=basic] .vol-cover .pub{color:#1d4a35}
.vol[data-book=middle] .vol-cover h2{color:#f4d58f}.vol[data-book=master] .vol-cover h2{color:#f6d186}
.sb-cover{background-size:cover!important;background-position:center;justify-content:flex-start;padding-top:clamp(34px,7%,70px);position:absolute}
.sb-cover[data-book=basic]{color:#1d4a35}.sb-cover[data-book=basic] h1{color:#1d4a35}.sb-cover[data-book=basic] .sb-brand,.sb-cover[data-book=basic] .sb-sub{color:#2b5d45}
.sb-cover h1{font-size:clamp(38px,3.8vw,62px)}.sb-brand{font-weight:800;letter-spacing:.28em;font-size:12.5px}.sb-sub{font-weight:700}
.sb-band{position:absolute;left:0;right:0;bottom:56px;padding:13px 20px;background:#000b;color:#fff;font-size:14.5px;font-weight:800;text-align:center}
.sb-pub{position:absolute;left:0;right:0;bottom:18px;margin:0;font-size:13px;font-weight:700;letter-spacing:.14em;color:#ffffffe0}.sb-cover[data-book=basic] .sb-pub{color:#1d4a35}
.vol-cover h2,.sb-cover h1{text-wrap:balance}
.lab-wrap{padding:22px 22px 18px;max-width:1320px}
.lab-run{min-height:calc(100dvh - 104px)}
.sp-split .sp-boardbox{align-self:start}
.sp-split svg{height:auto;max-height:min(76dvh,740px)}
@media(min-width:861px){.sp-split{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}
.lab-run{min-height:calc(100dvh - 118px)}
.sp-split svg{max-height:min(71dvh,720px)}
