/* The school palette: pine green, warm paper, and the brass of the old bell. */
:root{--pine:#294e3d;--paper:#faf5e6;--ink:#344e3d;--brass:#dbc58f;--ui-glass:rgba(32,55,43,.92);--ui-edge:rgba(239,226,187,.24)}
button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}
button{transition:background .16s,box-shadow .16s,transform .16s}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #d8ad59;outline-offset:4px}
button:disabled{cursor:default}button:active:not(:disabled){transform:translateY(1px)}
.topbar{padding:20px 26px;gap:14px}.school-header,.top-tools{box-shadow:0 7px 24px #18302420,inset 0 1px #fff9e70c}
.school-header{border-radius:18px;padding:8px 9px 8px 13px}.school-mark{border-radius:7px 7px 12px 7px;background:#dac58f;color:#2b4b36;font-family:'Gowun Batang',serif;font-weight:700}
.brand b{letter-spacing:.6px}.brand small{letter-spacing:2px;font-size:8px;color:#cdd5bc}.top-tools{border-radius:18px;padding:5px;gap:3px}
.top-tools .icon-button,.top-tools .small-paper,.room-button{border-radius:12px}.room-button{background:#fff7d410;border:1px solid #f6e8b51a}.room-button:hover{background:#fff7d422}
.top-tools .icon-button[aria-pressed=true]{background:#d4c38924;color:#f1ddaa}.top-tools .icon-button:hover,.top-tools .small-paper:hover{background:#fff6d918}
.welcome{left:clamp(28px,5vw,90px);top:clamp(114px,18vh,170px);transform:none;width:365px;padding:29px 30px 24px;border-radius:22px;border-color:#f1e3bd52;background:linear-gradient(145deg,#264a3bed,#1e382deb);box-shadow:0 22px 65px #17301f2b,inset 0 1px #fff5d51c;max-height:calc(100dvh - 200px)}
.welcome .overline{justify-content:flex-start;font-size:9px;letter-spacing:2.4px;color:#d5c18b}.welcome h1{font-size:38px;text-align:left;line-height:1.4;margin:15px 0 14px;letter-spacing:-.8px}.welcome-copy{text-align:left;font-size:12px;line-height:1.9;color:#dce1cd;margin-bottom:20px}
.entry-customize{border-color:#e8e0b923;margin-bottom:17px}.entry-customize summary{font-size:12px;color:#d9dfca}.name-input{background:#142d222e;border-color:#d5d6b733;border-radius:9px}.name-input:focus-within{border-color:#d8c48c;box-shadow:0 0 0 3px #d8c48c16}
.enter-button{height:50px;border-radius:12px;background:linear-gradient(135deg,#f1e5bf,#dac38c);box-shadow:0 4px 14px #0b251d22;color:#294b37}.enter-button:hover{background:#f0dfae;box-shadow:0 5px 20px #11291c35}.solo-button{min-height:38px;font-size:11px!important;color:#d6deca!important}
#guestbook-welcome{border:1px solid #c5cdad40!important;border-radius:9px!important;background:#f7ebc70a!important;color:#e4dfc4!important;min-height:42px;font-size:12px!important}#guestbook-welcome:hover{background:#f7ebc719!important}.entry-note{font-size:9px;color:#bfcdb8;line-height:1.8}
.school-tools{left:auto;right:26px;bottom:24px;width:294px;border-radius:16px;background:#203b2fe8;border-color:#f3e4b82b;padding:14px 16px}.school-credit{color:#c8d1ba}
.location-card{top:104px;left:26px;border-radius:14px;padding:11px 14px;border-color:#f3e4b827;box-shadow:0 4px 15px #213d2420}.location-card span{color:#cbd7bf;font-size:10px}.location-card b{font-size:13px}.hud-right{top:104px;right:26px;gap:7px}.hud-right .small-paper{border:1px solid #e7dba92b;border-radius:13px;padding:10px 13px;font-size:11px;box-shadow:0 4px 12px #213d2415}
.actionbar{border-radius:20px;bottom:29px;padding:7px;gap:4px;border-color:#f1dfac40;box-shadow:0 10px 35px #1c382a35}.actionbar button{border-radius:14px;min-width:90px;min-height:60px;font-size:11px;color:#e9eedc}.actionbar button>svg,.actionbar button>[data-icon]>svg{color:#dec78e}.actionbar button:hover{background:#f4e7bf16}.actionbar .nav-count{color:#d5dabd!important;border:1px solid #d7dcbb20}.movement-hint{color:#e0e6ce;text-shadow:0 1px 4px #29452d;font-size:10px}
.arrival-note{border:1px solid #d9c8999e;box-shadow:0 6px 22px #273e2520;background:#faf0d3f2;border-radius:4px 14px 14px 14px}.arrival-note p{font-size:11px;color:#6c725a}.context-action button{background:#365b44f2;border:1px solid #e5c985a6;border-radius:14px;box-shadow:0 4px 18px #1b352c35}.context-action kbd{background:#f3dfad;color:#35523a;border-radius:7px;font-weight:700}.toast{border:1px solid #e4d8b13b;border-radius:13px;background:#294936f5;box-shadow:0 8px 30px #1e38263b;padding:13px 20px;max-width:calc(100vw - 30px);text-align:center;line-height:1.7}
dialog{background:var(--paper);color:var(--ink);border:1px solid #d0c19d;border-radius:19px;box-shadow:0 24px 90px #16302250;padding:26px;max-width:calc(100vw - 28px)}dialog::backdrop{background:#18302466;backdrop-filter:blur(3px)}
.dialog-header{padding-bottom:18px;border-bottom:1px solid #c7cbb055;margin-bottom:16px;align-items:flex-start}.dialog-header small{color:#788468;letter-spacing:1.6px;font-size:9px}.dialog-header h2{font-size:28px;line-height:1.4;margin-top:5px;color:#2c4c37}.dialog-header .icon-button{background:#e9ead9;border-radius:50%;color:#59714f;min-width:36px;height:36px;border:1px solid #c4ccb2}.dialog-description{color:#637057;font-size:13px;line-height:1.9}.dialog-footnote{color:#7a806c;font-size:11px;line-height:1.85}
.map-grid,.memory-grid{gap:11px}.map-card,.memory-card,.room-card{border:1px solid #d2d7bf!important;background:#f0efdf!important;border-radius:12px!important;box-shadow:0 2px 0 #b6bf9c17;transition:background .16s,border-color .16s,box-shadow .16s}.map-card:hover,.memory-card:hover,.room-card:hover{background:#e5ead5!important;border-color:#9caa84!important;box-shadow:0 4px 13px #54704410}.map-card{padding:17px 15px!important}.map-card b,.memory-card b{font-size:14px;color:#3e5c40}.map-card small,.memory-card small{font-size:11px;color:#748065;line-height:1.7;margin-top:5px}.room-card.selected{background:#dfe8cd!important;border-color:#82986a!important}.activity-tools button,.chalk-writing button,#chart-answers button{border-radius:9px;border-color:#c4cdb1;min-height:44px}.activity-tools .dialog-button,.dialog-button{background:#355d44;color:#fff5d7;border-radius:10px}.activity-tools .dialog-button:hover,.dialog-button:hover{background:#456e50}.activity-status{padding:11px 13px;border-radius:9px;background:#eceedd;color:#526a46;font-size:12px;line-height:1.8}.polish-floor{border-color:#866c49;border-radius:11px}.lesson-chart{border-radius:2px}.chart-mount{border-radius:11px}.gb-school-result{border-radius:9px}.gb-post{border-radius:12px}.organ-keyboard{border-radius:6px}.player-label{box-shadow:0 2px 7px #263d2412}
@media(max-width:800px){.topbar,.in-game .topbar{padding:14px 16px}.brand b{font-size:14px}.brand small{font-size:7px}.school-header{padding:6px 7px 6px 9px;gap:8px;border-radius:16px}.top-tools{border-radius:16px}.welcome{left:24px;width:330px;padding:24px;top:112px}.welcome h1{font-size:34px}.school-tools{right:18px;bottom:18px;width:258px}.location-card{left:16px;top:92px}.hud-right{right:16px;top:92px;flex-direction:column}.actionbar button{min-width:77px}.dialog-header h2{font-size:25px}}
@media(max-width:600px){.topbar,.in-game .topbar{padding:12px;gap:6px}.school-header{gap:5px;padding:5px 5px 5px 8px;flex-shrink:0}.brand{gap:6px}.brand b{font-size:12px;letter-spacing:0}.brand small{display:none}.school-mark{height:29px;width:25px;font-size:16px}.room-button{height:34px;padding:0 6px;gap:3px;font-size:10px}.top-tools{gap:0;padding:3px}.top-tools .icon-button,.top-tools .small-paper,.multi-school .top-tools .icon-button,.multi-school .top-tools .small-paper{height:36px;min-width:30px;padding:0 6px}.top-tools svg{width:17px;height:17px}.top-tools .tool-label,.top-tools .small-paper b{display:none}.top-tools #friends-button{display:flex}.music-button{font-size:19px}.welcome{left:50%;top:96px;transform:translateX(-50%);width:calc(100vw - 32px);max-width:354px;padding:23px;max-height:calc(100dvh - 242px);border-radius:18px}.welcome h1{font-size:32px;line-height:1.35;margin:13px 0}.welcome-copy{font-size:11px;margin-bottom:14px}.welcome .overline{font-size:8px}.enter-button{height:47px}.entry-note{font-size:8px}.school-tools{left:16px;right:16px;bottom:14px;width:auto;max-height:134px;padding:10px 12px;border-radius:13px}.school-release{display:none}.school-credit{margin-top:5px;font-size:8px}.welcome-more{font-size:9px;margin-top:4px}.welcome-tools button{min-height:36px}.school-tools .welcome-more small{font-size:8px}.location-card{top:80px;left:12px;padding:9px 11px}.location-card span{display:none}.location-card b{font-size:11px}.hud-right{top:80px;right:12px}.hud-right .small-paper{font-size:10px;padding:8px 10px}.actionbar{bottom:max(20px,env(safe-area-inset-bottom));border-radius:18px;width:calc(100vw - 24px);gap:0;padding:5px}.actionbar button{min-width:0;min-height:56px;font-size:10px;padding:7px 3px}.context-action{right:14px;bottom:132px}.context-action button{font-size:11px}.joystick{left:20px;bottom:131px}.arrival-note{left:16px;bottom:245px;max-width:213px}.arrival-note .handwritten{font-size:17px}.arrival-note p{font-size:10px}dialog{padding:20px;border-radius:16px}.dialog-header{padding-bottom:14px;margin-bottom:13px}.dialog-header h2{font-size:24px}.dialog-description{font-size:12px}.map-grid,.memory-grid{gap:8px}.map-card{padding:13px 10px!important}.map-card b,.memory-card b{font-size:12px}.map-card small,.memory-card small{font-size:10px}.cleaning-dialog{padding:17px}.cleaning-dialog .dialog-header h2{font-size:22px}.cleaning-dialog .activity-status{margin:10px 0;padding:8px 10px}}
@media(max-width:370px){.topbar,.in-game .topbar{padding:8px;gap:4px}.brand b{font-size:11px}.school-mark{width:22px}.top-tools .icon-button,.top-tools .small-paper,.multi-school .top-tools .icon-button,.multi-school .top-tools .small-paper{min-width:27px;padding:0 5px}.welcome{top:85px;padding:20px}.welcome h1{font-size:29px}}
@media(max-height:650px){.welcome{top:90px;max-height:calc(100dvh - 110px)}.welcome h1{font-size:29px}.welcome .entry-note{display:none}.welcome-copy{margin-bottom:10px}.school-tools{max-height:110px}.cleaning-dialog{max-height:calc(100dvh - 100px)}}
@media(prefers-reduced-motion:reduce){button,.map-card,.memory-card,.room-card{transition:none}}

.school-space-badge{font-size:10px;color:#e7dfbf;border-left:1px solid #d4dab534;padding:8px 3px 8px 12px;white-space:nowrap}@media(max-width:600px){.school-space-badge{display:none}}
