:root{--ink-1:#1e2a23;--ink-2:#4a5650;--ink-3:#7e8a83;--ink-inverse:#fff;--paper:#fff;--surface-page:#faf8f2;--surface-2:#f1efe7;--surface-3:#e7e4da;--surface-card:var(--paper);--surface-glass:#ffffffbd;--border-soft:#1e2a2314;--border-strong:#1e2a2329;--confetti-mint:#cff2dc;--confetti-sky:#d6ecfb;--confetti-lilac:#e8e1fc;--confetti-peach:#ffe2d3;--confetti-lemon:#fbf1c7;--grad-confetti:linear-gradient(115deg,var(--confetti-mint) 0%,var(--confetti-sky) 28%,var(--confetti-lilac) 55%,var(--confetti-peach) 82%,var(--confetti-lemon) 100%);--grad-confetti-soft:linear-gradient(115deg,#cff2dc99,#d6ecfb99 30%,#e8e1fc99 60%,#ffe2d399);--green-800:#176b3b;--green-700:#1e8549;--green-600:#2e9e5b;--green-500:#3db46d;--green-200:#a9e5bf;--green-100:#dcf3e4;--accent:var(--green-600);--accent-strong:var(--green-700);--accent-soft:var(--green-100);--cat-play:#f26b5b;--cat-play-soft:#ffe3de;--cat-nature:#2e9e5b;--cat-nature-soft:#dcf3e4;--cat-learn:#3b82e0;--cat-learn-soft:#dceafb;--cat-eat:#e8a020;--cat-eat-soft:#fdefd3;--cat-shop:#8b5cf0;--cat-shop-soft:#ece4fd;--cat-splash:#17a2b8;--cat-splash-soft:#d6f2f6;--cat-animals:#c2703a;--cat-animals-soft:#f8e4d6;--cat-shows:#e05297;--cat-shows-soft:#fbdfec;--age-baby:#5b8def;--age-baby-soft:#e1eafd;--age-toddler:#f2a33a;--age-toddler-soft:#fdebd0;--age-kid:#2e9e5b;--age-kid-soft:#dcf3e4;--age-tween:#8b5cf0;--age-tween-soft:#ece4fd;--text-display:var(--ink-1);--text-body:var(--ink-2);--text-muted:var(--ink-3);--btn-primary-bg:var(--green-600);--btn-primary-bg-hover:var(--green-700);--btn-primary-fg:var(--ink-inverse);--btn-dark-bg:var(--ink-1);--btn-dark-fg:var(--ink-inverse);--focus-ring:0 0 0 3px #2e9e5b59;--link:var(--green-700);--link-hover:var(--green-600);--success:#1e8549;--warning:#e8a020;--danger:#d64530;--rating:#f2a33a}
:root{--font-display:var(--font-baloo),"Baloo 2",system-ui,sans-serif;--font-body:var(--font-nunito),"Nunito",system-ui,sans-serif;--text-hero:clamp(40px,6vw,68px);--text-h1:40px;--text-h2:30px;--text-h3:23px;--text-h4:19px;--text-lg:18px;--text-md:16px;--text-sm:14px;--text-xs:12.5px;--text-micro:11px;--w-regular:400;--w-medium:500;--w-semibold:600;--w-bold:700;--w-display:800;--leading-display:1.02;--leading-tight:1.15;--leading-body:1.55;--track-display:-.02em;--track-tight:-.005em;--track-caps:.1em}body{font-family:var(--font-body);color:var(--text-body);font-size:var(--text-md);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-display);line-height:var(--leading-tight);letter-spacing:var(--track-display);margin:0;font-weight:800}a{color:var(--link);text-decoration:none}a:hover{color:var(--link-hover)}
:root{--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--sp-20:80px;--sp-24:96px;--radius-xs:10px;--radius-sm:14px;--radius-md:18px;--radius-card:24px;--radius-lg:30px;--radius-hero:36px;--radius-pill:999px;--container:1200px;--container-narrow:720px;--phone:390px;--control-h-sm:36px;--control-h-md:44px;--control-h-lg:54px;--tap-min:44px}
:root{--shadow-xs:0 1px 2px #1e2a230d;--shadow-card:0 1px 2px #1e2a230a,0 10px 28px -8px #1e2a231a;--shadow-float:0 2px 6px #1e2a230f,0 20px 48px -12px #1e2a2329;--shadow-pill:0 6px 16px -4px #2e9e5b73;--shadow-pill-dark:0 6px 16px -4px #1e2a2359;--blur-glass:blur(14px) saturate(1.4);--protect-grad:linear-gradient(180deg,#141e1800 30%,#141e18b8 100%)}
:root{--ease-soft:cubic-bezier(.22,1,.36,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);--dur-fast:.15s;--dur-med:.28s;--dur-slow:.6s}@keyframes tt-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes tt-hop{0%,to{transform:translateY(0)scaleY(1)}20%{transform:translateY(0)scaleY(.92)}45%{transform:translateY(-9px)scaleY(1.04)}70%{transform:translateY(0)scaleY(.97)}}@keyframes tt-bob{0%,to{transform:translateY(0)rotate(0)}30%{transform:translateY(-4px)rotate(-4deg)}60%{transform:translateY(-1px)rotate(3deg)}}@keyframes tt-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}@keyframes tt-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.08)}}@keyframes tt-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes tt-pop{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}@keyframes tt-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes tt-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes tt-twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.88)}}@keyframes tt-ripple{0%{box-shadow:0 0 #17a2b859}to{box-shadow:0 0 0 14px #17a2b800}}@keyframes tt-peek{0%,70%,to{transform:translateY(0)}80%{transform:translateY(-5px)}90%{transform:translateY(1px)}}.tt-sway{transform-origin:50% 100%;animation:3s ease-in-out infinite tt-sway}.tt-breathe{animation:3.2s ease-in-out infinite tt-breathe}.tt-twinkle{animation:1.6s ease-in-out infinite tt-twinkle}.tt-ripple{animation:tt-ripple 2.4s var(--ease-soft) infinite}.tt-peek{animation:tt-peek 4s var(--ease-soft) infinite}.tt-stagger>*{animation:tt-rise var(--dur-slow) var(--ease-soft) both}.tt-stagger>:first-child{animation-delay:0s}.tt-stagger>:nth-child(2){animation-delay:70ms}.tt-stagger>:nth-child(3){animation-delay:.14s}.tt-stagger>:nth-child(4){animation-delay:.21s}.tt-stagger>:nth-child(5){animation-delay:.28s}.tt-stagger>:nth-child(6){animation-delay:.35s}.tt-stagger>:nth-child(7){animation-delay:.42s}.tt-stagger>:nth-child(8){animation-delay:.49s}.tt-float{animation:tt-float 3.4s var(--ease-soft) infinite}.tt-hop{animation:tt-hop 2.4s var(--ease-soft) infinite}.tt-bob{animation:tt-bob 2.6s var(--ease-soft) infinite}.tt-wiggle{animation:tt-wiggle 1.8s var(--ease-soft) infinite}.tt-pulse{animation:tt-pulse 2.2s var(--ease-soft) infinite}.tt-rise{animation:tt-rise var(--dur-slow) var(--ease-soft) both}.tt-pop{animation:tt-pop var(--dur-med) var(--ease-spring) both}@media (prefers-reduced-motion:reduce){.tt-float,.tt-hop,.tt-bob,.tt-wiggle,.tt-pulse,.tt-rise,.tt-pop,.tt-sway,.tt-breathe,.tt-twinkle,.tt-ripple,.tt-peek,.tt-stagger>*{animation:none}}

*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--surface-page);margin:0;overflow-x:clip}img{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}p{margin:0}:focus-visible{box-shadow:var(--focus-ring);border-radius:10px;outline:none}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 20px}@media (min-width:768px){.container{padding:0 24px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--ink-1);color:#fff;border-radius:999px;padding:10px 16px;font-weight:800;position:absolute;top:-60px;left:12px}.skip-link:focus{color:#fff;top:12px}.rail{scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-flow:column;gap:16px;margin:0 -20px;padding:4px 20px 16px;scroll-padding:0 20px;display:grid;overflow-x:auto}.rail::-webkit-scrollbar{display:none}.rail>*{scroll-snap-align:start}.bubble-hover{animation-play-state:paused}a:hover .bubble-hover,button:hover .bubble-hover,.bubble-hover:hover{animation-play-state:running}
