*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden;overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#1a103f;font-family:Fredoka,ui-rounded,Comic Sans MS,system-ui,sans-serif;color:#fff}body.playing{cursor:none}body.playing #gear,body.playing #dock{cursor:pointer}.hidden{display:none!important}#bg{position:fixed;inset:0;z-index:0;overflow:hidden}.bg-layer{position:absolute;left:50%;top:50%;width:180vmax;height:180vmax;margin:-90vmax 0 0 -90vmax;border-radius:50%;will-change:transform,opacity}.bg-a{background:conic-gradient(from 0deg,var(--bg1, #5b3df5),var(--bg2, #d23df5),var(--bg3, #f5743d),var(--bg4, #3df5b0),var(--bg1, #5b3df5));filter:saturate(1.15);animation:bg-spin 75s linear infinite}.bg-b{background:radial-gradient(circle at 30% 30%,var(--bg5, #2b1b6e) 0%,transparent 55%),radial-gradient(circle at 70% 65%,var(--bg6, #0e2a63) 0%,transparent 50%);animation:bg-drift 28s ease-in-out infinite alternate;opacity:.85}.bg-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(10,5,35,.55) 100%)}@keyframes bg-spin{to{transform:rotate(360deg)}}@keyframes bg-drift{0%{transform:translate(-4%,-3%) scale(1);opacity:.85}to{transform:translate(4%,3%) scale(1.08);opacity:.6}}#bg.palette-fade .bg-a{transition:none}#stage{position:fixed;inset:0;z-index:1;display:block}#attract-banner{position:fixed;left:50%;top:12%;transform:translate(-50%);z-index:5;font-size:clamp(28px,5vw,56px);font-weight:700;text-shadow:0 4px 24px rgba(0,0,0,.4);animation:banner-pulse 1.6s ease-in-out infinite;pointer-events:none;white-space:nowrap}@keyframes banner-pulse{0%,to{transform:translate(-50%) scale(1);opacity:.85}50%{transform:translate(-50%) scale(1.08);opacity:1}}#splash{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 40%,#5b3df559,#0c0628e0);backdrop-filter:blur(6px)}.splash-card{text-align:center;padding:6vmin 8vmin;animation:card-in .7s cubic-bezier(.34,1.56,.64,1)}@keyframes card-in{0%{transform:translateY(30px) scale(.92);opacity:0}to{transform:none;opacity:1}}.splash-emoji{font-size:clamp(34px,7vw,64px);letter-spacing:.4em}.splash-emoji span{display:inline-block;animation:float-bob 2.6s ease-in-out infinite}.splash-emoji span:nth-child(2){animation-delay:.3s}.splash-emoji span:nth-child(3){animation-delay:.6s}.splash-emoji span:nth-child(4){animation-delay:.9s}.splash-emoji span:nth-child(5){animation-delay:1.2s}@keyframes float-bob{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-14px) rotate(5deg)}}#splash h1{font-size:clamp(56px,11vw,128px);font-weight:700;margin:2vmin 0 0;background:linear-gradient(95deg,#ffd34d,#ff7ac3,#7af0ff);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 18px rgba(0,0,0,.35))}.tagline{font-size:clamp(18px,3vw,30px);opacity:.92;margin:1vmin 0 4vmin}#play-btn{font-family:inherit;font-size:clamp(24px,4vw,40px);font-weight:700;color:#2a1463;background:linear-gradient(180deg,#ffe27a,#ffb13d);border:none;border-radius:999px;padding:.6em 1.6em;cursor:pointer;box-shadow:0 10px #c77f1f,0 18px 36px #00000059;transition:transform .12s cubic-bezier(.34,1.56,.64,1),box-shadow .12s;animation:play-pulse 2.2s ease-in-out infinite}#play-btn:hover{transform:scale(1.05)}#play-btn:active{transform:translateY(6px) scale(.98);box-shadow:0 4px #c77f1f,0 8px 18px #0000004d}@keyframes play-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.12)}}.splash-hint{margin-top:3.5vmin;font-size:clamp(13px,1.6vw,17px);opacity:.6}.linklike{font-family:inherit;background:none;border:none;cursor:pointer;color:#cdbfff;opacity:.75;font-size:clamp(13px,1.6vw,16px);margin-top:1.2vmin;text-decoration:underline}.linklike:hover{opacity:1}#resume{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:#0e072dc7;backdrop-filter:blur(4px)}#resume-btn{font-family:inherit;font-size:clamp(28px,5vw,52px);font-weight:700;color:#2a1463;background:linear-gradient(180deg,#8af3a9,#3ad579);border:none;border-radius:999px;padding:.7em 1.4em;cursor:pointer;box-shadow:0 10px #1d9a52,0 18px 36px #0006;animation:play-pulse 1.8s ease-in-out infinite}#resume-btn:active{transform:translateY(6px);box-shadow:0 4px #1d9a52}#gear{position:fixed;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));z-index:40;width:52px;height:52px;font-size:26px;background:#ffffff14;border:none;border-radius:50%;opacity:.3;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .3s}#gear:hover,#gear.holding{opacity:.9}.gear-ring{position:absolute;inset:-4px;border-radius:50%;background:conic-gradient(#7af0ff calc(var(--p, 0) * 1%),transparent 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px))}#dock{position:fixed;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:40;display:flex;gap:8px;padding:8px 12px;background:#140a3759;border-radius:999px;opacity:.35;transition:opacity .3s}#dock:hover{opacity:1}.dock-btn{position:relative;width:54px;height:54px;font-size:30px;background:#ffffff1a;border:2px solid transparent;border-radius:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s cubic-bezier(.34,1.56,.64,1)}.dock-btn:hover{transform:scale(1.12)}.dock-btn.active{border-color:#ffd34d;background:#ffd34d38}.dock-btn .lock{position:absolute;right:-4px;bottom:-4px;font-size:17px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.5))}.dock-btn.wiggle{animation:wiggle .45s ease}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-9deg) scale(1.1)}75%{transform:rotate(9deg) scale(1.1)}}.modal-backdrop{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;background:#0a0523b3;backdrop-filter:blur(5px);animation:fade-in .25s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:linear-gradient(180deg,#2d1d6e,#1c1150);border:1px solid rgba(255,255,255,.14);border-radius:28px;padding:34px 38px;max-width:min(480px,92vw);max-height:88vh;overflow-y:auto;text-align:center;box-shadow:0 30px 80px #00000080;animation:modal-pop .35s cubic-bezier(.34,1.56,.64,1);cursor:auto}@keyframes modal-pop{0%{transform:scale(.85) translateY(24px);opacity:0}to{transform:none;opacity:1}}.modal h2{font-size:26px;font-weight:700;margin-bottom:8px}.modal p{font-size:16px;opacity:.85;line-height:1.45}.modal .small{font-size:13px;opacity:.55;margin-top:12px}.modal.shake{animation:shake .4s ease}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-7px)}80%{transform:translate(7px)}}.btn{font-family:inherit;font-size:18px;font-weight:600;border:none;border-radius:14px;padding:13px 22px;cursor:pointer;margin:6px;transition:transform .12s,filter .12s}.btn:hover{transform:scale(1.04);filter:brightness(1.1)}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(180deg,#ffe27a,#ffb13d);color:#2a1463}.btn-secondary{background:#ffffff1f;color:#fff}.btn-quiet{background:none;color:#cdbfff;text-decoration:underline;font-size:15px}.btn-row{margin-top:18px}.gate-question{font-size:34px;font-weight:700;margin:14px 0 4px}.gate-answer{font-size:32px;font-weight:700;min-height:48px;letter-spacing:.15em;color:#ffd34d}.keypad{display:grid;grid-template-columns:repeat(3,76px);gap:10px;justify-content:center;margin-top:14px}.keypad button{font-family:inherit;font-size:26px;font-weight:600;height:60px;border:none;border-radius:16px;background:#ffffff1a;color:#fff;cursor:pointer;transition:transform .1s,background .1s}.keypad button:hover{background:#fff3}.keypad button:active{transform:scale(.93)}.keypad .ok{background:linear-gradient(180deg,#8af3a9,#3ad579);color:#14502d}.paywall-packs{display:flex;justify-content:center;gap:14px;font-size:40px;margin:16px 0}.paywall-price{font-size:40px;font-weight:700;color:#ffd34d;margin:6px 0 2px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 4px;border-bottom:1px solid rgba(255,255,255,.08);font-size:17px;text-align:left}.settings-row input[type=range]{width:150px;accent-color:#ffd34d}.settings-row input[type=checkbox]{width:22px;height:22px;accent-color:#ffd34d}.settings-row input[type=email]{font-family:inherit;font-size:15px;padding:9px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:#00000040;color:#fff;width:100%}.parents-info{text-align:left;font-size:15px;line-height:1.55}.parents-info h3{margin:14px 0 4px;font-size:16px;color:#ffd34d}.parents-info ul{margin-left:18px}#toast{position:fixed;left:50%;top:14%;transform:translate(-50%);z-index:80;font-size:clamp(24px,4vw,42px);font-weight:700;padding:.5em 1.2em;background:#140a37d9;border-radius:999px;text-shadow:0 3px 12px rgba(0,0,0,.4);animation:toast-in .4s cubic-bezier(.34,1.56,.64,1);pointer-events:none;white-space:nowrap}@keyframes toast-in{0%{transform:translate(-50%) translateY(-30px) scale(.8);opacity:0}to{transform:translate(-50%);opacity:1}}#toast.out{transition:opacity .5s;opacity:0}#debug{position:fixed;left:8px;top:8px;z-index:90;font:12px/1.5 monospace;background:#0009;padding:6px 10px;border-radius:8px;pointer-events:none;white-space:pre}
