@font-face{font-family:DotGothic16;src:url(/assets/dotgothic16-STJS9d-a.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Pixelify Sans;src:url(/assets/pixelify-sans-D76H3Gp_.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--dg-blue: #2b3f8c;--dg-blue-light: #4a63c4;--dg-gold: #ffd35c;--dg-pink: #ff8fb6;--card-bg: rgba(255, 255, 255, .95);--font-pixel: "DotGothic16", "Pixelify Sans", "PingFang TC", "Microsoft JhengHei", sans-serif;--font-ui: "Segoe UI", "PingFang TC", "Microsoft JhengHei", sans-serif}#objective-guide{position:fixed;right:18px;top:208px;z-index:12;display:flex;align-items:center;gap:9px;max-width:250px;padding:9px 11px;border:1px solid rgba(255,255,255,.5);border-radius:14px;color:#202852;background:#ffffffe6;box-shadow:0 6px 22px #0e143733;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto}#objective-guide.hidden{display:none}#objective-arrow{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#fff;background:#e34f83;font-size:23px;transition:transform .25s}#objective-guide span:nth-child(2){display:flex;flex-direction:column;min-width:0}#objective-name{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#objective-distance{font-size:11px;color:#66709c}#hint-btn{border:0;border-radius:10px;padding:7px;background:#fff2b5;cursor:pointer}#hint-btn.attention{animation:hint-pulse .9s infinite alternate}@keyframes hint-pulse{to{transform:scale(1.18);box-shadow:0 0 0 6px #ffd35c52}}#tutorial-card{position:fixed;left:50%;bottom:22px;z-index:18;transform:translate(-50%);width:min(520px,calc(100vw - 36px));display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"step title skip" "step text skip";align-items:center;gap:2px 12px;padding:13px 15px;border-radius:16px;color:#fff;background:#1c234ff0;box-shadow:0 10px 30px #00000047;pointer-events:auto}#tutorial-card.hidden{display:none}#tutorial-progress{grid-area:step;padding:8px;border-radius:10px;background:#e34f83;font-weight:800}#tutorial-title{grid-area:title}#tutorial-text{grid-area:text;color:#dce2ff}#tutorial-skip{grid-area:skip;border:0;border-radius:9px;padding:8px;color:#26305d;background:#fff}.settings-card{width:min(420px,calc(100vw - 32px));padding:26px;border-radius:22px;max-height:min(720px,calc(100vh - 24px));overflow-y:auto;color:#26305d;background:#fffffff7;box-shadow:0 18px 55px #0000004d}.settings-card h2{margin:0 0 18px;text-align:center}.settings-card h2 small{font-size:14px;color:#737da6}.privacy-note{display:block;color:#5f6788;line-height:1.4;margin:-4px 0 8px}.mastery-summary{text-align:left;background:#eef1fb;border-radius:12px;padding:10px 12px}.mastery-summary h3{color:var(--dg-blue);font-size:14px;margin-bottom:5px}.mastery-row{color:#3f4665;font-size:12px;line-height:1.55}body[data-text-size=large] .start-card,body[data-text-size=large] .settings-card,body[data-text-size=large] .quiz-card,body[data-text-size=large] .result-card{zoom:1.12}body[data-text-size=large] #hud-top-left,body[data-text-size=large] #objective-guide,body[data-text-size=large] #interact-prompt{zoom:1.1}.settings-card label{display:block;margin:12px 0;padding:12px;border-radius:12px;background:#f0f3ff}.settings-card input{width:20px;height:20px;vertical-align:middle}.settings-card input[type=range]{width:100%;height:auto}.settings-card select{float:right;max-width:52%;padding:4px;border:1px solid #aab3da;border-radius:7px}.secondary-btn{width:100%;margin:7px 0 12px;padding:11px;border:1px solid #aab3da;border-radius:12px;color:#34406f;background:#fff;font-weight:700;cursor:pointer}body.reduced-motion *,body.reduced-motion *:before,body.reduced-motion *:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:4px solid #ffd35c;outline-offset:3px;box-shadow:0 0 0 7px #264396bf}@media(max-width:700px){#objective-guide{top:10px;right:8px;max-width:200px;padding:6px 8px}#objective-arrow{width:28px;height:28px;font-size:18px}#objective-name{max-width:105px}#tutorial-card{bottom:8px;width:min(470px,calc(100vw - 130px));left:calc(50% + 35px);padding:8px 10px}}html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none;font-family:var(--font-ui);background:#0d1030;touch-action:none;-webkit-user-select:none;user-select:none}.pixel-zh,.start-card h1,.logo-badge,.big-btn,.diff-btn,.hud-pill,#toast,#interact-prompt,#quest-banner,#stamp-btn,#album-btn,.cat-badge,.result-card h1,.result-card h2,.album-card h2,.stamp-card h2,.settings-card h2,.start-leaderboard h3,.stamp-slot b,#objective-name,#tutorial-title,#quiz-progress,#quiz-question,#chest-result-title,#victory-title,.polaroid figcaption{font-family:var(--font-pixel);font-synthesis:none;letter-spacing:.05em}#game-canvas{position:fixed;inset:0;width:100%;height:100%;display:block}#game-canvas.can-interact{cursor:pointer}.hidden{display:none!important}.overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#0d1030b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:16px;overflow-y:auto}.start-card{width:min(540px,94vw);max-height:94vh;overflow-y:auto;background:var(--card-bg);border-radius:26px;padding:28px 30px;text-align:center;box-shadow:0 20px 70px #0000008c,0 0 0 4px var(--dg-gold),0 0 0 8px var(--dg-blue);animation:pop-in .45s cubic-bezier(.2,1.6,.4,1)}@keyframes pop-in{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}.logo-badge{width:74px;height:74px;margin:0 auto 8px;border-radius:50%;background:radial-gradient(circle at 32% 28%,var(--dg-blue-light),var(--dg-blue));color:#fff;font-size:30px;font-weight:800;display:flex;align-items:center;justify-content:center;border:4px solid var(--dg-gold);box-shadow:0 6px 18px #2b3f8c73}.start-card h1{font-size:clamp(26px,5vw,38px);color:var(--dg-blue);letter-spacing:4px;font-weight:400;text-shadow:3px 3px 0 rgba(255,143,182,.42)}.start-card h2{font-size:15px;color:#8a8fb5;font-weight:600;margin-bottom:14px;font-family:"Pixelify Sans",var(--font-ui)}.intro-text{font-size:14px;line-height:1.7;color:#444;margin-bottom:18px}.intro-text b{color:var(--dg-blue)}.name-entry{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.name-entry label{font-size:13px;color:#666;font-weight:600}.name-entry input{height:52px;border-radius:14px;border:3px solid var(--dg-blue-light);font-size:20px;text-align:center;font-weight:700;color:var(--dg-blue);outline:none;background:#f4f6ff}.name-entry input:focus{border-color:var(--dg-gold);box-shadow:0 0 0 4px #ffd35c59}#difficulty-row{display:flex;gap:8px}.diff-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 4px;border:3px solid #d6daf0;border-radius:13px;background:#f6f7ff;font-size:14.5px;font-weight:800;color:#444;cursor:pointer;transition:all .15s}.diff-btn small{font-size:10.5px;font-weight:600;color:#999}.diff-btn:hover{border-color:var(--dg-blue-light)}.diff-btn.selected{border-color:var(--dg-blue);background:#e8edff;color:var(--dg-blue);box-shadow:0 0 0 3px #4a63c440}.big-btn{height:56px;border:none;border-radius:16px;background:linear-gradient(180deg,#ffde7a,var(--dg-gold) 55%,#f0b73c);color:#5b3d00;font-size:19px;font-weight:800;letter-spacing:2px;cursor:pointer;box-shadow:0 5px #c8922a,0 10px 22px #00000040;transition:transform .12s,box-shadow .12s,filter .2s}.big-btn:hover:not(:disabled){transform:translateY(-2px)}.big-btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px #c8922a}.big-btn:disabled{filter:grayscale(.8);opacity:.6;cursor:not-allowed}.start-leaderboard{background:#f1f3fc;border-radius:16px;padding:12px 18px;margin-bottom:12px}.start-leaderboard h3{font-size:15px;color:var(--dg-blue);margin-bottom:8px}.start-leaderboard ol{list-style:none}.start-leaderboard li{display:flex;justify-content:space-between;font-size:14px;padding:4px 6px;color:#333;border-bottom:1px dashed #d6daf0}.start-leaderboard li:last-child{border-bottom:none}.start-leaderboard li .lb-rank{font-weight:800;color:var(--dg-blue);width:30px}.start-leaderboard li .lb-name{flex:1;text-align:left;font-weight:600}.start-leaderboard li .lb-score{font-weight:800;color:#b8860b}.start-leaderboard .lb-empty{justify-content:center;color:#999}.controls-hint{font-size:11.5px;color:#9aa0c5}.version-label{margin-top:6px;color:#8b92ad;font-size:10px}#hud{position:fixed;inset:0;z-index:20;pointer-events:none}#hud-top-left{position:absolute;top:12px;left:12px;width:210px;padding:8px;display:grid;grid-template-columns:1fr 1fr;gap:3px;border:2px solid rgba(255,211,92,.65);border-radius:18px;background:#141842db;box-shadow:0 5px 18px #00000052;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hud-pill{background:transparent;border:0;color:#fff;font-size:15px;font-weight:700;padding:6px 8px;border-radius:9px;box-shadow:none;text-align:left}#hud-name,#hud-score,#hud-chests,#hud-session-time,#hud-streak{grid-column:1 / -1}#hud-score,#hud-chests,#hud-session-time,#hud-streak{border-top:1px solid rgba(255,255,255,.14)}#hud-streak{color:#ffd35c;text-align:center;letter-spacing:.5px}#hud-streak.hot{background:#b52845;color:#fff;animation:timer-pulse .8s ease-in-out infinite}#hud-session-time{color:#ffe58a;text-align:center}#hud-session-time.urgent{color:#fff;background:#b52845;animation:timer-pulse 1s ease-in-out infinite}@keyframes timer-pulse{50%{transform:scale(1.04)}}button.hud-pill{text-align:center;background:#ffffff17}.hud-pill.small{font-size:13px;padding:5px 13px}#hud-name{border-color:var(--dg-pink)}button.hud-pill{pointer-events:auto;cursor:pointer;font-family:inherit}button.hud-pill:active{transform:scale(.94)}#time-row{display:flex;gap:8px;margin:4px 0 10px}#time-row .time-btn{flex:1}.session-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:4px 0 10px}.session-row .diff-btn{min-width:0;padding:8px 4px;font-size:12px}#minimap{position:absolute;top:12px;right:12px;border-radius:16px;border:3px solid rgba(255,211,92,.9);background:#0f1234d9;box-shadow:0 4px 16px #0006}#interact-prompt{position:absolute;bottom:26vh;left:50%;transform:translate(-50%);background:#141842e6;border:2px solid var(--dg-gold);color:#fff;font-size:17px;font-weight:700;padding:10px 22px;border-radius:14px;animation:bounce-soft 1s infinite ease-in-out;pointer-events:auto;cursor:pointer}#interact-prompt:hover{background:#232b69f5;border-color:#fff0b2}#interact-prompt:after{content:"  ·  🖱 Click / Tap";color:#ffeaa5;font-size:12px;white-space:nowrap}@keyframes bounce-soft{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-7px)}}.key-cap{display:inline-block;background:var(--dg-gold);color:#5b3d00;border-radius:7px;padding:2px 10px;margin-right:6px;font-weight:900;box-shadow:0 2px #c8922a}#toast{position:absolute;top:12px;left:50%;transform:translate(-50%);background:#ffd35cf5;color:#5b3d00;font-size:18px;font-weight:800;padding:12px 26px;border-radius:999px;box-shadow:0 8px 26px #0006;animation:toast-in .3s ease-out;max-width:48vw;white-space:normal;text-align:center}@keyframes toast-in{0%{transform:translate(-50%) scale(.6);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}#score-pops{position:absolute;inset:0;pointer-events:none;overflow:hidden}.score-pop{position:absolute;font-family:var(--font-pixel);font-weight:400;font-size:22px;color:#ffe27a;text-shadow:0 2px 0 #5b3d00,0 0 12px rgba(0,0,0,.55);animation:score-float .9s ease-out forwards;white-space:nowrap}@keyframes score-float{0%{transform:translate(-50%) scale(.8);opacity:1}to{transform:translate(-50%,-70px) scale(1.15);opacity:0}}#quest-banner{position:absolute;left:12px;bottom:18px;z-index:12;max-width:min(280px,46vw);padding:8px 12px;border-radius:12px;color:#1e274e;background:#fff3b0f0;font-size:13px;font-weight:800;line-height:1.35;box-shadow:0 6px 18px #00000038;pointer-events:none}#keepsake{position:absolute;right:12px;bottom:16px;z-index:12;display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:auto}#stamp-btn,#album-btn{border:2px solid rgba(255,211,92,.85);border-radius:12px;background:#141842e0;color:#fff;font-weight:800;padding:6px 10px;cursor:pointer;font-family:inherit;font-size:13px}#album-thumbs{display:flex;gap:4px;justify-content:flex-end}.polaroid-thumb{width:44px;height:52px;padding:3px 3px 10px;background:#fff;box-shadow:0 3px 8px #00000059;transform:rotate(-6deg);overflow:hidden}.polaroid-thumb:nth-child(2){transform:rotate(5deg)}.polaroid-thumb:nth-child(3){transform:rotate(-2deg)}.polaroid-thumb img{width:100%;height:34px;object-fit:cover;display:block;background:#c5d0e6}#confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti-bit{position:absolute;top:-12px;width:8px;height:12px;border-radius:2px;animation:confetti-fall 1.6s ease-in forwards}@keyframes confetti-fall{to{transform:translateY(110vh) rotate(240deg);opacity:.15}}.album-card,.stamp-card{width:min(560px,94vw);max-height:92vh;overflow-y:auto;background:var(--card-bg);border-radius:24px;padding:22px 22px 20px;text-align:center;color:#26305d;box-shadow:0 18px 55px #0000004d,0 0 0 4px var(--dg-gold)}.album-card h2,.stamp-card h2{margin:0 0 14px}.album-card h2 small,.stamp-card h2 small{display:block;color:#737da6;font-size:14px;font-family:"Pixelify Sans",var(--font-ui)}#album-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-bottom:16px}.polaroid{width:156px;background:#fff;padding:8px 8px 22px;box-shadow:0 8px 18px #281e0a38;transform:rotate(-2deg)}.polaroid:nth-child(2){transform:rotate(2.4deg)}.polaroid:nth-child(3){transform:rotate(-1.2deg)}.polaroid img{width:140px;height:96px;object-fit:cover;display:block;background:#d5deef}.polaroid figcaption{margin-top:7px;font-size:12px;font-weight:800;color:#3a4068}.album-empty{color:#66709c;font-size:14px;margin:8px 0 16px}#stamp-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.stamp-slot{border:2px dashed #c5cbe6;border-radius:16px;padding:12px 8px;background:#f4f6ff;min-height:108px}.stamp-slot.earned{border-style:solid;border-color:var(--dg-gold);background:#fff8dc}.stamp-slot .stamp-emoji{font-size:34px;filter:grayscale(1);opacity:.4}.stamp-slot.earned .stamp-emoji{filter:none;opacity:1}.stamp-slot b{display:block;font-size:13px;margin-top:4px}.stamp-slot small{display:block;color:#6b7398;font-size:11px;line-height:1.35}#stamp-hint{color:#66709c;font-size:13px;margin:0 0 12px}.result-card.first-treasure{box-shadow:0 20px 70px #0000008c,0 0 0 5px #ffd35c,0 0 0 10px #ff8fb6}#victory-stamps,#victory-album{margin:8px 0 12px}body.reduced-motion .confetti-bit{animation:none;display:none}@media(max-width:700px){#keepsake{top:136px;bottom:auto;right:8px}#quest-banner{left:8px;top:148px;bottom:auto;max-width:42vw;font-size:11px;padding:6px 8px}.polaroid-thumb{width:36px;height:44px}}#joystick-zone{position:absolute;left:0;bottom:0;width:100vw;height:48vh;pointer-events:auto;display:none;touch-action:none}#joystick-base{position:absolute;left:60px;bottom:60px;width:120px;height:120px;border-radius:50%;background:#ffffff1f;border:3px solid rgba(255,255,255,.35);display:none}#joystick-knob{position:absolute;left:50%;top:50%;width:56px;height:56px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 30%,#ffe9a8,var(--dg-gold));box-shadow:0 4px 12px #0006}#action-btn{position:absolute;right:36px;bottom:64px;width:86px;height:86px;border-radius:50%;border:4px solid #fff;background:radial-gradient(circle at 35% 30%,#ffb3cd,var(--dg-pink));font-size:36px;pointer-events:auto;box-shadow:0 6px 20px #00000073;z-index:5;touch-action:none}#action-btn:active{transform:scale(.92)}body.touch-device #joystick-zone{display:block}.quiz-card{width:min(560px,95vw);background:var(--card-bg);border-radius:24px;padding:24px 26px;box-shadow:0 20px 70px #0000008c,0 0 0 4px var(--dg-blue);animation:pop-in .35s cubic-bezier(.2,1.6,.4,1)}.quiz-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.cat-badge{background:var(--dg-blue);color:#fff;font-size:14px;font-weight:700;padding:6px 16px;border-radius:999px}.cat-badge.cat-math{background:#2e7d32}.cat-badge.cat-english{background:#c2185b}.cat-badge.cat-chinese{background:#c62828}.cat-badge.cat-general{background:#6a1b9a}#quiz-progress{font-size:14px;font-weight:700;color:#777}.timer-track{height:14px;border-radius:999px;background:#e3e6f5;overflow:hidden;margin-bottom:16px}#timer-bar{height:100%;width:100%;border-radius:999px;background:linear-gradient(90deg,#51d06b,#ffd35c 60%,#ff6b6b);transition:width .1s linear}#quiz-question{font-size:clamp(17px,2.6vw,22px);font-weight:700;color:#222;line-height:1.55;margin-bottom:18px;min-height:56px}#quiz-answers{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:520px){#quiz-answers{grid-template-columns:1fr}}.answer-btn{border:3px solid #d6daf0;border-radius:14px;background:#f6f7ff;padding:14px 12px;font-size:16.5px;font-weight:700;color:#333;cursor:pointer;text-align:center;transition:all .15s}.answer-btn:hover:not(:disabled){border-color:var(--dg-blue-light);background:#eef1ff;transform:translateY(-2px)}.answer-btn.correct{background:#d8f6dd;border-color:#34a853;color:#1d6b33;animation:pulse-good .4s}.answer-btn.wrong{background:#ffe1e1;border-color:#e05252;color:#a02525;animation:shake .4s}.answer-btn.correct:after{content:"  ✓ 正確 Correct";font-weight:900}.answer-btn.wrong:after{content:"  ✕ 再試 Try again";font-weight:900}.answer-btn:disabled{cursor:default}@keyframes pulse-good{0%{transform:scale(1)}50%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-7px)}75%{transform:translate(7px)}}#quiz-feedback{margin-top:14px;text-align:center;font-size:18px;font-weight:800}#quiz-feedback.good{color:#2e7d32}#quiz-feedback.bad{color:#c62828}.result-card{width:min(520px,94vw);max-height:94vh;overflow-y:auto;background:var(--card-bg);border-radius:26px;padding:30px;text-align:center;box-shadow:0 20px 70px #0000008c,0 0 0 4px var(--dg-gold);animation:pop-in .4s cubic-bezier(.2,1.6,.4,1)}#chest-result-emoji{font-size:64px;animation:bounce-soft 1.2s infinite}.result-card h2{color:var(--dg-blue);margin:8px 0 12px}.result-card h1{color:var(--dg-blue);margin:8px 0 12px;font-size:clamp(22px,4.5vw,32px)}#chest-result-text,#victory-stats{font-size:16px;line-height:1.8;color:#444;margin-bottom:18px}.victory-stars{font-size:52px;animation:bounce-soft 1.4s infinite}.result-card .big-btn{width:100%;margin-top:10px}#orientation-hint{position:fixed;bottom:10px;left:50%;transform:translate(-50%);z-index:60;background:#141842d9;color:#ffd35c;font-size:13px;padding:8px 18px;border-radius:999px}@media(max-width:700px){#minimap{width:120px;height:120px}.hud-pill{font-size:13px;padding:5px 12px}#hud-top-left{width:145px;top:7px;left:7px;padding:5px}#toast{max-width:45vw;padding:8px 12px;font-size:13px}}
