:root{--ink:#35443b;--green:#315846;--paper:#fbf6e9;--line:#d6cbb4;--muted:#7e7c68}body{background:radial-gradient(ellipse at 70% 0,#e6e7cf,transparent 55%),#f0ecdc}main{max-width:1080px}header{max-width:1130px}.seodang-hero{border:1px solid #d7c5a3;border-radius:25px;background:#faf2dc;display:grid;grid-template-columns:1.2fr 1fr;position:relative;overflow:hidden;min-height:330px;box-shadow:0 8px 0 #d8ccb218}.seodang-eaves{position:absolute;left:0;right:0;top:0;height:17px;background:repeating-linear-gradient(90deg,#46594d 0,#46594d 35px,#627467 36px,#314c3c 39px);border-bottom:6px solid #9c7950}.seodang-copy{padding:42px 38px 32px;z-index:1}.wood-sign{font-size:12px;color:#f8edd4;background:#7e6344;padding:7px 13px;display:inline-block;border:2px solid #ab8d64;border-radius:5px;letter-spacing:2px}.seodang-copy h1{font-size:42px;margin:18px 0 12px;letter-spacing:-1.8px;line-height:1.35}.seodang-copy h1 span{color:#3f6148}.seodang-copy p{margin:10px 0 20px;font-size:14px}.teacher-art{display:flex;align-items:center;justify-content:center;position:relative;background:linear-gradient(90deg,transparent,#e5e4c8);min-width:0}.teacher-art>svg{width:260px;z-index:1;animation:lionBreathe 4s infinite}.window-lattice{position:absolute;width:210px;height:230px;top:45px;left:50%;transform:translateX(-50%);border:7px solid #a48a5e;background:repeating-linear-gradient(90deg,transparent 0,transparent 28px,#b8a27855 29px,#b8a27855 31px),repeating-linear-gradient(0deg,#f5efd9 0,#f5efd9 28px,#b8a27855 29px,#b8a27855 31px);border-radius:100px 100px 4px 4px;opacity:.7}.teacher-greeting{position:absolute;z-index:2;bottom:28px;left:50%;transform:translateX(-50%);background:#fff8e7;border:1px solid #cbb78e;border-radius:20px;padding:9px 12px;font-size:11px;white-space:nowrap}.seodang-status{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:20px 4px;margin-bottom:25px;border-bottom:1px solid #d6cbb4;font-size:13px}.seodang-status strong{font-size:17px}.seodang-rooms{gap:17px}.room-card{padding:0;overflow:hidden;min-height:0;border-radius:20px;background:#fcf7e9;box-shadow:0 5px 0 #d8cbaa66;animation:cardEnter .4s both}.room-art{height:175px;position:relative;background:#e5e9d2;padding:15px 4px 0}.room-art svg{width:100%;height:100%;fill:#37523f}.room-art svg text{font-family:var(--reading-font)}.story .room-art{background:#eee0c3}.school .room-art{background:#dce5da}.room-art>span{position:absolute;top:10px;left:12px;border-radius:20px;background:#fcf6e4e8;padding:5px 9px;font-size:10px;color:#6a7157}.room-copy{padding:20px;position:relative}.room-copy>small{font-size:10px;letter-spacing:.4px;color:#938169}.room-copy h3{font-size:23px;margin:12px 0 8px}.room-copy p{font-size:12px;line-height:1.6;margin:0 0 14px;word-break:keep-all;max-width:230px}.room-count{font-size:10px;color:#8c846f}.room-copy>b{position:absolute;right:18px;bottom:20px;font-size:24px;font-weight:400}.bank-caption{font-size:11px;color:#8b826b;text-align:center;margin:18px 0 28px;line-height:1.8}.review-yard{border:1px solid #d4c3a2;border-radius:20px;margin-top:30px;padding:25px;background:linear-gradient(#f4e8cf,#f9f1df);box-shadow:inset 0 -6px #e0ceb033}.review-yard>.section-title{margin:0 0 12px}.review-yard>p{font-size:12px;margin:10px 0 18px}.review-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.review-choices button{display:flex;flex-direction:column;align-items:flex-start;gap:10px;background:#fff9ec;border:1px solid #d7c5a1;border-radius:13px;padding:18px}.review-choices strong{font-size:26px}.review-choices span{font-size:12px}.shelf-preview{margin-top:18px;background:#f4edda;border-color:#ccba99}.stage.selected{background:#dfe7d0}.course-desk{background:#faf5e6}.placement-banner{background:linear-gradient(110deg,#e4e8d0,#f8efda)}.activity-type{font-size:12px;color:#8f7658;margin:10px 0 0;line-height:1.4}.term-panel .question{font-size:24px;line-height:1.65;white-space:normal;word-break:keep-all}.term-panel .options .option{font-size:17px}.assembly-work{background:#f4edda;padding:20px;border:1px solid #e0d0ae;border-radius:15px;text-align:center;margin:15px 0}.assembly-slots{display:flex;gap:9px;justify-content:center;flex-wrap:wrap}.assembly-slots>span{width:52px;height:59px;border:1px dashed #bfba99;border-radius:7px;display:grid;place-items:center;font-size:28px;color:#c1ba9f;background:#fffbf2}.assembly-slots>span.filled{color:#365744;border-style:solid;background:#e2e9d0;font-size:35px;animation:bookArrive .2s}.tile-bank{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:20px 0 7px}.hanja-tile{font-family:var(--reading-font);font-size:35px;width:55px;height:59px;border:1px solid #ba9b65;border-bottom:4px solid #b0905f;background:#fff7dd;border-radius:9px}.hanja-tile:disabled{opacity:.3}.term-panel.answered .assembly-work{display:none}.term-panel .feedback .text-button{font-size:11px}.term-panel .play-dock .primary{width:100%;padding:15px;font-size:15px}.term-panel .play-dock .primary:disabled{opacity:.6}.detail-hanja{font-weight:400}.detail-char-list{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.detail-char-list button{display:flex;flex-direction:column;border-radius:12px;gap:8px;padding:12px;align-items:center}.detail-char-list strong{font:35px var(--reading-font);font-weight:400}.detail-char-list span{font-size:11px}.origin-story{padding:16px;border:1px solid #d5c49e;background:#f3e9ce;line-height:1.8;border-radius:12px;font-size:14px}.subject-select{display:block;font-size:12px}.subject-select select,.shelf-filter select,.shelf-filter input{display:block;width:100%;border:1px solid #c6b998;border-radius:10px;background:#fff9ec;padding:12px;font:15px var(--reading-font);color:var(--ink);margin-top:7px}.shelf-filter{display:grid;grid-template-columns:1fr 2fr;gap:10px;margin:20px 0}.review-tabs{display:flex;gap:8px;margin:10px 0 20px}.review-tabs .quiet{padding:9px 14px;font-size:12px}.review-action-row{display:flex;align-items:center;justify-content:space-between;margin:20px 0;font-size:12px}.review-action-row .primary{font-size:12px;padding:12px}.review-list{display:flex;flex-direction:column;gap:9px}.review-list>label{display:flex;align-items:center;gap:12px;border:1px solid #d7cbb0;border-radius:12px;padding:12px;background:#fffbef}.review-list input{width:20px;height:20px;accent-color:#365b44}.review-list>label>span{flex:1}.review-list strong{font-size:16px}.review-list small{display:block;margin-top:4px;font-size:18px;color:#7f8066}.review-list .text-button{white-space:nowrap;font-size:11px}.compact-finish{max-width:650px;padding:28px}.finish-header{display:flex;align-items:center;gap:18px}.finish-header>div:first-child{width:105px;flex-shrink:0}.finish-header svg{width:100%;display:block;animation:happyJump .8s 2}.finish-header h2{font-size:22px;line-height:1.5;word-break:keep-all;margin:10px 0 5px}.finish-header p{font-size:12px;margin:0}.result-score{display:flex;align-items:baseline;justify-content:center;gap:15px;margin:25px 0}.result-score>strong{font-size:62px;font-weight:400;line-height:1.1}.result-score small{font-size:28px;color:#8c947b}.result-score>span{font-size:12px}.result-score>b{font-size:15px;background:#e7ebd6;border-radius:18px;padding:7px 12px}.next-adventure{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:23px;letter-spacing:.5px;padding:20px 24px;border:2px solid #284b39;box-shadow:0 5px 0 #9aab83;min-height:66px;background:#315d43;animation:nextGlow 3s 2}.next-adventure>b{font-size:28px}.finish-mini-info{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#85816a;margin:24px 0 15px}.finish-secondary{display:flex;justify-content:center;gap:12px;margin:18px 0 0}.finish-secondary .quiet{font-size:13px;padding:10px 20px}.finish-glyphs{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin:14px 0}.finish-glyphs span{font-size:25px;padding:5px 9px;border-radius:6px;background:#ebe8d5}.wooden-shelf .book strong{overflow-wrap:anywhere;font-size:22px;line-height:1.4;letter-spacing:0}.wooden-shelf .book{overflow:hidden}.seodang-shelf>h2{margin:12px 0}body.completed main{margin-bottom:20px}.seodang-copy .primary{white-space:nowrap}button:disabled.primary{opacity:.5}@keyframes nextGlow{50%{box-shadow:0 5px 0 #9aab83,0 0 0 5px #c3d4a64d}}
@media(max-width:650px){main{padding:0 13px}.seodang-hero{min-height:252px;border-radius:22px;grid-template-columns:1.15fr 1fr}.seodang-eaves{height:12px;border-bottom-width:4px}.seodang-copy{padding:27px 0 22px 17px}.wood-sign{font-size:8px;letter-spacing:.6px;padding:5px 8px;border-width:1px}.seodang-copy h1{font-size:25px;margin:13px 0 10px;line-height:1.45;letter-spacing:-1.3px;white-space:nowrap}.seodang-copy p{font-size:11px;margin:7px 0 17px;line-height:1.7}.seodang-copy .primary{font-size:11px;padding:13px 10px;border-radius:11px}.teacher-art>svg{position:absolute;right:-8px;bottom:27px;width:175px}.window-lattice{width:125px;height:158px;border-width:4px;top:42px;left:52%;border-radius:70px 70px 4px 4px;background-size:23px 23px}.teacher-greeting{font-size:8px;bottom:20px;left:49%;padding:6px 8px}.seodang-status{font-size:10px;padding:18px 1px;margin-bottom:22px;gap:6px;flex-wrap:wrap}.seodang-status strong{font-size:13px}.seodang-status>span{white-space:nowrap}.room-card{display:grid;grid-template-columns:42% 58%;border-radius:19px;min-height:158px}.room-art{height:100%;min-height:158px;padding:22px 0 0;display:flex;align-items:center}.room-art>svg{min-width:140px;height:auto;width:100%;transform:translateY(6px)}.room-art>span{font-size:8px;top:9px;left:9px;padding:4px 6px}.room-copy{padding:20px 13px 22px 16px}.room-copy>small{font-size:8px;letter-spacing:0;white-space:nowrap}.room-copy h3{font-size:19px;margin:11px 0 8px;white-space:nowrap;letter-spacing:-.6px}.room-copy p{font-size:10px;line-height:1.7;margin-bottom:12px;padding-right:1px}.room-copy>b{font-size:21px;right:12px;bottom:12px}.room-count{font-size:8px;display:block;max-width:145px;white-space:nowrap;letter-spacing:-.2px}.bank-caption{font-size:10px;margin:17px 0 23px}.review-yard{padding:19px 16px;margin-top:25px;border-radius:20px}.review-yard>.section-title>span{font-size:10px}.review-yard>p{font-size:10px;line-height:1.7;margin:10px 0 16px;word-break:keep-all}.review-yard .eyebrow{font-size:8px;letter-spacing:1px}.review-choices{gap:7px}.review-choices button{padding:14px 10px;gap:8px;border-radius:11px}.review-choices strong{font-size:23px}.review-choices span{font-size:9px;line-height:1.5;text-align:left;word-break:keep-all}.shelf-preview{padding:19px;margin-top:15px}.practice-panel.term-panel{position:relative;overflow-y:auto}.term-panel .activity-type{font-size:10px;margin-top:9px}.practice-panel.term-panel .question{font-size:17px;line-height:1.6;margin:12px 0;flex-shrink:0}.practice-panel.term-panel .options .option{font-size:14px;padding:12px 9px;line-height:1.5}.practice-panel.term-panel .options{margin:9px 0}.assembly-work{padding:15px 10px;margin:12px 0}.assembly-slots{gap:6px}.assembly-slots>span{width:43px;height:49px;font-size:22px}.assembly-slots>span.filled{font-size:29px}.tile-bank{gap:7px;margin-top:17px}.hanja-tile{width:45px;height:49px;font-size:30px}.term-panel .assembly-work>.text-button{font-size:10px}.term-panel .play-dock .primary{font-size:14px;padding:14px 10px;min-height:46px}.term-panel .play-dock .text-button{font-size:10px;padding:6px 0}.term-panel.answered .question{font-size:16px}.term-panel .feedback{padding:13px 54px 13px 13px}.term-panel .feedback .text-button{font-size:10px;padding:5px 0}.review-tabs{gap:6px;margin:10px 0 16px}.review-tabs .quiet{font-size:11px;padding:9px 12px}.review-panel p{font-size:11px;word-break:keep-all}.review-list>label{padding:11px;gap:9px}.review-list strong{font-size:14px}.review-list small{font-size:18px}.review-action-row{font-size:11px}.review-action-row .primary{font-size:11px;padding:11px}.review-list .text-button{font-size:10px}.shelf-filter{grid-template-columns:1fr;gap:8px}.shelf-filter select,.shelf-filter input{font-size:15px}.origin-story{font-size:13px;padding:14px;line-height:1.8}.detail-char-list button{padding:10px;max-width:100%}.detail-char-list span{font-size:10px}.detail-hanja{display:block;font-size:28px;margin-top:8px}body.completed{height:100dvh;overflow:hidden}body.completed header{height:56px;box-sizing:border-box;flex-wrap:nowrap;padding-top:8px;padding-bottom:8px}body.completed header .brand{font-size:11px;flex-basis:auto;margin:0;letter-spacing:-.7px}body.completed header .brand small{display:none}body.completed header nav{gap:3px}body.completed header nav .quiet{font-size:10px;padding:0 7px}body.completed header nav #musicToggle,body.completed header nav #help{padding:0;width:32px;min-width:32px}body.completed main{height:calc(100dvh - 56px);margin:0;padding:0 10px 9px;box-sizing:border-box}.compact-finish{height:100%;padding:19px 17px;margin:0!important;display:flex;flex-direction:column;border-radius:20px;overflow-y:auto;animation:none}.finish-header{gap:11px;flex-shrink:0}.finish-header>div:first-child{width:77px}.finish-header .eyebrow{font-size:9px;letter-spacing:1px}.finish-header h2{font-size:19px;line-height:1.5;margin:7px 0 5px}.finish-header p{font-size:10px;line-height:1.6}.result-score{margin:22px 0 20px;gap:10px;flex-shrink:0}.result-score>strong{font-size:53px}.result-score small{font-size:24px}.result-score>span{font-size:10px}.result-score>b{font-size:12px;padding:6px 10px}.next-adventure{font-size:21px;min-height:62px;padding:16px 18px;flex-shrink:0;border-radius:13px}.next-adventure>b{font-size:26px}.finish-mini-info{font-size:10px;margin:21px 0 13px;line-height:1.7;flex-shrink:0}.finish-secondary{margin-top:auto;padding-top:13px;flex-shrink:0;gap:9px}.finish-secondary .quiet{font-size:12px;padding:10px 19px}.finish-glyphs{gap:5px;margin:10px 0;flex-shrink:0}.finish-glyphs span{font-size:23px;padding:4px 8px}.compact-finish .result-score b,.compact-finish .finish-mini-info span{white-space:nowrap}.wooden-shelf .book strong{font-size:20px}.seodang-shelf>h2{font-size:22px}.seodang-shelf>p{font-size:12px}}
@media(max-height:700px) and (max-width:650px){.finish-header>div:first-child{width:66px}.finish-header h2{font-size:17px}.result-score{margin:17px 0}.result-score>strong{font-size:47px}.next-adventure{min-height:56px;font-size:20px;padding:13px 17px}.finish-mini-info{margin:18px 0 9px}.finish-glyphs span{font-size:21px}.practice-panel.term-panel .question{font-size:16px;line-height:1.5}.term-panel .activity-type{font-size:9px}.assembly-work{padding:11px 8px}.tile-bank{margin-top:12px}.term-panel .feedback p{font-size:12px;line-height:1.5}}
@media(max-width:350px){.seodang-copy h1{font-size:22px}.teacher-art>svg{width:150px}.teacher-greeting{font-size:7px}.room-copy h3{font-size:17px;letter-spacing:-.7px}.room-copy>small{font-size:7px}.room-count{font-size:7px}.room-art{min-height:155px}.room-copy p{font-size:9px}.review-choices button{padding:12px 7px}.review-choices span{font-size:8px}body.completed header .brand{font-size:10px}.assembly-slots>span{width:36px;height:44px}.hanja-tile{width:38px;height:44px}.finish-header h2{font-size:16px}.result-score{gap:8px}.finish-mini-info{font-size:9px}}
@media(prefers-reduced-motion:reduce){.teacher-art>svg,.next-adventure,.finish-header svg{animation:none!important}}
.finish-terms{margin:14px 0}.finish-terms>small{font-size:11px;color:#8a806b}.finish-terms>div{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin-top:10px}.finish-terms span{font-size:13px;padding:7px 11px;background:#e9e7d2;border:1px solid #d7d1b7;border-radius:8px}@media(max-width:650px){.finish-terms>div{gap:6px;margin-top:8px}.finish-terms span{font-size:11px;padding:6px 9px}.finish-terms>small{font-size:10px}.finish-terms{margin:10px 0}}
header .brand{font-size:19px;font-weight:700;letter-spacing:.2px}header .brand small{display:none}@media(max-width:650px){header{flex-wrap:nowrap;padding:14px;gap:10px}header .brand{flex-basis:auto;font-size:18px;margin:0;letter-spacing:.1px}header nav{margin-left:auto}body.practicing header .brand,body.completed header .brand{font-size:16px;letter-spacing:0;flex-basis:auto;margin:0}}@media(max-width:350px){header .brand,body.practicing header .brand,body.completed header .brand{font-size:14px}header{gap:7px}header nav{width:auto}}
/* Bound bamboo slips: rolled ends, individual slats and two binding cords. */
.bamboo-collection{display:grid;grid-template-columns:repeat(3,1fr);gap:20px 18px;margin:25px 0}.bamboo-item{border:0;background:transparent;padding:0 5px 14px;text-align:center;position:relative;min-width:0;animation:bookArrive .4s both}.bamboo-item:after{content:'';position:absolute;bottom:0;left:0;right:0;height:6px;background:#b29161;border-radius:3px;box-shadow:0 4px 0 #d5c5a4}.bamboo-roll{position:relative;height:135px;margin:5px 5px 12px;transform:rotate(-1deg);filter:drop-shadow(0 6px 3px #77562b24)}.bamboo-item:nth-child(3n+2) .bamboo-roll{transform:rotate(1.5deg)}.bamboo-slats{position:absolute;inset:0 13px 0 0;display:flex;gap:2px;padding:3px;border-radius:6px 2px 2px 6px;background:#b18f4f;overflow:hidden}.bamboo-slats>i{height:100%;flex:1;min-width:0;background:linear-gradient(90deg,#d0ae67,#e8d39a 25%,#dfc084 78%,#b99a56);border-radius:3px;box-shadow:inset 0 1px 0 #f2e2b6,inset 0 -1px 0 #ad894b}.bamboo-slats>i:nth-child(3n){background:linear-gradient(90deg,#caa45e,#debf7c 45%,#ccb16d)}.bamboo-tie{position:absolute;left:0;right:4px;height:3px;background:#615438;z-index:2;box-shadow:0 1px 0 #ffffff38}.tie-top{top:20px}.tie-bottom{bottom:20px}.bamboo-rolled-end{position:absolute;right:0;top:-3px;bottom:-3px;width:28px;border-radius:45%;border:4px solid #b39755;background:repeating-radial-gradient(ellipse at center,#dcc384 0,#dcc384 3px,#aa8749 4px,#aa8749 5px,#ebd69b 6px,#ebd69b 9px);box-shadow:-3px 0 3px #997f4138;z-index:3}.bamboo-label{position:absolute;inset:32px 34px 29px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:4;color:#3f442f;text-shadow:0 1px #f9edc755}.bamboo-label strong{font:31px var(--reading-font);font-weight:400;line-height:1.35;overflow-wrap:anywhere}.bamboo-label small{font-size:12px;margin-top:8px}.bamboo-caption{display:block;font-size:10px;color:#8c8269;line-height:1.6;word-break:keep-all}.bamboo-item:hover .bamboo-roll{transform:translateY(-4px) rotate(-1deg);transition:transform .2s}.bamboo-pile{position:relative;width:210px;height:112px;flex-shrink:0;border-bottom:7px solid #a5895e;border-radius:3px}.pile-bundle{position:absolute;bottom:calc(var(--stack)*17px + 3px);left:7px;height:24px;width:175px;border-radius:7px;background:repeating-linear-gradient(90deg,#cfb172 0,#e5cb92 6px,#c0a15d 7px,#e5cb92 10px);border:1px solid #b18f50;box-shadow:0 3px 4px #886a3020;transform:rotate(-2deg);animation:bookArrive .4s both;animation-delay:calc(var(--stack)*60ms)}.pile-bundle:nth-child(2n){left:17px;transform:rotate(2deg)}.pile-bundle span{position:absolute;left:22px;top:-1px;bottom:-1px;width:3px;background:#75633d;box-shadow:116px 0 #75633d}.pile-bundle i{position:absolute;right:-3px;top:-2px;height:27px;width:24px;border-radius:50%;background:repeating-radial-gradient(ellipse,#ddc185 0,#ddc185 3px,#a98648 4px,#a98648 5px);border:2px solid #b18c4c}.pile-bundle b{position:absolute;left:54px;top:4px;font-size:9px;font-weight:400;color:#655d3b}.pile-bundle.bundle-empty{opacity:.2;filter:grayscale(.6)}.shelf-preview:has(.bamboo-pile){min-height:145px}.seodang-shelf>h2{word-break:keep-all}
@media(max-width:650px){.bamboo-collection{grid-template-columns:1fr 1fr;gap:22px 10px;margin:22px 0}.bamboo-item{padding:0 1px 12px}.bamboo-roll{height:120px;margin:4px 2px 10px}.bamboo-slats{gap:1px;inset:0 11px 0 0;padding:2px}.bamboo-rolled-end{width:23px;border-width:3px}.bamboo-label{inset:27px 25px 25px 10px}.bamboo-label strong{font-size:25px;line-height:1.3}.bamboo-label small{font-size:11px;margin-top:7px}.bamboo-tie.tie-top{top:17px}.bamboo-tie.tie-bottom{bottom:17px}.bamboo-caption{font-size:9px}.bamboo-pile{width:185px;height:101px}.pile-bundle{width:153px;left:4px;height:23px;bottom:calc(var(--stack)*16px + 3px)}.pile-bundle:nth-child(2n){left:14px}.pile-bundle span{box-shadow:96px 0 #75633d;left:18px}.pile-bundle i{width:22px;height:25px}.pile-bundle b{left:46px;font-size:8px}.shelf-preview:has(.bamboo-pile){min-height:0}.shelf-preview:has(.bamboo-pile)>span{align-self:end;margin-bottom:5px}.seodang-shelf>h2{font-size:21px}}
@media(max-width:350px){.bamboo-label strong{font-size:22px}.bamboo-caption{font-size:8px}.bamboo-pile{width:170px}.pile-bundle{width:140px}.pile-bundle span{box-shadow:86px 0 #75633d}.bamboo-roll{height:112px}}
