:root{--ink:#f5eedc;--muted:#bdcbb9;--green:#547b58;--lime:#dce6c8;--paper:#f8f4e9;--line:#97af8e44}body{background:#526a50 url('/school-forest.png') center/cover fixed;color:var(--ink)}header{background:#faf9eff5;color:#294839}body:has(.world-main) .layout{background:#19372e6b;align-items:start}aside{background:#1b372de8;border-right:1px solid #e1d4a34d;color:#f3ebd2;position:sticky;top:0;height:calc(100vh - 72px);backdrop-filter:blur(7px)}nav button{font-size:13px;border-radius:3px;padding:16px 14px}nav button.active{background:#667b526e;box-shadow:inset 3px 0 #e5d198}.side-bottom{color:#b7c6a8}.side-bottom button{color:#d9dbbd}.world-main{padding:32px 38px;margin:0 auto;max-width:1330px}.world-main .topline{margin-bottom:24px}.world-main .eyebrow{color:#d8cfac}.world-main h1{color:#fff6dc;font-size:27px;text-shadow:0 2px 4px #18332860}.world-main .date{color:#d7dec7}.world-main .sub{color:#d1dbc5}.world-main .back{color:#e6dbc0}.world-main .card,.world-main .reader,.world-main .cd{background:#243f32f2;border:1px solid #c8b98260;border-radius:3px;box-shadow:4px 4px 0 #11281f55;color:#f1ecd9}.world-main .notice{background:#273f32ed;color:#d6ddc5;border:1px solid #95a57d50;border-radius:3px;margin:22px 0;font-size:11px}.world-main .primary{background:#647e51;color:#fff4da;border:1px solid #d4c48b60;border-radius:3px;box-shadow:0 3px #243a22;font-size:12px}.world-main .secondary{background:#425740;color:#edebd2;border:1px solid #c2c6a444;border-radius:3px;font-size:12px}.world-main .link{color:#d3d9ba}.world-main .row{border-color:#a6b28b38}.world-main .tag{background:#607a4d;color:#f8f0d6;border-radius:2px}.world-main .locked,.world-main .step:disabled{background:#6d7668;color:#c1c5b8;border-radius:3px}.world-main .step{border-radius:3px;background:#536d49;color:#f8edcf}.world-main .step.current{background:#8b9e65}.world-main .input{background:#173025;color:#fffae9;border-color:#788b63;border-radius:3px}.world-main .chips button{background:#526b44;color:#fff1cd;border-radius:3px}.world-main .result{color:#dce9b7}.world-main .empty{color:#c2cdb5}.world-main .sample{color:#c3cbb1}.world-main .reader-text{color:#fff0ce}.world-main .reader-art{border-radius:2px;background:#798c5c!important;padding:24px}.world-main .reader-art .pixel-icon{width:100px;height:100px;margin:0 auto}.world-main .cover{color:#2b3f2c}.world-main .record-tabs button{background:#314f3b;color:#d2dcc0;border-radius:3px;border:1px solid #8da47350}.world-main .record-tabs button.active{background:#6b8155;color:#fff3d2}.world-main .stats p{color:#c4cfb5}.modal{background:#edf0df;color:#294839;border-radius:6px}.modal .sub{color:#66775f}.modal .notice{color:#38513d}.modal .primary{color:#fff}.cabinet{padding:20px 20px 25px;border:9px solid #55422f;background:linear-gradient(90deg,#203e2beF,#1c3025f0);box-shadow:inset 0 0 0 2px #987b4c,7px 7px 0 #152c2466;position:relative;border-radius:2px}.cabinet:before{content:'';position:absolute;top:-9px;left:-14px;right:-14px;height:11px;background:#806644;border-top:3px solid #b19763}.dense-row{display:flex;align-items:flex-end;gap:3px;border-bottom:13px solid #8c6d43;box-shadow:0 4px 0 #43321f;padding:0 6px;min-height:111px;margin-bottom:19px;overflow:hidden}.dense-row:last-child{margin-bottom:0}.level-plaque{align-self:center;flex:0 0 83px;margin-right:12px;background:#4f6844;color:#eee3bb;border:2px solid #a89660;box-shadow:2px 2px 0 #111f18;text-align:left;padding:10px 9px;font-size:15px;line-height:1.4}.level-plaque.active{background:#b4a16a;color:#213923;border-color:#e9d59b}.level-plaque small{display:block;font-size:8px;letter-spacing:1px;margin-top:4px}.book-spine{flex:0 0 33px;height:95px;display:flex;align-items:center;justify-content:center;position:relative;background:var(--spine,#78926b);color:#fbefcd;padding:10px 4px 7px;writing-mode:vertical-rl;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-family:Georgia,serif;font-size:11px;border:1px solid #12281d80;border-radius:1px;box-shadow:inset 3px 0 #ffffff1a,inset -3px 0 #00000022;transition:translate .15s}.book-spine:before,.book-spine:after{content:'';position:absolute;left:3px;right:3px;height:3px;background:#d4c591a8;top:5px}.book-spine:after{top:auto;bottom:5px}.book-spine:hover{translate:0 -8px;z-index:2}.book-spine.short{height:82px}.book-spine.tall{height:103px}.display-spine{flex:0 0 16px;height:92px;background:var(--spine);border:1px solid #17291c80;box-shadow:inset 2px 0 #ffffff15;position:relative}.display-spine:before{content:'';position:absolute;top:8px;bottom:8px;left:3px;width:2px;background:#c3b98770}.display-spine:nth-child(3n){height:78px;width:20px;flex-basis:20px}.display-spine:nth-child(5n){height:103px;flex-basis:24px}.dense-section-head{margin-top:29px}.world-main .bookgrid{grid-template-columns:repeat(6,minmax(0,1fr));gap:17px}.world-main .book .cover{height:175px;border-radius:2px;box-shadow:inset 5px 0 #0002,4px 4px 0 #152c2560;padding:14px 10px}.world-main .book .cover strong{font-size:19px}.world-main .book .cover .pixel-icon{width:43px;height:43px;margin:0}.world-main .book .cover small{font-size:6px;letter-spacing:1.4px}.world-main .book h3{font-size:11px;color:#f4e9cf;margin:11px 0 5px}.world-main .book p{font-size:9px;color:#c0ccb2}.book .complete-mark{font-size:9px;color:#2c4935}.story-cabinet{margin-top:25px;padding:24px 22px;border:8px solid #5d4735;background:#1c3227ed;box-shadow:inset 0 0 0 2px #9b7e52,5px 5px 0 #152b2466}.story-cabinet .cdgrid{gap:20px}.story-cabinet .cd{background:#314735e8;border:1px solid #a1935c80;box-shadow:0 9px 0 #947349,0 14px 0 #44321f;padding:24px 17px 20px;margin-bottom:7px;position:relative;min-height:286px}.story-cabinet .cd h2{font-family:Georgia,serif;font-size:20px;margin:13px 0 5px}.story-cabinet .cd p{color:#c8d0b5;font-size:10px}.cd-case{width:119px;height:119px;padding:17px;margin:0 auto 14px;background:#c5c4ad20;border:2px solid #a3ab8c70;box-shadow:inset 0 0 0 4px #ffffff09;position:relative}.cd-case:after{content:'';position:absolute;left:0;top:0;bottom:0;width:8px;background:#152b2940}.cd-case .pixel-icon{width:81px;height:81px;margin:0}.cd-actions{gap:7px}.story-cabinet .cd-actions button{padding:10px 12px}.world-section{display:flex;align-items:center;gap:13px;margin-bottom:18px}.world-section .pixel-icon{width:30px;height:30px;margin:0}.world-section h2{font-size:16px;margin:0}.study-panel{padding:27px;border:1px solid #9caf7850;background:#263f31f2;box-shadow:4px 4px 0 #18312266;margin-bottom:20px}.study-panel h2{margin:0 0 12px;font-size:19px}.today-box{display:flex;align-items:center;justify-content:space-between;gap:24px}.today-box .pixel-icon{width:70px;height:70px;margin:0 20px}.study-meta{display:flex;gap:20px;font-size:10px;color:#becbb0;padding:15px 0 0}.today-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin:23px 0}.today-stats .card{padding:20px}.today-stats b{font-size:29px;font-weight:600}.today-stats p{color:#c5d0b7;font-size:10px;margin:5px 0}.record-cover-grid{margin-top:20px}.record-cover-grid .book{cursor:pointer}.recordshelf{margin-top:20px;display:flex;gap:5px;align-items:flex-end;min-height:125px;padding:15px 16px 0;border-bottom:12px solid #96764b;background:#19302570}.collection-table{width:100%;border-collapse:collapse;font-size:11px;margin-top:15px}.collection-table th{text-align:left;color:#c6ceb0;font-weight:500;padding:14px 10px;border-bottom:1px solid #cbd7b640}.collection-table td{padding:17px 10px;border-bottom:1px solid #bfd0ad25;line-height:1.8}.nav-school{background:#f6f2df0b!important;margin-bottom:19px!important;border-bottom:1px solid #a6af8544!important;border-radius:0!important}.view-chip{font-size:9px;letter-spacing:1.5px;color:#d6d0aa}.game-home .portal .en{font-size:8px}.world-main .row p{color:#c2ccb1}.world-main .mini{color:#234136;border-radius:2px}.world-main .stats{color:#f8edd0}.world-main audio{height:40px}.toast{background:#243d2f;border:1px solid #b8ac79;color:#f8efd9;border-radius:3px}.record-spine{writing-mode:vertical-rl;height:88px;width:30px;background:#648663;color:#f6eacc;padding:9px 5px;font-size:10px;box-shadow:inset 2px 0 #ffffff22}.world-main .steps{gap:6px}.world-main .step{padding:12px 13px;font-size:11px}@media(max-width:1100px){.layout{grid-template-columns:175px 1fr}.world-main{padding:28px 25px}.world-main .bookgrid{grid-template-columns:repeat(4,minmax(0,1fr))}.story-cabinet .cd h2{font-size:16px}.story-cabinet .cd-actions{flex-direction:column}.dense-row{padding:0}.level-plaque{flex-basis:72px;margin-right:5px}}@media(max-width:780px){.layout{grid-template-columns:145px 1fr}.world-main{padding:23px 17px}.world-main .bookgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.story-cabinet{padding:18px 12px}.story-cabinet .cdgrid{grid-template-columns:1fr}.story-cabinet .cd{display:grid;grid-template-columns:110px 1fr;gap:0 15px;min-height:150px;padding:17px;text-align:left}.cd-case{grid-row:1/6;width:100px;height:100px;margin:0;padding:10px}.cd-case .pixel-icon{width:76px;height:76px}.story-cabinet .cd-actions{flex-direction:row;justify-content:flex-start}.story-cabinet .cd h2{margin:4px 0}.today-box .pixel-icon{display:none}.today-stats{gap:9px}.today-stats .card{padding:15px}.world-main .topline{gap:10px}.world-main h1{font-size:23px}.date{white-space:nowrap}.dense-row .display-spine{flex-basis:13px}.cabinet{padding:15px 9px;border-width:6px}.collection-table{font-size:10px}}@media(max-width:620px){aside{height:auto;position:sticky;top:0;background:#203b30f5}nav{overflow-x:auto}nav button{min-width:76px;flex-direction:column;padding:9px 5px;font-size:9px;margin:0!important}.nav-school{min-width:60px}.side-bottom{display:none}.world-main{padding:22px 16px}.world-main .bookgrid{grid-template-columns:repeat(3,minmax(0,1fr))}.world-main .book .cover{height:145px}.world-main .book .cover strong{font-size:15px}.world-main .book .cover .pixel-icon{width:34px;height:34px}.world-main .date{display:none}.world-main .reader{padding:24px 20px}}
.portal,.ramimon{animation:none}
/* Keep the pixel world as a quiet backdrop, with the learning controls crisp. */
body{background:#849078;position:relative;isolation:isolate}
body:before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:url('/quiet-forest.png') center/cover no-repeat;opacity:.32;filter:blur(1.5px) saturate(.7)}
body:has(.world-main) .layout{background:#29453378}
body:has(.game-home){background:#c5ceba}
.game-home{background:#c5ceba}
.game-home:before{background:url('/quiet-forest.png') center/cover no-repeat;opacity:.46;filter:blur(1.5px) saturate(.7)}
.world-main h1{text-shadow:none}
.game-heading h1{text-shadow:none}
.ramimon{transform-origin:50% 90%;animation:ramimon-idle 5.2s steps(1,end) infinite;will-change:transform}
.ramimon-stage:before{content:'';position:absolute;bottom:1px;left:50%;width:29px;height:5px;translate:-50% 0;background:#334b3930;border-radius:50%;animation:ramimon-shadow 5.2s steps(1,end) infinite;pointer-events:none}
@keyframes ramimon-idle{0%,100%{transform:translateY(0) scale(1)}15%{transform:translateY(-1px) scale(1.015,.985)}30%{transform:translateY(0) scale(1)}58%{transform:translateY(-2px) rotate(-2deg)}64%{transform:translateY(-2px) rotate(2deg)}70%{transform:translateY(0) rotate(0)}}
@keyframes ramimon-shadow{0%,100%{opacity:.8;scale:1}15%{opacity:.7;scale:.96}30%{opacity:.8;scale:1}58%,64%{opacity:.5;scale:.88}70%{opacity:.8;scale:1}}
@media(prefers-reduced-motion:reduce){.ramimon,.ramimon-stage:before{animation:none;will-change:auto}}
