*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#b7c9c4;color:#243a35;font-family:"Segoe UI","Microsoft JhengHei",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #c8cfc5;background:#f4f3eafa;color:#28413b;border-radius:5px;padding:8px 12px;transition:background .18s,transform .18s}button:hover{background:#e3e9dc}button:active{transform:translateY(1px)}button:disabled{cursor:wait;opacity:.6}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #bc8e49;outline-offset:3px}#game{width:100%;height:100%;display:block;touch-action:none;outline:0}header{position:absolute;inset:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:20px 28px;background:linear-gradient(#102b37b8,transparent);color:#fff;pointer-events:none}header>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:12px}.crest{font-family:serif;font-size:27px;border:1px solid #e8debd;padding:6px 10px;border-radius:0 0 16px 16px;color:#eee2c5}h1{font-size:25px;letter-spacing:4px;margin:0;font-family:serif}h1 small{font:11px sans-serif;letter-spacing:1px;color:#e3ddc7}.brand p{margin:5px 0;font-size:9px;letter-spacing:2px}.topright{display:flex;gap:10px;align-items:center}.topright button{background:#f8f7edeb;font-size:12px}#status{font-size:12px;text-shadow:0 1px 4px #234}#overview{position:absolute;top:100px;right:24px;bottom:70px;width:270px;background:#f5f4eaf0;backdrop-filter:blur(16px);border:1px solid #ffffff80;border-radius:8px;overflow:auto;padding:22px;box-shadow:0 8px 40px #23382715;scrollbar-width:thin}.panel-heading span{font-size:8px;letter-spacing:1.7px;color:#778273}h2{font-family:Georgia,"Microsoft JhengHei",serif;margin:8px 0 20px}.panel-heading h2{font-size:22px;letter-spacing:3px}.metric{margin:12px 0}.metric-row{display:flex;justify-content:space-between;font-size:11px}.metric b{font-size:12px;font-variant-numeric:tabular-nums}.track{height:3px;background:#dce0d5;margin-top:6px}.track i{display:block;height:3px;background:#5c7966;transition:width .5s}.section-label{border-top:1px solid #d8ddce;margin-top:22px;padding-top:18px;font-size:12px;font-weight:600}.section-label span{float:right;font-size:10px;color:#84907f;font-weight:400}nav{margin:12px 0}nav button{width:100%;text-align:left;margin-bottom:3px;border:0;background:transparent;font-size:11px;padding:8px 5px}nav button span{color:#8b947d;font-size:9px;margin-right:12px}nav button::after{content:'↗';float:right;color:#899c83}.settings{border-top:1px solid #d8ddce;padding-top:12px}.settings label{display:flex;align-items:center;justify-content:space-between;font-size:10px;margin:10px 0}.settings select{width:130px;padding:5px;background:#fff8;border:1px solid #d8ddce;font-size:10px}.settings button{font-size:10px;width:100%;margin-top:6px}.settings p{font-size:9px;color:#84907f;text-align:center}#location{position:absolute;left:28px;top:112px;background:#f5f4eae8;display:flex;gap:12px;align-items:center;padding:12px 18px;border-radius:5px;box-shadow:0 4px 25px #23382710}#location small{display:block;font-size:9px;color:#7b8d7c;margin-bottom:4px}#location b{font-size:12px;font-weight:500}.dot{width:7px;height:7px;background:#6f8d55;border-radius:50%}footer{position:absolute;bottom:0;left:0;right:0;display:flex;gap:24px;align-items:center;padding:18px 28px;background:linear-gradient(transparent,#152a32a8);font-size:11px;color:#fff}kbd,.key{font:10px sans-serif;border:1px solid #ffffff70;border-radius:3px;padding:3px 6px;margin-right:5px}#fps{margin-left:auto;font-size:10px}#interaction{position:absolute;bottom:90px;left:calc(50% - 140px);transform:translateX(-50%);background:#f6f4e8f5;padding:12px 18px;border-radius:5px;font-size:12px;box-shadow:0 8px 40px #172d3840}#interaction .key{border-color:#9bac93}#interaction button{margin-left:14px;font-size:11px}#interaction[hidden]{display:none}.veil{position:absolute;inset:0;background:linear-gradient(90deg,#102b2eee 0%,#193736a8 40%,#19373608 100%);display:flex;align-items:center;color:#fff}.welcome{margin-left:8%;max-width:500px;padding:30px 0}.eyebrow{font-size:10px;letter-spacing:2px;color:#a58b55}.welcome .eyebrow{color:#d5c7a5}.welcome h2{font-family:serif;font-size:48px;font-weight:500;line-height:1.45;letter-spacing:5px;margin:22px 0}.welcome p{color:#d0d9d2;font-size:14px;line-height:1.9}.welcome label{display:block;font-size:11px;color:#c6d1c7;margin:30px 0 8px}.entry{display:flex;gap:10px}input{min-width:0;background:#ffffff15;border:1px solid #adc3b580;color:white;padding:12px;border-radius:4px;width:180px}.entry button{background:#e8ddbd;color:#263a31;border:0}.welcome small{display:block;color:#a6baad;font-size:11px;line-height:1.8;margin-top:24px}#err{color:#ffcf9f;max-width:420px}.welcome-note{position:absolute;bottom:80px;right:45px;text-align:right;line-height:1.8;font-family:serif;font-size:14px;text-shadow:0 1px 8px #16352d}.welcome-note span{font:9px sans-serif;letter-spacing:2px}dialog{width:min(620px,92vw);max-height:85vh;border:1px solid #d7dacb;border-radius:8px;background:#f6f4e9;color:#2f433a;padding:36px;box-shadow:0 20px 100px #071d2970}dialog::backdrop{background:#112c3c66;backdrop-filter:blur(3px)}dialog h2{font-size:25px;margin:12px 0 18px}dialog p{font-size:14px;line-height:1.85}.close{position:absolute;right:15px;top:12px;border:0;background:transparent;font-size:24px}.choice{display:block;width:100%;text-align:left;margin:8px 0;padding:12px}.choice small{display:block;color:#798773;margin-top:5px;font-size:11px}textarea{display:block;width:100%;height:86px;padding:10px;border:1px solid #c8cfc5;border-radius:4px;background:#fff;color:#234}#dialog-content .note{font-size:11px;color:#7d8373;border-left:2px solid #b3a273;padding-left:12px}.badge{display:inline-block;padding:6px 10px;background:#e3e8d9;font-size:12px;border-radius:4px;margin:3px}.delta{color:#4e7645}.error{color:#9b4431}@media(max-width:900px){#overview{width:230px;right:12px;padding:16px}header{padding:16px}.topright #status{display:none}#interaction{left:40%}footer{gap:12px;font-size:9px;padding:15px}.welcome h2{font-size:38px}#location{left:16px}}@media(max-width:650px){#overview{top:85px;width:215px;bottom:55px}h1{font-size:20px}.brand p{font-size:7px}.topright button{font-size:10px;padding:7px}#location{top:90px}footer span:nth-child(3),footer span:nth-child(4),#fps{display:none}.welcome{margin-left:7%;width:85%}.welcome-note{display:none}.welcome h2{font-size:32px}#interaction{left:50%;bottom:70px;max-width:95%;width:max-content}}
#mission{position:absolute;left:28px;top:195px;width:300px;padding:18px;background:#183c36ed;color:#f5efdb;border:1px solid #c6b47b;border-radius:8px;box-shadow:0 8px 30px #162a3d33}#mission[hidden]{display:none}.mission-label{font-size:11px;color:#d8c899;display:flex;justify-content:space-between}#mission h2{font-size:19px;line-height:1.5;margin:12px 0}#mission progress{width:100%;height:8px;accent-color:#d5b866}#mission p{font-size:11px;line-height:1.7}#mission button{width:100%;background:#e7d8ac;margin:4px 0}#mission small{display:block;font-size:10px;line-height:1.7;margin-top:10px;color:#c4d2c6}#mission button[hidden]{display:none}@media(max-width:900px){#mission{left:16px;width:250px}}@media(max-width:650px){#mission{top:auto;bottom:58px;width:220px;padding:12px}#mission h2{font-size:15px}#mission small{display:none}#interaction{bottom:275px}}

