:root{--ink:#121621;--panel:#191d2c;--cream:#f5edda;--gold:#e7c58c;--gold-dark:#b69661;--muted:#b8b9c5;--line:rgba(231,197,140,.22);--dialogue-font:18px;color-scheme:dark;font-family:"Noto Sans TC","Microsoft JhengHei",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--cream);font-size:15px;line-height:1.7}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;border:0;color:inherit;background:none}button:disabled{opacity:.4;cursor:not-allowed}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button{transition:background .2s,color .2s,transform .2s,opacity .2s}img{max-width:100%;object-fit:contain}.icon{width:22px;height:22px;flex-shrink:0;vertical-align:middle}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}h1,h2,.brand,.chapter-card strong,.teacher-brand strong{font-family:"Noto Serif TC","PMingLiU","Songti TC",serif}.eyebrow{font-size:10px;letter-spacing:.23em;color:var(--gold);line-height:1.8}.muted{color:var(--muted);font-size:13px}.gold-text{color:var(--gold);white-space:nowrap}#stage{position:fixed;inset:0;background-size:cover;background-position:center;z-index:0}#stage canvas{display:block}#atmosphere{position:fixed;inset:0;pointer-events:none;z-index:1;background:linear-gradient(90deg,rgba(10,14,27,.96) 0%,rgba(12,16,30,.87) 28%,rgba(17,21,36,.3) 63%,rgba(13,17,28,.28)),linear-gradient(0deg,#111522 0%,transparent 37%,rgba(8,13,25,.25) 75%,rgba(11,15,27,.7))}#app{position:relative;z-index:2;min-height:100vh}.topbar{height:91px;display:flex;align-items:center;justify-content:space-between;padding:0 48px;border-bottom:1px solid rgba(231,197,140,.13);gap:24px;background:linear-gradient(0deg,transparent,rgba(12,16,30,.35))}.brand{display:flex;align-items:center;text-align:left;gap:13px;white-space:nowrap;font-size:19px;letter-spacing:.08em;padding:0}.brand small{display:block;font-family:Arial,sans-serif;font-size:7px;letter-spacing:.23em;font-weight:400;color:#b7aa91;margin-top:3px}.brand-emblem{width:40px;height:48px;display:grid;place-items:center;color:var(--gold);border:1px solid var(--line);clip-path:polygon(50% 0,100% 18%,95% 80%,50% 100%,5% 80%,0 18%)}.brand-emblem .icon{width:28px;height:28px}.topnav{display:flex;gap:32px;align-items:center}.topnav button{font-size:13px;color:#d1d0d6;display:flex;gap:8px;align-items:center;min-height:44px;position:relative;padding:0 3px}.topnav button.active{color:var(--gold)}.topnav button.active:after{content:"";position:absolute;bottom:-24px;height:2px;width:22px;background:var(--gold);left:calc(50% - 11px)}.topnav .icon{width:18px}.top-controls{display:flex;align-items:center;gap:22px}.icon-button{width:44px;height:44px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:#d9c8a7}.icon-button:hover{background:rgba(231,197,140,.1)}.text-button{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:13px;color:var(--gold)}.text-button .icon{width:18px}.profile-button{display:flex;gap:10px;align-items:center;font-size:13px;max-width:160px}.avatar-letter{width:34px;height:34px;background:#807058;color:#fceac4;border-radius:50%;display:grid;place-items:center}.rail{position:fixed;left:0;top:91px;bottom:0;width:105px;border-right:1px solid rgba(231,197,140,.12);display:flex;flex-direction:column;align-items:center;padding-top:28px;background:rgba(12,16,28,.25);z-index:5}.rail-button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:84px;min-height:80px;color:#b2b3c2;font-size:10px;letter-spacing:.06em}.rail-button .icon{width:22px;height:22px}.rail-button:hover{color:var(--gold)}.rail-button.active{color:var(--gold)}.rail-button.active:before{content:"";position:absolute;left:-11px;top:19px;bottom:19px;width:2px;background:var(--gold)}.rail-button.active:after{content:"";position:absolute;inset:9px 5px;background:radial-gradient(ellipse,rgba(231,197,140,.09),transparent 70%);z-index:-1}.rail-button i{position:absolute;right:14px;top:7px;font-size:8px;font-style:normal;color:#141924;background:var(--gold);width:15px;height:15px;border-radius:50%;line-height:15px}.rail-bottom{margin-top:auto;margin-bottom:24px}.home-main{margin-left:105px;padding:58px 60px 0 70px;min-height:calc(100vh - 150px);position:relative}.hero-copy{max-width:550px;position:relative;z-index:2}.chapter-eyebrow{display:inline-flex;gap:8px;align-items:center;font-size:12px;color:#d0c0a3;letter-spacing:.12em;margin-bottom:28px}.tiny-star{color:var(--gold);font-size:22px;line-height:1}.hero-en{font-size:9px;letter-spacing:.28em;margin-bottom:16px;color:#d0c0a5}.hero-copy h1{font-size:66px;letter-spacing:.12em;line-height:1.35;font-weight:500;text-shadow:0 4px 50px #0007}.hero-copy h1>span{display:block;font-size:84px;color:#efd6a2;letter-spacing:.08em;margin-left:-2px}.hero-rule{display:flex;gap:15px;align-items:center;margin:20px 0 22px}.hero-rule i{width:42px;height:1px;background:var(--gold-dark)}.hero-rule span{font-size:8px;letter-spacing:.32em;color:#b9a98b}.hero-description{font-size:14px;line-height:2.05;letter-spacing:.08em;color:#d0ced5}.mobile-break{display:none}.hero-actions{display:flex;align-items:center;gap:20px;margin-top:29px}.button{display:inline-flex;justify-content:center;align-items:center;gap:12px;min-height:46px;padding:10px 23px;border-radius:3px;font-size:13px;font-weight:500;letter-spacing:.04em;white-space:nowrap}.button .icon{width:18px;height:18px}.button.gold{background:linear-gradient(110deg,#efd8aa,#d4b47e);color:#24232b;box-shadow:0 4px 28px rgba(173,125,48,.12);border:1px solid #e9cc99}.button.gold:hover{background:linear-gradient(110deg,#ffedca,#e4c591);transform:translateY(-1px)}.button.large{min-height:55px;padding:13px 26px;font-size:14px}.button.large>.icon:first-child{width:21px}.button.outline{border:1px solid var(--line);color:var(--gold);background:rgba(19,23,37,.4)}.button.outline:hover{background:rgba(231,197,140,.09)}.button.full{width:100%}.round-link{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--gold)}.hero-caption{font-size:10px;letter-spacing:.15em;color:#aca7ab;margin-top:17px}.portal-caption{position:absolute;right:10%;top:375px;text-align:center;color:#d8ccba;pointer-events:none}.portal-caption .fine-line{display:block;width:1px;height:42px;background:linear-gradient(0deg,var(--gold),transparent);margin:0 auto 13px}.portal-caption p{font-size:9px;letter-spacing:.3em;color:var(--gold);margin-bottom:5px}.portal-caption>span:last-child{font-size:11px;letter-spacing:.15em}.chapter-strip{margin-top:47px;padding-top:20px;border-top:1px solid var(--line);max-width:1100px}.strip-heading{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.08em;color:#d0c6b4;margin-bottom:15px}.strip-heading>button{font-size:11px;color:#b9b3b5;display:flex;align-items:center;gap:10px}.strip-heading .icon{width:16px}.chapter-row{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.chapter-card{position:relative;height:105px;overflow:hidden;border:1px solid rgba(231,197,140,.18);border-radius:4px;padding:0;text-align:left;background:#151b2b}.chapter-card img{position:absolute;width:100%;height:100%;object-fit:cover;opacity:.55;transition:transform .5s}.chapter-card:hover img{transform:scale(1.05)}.chapter-card-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,19,31,.75),rgba(15,18,29,.2))}.chapter-number{position:absolute;left:16px;top:25px;font-family:Georgia,serif;color:#e6c88f;opacity:.7;font-size:28px;font-weight:400}.chapter-card-copy{position:absolute;left:65px;top:26px}.chapter-card-copy small{display:block;color:#d3c0a1;font-size:8px;letter-spacing:.13em}.chapter-card-copy strong{display:block;font-size:17px;letter-spacing:.1em;margin-top:3px}.chapter-card-arrow{position:absolute;right:14px;bottom:15px;color:#c0b395}.chapter-card-arrow .icon{width:17px}.home-footer{margin:26px 60px 0 175px;padding-bottom:15px;display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#a6a2aa;letter-spacing:.12em}.home-footer>span{display:flex;align-items:center;gap:7px}.home-footer .icon{width:13px;height:13px;color:var(--gold-dark)}.home-footer i{font-style:normal;padding:0 7px;color:#776e69}
.game-mode #atmosphere{background:linear-gradient(0deg,rgba(9,12,20,.86),transparent 68%),linear-gradient(180deg,rgba(8,12,22,.82),rgba(8,12,22,.05) 48%,rgba(8,12,22,.15))}.game-mode .topbar{background:rgba(10,14,25,.8)}.game-main{position:relative;margin-left:105px;height:calc(100vh - 91px);min-height:640px;padding:27px 40px}.scene-head{display:flex;justify-content:space-between;gap:20px;position:relative;z-index:3}.scene-chapter{display:flex;gap:18px;align-items:center}.scene-number{font-family:Georgia,serif;font-size:47px;color:#e9c991;opacity:.85;line-height:1.1}.scene-chapter h2{font-size:23px;letter-spacing:.12em}.scene-chapter .eyebrow{font-size:9px;color:#e6dcc9;margin-bottom:2px;letter-spacing:.12em}.scene-chapter .eyebrow>span{color:var(--gold-dark);padding:0 6px}.resource-bar{display:flex;gap:23px;align-items:center;color:var(--gold)}.resource-bar>span{display:flex;gap:7px;align-items:center}.resource-bar .icon{width:19px;height:19px}.resource-bar b{font-family:Georgia,serif;font-size:21px;font-weight:400}.resource-bar small{font-size:10px;color:#cec7bd}.scene-progress{display:flex;align-items:center;gap:9px;margin-top:14px;font-size:9px;letter-spacing:.1em;color:#d6d0c8}.scene-progress>div{width:100px;height:3px;background:#ffffff26;border-radius:3px}.scene-progress i{display:block;height:100%;background:var(--gold)}.scene-progress b{font-weight:400;font-size:9px}.scene-progress #save-status{margin-left:7px;color:#b5d1b7;font-size:9px}.scene-progress #save-status:before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:#b5d1b7;margin-right:5px;vertical-align:2px}.character-portrait{position:absolute;right:5%;bottom:235px;height:65%;max-width:54%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 6px 20px rgba(0,0,0,.35));pointer-events:none;animation:portrait-in .45s ease-out}.dialogue-panel{position:absolute;bottom:54px;left:40px;right:40px;z-index:4;background:linear-gradient(120deg,rgba(25,28,42,.97),rgba(23,27,41,.96));border:1px solid rgba(224,193,138,.5);border-radius:7px;padding:30px 34px 20px;box-shadow:0 14px 70px #0005;min-height:210px}.dialogue-panel:before{content:"";position:absolute;top:6px;left:6px;right:6px;bottom:6px;border:1px solid rgba(231,197,140,.1);border-radius:4px;pointer-events:none}.speaker-label{position:absolute;top:-19px;left:25px;background:#35313a;border:1px solid #a3895d;display:flex;align-items:center;gap:9px;color:#f0d49f;padding:5px 20px;font-size:14px;letter-spacing:.09em;min-height:35px;border-radius:3px}.speaker-label .icon{width:17px;height:17px}.speaker-label>small{font-family:inherit;font-size:9px;color:#d1c0ab;padding-left:10px;letter-spacing:.04em;border-left:1px solid #b79b6844}.dialogue-body{max-height:33vh;overflow:auto;scrollbar-width:thin;scrollbar-color:#7d735d transparent}.dialogue-text{font-size:var(--dialogue-font);font-weight:400;line-height:1.9;letter-spacing:.035em;color:#f5efdf;padding:0 1px}.dialogue-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:20px}.dialogue-bottom .button{min-width:130px}.keyboard-hint{font-size:10px;color:#a8a6ae;letter-spacing:.05em}kbd{font-family:inherit;border:1px solid #ffffff27;padding:3px 7px;margin-right:4px;border-radius:3px;color:#c8c2c1;font-size:9px}.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:20px}.choice-button{display:flex;gap:12px;text-align:left;align-items:center;min-height:57px;font-size:14px;line-height:1.7;padding:12px 16px;border:1px solid #a28a6455;border-radius:4px;background:#ffffff05;color:#e6ded1}.choice-button>span{display:grid;place-items:center;border:1px solid #ad946b66;border-radius:50%;width:25px;height:25px;flex-shrink:0;font-family:Georgia,serif;font-size:12px;color:var(--gold)}.choice-button>.icon{width:15px;height:15px;margin-left:auto;opacity:.65}.choice-button:hover{background:#d5b47a19;border-color:#e7c58c;color:#fff2d5}.choice-hint{margin-top:16px;font-size:10px;color:#b5acaa;text-align:center}.game-footnote{position:absolute;bottom:14px;left:40px;right:40px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:10px;color:#c0b6b3}.game-footnote button{display:flex;align-items:center;gap:6px;min-height:30px;font-size:10px}.game-footnote .icon{width:13px;height:13px}.game-footnote>span{display:flex;align-items:center;gap:5px;opacity:.7}.lesson-panel{min-height:280px}.lesson-summary{display:flex;align-items:center;gap:20px;margin-top:2px}.lesson-summary>div:nth-child(2){flex:1}.lesson-summary h2{font-size:27px;letter-spacing:.08em;margin:4px 0}.lesson-summary p:not(.eyebrow){font-size:13px;color:#c9c3c3}.lesson-orb{height:80px;width:80px;display:grid;place-items:center;background:radial-gradient(circle,#b8a1d429,transparent 70%);border:1px solid var(--line);border-radius:50%;color:#d2b9ee}.lesson-orb .icon{width:38px;height:38px}.redeem-form{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}.redeem-form>label{font-size:11px;color:#d1c1a4;margin-bottom:8px}.redeem-form>div{display:flex;gap:10px}.redeem-form input{flex:1;letter-spacing:.16em}.redeem-form>small{display:block;color:#aaa6af;font-size:10px;margin-top:9px}.lesson-done{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);padding-top:20px;margin-top:20px;font-size:13px;color:#b3d4bb}.lesson-done>.button{margin-left:auto}.quiz-panel{position:absolute;left:7%;right:7%;top:170px;z-index:4;padding:30px 38px;background:rgba(21,24,37,.96);border:1px solid #bc9f6d88;border-radius:9px;box-shadow:0 10px 80px #0007}.quiz-heading{display:flex;justify-content:space-between;align-items:center}.quiz-heading>span{font-size:12px;color:#c7c0b6}.quiz-heading b{font-family:Georgia,serif;font-size:22px;color:var(--gold);font-weight:400}.quiz-dots{display:flex;gap:7px;margin:19px 0}.quiz-dots>i{flex:1;height:3px;background:#ffffff18}.quiz-dots .done{background:#8db6a0}.quiz-dots .current{background:var(--gold);box-shadow:0 0 15px #edcb91}.quiz-category{font-size:11px;color:var(--gold);letter-spacing:.1em;margin-top:24px}.quiz-panel h2{font-family:inherit;font-size:23px;line-height:1.7;margin:8px 0 25px}.quiz-options{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quiz-footnote{font-size:10px;color:#c0b4b0;margin-top:24px;text-align:center}.failure-panel{position:fixed;inset:91px 0 0 105px;background:radial-gradient(ellipse at center,#211522,#030306 70%);z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;animation:fade-in .8s}.failure-sigil{color:#ad7a8e;margin-bottom:25px}.failure-sigil .icon{width:58px;height:58px;stroke-width:.7}.failure-panel h2{font-size:35px;letter-spacing:.13em;margin:15px 0 23px}.failure-panel>p:not(.eyebrow){font-size:14px;line-height:2.2;color:#c6b6c1;margin-bottom:30px}.failure-panel>small{font-size:10px;margin-top:22px;color:#9b929f}.chapter-complete{text-align:center;padding:28px}.completion-mark{border:1px solid #ccb07966;width:48px;height:48px;display:grid;place-items:center;color:var(--gold);border-radius:50%;margin:0 auto 15px}.chapter-complete h2{font-size:27px;margin:7px 0}.chapter-complete>p:not(.eyebrow){color:#c8c0b8;font-size:13px}.chapter-complete .button{margin-top:20px}.class-reminder{display:block;font-size:9px;color:#a7a1a6;margin-top:8px}.ending-panel{max-height:calc(100vh - 240px);position:absolute;left:6%;right:6%;top:150px;background:#171c2bf5;border:1px solid #b29a7188;border-radius:9px;padding:25px 35px;text-align:center;overflow:auto}.ending-panel h2{font-size:30px;margin:8px 0 12px}.ending-panel>p:not(.eyebrow){font-size:13px;color:#c8c3c0}.memory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:left;margin:25px 0}.memory-grid>div{border:1px solid var(--line);padding:14px;border-radius:4px}.memory-grid small{display:block;font-size:10px;color:#b6adab}.memory-grid strong{font-size:13px;font-weight:400;color:#e2c994;display:block;margin-top:5px}.ending-panel label{text-align:left}.ending-panel textarea{height:80px}.ending-panel form>.button{margin-top:15px;margin-right:8px}.success-text{color:#a9c9b3!important;margin-top:16px}.busy .dialogue-panel button,.busy .quiz-panel button{pointer-events:none;opacity:.6}
.modal-backdrop{position:fixed;inset:0;background:#060a14b8;backdrop-filter:blur(10px);z-index:50;display:flex;align-items:center;justify-content:center;padding:28px;animation:fade-in .18s}.modal{position:relative;background:linear-gradient(140deg,#222635,#171b29);border:1px solid #b69a6766;border-radius:9px;box-shadow:0 20px 100px #0008;max-width:520px;width:100%;max-height:90vh;overflow-y:auto;padding:33px 34px;scrollbar-width:thin;scrollbar-color:#847253 transparent}.modal.wide{max-width:920px}.modal-close{position:absolute;right:19px;top:17px;width:34px;height:34px}.modal-close .icon{width:17px;height:17px}.modal>.eyebrow{font-size:8px;margin-bottom:9px}.modal>h2{font-size:26px;letter-spacing:.04em;margin:0 30px 20px 0}.modal-body{font-family:"Noto Sans TC","Microsoft JhengHei",sans-serif}.form-intro{color:#c7c1bf;font-size:13px;line-height:1.9;margin-bottom:20px}.form-tabs{display:flex;border-bottom:1px solid var(--line);gap:18px;margin-bottom:20px}.form-tabs>button{color:#aaa5ae;min-height:42px;font-size:12px}.form-tabs>button.active{color:var(--gold);border-bottom:2px solid var(--gold)}form label{display:block;color:#ddd1bb;font-size:12px;letter-spacing:.03em;margin:15px 0}input,select,textarea{width:100%;display:block;border:1px solid #9c885347;border-radius:4px;background:#0f14217a;color:#f1e9db;min-height:45px;padding:10px 13px;outline:none;margin-top:6px;font-size:14px}input::placeholder,textarea::placeholder{color:#94919b;font-size:12px}input:focus,select:focus,textarea:focus{border-color:#d5b37c}select{cursor:pointer}select option,select optgroup{background:#202535;color:var(--cream)}textarea{resize:vertical;line-height:1.8}.optional{display:block;font-size:9px;color:#a4a0a9;font-weight:400;letter-spacing:0}.form-error{font-size:12px;color:#f3b0a8;line-height:1.8;margin-top:10px}.modal form>.button.full{margin-top:12px}.credential-card{padding:25px;text-align:center;border:1px solid var(--line);background:#ffffff04;margin:20px 0;border-radius:6px}.credential-card small{display:block;color:#bab2b5;font-size:11px;margin-top:4px}.credential-card strong{display:block;font-family:Georgia,monospace;color:var(--gold);font-size:30px;letter-spacing:.1em;line-height:1.8}.credential-card>span{font-size:12px;color:#d7cab0}.video-frame{position:relative;padding-top:56.25%;background:#080c15;overflow:hidden;border-radius:5px}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-placeholder{height:270px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse,#5f48702a,transparent),#101522;border:1px dashed var(--line);border-radius:5px;margin-bottom:18px}.video-placeholder>.icon{width:43px;height:43px;color:var(--gold);margin-bottom:16px}.video-placeholder h3{font-size:21px;color:#ead9b9;margin-bottom:8px}.video-placeholder p{font-size:13px;color:#a9a7b1;text-align:center}.chapter-preview{width:100%;max-height:240px;object-fit:cover;border-radius:5px;margin-bottom:18px}.map-intro{font-size:13px;color:#bcb6ba;margin-bottom:22px}.map-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.map-card{position:relative;height:150px;border:1px solid var(--line);border-radius:5px;overflow:hidden;text-align:left}.map-card img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;opacity:.5;transition:transform .3s}.map-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0d1322e6,transparent)}.map-card:hover img{transform:scale(1.04)}.map-card>span{position:absolute;left:20px;bottom:15px;z-index:1}.map-card small{display:block;font-size:8px;letter-spacing:.18em;color:var(--gold)}.map-card strong{display:block;font-size:19px;letter-spacing:.05em;font-weight:500;margin:4px 0}.map-card em{display:block;font-style:normal;font-size:10px;color:#c4bfc4}.map-card>i{position:absolute;right:16px;bottom:17px;z-index:1;color:var(--gold)}.map-card .icon{width:17px}.lesson-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.lesson-card{min-height:160px;padding:15px;border:1px solid var(--line);border-radius:6px;display:flex;flex-direction:column;align-items:center;background:#ffffff03}.lesson-card:hover{background:#ffffff08}.lesson-glyph{color:#9d8bb8;margin-bottom:8px}.lesson-glyph>.icon{width:30px;height:30px}.lesson-card>small{font-size:8px;letter-spacing:.15em;color:#aaa2a5}.lesson-card>strong{font-size:15px;margin:5px 0 11px;color:#d4c4a8;font-weight:400}.lesson-card>span:last-child{font-size:9px;color:#a8a2ad}.lesson-card>span:last-child .icon{width:12px;height:12px}.lesson-card.learned{border-color:#90ab8e66}.lesson-card.learned .lesson-glyph,.lesson-card.learned>span:last-child{color:#a3c5ac}.notes-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.notes-list article{padding:20px;border:1px solid var(--line);border-radius:5px;background:#ffffff03}.notes-list article>span{font-size:9px;color:var(--gold);letter-spacing:.13em}.notes-list h3{font-size:14px;margin:8px 0;color:#d2cbc1}.notes-list article>p{font-size:13px;color:#e5c99c}.empty-state{padding:45px 20px;text-align:center;color:#b0a9b1;grid-column:1/-1}.empty-state>.icon{width:38px;height:38px;color:#ae9670;margin-bottom:15px}.empty-state>p{font-size:12px}.inventory-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:24px 0}.inventory-grid article{padding:23px 12px;background:#ffffff05;border:1px solid var(--line);border-radius:5px;text-align:center}.inventory-grid article>.icon{color:var(--gold);width:30px;height:30px}.inventory-grid h3{font-size:13px;margin-top:12px}.pet-card{display:flex;align-items:center;gap:20px;border-top:1px solid var(--line);padding:20px 0 0}.pet-card img{height:100px;width:100px;object-fit:contain}.pet-card small{font-size:10px;color:#b3a9ab}.pet-card h3{font-size:25px;color:var(--gold)}.history-list article{border-left:1px solid var(--line);padding:0 20px 24px;position:relative}.history-list article:before{content:"";position:absolute;left:-3px;top:10px;width:5px;height:5px;border-radius:50%;background:var(--gold-dark)}.history-list strong{font-size:11px;color:var(--gold);font-weight:500}.history-list p{font-size:14px;color:#d5ced0;line-height:1.95;margin-top:5px}.toggle-row{display:flex!important;justify-content:space-between;align-items:center;gap:20px;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.toggle-row small{display:block;font-size:9px;color:#a9a1aa}.toggle-row input{width:21px;height:21px;min-height:0;accent-color:var(--gold)}.guide-steps article{display:flex;gap:20px;margin-bottom:24px}.guide-steps article>b{font-family:Georgia,serif;font-size:28px;font-weight:400;line-height:1.4;color:var(--gold);opacity:.8}.guide-steps h3{font-size:16px;margin-bottom:5px}.guide-steps p{font-size:13px;color:#bfb8bc;line-height:1.9}.account-name{text-align:center;padding:15px 0 22px}.account-name>.icon{width:42px;height:42px;color:var(--gold)}.account-name h3{font-size:27px;margin-top:12px}.account-name p{font-size:12px;color:#bbb1b1}.modal-body>.muted{margin:15px 0}#toast{position:fixed;z-index:100;left:50%;bottom:28px;transform:translate(-50%,20px);background:#eee0c5;color:#262433;border:1px solid #ddc495;border-radius:5px;box-shadow:0 10px 50px #0006;max-width:90vw;padding:13px 23px;font-size:13px;line-height:1.8;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%,0)}.boot{height:100vh;display:flex;flex-direction:column;gap:22px;justify-content:center;align-items:center;text-align:center;padding:30px}.boot p{color:#c6b99f;font-size:14px}.boot-orbit{width:54px;height:54px;border:1px solid #d8b77733;border-top-color:#d8b777;border-radius:50%;animation:spin 1.8s linear infinite}
.teacher-mode{color-scheme:light;background:#f3f1ec;color:#2b2e3c}.teacher-mode #stage,.teacher-mode #atmosphere{display:none}.teacher-layout{display:flex;min-height:100vh}.teacher-sidebar{width:225px;position:fixed;left:0;top:0;bottom:0;background:#181d2b;color:#d5d2d2;padding:32px 20px;display:flex;flex-direction:column;border-right:1px solid #b79d6333}.teacher-brand{text-align:center;margin-bottom:43px}.teacher-brand>.icon{color:#e1bf84;display:block;margin:0 auto 12px;width:36px;height:36px}.teacher-brand>strong{font-size:19px;letter-spacing:.08em;font-weight:400;display:block;color:#ecd7ae}.teacher-brand>span{display:block;font-size:8px;color:#c0ad8c;letter-spacing:.22em;margin-top:4px}.sidebar-label{font-size:9px;letter-spacing:.1em;color:#8b8e9c;margin:0 14px 14px}.teacher-nav{display:flex;gap:12px;align-items:center;padding:13px 17px;min-height:48px;font-size:12px;width:100%;border-radius:5px;color:#b7b8c1;margin:3px 0;text-align:left}.teacher-nav .icon{width:18px;height:18px}.teacher-nav:hover{color:#efd39e;background:#ffffff07}.teacher-nav.active{background:#e5be7a12;color:#edce95;border:1px solid #b697622e}.teacher-sidebar-bottom{margin-top:auto;border-top:1px solid #e1bf841c;padding-top:15px}.teacher-main{margin-left:225px;padding:38px 38px 60px;flex:1;min-width:0}.teacher-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:33px;gap:20px}.teacher-top .eyebrow{font-size:8px;color:#93805d}.teacher-top h1{font-size:27px;letter-spacing:.05em;margin-top:8px}.teacher-main .button.outline{background:transparent;color:#6f6048;border:1px solid #c9bea8}.teacher-main .button.gold{color:#322d23;background:#e8d2a8;box-shadow:none;border-color:#d3b681}.teacher-main .muted{color:#83838a}.teacher-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:27px}.teacher-stats article{border:1px solid #dedbd3;background:#fff;border-radius:7px;padding:19px 23px}.teacher-stats article>span{font-size:11px;color:#777780}.teacher-stats strong{display:block;font-family:Georgia,serif;font-size:30px;font-weight:400;color:#574a34;line-height:1.6;margin-top:6px}.teacher-stats small{font-family:"Microsoft JhengHei",sans-serif;font-size:10px;margin-left:12px;color:#949196}.teacher-section{background:#fff;border:1px solid #dedbd3;border-radius:7px;padding:25px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.section-title h2{font-family:inherit;font-size:18px;font-weight:600;color:#333543}.section-title p{font-size:11px;line-height:1.9;color:#808087;margin-top:5px}.button-group{display:flex;gap:10px}.teacher-main .button{font-size:11px;min-height:40px;padding:8px 15px}.teacher-main .button .icon{width:15px;height:15px}.class-controls{background:#f7f6f2;border:1px solid #e6e2d9;border-radius:6px;padding:17px;display:flex;align-items:flex-end;gap:20px;margin-bottom:23px;flex-wrap:wrap}.class-controls label{font-size:10px;color:#747078;min-width:150px}.teacher-main input,.teacher-main select{color:#393b46;background:#fff;border:1px solid #d9d4c8;font-size:12px;min-height:40px}.teacher-main select option,.teacher-main select optgroup{color:#393b46;background:#fff}.class-code{flex:1;min-width:120px;align-self:center}.class-code small{display:block;font-size:9px;color:#8a8380}.class-code strong{font-family:Georgia,monospace;font-size:19px;color:#8e744a;font-weight:400;letter-spacing:.1em}.table-wrap{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:10px;font-weight:500;letter-spacing:.04em;color:#8a8486;border-bottom:1px solid #dfdbd4;padding:12px}td{font-size:12px;padding:17px 12px;border-bottom:1px solid #efede8;color:#555561}td>strong{font-weight:500;color:#393b47}td small{display:block;color:#8c8791;font-size:9px;margin-top:5px}td .icon{width:15px;height:15px}.teacher-main .gold-text{color:#98703b}.status-badge{display:inline-block;font-size:10px;border:1px solid #e7d9be;background:#faf5e9;color:#967949;padding:3px 9px;border-radius:4px}.status-badge.success{border-color:#c4dbcd;background:#eff7f1;color:#568366}.row-actions{display:flex;gap:6px}.row-actions>button{padding:7px 8px;color:#8a724e;font-size:10px;border:1px solid #e0d8cb;border-radius:4px;min-height:35px}.row-actions>button:hover{background:#f4eee0}.teacher-video-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.teacher-video-card{border:1px solid #e4dfd5;border-radius:6px;padding:20px;background:#fdfcf9}.teacher-video-card>div{display:flex;align-items:center;justify-content:space-between}.teacher-video-card>div>span:first-child{font-size:9px;color:#9a8b73}.teacher-video-card h3{font-size:18px;margin:14px 0 20px}.teacher-video-card label{color:#888087;font-size:10px}.teacher-video-card>.button{width:100%;margin-top:8px}.teacher-section .guide-steps h3{color:#3c3d48}.teacher-section .guide-steps p{color:#74727b}.teacher-section .guide-steps b{color:#ab8954}.answer-reference{border-top:1px solid #e5dfd5;padding-top:20px;margin-top:25px}.answer-reference>summary{font-size:13px;color:#8b7149;cursor:pointer;padding:10px 0}.answer-reference article{border-bottom:1px solid #e9e4db;padding:20px 0}.answer-reference article>span{font-size:10px;color:#9c855e}.answer-reference h3{font-size:15px;margin:8px 0}.answer-reference article p{font-size:12px;color:#83808a;margin-top:4px}.answer-reference .correct-answer{color:#508465}.teacher-mode .modal{color-scheme:dark;color:var(--cream)}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes portrait-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.home-main{padding-left:110px;padding-top:75px}.hero-copy h1{font-size:76px}.hero-copy h1>span{font-size:98px}.chapter-strip{margin-top:55px;max-width:1280px}.chapter-card{height:130px}.hero-description{font-size:16px}.portal-caption{top:420px;right:13%}.chapter-card-copy{top:36px}.chapter-number{top:36px}.home-footer{margin-left:215px}.game-main{padding:35px 60px}.dialogue-panel{left:60px;right:60px;bottom:65px;padding:35px 40px 24px;min-height:245px}.character-portrait{bottom:275px}.game-footnote{left:60px;right:60px;bottom:20px}}
@media(max-height:820px) and (min-width:1000px){.home-main{padding-top:34px}.chapter-eyebrow{margin-bottom:15px}.hero-copy h1{font-size:53px}.hero-copy h1>span{font-size:69px}.hero-rule{margin:13px 0 16px}.hero-actions{margin-top:20px}.hero-description{font-size:13px}.chapter-strip{margin-top:25px}.chapter-card{height:90px}.chapter-card-copy{top:20px}.chapter-number{top:20px}.home-footer{margin-top:18px}.portal-caption{top:300px}.rail-button{min-height:70px}.game-main{min-height:560px}.quiz-panel{top:145px;padding:24px 30px}.quiz-category{margin-top:14px}.quiz-panel h2{font-size:21px;margin-bottom:18px}.quiz-options .choice-button{min-height:50px}.ending-panel{top:130px;max-height:calc(100vh - 230px)}}
@media(max-width:1150px){.topbar{padding:0 28px;gap:15px}.brand{font-size:16px}.topnav{gap:20px}.top-controls{gap:12px}.home-main{padding-left:45px;padding-right:35px}.hero-copy h1{font-size:57px}.hero-copy h1>span{font-size:73px}.hero-copy{max-width:470px}.portal-caption{right:5%;top:365px}.home-footer{margin-left:150px;margin-right:35px}.chapter-card-copy{left:51px}.chapter-number{left:12px;font-size:24px}.chapter-card-copy strong{font-size:14px}.chapter-card-copy small{font-size:7px}.chapter-card-arrow{right:8px}.game-main{padding:23px 25px}.dialogue-panel{left:25px;right:25px;padding-left:25px;padding-right:25px}.resource-bar{gap:12px}.resource-bar small{display:none}.teacher-sidebar{width:190px;padding:28px 12px}.teacher-main{margin-left:190px;padding:27px 22px}.teacher-top h1{font-size:23px}.teacher-stats article{padding:15px}.section-title{align-items:flex-start}.teacher-section{padding:20px}.teacher-brand strong{font-size:16px}.teacher-stats{gap:12px}.teacher-stats small{margin-left:7px;font-size:9px}}
@media(max-width:850px){.topbar{height:75px;padding:0 22px}.topnav{display:none}.brand{font-size:17px}.brand small{font-size:6px}.brand-emblem{width:32px;height:40px}.brand-emblem .icon{width:24px}.top-controls{gap:12px}.top-controls .icon-button{height:36px;width:36px}.top-controls .text-button{font-size:12px}.rail{top:auto;bottom:0;left:0;width:100%;height:66px;flex-direction:row;justify-content:space-around;padding:0;border-top:1px solid var(--line);border-right:0;background:#111725f5;backdrop-filter:blur(10px)}.rail-button{min-height:62px;width:70px;gap:3px;font-size:8px}.rail-button .icon{width:20px;height:20px}.rail-button.active:before{left:20px;right:20px;top:0;bottom:auto;width:auto;height:2px}.rail-button i{right:9px;top:3px;width:13px;height:13px;line-height:13px;font-size:7px}.rail-bottom{margin:0}.rail-button.active:after{inset:0}.home-main{margin-left:0;padding:45px 35px 0;min-height:auto}.hero-copy{max-width:480px}.hero-copy h1{font-size:58px}.hero-copy h1>span{font-size:77px}.hero-description{font-size:14px}.portal-caption{right:4%;top:360px;opacity:.7}.portal-caption>span:last-child{font-size:9px}.chapter-strip{margin-top:45px}.chapter-row{gap:12px}.chapter-card{height:100px}.chapter-card-copy{left:45px;top:26px}.chapter-number{font-size:22px;left:11px;top:28px}.chapter-card-copy strong{font-size:13px}.home-footer{margin:25px 35px 78px;font-size:8px}.home-footer>span:last-child{display:none}.game-main{margin-left:0;height:calc(100vh - 141px);padding:22px;min-height:610px}.scene-number{font-size:39px}.scene-chapter{gap:12px}.scene-chapter h2{font-size:20px}.scene-chapter .eyebrow{font-size:8px}.scene-chapter .eyebrow>span{display:none}.scene-chapter .eyebrow{max-width:320px}.resource-bar{gap:12px}.resource-bar b{font-size:19px}.resource-bar .icon{width:17px}.dialogue-panel{left:22px;right:22px;bottom:43px;padding:28px 24px 17px}.dialogue-body{max-height:30vh}.character-portrait{bottom:235px;max-width:67%;height:60%;right:1%}.game-footnote{left:22px;right:22px;bottom:6px}.game-footnote>span{display:none}.quiz-panel{top:152px;left:22px;right:22px;padding:26px}.failure-panel{inset:75px 0 66px}.ending-panel{left:22px;right:22px;top:140px;max-height:calc(100vh - 300px)}.teacher-sidebar{width:170px}.teacher-main{margin-left:170px;padding:24px 18px}.teacher-stats{grid-template-columns:repeat(2,1fr)}.teacher-top{align-items:flex-start}.teacher-top h1{font-size:21px}.teacher-top>.button{font-size:0;min-width:40px;padding:10px}.teacher-top>.button .icon{width:17px}.section-title{display:block}.button-group{margin-top:15px}.teacher-video-grid{grid-template-columns:1fr}}
@media(max-width:550px){.home-mode #atmosphere{background:linear-gradient(90deg,rgba(10,14,27,.92),rgba(12,16,30,.5)),linear-gradient(0deg,#111522 0%,transparent 65%)}.topbar{padding:0 18px;height:70px}.brand{font-size:15px;gap:9px}.brand small{letter-spacing:.15em}.top-controls{gap:6px}.top-controls .text-button{font-size:11px}.top-controls .text-button>.icon{display:none}.top-controls .icon-button{border:0}.profile-button>span:last-child{display:none}.avatar-letter{height:30px;width:30px;font-size:11px}.home-main{padding:32px 25px 0}.chapter-eyebrow{font-size:10px;margin-bottom:22px;letter-spacing:.07em}.hero-en{font-size:7px;letter-spacing:.18em;margin-bottom:16px}.hero-copy h1{font-size:48px;letter-spacing:.1em}.hero-copy h1>span{font-size:59px;letter-spacing:.04em}.hero-rule{margin:20px 0}.hero-rule>span{font-size:7px;letter-spacing:.22em}.hero-description{font-size:12px;line-height:2.1}.mobile-break{display:block}.hero-actions{margin-top:25px;gap:15px}.button.large{min-height:51px;font-size:12px;padding:12px 20px}.round-link{width:42px;height:42px}.hero-caption{font-size:8px;letter-spacing:.08em;max-width:290px}.portal-caption{display:none}.chapter-strip{margin-top:35px;padding-top:15px}.strip-heading{font-size:11px}.strip-heading>button{font-size:10px}.chapter-row{grid-template-columns:1fr}.chapter-card{height:85px}.chapter-card-copy{left:65px;top:20px}.chapter-card-copy strong{font-size:16px}.chapter-card-copy small{font-size:8px}.chapter-number{left:18px;font-size:29px;top:17px}.chapter-card-arrow{right:20px;bottom:30px}.chapter-row>.chapter-card:nth-child(n+2){display:none}.home-footer{margin:20px 25px 86px;font-size:8px}.rail{height:66px}.rail-button{width:60px;min-height:60px;font-size:7px}.rail-button .icon{height:19px;width:19px}.game-main{padding:18px 16px;height:calc(100dvh - 136px);min-height:620px}.scene-head{gap:5px;align-items:flex-start}.scene-chapter{gap:9px}.scene-number{font-size:31px}.scene-chapter h2{font-size:17px}.scene-chapter .eyebrow{font-size:7px;letter-spacing:.06em;max-width:180px}.scene-chapter .eyebrow{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resource-bar{gap:7px;padding-top:5px}.resource-bar>span{gap:3px}.resource-bar .icon{width:13px;height:13px}.resource-bar b{font-size:14px}.scene-progress{font-size:8px;gap:6px;margin-top:11px}.scene-progress #save-status{font-size:8px}.scene-progress>div{width:70px}.character-portrait{right:-2%;max-width:85%;height:54%;bottom:265px}.dialogue-panel{left:14px;right:14px;bottom:42px;min-height:240px;padding:29px 19px 17px}.speaker-label{font-size:12px;padding:5px 13px;left:15px;top:-18px;min-height:33px}.dialogue-text{font-size:var(--dialogue-font);line-height:1.85}.dialogue-body{max-height:31vh}.dialogue-bottom{margin-top:17px}.dialogue-bottom .button{min-width:96px;font-size:12px;min-height:42px;padding:9px 15px}.keyboard-hint{font-size:8px}kbd{font-size:8px;padding:2px 4px}.choices{grid-template-columns:1fr;gap:9px;margin-top:14px}.choice-button{font-size:13px;min-height:49px;padding:10px 11px;gap:9px}.choice-button>span{height:23px;width:23px;font-size:11px}.choice-hint{font-size:9px;margin-top:12px}.game-footnote{left:17px;right:17px;font-size:9px;bottom:5px}.game-footnote button{font-size:9px}.lesson-panel{padding:28px 17px 17px}.lesson-summary{flex-wrap:wrap;gap:12px}.lesson-orb{height:48px;width:48px}.lesson-orb .icon{width:26px}.lesson-summary h2{font-size:22px}.lesson-summary .eyebrow{font-size:7px}.lesson-summary p:not(.eyebrow){font-size:11px}.lesson-summary>.button{margin-left:60px;min-height:37px;font-size:11px;margin-top:-5px}.redeem-form{margin-top:14px;padding-top:12px}.redeem-form>label{font-size:10px}.redeem-form>div{gap:7px}.redeem-form input{min-width:0;font-size:13px;letter-spacing:.08em}.redeem-form .button{font-size:11px;padding:8px 12px;gap:5px}.redeem-form .button .icon{width:15px}.redeem-form>small{font-size:8px}.lesson-done{flex-wrap:wrap;font-size:11px}.lesson-done>.button{margin-left:0;width:100%;margin-top:7px}.quiz-panel{top:125px;left:14px;right:14px;padding:20px;max-height:calc(100% - 168px);overflow:auto}.quiz-heading{display:block}.quiz-heading>.eyebrow{font-size:7px;margin-bottom:5px}.quiz-heading>span{font-size:10px}.quiz-dots{margin:12px 0;gap:4px}.quiz-category{font-size:10px;margin-top:14px}.quiz-panel h2{font-size:18px;line-height:1.7;margin-bottom:16px}.quiz-options{grid-template-columns:1fr;gap:9px}.quiz-footnote{font-size:8px;line-height:1.8;margin-top:17px}.failure-panel{inset:70px 0 66px;padding:25px}.failure-panel h2{font-size:26px;letter-spacing:.06em}.failure-panel>p:not(.eyebrow){font-size:12px}.failure-panel>.eyebrow{font-size:8px}.chapter-complete h2{font-size:22px}.chapter-complete>p:not(.eyebrow){font-size:11px}.ending-panel{left:14px;right:14px;top:125px;max-height:calc(100dvh - 300px);padding:25px 20px}.ending-panel h2{font-size:24px}.ending-panel>p:not(.eyebrow){font-size:11px}.memory-grid{grid-template-columns:1fr;gap:9px}.memory-grid>div{padding:11px}.ending-panel form>.button{width:100%;margin-right:0}.modal-backdrop{padding:16px}.modal{padding:29px 22px;max-height:90dvh}.modal>h2{font-size:22px;margin-bottom:18px;line-height:1.6}.modal-close{right:13px;top:13px;width:30px;height:30px}.modal>.eyebrow{font-size:7px}.form-intro{font-size:12px}.form-tabs>button{font-size:11px}.map-grid{grid-template-columns:1fr;gap:12px}.map-card{height:132px}.map-card strong{font-size:18px}.lesson-grid{grid-template-columns:repeat(2,1fr);gap:10px}.lesson-card{min-height:150px;padding:12px}.lesson-card>strong{font-size:13px}.notes-list{grid-template-columns:1fr}.inventory-grid h3{font-size:12px}.credential-card strong{font-size:26px}.video-placeholder{height:230px}.guide-steps article{gap:14px}.guide-steps article>b{font-size:25px}.guide-steps h3{font-size:15px}.guide-steps p{font-size:12px}.teacher-layout{display:block}.teacher-sidebar{position:static;width:100%;padding:14px 16px;display:flex;flex-direction:row;flex-wrap:wrap;gap:6px;align-items:center;border-bottom:1px solid #b79d6333}.teacher-brand{margin:0;width:100%;display:flex;align-items:center;gap:8px;text-align:left}.teacher-brand>.icon{width:23px;height:23px;margin:0 0 7px}.teacher-brand>strong{font-size:15px;flex:1}.teacher-brand>span{font-size:7px;letter-spacing:.13em;margin:0}.sidebar-label{display:none}.teacher-nav{width:auto;font-size:10px;gap:5px;min-height:36px;padding:7px 9px;margin:0}.teacher-nav .icon{width:15px;height:15px}.teacher-sidebar-bottom{display:flex;margin:5px 0 0;padding:6px 0 0;border-top:1px solid #ffffff0e;width:100%}.teacher-main{margin:0;padding:25px 15px 40px}.teacher-top{gap:10px;margin-bottom:23px}.teacher-top h1{font-size:20px;line-height:1.6}.teacher-top .eyebrow{font-size:6px}.teacher-stats{gap:10px;margin-bottom:20px}.teacher-stats article{padding:13px 15px}.teacher-stats strong{font-size:25px}.teacher-stats article>span{font-size:9px}.teacher-stats small{font-size:8px}.teacher-section{padding:18px 15px}.section-title h2{font-size:17px}.section-title p{font-size:10px}.class-controls{padding:13px;gap:14px}.class-controls label{width:100%;min-width:0}.class-code{flex:none;width:100%}.class-controls>.button{width:100%}.teacher-video-card{padding:17px}.teacher-video-card h3{font-size:17px}.teacher-main .guide-steps p{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{body{background:#fff!important;color:#222!important}#stage,#atmosphere,.topbar,.rail,.scene-head,.scene-progress,.game-footnote,.character-portrait,#modal-root,#toast,.ending-panel form button{display:none!important}.game-main{height:auto!important;margin:0;padding:0}.ending-panel{position:static;max-height:none;overflow:visible;border:0;background:#fff;padding:25px;color:#222}.ending-panel p,.ending-panel h2,.ending-panel label{color:#222!important}.memory-grid>div{border-color:#ccc}.memory-grid strong,.memory-grid small{color:#333}.ending-panel textarea{color:#222;border:1px solid #ccc;background:#fff}.completion-mark{color:#99713b}.ending-panel .eyebrow{color:#99713b}}
/* Keep teacher entry reachable on narrow screens and portraits inside the viewport. */
.mobile-teacher{display:none}
@media(max-width:850px){.top-controls .mobile-teacher{display:inline-grid}}
@media(max-width:550px){.character-portrait{right:0}.top-controls{gap:2px}.topbar{gap:8px;padding:0 14px}.brand{font-size:14px;gap:7px}.brand small{font-size:5px}}

/* ===== 手機與平板補強（2026-10 手機實測後新增）===== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,a,select{touch-action:manipulation}
/* iOS Safari 輸入框字小於 16px 會自動放大畫面，統一用 16px */
@media(max-width:850px){
  input,select,textarea,.redeem-form input{font-size:16px!important}
  .brand{min-height:44px}
  .top-controls .icon-button{width:44px;height:44px}
  .modal-close{width:40px;height:40px;right:10px;top:10px}
  .form-tabs>button,.teacher-nav{min-height:44px}
  .toggle-row input[type=checkbox]{width:26px;height:26px}
  body.game-mode{padding-bottom:66px} /* 底部工具列固定在畫面下方，捲到底時不要蓋住內容 */
  .game-footnote{bottom:0}
  .game-footnote button{min-height:44px;padding:0 8px;display:inline-flex;align-items:center;gap:4px;font-size:12px}
  .dialogue-panel{bottom:48px}
  .lesson-summary{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px 14px}
  .lesson-summary>.button{grid-column:1/-1;margin:0;min-height:44px;font-size:13px}
  .lesson-summary p:not(.eyebrow){font-size:13px;line-height:1.7}
  .lesson-summary .eyebrow{font-size:9px}
  .redeem-form>label{font-size:13px}
  .redeem-form input{min-height:46px}
  .redeem-form .button{min-height:46px;font-size:13px}
  .redeem-form>small{font-size:11px;display:block;margin-top:8px}
  .row-actions>button{min-height:44px;font-size:13px;padding:8px 12px}
  .rail-button{font-size:10px}
  .choice-button{font-size:15px;min-height:52px}
  .dialogue-bottom{justify-content:flex-end}
}
@media(max-width:550px){
  .brand small{font-size:7px;letter-spacing:.1em}
  .scene-progress,.scene-progress #save-status{font-size:11px}
  .choice-hint{font-size:12px}
  .quiz-footnote{font-size:11px}
  .quiz-heading>span{font-size:13px}
  .quiz-category{font-size:12px}
  .quiz-panel h2{font-size:19px}
  .form-intro{font-size:14px}
  .form-tabs>button{font-size:14px}
  .hero-description{font-size:14px}
  .hero-caption{font-size:11px}
  .home-footer{font-size:10px}
  .chapter-card-copy small{font-size:10px}
  .scene-chapter .eyebrow,.modal>.eyebrow,.quiz-heading>.eyebrow{font-size:9px}
  .lesson-card>strong{font-size:14px}
  .inventory-grid h3{font-size:14px}
  .guide-steps p{font-size:13px}
  .modal-body .muted,.muted{font-size:13px}
}
/* 觸控裝置沒有空白鍵，隱藏鍵盤提示 */
@media(hover:none){.keyboard-hint{display:none}}
/* 老師工作室：學徒表格在手機改成一人一張卡片，不必左右捲動才按得到按鈕 */
@media(max-width:700px){
  .teacher-section .table-wrap:has(.row-actions){overflow:visible}
  table:has(.row-actions){white-space:normal}
  table:has(.row-actions) thead{display:none}
  table:has(.row-actions),table:has(.row-actions) tbody{display:block}
  table:has(.row-actions) tr{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px 12px;padding:16px 4px;border-bottom:1px solid #e0d8cb;align-items:start}
  table:has(.row-actions) td{display:block;padding:0;border:0}
  table:has(.row-actions) td:first-child,table:has(.row-actions) td:last-child{grid-column:1/-1}
  .row-actions{flex-wrap:wrap}
  .row-actions>button{flex:1 1 auto}
}
/* 新式瀏覽器：用動態視窗高度，避開 iOS Safari 位址列伸縮造成的下方被蓋住 */
@supports(height:100dvh){
  #app,.boot,.teacher-layout{min-height:100dvh}
  .boot{height:100dvh}
  .modal{max-height:90dvh}
  @media(max-width:850px){.dialogue-body{max-height:31dvh}.game-main{height:calc(100dvh - 141px)}.ending-panel{max-height:calc(100dvh - 300px)}}
  @media(max-width:550px){.game-main{height:calc(100dvh - 136px)}}
}
/* 手機直拿時，故事畫面不再強制 610px 最小高度：原本在位址列還在的 iPhone Safari 上，「繼續」鈕會被底部工具列蓋住，使用者得自己發現要往下捲 */
@media(max-width:850px) and (min-height:560px){.game-main{min-height:0}}
/* 十題命運之問：手機上四個選項要在一屏內看完，不必在小視窗裡再捲動 */
@media(max-width:550px){
  .quiz-panel{top:96px;padding:14px 16px;max-height:calc(100% - 142px)}
  .quiz-heading>.eyebrow{display:none}
  .quiz-dots{margin:8px 0}
  .quiz-category{margin-top:8px}
  .quiz-panel h2{font-size:17px;line-height:1.55;margin-bottom:10px}
  .quiz-options{gap:7px}
  .quiz-options .choice-button{min-height:46px;padding:7px 10px;font-size:14px}
  .quiz-footnote{margin-top:10px}
}
@media(max-width:850px){
  .profile-button{min-width:44px;min-height:44px;justify-content:center}
  .round-link{width:44px;height:44px}
  .strip-heading>button{min-height:44px;padding:0 6px}
}
@media(max-width:550px) and (max-height:700px){
  .quiz-panel{top:90px;max-height:calc(100% - 134px);padding:12px 14px}
  .quiz-category{display:none}
  .quiz-panel h2{font-size:16px;margin-bottom:8px}
  .quiz-options .choice-button{min-height:42px;padding:5px 9px}
}
/* 手機：面板（含突出的說話者標籤）頂端不可蓋住「本章探索」進度列 */
@media(max-width:850px){
  .lesson-panel{padding:26px 16px 14px}
  .lesson-summary p:not(.eyebrow){display:none}
  .lesson-summary{gap:8px 12px}
  .lesson-panel .lesson-orb{width:44px;height:44px}
  .redeem-form{margin-top:10px;padding-top:10px}
  .redeem-form>small{margin-top:6px}
}
