@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:500;src:url(./fredoka-latin-500-normal-B0JifZgm.woff2)format("woff2"),url(./fredoka-latin-500-normal-BL692wg7.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:600;src:url(./fredoka-latin-600-normal-C4zohCW5.woff2)format("woff2"),url(./fredoka-latin-600-normal-CcrEjrB4.woff)format("woff")}@font-face{font-family:Fredoka;font-style:normal;font-display:swap;font-weight:700;src:url(./fredoka-latin-700-normal-BOIZVyIN.woff2)format("woff2"),url(./fredoka-latin-700-normal-C8FeHd3X.woff)format("woff")}:root{--gold:#ffb020;--gold-soft:#ffd98a;--rose:#e2467a;--plum:#6b2a54;--teal:#1fa7a0;--cream:#fff8ec;--ink:#3b1f33;--shadow:0 10px 30px #5b243c47;--font:"Fredoka", "Avenir Next Rounded", "Trebuchet MS", system-ui, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;font-family:var(--font);color:var(--ink);background:#ffe9c7;margin:0;overflow:hidden}body{touch-action:none;-webkit-user-select:none;user-select:none;overscroll-behavior:none}#scene{outline:none;width:100vw;height:100vh;display:block;position:fixed;top:0;bottom:0;left:0;right:0}#ui{pointer-events:none;z-index:2;position:fixed;top:0;bottom:0;left:0;right:0}:where(#ui>*){pointer-events:auto}.fade,.toast,.sticker-award,.keyhint,.tapzone-hint,.touch,.hud-top,.progress,.dialogue.bark,.choices{pointer-events:none}.fade.on,.choices>.card{pointer-events:auto}button{font-family:var(--font);cursor:pointer;border:none}.hidden{display:none!important}.title{text-align:center;z-index:20;background:radial-gradient(at 50% 35%,#fff4d68c,#ffc47840 55%,#e2467a40 100%);flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.title h1{color:var(--gold);letter-spacing:1px;text-shadow:0 3px #c9670f,0 6px #a94b10,0 12px 30px #78281473;-webkit-text-stroke:2px #fff3cf;margin:0;font-size:clamp(54px,12vw,128px);font-weight:700;line-height:.95;animation:4s ease-in-out infinite titleFloat}.title .sub{color:var(--plum);text-shadow:0 2px #fff4d6;margin:14px 0 28px;font-size:clamp(20px,3.6vw,32px);font-weight:600}.title .sub b{color:var(--rose)}.title .buttons{flex-direction:column;align-items:center;gap:14px;display:flex}.big-btn{color:#fff;background:linear-gradient(180deg, #ff6f9c, var(--rose));box-shadow:0 6px 0 #a42754, var(--shadow);border-radius:999px;min-width:260px;padding:18px 56px;font-size:clamp(26px,5vw,38px);font-weight:700;transition:transform .12s}.big-btn:active{box-shadow:0 2px 0 #a42754, var(--shadow);transform:translateY(4px)}.big-btn.gold{box-shadow:0 6px 0 #c46d0b, var(--shadow);color:#5a2a06;background:linear-gradient(#ffd24d,#ffa41b)}.small-btn{color:var(--plum);background:#ffffffb3;border-radius:999px;padding:10px 22px;font-size:18px;font-weight:600}.title .loading{background:#fff9;border-radius:99px;width:min(360px,80vw);height:16px;margin-top:26px;overflow:hidden;box-shadow:inset 0 2px 4px #0000001f}.title .loading i{background:linear-gradient(90deg, var(--gold), var(--rose));border-radius:99px;width:0;height:100%;transition:width .3s;display:block}.title .loading-label{color:var(--plum);opacity:.8;margin-top:8px;font-size:16px}.title .fly{pointer-events:none;opacity:.9;width:42px;height:42px;animation:9s linear infinite flutter;position:absolute}@keyframes titleFloat{0%,to{transform:translateY(0)rotate(-1deg)}50%{transform:translateY(-10px)rotate(1deg)}}@keyframes flutter{0%{transform:translate(0)rotate(0)scaleX(1)}25%{transform:translate(40px,-60px)rotate(10deg)scaleX(.6)}50%{transform:translate(-30px,-130px)rotate(-8deg)scaleX(1)}75%{transform:translate(30px,-190px)rotate(6deg)scaleX(.6)}to{opacity:0;transform:translateY(-260px)rotate(0)scaleX(1)}}.hud-top{top:max(12px, env(safe-area-inset-top));pointer-events:none;justify-content:space-between;align-items:flex-start;gap:10px;display:flex;position:fixed;left:12px;right:12px}.hud-top>*{pointer-events:auto}.round-btn{background:var(--cream);width:64px;height:64px;box-shadow:0 4px 0 #d8b98b, var(--shadow);border-radius:50%;place-items:center;display:grid;position:relative}.round-btn svg{width:36px;height:36px}.round-btn .badge{background:var(--rose);color:#fff;border-radius:99px;padding:2px 8px;font-size:15px;font-weight:700;position:absolute;bottom:-6px;right:-6px;box-shadow:0 2px #a42754}.round-btn.pulse{animation:.8s ease-in-out 4 pulse}@keyframes pulse{50%{transform:scale(1.18)}}.objective{box-shadow:var(--shadow);color:var(--plum);background:#fff8eceb;border-radius:999px;align-items:center;gap:10px;max-width:60vw;padding:6px 18px 6px 6px;font-size:20px;font-weight:600;transition:opacity .4s;display:flex}.objective img{object-fit:cover;background:#ffe0b5;border-radius:50%;width:48px;height:48px}.hud-right{gap:10px;display:flex}.stat-row{gap:8px;margin-top:8px;display:flex}.stat{background:#fff8ece6;border-radius:99px;align-items:center;gap:4px;padding:4px 12px 4px 6px;font-size:17px;font-weight:700;display:flex;box-shadow:0 3px 10px #0000001f}.stat svg{width:26px;height:26px}.touch{pointer-events:none;height:0;position:fixed;top:auto;bottom:0;left:0;right:0}.joy{left:max(18px, env(safe-area-inset-left));bottom:max(22px, env(safe-area-inset-bottom));pointer-events:auto;touch-action:none;background:radial-gradient(circle,#ffffff59,#ffffff2e);border:4px solid #ffffffbf;border-radius:50%;width:170px;height:170px;position:fixed;box-shadow:0 6px 20px #0000001f}.joy .knob{background:linear-gradient(#fff,#ffe3b3);border-radius:50%;width:76px;height:76px;margin:-38px 0 0 -38px;position:absolute;top:50%;left:50%;box-shadow:0 4px #d8a766,0 6px 14px #0003}.joy .arrow{opacity:.7;border:12px solid #0000;width:0;height:0;position:absolute}.joy .a-up{border-top:0;border-bottom-color:#fff;margin-left:-12px;top:6px;left:50%}.joy .a-down{border-top-color:#fff;border-bottom:0;margin-left:-12px;bottom:6px;left:50%}.joy .a-left{border-left:0;border-right-color:#fff;margin-top:-12px;top:50%;left:6px}.joy .a-right{border-left-color:#fff;border-right:0;margin-top:-12px;top:50%;right:6px}.touch-btns{right:max(18px, env(safe-area-inset-right));bottom:max(22px, env(safe-area-inset-bottom));pointer-events:auto;grid-template-columns:auto auto;align-items:end;gap:14px;display:grid;position:fixed}.tbtn{color:#fff;touch-action:none;width:96px;height:96px;box-shadow:0 6px 0 #0000002e, var(--shadow);border-radius:50%;place-items:center;font-size:15px;font-weight:700;display:grid}.tbtn svg{width:46px;height:46px}.tbtn.jump{background:linear-gradient(180deg, #5ed3c6, var(--teal));width:108px;height:108px}.tbtn.act{background:linear-gradient(#ffd24d,#ffa41b)}.tbtn.wave{background:linear-gradient(180deg, #ff8fb4, var(--rose));width:78px;height:78px}.tbtn:active{transform:translateY(4px)}.tbtn.ready{animation:.9s ease-in-out infinite pulse}.dialogue{left:50%;bottom:max(18px, env(safe-area-inset-bottom));background:var(--cream);width:min(980px,100vw - 24px);box-shadow:0 6px 0 #e3c79c, var(--shadow);z-index:10;border:4px solid #ffe2ab;border-radius:28px;min-height:140px;padding:18px 22px 18px 132px;animation:.25s ease-out popIn;position:fixed;transform:translate(-50%)}.dialogue .portrait{object-fit:cover;border:4px solid var(--gold);background:#ffe0b5;border-radius:50%;width:108px;height:108px;position:absolute;top:50%;left:14px;transform:translateY(-50%);box-shadow:0 4px 10px #00000026}.dialogue .name{color:#fff;background:var(--rose);border-radius:99px;margin-bottom:6px;padding:2px 16px;font-size:20px;font-weight:700;display:inline-block}.dialogue .text{color:var(--ink);min-height:1.3em;font-size:clamp(22px,3.2vw,32px);font-weight:500;line-height:1.3}.dialogue .text .w{opacity:.25;transition:opacity .2s}.dialogue .text .w.on{opacity:1}.dialogue .controls{gap:12px;display:flex;position:absolute;bottom:-30px;right:14px}.dialogue .controls button{width:66px;height:66px;box-shadow:0 4px 0 #0000002e, var(--shadow);border-radius:50%;place-items:center;display:grid}.dialogue .controls svg{width:34px;height:34px}.dialogue .replay{background:#fff}.dialogue .next{background:linear-gradient(#ffd24d,#ffa41b)}.dialogue .next.ready{animation:.9s ease-in-out infinite pulse}.dialogue.bark{min-height:90px;bottom:auto;top:max(92px, calc(env(safe-area-inset-top) + 84px));width:min(760px,100vw - 24px);padding:12px 18px 12px 96px}.dialogue.bark .portrait{width:72px;height:72px;left:12px}.dialogue.bark .text{font-size:clamp(20px,2.6vw,26px)}@keyframes popIn{0%{opacity:0;transform:translate(-50%)scale(.85)}to{opacity:1;transform:translate(-50%)scale(1)}}@media (max-width:640px){.dialogue{padding:70px 14px 30px}.dialogue .portrait{width:86px;height:86px;top:-36px;left:16px;transform:none}.dialogue .name{position:absolute;top:14px;left:112px}.dialogue.bark{padding:10px 12px 12px 86px}.dialogue.bark .portrait{width:66px;height:66px;top:50%;left:8px;transform:translateY(-50%)}.dialogue.bark .name{position:static}.joy{width:140px;height:140px}.tbtn{width:82px;height:82px}.tbtn.jump{width:92px;height:92px}.tbtn.wave{width:66px;height:66px}.objective{max-width:52vw;font-size:16px}.objective img{width:38px;height:38px}}.choices{left:50%;bottom:max(24px, env(safe-area-inset-bottom));z-index:9;flex-wrap:wrap;justify-content:center;gap:16px;width:min(900px,96vw);display:flex;position:fixed;transform:translate(-50%)}.card{background:var(--cream);width:170px;box-shadow:0 6px 0 #e3c79c, var(--shadow);text-align:center;color:var(--plum);border:4px solid #0000;border-radius:26px;padding:12px;font-size:22px;font-weight:700;transition:transform .15s}.card img{object-fit:cover;background:#ffe0b5;border-radius:50%;width:128px;height:128px;margin:0 auto 8px;display:block}.card:hover,.card.sel{border-color:var(--gold);transform:translateY(-6px)scale(1.04)}.card.glowing{border-color:var(--gold);box-shadow:0 0 0 6px #ffb02080, var(--shadow)}.card .key{background:#ffe2ab;border-radius:8px;margin-right:4px;padding:0 8px;font-size:14px;display:inline-block}@media (max-width:640px){.card{width:29vw;padding:8px;font-size:16px}.card img{width:22vw;height:22vw}}.progress{top:max(12px, env(safe-area-inset-top));box-shadow:var(--shadow);z-index:8;background:#fff8ecf0;border-radius:99px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;max-width:92vw;padding:8px 18px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.progress .pip{background:#f1dcc0;border-radius:50%;place-items:center;width:30px;height:30px;transition:transform .3s,background .3s;display:grid}.progress .pip.on{background:var(--gold);transform:scale(1.15)}.progress .pip svg{width:20px;height:20px}.progress .label{color:var(--plum);margin-right:6px;font-size:20px;font-weight:700}.exit-btn{left:50%;top:max(12px, env(safe-area-inset-top));z-index:7;background:var(--cream);color:var(--plum);box-shadow:0 4px 0 #d8b98b, var(--shadow);border-radius:99px;align-items:center;gap:8px;padding:10px 22px 10px 14px;font-size:20px;font-weight:700;display:flex;position:fixed;transform:translate(-50%)}.exit-btn svg{width:32px;height:32px}.toast{background:var(--cream);color:var(--plum);box-shadow:var(--shadow);pointer-events:none;z-index:12;white-space:nowrap;border-radius:26px;align-items:center;gap:12px;padding:14px 28px;font-size:28px;font-weight:700;animation:2.4s forwards toastIn;display:flex;position:fixed;top:34%;left:50%;transform:translate(-50%,-50%)}.toast svg,.toast img{width:52px;height:52px}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-30%)scale(.8)}12%{opacity:1;transform:translate(-50%,-50%)scale(1.05)}20%{transform:translate(-50%,-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-70%)}}.sticker-award{z-index:15;pointer-events:none;filter:drop-shadow(0 12px 22px #0000004d);width:240px;height:240px;margin:-120px 0 0 -120px;position:fixed;top:45%;left:50%}.fade{opacity:0;pointer-events:none;z-index:30;background:radial-gradient(circle,#fffbe8,#ffd98a);transition:opacity .5s;position:fixed;top:0;bottom:0;left:0;right:0}.fade.on{opacity:1;pointer-events:auto}.album{z-index:25;background:#3c142873;place-items:center;padding:16px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.album .book{width:min(920px,100%);max-height:94vh;box-shadow:var(--shadow);background:linear-gradient(#fff8ec,#ffeccc);border:6px solid #ffd98a;border-radius:30px;padding:22px;position:relative;overflow:auto}.album h2{color:var(--rose);text-align:center;margin:0 0 6px;font-size:34px}.album h3{color:var(--plum);margin:18px 0 8px;font-size:22px}.album .grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;display:grid}.album .slot{text-align:center;color:var(--plum);background:#fff;border:3px dashed #f0cf9c;border-radius:20px;padding:10px;font-size:16px;font-weight:600}.album .slot.got{border:3px solid var(--gold);background:#fffdf5}.album .slot img{width:90px;height:90px;margin:0 auto 4px;display:block}.album .slot:not(.got) img{filter:grayscale()brightness(1.6)opacity(.35)}.album .bf-row{flex-wrap:wrap;gap:8px;display:flex}.album .bf{background:#fff;border:3px dashed #f0cf9c;border-radius:14px;place-items:center;width:50px;height:50px;display:grid}.album .bf.got{border:3px solid var(--gold)}.album .bf svg{width:36px;height:36px}.album .bf:not(.got) svg{opacity:.2;filter:grayscale()}.album .close{background:var(--rose);color:#fff;border-radius:50%;width:56px;height:56px;font-size:30px;font-weight:700;position:absolute;top:12px;right:12px;box-shadow:0 4px #a42754}.album .reset{opacity:.6;color:var(--plum);background:0 0;margin-top:18px;font-size:14px;text-decoration:underline}.keyhint{color:var(--plum);pointer-events:none;background:#fff8ecd9;border-radius:14px;padding:8px 12px;font-size:15px;line-height:1.5;transition:opacity .6s;position:fixed;bottom:14px;left:14px;box-shadow:0 3px 10px #0000001a}.keyhint kbd{font-family:var(--font);background:#fff;border:1px solid #e8cfa6;border-radius:6px;padding:0 6px;font-weight:700}.tapzone-hint{color:#fff;text-shadow:0 2px 6px #0006;pointer-events:none;font-size:26px;font-weight:700;animation:1.2s infinite pulse;position:fixed;bottom:24%;left:50%;transform:translate(-50%)}