#tutorial{position:absolute;left:28px;top:190px;width:310px;max-height:calc(100vh - 290px);overflow:auto;padding:20px;background:#173c36f5;color:#f5efdb;border:1px solid #d5b866;border-radius:8px;box-shadow:0 8px 30px #162a3d33}#tutorial[hidden],#tutorial button[hidden]{display:none}#tutorial h2{font-size:21px;line-height:1.4;margin:12px 0}#tutorial p{font-size:14px;line-height:1.8}#tutorial progress{width:100%;height:8px;accent-color:#d5b866}#tutorial ol{list-style:none;padding:0;font-size:12px;line-height:2;color:#c2d4c7}#tutorial li[aria-current]{color:#ffe0a1;font-weight:bold}#tutorial button{width:100%;margin-top:8px}#tutorial-pause{background:transparent;color:#e9e7d6;font-size:12px}#tutorial-navigation{color:#ffe0a1;font-size:15px;min-height:36px;display:flex;align-items:center;gap:8px}.tutorial-arrow{display:inline-block;font-size:28px;width:30px;text-align:center}#tutorial-feedback{position:absolute;top:105px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 40px);background:#173c36f5;color:#ffe0a1;padding:12px 20px;border-radius:6px;pointer-events:none;opacity:0}#tutorial-feedback.celebrate{animation:tutorial-reward 6s both}@keyframes tutorial-reward{0%{opacity:0;translate:0 8px}10%,75%{opacity:1;translate:0 0}100%{opacity:0}}.briefing-metric{display:inline-block;width:50%;margin:8px 0;font-variant-numeric:tabular-nums}#view-metrics{width:100%;font-size:12px}@media(prefers-reduced-motion:reduce){#tutorial-feedback.celebrate{animation:none;opacity:1}}@media(max-width:900px){#tutorial{left:16px;width:270px}}@media(max-width:650px){header{flex-wrap:wrap;gap:8px}.topright{gap:5px}#location{display:none}#tutorial{top:135px;left:12px;width:min(270px,calc(100vw - 24px));max-height:calc(100vh - 230px)}#tutorial-feedback{top:110px;width:calc(100vw - 24px);font-size:12px}body:has(#tutorial:not([hidden])) #overview{display:none}.briefing-metric{width:100%}}

