@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/nunito-vietnamese-700-normal-Ch8EUCfz.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/nunito-vietnamese-800-normal-D_CZYdm9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--cream:oklch(97% .018 92);--cream-deep:oklch(91% .035 85);--ink:oklch(28% .025 55);--ink-soft:oklch(45% .02 55);--lacquer:oklch(55% .165 35);--lacquer-deep:oklch(42% .14 32);--fog:oklch(88% .01 90);--night:oklch(22% .03 260);--moon:oklch(94% .04 95);--leaf:oklch(62% .12 145);--sky:oklch(88% .04 230);--sunflower:oklch(84% .14 85);--card:#fff;--card-border:oklch(74% .03 85);--card-border-w:3px;--card-shadow:0 8px 20px oklch(30% .03 55/.18);--card-lip:6px;--card-lip-color:oklch(70% .035 85);--card-pad:28px;--card-tint-uoa:oklch(88% .07 145);--card-tint-uoa-border:oklch(62% .1 145);--card-tint-uoa-lip:oklch(58% .11 145);--card-tint-animals:oklch(88% .055 220);--card-tint-animals-border:oklch(64% .07 220);--card-tint-animals-lip:oklch(60% .07 220);--card-tint-shapes:oklch(87% .1 95);--card-tint-shapes-border:oklch(66% .11 90);--card-tint-shapes-lip:oklch(62% .12 90);--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px;--space-7:64px;--space-8:80px;--r-sm:16px;--r-md:24px;--r-lg:36px;--r-xl:44px;--r-pill:999px;--motion-tap:.12s cubic-bezier(.2, .8, .2, 1);--motion-reveal:.28s cubic-bezier(.34, 1.3, .64, 1);--motion-nudge:.32s cubic-bezier(.4, 0, .2, 1);--motion-soft:.48s ease-in-out;--font:Nunito, ui-rounded, system-ui, -apple-system, "Segoe UI", sans-serif;--target:56px;--toddler:200px;--gear-size:56px;--gear-gap:16px;--gear-zone:72px;--edge-inset:40px}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}html,body,#app{overscroll-behavior:none;touch-action:manipulation;background:var(--cream);width:100%;height:100dvh;color:var(--ink);font-family:var(--font);margin:0;font-size:16px;font-weight:700;overflow:hidden}body{position:fixed;inset:0}button{font:inherit;color:inherit;cursor:pointer;appearance:none;background:0 0;border:0;padding:0;font-weight:800}img,svg{-webkit-user-drag:none;pointer-events:none;display:block}[hidden]{display:none!important}#app{background:var(--cream)}#app.is-warning{background:color-mix(in oklab, var(--cream) 82%, var(--night))}.art-svg{width:100%;height:100%}.art-eyes{transform-box:fill-box;transform-origin:50%;animation:4.6s ease-in-out infinite blink;animation-delay:var(--blink-delay,0s)}@keyframes blink{0%,88%,to{transform:scaleY(1)}92%{transform:scaleY(.08)}}.home,.game-view,.winddown{position:absolute;inset:0}.home{padding:max(20px, env(safe-area-inset-top)) max(28px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(28px, env(safe-area-inset-left));gap:var(--space-3);flex-direction:column;display:flex}.home__brand{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.home__mark{width:44px;height:44px}.home__title{color:var(--ink-soft);letter-spacing:.01em;margin:0;font-size:18px;font-weight:800}.home__speaker{width:28px;height:28px;color:var(--ink-soft);margin-left:4px}.home__speaker-icon{width:100%;height:100%}.home__speaker-mute,.home__speaker.is-muted .home__speaker-waves{display:none}.home__speaker.is-muted .home__speaker-mute{display:block}.start-btn{border-radius:var(--r-pill);background:var(--lacquer);min-width:260px;min-height:68px;color:var(--cream);box-shadow:0 6px 0 var(--lacquer-deep);margin:auto;padding:16px 40px;font-size:24px;font-weight:800}.start-btn:active{box-shadow:0 2px 0 var(--lacquer-deep);transform:translateY(4px)scale(.98)}.home.is-unlocked .start-btn{margin:0}.home__live{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:28px;width:100%;min-height:0;display:grid}.game-tile{min-width:0;min-height:var(--toddler);height:100%;padding:var(--card-pad) var(--card-pad) 18px;border-radius:var(--r-xl);background:var(--card);border:var(--card-border-w) solid var(--card-border);box-shadow:var(--card-shadow), 0 var(--card-lip) 0 var(--card-lip-color);transition:transform var(--motion-tap), box-shadow var(--motion-tap);flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;display:flex;overflow:hidden;transform:translateY(0)}.game-tile--uoa{background:var(--card-tint-uoa);border-color:var(--card-tint-uoa-border);box-shadow:var(--card-shadow), 0 var(--card-lip) 0 var(--card-tint-uoa-lip)}.game-tile--animals{background:var(--card-tint-animals);border-color:var(--card-tint-animals-border);box-shadow:var(--card-shadow), 0 var(--card-lip) 0 var(--card-tint-animals-lip)}.game-tile--shapes{background:var(--card-tint-shapes);border-color:var(--card-tint-shapes-border);box-shadow:var(--card-shadow), 0 var(--card-lip) 0 var(--card-tint-shapes-lip)}.game-tile:active{box-shadow:0 2px 8px oklch(35% .03 55/.1), 0 2px 0 var(--card-lip-color);transform:translateY(4px)}.game-tile--uoa:active{box-shadow:0 2px 8px oklch(35% .03 55/.1), 0 2px 0 var(--card-tint-uoa-lip)}.game-tile--animals:active{box-shadow:0 2px 8px oklch(35% .03 55/.1), 0 2px 0 var(--card-tint-animals-lip)}.game-tile--shapes:active{box-shadow:0 2px 8px oklch(35% .03 55/.1), 0 2px 0 var(--card-tint-shapes-lip)}.game-tile__art{border-radius:calc(var(--r-xl) - 14px);flex:1;place-items:center;width:100%;min-height:0;display:grid;overflow:hidden}.game-tile__icon{width:auto;max-width:100%;height:auto;max-height:100%}.game-tile__label{color:var(--ink);text-align:center;flex-shrink:0;font-size:17px;font-weight:800;line-height:1.2}.home__coming{padding:6px var(--gear-zone) 8px 0;pointer-events:none;flex-shrink:0;justify-content:center;align-items:center;gap:20px;display:flex}.coming-item{background:var(--card);border:2px solid var(--card-border);width:56px;height:56px;box-shadow:0 3px 8px oklch(35% .03 55/.1), 0 3px 0 var(--card-lip-color);opacity:.85;border-radius:16px;place-items:center;display:grid}.coming-item__icon{object-fit:contain;filter:grayscale();opacity:.75;width:34px;height:34px}.gear{right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom));width:var(--gear-size);height:var(--gear-size);min-width:44px;min-height:44px;color:var(--ink-soft);opacity:.45;z-index:6;border-radius:50%;place-items:center;display:grid;position:absolute}.gear__icon{width:26px;height:26px}.warning-pulse{bottom:calc(28px + env(safe-area-inset-bottom));right:calc(80px + env(safe-area-inset-right));background:var(--sunflower);width:12px;height:12px;box-shadow:0 0 0 0 color-mix(in oklab, var(--sunflower) 70%, transparent);z-index:6;pointer-events:none;border-radius:50%;animation:1.6s ease-out infinite pulse;position:absolute}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in oklab, var(--sunflower) 55%, transparent)}to{box-shadow:0 0 0 14px #0000}}.overlay{z-index:8;background:color-mix(in oklab, var(--ink) 45%, transparent);place-items:center;padding:24px;display:grid;position:absolute;inset:0}.gate-card,.panel{background:var(--card);border:var(--card-border-w) solid var(--card-border);text-align:center;width:min(420px,100%);box-shadow:var(--card-shadow), 0 6px 0 var(--card-lip-color);border-radius:32px;padding:32px}.gate-card__title,.panel__title{margin:0 0 8px;font-size:20px;font-weight:800}.gate-card__hint,.panel__label{color:var(--ink-soft);margin:0 0 24px;font-size:14px;font-weight:700}.guided-card{text-align:left;flex-direction:column;display:flex}.guided-card .gate-card__title{text-align:center}.guided-card__body{color:var(--ink);margin:0 0 24px;font-size:16px;font-weight:700;line-height:1.5}.guided-card__done{border-radius:var(--r-pill);background:var(--lacquer);min-height:48px;color:var(--cream);align-self:flex-end;padding:0 24px;font-size:16px;font-weight:800;line-height:1.2}.panel{text-align:left;gap:12px;padding:28px 24px 20px;display:grid}.panel__title{text-align:center}.panel__label{text-align:left;margin:8px 0 0}.hold-circle{--hold-progress:0%;width:200px;height:200px;min-width:var(--toddler);min-height:var(--toddler);background:conic-gradient(from -90deg, var(--lacquer) var(--hold-progress), var(--fog) 0);touch-action:none;border-radius:50%;margin:0 auto;position:relative}.hold-circle:before{content:"";background:var(--card);border:2px solid var(--card-border);z-index:0;border-radius:50%;position:absolute;inset:16px}.hold-ring{z-index:1;width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.hold-ring__track,.hold-ring__value{fill:none;stroke-width:16px;stroke-linecap:round}.hold-ring__track{stroke:var(--fog)}.hold-ring__value{stroke:var(--lacquer)}.hold-circle__label{pointer-events:none;z-index:2;place-items:center;font-size:18px;font-weight:800;display:grid;position:absolute;inset:18px}.chip-row{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.chip,.panel-btn{border-radius:var(--r-pill);background:var(--cream-deep);min-height:52px;font-weight:800}.chip{border-radius:var(--r-sm);border:2px solid var(--card-border);background:var(--card);box-shadow:0 3px 0 var(--card-lip-color)}.chip.is-selected{border-color:var(--lacquer);background:color-mix(in oklab, var(--lacquer) 12%, var(--cream));color:var(--lacquer-deep)}.panel-btn--danger{background:var(--lacquer);color:var(--cream)}.panel-btn--done{background:var(--ink);color:var(--cream)}.home-btn{left:max(20px, env(safe-area-inset-left));top:max(14px, env(safe-area-inset-top));background:var(--card);border:2px solid var(--card-border);width:56px;min-width:44px;height:56px;min-height:44px;box-shadow:var(--card-shadow), 0 3px 0 var(--card-lip-color);z-index:6;border-radius:50%;place-items:center;display:grid;position:absolute}.home-btn:active{box-shadow:0 1px 4px oklch(35% .03 55/.12), 0 1px 0 var(--card-lip-color);transform:translateY(3px)}.home-btn__icon{width:28px;height:28px}.game-stage{height:100%;position:relative}.winddown{background:var(--night);color:var(--moon);align-content:center;place-items:center;gap:18px;display:grid}.winddown__art{width:min(82vw,420px);height:auto}.winddown__line{margin:0;font-size:clamp(1.4rem,5vw,2rem);font-weight:800}@media (orientation:portrait){.home.is-unlocked .home__live{grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:1fr;gap:12px}.home.is-unlocked .game-tile{flex-direction:column;justify-content:flex-start;height:100%;min-height:0;padding:12px 20px 16px;position:relative}.home.is-unlocked .game-tile__art{flex:auto;place-items:center;width:100%;height:auto;min-height:0;display:grid}.home.is-unlocked .game-tile__icon{object-fit:contain;width:auto;max-width:80%}.home.is-unlocked .game-tile__label{text-align:center;flex-shrink:0;margin-top:4px;font-size:16px;position:static}.home__coming{gap:16px}.coming-item{width:44px;height:44px}}@media (prefers-reduced-motion:reduce){.game-tile,.start-btn,.warning-pulse,.art-eyes{transition:none;animation:none}}.uoa-stage{padding-top:max(72px, env(safe-area-inset-top));padding-left:max(var(--edge-inset), env(safe-area-inset-left));padding-right:max(var(--gear-zone), calc(var(--edge-inset) + env(safe-area-inset-right)));padding-bottom:max(var(--gear-zone), calc(var(--edge-inset) + env(safe-area-inset-bottom)));touch-action:none;background:linear-gradient(oklch(90% .035 220) 0%,oklch(94% .025 100) 55%,oklch(86% .05 95) 55%,oklch(78% .06 95) 100%);justify-content:center;align-items:flex-end;gap:24px;display:flex;position:absolute;inset:0;overflow:hidden}.hide-spot{max-width:300px;min-width:var(--toddler);min-height:var(--toddler);flex:1;justify-content:center;align-items:flex-end;height:82%;display:flex;position:relative;overflow:hidden}.uoa-peeker{visibility:hidden;opacity:0;z-index:1;width:78%;transition:opacity var(--motion-reveal), transform var(--motion-reveal);position:absolute;bottom:38%;left:50%;transform:translate(-50%)scale(.7)translateY(24px)}.hide-spot.is-revealed .uoa-peeker{visibility:visible;opacity:1;transform:translate(-50%)scale(1.05)translateY(-8px)}.uoa-peeker__img,.uoa-cover__img{object-fit:contain;object-position:bottom;width:100%;max-width:100%;height:100%;max-height:100%}.uoa-cover{z-index:2;opacity:1;transform-origin:bottom;width:100%;height:100%;transition:transform var(--motion-reveal);position:relative}.hide-spot.is-revealed .uoa-cover{opacity:1;transform:translateY(-22%)scale(.9)}.animal-scene{position:absolute;inset:0}.animal-scene__sky{background:linear-gradient(oklch(90% .035 220) 0%,oklch(93% .03 100) 48%,oklch(80% .06 110) 48%,oklch(74% .05 110) 100%);position:absolute;inset:0}.animal-scene__fence{z-index:1;opacity:.45;background:repeating-linear-gradient(90deg,#8b6914 0 18px,#0000 18px 28px);border-top:4px solid #6b4f10;border-bottom:4px solid #6b4f10;height:28px;position:absolute;top:46%;left:0;right:0}.animal-grid{z-index:2;height:100%;padding-top:max(88px, env(safe-area-inset-top));padding-left:max(var(--edge-inset), env(safe-area-inset-left));padding-right:max(var(--gear-zone), calc(var(--edge-inset) + env(safe-area-inset-right)));padding-bottom:max(var(--gear-zone), calc(var(--edge-inset) + env(safe-area-inset-bottom)));touch-action:none;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;display:grid;position:relative}.animal-tile{min-width:0;min-height:var(--toddler);border-radius:var(--r-lg);background:var(--card);border:var(--card-border-w) solid oklch(72% .03 85);height:100%;transition:transform var(--motion-tap), box-shadow var(--motion-tap);place-items:center;padding:24px 20px 18px;display:grid;overflow:hidden;transform:translateY(0);box-shadow:0 8px 18px oklch(30% .03 55/.2),0 5px oklch(68% .035 85)}.animal-tile:active{box-shadow:0 2px 8px oklch(35% .03 55/.1), 0 2px 0 var(--card-lip-color);transform:translateY(4px)}.animal-tile__img{object-fit:contain;width:100%;height:100%}.animal-tile.is-pop .animal-tile__img{animation:.28s cubic-bezier(.34,1.3,.64,1) pop}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.16)}to{transform:scale(1)}}.shapes-layout{padding-top:max(64px, env(safe-area-inset-top));padding-left:max(var(--edge-inset), env(safe-area-inset-left));padding-right:max(var(--gear-zone), calc(var(--edge-inset) + env(safe-area-inset-right)));padding-bottom:max(var(--gear-zone), calc(var(--edge-inset) + env(safe-area-inset-bottom)));touch-action:none;gap:24px;min-height:0;display:flex;position:absolute;inset:0}.shape-pool{flex:1.45;grid-template-rows:repeat(2,minmax(160px,1fr));grid-template-columns:repeat(3,minmax(160px,1fr));place-content:center;gap:12px;min-width:0;min-height:0;display:grid}.shape-piece{border-radius:var(--r-md);cursor:grab;touch-action:none;min-width:160px;height:100%;min-height:160px;transition:transform var(--motion-nudge);place-items:center;display:grid}.shape-piece.is-dragging{z-index:4;cursor:grabbing;transition:none}.shape-piece.is-nudge{animation:.32s cubic-bezier(.4,0,.2,1) nudge}.shape-piece.is-placed{pointer-events:none;cursor:default;z-index:1;width:auto;min-width:0;height:auto;min-height:0;position:absolute;inset:0}.shape-piece.is-placed .shape-piece__img{object-fit:contain;width:auto;min-width:0;max-width:80%;height:70%;min-height:0;max-height:70%}.shape-piece.is-snapping{transition:transform var(--motion-reveal)}.shape-piece__img{object-fit:contain;width:min(100%,220px);min-width:160px;height:min(100%,220px);min-height:160px}.shape-trays{flex-direction:column;flex:.85;gap:14px;min-width:0;min-height:0;display:flex}.shape-tray{border-radius:var(--r-xl);background:var(--card);border:var(--card-border-w) solid oklch(72% .03 85);min-height:150px;color:var(--ink);flex:1;place-items:center;display:grid;position:relative;box-shadow:0 8px 18px oklch(30% .03 55/.18),0 5px oklch(68% .035 85)}.shape-tray.is-filled{color:#3f7a3c;background:oklch(94% .05 145);border-color:oklch(62% .1 145);box-shadow:0 8px 18px oklch(30% .03 55/.16),0 5px oklch(60% .1 145)}.shape-tray__hole{opacity:.32;width:min(140px,70%);height:min(140px,70%)}.shape-tray.is-filled .shape-tray__hole{opacity:.55}.shape-tray__sparkle{pointer-events:none;opacity:0;background:radial-gradient(circle at 20% 20%, var(--sunflower), transparent 40%), radial-gradient(circle at 80% 24%, var(--lacquer), transparent 42%), radial-gradient(circle at 70% 78%, var(--leaf), transparent 40%);border-radius:50%;position:absolute;inset:18%}.shape-tray.is-celebrate .shape-tray__sparkle{animation:.28s ease-out spark}@keyframes spark{0%{opacity:0;transform:scale(.5)}40%{opacity:1;transform:scale(1.1)}to{opacity:0;transform:scale(1.3)}}@keyframes nudge{0%{transform:translate(12px)}40%{transform:translate(-8px)}to{transform:translate(0)}}@media (width<=700px){.uoa-stage{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;align-items:stretch;gap:16px;display:grid}.hide-spot{width:100%;min-width:0;max-width:none;height:auto}.animal-grid{grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.shapes-layout{flex-direction:column-reverse;gap:12px}.shape-pool{flex:1.3;grid-template-rows:repeat(2,minmax(160px,1fr));grid-template-columns:repeat(3,minmax(160px,1fr))}.shape-trays{flex-direction:row;flex:.7}.shape-piece,.shape-piece__img{min-width:160px;min-height:160px}}@media (orientation:portrait){.uoa-stage{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;align-items:stretch;display:grid}.hide-spot{min-width:0;max-width:none;height:auto}.animal-grid{grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr))}.shapes-layout{flex-direction:column-reverse;gap:12px}.shape-pool{flex:1.3}.shape-trays{flex-direction:row;flex:.7}}@media (prefers-reduced-motion:reduce){.uoa-peeker,.uoa-cover,.animal-tile,.shape-piece{transition:opacity .16s linear}.animal-tile.is-pop .animal-tile__img,.shape-tray.is-celebrate .shape-tray__sparkle,.shape-piece.is-nudge{animation:none}.shape-piece.is-snapping{transition:none}.hide-spot.is-revealed .uoa-peeker{transform:translate(-50%)scale(1)translateY(0)}}
