:root{--bg: #fff7e8;--bg2: #ffe9c7;--card: #ffffff;--ink: #2b2240;--muted: #7a6f8f;--line: #f0dcc0;--accent: #ff8a00;--good: #19b35a;--bad: #ff3b5c;--shadow: 0 4px 0 rgba(43, 34, 64, .15);--radius: 20px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #1d1830;--bg2: #2a2342;--card: #2f2848;--ink: #fff4e0;--muted: #b9add6;--line: #463c66;--shadow: 0 4px 0 rgba(0, 0, 0, .35);color-scheme:dark}}:root[data-theme=dark]{--bg: #1d1830;--bg2: #2a2342;--card: #2f2848;--ink: #fff4e0;--muted: #b9add6;--line: #463c66;--shadow: 0 4px 0 rgba(0, 0, 0, .35);color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:radial-gradient(circle at 20% 0%,var(--bg2),var(--bg) 60%) fixed,var(--bg);color:var(--ink);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,system-ui,sans-serif;font-size:18px;min-height:100%;touch-action:manipulation;-webkit-user-select:none;user-select:none;overscroll-behavior:none}textarea,input,select{-webkit-user-select:text;user-select:text;font:inherit}button{font:inherit;color:inherit;cursor:pointer}.page{max-width:760px;margin:0 auto;padding:12px 16px calc(24px + env(safe-area-inset-bottom))}.btn{min-height:56px;padding:10px 20px;border:none;border-radius:16px;background:var(--card);color:var(--ink);font-weight:700;box-shadow:var(--shadow),inset 0 0 0 2px var(--line);transition:transform .08s}.btn:active,.key:active,.island:active,.level-card:active{transform:translateY(3px);box-shadow:none}.btn-main{background:var(--accent);color:#fff;box-shadow:0 4px #00000040;text-shadow:0 1px 0 rgba(0,0,0,.2)}.btn-wide{display:block;width:100%;margin-top:12px;font-size:22px}.btn-huge{font-size:32px;padding:24px 48px;border-radius:28px}.btn-small{min-height:44px;padding:6px 14px;font-size:16px}.btn.danger{color:var(--bad)}.btn-icon{width:48px;height:48px;border:none;border-radius:14px;background:var(--card);box-shadow:var(--shadow);font-size:22px;flex:none}.row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:10px 0}.pill{display:inline-block;padding:6px 12px;border-radius:999px;background:var(--card);box-shadow:inset 0 0 0 2px var(--line);font-weight:700;font-size:15px;white-space:nowrap}.pill.big{font-size:20px}.tip{color:var(--muted);font-size:15px;text-align:center;margin:6px 0}.hint{color:var(--muted);font-size:15px}.map-top{display:flex;align-items:center;gap:10px;margin-bottom:10px}.map-top h1{flex:1;font-size:clamp(22px,6vw,32px);margin:0}.pet{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:var(--radius);padding:12px 16px;box-shadow:var(--shadow)}.pet-avatar{position:relative;font-size:56px;line-height:1;animation:bob 2.4s ease-in-out infinite}.pet-hat{position:absolute;top:-22px;left:50%;transform:translate(-50%);font-size:32px}.pet-say{flex:1;font-size:17px}@keyframes bob{50%{transform:translateY(-6px)}}.wardrobe{display:flex;gap:8px;justify-content:center;margin:10px 0 4px;flex-wrap:wrap}.outfit{display:flex;flex-direction:column;align-items:center;width:64px;padding:6px 0;border:none;border-radius:14px;background:var(--card);box-shadow:inset 0 0 0 2px var(--line);font-size:24px}.outfit small{font-size:11px;color:var(--muted)}.outfit.on{box-shadow:inset 0 0 0 3px var(--accent)}.outfit.locked{opacity:.55}.path{display:flex;flex-direction:column;gap:14px;margin:18px 0}.island{position:relative;display:flex;align-items:center;gap:14px;width:88%;min-height:84px;padding:12px 16px;border:none;border-radius:28px;background:var(--card);text-align:left;box-shadow:0 5px color-mix(in srgb,var(--accent) 70%,#000),inset 0 0 0 3px var(--accent);transition:transform .08s}.island.right{align-self:flex-end}.island.locked{filter:grayscale(.9);opacity:.6}.island.coming{--accent: #b9add6;opacity:.6;border-style:dashed;min-height:64px}.island-num{position:absolute;top:-10px;left:-6px;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;font-size:16px;box-shadow:0 2px #0003}.island-emoji{font-size:40px}.island-text{flex:1;display:flex;flex-direction:column}.island-text b{font-size:21px}.island-text small{color:var(--muted);font-size:14px}.island-stars{color:#ffb400;font-size:22px;letter-spacing:1px}.section{margin:20px 0 0}.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;margin-top:10px}.badge{display:flex;flex-direction:column;align-items:center;padding:10px 4px;border-radius:16px;background:var(--card);box-shadow:inset 0 0 0 2px var(--line);font-size:30px;opacity:.5;cursor:pointer}.badge.got{opacity:1;box-shadow:inset 0 0 0 3px #ffb400}.badge small{font-size:12px;text-align:center}.foot{text-align:center;color:var(--muted);font-size:14px;margin-top:24px}.game-top{display:flex;align-items:center;gap:10px;margin-bottom:8px}.game-title{flex:1;font-size:clamp(20px,5.5vw,28px);font-weight:800}.hud{display:flex;gap:6px}.game-body{display:flex;flex-direction:column;align-items:stretch}.cube-holder{position:relative;width:100%;height:min(52vh,440px);min-height:240px}.cube-holder.small{height:min(38vh,340px);min-height:200px}.cube3d,.cube3d canvas{width:100%;height:100%;display:block}.dots{display:flex;justify-content:center;gap:6px;margin:4px 0 8px;flex-wrap:wrap}.dot{width:14px;height:14px;border-radius:50%;background:var(--line)}.dot.ok{background:var(--good)}.dot.miss{background:var(--bad)}.dot.now{background:var(--accent);transform:scale(1.3)}.goal-card,.ask,.mole{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;background:var(--card);border-radius:var(--radius);padding:10px 14px;box-shadow:var(--shadow);font-size:20px;text-align:center}.chip{font-style:normal;padding:2px 10px;border-radius:10px;font-weight:800}.chip.yellow{background:#ffd500;color:#4a3b00}.chip.red{background:#e8202a;color:#fff}.turn-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.btn-turn{font-size:17px;padding:8px 4px}.big-letter{display:inline-grid;place-items:center;min-width:72px;height:72px;padding:0 12px;border-radius:20px;background:var(--accent);color:#fff;font-size:48px;font-weight:900;box-shadow:0 4px #00000040}.msg{min-height:30px;text-align:center;font-weight:700;margin:8px 0}.msg.good{color:var(--good)}.msg.bad{color:var(--bad)}.mole-face{font-size:36px}.timebar{height:10px;border-radius:6px;background:var(--line);overflow:hidden;margin:8px 0 0}.timebar i{display:block;height:100%;width:100%;background:var(--good)}.timebar i.low{background:var(--bad)}.keyboard{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:8px;margin-top:8px}.key{min-height:56px;border:none;border-radius:14px;background:var(--card);font-size:26px;font-weight:800;box-shadow:var(--shadow),inset 0 0 0 2px var(--line)}.key.big{min-height:68px;font-size:32px}.key.right{background:var(--good);color:#fff}.key.reveal{box-shadow:inset 0 0 0 4px var(--good);animation:pulse .6s ease-in-out infinite alternate}.key:disabled{opacity:.8}.options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.family{display:flex;justify-content:center;gap:14px;margin:12px 0 0}.bro{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-size:30px;font-weight:900;background:var(--card);box-shadow:inset 0 0 0 3px var(--line);color:var(--muted)}.bro.got{background:var(--accent);color:#fff;box-shadow:0 4px #0003}.level-pick{display:flex;flex-direction:column;gap:12px}.intro{font-size:19px;line-height:1.6;background:var(--card);padding:14px 16px;border-radius:var(--radius);box-shadow:var(--shadow);margin:0}.level-card{display:flex;align-items:center;gap:14px;min-height:76px;padding:12px 16px;border:none;border-radius:var(--radius);background:var(--card);text-align:left;box-shadow:var(--shadow),inset 0 0 0 3px var(--accent)}.lv-emoji{font-size:36px}.lv-text{flex:1;display:flex;flex-direction:column}.lv-text b{font-size:20px}.lv-text small{color:var(--muted);font-size:14px}.lv-stars{color:#ffb400;font-size:14px;white-space:nowrap}.blindfold{background:#120e1f;color:#fff4e0;border-radius:24px;padding:16px;text-align:center;min-height:60vh;display:flex;flex-direction:column;justify-content:center;gap:8px}.blindfold .key{background:#2a2342;color:#fff4e0;box-shadow:0 4px #000,inset 0 0 0 2px #463c66}.blindfold .btn{background:#2a2342;color:#fff4e0;box-shadow:0 4px #000}.blindfold .btn-main{background:#8b5cf6}.mask{font-size:72px;animation:bob 2s ease-in-out infinite}.mask.small{font-size:56px;text-align:center}.typed{min-height:40px;display:flex;justify-content:center;flex-wrap:wrap;gap:4px;font-size:24px}.bead{color:#ffd500}.bead.odd{color:#ff8a00;margin-right:10px}.memo{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.pair{display:flex;flex-direction:column;align-items:center;padding:4px 10px;border-radius:12px;background:var(--bg2)}.pair b{font-size:24px;letter-spacing:2px}.pair small{font-size:13px;color:var(--muted)}.memo.ok .pair{background:color-mix(in srgb,var(--good) 25%,transparent)}.memo.bad .pair{background:color-mix(in srgb,var(--bad) 20%,transparent)}.cmp{margin:8px 0}.cmp>small{display:block;color:var(--muted);margin-bottom:4px}.real{display:flex;flex-direction:column;gap:10px}.scramble{font-size:clamp(26px,7vw,40px);font-weight:900;text-align:center;letter-spacing:2px;word-spacing:10px;background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);font-family:ui-monospace,Menlo,monospace}.net{width:100%;max-width:420px;margin:0 auto;display:block}.modal-back{position:fixed;inset:0;background:#140e238c;display:grid;place-items:center;z-index:50;padding:16px;animation:fade .2s}.modal{width:min(440px,100%);max-height:90vh;overflow:auto;background:var(--card);border-radius:28px;padding:20px;text-align:center;box-shadow:0 8px #0003;animation:pop .35s cubic-bezier(.2,1.6,.4,1)}.modal h2{margin:4px 0;font-size:28px}.modal p{margin:6px 0}.big-stars{font-size:56px;letter-spacing:6px}.big-star{color:var(--line);display:inline-block}.big-star.on{color:#ffb400;animation:starIn .5s backwards cubic-bezier(.2,1.8,.4,1)}.gain{color:#e69500;font-weight:800}.badge-line{font-weight:800}.modal-btns{display:flex;gap:10px;justify-content:center;margin-top:14px;flex-wrap:wrap}.toast{position:fixed;left:50%;top:22%;transform:translate(-50%);z-index:60;padding:12px 22px;border-radius:18px;font-weight:800;font-size:20px;background:var(--ink);color:var(--bg);box-shadow:0 6px #0003;animation:pop .3s cubic-bezier(.2,1.6,.4,1);transition:opacity .4s,transform .4s;max-width:calc(100vw - 32px);text-align:center}.toast-good{background:var(--good);color:#fff}.toast-bad{background:var(--bad);color:#fff}.toast.out{opacity:0;transform:translate(-50%,-20px)}.confetti{position:fixed;inset:0;pointer-events:none;z-index:70;overflow:hidden}.confetti span{position:absolute;top:-40px;animation:fall linear forwards}.card{background:var(--card);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);margin-bottom:14px}.card h3{margin:0 0 8px}.gate{display:flex;flex-direction:column;align-items:center;gap:12px;font-size:22px}.gate-input{width:140px;font-size:28px;text-align:center;padding:8px;border-radius:12px;border:2px solid var(--line);background:var(--bg);color:var(--ink)}.select,.words{width:100%;padding:10px;border-radius:12px;border:2px solid var(--line);background:var(--bg);color:var(--ink);font-size:16px}.words{font-family:ui-monospace,Menlo,monospace;margin-bottom:8px}.warn{color:var(--bad);font-weight:700}code{font-family:ui-monospace,Menlo,monospace;background:var(--bg2);padding:2px 6px;border-radius:6px;word-break:break-word}.setup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}.setup-cell{display:flex;gap:8px;align-items:center;padding:4px 8px;border-radius:10px;background:var(--bg2);font-size:15px}.setup-cell b{font-size:20px;min-width:18px}.setup-cell span{font-family:ui-monospace,Menlo,monospace}.stats{width:100%;border-collapse:collapse;font-size:14px}.stats th,.stats td{padding:6px 4px;border-bottom:1px solid var(--line);text-align:left}.check{display:flex;align-items:center;gap:10px;min-height:44px}.check input{width:24px;height:24px}.net-box{margin:8px 0}.shake{animation:shake .4s}.bump{animation:bumpA .35s}@keyframes shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}@keyframes bumpA{40%{transform:scale(1.08)}}@keyframes pulse{to{transform:scale(1.08)}}@keyframes pop{0%{transform:translate(var(--tx, 0)) scale(.6);opacity:0}}.toast{--tx: -50%}@keyframes fade{0%{opacity:0}}@keyframes starIn{0%{transform:scale(0) rotate(-90deg)}}@keyframes fall{to{transform:translateY(110vh) rotate(540deg)}}@media(min-width:820px){.island{width:70%}.cube-holder{height:min(56vh,480px)}}@media(orientation:landscape)and (max-height:520px){.cube-holder,.cube-holder.small{height:62vh;min-height:180px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}