.semester-summary{font-size:12px;line-height:1.7;padding:10px;background:#e3e8d9;border-left:3px solid #a58b55}.semester-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.semester-stats>div{padding:12px;background:#e4eadc;border:1px solid #c8d2be;border-radius:6px;font-size:12px}.semester-stats strong{display:block;font-size:18px;margin-top:6px}#semester-plan{margin:18px 0;padding:16px;background:#ebece1;border-radius:6px}#semester-plan label{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:14px 0;font-size:14px}#semester-plan input[type=number],#semester-plan select{width:120px;color:#243a35;background:#fff;padding:8px;border:1px solid #9cae98}#semester-plan input[type=checkbox]{width:22px;height:22px;flex-shrink:0;accent-color:#28543f}#semester-plan button{width:100%}#semester-estimate{font-size:14px;line-height:1.8;border-top:1px solid #bdcbb7;padding:12px 0}#plan-message{color:#355d38}.semester-ledger{width:100%;border-collapse:collapse;font-size:14px;margin:16px 0}.semester-ledger caption{text-align:left;font-weight:bold;margin-bottom:10px}.semester-ledger th{font-weight:normal;text-align:left}.semester-ledger td{text-align:right;font-variant-numeric:tabular-nums}.semester-ledger th,.semester-ledger td{padding:9px 6px;border-bottom:1px solid #d3d8c7}.semester-ledger tr:last-child{font-weight:bold;background:#e0e9d7}#dialog-content details{font-size:12px;margin:16px 0}#dialog-content summary{cursor:pointer;font-weight:bold}#dialog-content details p{font-size:12px}@media(max-width:650px){.semester-stats strong{font-size:15px}#semester-plan{padding:10px}#semester-plan label{font-size:12px;gap:8px}.topright{flex-wrap:wrap}.topright #help{display:none}dialog{padding:30px 20px}.semester-ledger{font-size:12px}}

#classroom-room{padding:0;width:100vw;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0;margin:0;background:#d9e3df;overflow:hidden}#classroom-room iframe{display:block;width:100%;height:100%;border:0}#classroom-return{position:absolute;bottom:80px;right:24px;z-index:2;padding:14px 22px;background:#204c40;color:#fff;border:1px solid #c6bb92;border-radius:6px}
