:root{--yellow:#ffd23f;--red:#e63946;--blue:#1d6fd8;--green:#2a9d4b;--ink:#1b2a49;--paper:#fffaf0;--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);font-family:ui-rounded,SF Pro Rounded,Nunito,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;color:var(--ink);background:#bfe3ff;margin:0;overflow:hidden}body{overscroll-behavior:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}img{-webkit-user-drag:none}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;border:0}button:disabled{cursor:default}button:focus-visible{outline:4px solid var(--ink);outline-offset:2px}h1,h2,p{margin:0}.app,.screen{position:fixed;inset:0}.screen{animation:.4s cubic-bezier(.2,.8,.2,1) both screen-in}@keyframes screen-in{0%{opacity:0;transform:translate(5%)}to{opacity:1;transform:none}}.btn{color:#fff;border-radius:28px;justify-content:center;align-items:center;gap:10px;min-width:56px;min-height:56px;padding:0 28px;font-size:22px;font-weight:800;transition:transform .1s,box-shadow .1s;display:inline-flex;box-shadow:0 6px #00000038}.btn:active{transform:translateY(5px);box-shadow:0 1px #00000038}.btn-big{border-radius:42px;min-height:84px;padding:0 56px;font-size:38px}.btn-yellow{background:var(--yellow);color:var(--ink)}.btn-red{background:var(--red)}.btn-blue{background:var(--blue)}.btn-gray{background:#8a94a6}.btn-link{color:var(--ink);opacity:.7;background:0 0;min-height:48px;padding:0 12px;font-size:16px}.icon-btn{width:52px;min-width:48px;height:52px;box-shadow:0 4px 0 #0003, 0 0 0 3px var(--ink) inset;background:#fff;border-radius:50%;place-items:center;font-size:24px;font-weight:800;line-height:1;transition:transform .1s;display:grid}.icon-btn:active:not(:disabled){transform:scale(.92)}.icon-btn.off{opacity:.55}.icon-btn:disabled{opacity:.35}.icon-btn.big{background:var(--yellow);width:68px;height:68px;font-size:34px}.icon-btn.ok{background:var(--green);color:#fff}.row{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;display:flex}.bar{padding:calc(10px + var(--sat)) calc(14px + var(--sar)) 10px calc(14px + var(--sal));align-items:center;gap:12px;display:flex}.bar h2{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:clamp(20px,3vw,30px);overflow:hidden}.title{padding:var(--sat) var(--sar) var(--sab) var(--sal);background:linear-gradient(#8fd0ff,#dff3ff 70%,#b7e07a 70%);flex-direction:column;justify-content:center;align-items:center;gap:22px;display:flex;position:absolute;inset:0;overflow:hidden}.floaters{pointer-events:none;position:absolute;inset:0}.floater{opacity:.9;border-radius:8px;animation:linear infinite float;position:absolute;bottom:-80px;box-shadow:inset 0 -6px #0000002e}.floater:before{content:"";background:inherit;width:24%;height:10px;box-shadow:calc(var(--w,28px)) 0 0 0 transparent;border-radius:4px 4px 0 0;position:absolute;top:-8px;left:18%}@keyframes float{0%{transform:translateY(0)rotate(0)}to{transform:translateY(-120vh)rotate(300deg)}}.logo{text-align:center;z-index:1}.logo h1{color:var(--red);text-shadow:0 5px 0 var(--ink), 0 8px 12px #00000040;letter-spacing:1px;font-size:clamp(40px,8vw,84px);font-weight:900}.logo p{font-size:clamp(16px,2.4vw,26px);font-weight:700}.logo-bricks{gap:8px;margin-bottom:6px;display:inline-flex}.logo-bricks b{border-radius:6px;width:44px;height:30px;animation:1.6s ease-in-out infinite bob;box-shadow:inset 0 -5px #0003}.logo-bricks b:nth-child(2){animation-delay:.2s}.logo-bricks b:nth-child(3){animation-delay:.4s}@keyframes bob{50%{transform:translateY(-8px)}}.title .btn{z-index:1}.corner-row{z-index:1;right:calc(16px + var(--sar));bottom:calc(16px + var(--sab));gap:12px;display:flex;position:absolute}.levels{background:linear-gradient(#bfe3ff,#fff3c4);flex-direction:column;display:flex;position:absolute;inset:0}.level-grid{padding:12px calc(20px + var(--sar)) calc(24px + var(--sab)) calc(20px + var(--sal));touch-action:pan-y;flex:1;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));align-content:start;gap:18px;display:grid;overflow-y:auto}.card{background:var(--paper);border-radius:22px;flex-direction:column;align-items:center;gap:6px;min-height:200px;padding:10px;transition:transform .12s;display:flex;box-shadow:0 6px #0000002e}.card:active:not(:disabled){transform:scale(.96)}.card-img{aspect-ratio:1;background:#dff3ff;border-radius:14px;place-items:center;width:100%;display:grid;position:relative;overflow:hidden}.card-img img{object-fit:contain;width:100%;height:100%}.card-emoji{font-size:64px}.card.locked{filter:grayscale(.8);opacity:.75}.lock{background:#ffffff73;place-items:center;font-size:48px;display:grid;position:absolute;inset:0}.card-name{font-size:18px;font-weight:800}.stars{letter-spacing:2px;font-size:26px}.stars i{color:#cfd6e2;font-style:normal}.stars i.on{color:#ffb400;text-shadow:0 2px #b97800}.play{background:#cfeaff;position:absolute;inset:0;overflow:hidden}.stage{touch-action:none;position:absolute;inset:0}.hud{pointer-events:none;position:absolute;inset:0}.hud>*{pointer-events:auto}.topbar{pointer-events:none;background:linear-gradient(#ffffffd9,#fff0);position:absolute;top:0;left:0;right:0}.topbar>*{pointer-events:auto}.counter{background:var(--blue);color:#fff;text-align:center;border-radius:22px;min-width:64px;padding:8px 16px;font-size:22px;font-weight:900}.boxcard{aspect-ratio:1;background:var(--paper);border:4px solid var(--red);border-radius:16px;place-items:center;width:clamp(88px,14vw,150px);padding:6px;font-size:48px;transition:transform .15s;display:grid;position:relative;box-shadow:0 5px #0003}.boxcard.on{border-color:var(--green);transform:scale(1.06)}.boxcard img{object-fit:contain;width:100%;height:100%}.held{left:50%;bottom:calc(var(--tray-h) + 6px);opacity:.8;white-space:nowrap;text-overflow:ellipsis;background:#fff;border-radius:16px;max-width:60vw;padding:3px 14px;font-size:15px;font-weight:800;position:absolute;overflow:hidden;transform:translate(-50%);box-shadow:0 4px #0000002e}.held.has{background:var(--yellow);opacity:1}.play{--tray-base:184px;--tray-h:calc(var(--tray-base) + var(--sab))}@media (height<=520px){.play{--tray-base:150px}}.bubble{border:4px solid var(--ink);background:#fff;border-radius:22px;padding:12px 20px;font-size:22px;font-weight:800;box-shadow:0 6px #0003}.oops{pointer-events:none;background:#fff3c4;animation:.3s cubic-bezier(.3,1.6,.5,1) both pop-in;position:absolute;top:32%;left:50%;transform:translate(-50%)}@keyframes pop-in{0%{opacity:0;transform:translate(-50%)scale(.6)}to{opacity:1;transform:translate(-50%)scale(1)}}.tray{width:100%;height:calc(var(--tray-base) + var(--sab));padding:8px calc(10px + var(--sar)) var(--sab) calc(10px + var(--sal));flex-direction:column;gap:8px;display:flex;position:relative}.chips{touch-action:pan-x;scrollbar-width:none;flex:none;align-items:center;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.chip{background:#e4ebf5;border-radius:24px;flex:none;min-width:48px;min-height:48px;padding:0 16px;font-size:17px;font-weight:800}.chip.on{background:var(--blue);color:#fff}.chip.dot{background:var(--dot);width:48px;padding:0;box-shadow:inset 0 0 0 3px #00000026}.chip.dot.on{box-shadow:0 0 0 4px var(--ink)}.chip-sep{background:#c3cde0;flex:none;width:2px;height:28px}.tiles{touch-action:pan-x;flex:1;grid-template-rows:repeat(2,1fr);grid-auto-columns:64px;grid-auto-flow:column;place-content:start;gap:8px;min-height:0;display:grid;overflow:auto hidden}.tile{background:#fff;border-radius:14px;place-items:center;width:64px;height:100%;min-height:48px;padding:2px;transition:transform .15s,box-shadow .15s;display:grid;box-shadow:0 3px #0000002e,inset 0 0 0 2px #dbe3f0}.tile img{object-fit:contain;pointer-events:none;width:100%;height:100%}.tile-fallback{border-radius:6px;width:70%;height:50%}.tile.selected{box-shadow:0 10px 14px #00000040, 0 0 0 4px var(--blue);transform:translateY(-8px)scale(1.08)}.tile.used{opacity:.3;filter:grayscale(.7)}.tile.pulse{animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 5px var(--yellow), 0 0 18px 6px #ffd23fe6;transform:scale(1.12)}}.coach{pointer-events:none;z-index:20;position:absolute;inset:0}.spot{box-shadow:0 0 0 9999px #141e3c8c, 0 0 0 4px var(--yellow);border-radius:22px;transition:all .3s;position:absolute}.coach-bubble{text-align:center;pointer-events:auto;background:var(--paper);flex-direction:column;align-items:center;gap:6px;width:min(420px,92vw);padding:12px 16px 6px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.coach-bubble h3{color:var(--red);margin:0;font-size:26px;font-weight:900}.coach-bubble p{font-size:22px;line-height:1.25}.coach-icon{font-size:56px;line-height:1;animation:1.6s ease-in-out infinite bob}.coach-dim{background:#141e3c73;position:absolute;inset:0}.btn.sm{min-height:52px;padding:0 22px;font-size:20px}.dots{gap:8px;margin:2px 0 4px;display:flex}.dots i{background:#cfd6e2;border-radius:50%;width:12px;height:12px}.dots i.seen{background:var(--blue);opacity:.55}.dots i.on{background:var(--red);transform:scale(1.35)}.hand{z-index:2;filter:drop-shadow(0 4px 4px #00000059);font-size:56px;line-height:1;animation:2.4s ease-in-out infinite hand-drag;position:absolute;top:0;left:0}@keyframes hand-drag{0%{transform:translate(var(--x0), var(--y0)) scale(1);opacity:0}12%{opacity:1;transform:translate(var(--x0), var(--y0)) scale(.85)}75%{opacity:1;transform:translate(var(--x1), var(--y1)) scale(.85)}90%,to{opacity:0;transform:translate(var(--x1), var(--y1)) scale(1)}}.panel{background:#fffaf0f5;border-radius:18px;flex-direction:column;max-width:calc(100vw - 16px);display:flex;position:absolute;box-shadow:0 4px 14px #00000038}.panel.gone{display:none}.panel-head{flex:none;align-items:center;display:flex}.panel-tab,.panel-pin{background:0 0;border-radius:18px;justify-content:center;align-items:center;gap:6px;min-width:44px;min-height:44px;font-size:16px;font-weight:800;display:inline-flex}.panel-tab{flex:1;justify-content:flex-start;padding:0 10px}.panel-icon{font-size:22px;line-height:1}.panel-title{white-space:nowrap;text-overflow:ellipsis;max-width:38vw;overflow:hidden}.panel-chev{opacity:.6;margin-left:auto}.panel-pin{opacity:.35;filter:grayscale();padding:0;font-size:18px;transition:opacity .2s,transform .2s}.panel-pin.on{opacity:1;filter:none;transform:rotate(-30deg)}.panel-body{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.2,.8,.2,1),opacity .2s;display:grid}.panel.open .panel-body{opacity:1;grid-template-rows:1fr}.panel-inner{min-height:0;overflow:hidden}.panel.open .panel-inner{overflow:visible}.panel-peek{align-items:center;gap:8px;padding:0 6px 6px;display:flex}.panel-peek:empty{display:none}.panel.folded{background:#fffaf0e0}.panel.folded .panel-title,.panel.folded .panel-pin{display:none}.panel.folded .panel-tab{justify-content:center}.panel.folded .panel-chev{margin-left:0}.panel.folded .panel-peek{padding-top:0}.panel:focus-within{box-shadow:0 4px 14px #00000038, 0 0 0 3px var(--blue)}.topbar{align-items:flex-start;gap:8px}.topbar .spacer{flex:1}.topbar .panel{position:relative}.steps-panel .panel-title{max-width:26vw}.steps-panel.folded .panel-head{display:inline-flex}.steps-panel.folded{flex-direction:row;align-items:center;padding-right:4px}.steps-panel.folded .panel-peek{padding:0}.steps-panel.folded .panel-body{display:none}.steps-info{padding:4px 14px 12px;font-size:18px;font-weight:800}.settings-panel .panel-body{min-width:0}.settings-slot{flex:none;width:44px;height:44px;position:relative}.topbar .settings-panel{z-index:3;position:absolute;top:0;right:0}.settings-panel.open .panel-title{max-width:120px}.row.tight{flex-wrap:nowrap;gap:8px;padding:2px 10px 10px}.icon-btn.sm{width:44px;min-width:44px;height:44px;font-size:20px}.icon-btn.on{background:var(--yellow)}.counter{min-width:56px;padding:8px 12px;font-size:18px}.counter.mini{left:calc(12px + var(--sal));top:calc(12px + var(--sat));opacity:.85;min-width:0;padding:4px 12px;font-size:16px;position:absolute}.picture-panel{left:calc(8px + var(--sal));top:calc(70px + var(--sat))}.picture-panel .panel-body{padding:0 8px 8px}.picture-panel.open{padding-bottom:0}.picture-panel.folded .panel-head{width:44px}.tools-panel{right:calc(8px + var(--sar));bottom:calc(var(--tray-h) + 14px);box-shadow:none;background:0 0;flex-direction:column-reverse;align-items:center}.tools-panel .panel-head{background:#fffaf0eb;border-radius:22px;margin-top:8px;box-shadow:0 3px 8px #0003}.tools-panel .panel-title{max-width:80px}.tools-panel .panel-peek{flex-flow:wrap-reverse;justify-content:center;gap:8px;max-width:132px;padding:0}.tools-panel .icon-btn.big{width:60px;height:60px;font-size:30px}.tools-panel .panel-body,.tools-panel:focus-within{box-shadow:none}.tools-col{flex-flow:wrap;justify-content:center;gap:8px;max-width:132px;padding-bottom:8px;display:flex}.zoom-slot:empty{display:none}.tray-panel{border-radius:24px 24px 0 0;max-width:none;bottom:0;left:0;right:0;box-shadow:0 -4px 14px #0000002e}.tray-panel .panel-head{padding:0 8px}.tray-panel .panel-tab{flex:none;margin:0 auto}.tray-panel .panel-pin{right:calc(8px + var(--sar));position:absolute;top:0}.tray-panel.folded{border-radius:22px 22px 0 0;width:76px;left:50%;right:auto;transform:translate(-50%)}.tray-panel.folded .panel-head{padding:0}.tray-panel.folded .panel-tab{flex:1;margin:0}.tray-panel .panel-tab .panel-chev{margin-left:4px}.tray-panel .panel-title{max-width:50vw}.play.tray-folded .held{bottom:58px}.play.tray-folded .tools-panel{bottom:62px}.play:not(.tray-folded) .tools-panel{bottom:calc(var(--tray-h) + 8px)}.focus-exit{right:calc(12px + var(--sar));top:calc(12px + var(--sat));opacity:.7;position:absolute}.swipe-handle{left:50%;bottom:calc(var(--sab) + 2px);touch-action:none;z-index:4;background:#fffaf0b3;border-radius:22px 22px 0 0;width:120px;height:44px;font-size:20px;font-weight:800;position:absolute;transform:translate(-50%);box-shadow:0 -2px 8px #00000026}.play.focus .topbar{background:0 0}.play.focus .tray-panel{z-index:3}.play.focus .tray-panel .panel-pin{display:none}.play.max-css{z-index:100;width:100vw;height:100dvh;position:fixed;inset:0}.play.max .topbar h2{display:none}.play:fullscreen{width:100vw;height:100vh}.complete{padding:var(--sat) var(--sar) var(--sab) var(--sal);background:radial-gradient(#fff3c4,#8fd0ff);flex-direction:column;justify-content:center;align-items:center;gap:28px;display:flex;position:absolute;inset:0;overflow:hidden}.complete h2{color:var(--red);text-shadow:0 4px 0 var(--ink);z-index:1;font-size:clamp(40px,8vw,80px);font-weight:900}.big-stars{z-index:1;gap:12px;display:flex}.big-stars i{color:#fff;text-shadow:0 0 #b8c4d8,0 6px #aab6cc;opacity:.6;font-size:clamp(70px,14vw,140px);font-style:normal}.big-stars i.pop{color:#ffb400;opacity:1;text-shadow:0 6px #b97800;animation:.6s cubic-bezier(.3,1.8,.5,1) both star-pop}@keyframes star-pop{0%{transform:scale(0)rotate(-120deg)}to{transform:none}}.complete .row{z-index:1}.confetti{pointer-events:none;position:absolute;inset:0}.confetti i{border-radius:2px;animation:linear infinite fall;position:absolute;top:-30px}@keyframes fall{to{transform:translateY(110vh)rotate(720deg)}}@media (width<=600px){.floater.mid{display:none}.floater{max-width:34px;max-height:24px}.btn-big{min-height:72px;padding:0 36px;font-size:30px}.boxcard{top:calc(70px + var(--sat))}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.floaters,.confetti{display:none}}.tile{touch-action:pan-x;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.tile.dragging{touch-action:none;opacity:.55}.dnd-ghost{z-index:100000;pointer-events:none;filter:drop-shadow(0 8px 10px #00000059);will-change:transform;width:72px;height:72px;position:fixed;top:0;left:0}.dnd-ghost img{object-fit:contain;width:100%;height:100%;display:block}.dnd-ghost-plain{background:#fff;border-radius:14px;box-shadow:0 0 0 3px #4a90e2}.zc{gap:6px;display:flex}.zc button{color:#234;cursor:pointer;touch-action:manipulation;background:#fff;border:0;border-radius:12px;place-items:center;width:44px;min-width:44px;height:44px;font-size:22px;font-weight:700;line-height:1;display:grid;box-shadow:0 2px #0000002e,inset 0 0 0 2px #dbe3f0}.zc button:active{transform:translateY(1px)}.zc button:focus-visible{outline-offset:2px;outline:3px solid #4a90e2}
