@font-face{font-family:DukeChalk;src:local('Chalkboard SE'),local('ChalkboardSE-Regular');font-weight:100 900;font-display:swap}
:root{font-family:'PingFang TC','Noto Sans TC','Microsoft JhengHei',sans-serif;color:#624579;--gold:#ffe384;--english:DukeChalk,'Chalkboard SE','Comic Sans MS',cursive;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#6a9c78}button,select{font:inherit}button{cursor:pointer;touch-action:manipulation;color:inherit;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #ffe982;outline-offset:4px}[hidden]{display:none!important}:lang(en),.letter,.slot,.part,.word{font-family:var(--english)}.defs{position:absolute;width:0;height:0;overflow:hidden}.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.world{position:fixed;inset:0;z-index:-3;background:url('assets/park-world.webp') center/cover,linear-gradient(#8879c9,#a4d58d);transform:scale(1.015)}.shade{position:fixed;inset:0;z-index:-2;background:linear-gradient(#3b377c26,transparent 40%,#28574766)}body.playing .shade{background:linear-gradient(#42337b45,#27595980)}.fireflies{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.fireflies i{position:absolute;font-style:normal;color:#fff6b4;text-shadow:0 0 12px #ffed6f;font-size:18px;animation:twinkle 3s infinite alternate}.fireflies i:nth-child(1){left:7%;top:25%}.fireflies i:nth-child(2){left:22%;top:67%;animation-delay:1s}.fireflies i:nth-child(3){right:9%;top:49%;animation-delay:.3s}.fireflies i:nth-child(4){right:26%;top:18%;animation-delay:1.5s}.fireflies i:nth-child(5){left:40%;top:12%;font-size:12px}.fireflies i:nth-child(6){left:6%;top:82%;animation-delay:1.8s}.header{max-width:1320px;margin:auto;padding:23px 34px;display:flex;justify-content:space-between;align-items:center;gap:15px;position:relative;z-index:5}.brand{display:flex;align-items:center;gap:10px;color:#fff6d5;text-decoration:none;text-shadow:0 2px 8px #434166aa}.brand-star{font-size:36px;color:#fff0a2;filter:drop-shadow(0 0 8px #fff2a377)}.brand b{display:block;font-size:21px;font-weight:500}.brand small{display:block;font-size:10px;letter-spacing:2px;margin-top:4px}.header-actions{display:flex;align-items:center;gap:12px}.glass-btn{display:flex;align-items:center;gap:8px;background:#3b44794d;border:1px solid #ffffff66;border-radius:50px;color:#fff7dc;padding:9px 15px;backdrop-filter:blur(15px);font-size:12px}.glass-btn b{font-size:15px;font-weight:400;color:#ffec9a}.help-btn{width:34px;height:34px;background:#fff5d9dd;border:1px solid #fff4bc;border-radius:50%;color:#7c6496;font-family:var(--english);font-size:19px}main{position:relative;max-width:1200px;margin:0 auto;min-height:calc(100vh - 150px);outline:none}.home{padding:8px 28px 30px}.home-heading{text-align:center}.eyebrow{display:block;font-size:11px;letter-spacing:3px;font-weight:600;color:#9867af}.home .eyebrow{color:#fff4cd;text-shadow:0 2px 8px #57376c;font-size:11px}.home h1{font-size:52px;line-height:1.3;margin:10px 0 8px;color:#fff1a7;text-shadow:0 3px 0 #a96c9b,0 6px 20px #694179;letter-spacing:5px;font-weight:900}.home h1 .duke-title{font-family:var(--english);font-size:34px;display:block;font-weight:500;letter-spacing:1px;color:#fff5d9;text-shadow:0 2px 0 #a579ba}.home-intro{margin:12px 0 0;color:#fffdf0;font-size:13px;text-shadow:0 2px 8px #284c5f;letter-spacing:1px;line-height:1.9}.attractions{display:grid;grid-template-columns:1fr 190px 1fr;align-items:center;gap:23px;max-width:1000px;margin:23px auto 16px}.attraction{position:relative;background:linear-gradient(150deg,#fff6faee,#eed5fff0);border:3px solid #ffe9bb;border-radius:25px;padding:17px 22px 18px;min-height:254px;box-shadow:0 8px 0 #7e56a94f,0 12px 35px #38416947;transition:transform .2s;text-align:center}.attraction.train-card{background:linear-gradient(150deg,#e8fff9ef,#bce8f8ee)}.attraction:hover{transform:translateY(-5px) rotate(-1deg)}.attraction.selected{border-color:#ffdd69;box-shadow:0 0 0 4px #fff3aa40,0 8px 0 #7e56a94f,0 12px 35px #38416947}.attraction.selected:after{content:'✓';display:grid;place-items:center;position:absolute;right:-9px;top:-11px;width:30px;height:30px;border-radius:50%;background:#ffde71;border:3px solid #fff4c3;color:#91638b;font-weight:800}.attraction h2{font-size:25px;margin:8px 0 1px;letter-spacing:2px;color:#84509c}.train-card h2{color:#327b9c}.attraction .en{display:block;font-size:12px;color:#9c70ac}.train-card .en{color:#4b8ca7}.attraction p{font-size:11px;line-height:1.8;color:#8d6a9a;margin:9px 0 0}.train-card p{color:#58879b}.attraction-art{height:107px;position:relative;width:180px;margin:0 auto}.mini-machine{position:absolute;left:35px;top:0;width:110px;height:105px;border-radius:21px 21px 12px 12px;border:5px solid #eab973;background:linear-gradient(140deg,#fca3d0,#ba83d6);box-shadow:0 3px 0 #b77d8f}.mini-machine:before{content:'';position:absolute;inset:20px 8px 19px;background:linear-gradient(140deg,#d4f8ef,#9bcde1);border-radius:9px;box-shadow:inset 0 0 0 2px #fff4cb}.mini-machine:after{content:'✦';position:absolute;bottom:0;left:38px;color:#ffe799;font-size:14px}.mini-claw{position:absolute;left:43px;top:9px;width:15px;height:30px;border:3px solid #8d7298;border-top:0;border-radius:0 0 10px 10px}.mini-machine img{position:absolute;width:40px;height:40px;object-fit:contain;bottom:23px;left:29px}.floating-letter{position:absolute;display:grid;place-items:center;width:35px;height:35px;border-radius:50%;font-size:21px;box-shadow:0 4px 0 #aa729c55;border:2px solid #fff0c1;background:#ffd87c;color:#93648a;transform:rotate(-12deg);left:6px;bottom:11px}.floating-letter.right{left:auto;right:3px;top:22px;background:#a9ead9;color:#428e97;transform:rotate(13deg)}.mini-train{position:absolute;width:120px;height:82px;left:2px;top:16px;filter:drop-shadow(0 5px 0 #59859520)}.mini-car{position:absolute;right:0;top:45px;width:67px;height:42px;background:#e9a5c6;border:3px solid #c881a8;border-radius:8px;display:flex;justify-content:center;align-items:center;font-family:var(--english);font-size:19px;color:#fff7da;transform:rotate(-3deg)}.mini-car:after{content:'●　●';font-size:18px;position:absolute;bottom:-17px;color:#7361a6;letter-spacing:13px;left:2px;white-space:nowrap}.duke-guide{text-align:center;align-self:end}.duke-guide img{width:190px;height:190px;object-fit:contain;filter:drop-shadow(0 9px 5px #304b5b35)}.duke-bubble{background:#fffae9;border:2px solid #f7d790;border-radius:17px;padding:9px 11px;font-size:11px;line-height:1.8;color:#95649a;box-shadow:0 5px 10px #4d485d25;position:relative;margin:0 -9px}.duke-bubble:after{content:'';width:12px;height:12px;background:#fffae9;border-right:2px solid #f7d790;border-bottom:2px solid #f7d790;position:absolute;bottom:-8px;left:50%;transform:rotate(45deg)}.setup{max-width:1000px;margin:20px auto 0;background:linear-gradient(120deg,#fffbedf5,#f7ecfff2);border:2px solid #fff1bf;border-radius:20px;padding:17px 22px;display:flex;justify-content:space-between;align-items:center;gap:20px;box-shadow:0 10px 25px #3c42522b}.setup-title{font-size:11px;color:#8c669d;display:block;margin-bottom:9px;letter-spacing:1px}.vowels{display:flex;gap:7px;flex-wrap:wrap}.vowel{display:flex;gap:6px;align-items:center;justify-content:center;border:1px solid #d8c4e8;border-bottom:3px solid #d0b4e0;border-radius:11px;background:#fcf8ff;color:#87609e;padding:5px 12px;min-height:39px;font-size:11px}.vowel b{font-family:var(--english);font-size:22px;font-weight:400}.vowel span{font-size:10px}.vowel.active{background:#b8e5df;border-color:#8fcac8;border-bottom-color:#77b6b7;color:#306f76}.setup-launch{display:flex;align-items:center;gap:12px}.round-select{background:#fffaf1;border:1px solid #dfcce4;border-radius:10px;color:#886595;font-size:11px;padding:9px;min-height:40px}.primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 23px;min-height:47px;background:linear-gradient(#ffe89b,#ffc85b);border:2px solid #fff0b6;border-bottom:5px solid #df9f50;color:#784169;border-radius:14px;font-size:14px;font-weight:700;box-shadow:0 5px 15px #c3895150;transition:filter .15s,transform .15s;white-space:nowrap}.primary:hover{filter:brightness(1.06);transform:translateY(-2px)}.primary:disabled{filter:grayscale(.5);opacity:.55;box-shadow:none}.secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #ccb5de;border-bottom:3px solid #bba0d2;border-radius:12px;background:#f4eaff;color:#82529d;padding:10px 17px;font-size:12px;min-height:43px}.home-note{text-align:center;color:#fff5de;font-size:10px;text-shadow:0 1px 8px #34504e;margin:17px 0 0;letter-spacing:.7px}footer{text-align:center;color:#fff4d4;font-size:10px;letter-spacing:1px;padding:14px 20px 23px;text-shadow:0 1px 8px #34504e}footer span{display:block;font-size:11px;margin-top:5px}.game{max-width:1060px;margin:auto;padding:7px 25px 25px}.game-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;gap:12px;color:#fff8d7}.back-btn{display:flex;align-items:center;gap:7px;background:#4c567355;border:1px solid #ffffff55;border-radius:30px;color:#fff8d7;padding:8px 14px;font-size:11px}.back-btn .icon{width:16px;height:16px}.game-progress{display:flex;align-items:center;gap:14px;flex:1;justify-content:center;max-width:400px}.progress-track{height:8px;background:#3e506e55;border:1px solid #fff1b950;border-radius:20px;overflow:hidden;flex:1}.progress-fill{height:100%;background:linear-gradient(90deg,#ffdc7e,#ffeec1);transition:width .4s;border-radius:20px}.count-label{font-family:var(--english);font-size:17px;white-space:nowrap}.game-stamp{font-size:11px;color:#fff4c4}.play-card{border:3px solid #fbe6a4;background:linear-gradient(125deg,#fff9eef5,#f5e9fff5);border-radius:28px;box-shadow:0 12px 0 #573d7b40,0 18px 45px #213d5b50;overflow:hidden}.play-title{display:flex;justify-content:space-between;align-items:center;padding:19px 25px 15px;gap:15px}.play-title h1{font-size:25px;letter-spacing:2px;color:#8657a2;margin:0 0 5px}.play-title p{font-size:11px;color:#93739f;margin:0;line-height:1.8}.mode-label{font-size:10px;border:1px solid #dcc3e7;border-radius:30px;padding:6px 10px;background:#edddfa;color:#8e5aa7;white-space:nowrap}.play-body{display:grid;grid-template-columns:minmax(0,1fr) 185px;gap:16px;padding:0 24px 15px}.play-main{min-width:0}.audio-row{display:flex;justify-content:center;align-items:center;margin:0 0 12px}.listen-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(#a6e8df,#77c9d0);border:2px solid #d4fff1;border-bottom:4px solid #51a5b4;color:#306a8b;border-radius:30px;padding:10px 23px;font-size:13px;font-weight:700;min-height:48px;min-width:150px;box-shadow:0 4px 12px #70a6b126}.listen-btn.playing{animation:audio-pulse .8s infinite}.stage{position:relative;min-height:240px;display:flex;align-items:end;justify-content:center;overflow:hidden}.claw-stage{border:8px solid #c98ebc;border-bottom-width:15px;border-radius:22px 22px 17px 17px;background:radial-gradient(ellipse at 30% 20%,#fffaff9c,transparent 70%),linear-gradient(#b7e7e5,#d8eff2);box-shadow:inset 0 0 0 3px #fff0bc,0 4px 0 #ad74a5;padding:126px 15px 15px}.claw-stage:before{content:'';position:absolute;top:0;left:0;right:0;height:19px;background:repeating-linear-gradient(100deg,#dd90c3 0px,#dd90c3 30px,#fff0bd 30px,#fff0bd 60px);border-bottom:3px solid #f7d89d;z-index:4}.claw-stage:after{content:'✦　　✧　　　✦';position:absolute;inset:49px 15px auto;color:#ffffffbd;font-size:25px;pointer-events:none}.claw{position:absolute;width:80px;height:100px;top:15px;left:calc(50% - 40px);z-index:3}.claw svg{width:100%;height:100%;overflow:visible}.claw-stage.won .claw{animation:claw-catch 1s ease-in-out}.mystery{position:absolute;top:78px;left:calc(50% - 33px);width:66px;height:66px;border-radius:50%;display:grid;place-items:center;font-family:var(--english);font-size:36px;color:#9b8cc3;background:linear-gradient(135deg,#ffffedaa,#fff8e459);border:2px solid #fffdf2;box-shadow:0 5px 15px #809baf20;z-index:1}.prize{position:absolute;width:100px;height:100px;object-fit:contain;top:34px;left:calc(50% - 50px);z-index:2;animation:prize-in .6s ease-out}.slots{display:flex;justify-content:center;gap:10px;position:relative;z-index:4}.slot{width:60px;height:65px;border:2px dashed #aa9cc7;border-radius:13px;background:#ffffff77;display:grid;place-items:center;color:#725b91;font-size:36px;position:relative}.slot.locked{border:0;background:transparent;color:#5a6f8c}.slot.empty:after{content:'';width:21px;height:3px;background:#b2a0c5;border-radius:4px}.slot.filled{border:2px solid #f9e6a8;border-bottom:5px solid #deae63;background:linear-gradient(#fff3bb,#ffda8c);color:#95657d}.slot.focused{outline:3px solid #f7f4ba;outline-offset:3px}.slot.drag-over{background:#d1b6ef;outline:3px solid #b58bd1}.slot-number{position:absolute;bottom:1px;right:5px;font-size:9px;opacity:.5}.slots.correct .slot.filled{background:linear-gradient(#ddf7bf,#bfe99b);border-bottom-color:#8fbd78;color:#5f8c57}.slots.wrong .slot.filled{background:#f8cecf;border-color:#dea0b2;color:#a56b86}.stage-label{font-size:9px;color:#9475a2;text-align:center;margin:9px 0 0;min-height:15px}.train-stage{background:linear-gradient(#d8defb88,#d8f0e791);border:2px solid #c7c1e6;border-radius:21px;min-height:240px;align-items:end;padding:130px 14px 20px}.train-stage:before{content:'';position:absolute;left:0;right:0;bottom:29px;height:10px;background:repeating-linear-gradient(90deg,#bb8ca3 0,#bb8ca3 7px,transparent 7px,transparent 22px);border-top:3px solid #9e85a5;border-bottom:3px solid #9e85a5}.train-row{display:flex;align-items:end;gap:8px;position:relative;z-index:4;padding-bottom:7px;max-width:100%;transition:transform .7s ease-in,opacity .7s}.departing .train-row{transform:translateX(120%);opacity:0}.locomotive{width:107px;height:76px;flex-shrink:0;margin-bottom:-7px}.train-stage .slots{gap:9px}.train-stage .slot{width:57px;height:59px;background:linear-gradient(#eeb6d5,#d893c1);border:2px solid #fff0b5;border-bottom:6px solid #ba75aa;border-radius:12px 12px 7px 7px;color:#fff8d0;font-size:33px;margin-bottom:7px;box-shadow:0 3px 0 #826a9b}.train-stage .slot.empty:after{background:#fae1ed}.train-stage .slot:before{content:'●　●';font-size:18px;position:absolute;bottom:-22px;left:2px;letter-spacing:5px;color:#79629f;text-shadow:0 1px 0 #fff1b1;white-space:nowrap;pointer-events:none}.train-stage .slot.filled{background:linear-gradient(#fff2b4,#ffd485);color:#95657d;border-bottom-color:#d6aa6b}.train-stage .mystery{top:34px}.train-stage .prize{top:10px}.station-sign{position:absolute;top:25px;left:16px;font-size:10px;line-height:1.7;color:#8a79a3;border-left:3px solid #bca1bd;padding-left:8px}.station-star{position:absolute;right:20px;top:25px;font-size:25px;color:#e5bf63}.duke-sidebar{text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-width:0}.duke-sidebar img{width:167px;height:145px;object-fit:contain}.duke-message{margin:0;font-size:11px;line-height:1.9;color:#91649e;background:#fff8e9;border:1px solid #f0dbb4;border-radius:13px;padding:8px 11px;max-width:180px}.hint-btn{background:none;border:0;color:#92719f;font-size:10px;padding:6px 8px;text-decoration:underline;text-underline-offset:3px}.hint-picture{width:90px!important;height:90px!important;object-fit:contain;background:#fffdf1;border-radius:14px;border:1px solid #e6d3e8;padding:6px}.audio-warning{font-size:10px;line-height:1.6;color:#b27b70;text-align:center;margin:6px 0 0}.parts-panel{background:linear-gradient(100deg,#e8d9f4aa,#fce7eeaa);padding:15px 24px 17px;border-top:1px solid #e5d3ec}.parts-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;font-size:10px;color:#9165a5}.reset-btn{background:none;border:0;color:#8f67a2;font-size:10px;display:flex;align-items:center;gap:5px;padding:4px}.reset-btn .icon{width:13px;height:13px}.parts-tray{display:flex;justify-content:center;gap:11px;flex-wrap:wrap;min-height:62px}.part{width:61px;height:61px;border:2px solid #fff3c8;border-bottom:5px solid #d8a2bd;border-radius:16px;background:linear-gradient(135deg,#ffc5d7,#f09fc3);font-size:32px;color:#995083;box-shadow:0 4px 8px #9a70b320;position:relative;transition:transform .15s;user-select:none}.claw-game .part{border-radius:50%}.part:nth-child(3n+2){background:linear-gradient(135deg,#c4f0e5,#85d5d1);border-bottom-color:#5eb3ba;color:#36798b}.part:nth-child(3n){background:linear-gradient(135deg,#e5d1ff,#b9a2ec);border-bottom-color:#9a80d0;color:#704899}.part:hover:not(:disabled){transform:translateY(-5px) rotate(-5deg)}.part.used{opacity:.22;border-style:dashed;box-shadow:none}.part:disabled:not(.used){opacity:.6}.part-key{position:absolute;bottom:3px;right:8px;font-size:9px;opacity:.6}.feedback{padding:12px 20px;text-align:center;font-size:12px;line-height:1.8;color:#8c669d}.feedback:empty{display:none}.feedback strong{font-family:var(--english);font-size:23px;color:#8659a3;margin:0 4px}.feedback.success{background:#edf6df;color:#66864f}.feedback.error{background:#ffedf0;color:#a16a83}.tiny-audio{border:0;background:none;padding:3px;vertical-align:middle;color:#719095}.tiny-audio .icon{width:18px;height:18px}.play-actions{padding:15px 20px 19px;display:flex;align-items:center;justify-content:center;gap:12px}.play-actions .primary{min-width:190px}.round-foot{display:flex;justify-content:space-between;gap:12px;margin:17px 3px 0;color:#fff2c8;font-size:10px;text-shadow:0 1px 4px #31546a}.result{max-width:850px;margin:12px auto 20px;padding:27px;text-align:center;border:3px solid #ffedb4;background:linear-gradient(140deg,#fff8eff5,#f5e6fff5);border-radius:29px;box-shadow:0 16px 50px #28496655}.result-duke{width:190px;height:150px;object-fit:contain;display:block;margin:auto}.result .eyebrow{margin-top:4px;font-size:10px}.result h1{font-size:30px;letter-spacing:2px;color:#8c5fa4;margin:11px 0 8px}.result-intro{font-size:12px;line-height:1.9;color:#93709e;margin:0}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:23px 0}.stat{background:#fffdf2cc;border:1px solid #e5cdec;border-radius:15px;padding:15px 5px}.stat b{display:block;font-family:var(--english);color:#9466b1;font-size:29px;font-weight:400}.stat span{font-size:10px;color:#9671a4}.round-collection{text-align:left}.round-collection h2{font-size:12px;color:#8c659d;margin:0 0 12px}.round-collection h2 small{font-size:10px;color:#a080ac;font-weight:400}.reward-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.reward-card{border:1px solid #ddcaeb;border-radius:13px;background:#fffdf5;padding:8px 5px;color:#9165a3;position:relative;text-align:center}.reward-card img{width:100%;height:70px;object-fit:contain;display:block}.reward-card .word{font-size:18px;display:block}.reward-card.missed{border:2px solid #efbf80;background:#fff7df}.reward-card .icon{position:absolute;right:5px;top:5px;width:13px;height:13px;color:#bda0c9}.result-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:23px}.result-actions .primary{font-size:13px}.hint-note{font-size:10px;color:#9c77a0;margin:13px 0 0}.collection-note{color:#ac7b49;font-size:11px;margin:15px 0 0}.collection-group h3{font-family:var(--english);font-size:26px;font-weight:400;margin:20px 0 10px;color:#9d6bb6}.collection-group h3 small{font-family:'PingFang TC',sans-serif;font-size:11px;margin-left:8px;color:#a07cab}.collection-group .reward-grid{grid-template-columns:repeat(6,1fr)}.locked-card{border:1px dashed #d7c8e3;background:#f1e9f7;color:#bba9ca;min-height:110px;display:flex;align-items:center;justify-content:center;border-radius:13px;font-size:33px}.collection-group{margin-bottom:20px}dialog{border:3px solid #ffe9ac;border-radius:25px;max-width:540px;width:calc(100% - 30px);padding:30px;background:linear-gradient(135deg,#fff8ed,#f5eaff);color:#8c699f;box-shadow:0 20px 80px #32275b66;max-height:88vh}dialog::backdrop{background:#3e326968;backdrop-filter:blur(6px)}dialog h2{font-size:24px;margin:10px 0 18px;color:#8e60a5}dialog p{font-size:12px;line-height:1.9}.small-note{border-top:1px solid #dfd1e6;padding-top:13px;font-size:10px;color:#92759e}.close-dialog{position:absolute;right:13px;top:9px;background:transparent;border:0;font-size:27px;color:#a47caf}.dialog-actions{display:flex;justify-content:end;gap:10px;margin-top:20px}#collection-dialog{max-width:790px}#collection-summary{color:#94709e;font-size:11px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:12px 20px;background:#fff5db;border:2px solid #edce90;border-radius:14px;box-shadow:0 8px 20px #3c35504d;color:#926b9e;font-size:12px;z-index:30;max-width:90%;text-align:center}.confetti{position:fixed;pointer-events:none;z-index:25;top:28%;width:9px;height:14px;border-radius:3px;animation:fall 1.6s ease-out forwards}.enter{animation:enter .35s ease-out}@keyframes twinkle{to{opacity:.25;transform:translateY(-8px) scale(.7)}}@keyframes enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes audio-pulse{50%{box-shadow:0 0 0 7px #9bdfdc55}}@keyframes prize-in{from{opacity:0;transform:scale(.3) rotate(-10deg)}to{opacity:1;transform:none}}@keyframes claw-catch{0%,100%{transform:translateY(0)}45%{transform:translateY(40px)}70%{transform:translateY(20px)}}@keyframes fall{to{transform:translate(var(--dx),70vh) rotate(450deg);opacity:0}}
@media(max-width:1000px){.attractions{grid-template-columns:1fr 130px 1fr;gap:14px}.duke-guide img{width:145px;height:155px}.duke-bubble{font-size:10px;padding:7px}.attraction{padding-left:12px;padding-right:12px}.attraction h2{font-size:23px}.setup{flex-wrap:wrap;justify-content:center}.setup-launch{margin-left:auto}.play-body{grid-template-columns:minmax(0,1fr) 145px;padding-left:18px;padding-right:18px;gap:12px}.duke-sidebar img{width:140px;height:125px}.slot{width:52px;height:60px;font-size:33px}.train-stage .slot{width:49px;height:55px;font-size:30px}.locomotive{width:89px;height:65px}.train-stage .slots{gap:7px}.train-row{gap:5px}}
@media(max-width:720px){.header{padding:17px 19px}.brand-star{font-size:28px}.brand b{font-size:16px}.brand small{font-size:8px;letter-spacing:1px}.header-actions{gap:8px}.glass-btn{padding:7px 10px;gap:5px;font-size:10px}.glass-btn .icon{width:17px;height:17px}.glass-btn b{font-size:13px}.help-btn{width:29px;height:29px;font-size:16px}.home{padding:13px 17px 18px}.home .eyebrow{font-size:9px;letter-spacing:2px}.home h1{font-size:35px;letter-spacing:2px;margin-top:9px}.home h1 .duke-title{font-size:25px}.home-intro{font-size:10px;letter-spacing:.5px;margin-top:9px}.attractions{grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.duke-guide{grid-column:1/-1;grid-row:1;display:flex;justify-content:center;align-items:center;gap:8px;margin:0 auto -7px}.duke-guide img{width:104px;height:97px}.duke-bubble{font-size:10px;max-width:190px;margin:0;padding:8px 12px}.duke-bubble:after{bottom:auto;left:auto;right:-8px;top:calc(50% - 5px);transform:rotate(-45deg)}.attraction{min-height:232px;padding:13px 8px 15px;border-radius:22px;border-width:2px}.attraction h2{font-size:21px;letter-spacing:1px;margin-top:6px}.attraction .en{font-size:10px}.attraction p{font-size:9px;line-height:1.8;margin-top:7px}.attraction-art{transform:scale(.82);transform-origin:center center;width:156px;height:99px}.mini-machine{left:24px}.mini-train{left:-9px}.mini-car{right:-8px}.floating-letter{left:-4px}.floating-letter.right{right:-6px}.attraction.selected:after{width:25px;height:25px;right:-5px;top:-8px;font-size:12px}.setup{margin-top:21px;padding:16px 13px;gap:16px;border-radius:19px;display:block}.setup-title{font-size:10px;margin-bottom:10px}.vowels{gap:6px;justify-content:center}.vowel{padding:5px 9px;min-height:36px;gap:4px}.vowel b{font-size:20px}.vowel span{font-size:9px}.setup-launch{margin-top:17px;gap:10px}.round-select{font-size:10px;max-width:140px;padding:8px}.setup-launch .primary{flex:1;padding:10px 13px;font-size:12px;min-height:43px}.home-note{font-size:9px;line-height:1.8;padding:0 10px}.world{background-position:center;background-size:auto 100vh;background-repeat:repeat-y}footer{font-size:9px;line-height:1.8;padding-bottom:20px}footer span{font-size:10px}.game{padding:9px 13px 20px}.game-nav{gap:9px;margin-bottom:13px}.game-progress{max-width:none;gap:8px}.back-btn{font-size:9px;padding:6px 10px;gap:4px}.count-label{font-size:14px}.game-stamp{font-size:9px;white-space:nowrap}.play-card{border-radius:23px;border-width:2px}.play-title{padding:18px 16px 13px;gap:8px}.play-title h1{font-size:22px;letter-spacing:1px}.play-title p{font-size:10px}.mode-label{font-size:9px;padding:5px 8px}.play-body{display:flex;flex-direction:column-reverse;padding:0 12px 12px;gap:8px}.duke-sidebar{flex-direction:row;gap:9px;min-height:62px;flex-wrap:wrap}.duke-sidebar img{width:77px;height:70px}.duke-message{max-width:160px;font-size:10px;padding:6px 9px;margin:0}.hint-btn{font-size:9px;max-width:75px;line-height:1.7;padding:4px}.hint-picture{width:65px!important;height:65px!important}.audio-row{margin-bottom:10px}.listen-btn{padding:8px 20px;min-height:43px;font-size:12px;min-width:145px}.claw-stage{min-height:221px;padding:127px 9px 14px;border-width:6px;border-bottom-width:12px;border-radius:19px}.slot{width:52px;height:58px;font-size:33px;border-radius:11px}.slots{gap:8px}.mystery{top:71px;width:59px;height:59px;left:calc(50% - 29.5px);font-size:32px}.claw{width:70px;left:calc(50% - 35px)}.prize{width:88px;height:88px;top:36px;left:calc(50% - 44px)}.stage-label{font-size:8px;margin-top:8px}.train-stage{min-height:217px;padding:130px 8px 20px}.train-row{gap:4px}.locomotive{width:71px;height:55px;margin-bottom:-7px}.train-stage .slot{width:44px;height:52px;font-size:29px;border-radius:9px 9px 6px 6px}.train-stage .slots{gap:6px}.train-stage .slot:before{font-size:16px;letter-spacing:3px;bottom:-20px;left:1px}.station-sign{left:11px;font-size:9px;top:22px}.station-star{right:14px;top:23px;font-size:20px}.parts-panel{padding:13px 13px 15px}.parts-header{font-size:9px;margin-bottom:11px;gap:7px}.reset-btn{font-size:9px}.parts-tray{gap:8px;min-height:54px}.part{width:48px;height:53px;font-size:29px;border-radius:13px;border-bottom-width:4px}.part-key{font-size:8px;right:6px;bottom:2px}.feedback{padding:11px 15px;font-size:10px}.feedback strong{font-size:21px}.play-actions{padding:14px 17px 16px}.play-actions .primary{width:100%;min-height:44px;font-size:13px}.round-foot{font-size:9px;line-height:1.7;margin-top:14px;gap:8px}.round-foot span:first-child{max-width:240px}.result{margin:12px 13px 20px;padding:22px 16px;border-width:2px}.result-duke{width:157px;height:125px}.result h1{font-size:25px;letter-spacing:1px}.result-intro{font-size:10px}.result-stats{gap:8px;margin:19px 0}.stat{padding:13px 3px}.stat b{font-size:26px}.stat span{font-size:9px}.reward-grid{grid-template-columns:repeat(3,1fr);gap:8px}.reward-card img{height:66px}.reward-card .word{font-size:17px}.result-actions .primary{width:100%;font-size:13px}.result-actions .secondary{flex:1;font-size:11px}.round-collection h2{font-size:11px;line-height:1.8}.round-collection h2 small{display:block;font-size:9px}.collection-group .reward-grid{grid-template-columns:repeat(3,1fr)}dialog{padding:26px 20px}dialog h2{font-size:22px}dialog p{font-size:11px}.locked-card{min-height:106px}.hint-note,.collection-note,.audio-warning{font-size:9px}}
@media(max-width:370px){.brand b{font-size:14px}.brand small{font-size:7px}.glass-btn span{display:none}.header{padding:15px}.attraction-art{transform:scale(.72);width:140px}.attraction h2{font-size:18px}.home h1{font-size:31px}.vowel{padding:4px 8px}.vowel span{display:none}.train-stage .slot{width:38px;font-size:27px}.train-stage .slots{gap:5px}.locomotive{width:60px}.part{width:44px;height:49px}.parts-tray{gap:7px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.confetti{display:none}}
