:root{font-family:"Naikai",ui-rounded,"Noto Sans TC",system-ui,sans-serif;color:#234d3b;background:#edf4e8;font-synthesis:none}*{box-sizing:border-box}html{min-height:100%}body{margin:0;min-height:100svh;overflow-x:hidden;background:radial-gradient(circle at 10% 0%,#fff8dc 0,transparent 36%),radial-gradient(circle at 95% 75%,#cce9d0 0,transparent 38%),#edf4e8}button{font:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:4px solid #eaa52a;outline-offset:3px}.hidden{display:none!important}.ambient{position:fixed;border:2px solid #bfdcbc88;border-radius:50%;pointer-events:none;z-index:-1}.ambient-a{width:520px;height:520px;left:-260px;top:18%}.ambient-b{width:380px;height:380px;right:-180px;bottom:-140px}.shell{max-width:1060px;margin:auto;padding:0 24px 32px}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:11px;color:#1c6543}.brand-seal{display:grid;place-items:center;width:43px;height:43px;border:3px solid #efbc47;border-radius:50%;background:#176448;color:#f9d778;font-size:25px;font-weight:1000;box-shadow:0 3px 0 #0b4230}.brand-copy strong{display:block;font-size:19px;letter-spacing:.06em;line-height:1.05}.brand-copy small{display:block;margin-top:5px;color:#6d8d68;font-size:10px;letter-spacing:.2em;font-weight:900}.settings-button{display:flex;align-items:center;gap:7px;min-height:42px;padding:6px 14px;border:2px solid #b9d1b4;border-radius:99px;background:#fffdf3;color:#24634a;font-size:15px;font-weight:900;box-shadow:0 3px 0 #c5d9be}.settings-button span:first-child{font-size:21px;line-height:1}.screen{position:relative}.start-screen{min-height:min(690px,calc(100svh - 110px));overflow:hidden;border:8px solid #fffdf1;border-radius:32px;background:#99d5ed;box-shadow:0 22px 70px #426b4a29,0 0 0 2px #d5e2bb;isolation:isolate}.start-world{position:absolute;inset:0;background-image:linear-gradient(90deg,#225c3f16 0%,#e6f4e22a 45%,#fff1ce22 100%),url('assets/postoffice-master.jpg');background-size:cover;background-position:center 45%;animation:worldEnter 1s ease-out both}.start-sun{position:absolute;right:10%;top:6%;width:110px;height:110px;border-radius:50%;background:#ffe59266;filter:blur(12px);animation:glow 4s ease-in-out infinite alternate}.start-ground{position:absolute;inset:auto 0 0;height:14px;background:repeating-linear-gradient(90deg,#f6d779 0 35px,#f9ebaa 35px 70px);opacity:.8}.start-letter{position:absolute;right:5.5%;top:50%;transform:translateY(-50%) rotate(1deg);width:min(430px,50%);padding:40px 41px 36px;border:2px solid #ebd6a1;border-radius:12px;background:#fffaf0;box-shadow:0 13px 0 #b68e4d77,0 25px 50px #215d4460;z-index:2;animation:letterEnter .7s cubic-bezier(.2,.85,.25,1.25) both}.start-letter:before{content:"";position:absolute;inset:10px;border:2px dashed #dfc991;border-radius:5px;pointer-events:none}.letter-edge{position:absolute;inset:0 0 auto;height:13px;background:repeating-linear-gradient(135deg,#e76855 0 13px,#fffaf0 13px 25px,#5aa77c 25px 38px,#fffaf0 38px 50px);border-radius:9px 9px 0 0}.letter-postmark{position:absolute;right:28px;top:31px;width:84px;height:84px;border:2px solid #e6c98f;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transform:rotate(17deg);color:#b99b6a;font-size:8px;font-weight:900;letter-spacing:.06em}.letter-postmark b{font-size:26px;line-height:1}.eyebrow{margin:0 0 14px;color:#bb8337;font-size:15px;font-weight:900;letter-spacing:.1em}.start-letter h1{position:relative;margin:0;color:#18583e;font-size:clamp(40px,5vw,65px);line-height:1.19;letter-spacing:.015em}.start-letter h1 em{font-style:normal;color:#df9255}.start-description{max-width:310px;margin:20px 0 18px;color:#52715b;font-size:17px;line-height:1.65;font-weight:700}.round-summary{display:flex;align-items:center;gap:10px;width:max-content;max-width:100%;padding:10px 14px;border-radius:99px;background:#e5f2df;color:#2b6647;font-size:14px;font-weight:900}.summary-star{color:#e9aa32}.round-summary i{display:block;width:4px;height:4px;border-radius:50%;background:#89ae84}.primary-button{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;min-height:58px;padding:10px 13px 10px 22px;border:0;border-radius:17px;background:linear-gradient(#ffca58,#f6ac34);color:#573e1d;font-size:20px;font-weight:1000;box-shadow:0 6px 0 #b9792b,0 10px 20px #8b653c33;transition:transform .22s cubic-bezier(.2,1.5,.4,1),box-shadow .22s;touch-action:manipulation}.primary-button:hover{transform:translateY(-3px)}.primary-button:active{transform:translateY(5px);box-shadow:0 1px 0 #b9792b}.button-arrow{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#fff5cd;color:#ad7221;font-size:22px}.start-letter .primary-button{width:100%;margin-top:21px}.start-sticker{position:absolute;left:8%;bottom:5%;width:220px;height:260px;overflow:hidden;transform:rotate(-8deg);border:9px solid #fffdf4;border-bottom-width:18px;background:#fffdf4;box-shadow:0 15px 30px #1c593a55;z-index:1;animation:stickerFloat 4s ease-in-out infinite alternate}.start-sticker:after{content:"IGGY  •  POST CREW";position:absolute;left:0;right:0;bottom:-15px;text-align:center;color:#478469;font-size:9px;font-weight:900;letter-spacing:.1em}.start-sticker img{position:absolute;left:-13%;bottom:0;width:300%;height:100%;max-width:none;object-fit:cover}.play-screen{max-width:790px;margin:0 auto;animation:screenEnter .45s ease-out both}.game-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:1px 4px 13px;font-weight:900}.task-label{color:#1e6445;font-size:16px;letter-spacing:.07em}.task-label > span:first-child{display:inline-grid;place-items:center;width:30px;height:30px;margin-right:7px;border-radius:9px;background:#d6e9d0;color:#1f7550}.score-pill{padding:8px 13px;border-radius:99px;background:#fff9e9;border:1px solid #eadbb5;color:#816742;font-size:13px}.route-row{display:flex;align-items:center;gap:17px;margin:0 5px 13px;color:#6b876b;font-weight:900;font-size:13px}.progress-dots{flex:1;display:flex;gap:6px;max-width:420px}.dot{flex:1;height:9px;border-radius:99px;background:#cddbc6;transition:background .3s,transform .3s}.dot.current{background:#f2b945;transform:scaleY(1.35)}.dot.correct{background:#4fb577}.dot.wrong{background:#eca57f}.game-board{position:relative;overflow:hidden;border:5px solid #fffdf2;border-radius:27px;background:#185a42;box-shadow:0 18px 42px #2f64493b,0 0 0 2px #d5e2bb}.board-scene{height:130px;position:absolute;left:0;right:0;top:0;overflow:hidden;background:linear-gradient(#8ed3ef,#c4ebf1)}.scene-sun{position:absolute;right:17%;top:19px;width:56px;height:56px;background:#fce39a;border-radius:50%}.scene-cloud{position:absolute;width:100px;height:22px;background:#fffefa;border-radius:99px;top:30px;left:11%;box-shadow:22px -11px 0 3px #fffefa,48px -1px 0 #fffefa;animation:drift 9s ease-in-out infinite alternate}.scene-cloud-b{left:auto;right:21%;top:48px;transform:scale(.55)}.scene-hill{position:absolute;width:80%;height:120px;bottom:-90px;border-radius:50% 50% 0 0;background:#8ec977}.scene-hill-a{left:-15%}.scene-hill-b{right:-12%;background:#68b976}.question-wrap{position:relative;display:flex;align-items:flex-end;gap:12px;margin:37px 32px 0;z-index:1}.iggy-mini{width:85px;height:105px;overflow:hidden;flex:none;border:5px solid #fffdf1;border-radius:12px;background:#fffdf1;box-shadow:0 5px 0 #134d39;transform:rotate(-6deg)}.iggy-mini img{position:relative;left:-12%;bottom:0;width:300%;height:100%;max-width:none;object-fit:cover}.question-card{position:relative;flex:1;min-height:154px;padding:21px 24px 18px;background:#fffdf4;border:3px solid #f2e0b7;border-radius:21px 21px 7px 21px;box-shadow:0 9px 0 #d4bc87,0 15px 25px #1f533b45}.question-card:after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:13px;background:radial-gradient(circle at 8px 0,#185a42 0 5px,transparent 5.5px) repeat-x;background-size:18px 13px;opacity:.5}.question-top{display:flex;align-items:center;justify-content:space-between}.question-tag{padding:5px 11px;border-radius:5px;background:#e5f2db;color:#3c7650;font-size:12px;font-weight:900;letter-spacing:.08em}.stamp-icon{color:#eab640;font-size:25px}.word-line{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:7px}.word-line strong{font-size:clamp(46px,9vw,68px);line-height:1.12;color:#18583e;letter-spacing:.02em}.audio-button{display:flex;align-items:center;gap:6px;min-height:49px;padding:7px 15px;border:2px solid #abcdb0;border-radius:99px;background:#e9f6e7;color:#2d6848;font-size:14px;font-weight:900;box-shadow:0 4px 0 #b4d6b6}.speaker-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#2b7751;color:#fff;font-size:16px}.audio-button:hover .speaker-icon{animation:audioPulse .55s ease-out}.audio-button:active{transform:translateY(3px);box-shadow:0 1px 0 #b4d6b6}.audio-status{margin:0;color:#9f7450;font-size:11px}.sort-tray{position:relative;margin-top:22px;padding:20px 26px 23px;background:linear-gradient(160deg,#236a4b,#19583f);border-radius:25px 25px 20px 20px;box-shadow:inset 0 5px 0 #408461}.sort-tray:before{content:"";position:absolute;inset:8px;border:1px solid #79af8580;border-radius:18px;pointer-events:none}.tray-heading{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 13px;color:#d0e8cb}.tray-heading > span{color:#eac456;font-size:12px}.tray-heading p{margin:0;font-size:16px;font-weight:900;letter-spacing:.06em}.choices{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;max-width:580px;margin:auto}.choice{position:relative;display:block;height:148px;padding:0;border:0;border-radius:18px;background:transparent;perspective:800px;touch-action:manipulation}.choice-inner{position:absolute;inset:0;display:block;transform-style:preserve-3d;transition:transform .62s cubic-bezier(.18,.8,.22,1.06)}.choice-face{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;border:3px solid #f7e7bd;border-radius:17px;background:linear-gradient(145deg,#fffef8,#fff7e6);box-shadow:0 5px 0 #c89c52,0 10px 14px #123d2e36;backface-visibility:hidden;-webkit-backface-visibility:hidden}.choice-face:before{content:"";position:absolute;inset:8px;border:1.5px dashed #dfcda8;border-radius:10px;pointer-events:none}.choice-face:after{content:"✦";position:absolute;right:13px;top:8px;color:#ddc185;font-size:12px}.choice-art{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:clamp(58px,8vw,83px);line-height:1;filter:drop-shadow(0 6px 2px #8c6b3c22);transition:transform .25s}.choice:hover:not(:disabled) .choice-art{transform:scale(1.13) rotate(-4deg)}.choice:hover:not(:disabled) .choice-front{border-color:#f8c55c;transform:translateY(-3px)}.choice:active:not(:disabled) .choice-front{transform:translateY(3px);box-shadow:0 2px 0 #c89c52}.choice-back{transform:rotateY(180deg);background:#f5e4bd}.choice-back:after{content:"P";display:grid;place-items:center;width:22px;height:22px;border:2px solid #cda65e;border-radius:50%;font-size:11px;font-weight:1000}.choice-meaning{color:#226547;font-size:clamp(27px,5vw,40px);line-height:1.15;font-weight:1000}.choice.revealed .choice-inner{transform:rotateY(180deg)}.choice.correct .choice-back{border-color:#99d386;background:linear-gradient(145deg,#eaf9d8,#d6f0cb)}.choice.correct .choice-back:after{content:"✓";border-color:#5caf71;color:#3f9a58}.choice.wrong .choice-front{border-color:#eca58b;background:#fff0e8;animation:shake .3s}.tray-bottom{position:relative;min-height:64px;display:flex;align-items:center;justify-content:center;gap:18px}.feedback{margin:0;color:#ffe0bd;font-size:16px;font-weight:900;min-height:1.3em}.next-button{min-width:170px;min-height:49px;font-size:17px;animation:nextEnter .4s ease-out both}.next-button .button-arrow{width:29px;height:29px;font-size:17px}.result-screen{max-width:580px;min-height:560px;margin:25px auto;padding:54px 35px;text-align:center;border:8px solid #fffdf3;border-radius:30px;background:radial-gradient(circle at 50% 22%,#fff9e7 0 26%,transparent 50%),linear-gradient(160deg,#e9f6db,#e1f1e2);box-shadow:0 15px 40px #326d4930;overflow:hidden}.result-rays{position:absolute;inset:-150px;background:repeating-conic-gradient(from 0deg,#f5cd5744 0 12deg,transparent 12deg 25deg);opacity:.5;animation:slowTurn 50s linear infinite}.result-medal{position:relative;display:grid;place-items:center;width:120px;height:120px;margin:0 auto 18px;border:8px solid #fff6d3;border-radius:50%;background:#f5c353;color:#fff9df;font-size:75px;box-shadow:0 8px 0 #bf8735,0 14px 30px #8b723f44;animation:medalIn .8s cubic-bezier(.2,1.4,.4,1) both}.result-screen .eyebrow,.result-screen h1,.result-screen p,.result-screen button{position:relative}.result-screen h1{margin:8px 0 22px;color:#1f6445;font-size:clamp(39px,7vw,55px);line-height:1.2}.result-score{width:max-content;max-width:100%;margin:0 auto;padding:12px 24px;border:2px dashed #89c098;border-radius:16px;background:#fffdf5;color:#376e4e;font-weight:900}.result-score strong{display:block;font-size:34px}.result-copy{font-size:16px;font-weight:700;color:#6d866c}.result-screen .primary-button{margin-top:10px}.settings-dialog{width:min(90vw,405px);padding:26px;border:5px solid #fff4d9;border-radius:25px;background:#fffdf4;color:#315b42;box-shadow:0 20px 60px #16452f77}.settings-dialog::backdrop{background:#103c2dbb;backdrop-filter:blur(5px)}.dialog-head{display:flex;align-items:center;gap:10px;margin-bottom:23px}.dialog-head h2{flex:1;margin:0;color:#1f6245;font-size:26px}.dialog-icon{font-size:25px;color:#d89d31}.close-button{width:35px;height:35px;border:0;border-radius:11px;background:#e9f0e2;color:#40654b;font-size:17px}.settings-dialog label{font-weight:900}.stepper{display:flex;align-items:center;justify-content:center;gap:35px;margin:20px 0}.stepper button{width:51px;height:51px;border:2px solid #bbd8b7;border-radius:15px;background:#e9f6e5;color:#2f7050;font-size:29px;font-weight:900}.stepper output{min-width:40px;text-align:center;color:#1f6245;font-size:43px;font-weight:1000}.settings-dialog input{width:100%;accent-color:#2e9a5f}.setting-note{color:#697c6c;font-size:14px;line-height:1.6}.dialog-done{width:100%;margin-top:8px;font-size:18px}
@keyframes worldEnter{from{transform:scale(1.08);filter:blur(6px)}to{transform:scale(1);filter:blur(0)}}@keyframes glow{to{opacity:.5;transform:scale(1.3)}}@keyframes letterEnter{from{opacity:0;transform:translate(30px,-43%) rotate(5deg)}to{opacity:1;transform:translate(0,-50%) rotate(1deg)}}@keyframes stickerFloat{to{transform:translateY(-9px) rotate(-5deg)}}@keyframes drift{to{translate:24px 0}}@keyframes audioPulse{50%{transform:scale(1.2)}}@keyframes shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}@keyframes nextEnter{from{opacity:0;transform:translateY(10px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes medalIn{from{opacity:0;transform:scale(.3) rotate(-40deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes slowTurn{to{transform:rotate(360deg)}}@keyframes screenEnter{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:680px){.shell{padding:0 12px 22px}.topbar{height:64px}.brand-seal{width:36px;height:36px;font-size:21px}.brand-copy strong{font-size:15px}.brand-copy small{font-size:8px}.settings-button{min-height:38px;padding:5px 10px;font-size:13px}.start-screen{min-height:calc(100svh - 78px);border-width:5px;border-radius:23px}.start-world{background-position:46% top;background-size:auto 69%;background-repeat:no-repeat;background-color:#90d4ee}.start-letter{left:13px;right:13px;top:auto;bottom:23px;width:auto;padding:26px 24px 24px;transform:rotate(1deg);animation:mobileLetterEnter .7s ease-out both}.start-letter:before{inset:8px}.letter-postmark{right:20px;top:19px;width:60px;height:60px;font-size:6px}.letter-postmark b{font-size:19px}.start-letter h1{font-size:clamp(35px,9vw,45px)}.start-description{margin:13px 0;font-size:14px;max-width:260px}.round-summary{font-size:12px;padding:8px 11px}.start-letter .primary-button{margin-top:15px}.start-sticker{left:auto;right:27px;top:15px;bottom:auto;width:110px;height:130px;border-width:5px;border-bottom-width:12px;transform:rotate(7deg);animation:none}.start-sticker:after{bottom:-10px;font-size:5px}.start-sun{right:14%;top:4%;width:65px;height:65px}.game-topline{margin:1px 2px 9px}.task-label{font-size:13px}.task-label > span:first-child{width:25px;height:25px;margin-right:3px}.score-pill{font-size:11px;padding:6px 9px}.route-row{margin-bottom:10px;gap:12px;font-size:11px}.progress-dots{gap:4px}.dot{height:7px}.game-board{border-width:4px;border-radius:22px}.board-scene{height:107px}.question-wrap{gap:7px;margin:21px 13px 0}.iggy-mini{width:59px;height:75px;border-width:3px;border-radius:9px}.question-card{min-height:137px;padding:16px 15px 14px;border-width:2px;border-radius:17px}.question-tag{font-size:10px;padding:4px 7px}.stamp-icon{font-size:20px}.word-line{display:flex;align-items:flex-end;gap:5px}.word-line strong{font-size:clamp(38px,10vw,50px)}.audio-button{min-height:38px;padding:5px 8px;font-size:11px;gap:4px}.speaker-icon{width:22px;height:22px;font-size:13px}.sort-tray{margin-top:17px;padding:16px 13px 15px;border-radius:19px}.tray-heading{margin-bottom:10px}.tray-heading p{font-size:13px}.choices{gap:10px}.choice{height:clamp(110px,18.5svh,145px)}.choice-art{font-size:clamp(55px,18vw,76px)}.choice-meaning{font-size:clamp(26px,7vw,36px)}.tray-bottom{min-height:65px;gap:10px}.feedback{font-size:14px}.next-button{min-width:133px;font-size:15px;min-height:43px;padding:6px 7px 6px 13px}.next-button .button-arrow{width:27px;height:27px}.result-screen{margin:15px auto;min-height:calc(100svh - 100px);padding:55px 18px}.result-medal{width:105px;height:105px;font-size:61px}}@media(max-width:375px){.question-wrap{margin-left:8px;margin-right:8px}.iggy-mini{width:48px;height:65px}.question-card{padding-left:9px;padding-right:9px}.audio-button > span:last-child{display:none}.word-line strong{font-size:38px}.start-sticker{width:95px;height:112px}}@keyframes mobileLetterEnter{from{opacity:0;transform:translateY(28px) rotate(4deg)}to{opacity:1;transform:translateY(0) rotate(1deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Character poses are a derivative UI animation asset, with three equal sprite cells. */
.iggy-actor{height:100%;aspect-ratio:1/2;margin:auto;background-image:url('assets/iggy-poses-v1.png');background-size:300% 100%;background-repeat:no-repeat;filter:drop-shadow(0 7px 4px #2a5f3b35)}.pose-wave{background-position:0% 0}.pose-listen{background-position:50% 0}.pose-celebrate{background-position:100% 0}.start-sticker{background:#f8f3df}.start-sticker .iggy-actor{animation:actorBreath 3s ease-in-out infinite alternate}.iggy-mini{display:flex;align-items:end;justify-content:center;background:#f8f3df}.iggy-mini .iggy-actor{height:100%;animation:actorBreath 2.8s ease-in-out infinite alternate}.iggy-mini.is-reacting{animation:reactTilt .28s ease-in-out}.iggy-mini.is-celebrating{animation:celebrateHop .62s cubic-bezier(.15,1,.35,1)}.result-iggy{position:relative;height:150px;margin:-15px auto 0;display:flex;justify-content:center}.result-iggy .iggy-actor{height:100%;animation:celebrateHop 1.4s ease-in-out infinite alternate}.result-screen:has(.result-iggy) .result-medal{width:96px;height:96px;font-size:56px}.result-screen:has(.result-iggy){padding-top:28px}.question-card.is-arriving{animation:letterArrive .42s cubic-bezier(.18,.9,.25,1.1)}.choice.is-entering{animation:cardArrive .45s cubic-bezier(.18,.9,.25,1.2) both;animation-delay:calc(var(--order)*55ms)}.choice.is-entering:nth-child(1){--order:0}.choice.is-entering:nth-child(2){--order:1}.choice.is-entering:nth-child(3){--order:2}.choice.is-entering:nth-child(4){--order:3}.score-pill.is-stamped{animation:scoreStamp .5s cubic-bezier(.2,1.4,.3,1)}@keyframes actorBreath{to{transform:translateY(-4px) rotate(1deg)}}@keyframes reactTilt{25%{transform:rotate(-13deg)}75%{transform:rotate(7deg)}}@keyframes celebrateHop{45%{transform:translateY(-13px) rotate(-3deg)}75%{transform:translateY(1px) rotate(3deg)}}@keyframes letterArrive{from{opacity:.4;transform:translateY(-26px) rotate(-4deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@keyframes cardArrive{from{opacity:0;transform:translateY(14px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes scoreStamp{0%{transform:scale(1.4) rotate(-9deg)}65%{transform:scale(.92) rotate(3deg)}100%{transform:scale(1) rotate(0)}}@media(max-width:680px){.result-iggy{height:120px}.result-screen:has(.result-iggy){padding-top:25px}.start-sticker{background:#f8f3df}}@media(prefers-reduced-motion:reduce){.iggy-actor,.iggy-mini,.result-iggy .iggy-actor,.question-card,.choice,.score-pill{animation:none!important}}
.mail-flight{position:absolute;left:-45px;top:27px;z-index:5;opacity:0;color:#f9d46e;font-size:37px;text-shadow:0 4px 0 #357651;pointer-events:none}.mail-flight.flying{animation:mailFly .9s cubic-bezier(.25,.7,.35,1) both}@keyframes mailFly{0%{left:-45px;top:85px;opacity:0;transform:rotate(-20deg) scale(.5)}25%{opacity:1}72%{opacity:1}100%{left:calc(100% + 20px);top:7px;opacity:0;transform:rotate(18deg) scale(1.1)}}@media(prefers-reduced-motion:reduce){.mail-flight.flying{animation:none!important}}
@media(max-width:680px){.word-line{flex-wrap:wrap;align-items:center;justify-content:space-between}.word-line strong{font-size:clamp(34px,9vw,46px);overflow-wrap:anywhere}.question-card{height:auto}.iggy-mini{width:65px;height:83px}}

/* 郵局角色與識別章 */
.brand-seal{overflow:hidden;padding:2px;border-color:#e6ba62;background:#fff9e8}.brand-seal img{width:100%;height:100%;object-fit:cover;border-radius:50%}.letter-postmark{overflow:hidden;border-color:#c5b590;background:#fffdf1}.letter-postmark img{width:100%;height:100%;object-fit:cover;border-radius:50%;filter:saturate(.86);opacity:.83}.feifei-actor,.abao-actor{height:100%;aspect-ratio:1;margin:auto;background-repeat:no-repeat;background-size:200% 100%;filter:drop-shadow(0 6px 5px #285b3644)}.feifei-actor{background-image:url('assets/feifei-poses-v1.png')}.abao-actor{background-image:url('assets/chick-abao-poses-v1.png')}.feifei-fly,.abao-sort{background-position:0 0}.feifei-deliver,.abao-cheer{background-position:100% 0}.start-feifei{position:absolute;left:13%;top:7%;height:175px;z-index:1;animation:feifeiGlide 4s ease-in-out infinite alternate}.start-abao{position:absolute;left:39%;bottom:6%;height:117px;z-index:1;animation:abaoBob 2.5s ease-in-out infinite alternate}.play-feifei{position:absolute;right:4%;top:-8px;height:119px;animation:feifeiGlide 4s ease-in-out infinite alternate}.play-feifei.is-delivering{animation:feifeiDeliver .7s ease-out}.play-feifei.is-delivering .feifei-actor{background-position:100% 0}.tray-heading .play-abao{position:absolute;right:12px;top:-24px;height:67px}.play-abao.is-reacting{animation:reactTilt .3s ease-in-out}.play-abao.is-celebrating{animation:celebrateHop .65s ease-out}.result-crew{position:relative;display:flex;align-items:end;justify-content:center;gap:4px;height:147px;margin:-15px auto 4px}.result-feifei{height:119px;animation:feifeiGlide 3s ease-in-out infinite alternate}.result-iggy{height:144px;margin:0}.result-abao{height:109px;animation:abaoBob 1.6s ease-in-out infinite alternate}.choice-meaning{display:flex;align-items:center;justify-content:center;gap:1px;max-width:96%;white-space:nowrap}.hanzi-unit{display:inline-flex;align-items:center;justify-content:center;gap:0;min-width:0}.hanzi{font-size:clamp(26px,4.6vw,39px)}.zhuyin{display:inline-block;writing-mode:vertical-rl;text-orientation:upright;font-family:"Naikai","Noto Sans TC",system-ui,sans-serif;font-size:clamp(9px,1.8vw,13px);font-weight:800;line-height:1.02;color:#4a875e;letter-spacing:-.025em}.choice.correct .zhuyin{color:#398e52}@keyframes feifeiGlide{from{transform:translate(0,3px) rotate(-5deg)}to{transform:translate(14px,-11px) rotate(2deg)}}@keyframes feifeiDeliver{35%{transform:translate(-15px,-16px) rotate(-8deg)}75%{transform:translate(2px,2px) rotate(6deg)}}@keyframes abaoBob{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-5px) rotate(2deg)}}
@media(max-width:680px){.brand-seal{width:38px;height:38px}.start-feifei{left:4%;top:7%;height:128px}.start-abao{left:2%;top:30%;bottom:auto;height:91px}.start-sticker{z-index:1}.start-letter{z-index:3}.letter-postmark{width:65px;height:65px}.play-feifei{right:-2%;height:98px;top:0}.tray-heading .play-abao{height:49px;right:3px;top:-12px}.result-crew{height:115px}.result-feifei{height:93px}.result-iggy{height:114px}.result-abao{height:90px}.hanzi{font-size:clamp(24px,6.8vw,32px)}.zhuyin{font-size:clamp(8px,2.5vw,11px)}}
@media(max-width:375px){.start-feifei{height:103px}.start-abao{top:27%;height:75px}.tray-heading .play-abao{height:43px;right:0}.hanzi{font-size:23px}.zhuyin{font-size:8px}}
@media(prefers-reduced-motion:reduce){.start-feifei,.start-abao,.play-feifei,.play-abao,.result-feifei,.result-abao{animation:none!important}}

/* 已產生的三組候選單字插畫；新增 50 詞仍使用清楚的圖示 */
.choice-illustrated{display:block;width:100%;height:100%;background-size:500% 200%;background-repeat:no-repeat;filter:none}.sheet-animals{background-image:url('assets/animals-grid-v1.jpg')}.sheet-food{background-image:url('assets/food-grid-v1.jpg')}.sheet-objects{background-image:url('assets/objects-grid-v1.jpg')}.choice-front:has(.choice-illustrated):before{z-index:1;opacity:.55}.choice:hover:not(:disabled) .choice-illustrated{transform:scale(1.05)}

/* 注音在手機上保持足夠可讀，三字詞獨立縮排 */
.zhuyin{font-size:14px}.long-meaning .hanzi{font-size:30px}.long-meaning .zhuyin{font-size:11px}@media(max-width:680px){.zhuyin{font-size:12px}.long-meaning .hanzi{font-size:27px}.long-meaning .zhuyin{font-size:10px}}@media(max-width:375px){.zhuyin{font-size:11px}.long-meaning .hanzi{font-size:24px}.long-meaning .zhuyin{font-size:9px}}

/* 依 kidsapp/BpmWord 移植的注音：紅色調號在右、輕聲點在上 */
.choice-meaning{display:flex;align-items:center;justify-content:center;gap:.08em;max-width:98%;font-size:clamp(27px,5.2vw,39px)}.choice-meaning.long-meaning{font-size:clamp(21px,4vw,28px)}.bpm-word{display:inline-flex;align-items:center;padding-right:.22em;white-space:nowrap}.bpm-main-char{font-size:1em;font-weight:900;line-height:1}.bpm-column{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-left:.15em;font-size:.45em;font-weight:800;line-height:1;color:#45835c}.bpm-onset,.bpm-rime{display:block;line-height:1.03}.bpm-tone{position:absolute;right:-.55em;top:85%;transform:translateY(-50%) scale(1.5,1.8);font-size:1.2em;font-weight:900;color:#d32f2f;line-height:1;height:1em;display:flex;align-items:center;justify-content:center}.bpm-tone-dot{position:absolute;right:0;top:-.6em;font-size:1.4em;font-weight:900;color:#d32f2f;line-height:1}
@media(max-width:680px){.choice-meaning{font-size:clamp(25px,7vw,34px)}.choice-meaning.long-meaning{font-size:clamp(20px,5.8vw,27px)}}@media(max-width:375px){.choice-meaning{font-size:25px}.choice-meaning.long-meaning{font-size:20px}}

/* 主題選擇沿用 kidsapp 大面積選項的操作節奏，配色改為郵局任務章 */
.topic-picker{border:0;padding:0;margin:0 0 14px;min-width:0}.topic-picker legend{padding:0;margin-bottom:7px;color:#517358;font-size:13px;font-weight:900;letter-spacing:.05em}.topic-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.topic-option{min-width:0;min-height:48px;padding:5px 3px;border:2px solid #bdd4ae;border-radius:13px;background:#f0f6e7;color:#276548;font-size:16px;font-weight:1000;box-shadow:0 3px 0 #c5d9bb;transition:transform .18s,background .18s,border-color .18s;touch-action:manipulation}.topic-option:hover{transform:translateY(-2px)}.topic-option:active{transform:translateY(2px)}.topic-option[aria-pressed=true]{border-color:#e9bd62;background:#236d4d;color:#fffbed;box-shadow:0 3px 0 #145139,0 0 0 2px #fff7dc inset}.topic-option[aria-pressed=true]:after{content:"✦";display:block;color:#ffda6d;font-size:10px;line-height:9px}
/* 圖組各格維持原本長寬比，並限制在卡片中央；沒有放大到填滿框框 */
.choice-illustrated{width:auto;height:min(86%,124px);background-size:500% 200%;transform:none;filter:none;flex:none}.sheet-animals{aspect-ratio:4/5}.sheet-food,.sheet-objects{aspect-ratio:1}.choice:hover:not(:disabled) .choice-illustrated{transform:none}
/* 答對後的下一步成為整個分揀盤的主要操作 */
.task-label{display:inline-flex;align-items:center;min-width:0;white-space:nowrap}.task-label #taskTitle{display:inline;width:auto;height:auto;margin:0;border-radius:0;background:none;color:inherit}
.tray-bottom{flex-direction:column;gap:7px;min-height:51px;padding-top:10px}.tray-bottom.has-next{min-height:111px}.feedback{min-height:1em}.next-button{width:min(100%,360px);min-width:0;min-height:64px;padding:8px 11px 8px 24px;border-radius:20px;font-size:22px;box-shadow:0 7px 0 #a46a24,0 13px 23px #0c3b2c55}.next-button .button-arrow{width:43px;height:43px;border-radius:13px;font-size:25px}.next-button:hover{transform:translateY(-3px)}.next-button:active{transform:translateY(5px);box-shadow:0 2px 0 #a46a24}
@media(max-width:680px){.topic-picker{margin-bottom:10px}.topic-picker legend{font-size:12px}.topic-option{min-height:45px;font-size:14px;border-radius:11px}.tray-bottom{gap:5px;min-height:45px;padding-top:7px}.tray-bottom.has-next{min-height:105px}.next-button{min-height:62px;font-size:21px;width:100%}.next-button .button-arrow{width:42px;height:42px;font-size:23px}}
@media(prefers-reduced-motion:reduce){.topic-option{transition:none}}

/* 下一題整條置中，文字在按鈕中央，箭頭固定靠右 */
.next-button{position:relative;justify-content:center;margin-inline:auto;padding-inline:58px}.next-button .button-arrow{position:absolute;right:11px;top:50%;transform:translateY(-50%)}

/* 飛飛從信封後方移到左上方天空，與伊奇上下呼應 */
.play-feifei{right:auto;left:3%;top:4px;height:90px}
@media(max-width:680px){.play-feifei{right:auto;left:1%;top:3px;height:69px}}

/* 分級入口：三個清楚的大目標與獨立難度條 */
.mode-picker{border:0;padding:0;margin:15px 0 8px;min-width:0}.mode-picker legend{padding:0;margin-bottom:8px;color:#42694d;font-size:17px;font-weight:1000}.mode-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.mode-option{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:87px;padding:7px 3px;border:2px solid #b9d3ae;border-radius:16px;background:#f0f6e7;color:#226046;font-size:17px;font-weight:1000;box-shadow:0 4px 0 #b7cdaa;touch-action:manipulation}.mode-option[aria-pressed=true]{border-color:#e7bc5a;background:#246c4c;color:#fffbed;box-shadow:0 4px 0 #135039,0 0 0 2px #fff6d7 inset}.mode-icon{font-size:23px;line-height:1}.mode-label{line-height:1.12}.level-control{padding:10px 15px 4px;margin:8px 0 10px;border:2px dashed #cfbd8f;border-radius:15px;background:#fff8e6}.level-control label{display:block;text-align:center;font-size:20px;font-weight:1000;color:#276648}.level-control input{display:block;width:100%;height:28px;margin:7px 0 0;accent-color:#2c9c63;touch-action:pan-y}.level-marks{display:flex;justify-content:space-between;padding:0 3px;color:#64836a;font-size:14px;font-weight:1000}.round-summary{font-size:15px}

/* 兒童主要操作文字：沿用翻牌的逐字注音欄與紅色聲調 */
.kid-text{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;column-gap:.01em;row-gap:.03em;vertical-align:middle}.kid-text .bpm-word{padding-right:.14em}.kid-text .bpm-column{margin-left:.05em;font-size:.36em;color:currentColor}.kid-text .bpm-tone,.kid-text .bpm-tone-dot{color:#d32f2f}.start-letter h1 .kid-text{justify-content:flex-start}.start-description{font-size:18px;line-height:1.6}.start-description.kid-text{justify-content:flex-start}.mode-option .kid-text{width:100%}.question-tag{font-size:15px}.audio-button{font-size:16px}.tray-heading p{font-size:19px}.feedback{font-size:19px}.next-button{font-size:23px}

/* 返回入口在題目和結算頁保持可見 */
.game-topline{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px}.home-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:47px;padding:6px 12px;border:2px solid #b5d1b7;border-radius:14px;background:#fffdf1;color:#236246;font-size:17px;font-weight:1000;box-shadow:0 3px 0 #bed5b8;touch-action:manipulation}.home-button>span:first-child{font-size:25px;line-height:1}.task-label{justify-self:center;font-size:16px}.score-pill{font-size:15px;white-space:nowrap}.route-row{font-size:15px}.choice-image{display:block;width:auto;height:min(86%,124px);max-width:86%;object-fit:contain;filter:none;flex:none}.choice:hover:not(:disabled) .choice-image{transform:none}.word-line strong.long-word{font-size:clamp(28px,5vw,43px);overflow-wrap:anywhere;min-width:0}.word-line strong.very-long-word{font-size:clamp(23px,4vw,34px)}

/* 第二種郵票慶祝畫面，與星星獎章逐回合輪替 */
.result-screen.variant-b{background:radial-gradient(circle at 50% 23%,#fff5c7 0 24%,transparent 53%),linear-gradient(160deg,#d9f0e2,#f3e9c7)}.result-screen.variant-b .result-rays{background:repeating-conic-gradient(from 11deg,#79b98c33 0 11deg,transparent 11deg 24deg)}.result-screen.variant-b .result-medal{border-radius:25px;border-style:dashed;background:#5fae80;box-shadow:0 8px 0 #2c7954,0 16px 28px #245a403d;transform:rotate(-7deg)}.result-screen.variant-b .result-feifei{order:3}.result-screen.variant-b .result-iggy{order:1}.result-screen.variant-b .result-abao{order:2}.result-actions{position:relative;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:13px;margin-top:18px}.result-actions .primary-button{margin-top:0}.result-home{min-height:58px}
.task-label #taskTitle span{width:auto;height:auto;margin:0;border-radius:0;background:none;color:inherit}.task-label #taskTitle .bpm-column{display:flex}

@media(max-width:680px){.start-letter{padding:22px 20px 20px}.start-letter h1{font-size:clamp(34px,8vw,43px)}.start-description{font-size:16px;margin:10px 0}.mode-picker{margin:10px 0 7px}.mode-picker legend{font-size:15px}.mode-options{gap:6px}.mode-option{min-height:82px;padding:5px 2px;font-size:15px;border-radius:12px}.mode-icon{font-size:21px}.level-control{padding:7px 11px 1px;margin:7px 0}.level-control label{font-size:17px}.round-summary{font-size:13px}.game-topline{grid-template-columns:auto 1fr auto;gap:6px}.task-label{grid-column:1/-1;grid-row:2;justify-self:center;font-size:16px}.score-pill{grid-column:3;grid-row:1;font-size:13px}.home-button{grid-column:1;grid-row:1;min-height:45px;padding:5px 9px;font-size:15px}.home-button .kid-text .bpm-column{font-size:.3em}.route-row{font-size:14px}.question-tag{font-size:12px}.audio-button{font-size:12px}.tray-heading p{font-size:15px}.feedback{font-size:17px}.next-button{font-size:21px}.result-screen h1{font-size:clamp(29px,8vw,39px)}.result-score{font-size:16px}.result-home{min-height:55px}.result-actions{gap:9px}}
@media(max-width:375px){.mode-option{min-height:93px}.start-letter{padding:18px 15px}.start-letter h1{font-size:33px}.start-description{font-size:15px}.mode-picker legend{font-size:14px}.home-button{font-size:14px}.score-pill{font-size:12px}.question-tag{font-size:11px}.word-line strong.long-word{font-size:26px}.word-line strong.very-long-word{font-size:22px}}

/* 主要提示縮成易讀短句，注音保持足夠高度並避免自動折行 */
.mode-options{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-option{flex-direction:row;min-height:65px;gap:8px;font-size:20px}.mode-option[data-mode=dinosaur]{grid-column:1/-1}.mode-icon{flex:none;font-size:23px}.mode-option .kid-text{width:auto;flex-wrap:nowrap}.kid-text .bpm-column{font-size:.44em}.score-pill{display:inline-flex;align-items:center;gap:5px}.score-pill strong{font-size:19px}.route-row #progressText{display:inline-flex;align-items:center;gap:1px;white-space:nowrap;font-size:16px}.progress-total{margin-left:3px}.task-label{font-size:19px}.question-tag{display:inline-flex;align-items:center;min-height:33px;font-size:18px}.tray-heading{min-height:37px}.tray-heading p{display:inline-flex;align-items:center;justify-content:center;flex-wrap:nowrap;white-space:nowrap;min-height:33px;font-size:23px;line-height:1.3}.audio-button{font-size:16px}.feedback{font-size:21px}
@media(max-width:680px){.mode-option{min-height:62px;font-size:18px}.mode-icon{font-size:21px}.mode-option[data-mode=dinosaur]{min-height:62px}.mode-picker legend{font-size:18px}.task-label{font-size:18px}.question-tag{font-size:16px}.tray-heading p{font-size:21px}.audio-button{font-size:15px}.feedback{font-size:19px}.home-button{font-size:17px}.route-row #progressText{font-size:15px}.score-pill{font-size:14px}.score-pill strong{font-size:19px}}
@media(max-width:375px){.mode-option{min-height:63px;font-size:16px;gap:4px}.mode-option .bpm-column{font-size:.38em}.mode-picker legend{font-size:17px}.question-tag{font-size:15px}.tray-heading p{font-size:20px}.audio-button{font-size:13px}.audio-button .replay-label{display:inline-flex!important}.home-button{font-size:16px}.route-row #progressText{font-size:14px}}

/* 介面文字以穩定的上下兩行呈現；卡片背面仍保留逐字側排注音 */
.kid-text,.mode-option .kid-text{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;flex-wrap:nowrap;width:auto;vertical-align:middle;line-height:1.08;white-space:nowrap}.kid-text .ui-main{display:block;font-size:1em;font-weight:inherit;line-height:1.1;white-space:nowrap}.kid-text .ui-reading{display:flex;align-items:center;justify-content:center;flex-wrap:nowrap;gap:.2em;margin-top:3px;font-size:.48em;font-weight:800;line-height:1.05;white-space:nowrap;color:currentColor;opacity:.88}.ui-syllable{position:relative;display:inline-block;white-space:nowrap}.ui-tone{color:#d32f2f;font-weight:1000}.ui-tone-neutral{position:absolute;left:0;top:-.52em;font-size:.95em}.start-letter h1 .kid-text,.start-description.kid-text{align-items:flex-start}.mode-option[aria-pressed=true] .ui-tone{color:#ffd280}.question-tag .kid-text{align-items:center}.tray-heading p{overflow:visible}.task-label #taskTitle .ui-main,.task-label #taskTitle .ui-reading{display:block}

/* 圖片固定在整張選項卡內的可視框；寬螢幕也不會沿原始像素溢出 */
.choice-image{position:absolute;inset:12px 14px;width:calc(100% - 28px);height:calc(100% - 24px);max-width:none;object-fit:contain;pointer-events:none}
.task-label #taskTitle .ui-reading{display:flex}.task-label #taskTitle .ui-syllable{display:inline-block}

/* kidsapp BpmWord：國字與旁側直排注音作為不可拆開的單位 */
.kid-text,.mode-option .kid-text{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;flex-wrap:nowrap;gap:.02em;width:auto;white-space:nowrap;line-height:1.15}.kid-text .bpm-word{display:inline-flex;align-items:center;justify-content:center;flex:none;padding-right:.3em;margin-right:.03em;white-space:nowrap}.kid-text .bpm-main-char{display:inline-block;flex:none;line-height:1.05}.kid-text .bpm-column{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;margin-left:.08em;font-size:.38em;line-height:1;color:currentColor}.kid-text .bpm-tone,.kid-text .bpm-tone-dot{color:#d32f2f}.start-letter h1 .kid-text,.start-description.kid-text{justify-content:flex-start}.task-label #taskTitle .bpm-word{display:inline-flex}.task-label #taskTitle .bpm-column{display:flex}.task-label #taskTitle .bpm-main-char,.task-label #taskTitle .bpm-onset,.task-label #taskTitle .bpm-rime{display:block}.task-label #taskTitle .bpm-tone,.task-label #taskTitle .bpm-tone-dot{display:flex}
@media(max-width:680px){.result-screen h1{font-size:clamp(24px,6.6vw,33px)}.result-score{font-size:15px}.result-copy{font-size:17px}}
@media(max-width:375px){.result-screen h1{font-size:23px}.result-score{font-size:14px}.mode-option{font-size:15px}.mode-icon{font-size:18px}.mode-option[data-mode=level] .mode-icon{font-size:14px}}
.mode-option[data-mode=level] .mode-icon{display:none}
#englishWord.long-word{overflow-wrap:normal;word-break:normal;hyphens:none}

/* 家長題庫管理：固定頁首和統計，單字清單獨立捲動 */
.settings-dialog{max-height:min(92dvh,800px);overflow:auto}
.settings-dialog.bank-open{width:min(94vw,640px);overflow:hidden}
.settings-page{min-width:0}
.bank-open .settings-page:not(.hidden){display:flex;flex-direction:column;max-height:calc(92dvh - 52px);min-height:0}
.bank-open .dialog-head{flex:none;margin-bottom:12px}
.back-button{width:39px;height:39px;flex:none;border:0;border-radius:11px;background:#e9f0e2;color:#40654b;font-size:30px;line-height:1}
.settings-link{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:75px;margin:18px 0 10px;padding:12px 17px;border:2px solid #b9d9b8;border-radius:17px;background:#eff8e9;color:#276748;text-align:left;box-shadow:0 3px 0 #c6dcc1}
.settings-link strong,.settings-link small{display:block}.settings-link strong{font-size:19px}.settings-link small{margin-top:4px;font-size:13px;color:#64816b}.settings-link>span:last-child{font-size:31px;line-height:1}
.bank-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;flex:none;margin:10px 0}
.bank-stat{min-width:0;padding:10px 4px;border-radius:12px;background:#eaf4e4;text-align:center}.bank-stat small,.bank-stat strong{display:block}.bank-stat small{font-size:12px;color:#58745d}.bank-stat strong{margin-top:3px;font-size:16px;color:#216544}
.bank-controls{display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:7px;flex:none;margin:6px 0}.bank-controls label{font-size:13px}.bank-topic-row{grid-template-columns:auto minmax(0,1fr)}.bank-topic-row[hidden]{display:none}.bank-controls input,.bank-controls select{min-width:0;width:100%;min-height:39px;padding:6px 8px;border:1px solid #b7cfb2;border-radius:9px;background:#fff;color:#285a40;font:inherit;font-size:14px}
.bank-list-count{flex:none;margin:5px 0;color:#64816b;font-size:13px;font-weight:800}
.bank-list{min-height:120px;overflow:auto;overscroll-behavior:contain;border:1px solid #d8e5d2;border-radius:13px;background:#fffdf8}
.bank-row{display:flex;align-items:center;gap:10px;min-height:74px;padding:8px 11px;border-bottom:1px solid #e5e9d9}.bank-row:last-child{border-bottom:0}
.bank-art{display:grid;place-items:center;flex:none;width:56px;height:56px;object-fit:contain;font-size:35px}.bank-sheet{background-repeat:no-repeat;background-size:500% 200%}
.bank-word{flex:1;min-width:0}.bank-word strong,.bank-word small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bank-word strong{font-size:18px;color:#205d41}.bank-word small{font-size:13px;color:#6b7b66}
.bank-sound{flex:none;width:38px;height:38px;border:1px solid #b8d4b5;border-radius:50%;background:#e8f5e7;color:#2d704f;font-size:20px}
.bank-toggle{appearance:none;position:relative;flex:none;width:50px!important;height:30px;margin:0;border-radius:99px;background:#bbc8b8;cursor:pointer;transition:background .2s}.bank-toggle:before{content:"";position:absolute;left:4px;top:4px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #30563b55;transition:transform .2s}.bank-toggle:checked{background:#3a9f64}.bank-toggle:checked:before{transform:translateX(20px)}
.bank-message{min-height:1.4em;flex:none;margin:9px 0;color:#9b5e29;font-size:13px;font-weight:800}.reset-bank{flex:none;align-self:flex-start;padding:8px 12px;border:1px solid #c8d6bb;border-radius:9px;background:#f6f8ef;color:#416e4d;font-size:13px;font-weight:800}

/* 手機視窗：以可用高度排版，答對顯示下一題後仍維持四張卡可見 */
@media(max-width:680px){
  html,body{min-height:100%;height:100%}
  .shell{display:flex;flex-direction:column;min-height:100dvh;height:100dvh;padding:0 10px max(8px,env(safe-area-inset-bottom))}
  .topbar{height:56px;min-height:56px;flex:none}
  .screen{min-height:0}
  .start-screen{flex:1;min-height:0}
  .start-letter{bottom:11px;max-height:calc(100% - 19px);overflow:auto}
  .play-screen{display:flex;flex:1;flex-direction:column;width:100%;min-height:0;margin:0 auto;animation:none}
  .game-topline{flex:none;margin:0 2px 5px}
  .route-row{flex:none;margin:0 3px 6px}
  .game-board{display:flex;flex:1;flex-direction:column;min-height:0}
  .question-wrap{flex:none;margin:14px 11px 0;align-items:center}
  .question-card{min-height:112px;padding:10px 12px 9px}
  .iggy-mini{height:63px;width:51px}
  .sort-tray{display:flex;flex:1;flex-direction:column;min-height:0;margin-top:9px;padding:9px 10px 8px}
  .tray-heading{flex:none;min-height:29px;margin-bottom:6px}
  .choices{flex:1;min-height:0;width:100%;grid-template-rows:repeat(2,minmax(0,1fr));gap:8px}
  .choice{height:auto;min-height:0}
  .choice-art{font-size:clamp(42px,14vw,70px)}
  .choice-illustrated{height:min(82%,104px)}
  .tray-bottom{flex:none;min-height:31px;padding-top:3px;gap:1px}
  .tray-bottom.has-next{min-height:80px}
  .feedback{font-size:16px;line-height:1}
  .next-button{min-height:54px;padding-block:4px;font-size:19px}
  .next-button .button-arrow{width:35px;height:35px}
  .result-screen{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;min-height:0;margin:0 auto;padding:20px 16px}
  .result-crew{flex:none;margin:0 auto 4px}
  .result-screen h1{margin:5px 0 12px}
  .result-actions{margin-top:8px}
  .settings-dialog{width:min(94vw,405px);padding:18px;max-height:92dvh}
  .settings-dialog.bank-open{width:min(96vw,640px)}
  .bank-open .settings-page:not(.hidden){max-height:calc(92dvh - 36px)}
  .bank-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .bank-controls{grid-template-columns:1fr 1fr}.bank-controls label{grid-row:1}.bank-controls input,.bank-controls select{grid-row:2}.bank-topic-row{grid-template-columns:auto minmax(0,1fr)}.bank-topic-row label,.bank-topic-row select{grid-row:auto}
}
@media(max-width:680px) and (max-height:740px){
  .task-label{font-size:15px}.game-topline{gap:3px}.route-row{margin-bottom:3px}
  .question-wrap{margin-top:7px}.question-card{min-height:92px;padding:7px 10px 5px}.question-tag{min-height:24px;padding:2px 6px;font-size:13px}.word-line{margin-top:2px}.word-line strong{font-size:clamp(29px,8vw,41px)}.audio-button{min-height:34px;padding:3px 6px}.iggy-mini{height:52px;width:42px}
  .sort-tray{margin-top:6px;padding:7px 8px 6px}.tray-heading{min-height:25px;margin-bottom:4px}.tray-heading p{min-height:25px;font-size:18px}.tray-heading .play-abao{height:38px}
  .choices{gap:6px}.choice-face{border-width:2px}.choice-face:before{inset:5px}.choice-illustrated{height:min(80%,90px)}.choice-image{inset:6px;width:calc(100% - 12px);height:calc(100% - 12px)}
  .tray-bottom.has-next{min-height:69px}.next-button{min-height:45px;font-size:17px}.next-button .button-arrow{width:29px;height:29px}
  .start-letter{padding:12px 15px 11px}.start-letter h1{font-size:clamp(29px,7vw,36px)}.start-description{margin:4px 0;font-size:14px}.mode-picker{margin:5px 0 4px}.mode-option,.mode-option[data-mode=dinosaur]{min-height:49px;font-size:16px}.level-control{margin:4px 0;padding:4px 9px 0}.round-summary{padding:5px 9px}.start-letter .primary-button{min-height:48px;margin-top:8px}.start-letter .eyebrow{margin-bottom:4px;font-size:12px}.letter-postmark{width:48px;height:48px}
  .result-medal,.result-screen:has(.result-iggy) .result-medal{width:70px;height:70px;margin-bottom:7px;font-size:40px}.result-crew{height:85px}.result-feifei{height:72px}.result-iggy{height:82px}.result-abao{height:68px}.result-score{padding:6px 12px}.result-score strong{font-size:27px}.result-actions .primary-button{min-height:49px}.result-home{min-height:49px}
  .result-screen>.eyebrow{margin-bottom:4px}.result-screen h1{margin-bottom:7px}.result-copy{margin-top:8px;margin-bottom:8px}
}

/* 恐龍長名稱可在文字區內換行；重聽鍵固定留在同一排並保持好按。 */
@media(max-width:680px){
  .word-line:has(.dinosaur-word.long-word){flex-wrap:nowrap;align-items:center}
  .word-line #englishWord.dinosaur-word.long-word{flex:1;min-width:0;max-width:none;font-size:clamp(22px,6vw,30px);line-height:1.02;overflow-wrap:anywhere;word-break:normal}
  .word-line #englishWord.dinosaur-word.very-long-word{font-size:clamp(20px,5.4vw,25px)}
  .word-line:has(.dinosaur-word.long-word) .audio-button{flex:none;justify-content:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:0}
  .word-line:has(.dinosaur-word.long-word) .audio-button .replay-label{display:none!important}
  .question-card:has(.dinosaur-word.long-word){height:auto}
}
@media(max-width:680px) and (max-height:610px){
  .topbar{height:49px;min-height:49px}.brand-copy small{display:none}.task-label{display:none}.game-topline{grid-template-columns:auto 1fr auto}.route-row{margin-bottom:2px}.question-wrap{margin-top:4px}.sort-tray{margin-top:4px}.tray-heading{margin-bottom:2px}.tray-bottom.has-next{min-height:62px}.next-button{min-height:40px}
  .start-sticker,.start-feifei,.start-abao{display:none}.start-letter{top:50%;bottom:auto;transform:translateY(-50%);animation:none}.start-letter .eyebrow{display:none}
}

/* 每個畫面各自抽三位郵局夥伴；每張姿勢圖都依原始影格比例顯示 */
.start-sticker{display:flex;align-items:flex-end;justify-content:center}
.start-sticker:after{content:"POST CREW"}
.spotlight-actor{display:block;flex:none;width:100%;height:auto;max-height:none;max-width:none;aspect-ratio:auto;background-repeat:no-repeat;background-position:0 0;filter:drop-shadow(0 5px 4px #285b3640)}
.start-sticker .spotlight-actor{align-self:flex-end}
.iggy-mini .spotlight-actor{max-width:100%;max-height:100%}
.result-crew{display:flex;align-items:flex-end;justify-content:center}
.result-crew .spotlight-actor{width:auto;height:100%;max-width:100%;animation:celebrateHop 1.7s ease-in-out infinite alternate}
.start-sticker .spotlight-actor{animation:actorBreath 3s ease-in-out infinite alternate}
.iggy-mini .spotlight-actor{animation:actorBreath 2.8s ease-in-out infinite alternate}
@media(max-width:680px) and (max-height:610px){.start-sticker{display:flex;top:4px;right:9px;width:63px;height:73px;border-width:3px;border-bottom-width:8px}.start-sticker:after{bottom:-7px;font-size:4px}}
@media(prefers-reduced-motion:reduce){.spotlight-actor,.start-sticker .spotlight-actor,.iggy-mini .spotlight-actor,.result-crew .spotlight-actor{animation:none!important}}

/* 三位角色獨立抽選；側邊角色改成郵票肖像，任何角色都能自然站位 */
.cast-stamp{display:flex;align-items:flex-end;justify-content:center;overflow:hidden;width:110px;height:118px;padding:5px;border:5px solid #fffdf1;border-radius:18px;background:#fff9e9;box-shadow:0 6px 0 #174b38,0 12px 22px #164b3640;transform:rotate(-5deg);z-index:1}
.cast-stamp .spotlight-actor{max-width:100%;max-height:100%;animation:actorBreath 3s ease-in-out infinite alternate}
.start-feifei.cast-stamp{left:13%;top:8%;width:135px;height:145px;animation:stickerFloat 4s ease-in-out infinite alternate}
.start-abao.cast-stamp{left:35%;bottom:7%;top:auto;width:104px;height:112px;animation:abaoBob 3s ease-in-out infinite alternate}
.play-feifei.cast-stamp{left:auto;right:10px;top:4px;width:70px;height:75px;z-index:3;animation:actorBreath 3.2s ease-in-out infinite alternate}
.tray-heading .play-abao.cast-stamp{right:8px;top:-21px;width:63px;height:66px;padding:3px;border-width:3px;border-radius:12px;animation:actorBreath 3s ease-in-out infinite alternate}
.cast-stamp.is-celebrating{animation:celebrateHop .65s ease-out!important}
.cast-stamp.is-reacting{animation:reactTilt .3s ease-in-out!important}
.result-crew>div{display:flex;align-items:flex-end;justify-content:center;flex:none;aspect-ratio:1;animation:abaoBob 2.5s ease-in-out infinite alternate}
.result-crew .spotlight-actor{animation:none}
.result-crew .result-iggy{margin:0}
@media(max-width:680px){
  .start-feifei.cast-stamp{left:10px;top:16px;width:85px;height:92px;border-width:4px;border-radius:13px}
  .start-abao.cast-stamp{left:17px;top:155px;bottom:auto;width:68px;height:74px;border-width:3px;border-radius:12px}
  .play-feifei.cast-stamp{left:auto;right:7px;top:3px;width:59px;height:63px;border-width:3px;border-radius:11px}
  .tray-heading .play-abao.cast-stamp{right:3px;top:-13px;width:43px;height:47px;border-width:2px}
  .result-crew{gap:1px}
}
@media(max-width:375px){.result-crew .result-feifei{height:68px}.result-crew .result-iggy{height:86px}.result-crew .result-abao{height:68px}}
@media(max-width:680px) and (max-height:610px){
  .start-feifei.cast-stamp,.start-abao.cast-stamp{display:flex;top:5px;bottom:auto;width:59px;height:66px;padding:2px;border-width:2px;border-radius:8px}
  .start-feifei.cast-stamp{left:8px}.start-abao.cast-stamp{left:80px}
  .play-feifei.cast-stamp{width:46px;height:49px}.tray-heading .play-abao.cast-stamp{width:37px;height:40px}
}
@media(prefers-reduced-motion:reduce){.cast-stamp,.cast-stamp .spotlight-actor,.result-crew>div{animation:none!important}}

/* 遊戲場景使用真正透明的角色立繪，保留原圖比例並擴大辨識面積 */
#playActorFrameA.iggy-mini{width:88px;height:118px;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none;transform:none;pointer-events:none}
#playActorFrameB.cast-stamp,#playActorFrameC.cast-stamp{overflow:visible;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;transform:none;pointer-events:none}
#playActorFrameB.cast-stamp{right:9px;top:2px;width:86px;height:94px}
.tray-heading #playActorFrameC.cast-stamp{right:8px;top:-35px;width:76px;height:82px}
#playActorFrameA .spotlight-actor,#playActorFrameB .spotlight-actor,#playActorFrameC .spotlight-actor{filter:drop-shadow(0 6px 4px #0b3e2b80)}
@media(max-width:680px){
  #playActorFrameA.iggy-mini{width:65px;height:88px}
  #playActorFrameB.cast-stamp{right:7px;top:2px;width:65px;height:70px}
  .tray-heading #playActorFrameC.cast-stamp{right:3px;top:-24px;width:59px;height:64px}
}
@media(max-width:375px){
  #playActorFrameA.iggy-mini{width:55px;height:76px}
  #playActorFrameB.cast-stamp{width:55px;height:59px}
  .tray-heading #playActorFrameC.cast-stamp{width:50px;height:55px}
}
@media(max-width:680px) and (max-height:740px){
  #playActorFrameA.iggy-mini{height:75px}
  #playActorFrameB.cast-stamp{height:57px}
  .tray-heading #playActorFrameC.cast-stamp{height:51px;top:-18px}
}

/* Larger transparent play cast. Actors may cross the question border, but never the choices. */
html{-webkit-text-size-adjust:100%}
button,.choice,.mode-option,.settings-link{touch-action:manipulation}
.question-wrap{padding-left:95px;gap:0}
#playActorFrameA.iggy-mini{position:absolute;left:-10px;bottom:-8px;width:124px;height:142px;z-index:2}
#playActorFrameB.cast-stamp{right:5px;top:-27px;width:118px;height:105px;z-index:2}
.tray-heading #playActorFrameC.cast-stamp{right:12px;top:-43px;width:92px;height:96px;z-index:2}
.question-card{z-index:1}
.choices{z-index:3}
.history-list{display:grid;gap:9px;min-height:70px;max-height:48dvh;overflow:auto;padding:4px 2px 10px;color:#41674e}
.history-row{display:grid;grid-template-columns:1fr auto;gap:3px 12px;align-items:center;padding:12px 14px;border:2px solid #d7e3c8;border-radius:13px;background:#fffdf3}
.history-row strong{font-size:17px}.history-row small{grid-column:1;color:#718a70}.history-row span{grid-column:2;grid-row:1/3;font-size:14px;font-weight:900;color:#276747}
@media(max-width:680px){
  .question-wrap{padding-left:60px}
  #playActorFrameA.iggy-mini{left:-12px;bottom:-8px;width:88px;height:105px}
  #playActorFrameB.cast-stamp{right:3px;top:-18px;width:87px;height:77px}
  .tray-heading #playActorFrameC.cast-stamp{right:6px;top:-37px;width:76px;height:82px}
}
@media(max-width:375px){
  .question-wrap{padding-left:53px}
  #playActorFrameA.iggy-mini{left:-10px;width:78px;height:96px}
  #playActorFrameB.cast-stamp{width:77px;height:71px}
  .tray-heading #playActorFrameC.cast-stamp{right:2px;top:-32px;width:65px;height:72px}
}
@media(max-width:680px) and (max-height:610px){
  #playActorFrameA.iggy-mini{height:79px;width:68px}
  #playActorFrameB.cast-stamp{top:-7px;height:70px;width:65px}
  .tray-heading #playActorFrameC.cast-stamp{top:-19px;height:57px;width:53px}
}
/* Three choices on each game setup page. */
.mode-option[data-mode=dinosaur]{grid-column:1/-1}
.brand{text-decoration:none}

/* Alternate answer format and explicit setup navigation. */
.topbar{position:relative}.setup-back{display:inline-flex;align-items:center;gap:5px;min-height:42px;padding:5px 12px;border:2px solid #b9d1b4;border-radius:99px;background:#fffdf3;color:#24634a;font-size:15px;font-weight:900;text-decoration:none;box-shadow:0 3px 0 #c5d9be}.setup-back:first-letter{font-size:24px}.setup-back:focus-visible{outline:4px solid #eaa52a;outline-offset:3px}
.answer-picker{border:0;padding:0;margin:10px 0 7px;min-width:0}.answer-picker legend{margin-bottom:7px;color:#42694d;font-size:16px;font-weight:1000}.answer-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.answer-option{min-height:51px;padding:5px 9px;border:2px solid #b9d3ae;border-radius:13px;background:#f0f6e7;color:#226046;font-size:15px;font-weight:1000;line-height:1.25;touch-action:manipulation}.answer-option[aria-pressed=true]{border-color:#e7bc5a;background:#246c4c;color:#fffbed;box-shadow:0 3px 0 #135039}.answer-option .kid-text{font-size:inherit;white-space:normal;flex-wrap:wrap}.auto-audio-control{display:flex;align-items:center;gap:9px;min-height:42px;margin:7px 0;color:#315d43;font-size:15px;font-weight:900;cursor:pointer}.auto-audio-control input{width:24px;height:24px;accent-color:#28774f}.auto-audio-control .kid-text{justify-content:flex-start}
.word-line strong.zhuyin-question{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0;font-size:clamp(22px,5.5vw,34px)}.word-line strong.zhuyin-question.long-reading{font-size:clamp(16px,4.5vw,25px)}.prompt-syllable{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:1.1em;min-height:1.8em;font-family:"Naikai","Noto Sans TC",system-ui,sans-serif;font-weight:900;writing-mode:vertical-rl;text-orientation:upright;line-height:1;color:#1d6849}.prompt-tone{position:absolute;right:-.48em;bottom:.05em;color:#cf3e35;font-size:.6em;writing-mode:horizontal-tb}.prompt-tone.light{top:-.5em;right:.15em;bottom:auto}.choice-english{display:block;max-width:95%;overflow-wrap:anywhere;color:#235d46;font-size:clamp(23px,5.5vw,38px);line-height:1.1;font-weight:1000;text-align:center}.choice-english.long{font-size:clamp(18px,4.2vw,28px)}.choice-english.very-long{font-size:clamp(15px,3.5vw,22px)}
@media(max-width:680px){.topbar .setup-back{min-height:34px;padding:4px 7px;font-size:12px}.topbar .setup-back span{font-size:11px}.topbar .brand{gap:5px}.topbar .brand-copy strong{font-size:13px}.topbar .settings-button{padding:5px 8px}.answer-picker{margin:7px 0 5px}.answer-picker legend{font-size:14px}.answer-options{gap:6px}.answer-option{min-height:44px;padding:4px;font-size:12px}.auto-audio-control{min-height:32px;margin:3px 0;font-size:13px}.auto-audio-control input{width:20px;height:20px}.start-letter:has(.answer-picker){padding-top:15px;padding-bottom:15px}.start-letter:has(.answer-picker) h1{font-size:clamp(31px,7.4vw,39px)}}
@media(max-width:375px){.topbar .brand-copy small{display:none}.topbar .settings-button{font-size:12px}.topbar .setup-back span{font-size:10px}.start-letter:has(.answer-picker){padding:10px 13px}.start-letter:has(.answer-picker) .eyebrow{display:none}.start-letter:has(.answer-picker) .mode-option{min-height:43px}.start-letter:has(.answer-picker) .start-description{margin:4px 0}}

.choice-back .chinese-audio-cue{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);padding:4px 10px;border-radius:999px;background:#266d4c;color:#fff;font-size:13px;font-weight:900;white-space:nowrap;pointer-events:none}.choice.revealed:not(:disabled) .choice-back{cursor:pointer}.choice.revealed:not(:disabled):focus-visible{outline:4px solid #e1a72f;outline-offset:3px}

/* The setup envelope contributes to desktop height instead of being clipped by the frame. */
@media (min-width:681px){
  .start-screen{display:flex;align-items:center;justify-content:flex-end;min-height:max(690px,calc(100svh - 110px));height:auto;padding:22px clamp(20px,5vw,55px);overflow:hidden}
  .start-letter{position:relative;top:auto;right:auto;width:min(430px,51%);margin:0;transform:rotate(1deg);animation:none}
}
/* A small native checkbox drives the decorative switch; no external library is needed. */
.auto-audio-control{width:max-content;max-width:100%;min-height:44px;gap:10px}
.auto-audio-control input{position:absolute;width:1px;height:1px;opacity:0}
.switch-track{position:relative;display:inline-block;flex:none;width:52px;height:30px;border:2px solid #a9c6ad;border-radius:99px;background:#d9e5d7;box-shadow:inset 0 2px 3px #52755b33;transition:background .2s}
.switch-track:after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fffdf2;box-shadow:0 2px 4px #315b4240;transition:transform .2s}
.auto-audio-control input:checked+.switch-track{background:#277b54;border-color:#1f6948}
.auto-audio-control input:checked+.switch-track:after{transform:translateX(22px)}
.auto-audio-control input:focus-visible+.switch-track{outline:4px solid #eaa52a;outline-offset:3px}
/* In the listen-and-find-word mode, the prompt is an illustrated parcel cover. */
.word-line strong.parcel-prompt{display:flex;align-items:center;justify-content:center;min-width:0;flex:1;font-size:inherit}
.parcel-cover{position:relative;display:grid;place-items:center;width:min(100%,270px);height:96px;border:3px solid #b8925d;border-radius:12px;background:linear-gradient(135deg,#f3dfb5 0 15%,#f8edce 15% 85%,#e5c68d 85%);box-shadow:inset 0 0 0 7px #fff7e8,0 5px 0 #9b7647;overflow:hidden}
.parcel-cover:before,.parcel-cover:after{content:"";position:absolute;z-index:1;background:#c99858aa;pointer-events:none}
.parcel-cover:before{width:17px;height:100%;left:14px;top:0}.parcel-cover:after{height:11px;width:100%;left:0;bottom:10px}
.parcel-art{display:grid;place-items:center;max-width:76%;max-height:86%;font-size:70px;line-height:1;object-fit:contain;filter:drop-shadow(0 3px 2px #6349262b)}
.parcel-art.parcel-sheet{width:78px;height:78px;background-size:500% 200%;background-repeat:no-repeat}
.parcel-sent .parcel-cover{opacity:.2;transform:scale(.9);transition:opacity .2s,transform .2s}
.parcel-delivery{position:absolute;z-index:8;pointer-events:none;filter:drop-shadow(0 9px 8px #123d2e6b);transform-origin:center}
.parcel-delivery .parcel-cover{width:100%;height:100%}
.parcel-delivery-stamp{position:absolute;z-index:3;right:9%;top:9%;display:grid;place-items:center;width:34px;height:34px;border:3px double #1b7552;border-radius:50%;background:#f9f0d9e8;color:#1b7552;font-size:23px;font-weight:1000;transform:rotate(-17deg);animation:parcelStamp .45s cubic-bezier(.12,1.5,.3,1) both}
@keyframes parcelStamp{from{opacity:0;transform:scale(2.2) rotate(-26deg)}to{opacity:1;transform:scale(1) rotate(-17deg)}}
@supports (overflow:clip){html{overflow-x:clip}}
@media(max-width:680px){.parcel-cover{height:74px;width:min(100%,220px)}.parcel-art{font-size:53px}.parcel-art.parcel-sheet{width:60px;height:60px}}

@media(min-width:681px) and (max-height:800px){.shell{padding-bottom:26px}.start-screen{height:calc(100svh - 110px);min-height:0;padding:10px 32px}.start-letter{max-height:100%;overflow:auto;padding:17px 23px 15px}.start-letter .eyebrow{margin-bottom:4px;font-size:12px}.start-letter h1{font-size:clamp(34px,3.5vw,45px);line-height:1.08}.start-description{margin:7px 0;font-size:13px;line-height:1.3}.start-letter .mode-picker{margin:6px 0}.start-letter .mode-option{min-height:45px}.start-letter .answer-picker{margin:6px 0}.start-letter .answer-option{min-height:38px}.start-letter .auto-audio-control{margin:3px 0}.start-letter .round-summary{padding:5px 10px}.start-letter .primary-button{min-height:46px;margin-top:8px;padding:6px 10px 6px 15px;font-size:17px}.start-letter .button-arrow{width:29px;height:29px}}
@media(min-width:681px) and (max-height:800px){
  .play-screen .game-topline{margin-bottom:5px}
  .play-screen .route-row{margin-bottom:5px}
  .play-screen .board-scene{height:90px}
  .play-screen .question-wrap{margin:12px 24px 0}
  .play-screen .iggy-mini{width:63px;height:79px}
  .play-screen .question-card{min-height:115px;padding:12px 17px 10px}
  .play-screen .parcel-cover{height:70px;width:min(100%,230px)}
  .play-screen .parcel-art{font-size:52px}
  .play-screen .parcel-art.parcel-sheet{width:58px;height:58px}
  .play-screen .sort-tray{margin-top:10px;padding:11px 18px 10px}
  .play-screen .tray-heading{margin-bottom:7px}
  .play-screen .choices{gap:8px}
  .play-screen .choice{height:110px}
  .play-screen .tray-bottom{min-height:45px}
}

/* U1 page transitions: same-origin page changes cross-fade and slide; browsers without support switch instantly. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:dinoPageOut .28s ease-in both}
::view-transition-new(root){animation:dinoPageIn .38s cubic-bezier(.2,.8,.25,1) both}
@keyframes dinoPageOut{to{opacity:0;transform:translateY(-14px) scale(.985)}}
@keyframes dinoPageIn{from{opacity:0;transform:translateY(22px) scale(.985)}}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}

/* 看圖片選單字（導演 2026-10-21）：題目圖要完整看見。圖放進大張郵票框，膠帶只貼在框外角落，單字卡改矮。 */
.is-picture-prompt .question-card{min-height:0;padding:12px 14px 16px}
.is-picture-prompt .word-line{position:static;display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;margin-top:6px}
.is-picture-prompt .word-line strong.parcel-prompt{flex:0 0 auto}
.is-picture-prompt .parcel-cover{width:clamp(170px,52vw,250px);height:auto;aspect-ratio:1;padding:10px;border:0;border-radius:4px;overflow:visible;
  background:#fffdf6;box-shadow:0 0 0 2px #e3d3ad,0 6px 0 #c9b07a,0 10px 18px #6b4d2333;
  -webkit-mask:radial-gradient(circle 5px at 50% 50%,transparent 98%,#000) -7px -7px/14px 14px round,linear-gradient(#000 0 0) 7px 7px/calc(100% - 14px) calc(100% - 14px) no-repeat;
  mask:radial-gradient(circle 5px at 50% 50%,transparent 98%,#000) -7px -7px/14px 14px round,linear-gradient(#000 0 0) 7px 7px/calc(100% - 14px) calc(100% - 14px) no-repeat}
.is-picture-prompt .parcel-cover:before,.is-picture-prompt .parcel-cover:after{display:none}
.is-picture-prompt .parcel-art{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;border-radius:2px;background:#fff;font-size:clamp(80px,26vw,130px);text-align:center;line-height:1.3}
.is-picture-prompt .parcel-art.parcel-sheet{width:100%;height:100%;background-size:500% 200%}
/* Tape pieces sit on the frame corners, never on the picture. */
.is-picture-prompt .parcel-prompt{position:relative}
.is-picture-prompt .parcel-prompt:before,.is-picture-prompt .parcel-prompt:after{content:"";position:absolute;z-index:2;width:46px;height:16px;background:#e9cf94cc;box-shadow:0 1px 2px #6b4d2333;pointer-events:none}
.is-picture-prompt .parcel-prompt:before{left:-14px;top:4px;transform:rotate(-38deg)}
.is-picture-prompt .parcel-prompt:after{right:-14px;bottom:4px;transform:rotate(-38deg)}
.is-picture-prompt .audio-button{position:absolute;right:10px;top:8px;z-index:3}
.is-picture-prompt .choices{align-content:start;grid-auto-rows:auto}
.is-picture-prompt .choice{height:auto;min-height:64px}
.is-picture-prompt .choice-face:after{display:none}
.is-picture-prompt .choice-meaning{font-size:clamp(22px,6vw,32px)}
@media(max-width:680px){.is-picture-prompt .audio-button .replay-label{display:none!important}.is-picture-prompt .audio-button{min-width:0!important;width:44px;height:44px;padding:0!important;justify-content:center}}
/* 答對後題目圖留著（飛走的是複製的郵票）；短卡上的「聽中文」縮成角落的 ♫ */
.is-picture-prompt .parcel-sent .parcel-cover{opacity:1;transform:none}
.is-picture-prompt .chinese-audio-cue{position:absolute;left:8px;top:6px;margin:0;padding:3px 7px;font-size:13px}
.is-picture-prompt .chinese-audio-cue > span{display:none}
/* iPad 直式（導演 2026-10-21）：遊戲畫面撐滿高度、加寬，四張選項卡跟著變大，不留大片空白 */
@media (min-width:681px) and (max-aspect-ratio:1/1){
.shell{min-height:100svh;display:flex;flex-direction:column}
.play-screen:not(.hidden){display:flex;flex:1;flex-direction:column;width:100%;max-width:960px;min-height:0;padding-bottom:18px}
.play-screen .game-board{display:flex;flex:1;flex-direction:column;min-height:0}
.play-screen .board-scene{height:120px}
.play-screen .question-card{min-height:140px}
.play-screen .sort-tray{display:flex;flex:1;flex-direction:column;min-height:0;padding:14px 22px 12px}
.play-screen .choices,.is-picture-prompt .choices{flex:1;width:100%;max-width:none;min-height:0;grid-template-rows:repeat(2,minmax(0,1fr));align-content:stretch;gap:16px}
.play-screen .choice,.is-picture-prompt .choice{height:auto;min-height:0}
.play-screen .choice-art{font-size:clamp(84px,13vw,140px)}
.play-screen .choice-english{font-size:clamp(30px,5vw,46px)}
.is-picture-prompt .choice-meaning{font-size:clamp(30px,4.6vw,42px)}
}

/* 統一標題列後（2026-10-22）：遊戲中房子移到標題列，任務名靠左、分數靠右 */
.game-topline{grid-template-columns:minmax(0,1fr) auto!important}
.game-topline .task-label{grid-column:auto!important;grid-row:auto!important;justify-self:start!important}
.game-topline .score-pill{grid-column:2;justify-self:end}
