@font-face{font-family:AdventureTC;src:url('assets/NotoSansTC.otf') format('opentype');font-display:swap;font-weight:100 900}
:root{--ink:#173e51;--blue:#087f9b;--blue-dark:#075f78;--yellow:#ffda68;--cream:#fffcf1;--line:#d4e7e5;--green:#176a4d;--shadow:0 12px 40px #1845570c}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--cream);font-family:AdventureTC,'Noto Sans TC','PingFang TC','Microsoft JhengHei',sans-serif;line-height:1.7}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.48}button:focus-visible,input:focus-visible{outline:3px solid #df791a;outline-offset:4px}[hidden]{display:none!important}
.topbar{height:90px;padding:0 max(24px,calc((100vw - 1220px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fffdf8;gap:16px}.brand{border:0;background:none;text-align:left;display:flex;align-items:center;gap:12px;color:var(--ink);font-size:19px;font-weight:800;padding:0}.brand-star{font-size:32px;color:var(--blue)}.brand small{display:block;font-size:11px;letter-spacing:1px;font-weight:400;color:#637b80}nav{display:flex;gap:8px}.icon-button{border:1px solid var(--line);border-radius:14px;background:white;color:var(--ink);padding:10px 16px;font-weight:700;font-size:14px;min-height:46px}
main{max-width:1180px;margin:32px auto 40px;padding:0 24px;min-height:calc(100vh - 230px)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(32px,4.5vw,62px);line-height:1.22;letter-spacing:-1px;margin-bottom:20px}h2{font-size:clamp(26px,3vw,36px);line-height:1.4;margin-bottom:14px}h3{font-size:20px;margin-bottom:8px}.eyebrow{font-size:12px;color:var(--blue);letter-spacing:3px;font-weight:800;display:block;margin-bottom:14px}.muted,.small{color:#58717b}.small{font-size:13px}.primary,.secondary,.quiet{border-radius:14px;padding:13px 24px;min-height:50px;font-weight:700;font-size:17px;border:1px solid transparent}.primary{background:var(--blue);color:white;box-shadow:0 5px 0 var(--blue-dark)}.primary:hover{background:var(--blue-dark)}.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.quiet{background:#f0f6f3;color:var(--ink);border-color:var(--line)}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:22px}
.cover{position:relative;min-height:610px;border-radius:28px;overflow:hidden;border:1px solid #e9dec5;background:#eee4c9;box-shadow:var(--shadow)}.cover-art{position:absolute;width:100%;height:100%;object-fit:cover;inset:0}.cover-copy{position:relative;z-index:1;padding:64px 50px;width:53%;min-height:610px;background:linear-gradient(90deg,#fff8e8ef 0%,#fff8e8b0 60%,#fff8e800 100%);display:flex;flex-direction:column;justify-content:center}.cover-copy h1 span{color:var(--blue)}.cover-copy p{font-size:18px;max-width:350px}.cover-copy .primary{font-size:22px;letter-spacing:3px;padding:15px 42px;align-self:flex-start}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 18px}.chip{font-size:12px;border:1px solid #ddded0;border-radius:30px;padding:5px 13px;background:#ffffffb5}.mini-progress{display:flex;gap:12px;align-items:center;margin-top:26px;font-size:13px}.stars{color:#b67d06;letter-spacing:5px;font-size:23px}.beneath{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:24px}.feature{padding:24px;background:#fff;border:1px solid var(--line);border-radius:20px}.feature span{display:block;color:var(--blue);font-size:12px;margin-bottom:8px;letter-spacing:2px}.feature p{font-size:14px;margin-bottom:0}
.mission{display:grid;grid-template-columns:1.15fr 1fr;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow)}.mission-image{width:100%;height:100%;min-height:430px;object-fit:cover;object-position:65% center}.mission-copy{padding:48px 36px;display:flex;flex-direction:column;justify-content:center}.mission-copy p{font-size:17px}.goal{border-left:3px solid var(--yellow);padding-left:16px;font-size:15px;margin:10px 0}.passage{margin-top:24px;border:1px solid var(--line);border-radius:22px;background:#fff;padding:28px}.passage blockquote{margin:12px 0 20px;font-size:23px;line-height:2.1}
.game-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:24px}.sidebar{background:#eaf5f2;border:1px solid var(--line);border-radius:22px;overflow:hidden;align-self:start}.sidebar img{width:100%;height:174px;object-fit:cover;object-position:right}.sidebar-copy{padding:22px}.sidebar .eyebrow{font-size:10px;letter-spacing:2px}.sidebar h2{font-size:23px}.side-stars{font-size:26px;color:#bd880d}.side-detail{font-size:13px;margin-bottom:12px}.sidebar .secondary{width:100%;font-size:14px;padding:10px 12px}.question-panel{border:1px solid var(--line);background:#fff;border-radius:24px;padding:30px;box-shadow:var(--shadow);min-height:470px}.question-top{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:12px;gap:8px}.progress{height:7px;background:#e9f1ee;border-radius:20px;overflow:hidden;margin-bottom:26px}.progress-fill{background:var(--blue);height:100%;transition:width .3s}.question-prompt{font-size:23px;line-height:1.9;margin-bottom:18px;font-weight:700}.source-label{font-size:11px;color:#657d84;margin-top:8px}.target-word{font-size:44px;font-weight:800;color:var(--blue);text-align:center;border-radius:18px;background:#eff8f4;padding:10px;margin:16px 0 24px;letter-spacing:5px}.listen-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.voice-notice{background:#fff7df;padding:12px 16px;border-radius:12px;font-size:14px;margin-bottom:15px}.parent-reader summary{cursor:pointer;font-size:14px;color:#596d75}.parent-reader p{background:#f5f7f6;padding:12px;margin:8px 0;font-size:24px}
.slots{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:22px 0;min-height:65px}.slot{width:66px;height:68px;border:2px dashed #a7cece;border-radius:12px;background:#f6fbf9;color:var(--ink);font-size:34px;font-weight:700}.slot.filled{border-style:solid;background:#fff4cc;border-color:#e6c05e}.slots.order .slot{width:auto;min-width:125px;font-size:23px;padding:0 12px}.cards{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:18px auto}.tile{min-width:65px;height:67px;border:1px solid #b8d8d9;box-shadow:0 4px 0 #d0e3e3;background:white;color:var(--ink);border-radius:13px;font-size:33px;font-weight:700;padding:0 16px}.tile.word-tile{font-size:23px;min-width:110px}.tile.used{visibility:hidden}.choice-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0}.choice{background:#f4f9f7;border:2px solid #d8e8e4;border-radius:16px;font-size:23px;padding:18px 8px;min-height:80px;color:var(--ink);font-weight:700}.choice:hover{border-color:var(--blue)}.feedback{border-radius:14px;padding:14px 18px;margin-top:20px;background:#edf5f1;font-size:16px;min-height:57px}.feedback.success{background:#e6f6eb;color:var(--green);border:1px solid #b9ddc7}.feedback.retry{background:#fff5df;border:1px solid #edce95;color:#765120}.question-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:24px}.question-actions .quiet{font-size:14px;padding:10px 16px;min-height:46px}.memory-step{text-align:center}.memory-step .target-word{margin-top:22px}.tip-note{font-size:13px;color:#597079;text-align:center}.question-panel.correct{border-color:#a0d4b8}.next-area{text-align:center;margin-top:20px}
.celebrate{position:relative;background:linear-gradient(135deg,#e6f5f2,#fff8dd);border:1px solid var(--line);border-radius:26px;overflow:hidden;padding:38px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:30px;min-height:540px}.celebrate img{width:100%;max-height:420px;object-fit:contain;animation:pop .8s ease-out}.celebrate h1{font-size:44px}.celebrate .score{font-size:19px}.confetti{position:absolute;width:9px;height:17px;border-radius:2px;top:-30px;animation:fall 3s ease-in forwards;pointer-events:none}.certificate-form{margin-top:20px;display:flex;gap:12px;flex-wrap:wrap}.certificate-form label{width:100%;font-size:14px}.certificate-form input{padding:13px;border:1px solid #adc9cb;border-radius:12px;width:220px;max-width:100%;font-size:19px}.review-box{margin-top:24px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:20px}.review-words{display:flex;flex-wrap:wrap;gap:8px}.review-word{padding:6px 12px;background:#f2f7f4;border-radius:9px;font-size:16px}
.audio-menu{position:fixed;right:max(24px,calc((100vw - 1180px)/2));top:78px;z-index:100;background:#fff;border:1px solid var(--line);box-shadow:0 12px 50px #17495726;border-radius:18px;padding:22px;width:280px}.audio-menu label{display:flex;justify-content:space-between;font-size:15px}.audio-menu input{width:100%;margin:20px 0;accent-color:var(--blue)}.audio-menu button{width:100%;font-size:15px}.audio-menu p{margin:12px 0 0}footer{border-top:1px solid var(--line);padding:20px 24px;display:flex;justify-content:space-between;gap:12px;color:#64777e;font-size:12px;max-width:1180px;margin:auto}dialog{border:1px solid var(--line);border-radius:24px;width:640px;max-width:calc(100vw - 28px);padding:28px;color:var(--ink)}dialog::backdrop{background:#173e516b}.dialog-top{display:flex;justify-content:space-between;align-items:start;gap:15px}.map-row{display:flex;align-items:center;width:100%;gap:18px;text-align:left;border:1px solid var(--line);border-radius:15px;background:#f8fbf8;padding:16px;margin:10px 0;color:var(--ink)}.map-number{width:40px;height:40px;background:#e3f2ee;border-radius:12px;display:grid;place-items:center;font-size:22px;color:var(--blue)}.map-row.done .map-number{background:var(--yellow);color:#785400}.map-row .map-text{flex:1}.map-text small{display:block;font-size:12px;color:#617980}.map-row strong{font-size:17px}.dialog-note{font-size:12px;margin:16px 0 0;color:#637b80}
@keyframes pop{0%{transform:scale(.7);opacity:0}70%{transform:scale(1.04)}100%{transform:scale(1);opacity:1}}@keyframes fall{to{transform:translateY(630px) rotate(650deg);opacity:0}}
@media(max-width:800px){.topbar{height:78px;padding:0 18px}.brand{font-size:16px;gap:8px}.brand small{font-size:9px;letter-spacing:0}.brand-star{font-size:26px}main{padding:0 18px;margin-top:20px}.cover{min-height:540px}.cover-copy{padding:36px 28px;width:60%;min-height:540px}.cover-copy h1{font-size:41px}.cover-copy p{font-size:16px}.cover-art{object-position:64% center}.beneath{gap:12px}.feature{padding:18px}.mission-copy{padding:28px 24px}.mission-image{min-height:360px}.game-layout{grid-template-columns:1fr}.sidebar{display:flex;align-items:center}.sidebar img{width:130px;height:140px}.sidebar-copy{padding:14px 18px;flex:1}.sidebar h2{font-size:20px;margin:0}.sidebar .eyebrow{margin-bottom:2px}.side-detail{margin:2px 0}.sidebar .secondary{display:none}.side-stars{font-size:18px}.question-panel{padding:24px}.celebrate{padding:28px;min-height:440px}.celebrate h1{font-size:33px}.celebrate img{max-height:310px}footer{flex-direction:column}}
@media(max-width:520px){.topbar{padding:0 14px;gap:7px}.brand small{display:none}.brand-star{font-size:24px}.brand{font-size:14px}.icon-button{padding:9px 11px;font-size:12px;min-height:44px}nav{gap:6px}main{padding:0 14px;margin-top:16px}.cover{min-height:640px;border-radius:22px;display:flex;flex-direction:column;background:#fff6e2}.cover-art{position:relative;inset:auto;order:1;height:255px;object-position:right;object-fit:cover}.cover-copy{order:2;padding:25px 24px 28px;width:100%;min-height:0;background:transparent}.cover-copy h1{font-size:37px;margin-bottom:12px}.cover-copy p{font-size:15px;margin-bottom:5px;max-width:none}.cover-copy .primary{font-size:21px;padding:12px 35px}.chips{margin:14px 0}.chip{font-size:11px}.mini-progress{margin-top:20px}.beneath{grid-template-columns:1fr;gap:10px}.feature{padding:16px 19px}.feature h3{font-size:17px;margin-bottom:3px}.feature span{margin-bottom:3px}.mission{grid-template-columns:1fr}.mission-image{min-height:0;height:220px;object-position:right}.mission-copy{padding:24px}.mission-copy p{font-size:16px}.passage{padding:22px}.passage blockquote{font-size:21px}.question-panel{padding:20px 17px;border-radius:19px}.question-prompt{font-size:21px;line-height:1.85}.sidebar img{width:108px;height:125px}.sidebar-copy{padding:12px}.sidebar h2{font-size:18px}.side-detail{font-size:11px}.target-word{font-size:35px;letter-spacing:2px}.tile{min-width:59px;height:62px;font-size:30px;padding:0 12px}.slot{width:59px;height:62px;font-size:30px}.slots{gap:6px}.cards{gap:9px}.choice-options{gap:8px}.choice{font-size:20px;padding:14px 4px;min-height:73px;word-break:break-all}.slots.order{flex-direction:column}.slots.order .slot{width:100%;height:55px}.tile.word-tile{font-size:20px;min-width:90px}.question-actions{gap:8px}.question-actions .primary{width:100%}.celebrate{grid-template-columns:1fr;gap:14px;padding:24px;text-align:center}.celebrate img{max-height:250px;grid-row:1}.celebrate h1{font-size:32px}.celebrate .actions,.certificate-form{justify-content:center}.certificate-form input{width:100%}.audio-menu{right:14px;top:70px;width:260px}.map-row{gap:12px;padding:13px}.map-text strong{font-size:16px}dialog{padding:22px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.confetti{display:none}}
