:root{--sky-top:#7fd3f0;--sky-low:#dff6ff;--ink:#23305e;--paper:#fff;--sun:#ffd23f;--go:#2fbf71;--guide:#e3e9f4;--line:#a9bddf;--soft:#f2f6fc;--shadow:#23305e40;--font-display:"Lilita One", "Arial Rounded MT Bold", "Trebuchet MS", system-ui, sans-serif;--font-letter:"Andika", "Comic Sans MS", "Segoe UI", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%;overflow:hidden}body{background:linear-gradient(180deg, var(--sky-top), var(--sky-low) 70%);color:var(--ink);font-family:var(--font-letter);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}#app{height:100%;position:relative;overflow:hidden}.scene,.scene canvas{touch-action:none;display:block;position:absolute;inset:0;width:100%!important;height:100%!important}.ui{pointer-events:none;position:absolute;inset:0}.ui>*{pointer-events:auto}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:4px solid var(--sun);outline-offset:3px}.hud{padding-block:14px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));pointer-events:none;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:absolute;top:0;left:0;right:0}.hud>*{pointer-events:auto}.chips{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;flex:0 auto;gap:8px;min-width:0;margin:-4px -4px -8px;padding:4px 4px 8px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000)}.chips::-webkit-scrollbar{display:none}.chip{scroll-snap-align:start;width:52px;height:52px;font:700 28px/1 var(--font-letter);color:#23305e73;background:#ffffff8c;border:3px solid #23305e40;border-radius:16px;flex:none;place-items:center;display:grid}.chip.active{background:var(--paper);border-color:var(--sun);color:var(--ink);animation:1.4s ease-in-out infinite chip-pulse}.chip.learned{background:var(--c);border-color:var(--ink);color:var(--paper);box-shadow:0 4px 0 var(--ink)}@keyframes chip-pulse{50%{transform:scale(1.08)}}.hud-right{align-items:center;gap:10px;display:flex}.hud-btn{border:3px solid var(--ink);background:var(--paper);width:60px;height:60px;box-shadow:0 4px 0 var(--ink);border-radius:50%;place-items:center;transition:transform .1s;display:grid}.hud-btn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.hud-btn.small{width:40px;height:40px;box-shadow:none;opacity:.55;background:#ffffffb3;border-width:2px}.hud-btn.small.pressing{opacity:1;animation:1.2s linear hold}@keyframes hold{to{transform:rotate(180deg)scale(1.2)}}.icon{place-items:center;display:inline-grid}.start{padding-block:24px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));background:radial-gradient(circle at 50% 40%,#ffffff26,#23305e59);grid-template-columns:minmax(0,1fr);place-items:center;transition:opacity .4s;display:grid;position:absolute;inset:0}.start.out{opacity:0}.start-card{background:var(--paper);border:4px solid var(--ink);box-shadow:0 10px 0 var(--ink);border-radius:32px;flex-direction:column;justify-self:center;align-items:center;gap:18px;width:min(380px,100%);padding:28px 24px 30px;animation:.6s cubic-bezier(.3,1.4,.5,1) both drop-in;display:flex}@keyframes drop-in{0%{transform:translateY(-40px)scale(.9)}}.start h1{font:400 clamp(46px, 13vw, 64px) / .92 var(--font-display);text-align:center;color:var(--ink);letter-spacing:.01em;text-wrap:balance;margin:0}.start h1 .accent{color:var(--go)}.start-sub{margin:0;font-size:20px;font-weight:700}.eggs{gap:18px;display:flex}.egg{border:4px solid var(--ink);background:radial-gradient(circle at 32% 30%, #ffffffb3 0 10%, transparent 11%), radial-gradient(circle at 65% 62%, #ffffff59 0 9%, transparent 10%), radial-gradient(circle at 35% 72%, #ffffff59 0 7%, transparent 8%), var(--c);border-radius:50% 50% 46% 46%/60% 60% 40% 40%;width:70px;height:88px;transition:transform .2s}.egg.picked{box-shadow:0 0 0 6px var(--sun);animation:1.2s ease-in-out infinite wobble;transform:translateY(-8px)rotate(-6deg)}@keyframes wobble{50%{transform:translateY(-8px)rotate(6deg)}}.btn-play{border:4px solid var(--ink);background:var(--go);color:var(--paper);font:400 30px/1 var(--font-display);box-shadow:0 6px 0 var(--ink);border-radius:999px;align-items:center;gap:8px;padding:14px 30px 14px 22px;display:flex}.btn-play:active{box-shadow:0 2px 0 var(--ink);transform:translateY(4px)}.overlay{padding-block:16px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));-webkit-backdrop-filter:blur(3px);opacity:0;background:#23305e59;grid-template-columns:minmax(0,1fr);place-items:center;transition:opacity .25s;display:grid;position:absolute;inset:0}.overlay.in{opacity:1}.panel{background:var(--paper);border:4px solid var(--ink);width:min(560px,100%);max-height:100%;box-shadow:0 10px 0 var(--ink);border-radius:32px;justify-self:center;padding:22px 18px 24px;transition:transform .3s cubic-bezier(.3,1.5,.5,1);position:relative;overflow:auto;transform:scale(.92)}.overlay.in .panel{transform:none}.panel.narrow{width:min(340px,100%)}.stage{flex-direction:column;align-items:center;gap:18px;display:flex}.row{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;display:flex}.btn-next{border:4px solid var(--ink);background:var(--go);width:84px;height:84px;color:var(--paper);box-shadow:0 6px 0 var(--ink);border-radius:50%;place-items:center;animation:1.6s ease-in-out 1.5s infinite nudge;display:grid}.btn-next:active,.btn-round:active{box-shadow:0 2px 0 var(--ink);animation:none;transform:translateY(4px)}@keyframes nudge{0%,70%,to{transform:none}80%{transform:translate(6px)}90%{transform:translate(-2px)}}.btn-round{border:4px solid var(--ink);background:var(--sun);width:68px;height:68px;box-shadow:0 5px 0 var(--ink);border-radius:50%;place-items:center;display:grid}.discover{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 26px;display:flex}.discover-letter{font:700 clamp(110px, 32vw, 170px) / 1 var(--font-letter);color:var(--c);-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;align-items:baseline;gap:10px;animation:.6s cubic-bezier(.3,1.6,.5,1) both pop;display:flex}.discover-letter .lower{font-size:.72em}@keyframes pop{0%{opacity:0;transform:scale(.3)rotate(-12deg)}}.discover-word{flex-direction:column;align-items:center;gap:2px;display:flex}.pic{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:64px;line-height:1}.pic.big{font-size:clamp(80px,22vw,110px)}.word{font-size:34px;font-weight:700}.word b{color:var(--c);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill}.round-dots,.stroke-dots{gap:8px;display:flex}.round-dots span,.stroke-dots span{border:3px solid var(--ink);background:var(--paper);border-radius:50%;width:14px;height:14px}.round-dots .done,.stroke-dots .done{background:var(--go)}.round-dots .now{background:var(--sun)}.letter-badge{border:4px solid var(--ink);background:var(--sun);box-shadow:0 5px 0 var(--ink);border-radius:999px;align-items:center;gap:12px;padding:6px 22px 6px 26px;display:flex}.big-letter{font:700 64px/1.1 var(--font-letter);letter-spacing:.06em}.pic-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;display:grid}.pic-card{aspect-ratio:1;border:4px solid var(--ink);background:var(--soft);max-width:100%;box-shadow:0 6px 0 var(--ink);animation:.45s cubic-bezier(.3,1.5,.5,1) both card-in;animation-delay:calc(var(--i) * .1s);border-radius:24px;place-items:center;display:grid}.pic-card .pic{font-size:clamp(48px,15vw,84px)}.pic-card:active{box-shadow:0 2px 0 var(--ink);transform:translateY(4px)}@keyframes card-in{0%{opacity:0;transform:translateY(30px)scale(.6)}}.pic-card.wrong{animation:.5s ease-in-out wiggle}@keyframes wiggle{20%,60%{transform:rotate(-8deg)}40%,80%{transform:rotate(8deg)}}.pic-card.right{background:var(--go);animation:.6s cubic-bezier(.3,1.8,.5,1) bounce}.pic-grid.solved .pic-card:not(.right){opacity:.35}@keyframes bounce{40%{transform:scale(1.18)}}.trace-title{font:700 30px/1 var(--font-letter);margin:0}.trace-wrap{aspect-ratio:1;width:min(100%,440px,56vh);max-width:100%}.trace-canvas{box-sizing:border-box;border:4px solid var(--ink);background:var(--paper);touch-action:none;border-radius:24px;width:100%;height:100%;transition:box-shadow .3s;display:block}.trace-canvas.glow{box-shadow:0 0 0 8px var(--sun)}.treasure{box-sizing:border-box;place-items:center;width:100%;height:260px;padding-top:40px;display:grid;position:relative}.chest{width:180px;height:150px;position:relative}.chest-box{border:4px solid var(--ink);background:#c47a35;border-radius:10px 10px 18px 18px;place-items:center;height:100px;display:grid;position:absolute;bottom:0;left:0;right:0;overflow:visible}.chest-lid{border:4px solid var(--ink);transform-origin:10% 100%;z-index:2;background:#d98c43;border-radius:60px 60px 8px 8px;height:54px;transition:transform .6s cubic-bezier(.3,1.6,.5,1);position:absolute;top:6px;left:0;right:0}.chest.open .chest-lid{transform:rotate(-38deg)translate(-10px,-10px)}.chest-letter{z-index:3;font:700 92px/1 var(--font-letter);color:var(--c);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;opacity:0;transition:all .7s cubic-bezier(.3,1.6,.5,1) .3s;position:relative;transform:translateY(20px)scale(.2)}.chest.open .chest-letter{opacity:1;transform:translateY(-112px)scale(1)}.stars span{color:var(--sun);-webkit-text-stroke:2px var(--ink);opacity:0;font-size:30px;position:absolute;top:55%;left:50%}.chest.open~.stars span{animation:1.3s ease-out forwards star;animation-delay:calc(.3s + var(--i) * 40ms)}.treasure:has(.chest.open) .stars span{animation:1.3s ease-out forwards star;animation-delay:calc(.3s + var(--i) * 40ms)}@keyframes star{0%{opacity:1;transform:translate(-50%,-50%)scale(.3)}to{opacity:0;transform:translate(calc(-50% + cos(calc(var(--i) * 25.7deg)) * 150px), calc(-50% + sin(calc(var(--i) * 25.7deg)) * 110px)) scale(1.2) rotate(180deg)}}.parent .panel{font-family:system-ui,sans-serif}.parent-gate{text-align:center}.parent-gate p{margin:0 0 8px;font-weight:700}.parent-gate .math{font:400 40px/1.2 var(--font-display)}.btn-plain{border:3px solid var(--ink);background:var(--soft);border-radius:14px;min-width:64px;padding:12px 18px;font-size:18px;font-weight:700}.btn-plain.danger{color:#8c1d18;background:#ffe0e0;border-color:#b3261e}.btn-close{border:3px solid var(--ink);background:var(--paper);border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:12px;right:12px}.parent-panel h2{font:400 30px/1.1 var(--font-display);margin:0 0 6px}.parent-panel .hint{color:#4a5580;max-width:60ch;margin:0 0 14px;font-size:14px;line-height:1.45}.table-scroll{margin-bottom:16px;overflow-x:auto}.progress-table{border-collapse:collapse;width:100%;font-size:15px}.progress-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:#4a5580;border-bottom:2px solid var(--guide);padding:6px 8px;font-size:12px}.progress-table td{border-bottom:1px solid var(--guide);white-space:nowrap;padding:10px 8px}.progress-table .num{font-variant-numeric:tabular-nums;text-align:right}.confirm{margin-top:10px;font-weight:700}@media (width<=420px){.chip{border-radius:14px;width:44px;height:44px;font-size:24px}.hud-btn{width:52px;height:52px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sleep-meter{gap:6px;display:flex}.sleep-meter span{border:3px solid var(--ink);background:var(--paper);border-radius:50%;width:22px;height:22px;transition:background .2s,transform .2s}.sleep-meter .done{background:var(--sun);transform:scale(1.15)}.arena{border:4px solid var(--ink);background:linear-gradient(var(--sky-top), var(--sky-low));touch-action:none;border-radius:24px;width:100%;height:min(46vh,380px);position:relative;overflow:hidden}.monster{border:4px solid var(--ink);z-index:1;transform-origin:50% 100%;background:#8fd16a;border-radius:60px 60px 24px 24px;width:120px;height:92px;margin-left:-60px;position:absolute;bottom:-18px;left:50%}.monster.blow{animation:.4s blow}@keyframes blow{50%{transform:scale(1.08,.94)}}.m-eye{background:var(--ink);border-radius:50%;width:20px;height:22px;transition:height .4s,top .4s;position:absolute;top:22px;box-shadow:inset 4px -4px #fff}.m-eye.l{left:28px}.m-eye.r{right:28px}.m-mouth{border:4px solid var(--ink);background:#fff;border-radius:50%;width:22px;height:22px;margin-left:-11px;position:absolute;top:52px;left:50%}.monster.drowsy .m-eye{height:10px;top:30px}.monster.asleep .m-eye{height:4px;box-shadow:none;top:34px}.monster.asleep .m-mouth{width:14px;height:8px;margin-left:-7px}.m-zzz{font:700 22px/1 var(--font-letter);color:var(--ink);opacity:0;position:absolute;top:-30px;right:-40px}.monster.asleep .m-zzz{animation:1.6s ease-in-out infinite zzz}@keyframes zzz{0%{opacity:0;transform:translateY(10px)}50%{opacity:1}to{opacity:0;transform:translateY(-16px)}}.bubble{border:3px solid var(--ink);width:72px;height:72px;color:var(--ink);font:700 40px/1 var(--font-letter);z-index:2;will-change:transform;background:radial-gradient(circle at 32% 30%,#fff 0 12%,#ffffffbf 13% 100%);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:0;left:-36px}.bubble.shape{font-size:30px}.bubble.wrong{animation:.45s bubble-wiggle}@keyframes bubble-wiggle{25%,75%{rotate:-14deg}50%{rotate:14deg}}.bubble.pop{opacity:0;background:var(--sun);transition:scale .3s,opacity .3s;scale:1.6}.bubble.fade{opacity:0;transition:opacity .4s}.tired-dragon{font-size:96px;line-height:1;animation:3s ease-in-out infinite breathe;position:relative}.tired-dragon .zzz{font:700 24px/1 var(--font-letter);color:var(--ink);animation:2s ease-in-out infinite zzz;position:absolute;top:-14px;right:-34px}@keyframes breathe{50%{transform:scale(1.05,.96)}}.btn-moon{color:#fff;background:#8a6cff}.btn-sun{background:var(--sun);color:var(--ink)}.rest{z-index:50;opacity:0;background:linear-gradient(#1b2350,#3b3f8f);flex-direction:column;justify-content:center;align-items:center;gap:28px;transition:opacity .4s;display:flex;position:absolute;inset:0}.rest.in{opacity:1}.rest .tired-dragon .zzz{color:#fff}.rest-moon{color:#ffe9a8}.night-stars span{left:calc(var(--x) * 1%);top:calc(var(--y) * 1%);color:#fff;animation:2.4s ease-in-out infinite twinkle;animation-delay:calc(var(--i) * -.37s);font-size:14px;position:absolute}@keyframes twinkle{50%{opacity:.25}}.order-list{gap:4px;margin:0 0 12px;padding:0;list-style:none;display:grid}.order-list li{border-bottom:1px solid #23305e1f;grid-template-columns:56px 1fr 20px 40px 40px;align-items:center;gap:6px;padding:2px 4px;display:grid}.order-list b{font:700 22px/1 var(--font-letter)}.order-word{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:15px;overflow:hidden}.order-state{color:var(--go);font-weight:700}.btn-mini{border:2px solid var(--ink);background:var(--paper);height:36px;color:var(--ink);border-radius:10px;font-size:14px}.btn-mini:disabled{opacity:.25}.track{background:linear-gradient(transparent calc(100% - 14px), var(--ink) calc(100% - 14px) calc(100% - 11px), transparent calc(100% - 11px)), repeating-linear-gradient(90deg, transparent 0 14px, #b07b4f 14px 22px) bottom 4px left 0 / 100% 12px no-repeat;width:100%;padding:18px 4px 22px;position:relative;overflow:hidden}.train{justify-content:center;align-items:flex-end;gap:10px;transition:gap .45s cubic-bezier(.3,1.4,.5,1),transform .9s ease-in;animation:.7s cubic-bezier(.2,.8,.3,1) roll-in;display:flex}.train.coupled{gap:2px}.train.leave{transform:translate(120%)}@keyframes roll-in{0%{transform:translate(-120%)}}.wagon{aspect-ratio:.82;border:3px solid var(--ink);background:var(--paper);min-width:0;max-width:64px;color:var(--ink);font:700 clamp(26px, 9vw, 40px) / 1 var(--font-letter);box-shadow:0 4px 0 var(--ink);border-radius:12px 12px 6px 6px;flex:1 1 0;place-items:center;transition:background .2s,color .2s;display:grid;position:relative}.wagon:before,.wagon:after{content:"";background:var(--ink);border-radius:50%;width:14px;height:14px;position:absolute;bottom:-11px}.wagon:before{left:18%}.wagon:after{right:18%}.wagon.next{border-color:var(--sun);box-shadow:0 0 0 4px var(--sun), 0 4px 0 var(--ink);animation:1.2s ease-in-out infinite chip-pulse}.wagon.heard{background:var(--c);color:var(--paper)}.wagon.bounce{animation:.35s bounce}.wagon.nudge{animation:.45s wiggle}.engine{flex:none;font-size:clamp(40px,12vw,56px);line-height:1;transform:scaleX(-1)}.train-below{place-items:center;width:100%;min-height:110px;display:grid}.btn-train{font-size:26px}.station-card{flex-direction:column;align-items:center;gap:12px;display:flex}.station-emoji{font-size:88px;line-height:1;animation:.5s cubic-bezier(.3,1.5,.5,1) pop}.station-letters{gap:8px;display:flex}.station-letters span{border:3px solid var(--ink);background:var(--c);width:60px;height:60px;color:var(--paper);font:700 36px/1 var(--font-letter);box-shadow:0 4px 0 var(--ink);border-radius:16px;place-items:center;display:grid}.read-list{flex-wrap:wrap;justify-content:center;gap:10px;display:flex;position:relative}.read-word{border:3px solid var(--ink);background:var(--paper);font:700 26px/1 var(--font-letter);border-radius:999px;align-items:center;gap:6px;padding:6px 14px;display:flex}.read-word .pic{font-size:30px}.chip-sep{background:#23305e40;border-radius:2px;flex:none;width:3px;margin:8px 2px}.chip-station{flex:none;align-self:center;font-size:26px;line-height:1}.parent-panel h3{margin:14px 0 6px;font-size:16px}.summary{margin:0 0 8px;font-weight:700}.station-list{gap:6px;margin:0 0 10px;padding:0;list-style:none;display:grid}.station-list li{background:#23305e0d;border-radius:12px;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;padding:6px 8px;display:grid}.station-list li.now{background:#ffd23f59}.station-list li.later{opacity:.6}.st-mark{color:var(--go);font-weight:700}.station-list li.now .st-mark{color:var(--ink)}.st-name{min-width:0;font-size:15px}.st-letters{gap:4px;display:flex}.st-letters b{color:#23305e73;width:28px;height:28px;font:700 17px/1 var(--font-letter);border:2px solid #23305e40;border-radius:8px;place-items:center;display:grid}.st-letters b.on{background:var(--c);border-color:var(--ink);color:var(--paper)}.can-read,.practice{margin:6px 0;font-size:15px;line-height:1.5}.play-chart{grid-template-columns:repeat(7,1fr);align-items:end;gap:6px;height:110px;display:grid}.play-day{grid-template-rows:18px 1fr 18px;place-items:end center;height:100%;display:grid}.play-bar{background:var(--go);border-radius:6px 6px 2px 2px;width:70%;min-height:3px}.play-min,.play-label{font-size:12px}.tips{margin:0;padding-left:18px;font-size:15px;line-height:1.5}.train-fab{left:max(16px, env(safe-area-inset-left,0px));bottom:max(18px, env(safe-area-inset-bottom,0px));border:4px solid var(--ink);background:var(--sun);width:76px;height:76px;color:var(--ink);box-shadow:0 6px 0 var(--ink);border-radius:50%;place-items:center;display:grid;position:fixed}.train-fab:active{box-shadow:0 2px 0 var(--ink);transform:translateY(4px)}.train-fab[hidden]{display:none}.memory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(100%,340px);display:grid}.mem-card{aspect-ratio:1;perspective:600px;animation:.4s backwards card-in;animation-delay:calc(var(--i) * 40ms);background:0 0;border:0;padding:0;position:relative}.mem-back,.mem-front{border:4px solid var(--ink);backface-visibility:hidden;box-shadow:0 4px 0 var(--ink);border-radius:18px;place-items:center;transition:transform .35s;display:grid;position:absolute;inset:0}.mem-back{background:var(--sun) repeating-linear-gradient(45deg, transparent 0 10px, #ffffff59 10px 20px);color:var(--ink);font:700 34px/1 var(--font-letter)}.mem-front{background:var(--paper);transform:rotateY(180deg)}.mem-card.up .mem-back{transform:rotateY(-180deg)}.mem-card.up .mem-front{transform:rotateY(0)}.mem-card.found .mem-front{border-color:var(--go);background:#d7f5e3;animation:.5s cubic-bezier(.3,1.8,.5,1) bounce}.mem-letter{font:700 clamp(40px, 12vw, 56px) / 1 var(--font-letter)}.mem-card .pic{font-size:clamp(38px,11vw,52px)}.fab-emoji{font-size:40px;line-height:1}.train-fab.has-new:after{content:"";border:3px solid var(--ink);background:#ff5d5d;border-radius:50%;width:22px;height:22px;animation:1.2s ease-in-out infinite chip-pulse;position:absolute;top:-4px;right:-4px}.train-fab.has-new{animation:2.4s ease-in-out infinite wobble}.chest-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-top:36px;display:grid}.chest-tile{aspect-ratio:1;border:4px solid var(--ink);background:var(--paper);box-shadow:0 6px 0 var(--ink);border-radius:24px;place-items:center;display:grid;position:relative}.chest-tile:active{box-shadow:0 2px 0 var(--ink);transform:translateY(4px)}.chest-emoji{font-size:clamp(56px,18vw,84px);line-height:1}.chest-tile.locked{background:#23305e14;border-color:#23305e4d;box-shadow:0 6px #23305e4d}.chest-station{font-size:30px;position:absolute;bottom:8px;right:10px}.chest-tile.new:after{content:"";border:3px solid var(--ink);background:#ff5d5d;border-radius:50%;width:18px;height:18px;position:absolute;top:8px;right:8px}.bucket{border:4px solid var(--ink);background:#c9d6e8;border-radius:10px 10px 22px 22px;gap:6px;padding:8px 12px;display:flex}.bucket span{border:3px dashed #23305e66;border-radius:50%;width:26px;height:26px}.bucket span.done{border:3px solid var(--ink);background:var(--sun);animation:.5s cubic-bezier(.3,1.8,.5,1) bounce}.pond{border:4px solid var(--ink);touch-action:none;background:radial-gradient(circle at 30% 20%,#ffffff59 0 8%,#0000 9%),linear-gradient(#5fd0ea,#2fb5d6 60%,#2391b0);border-radius:28px;width:100%;height:min(46vh,380px);position:relative;overflow:hidden}.fish{border:3px solid var(--ink);background:var(--fc);will-change:transform;border-radius:50% 60% 60% 50%;place-items:center;width:92px;height:64px;padding:0 0 0 10px;display:grid;position:absolute;top:0;left:0}.fish:before{content:"";border-style:solid;border-width:16px 22px 16px 0;border-color:transparent var(--fc) transparent transparent;margin-top:-16px;position:absolute;top:50%;left:-22px;transform:scaleX(-1)}.fish.left{padding:0 10px 0 0}.fish.left:before{left:auto;right:-22px;transform:none}.fish .pic{background:#ffffffd9;border-radius:50%;place-items:center;width:52px;height:52px;font-size:34px;display:grid}.fish.wrong{animation:.45s bubble-wiggle}.fish.caught{opacity:0;transition:translate .6s cubic-bezier(.4,-.4,.6,1),opacity .6s;translate:0 -120px}.detective-badge{padding:6px 22px}.detective-glass{font-size:34px}.detective-word{border:4px solid var(--ink);background:var(--paper);box-shadow:0 5px 0 var(--ink);color:var(--ink);border-radius:28px;align-items:center;gap:10px;padding:8px 22px;display:flex}.houses{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;display:grid;position:relative}.houses:before{content:"";background:#23305e33;border-radius:3px;height:6px;margin-top:-3px;position:absolute;top:50%;left:8%;right:8%}.house{aspect-ratio:.9;border:4px solid var(--ink);background:var(--paper);box-shadow:0 5px 0 var(--ink);animation:.4s backwards card-in;animation-delay:calc(var(--i) * 80ms);border-radius:18px 18px 12px 12px;grid-template-rows:auto 1fr;place-items:center;padding:6px;display:grid;position:relative}.house-mark{min-height:30px;font-size:26px}.house-slot{aspect-ratio:1;width:60%;font:700 clamp(30px, 9vw, 44px) / 1 var(--font-letter);border:3px dashed #23305e59;border-radius:50%;place-items:center;display:grid}.house.right{border-color:var(--go);background:#d7f5e3;animation:.5s cubic-bezier(.3,1.8,.5,1) bounce}.house.right .house-slot{border-style:solid;border-color:var(--go);background:var(--paper)}.house.wrong{animation:.45s wiggle}.parent-space{z-index:40;color:var(--ink);padding-top:env(safe-area-inset-top,0px);background:#f4f1ea;flex-direction:column;display:flex;position:absolute;inset:0}.parent-space[hidden]{display:none}.ps-head{padding:12px max(16px, env(safe-area-inset-left,0px)) 6px;justify-content:space-between;align-items:center;gap:12px;display:flex}.ps-head h1{font:400 26px/1.1 var(--font-title,"Lilita One"), sans-serif;margin:0}.ps-head .btn-close{position:static}.ps-tabs{padding:6px max(16px, env(safe-area-inset-left,0px)) 10px;scrollbar-width:none;border-bottom:2px solid #23305e1f;gap:6px;display:flex;overflow-x:auto}.ps-tabs::-webkit-scrollbar{display:none}.ps-tab{background:var(--paper);color:var(--ink);border:2px solid #23305e33;border-radius:999px;flex:none;align-items:center;gap:6px;padding:9px 14px;font-size:15px;font-weight:700;display:flex}.ps-tab.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.ps-content{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.ps-inner{max-width:760px;padding:8px max(16px, env(safe-area-inset-left,0px)) calc(32px + env(safe-area-inset-bottom,0px));margin:0 auto}.ps-inner h2{margin:22px 0 6px;font-size:20px}.ps-inner>h2:first-child{margin-top:10px}.ps-inner .hint{margin:0 0 10px}.demo-letters{flex-wrap:wrap;gap:6px;display:flex}.demo-letters .chip{width:46px;height:46px;font-size:24px}.demo-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.demo-tile{text-align:left;border:3px solid var(--ink);background:var(--paper);box-shadow:0 4px 0 var(--ink);color:var(--ink);border-radius:18px;justify-items:start;gap:4px;padding:12px;display:grid}.demo-tile:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.demo-emoji{font-size:34px;line-height:1}.demo-tile b{font-size:16px}.demo-skill{opacity:.75;font-size:13px;line-height:1.35}body.demo-on .ui:after{content:"Demo – zählt nicht";top:calc(8px + env(safe-area-inset-top,0px));z-index:60;background:var(--ink);color:var(--paper);pointer-events:none;border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.voice-list,.rec-list,.clip-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.voice-list li,.clip-list li{align-items:center;gap:10px;display:flex}.voice-list .hint{margin:0}.btn-mini{min-width:40px}.rec-row{border-bottom:1px solid #23305e1f;grid-template-columns:44px 1fr 40px 40px 40px;align-items:center;gap:8px;padding:6px 4px;display:grid}.rec-row .chip{width:40px;height:40px;font-size:22px}.rec-how{min-width:0;font-size:14px;line-height:1.3;display:grid}.rec-status{color:#b06a00;font-size:12px;font-weight:700}.rec-status.own{color:var(--go)}.btn-mini.rec{color:#e0457b}.btn-mini.rec.on{color:var(--paper);background:#e0457b;animation:1s ease-in-out infinite chip-pulse}.btn-mini[hidden]{visibility:hidden;display:block}.parent-space details{background:var(--paper);border-radius:12px;margin:6px 0;padding:8px 12px}.parent-space summary{cursor:pointer;font-weight:700}.clip-list{margin-top:8px;font-size:15px}.btn-mini.rec{font-size:22px;line-height:1}.start-hello{color:var(--accent,#ff8a3d);letter-spacing:.02em;margin:4px 0 0;font:400 clamp(30px,8vw,40px)/1.1 Lilita One,sans-serif}.rec-count{color:var(--go);margin:0 0 6px;font-weight:700}.hint-glow{animation:1.2s ease-in-out 2 hint-glow}@keyframes hint-glow{50%{box-shadow:0 0 0 8px var(--sun), 0 0 26px 10px #ffd23fcc;transform:scale(1.06)}}.progress-bar{border:3px solid var(--ink);background:var(--paper);border-radius:999px;width:min(100%,320px);height:14px;overflow:hidden}.progress-bar span{background:var(--go);width:0;height:100%;transition:width .4s;display:block}.tf-card{border:4px solid var(--ink);background:var(--paper);box-shadow:0 6px 0 var(--ink);border-radius:28px;justify-content:center;align-items:center;gap:18px;padding:18px 26px;animation:.35s cubic-bezier(.3,1.5,.5,1) pop;display:flex}.tf-letter{font:700 clamp(64px, 20vw, 96px) / 1 var(--font-letter);color:var(--c);-webkit-text-stroke:2px var(--ink);transition:color .3s}.tf-card.fixed{border-color:var(--go)}.tf-row{gap:28px}.tf-btn{border:4px solid var(--ink);width:104px;height:104px;box-shadow:0 6px 0 var(--ink);border-radius:50%;font-size:54px;line-height:1}.tf-btn.yes{background:#bdf0cf}.tf-btn.no{background:#ffd6c2}.tf-btn:active{box-shadow:0 2px 0 var(--ink);transform:translateY(4px)}.tf-btn.right{background:var(--go);animation:.5s cubic-bezier(.3,1.8,.5,1) bounce}.tf-btn.wrong{animation:.45s wiggle}.sort-slot{place-items:center;min-height:150px;display:grid}.sort-card{border:4px solid var(--ink);background:var(--paper);width:128px;height:128px;box-shadow:0 6px 0 var(--ink);touch-action:none;cursor:grab;border-radius:26px;place-items:center;animation:.4s cubic-bezier(.3,1.5,.5,1) drop-in;display:grid}.sort-card.dragging{cursor:grabbing;z-index:3;position:relative;scale:1.05;box-shadow:0 14px 18px #23305e4d}.sort-card.wrong{animation:.45s wiggle}.sort-card.into{transform:translate(calc(var(--dx,0px) * .6), 150px) scale(.4);opacity:0;transition:transform .45s ease-in,opacity .45s}.baskets{grid-template-columns:1fr 1fr;gap:16px;width:100%;display:grid}.basket{border:4px solid var(--ink);box-shadow:0 6px 0 var(--ink);background:repeating-linear-gradient(0deg,#0000 0 12px,#23305e1f 12px 14px),#f2c98a;border-radius:14px 14px 36px 36px;justify-items:center;gap:4px;padding:16px 8px 12px;display:grid}.basket-letter{font:700 clamp(44px, 13vw, 60px) / 1 var(--font-letter);color:var(--c);-webkit-text-stroke:2px var(--ink)}.basket-count{letter-spacing:2px;min-height:18px;color:var(--ink);font-size:14px}.basket.got{animation:.4s bounce}.wheel-wrap{aspect-ratio:1;width:min(78vw,300px);position:relative}.wheel{cursor:pointer;width:100%;height:100%}.wheel svg{width:100%;height:100%;filter:drop-shadow(0 6px 0 var(--ink))}.wheel-pointer{z-index:2;color:var(--ink);text-shadow:0 0 0 var(--sun);font-size:40px;line-height:1;position:absolute;top:-18px;left:50%;transform:translate(-50%)}.move-card{border:4px solid var(--ink);background:var(--paper);box-shadow:0 6px 0 var(--ink);border-radius:28px;align-items:center;gap:18px;padding:16px 26px;animation:.4s cubic-bezier(.3,1.5,.5,1) pop;display:flex}.move-emoji{font-size:clamp(70px,22vw,100px);line-height:1;animation:1.2s ease-in-out infinite wobble}.move-letter{font:700 clamp(56px, 17vw, 84px) / 1 var(--font-letter);color:var(--c);-webkit-text-stroke:2px var(--ink)}
