:root { --game-ink:#30234c; --game-purple:#6e43ce; --game-pink:#ff6fa6; --game-yellow:#ffd65a; --game-cream:#fffaf0; }
.okay-game-shell { position:fixed; inset:0; width:100%; height:100dvh; min-height:100svh; padding:0; overflow:hidden; background:#dff5ef; color:var(--game-ink); font-family:"Atkinson Hyperlegible",sans-serif; }
.okay-game { width:100%; height:100%; min-height:100svh; margin:0; background:var(--game-cream); box-shadow:none; overflow:hidden; }
.okay-game-shell:fullscreen,.okay-game-shell:-webkit-full-screen { width:100vw; height:100dvh; background:var(--game-cream); }
.game-rotate-prompt { display:none; }
.game-topbar { min-height:72px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:12px; padding:10px clamp(14px,3vw,28px); background:rgba(255,255,255,.96); border-bottom:1px solid rgba(70,51,110,.12); position:relative; z-index:5; }
.game-nav-controls { position:relative; display:flex; align-items:center; gap:8px; justify-self:start; }
.game-home { color:var(--game-purple); text-decoration:none; font:700 1rem/1 "Fredoka",sans-serif; display:flex; gap:7px; align-items:center; min-height:44px; padding:0; border:0; background:transparent; cursor:pointer; }
.game-back-triangle { display:grid; place-items:center; width:42px; height:42px; font-size:2rem; line-height:1; filter:drop-shadow(0 3px 5px rgba(73,42,132,.18)); transition:transform .18s,color .18s; }
.game-home:hover .game-back-triangle,.game-home:focus-visible .game-back-triangle { color:#ef5a98; transform:translateX(-3px) scale(1.08); }
.game-menu-toggle { width:44px; height:44px; padding:10px; border:2px solid #ded1f4; border-radius:14px; background:#fff; box-shadow:0 4px 12px rgba(48,35,76,.1); cursor:pointer; display:grid; align-content:center; gap:4px; }
.game-menu-toggle span { display:block; width:100%; height:3px; border-radius:999px; background:var(--game-purple); }
.game-menu-toggle:hover,.game-menu-toggle:focus-visible { outline:3px solid #eadfff; outline-offset:2px; transform:translateY(-1px); }
.game-menu { position:absolute; z-index:30; top:calc(100% + 8px); left:0; width:min(280px,calc(100vw - 24px)); max-height:calc(100dvh - 86px); padding:8px; overflow-y:auto; overscroll-behavior:contain; border:3px solid #fff; border-radius:22px; background:rgba(255,253,248,.98); box-shadow:0 18px 45px rgba(45,25,75,.28); display:grid; gap:5px; }
.game-menu[hidden] { display:none; }
.game-menu a,.game-menu button { min-height:50px; display:flex; align-items:center; gap:11px; width:100%; padding:7px 10px; border:0; border-radius:15px; color:var(--game-ink); background:transparent; text-decoration:none; text-align:left; cursor:pointer; font:inherit; }
.game-menu a:hover,.game-menu a:focus-visible,.game-menu button:hover,.game-menu button:focus-visible { outline:none; background:#f1e8ff; }
.game-menu a>span,.game-menu>button:not(.game-menu-character)>span { width:32px; text-align:center; font-size:1.25rem; }
.game-menu strong { font:700 .98rem/1.1 "Fredoka",sans-serif; }
.game-menu [hidden] { display:none; }
.game-menu-divider { height:1px; margin:3px 9px; background:#e9dff5; }
.game-menu-orientation.is-selected,.game-menu button[aria-pressed="true"] { color:#5d35b6; background:#f1e8ff; box-shadow:inset 0 0 0 2px #dac9f5; }
.game-menu-install.is-ready { color:#fff; background:linear-gradient(135deg,var(--game-pink),#e94c8b); }
.game-menu-character img { width:42px; height:42px; object-fit:contain; border-radius:12px; background:#fff2d8; }
.game-menu-character>span { display:grid; gap:2px; }
.game-menu-character small { color:#766b88; font-size:.75rem; }
.game-menu-install { display:none!important; }
.game-menu-install>span { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; color:#fff; background:var(--game-purple); font-size:1.15rem; font-weight:900; }
.game-menu-install.is-ready>span { color:#7c2c00; background:var(--game-yellow); }
.game-menu-install.is-download-target { outline:3px solid rgba(255,214,90,.78); outline-offset:-3px; animation:install-target-pulse 1.5s ease-in-out infinite; }
.game-menu-install[hidden] { display:none!important; }
.game-day { text-align:center; display:grid; line-height:1.05; }
.game-day span { color:#73688a; font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.game-day strong { color:#5f38bc; font:600 1.55rem/.95 "Fredoka",sans-serif; letter-spacing:-.055em; -webkit-text-stroke:1px #fff; paint-order:stroke fill; text-shadow:0 3px 0 #ded0ff,0 6px 12px rgba(84,48,151,.2); }
.game-actions { display:flex; align-items:center; justify-self:end; gap:8px; }
.game-menu-music.is-muted,.game-menu-notifications.is-muted { color:#776b87; }
.game-wallet { display:flex; align-items:center; gap:5px; }
.game-credit-reminder { min-height:40px; display:grid; align-content:center; justify-items:end; padding:4px 9px; border:2px solid #ddcef4; border-radius:14px; color:#65517f; background:#f8f3ff; line-height:1; box-shadow:0 4px 10px rgba(48,35,76,.07); }
.game-credit-reminder span { font-size:.62rem; font-weight:800; letter-spacing:.02em; text-transform:uppercase; }
.game-credit-reminder strong { margin-top:3px; color:var(--game-purple); font:700 .82rem/1 "Fredoka",sans-serif; font-variant-numeric:tabular-nums; }
.game-currency { min-height:42px; display:flex; align-items:center; gap:5px; padding:6px 10px; border:2px solid; border-radius:999px; font-weight:800; box-shadow:0 4px 10px rgba(48,35,76,.08); }
.game-currency span { font-size:1.15rem; line-height:1; }
.game-candy { color:#a72c62; background:#fff0f6; border-color:#f5a9c9; }
.game-gems { color:#146e98; background:#eafaff; border-color:#79d1ed; }
.game-gems span { color:#35b8df; text-shadow:0 1px #08789c; }
.game-stars { color:#a76500; background:#fff3b8; border-color:#f2c848; }
.game-stars span { color:#f4b900; text-shadow:0 1px #b87900; }
.game-stage { min-height:calc(100svh - 72px); position:relative; display:grid; grid-template-columns:minmax(0,1.12fr) minmax(330px,.88fr); align-items:end; background-image:linear-gradient(90deg,transparent 38%,rgba(24,16,45,.12)),var(--scene-image); background-size:cover; background-position:center; isolation:isolate; }
.game-stage::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(14,10,35,.02) 45%,rgba(14,10,35,.55)); pointer-events:none; }
.game-scene-copy { align-self:end; margin:28px; max-width:440px; color:#fff; text-shadow:0 2px 14px rgba(35,20,50,.72); display:grid; gap:8px; }
.game-scene-copy span { width:max-content; background:rgba(78,40,143,.82); border:2px solid rgba(255,255,255,.75); border-radius:999px; padding:8px 13px; font-weight:700; }
.game-scene-copy strong { font:600 clamp(1.8rem,4vw,3.8rem)/.98 "Fredoka",sans-serif; max-width:9ch; }
.game-character-reaction { position:absolute; left:46%; top:16%; color:var(--game-ink); background:#fff; border:3px solid var(--game-purple); border-radius:24px 24px 24px 5px; padding:10px 16px; font:600 1rem "Fredoka",sans-serif; box-shadow:0 8px 20px rgba(32,15,68,.2); animation:game-bob 2.4s ease-in-out infinite; }
.game-panel { margin:clamp(12px,2.5vw,28px); padding:clamp(18px,3vw,30px); border-radius:30px; background:rgba(255,253,248,.96); border:3px solid rgba(255,255,255,.92); box-shadow:0 22px 50px rgba(38,19,73,.3); backdrop-filter:blur(10px); max-height:calc(100svh - 105px); overflow:auto; }
.game-account-loading { display:grid; gap:14px; align-content:start; }
.game-account-loading h1,.game-account-loading p { margin:0; }
.game-loading-free { width:max-content; padding:8px 14px; border-radius:999px; color:#276c4a; background:#e8fff1; border:2px solid #67c895; font:700 clamp(1rem,2vw,1.2rem)/1 "Fredoka",sans-serif; box-shadow:0 8px 18px rgba(56,154,107,.16); }
.game-panel-heading { display:grid; gap:5px; margin-bottom:18px; }
.game-panel-heading h1 { font:600 clamp(1.55rem,3vw,2.2rem)/1.02 "Fredoka",sans-serif; margin:0; letter-spacing:-.02em; }
.game-panel-heading p { margin:0; color:#6e6381; font-size:1rem; }
.game-kicker { color:var(--game-purple); font-weight:800; text-transform:uppercase; letter-spacing:.08em; font-size:.78rem; }
.outfit-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.outfit-card,.ingredient,.room-card,.critter,.bubble,.quiz-answers button { font:inherit; color:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.outfit-card { display:grid; grid-template-columns:52px 1fr; grid-template-rows:auto auto; text-align:left; gap:1px 10px; border:2px solid #e8def6; background:#fff; border-radius:18px; padding:10px; min-height:72px; transition:.18s transform,.18s border-color,.18s box-shadow; }
.outfit-card:hover,.outfit-card:focus-visible { transform:translateY(-2px); }
.outfit-card.is-selected { border-color:var(--game-purple); box-shadow:0 0 0 3px #e5d7ff; }
.outfit-swatch { grid-row:1/3; display:grid; place-items:center; background:color-mix(in srgb,var(--outfit-color) 24%,white); border:2px solid var(--outfit-color); border-radius:14px; font-size:1.6rem; }
.outfit-card strong { align-self:end; }.outfit-card small { color:#766b88; }
.game-primary { width:100%; min-height:62px; border:0; border-radius:20px; background:linear-gradient(135deg,var(--game-pink),#f0518f); color:#fff; box-shadow:0 8px 0 #c93470,0 14px 26px rgba(194,49,111,.25); margin-top:18px; padding:10px 16px; cursor:pointer; display:grid; font:inherit; }
.game-primary span { font:600 1.2rem "Fredoka",sans-serif; }.game-primary small { color:#fff4f8; }
.game-primary:active { transform:translateY(5px); box-shadow:0 3px 0 #c93470; }.game-primary:disabled { filter:grayscale(.25); opacity:.58; cursor:not-allowed; }
.recipe-bowl { min-height:100px; border-radius:24px; background:#f2ebff; border:2px dashed #a88be4; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; padding:14px; margin-bottom:12px; }
.recipe-bowl>span { font-size:2.5rem; }.recipe-bowl div { font-size:1.4rem; font-weight:700; }.recipe-bowl small { color:#6f5c93; }
.ingredient-row { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.ingredient { min-height:78px; background:#fff; border:2px solid #e6dcf4; border-radius:16px; display:grid; place-items:center; padding:8px 4px; }
.ingredient span { font-size:2rem; }.ingredient strong { font-size:.82rem; }.ingredient.is-chosen { border-color:#55a95a; background:#edffeb; transform:translateY(-3px); }
.room-grid { display:grid; gap:10px; }
.room-card { display:grid; grid-template-columns:54px 1fr; grid-template-rows:auto auto; text-align:left; background:#fff; border:2px solid #e8def6; border-radius:20px; padding:12px; }
.room-card>span { grid-row:1/3; font-size:2rem; display:grid; place-items:center; }.room-card strong { font:600 1.1rem "Fredoka",sans-serif; align-self:end; }.room-card small { color:#756985; }
.room-card:hover,.room-card:focus-visible { border-color:var(--game-pink); background:#fff6fa; }
.game-text-button { display:block; margin:16px auto 0; border:0; background:transparent; color:var(--game-purple); font:700 1rem inherit; cursor:pointer; min-height:44px; }
.critter-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:10px 0 18px; }
.critter { aspect-ratio:1; border:2px solid #fff; border-radius:50%; background:#f5e9ff; font-size:2rem; box-shadow:0 7px 0 #d4b8ed; }.critter:nth-child(even){background:#fff3b9;box-shadow:0 7px 0 #e9ce65}.critter.is-found { opacity:.28; transform:scale(.8); box-shadow:none; }
.bubble-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:14px 0 20px; }
.bubble { aspect-ratio:1; border-radius:50%; border:3px solid rgba(255,255,255,.85); background:radial-gradient(circle at 30% 25%,#fff 0 5%,transparent 8%),color-mix(in srgb,var(--bubble) 70%,transparent); box-shadow:inset -8px -8px 16px rgba(78,40,130,.15),0 8px 18px rgba(70,40,115,.15); color:#fff; font-size:1.5rem; }.bubble.is-popped { transform:scale(.5); opacity:.3; }
.mini-progress { height:14px; background:#eee5f7; border-radius:999px; overflow:hidden; }.mini-progress span { display:block; height:100%; background:linear-gradient(90deg,#ff75aa,#ffd65a); border-radius:inherit; transition:width .25s; }
.mini-count { display:block; text-align:center; margin-top:8px; color:var(--game-purple); }
.quiz-backdrop { position:fixed; inset:0; z-index:20; display:grid; place-items:center; padding:18px; background:rgba(38,24,65,.67); backdrop-filter:blur(9px); }
.quiz-card { width:min(100%,560px); background:#fffdf8; border:4px solid #fff; border-radius:32px; padding:clamp(22px,5vw,38px); box-shadow:0 28px 70px rgba(20,10,45,.45); text-align:center; }
.quiz-card h2 { font:600 clamp(1.6rem,5vw,2.35rem)/1.04 "Fredoka",sans-serif; margin:7px 0; }.quiz-card>p { color:#6f647d; margin:0 0 18px; }.quiz-icon { display:block; font-size:2.6rem; }
.quiz-answers { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }.quiz-answers button { min-height:100px; border:2px solid #e1d3f3; background:#fff; border-radius:18px; display:grid; place-items:center; gap:5px; padding:10px 5px; }.quiz-answers button span { font-size:clamp(1rem,4vw,1.45rem); white-space:nowrap; }.quiz-answers button small { font-weight:700; color:#716082; }.quiz-answers button:hover,.quiz-answers button:focus-visible { border-color:var(--game-purple); background:#f6f0ff; }
.quiz-card .quiz-feedback { min-height:24px; margin:14px 0 0; color:#a33f63; font-weight:700; }
.game-celebration { position:fixed; z-index:50; left:50%; top:16%; transform:translateX(-50%); display:flex; align-items:center; gap:10px; background:#4c2b99; border:3px solid #fff; color:#fff; border-radius:999px; padding:14px 22px; box-shadow:0 18px 45px rgba(30,17,65,.4); animation:celebrate-in .35s cubic-bezier(.2,1.6,.4,1); }.game-celebration span,.game-celebration i { color:var(--game-yellow); font-style:normal; }
.game-grownup-note { position:absolute; z-index:24; left:50%; bottom:max(8px,env(safe-area-inset-bottom)); width:max-content; max-width:calc(100% - 24px); margin:0; padding:7px 13px; border-radius:999px; background:rgba(255,255,255,.86); box-shadow:0 6px 18px rgba(39,25,66,.16); transform:translateX(-50%); text-align:center; color:#746b80; font-size:.76rem; pointer-events:none; }
.game-grownup-note a { color:#6843b5; font-weight:800; text-underline-offset:2px; }
.game-grownup-note .is-error { color:#a23f58; }
.guest-expired-backdrop { position:fixed; z-index:120; inset:0; display:grid; place-items:center; padding:18px; background:rgba(38,24,65,.75); backdrop-filter:blur(9px); }
.guest-expired-card { width:min(100%,540px); display:grid; justify-items:center; gap:12px; padding:clamp(24px,5vw,40px); border:4px solid #fff; border-radius:32px; background:#fffdf8; box-shadow:0 28px 70px rgba(20,10,45,.45); text-align:center; }
.guest-expired-card h2 { margin:0; color:var(--game-ink); font:600 clamp(2rem,6vw,3rem)/1 "Fredoka",sans-serif; }
.guest-expired-card p { margin:0; color:#655977; font-size:1.05rem; line-height:1.45; }
.guest-expired-card>strong { color:#7b568c; font-size:.9rem; line-height:1.35; }
.guest-expired-icon { display:grid; place-items:center; width:64px; height:64px; border-radius:50%; color:#7c5200; background:var(--game-yellow); font-size:2rem; box-shadow:0 8px 0 #e1ae25; }
.guest-expired-card .google-signin-host { min-height:44px; }
.guest-expired-card .button { width:100%; }
@media (max-width:760px) { .game-guest-badge { display:none; } }
.game-shop-backdrop { position:fixed; z-index:80; inset:0; display:grid; place-items:center; padding:16px; background:rgba(35,20,62,.72); backdrop-filter:blur(8px); }
.game-shop { width:min(760px,100%); max-height:calc(100svh - 32px); overflow:auto; padding:22px; border:4px solid #fff; border-radius:30px; color:var(--game-ink); background:linear-gradient(145deg,#fffdf7,#f5edff); box-shadow:0 28px 70px rgba(20,10,45,.48); }
.game-shop>header { display:flex; align-items:start; justify-content:space-between; gap:16px; margin-bottom:18px; }
.game-shop>header span { color:var(--game-purple); font-size:.76rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.game-shop h2 { margin:3px 0 0; font:700 clamp(1.7rem,5vw,2.35rem)/1 "Fredoka",sans-serif; }
.game-shop>header>button { width:42px; height:42px; border:0; border-radius:50%; color:#fff; background:var(--game-purple); cursor:pointer; font:700 1.8rem/1 "Fredoka",sans-serif; }
.game-shop-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.game-shop-currency { padding:14px; border:2px solid #e6daf6; border-radius:22px; background:rgba(255,255,255,.86); }
.game-shop-currency h3 { display:flex; align-items:center; gap:7px; margin:0 0 10px; color:#5533a1; font:700 1.15rem "Fredoka",sans-serif; }
.game-shop-currency h3 span { font-size:1.3rem; }
.game-shop-currency>div { display:grid; gap:8px; }
.game-shop-currency button { min-height:58px; display:grid; justify-items:start; gap:2px; padding:9px 12px; border:2px solid #e7dcf5; border-radius:15px; color:var(--game-ink); background:#fff; cursor:pointer; font:inherit; }
.game-shop-currency button:hover,.game-shop-currency button:focus-visible { border-color:var(--game-purple); outline:3px solid #eadfff; transform:translateY(-2px); }
.game-shop-currency button:disabled { opacity:.58; cursor:wait; }
.game-shop-currency button strong { font:700 .92rem "Fredoka",sans-serif; }.game-shop-currency button span { color:#746787; font-size:.78rem; font-weight:800; }
.game-shop-status { margin:16px 4px 0; color:#70637e; font-size:.82rem; text-align:center; }
.game-shop-signin { display:grid; justify-items:center; gap:8px; padding:24px; text-align:center; }.game-shop-signin>span{font-size:2.2rem}.game-shop-signin>strong{font:700 1.25rem "Fredoka",sans-serif}.game-shop-signin p{max-width:46ch;margin:0;color:#70637e}.game-shop-signin a{margin-top:5px;padding:10px 18px;border-radius:999px;color:#fff;background:var(--game-purple);font-weight:800;text-decoration:none}
@keyframes game-bob { 50%{transform:translateY(-7px) rotate(2deg)} } @keyframes celebrate-in { from{transform:translate(-50%,-25px) scale(.7);opacity:0} } @keyframes character-guide-in { from{opacity:0;transform:translate(-50%,10px) scale(.92)} }
@media(max-width:760px){
  .game-topbar { grid-template-columns:auto minmax(0,1fr) auto; gap:4px; padding-inline:6px; }
  .game-home-label { display:none; }
  .game-menu-install { display:flex!important; }
  .game-menu-install[hidden] { display:none!important; }
  .game-day span { display:none; }
  .game-day strong { font-size:clamp(.92rem,4vw,1.12rem); white-space:nowrap; }
  .game-actions { gap:5px; }
  .game-credit-reminder { min-height:36px; padding:3px 6px; }
  .game-credit-reminder span { font-size:.5rem; }
  .game-credit-reminder strong { font-size:.7rem; }
  .game-wallet { gap:3px; }
  .game-currency { min-height:38px; padding:5px 6px; gap:2px; }
  .game-currency span { font-size:1rem; }.game-currency strong { font-size:.82rem; }
  .game-topbar { min-height:64px; grid-template-columns:auto 1fr auto; }.game-home-label { display:none; }.game-day span { display:none; }
  .game-stage { min-height:calc(100svh - 64px); grid-template-columns:1fr; grid-template-rows:minmax(210px,42svh) auto; align-items:stretch; background-position:center 20%; }
  .game-stage::after { background:linear-gradient(180deg,transparent 15%,rgba(29,18,53,.12) 38%,rgba(29,18,53,.55) 50%,rgba(29,18,53,.45)); }
  .game-scene-copy { align-self:end; margin:14px 16px 10px; }.game-scene-copy strong { font-size:clamp(1.65rem,8vw,2.5rem); max-width:12ch; }.game-scene-copy span { padding:6px 10px; font-size:.82rem; }
  .game-character-reaction { left:auto; right:14px; top:17%; font-size:.88rem; }
  .game-panel { grid-row:2; margin:0; border-radius:28px 28px 0 0; border-width:3px 0 0; max-height:none; padding:20px 16px calc(24px + env(safe-area-inset-bottom)); box-shadow:0 -16px 35px rgba(31,16,64,.28); }
  .game-panel-heading { margin-bottom:14px; }.game-panel-heading h1 { font-size:1.65rem; }
  .outfit-card { min-height:68px; grid-template-columns:46px 1fr; }.ingredient-row { gap:6px; }.ingredient { min-height:72px; }.ingredient span { font-size:1.7rem; }
  .game-primary { margin-top:14px; }.room-grid { grid-template-columns:repeat(3,1fr); }.room-card { display:grid; grid-template-columns:1fr; grid-template-rows:auto auto auto; text-align:center; padding:10px 4px; }.room-card>span { grid-row:auto; }.room-card strong { font-size:.95rem; }.room-card small { font-size:.72rem; }
  .quiz-answers { grid-template-columns:1fr; }.quiz-answers button { min-height:70px; grid-template-columns:1fr auto; }.quiz-card { max-height:calc(100svh - 36px); overflow:auto; }.quiz-answers button span { font-size:1.35rem; }
}
@media(max-width:560px){.game-shop{padding:17px;border-radius:24px}.game-shop-grid{grid-template-columns:1fr}.game-shop-currency{display:grid;grid-template-columns:88px 1fr;align-items:center}.game-shop-currency h3{margin:0}.game-shop-currency>div{grid-template-columns:repeat(3,1fr)}.game-shop-currency button{min-height:54px;padding:7px}.game-shop-currency button strong{font-size:.76rem}.game-shop-currency button span{font-size:.7rem}}
@media(max-width:390px){.game-back-triangle{width:34px;font-size:1.7rem}.game-menu-toggle{width:39px;height:39px;padding:8px}.game-nav-controls{gap:3px}.game-day strong{font-size:.88rem}.game-credit-reminder span{display:none}.game-credit-reminder{padding:3px 5px}.game-credit-reminder strong{font-size:.62rem}.game-currency{padding:4px 5px}.game-currency span{font-size:.9rem}.game-shop-currency{grid-template-columns:76px 1fr;padding:10px}.game-shop-currency>div{gap:4px}}
@media(max-width:390px){ .outfit-grid { grid-template-columns:1fr; }.game-stage { grid-template-rows:minmax(190px,36svh) auto; }.outfit-card:nth-child(n+4){display:none}.game-panel-heading p{font-size:.92rem}.recipe-bowl{min-height:82px}.game-character-reaction{display:none} }
@media(prefers-reduced-motion:reduce){ .game-character-reaction,.game-celebration{animation:none}.outfit-card,.ingredient,.bubble,.critter{transition:none} }

/* World-first game controls: every choice lives inside the illustrated scene. */
.game-stage { display:block; min-height:calc(100svh - 72px); overflow:hidden; background-position:center; }
.game-stage::after { background:linear-gradient(180deg,rgba(24,13,47,.06),rgba(24,13,47,.04) 52%,rgba(24,13,47,.38)); }
.world-layer { position:absolute; inset:0; z-index:2; }
@media(min-width:761px) and (hover:hover) and (pointer:fine){
  .game-stage,.scene-backyard.is-time-machine-portal { width:100%; height:calc(100svh - 72px); min-height:calc(100svh - 72px); background-size:100% 100%!important; background-position:center; }
  .castle-game-world { background-size:100% 100%!important; }
  .entrance-background img { object-fit:fill; }
}
.game-stage { width:100%; height:calc(100dvh - 72px); min-height:0; }
@media(max-width:760px){.game-stage{height:calc(100dvh - 64px);min-height:0}}
.scene-start,.scene-halloween,.scene-halloween-entry { background-position:center center; }
.scene-start::after { background:linear-gradient(180deg,rgba(24,13,47,.01) 32%,rgba(24,13,47,.22) 58%,rgba(24,13,47,.62)); }
.scene-halloween::after { z-index:1; background:radial-gradient(circle at 50% 3%,rgba(255,210,104,.32),transparent 9%),radial-gradient(circle at 36% 22%,rgba(255,194,79,.24),transparent 7%),radial-gradient(circle at 64% 22%,rgba(255,194,79,.24),transparent 7%),radial-gradient(circle at 8% 9%,rgba(255,250,199,.95) 0 1px,transparent 2px),radial-gradient(circle at 18% 17%,rgba(255,255,228,.88) 0 1.5px,transparent 2.5px),radial-gradient(circle at 31% 8%,rgba(255,244,181,.9) 0 1px,transparent 2px),radial-gradient(circle at 42% 19%,rgba(255,255,234,.88) 0 1px,transparent 2px),radial-gradient(circle at 58% 8%,rgba(255,247,191,.92) 0 1.5px,transparent 2.5px),radial-gradient(circle at 70% 17%,rgba(255,255,235,.84) 0 1px,transparent 2px),radial-gradient(circle at 94% 8%,rgba(255,248,194,.94) 0 1.5px,transparent 2.5px),radial-gradient(circle at 87% 17%,rgba(255,239,158,.9) 0 3.1%,rgba(255,221,116,.2) 3.4%,transparent 8%),linear-gradient(180deg,rgba(3,9,38,.76) 0%,rgba(8,14,52,.66) 47%,rgba(13,7,36,.62) 100%); box-shadow:inset 0 0 110px rgba(1,3,20,.48); }
.scene-halloween .character-chooser,.scene-halloween .character-guide { display:none!important; }
.game-topbar.is-halloween { color:#fff; background:linear-gradient(110deg,#100d2f,#211247 52%,#321445); border-bottom-color:rgba(255,219,113,.3); box-shadow:0 5px 18px rgba(4,2,18,.42); }
.game-topbar.is-halloween .game-day strong { color:#ffe478; -webkit-text-stroke:1px #3b164c; text-shadow:0 2px 0 #7c386d,0 0 14px rgba(255,211,88,.45); }
.game-topbar.is-halloween .game-home { color:#ffe478; }
.game-topbar.is-halloween .game-menu-toggle { border-color:rgba(255,228,137,.58); background:rgba(255,255,255,.12); box-shadow:0 4px 14px rgba(0,0,0,.28); }
.game-topbar.is-halloween .game-menu-toggle span { background:#ffe478; }
.game-topbar.is-halloween .game-currency { box-shadow:0 4px 14px rgba(0,0,0,.28); }
.halloween-house-zone { position:absolute; z-index:3; inset:0; pointer-events:auto; transition:background-color .16s,box-shadow .16s; }
.halloween-house-zone.is-drop-ready { background:rgba(255,130,35,.06); box-shadow:inset 0 0 70px rgba(255,177,65,.38); }
.halloween-banner { position:absolute; z-index:4; left:50%; top:11%; min-width:clamp(220px,29vw,350px); padding:10px 28px 12px; border:5px solid #301440; border-radius:10px 10px 18px 18px; color:#ffe57b; background:linear-gradient(165deg,#7d3182,#45164f 70%); box-shadow:inset 0 0 0 3px rgba(255,159,55,.42),0 10px 15px rgba(31,14,36,.38); transform:translateX(-50%) rotate(-1.5deg); text-align:center; filter:drop-shadow(0 0 5px rgba(255,231,129,.45)); }
.halloween-banner::before,.halloween-banner::after { content:""; position:absolute; bottom:100%; width:3px; height:clamp(25px,5vh,52px); background:#3c2430; box-shadow:1px 0 0 #a8805e; transform-origin:bottom; }
.halloween-banner::before { left:13%; transform:rotate(-13deg); }
.halloween-banner::after { right:13%; transform:rotate(13deg); }
.halloween-banner i { position:absolute; top:-12px; width:13px; height:13px; border:3px solid #2b172e; border-radius:50%; background:#d78838; }
.halloween-banner i:first-child { left:10%; }.halloween-banner i:last-child { right:10%; }
.halloween-banner strong { display:block; font:900 clamp(1.35rem,3vw,2.45rem)/.9 Papyrus,"Marker Felt",fantasy; letter-spacing:-.04em; text-shadow:2px 3px 0 #1e0e28,-2px 2px 0 #1e0e28,0 0 9px #ff8b2f; transform:rotate(.5deg); }
.halloween-decorator { position:absolute; z-index:11; right:14px; top:16px; width:clamp(178px,19vw,220px); display:grid; gap:7px; padding:10px; border:3px solid #fff1c7; border-radius:22px; color:#fff; background:linear-gradient(150deg,rgba(62,24,78,.95),rgba(31,19,49,.96)); box-shadow:0 15px 35px rgba(28,12,40,.38),0 0 0 4px rgba(255,142,45,.32); font-family:"Atkinson Hyperlegible",sans-serif; animation:halloween-prompt-in .38s cubic-bezier(.2,.85,.3,1.2) both; }
.halloween-decorator::after { content:""; position:absolute; right:34px; top:100%; border:12px solid transparent; border-top-color:#2b173d; }
.halloween-decorator-heading { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:7px; }
.halloween-decorator-heading>span { font-size:1.25rem; }
.halloween-decorator-heading div { display:grid; gap:1px; }
.halloween-decorator-heading strong { font:700 1rem/1 "Fredoka",sans-serif; }
.halloween-decorator-heading small { color:#f5d6ff; font-size:.66rem; line-height:1.15; }
.halloween-decoration-tray { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:3px; }
.halloween-decoration { --drag-x:0px;--drag-y:0px; min-width:0; display:grid; place-items:center; gap:1px; padding:3px 1px; border:1px solid rgba(255,255,255,.42); border-radius:10px; color:#fff; background:rgba(255,255,255,.12); cursor:grab; touch-action:none; user-select:none; -webkit-user-select:none; transition:transform .18s,opacity .18s,filter .18s,background-color .18s; }
.halloween-decoration>span { font-size:clamp(1.35rem,2.7vw,2rem); line-height:1.1; filter:drop-shadow(0 4px 4px rgba(12,5,18,.55)); pointer-events:none; }
.halloween-decoration>small { display:none; }
.halloween-decoration:hover:not(:disabled),.halloween-decoration:focus-visible:not(:disabled) { outline:none; background:rgba(255,153,55,.3); transform:translateY(-3px) scale(1.06); }
.halloween-decoration.is-requested:not(.is-used) { border-color:#ffe47b; background:rgba(255,153,55,.3); box-shadow:0 0 0 2px rgba(255,228,123,.24),0 0 12px rgba(255,190,57,.5); }
.halloween-decoration.is-used { opacity:.3; filter:grayscale(.75); cursor:default; }
.halloween-decoration.is-dragging { z-index:40!important; opacity:1; cursor:grabbing; transform:translate(var(--drag-x),var(--drag-y)) scale(1.35) rotate(-5deg)!important; transition:none; filter:drop-shadow(0 15px 10px rgba(20,8,30,.55)); }
.halloween-decoration.is-returning { transform:translate(0,0)!important; transition:transform .2s ease-out; }
.halloween-decoration.is-placed { position:absolute; z-index:6; left:var(--decoration-x); top:var(--decoration-y); width:clamp(54px,7vw,88px); aspect-ratio:1; padding:0; border:0; background:transparent; transform:translate(-50%,-50%); pointer-events:auto; }
.halloween-decoration.is-placed>span { font-size:clamp(2.9rem,6.8vw,5.6rem); }
.halloween-decoration.is-placed:hover,.halloween-decoration.is-placed:focus-visible { transform:translate(-50%,-50%) scale(1.08); filter:brightness(1.12); }
.halloween-decoration.is-placed.is-dragging { transform:translate(calc(-50% + var(--drag-x)),calc(-50% + var(--drag-y))) scale(1.15) rotate(-5deg)!important; }
.halloween-tap-target { position:absolute; z-index:12; left:var(--halloween-target-x); top:var(--halloween-target-y); width:clamp(52px,6vw,82px); aspect-ratio:1; display:grid; place-items:center; padding:0; border:0; border-radius:50%; color:#fff; background:transparent; cursor:pointer; transform:translate(-50%,-50%); filter:drop-shadow(0 9px 8px rgba(10,5,24,.48)); pointer-events:auto; touch-action:manipulation; user-select:none; -webkit-user-select:none; -webkit-tap-highlight-color:transparent; animation:halloween-target-pop .16s ease-out both,halloween-target-roam var(--halloween-target-roam-duration) ease-in-out .16s infinite alternate; }
.halloween-tap-target>span { font-size:clamp(2.9rem,5.8vw,5.2rem); line-height:1; pointer-events:none; }
.halloween-tap-target:hover,.halloween-tap-target:focus-visible { outline:3px solid rgba(255,231,126,.9); outline-offset:5px; filter:brightness(1.14) drop-shadow(0 0 16px rgba(255,193,65,.8)); }
.halloween-tap-target.is-requested { filter:drop-shadow(0 0 12px rgba(255,229,111,.72)) drop-shadow(0 8px 8px rgba(10,5,24,.48)); }
.halloween-target-spider-web>span { filter:drop-shadow(0 3px 3px rgba(9,15,32,.7)); }
.halloween-tap-target[class*="is-caught-"] { pointer-events:none; }
.halloween-tap-target.is-caught-friendly-ghost { animation:halloween-ghost-flee .82s cubic-bezier(.18,.76,.24,1) forwards; }
.halloween-tap-target.is-caught-spooky-bat { animation:halloween-bat-flee .82s cubic-bezier(.18,.76,.24,1) forwards; }
.halloween-tap-target.is-caught-jack-o-lantern { animation:none; }
.halloween-tap-target.is-caught-jack-o-lantern>span:first-child { animation:halloween-pumpkin-pop .3s ease-out forwards; }
.halloween-target-scream { position:absolute; left:50%; top:-14px; z-index:2; padding:4px 9px; border:2px solid #3d174b; border-radius:999px; color:#3d174b; background:#fff3a7; box-shadow:0 4px 0 rgba(37,12,48,.28); font:900 clamp(.74rem,1.4vw,1rem)/1 "Fredoka",sans-serif; font-style:normal; white-space:nowrap; transform:translate(-50%,-50%) scale(.35) rotate(-8deg); animation:halloween-scream-pop .72s ease-out forwards; pointer-events:none; }
.halloween-pumpkin-burst { position:absolute; inset:50% auto auto 50%; width:0; height:0; font-size:0!important; pointer-events:none; }
.halloween-pumpkin-burst i { position:absolute; left:0; top:0; width:18px; height:18px; border:3px solid #ffb52f; border-radius:46% 54% 48% 52%; background:linear-gradient(135deg,#ffdd50 0 32%,#ff7b19 34% 100%); box-shadow:inset -3px -2px 0 rgba(143,44,7,.22),0 3px 5px rgba(27,8,14,.32); transform:translate(-50%,-50%) scale(.3); animation:halloween-pumpkin-piece .78s ease-out forwards; }
.halloween-tool-effect { position:absolute; left:50%; top:50%; z-index:5; display:grid; place-items:center; width:1em; height:1em; font-size:clamp(3rem,7vw,6rem)!important; line-height:1; pointer-events:none; }
.halloween-tool-effect.is-pellet-gun { animation:halloween-pellet-hit .48s ease-out forwards; }
.halloween-tool-effect.is-net { animation:halloween-net-catch .72s cubic-bezier(.2,.75,.25,1) forwards; }
.halloween-tool-effect.is-tennis-ball { animation:halloween-ball-hit .62s cubic-bezier(.2,.8,.3,1) forwards; }
.halloween-tool-cursor { --halloween-cursor-x:50%;--halloween-cursor-y:50%; position:absolute; z-index:40; left:var(--halloween-cursor-x); top:var(--halloween-cursor-y); display:none; font-size:2.25rem; line-height:1; filter:drop-shadow(0 4px 4px rgba(18,5,27,.55)); transform:translate(-35%,-35%); pointer-events:none; }
.halloween-net-icon { display:inline-block; width:1em; height:1em; overflow:visible; vertical-align:middle; filter:drop-shadow(0 3px 2px rgba(20,7,28,.35)); }
.halloween-net-handle { fill:none; stroke:#8e4f24; stroke-width:8; stroke-linecap:round; }
.halloween-net-handle-highlight { fill:none; stroke:#e7a861; stroke-width:2.6; stroke-linecap:round; opacity:.8; }
.halloween-net-hoop { fill:rgba(225,245,255,.26); stroke:#f7e3aa; stroke-width:4; }
.halloween-net-mesh { fill:none; stroke:#d9f3ff; stroke-width:2.2; stroke-linecap:round; opacity:.94; }
.halloween-round-target { position:absolute; z-index:21; left:50%; top:26%; width:min(470px,calc(100% - 32px)); display:flex; align-items:center; justify-content:center; gap:14px; padding:15px 24px; border:4px solid #fff1c7; border-radius:24px; color:#fff; background:linear-gradient(150deg,rgba(62,24,78,.96),rgba(31,19,49,.97)); box-shadow:0 16px 38px rgba(28,12,40,.48),0 0 0 5px rgba(255,142,45,.3); opacity:0; visibility:hidden; transform:translate(-50%,-12px) scale(.92); transition:opacity .22s ease,transform .22s ease,visibility 0s linear .22s; pointer-events:none; }
.halloween-round-target.is-visible { opacity:1; visibility:visible; transform:translateX(-50%) scale(1); transition-delay:0s; }
.halloween-round-target>span { font-size:3rem; line-height:1; }
.halloween-round-target>div { display:grid; gap:2px; }
.halloween-round-target strong { font:800 1.5rem/1 "Fredoka",sans-serif; }
.halloween-round-target small { color:#f5d6ff; font-size:1rem; line-height:1.15; }
.halloween-round-target b { color:#ffe47b; }
.halloween-game-timer { position:absolute; z-index:21; left:50%; top:16px; display:flex; align-items:center; gap:7px; min-width:112px; padding:8px 14px; border:3px solid #fff1c7; border-radius:999px; color:#fff; background:linear-gradient(150deg,rgba(62,24,78,.96),rgba(31,19,49,.97)); box-shadow:0 12px 30px rgba(28,12,40,.4),0 0 0 4px rgba(255,142,45,.28); transform:translateX(-50%); pointer-events:none; }
.halloween-game-timer span { font-size:1.15rem; line-height:1; }
.halloween-game-timer strong { color:#ffe47b; font:800 1.15rem/1 "Fredoka",sans-serif; font-variant-numeric:tabular-nums; }
.halloween-tool-picker { position:absolute; z-index:22; left:50%; bottom:14px; width:min(570px,calc(100% - 32px)); display:grid; gap:6px; padding:9px; border:3px solid #fff1c7; border-radius:22px; color:#fff; background:linear-gradient(150deg,rgba(62,24,78,.96),rgba(31,19,49,.97)); box-shadow:0 15px 35px rgba(28,12,40,.42),0 0 0 4px rgba(255,142,45,.28); transform:translateX(-50%); }
.halloween-tool-picker-label { font:800 .72rem/1 "Fredoka",sans-serif; letter-spacing:.06em; text-align:center; text-transform:uppercase; }
.halloween-tool-picker>div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.halloween-tool { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr); grid-template-rows:auto auto; align-items:center; gap:2px 6px; padding:7px 8px; border:2px solid rgba(255,255,255,.38); border-radius:14px; color:#fff; background:rgba(255,255,255,.1); cursor:pointer; font-family:"Atkinson Hyperlegible",sans-serif; text-align:left; transition:transform .16s ease,background-color .16s ease,border-color .16s ease,filter .16s ease; }
.halloween-tool>span { grid-row:1 / 3; font-size:1.55rem; line-height:1; }
.halloween-tool>strong { overflow:hidden; font:800 .78rem/1 "Fredoka",sans-serif; text-overflow:ellipsis; white-space:nowrap; }
.halloween-tool>small { display:flex; justify-content:space-between; gap:5px; color:#f6ddff; font-size:.62rem; line-height:1; }
.halloween-tool>small b { color:#ffe47b; font-variant-numeric:tabular-nums; }
.halloween-tool>small i { overflow:hidden; font-style:normal; font-variant-numeric:tabular-nums; text-overflow:ellipsis; white-space:nowrap; }
.halloween-tool:hover,.halloween-tool:focus-visible { outline:none; border-color:#ffe47b; background:rgba(255,154,55,.26); transform:translateY(-2px); }
.halloween-tool.is-selected { border-color:#ffe47b; background:linear-gradient(145deg,rgba(255,156,55,.42),rgba(128,56,151,.48)); box-shadow:0 0 0 2px rgba(255,228,123,.2),0 0 15px rgba(255,190,57,.35); }
.halloween-tool.is-reloading { filter:saturate(.7); }
.halloween-tool.is-reloading>small i { color:#ffb86a; }
.halloween-game-over { position:absolute; z-index:15; left:50%; top:50%; width:min(360px,calc(100% - 34px)); display:grid; justify-items:center; gap:8px; padding:24px; border:4px solid #fff1c7; border-radius:26px; color:#fff; background:linear-gradient(150deg,rgba(62,24,78,.97),rgba(31,19,49,.98)); box-shadow:0 20px 55px rgba(10,4,22,.58),0 0 0 5px rgba(255,142,45,.3); transform:translate(-50%,-50%); text-align:center; }
.halloween-game-over>span { font-size:3.4rem; }
.halloween-game-over>strong { font:800 1.65rem/1 "Fredoka",sans-serif; }
.halloween-game-over>small { color:#f5d6ff; font-size:.9rem; }
.halloween-game-over>button { margin-top:6px; padding:11px 18px; border:2px solid #fff; border-radius:999px; color:#371744; background:#ffe47b; cursor:pointer; font:800 1rem/1 "Fredoka",sans-serif; }
@keyframes halloween-target-pop { from { opacity:0; transform:translate(-50%,-50%) scale(.45) rotate(-9deg); } to { opacity:1; transform:translate(-50%,-50%) scale(1) rotate(0); } }
@keyframes halloween-target-roam { from { left:var(--halloween-target-x); top:var(--halloween-target-y); } 24% { transform:translate(-50%,-50%) rotate(-7deg); } 55% { transform:translate(-50%,-50%) rotate(8deg); } to { left:var(--halloween-target-end-x); top:var(--halloween-target-end-y); transform:translate(-50%,-50%) rotate(-4deg); } }
@keyframes halloween-ghost-flee { 0% { opacity:1; transform:translate(-50%,-50%) scale(1) rotate(0); } 28% { opacity:1; transform:translate(-50%,-88%) scale(1.16) rotate(-10deg); } 55% { opacity:1; transform:translate(-12%,-122%) scale(.96) rotate(12deg); } 100% { opacity:0; transform:translate(120%,-220%) scale(.48) rotate(28deg); } }
@keyframes halloween-bat-flee { 0% { opacity:1; transform:translate(-50%,-50%) scale(1) rotate(0); } 24% { opacity:1; transform:translate(-82%,-78%) scale(1.14) rotate(-18deg); } 54% { opacity:1; transform:translate(-18%,-120%) scale(.9) rotate(18deg); } 100% { opacity:0; transform:translate(150%,-245%) scale(.4) rotate(48deg); } }
@keyframes halloween-scream-pop { 0% { opacity:0; transform:translate(-50%,10px) scale(.3) rotate(-8deg); } 25% { opacity:1; transform:translate(-50%,-50%) scale(1.2) rotate(5deg); } 72% { opacity:1; transform:translate(-50%,-78%) scale(1) rotate(-2deg); } 100% { opacity:0; transform:translate(-50%,-125%) scale(.72) rotate(4deg); } }
@keyframes halloween-pumpkin-pop { 0% { opacity:1; transform:scale(1); } 48% { opacity:1; transform:scale(1.34) rotate(-7deg); filter:brightness(1.8); } 100% { opacity:0; transform:scale(.15) rotate(16deg); } }
@keyframes halloween-pumpkin-piece { 0% { opacity:1; transform:translate(-50%,-50%) scale(.25) rotate(0); } 32% { opacity:1; } 100% { opacity:0; transform:translate(calc(-50% + var(--piece-x)),calc(-50% + var(--piece-y))) scale(1.15) rotate(var(--piece-r)); } }
@keyframes halloween-pellet-hit { 0% { opacity:0; transform:translate(-50%,-50%) scale(.15) rotate(-12deg); } 28% { opacity:1; transform:translate(-50%,-50%) scale(1.25) rotate(7deg); } 100% { opacity:0; transform:translate(-50%,-50%) scale(1.8) rotate(18deg); } }
@keyframes halloween-net-catch { 0% { opacity:0; transform:translate(-130%,80%) scale(.25) rotate(-38deg); } 45% { opacity:1; transform:translate(-50%,-50%) scale(1.25) rotate(8deg); } 100% { opacity:0; transform:translate(-50%,-65%) scale(.72) rotate(-8deg); } }
@keyframes halloween-ball-hit { 0% { opacity:1; transform:translate(120%,135%) scale(.65) rotate(0); } 48% { opacity:1; transform:translate(-50%,-50%) scale(1.2) rotate(260deg); } 72% { transform:translate(-72%,-85%) scale(.92) rotate(390deg); } 100% { opacity:0; transform:translate(-12%,-135%) scale(.58) rotate(560deg); } }
@keyframes halloween-cursor-fire { 50% { transform:translate(-35%,-35%) scale(.72) rotate(-12deg); } }
@keyframes halloween-cursor-net { 50% { transform:translate(-35%,-35%) scale(1.35) rotate(22deg); } }
@keyframes halloween-cursor-ball { 50% { transform:translate(-35%,-35%) scale(1.25) rotate(180deg); } }
@media (hover:hover) and (pointer:fine) {
  .halloween-house-zone,.halloween-house-zone .halloween-tap-target { cursor:none; }
  .halloween-tool-cursor.is-visible { display:block; }
  .halloween-tool-cursor.is-using-pellet-gun { animation:halloween-cursor-fire .32s ease-out; }
  .halloween-tool-cursor.is-using-net { animation:halloween-cursor-net .42s ease-out; }
  .halloween-tool-cursor.is-using-tennis-ball { animation:halloween-cursor-ball .42s ease-out; }
}
@media (prefers-reduced-motion:reduce) {
  .halloween-tap-target.is-caught-friendly-ghost,.halloween-tap-target.is-caught-spooky-bat,.halloween-tap-target.is-caught-jack-o-lantern>span:first-child,.halloween-target-scream,.halloween-pumpkin-burst i,.halloween-tool-effect { animation-duration:.18s; animation-iteration-count:1; }
}
.halloween-progress { position:relative; height:16px; overflow:hidden; border:2px solid rgba(255,255,255,.7); border-radius:999px; background:#1c112a; }
.halloween-progress span { position:absolute; inset:0 auto 0 0; width:var(--halloween-progress); border-radius:inherit; background:linear-gradient(90deg,#ff7b27,#ffd55d); transition:width .3s; }
.halloween-progress strong { position:absolute; inset:0; display:grid; place-items:center; font-size:.62rem; line-height:1; text-shadow:0 1px 2px #24112d; }
.halloween-exit { position:absolute; z-index:22; right:14px; bottom:16px; width:clamp(178px,19vw,220px); min-height:92px; display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; align-content:center; align-items:center; gap:2px 9px; padding:12px 14px; border:3px solid #fff1c7; border-radius:22px; color:#fff; background:linear-gradient(150deg,rgba(62,24,78,.96),rgba(31,19,49,.97)); box-shadow:0 15px 35px rgba(28,12,40,.38),0 0 0 4px rgba(255,142,45,.32); cursor:pointer; font-family:"Atkinson Hyperlegible",sans-serif; text-align:left; transition:transform .18s ease,filter .18s ease; }
.halloween-exit>span { grid-row:1 / 3; display:grid; place-items:center; width:36px; aspect-ratio:1; border:2px solid rgba(255,255,255,.68); border-radius:50%; color:#ffe47b; font-size:1.25rem; }
.halloween-exit>strong { align-self:end; font:700 1.05rem/1 "Fredoka",sans-serif; }
.halloween-exit>small { align-self:start; color:#f5d6ff; font-size:.66rem; line-height:1.15; }
.halloween-exit:hover,.halloween-exit:focus-visible { outline:none; filter:brightness(1.12); transform:translateY(-4px) scale(1.02); }
.halloween-prize { color:#ffe28d; font-size:.66rem; font-weight:800; text-align:center; }
.halloween-exit { position:absolute; z-index:22; right:14px; bottom:16px; width:clamp(178px,19vw,220px); min-height:92px; display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; align-content:center; align-items:center; gap:2px 9px; padding:12px 14px; border:3px solid #fff1c7; border-radius:22px; color:#fff; background:linear-gradient(150deg,rgba(62,24,78,.96),rgba(31,19,49,.97)); box-shadow:0 15px 35px rgba(28,12,40,.38),0 0 0 4px rgba(255,142,45,.32); cursor:pointer; font-family:"Atkinson Hyperlegible",sans-serif; text-align:left; transition:transform .18s ease,filter .18s ease; }
.halloween-exit>span { grid-row:1 / 3; display:grid; place-items:center; width:36px; aspect-ratio:1; border:2px solid rgba(255,255,255,.68); border-radius:50%; color:#ffe47b; font-size:1.25rem; }
.halloween-exit>strong { align-self:end; font:700 1.05rem/1 "Fredoka",sans-serif; }
.halloween-exit>small { align-self:start; color:#f5d6ff; font-size:.66rem; line-height:1.15; }
.halloween-exit:hover,.halloween-exit:focus-visible { outline:none; filter:brightness(1.12); transform:translateY(-4px) scale(1.02); }
@keyframes halloween-prompt-in { from{opacity:0;transform:translateY(12px) scale(.92)} to{opacity:1;transform:translateY(0) scale(1)} }
.scene-entrance { background-image:linear-gradient(90deg,transparent 38%,rgba(24,16,45,.12)),url('/src/assets/game/house-entrance-v1.jpg') !important; }
.scene-entrance::after { background:linear-gradient(180deg,rgba(58,30,12,.02) 58%,rgba(58,30,12,.2)); }
.entrance-background { position:absolute; z-index:1; inset:0; width:100%; height:100%; pointer-events:none; user-select:none; }
.entrance-background img { display:block; width:100%; height:100%; object-fit:cover; }
.entrance-doors { position:absolute; inset:0; background:transparent; }
.entrance-door { --door-inset:1% 4% 8%; --door-shape:inset(0 round 48% 48% 8% 8% / 20% 20% 5% 5%); position:absolute; z-index:7; isolation:isolate; display:grid; place-content:center; justify-items:center; gap:1px; padding:0; border:0; border-radius:0; color:#504a56; background:transparent; cursor:pointer; font:inherit; text-align:center; -webkit-tap-highlight-color:transparent; }
.entrance-door::before { content:""; position:absolute; z-index:-1; inset:var(--door-inset); clip-path:var(--door-shape); opacity:0; background:linear-gradient(145deg,rgba(255,255,238,.38),rgba(255,225,116,.2) 58%,rgba(255,249,218,.3)); box-shadow:inset 0 0 24px rgba(255,255,255,.5),inset 0 0 52px rgba(255,219,91,.18); backdrop-filter:brightness(1.24) saturate(1.12); -webkit-backdrop-filter:brightness(1.24) saturate(1.12); transition:opacity .18s ease; pointer-events:none; }
.entrance-door::after { content:"✦  ✧  ✦  ✧  ✦"; position:absolute; z-index:2; left:50%; top:50%; width:max-content; color:#fff7a1; opacity:0; transform:translate(-50%,-50%) scale(.72); font:700 clamp(.62rem,1.1vw,.9rem)/1 "Fredoka",sans-serif; letter-spacing:.18em; text-shadow:-34px 18px 0 rgba(255,255,255,.92),34px 17px 0 rgba(255,255,255,.92),0 -23px 6px #fff; filter:drop-shadow(0 0 7px #fff); pointer-events:none; }
.entrance-wardrobe { --door-inset:1% 4% 1% 4%; --door-shape:inset(0 round 48% 48% 5% 5% / 12% 12% 2% 2%); }
.entrance-playroom { --door-inset:1% 1% 2%; --door-shape:inset(0 round 48% 48% 5% 5% / 14% 14% 2% 2%); }
.entrance-kitchen { --door-inset:1% 1% 2%; --door-shape:inset(0 round 46% 46% 5% 5% / 15% 15% 2% 2%); }
.entrance-backyard { --door-inset:1% 1% 2%; --door-shape:inset(0 round 48% 48% 5% 5% / 14% 14% 2% 2%); }
.entrance-exit { --door-inset:1% 1% 1% 10%; --door-shape:inset(0 round 48% 48% 5% 5% / 12% 12% 2% 2%); }
.entrance-exit::before { clip-path:none; border:4px solid rgba(255,255,255,.92); border-radius:50% 50% 3% 3% / 17% 17% 2% 2%; background:linear-gradient(145deg,rgba(255,255,238,.24),rgba(255,225,116,.13) 58%,rgba(255,249,218,.2)); box-shadow:inset 0 0 30px rgba(255,255,255,.42),inset 0 0 58px rgba(255,219,91,.15),0 0 14px rgba(255,255,255,.72); }
.entrance-door-sparkles { color:rgba(255,255,255,.9); font:700 clamp(.8rem,1.4vw,1.1rem)/1 "Fredoka",sans-serif; letter-spacing:.22em; text-indent:.22em; filter:drop-shadow(0 0 6px rgba(255,255,255,.95)); animation:entrance-stars-flash .9s ease-in-out infinite alternate; }
.entrance-door strong { min-width:max-content; padding:4px 9px; border:0; border-radius:999px; color:#504a56; background:transparent; box-shadow:none; font:700 clamp(.9rem,1.6vw,1.18rem)/1 "Fredoka",sans-serif; letter-spacing:-.02em; text-shadow:0 1px 0 rgba(255,255,255,.98),0 0 7px rgba(255,255,255,.95),0 2px 4px rgba(255,255,255,.82); transition:color .16s,background-color .16s,box-shadow .16s,transform .16s; }
.entrance-door>span,.entrance-door>strong { position:relative; z-index:3; opacity:1; visibility:visible; transform:none; pointer-events:none; }
.entrance-door:hover { z-index:9; outline:none; transform:none; }
.entrance-door:hover::after,.entrance-door:focus-visible::after { opacity:1; animation:entrance-star-burst .62s ease-in-out infinite alternate; }
.entrance-door:hover .entrance-door-sparkles,.entrance-door:focus-visible .entrance-door-sparkles { color:#fff7a1; animation-duration:.42s; filter:drop-shadow(0 0 11px #fff) drop-shadow(0 0 18px rgba(255,231,113,.95)); }
.entrance-door:hover strong,.entrance-door:focus-visible strong { color:#4d315d; background:rgba(255,255,255,.94); box-shadow:0 0 0 3px rgba(255,255,255,.4),0 6px 15px rgba(64,35,83,.22); transform:scale(1.07); text-shadow:none; }
.entrance-door:focus-visible { z-index:9; outline:none; transform:none; }
.entrance-wardrobe { left:8.8%; top:1.5%; width:13.7%; height:81.5%; }
.entrance-playroom { left:27.8%; top:14%; width:6.4%; height:54%; }
.entrance-kitchen { left:41.5%; top:15.5%; width:17%; height:46%; }
.entrance-backyard { left:66.2%; top:14.5%; width:6.5%; height:54%; }
.entrance-exit { left:78%; top:1.5%; width:13.6%; height:83%; }
.lobby-player { position:absolute; z-index:6; left:50%; bottom:-3%; width:min(40vw,430px); height:min(52vh,510px); transform:translateX(-50%); display:grid; place-items:end center; pointer-events:none; filter:drop-shadow(0 12px 12px rgba(65,38,30,.28)); }
.lobby-player img { position:relative; z-index:1; display:block; width:100%; height:100%; object-fit:contain; object-position:center bottom; user-select:none; }
.scene-player { position:absolute; z-index:1; display:grid; place-items:end center; pointer-events:none; filter:drop-shadow(0 12px 12px rgba(65,38,30,.28)); }
.scene-player img { display:block; width:100%; height:100%; object-fit:contain; object-position:center bottom; user-select:none; }
.scene-player>.character-avatar-frame { grid-area:1/1; }
.scene-player>.character-avatar-blink-frame { opacity:0; animation:scene-player-blink 6.4s steps(1,end) infinite; }
.activity-character { position:absolute; z-index:11; display:grid; place-items:end center; width:min(19vw,250px); height:min(43vh,390px); pointer-events:none; filter:drop-shadow(0 12px 12px rgba(45,28,62,.3)); }
.activity-character>.character-avatar-frame { grid-area:1/1; display:block; width:100%; height:100%; object-fit:contain; object-position:center bottom; user-select:none; }
.activity-character>.character-avatar-blink-frame { opacity:0; animation:scene-player-blink 6.4s steps(1,end) infinite; }
.activity-character>.wardrobe-accessory { font-size:clamp(1rem,2.8vw,2.45rem); }
.activity-character-halloween { left:2%; bottom:-3%; }
.activity-character-time-machine { left:1.5%; bottom:-4%; z-index:13; }
.activity-character-pool { left:1%; bottom:-5%; z-index:10; }
.activity-character-ball { left:2%; bottom:-4%; z-index:6; }
.activity-character-colouring { right:1%; bottom:-5%; z-index:14; width:min(14vw,190px); height:min(35vh,300px); }
.scene-kitchen { --kitchen-bench-line:160px; --kitchen-bench-overlap:18px; --kitchen-mum-sink:42%; }
.scene-player-kitchen { left:1.5%; top:0; bottom:calc(var(--kitchen-bench-line) - var(--kitchen-bench-overlap)); width:min(35vw,430px); height:auto; place-items:end center; overflow:hidden; clip-path:none; }
.scene-player-kitchen img { position:absolute; left:50%; top:auto; bottom:0; width:145%; max-width:none; height:auto; object-position:center bottom; clip-path:none; transform:translate(-50%,34%); transform-origin:center bottom; }
.scene-player-kitchen>.character-avatar-frame { grid-area:auto; }
.scene-player-playroom { left:1.5%; bottom:1%; width:min(22vw,280px); height:min(44vh,420px); }
.scene-player.scene-player-backyard { position:absolute; left:1.5%; bottom:1%; width:min(22vw,280px); height:min(46vh,430px); transform:none; }
.scene-player.scene-player-pool { position:absolute; z-index:8; left:2%; bottom:10%; width:min(18vw,220px); height:min(38vh,350px); }
.scene-player.scene-player-time-machine { position:absolute; z-index:14; left:2%; bottom:1%; width:min(18vw,220px); height:min(38vh,350px); }
.lobby-player-speech { position:absolute; z-index:3; left:50%; top:4%; width:max-content; max-width:min(340px,44vw); padding:14px 22px; border:4px solid #fff; border-radius:30px; color:#4d315d; background:rgba(255,255,255,.68); box-shadow:0 9px 20px rgba(45,28,58,.18); opacity:0; transform:translateX(-50%) translateY(10px) scale(.86); transform-origin:50% 100%; animation:lobby-speech-cycle 15s ease-in-out infinite; font:700 clamp(.92rem,1.8vw,1.18rem)/1.18 "Fredoka",sans-serif; text-align:center; text-shadow:0 1px 0 rgba(255,255,255,.95),0 0 6px rgba(255,255,255,.9); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.lobby-player-speech::before,.lobby-player-speech::after { content:""; position:absolute; clip-path:polygon(0 0,100% 0,0 100%); }
.lobby-player-speech::before { left:50%; bottom:-29px; width:38px; height:32px; background:#fff; clip-path:polygon(0 0,100% 0,50% 100%); transform:translateX(-50%); }
.lobby-player-speech::after { left:50%; bottom:-20px; width:29px; height:24px; background:rgba(255,255,255,.68); clip-path:polygon(0 0,100% 0,50% 100%); transform:translateX(-50%); }
@keyframes lobby-speech-cycle { 0% { opacity:0; transform:translateX(-50%) translateY(10px) scale(.86); } 3%,26% { opacity:1; transform:translateX(-50%) translateY(0) scale(1); } 31%,100% { opacity:0; transform:translateX(-50%) translateY(8px) scale(.92); } }
@keyframes lobby-speech-fade { 0%,2%,31%,100% { opacity:0; } 3%,26% { opacity:1; } }
.character-chooser { position:absolute; z-index:7; left:50%; bottom:clamp(8px,1.6vh,18px); width:min(780px,calc(100% - 20px)); transform:translateX(-50%); display:grid; justify-items:center; gap:7px; padding:0; border:0; background:transparent; box-shadow:none; backdrop-filter:none; }
.character-chooser-heading { display:none; }
.character-carousel { position:relative; width:100%; transform:translateY(clamp(-22px,-2vh,-12px)); }
.character-carousel-arrow { position:absolute; z-index:12; top:44%; display:grid; place-items:center; width:clamp(38px,5vw,54px); aspect-ratio:1; padding:0; border:0; color:#fff; background:transparent; cursor:pointer; touch-action:manipulation; font:700 clamp(1.6rem,4vw,2.7rem)/1 "Fredoka",sans-serif; filter:drop-shadow(0 3px 2px rgba(48,28,70,.8)) drop-shadow(0 0 8px rgba(255,255,255,.9)); transition:transform .16s,filter .16s; -webkit-tap-highlight-color:transparent; }
.character-carousel-arrow.is-previous { left:33.333%; transform:translate(-50%,-50%); }
.character-carousel-arrow.is-next { right:33.333%; transform:translate(50%,-50%); }
.character-carousel-arrow.is-previous:hover,.character-carousel-arrow.is-previous:focus-visible { transform:translate(-50%,-50%) scale(1.18); filter:drop-shadow(0 3px 2px rgba(48,28,70,.8)) drop-shadow(0 0 14px #fff); outline:none; }
.character-carousel-arrow.is-next:hover,.character-carousel-arrow.is-next:focus-visible { transform:translate(50%,-50%) scale(1.18); filter:drop-shadow(0 3px 2px rgba(48,28,70,.8)) drop-shadow(0 0 14px #fff); outline:none; }
.character-class-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:end; gap:clamp(2px,1vw,10px); }
.character-class-list.is-sliding-next { animation:character-gallery-next .62s cubic-bezier(.22,.7,.24,1) both; }
.character-class-list.is-sliding-previous { animation:character-gallery-previous .62s cubic-bezier(.22,.7,.24,1) both; }
.character-class-card { position:relative; min-width:0; display:grid; grid-template-rows:auto; justify-items:center; gap:1px; padding:0; border:0; color:#fff; background:transparent; box-shadow:none; cursor:pointer; font:inherit; text-shadow:0 2px 4px rgba(48,28,70,.9),0 0 8px rgba(255,255,255,.9); transition:transform .22s,opacity .22s,filter .22s; -webkit-tap-highlight-color:transparent; }
.character-class-card.is-before,.character-class-card.is-after { opacity:.42; filter:grayscale(1); transform:scale(.76); }
.character-class-card.is-selected { z-index:5; opacity:1; filter:none; transform:scale(1.05); }
.character-class-card:hover,.character-class-card:focus-visible { opacity:.82; filter:grayscale(.45) drop-shadow(0 0 10px rgba(255,255,255,.9)); outline:none; transform:scale(.84); }
.character-class-card.is-selected:hover,.character-class-card.is-selected:focus-visible { opacity:1; filter:drop-shadow(0 0 12px rgba(255,255,255,.9)); transform:scale(1.09); }
.character-avatar { position:relative; display:grid; place-items:end center; width:100%; height:clamp(132px,20vw,218px); overflow:visible; isolation:isolate; background:transparent; }.character-avatar img { position:relative; z-index:1; display:block; width:100%; height:100%; object-fit:contain; object-position:center bottom; user-select:none; filter:drop-shadow(0 9px 8px rgba(45,24,60,.28)); }
.character-skill-popover { position:absolute; z-index:8; left:calc(100% - 8px); top:-2%; width:158px; display:grid; gap:2px; padding:7px 9px; border:1px solid rgba(255,255,255,.72); border-radius:14px; color:var(--game-ink); background:rgba(255,253,248,.38); box-shadow:0 9px 22px rgba(40,21,68,.16); opacity:0; visibility:hidden; transform:translate(6px,-50%) scale(.92); transform-origin:left center; transition:opacity .16s,visibility .16s,transform .16s; pointer-events:none; text-align:left; text-shadow:0 1px 0 rgba(255,255,255,.92); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); }
.character-skill-popover::before { content:""; position:absolute; right:100%; top:50%; border:8px solid transparent; border-right-color:#fff; transform:translateY(-50%); }
.character-skill-popover small { color:var(--game-purple); font-size:.56rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.character-skill-popover strong { color:#4d315d; font:700 .84rem/1.05 "Fredoka",sans-serif; }
.character-skill-popover>span { color:#655873; font-size:.68rem; font-weight:700; line-height:1.15; }
.character-skill-popover>em { color:#5533a1; font:800 .62rem/1.1 "Atkinson Hyperlegible",sans-serif; }
.character-class-card.is-selected:hover .character-skill-popover,.character-class-card.is-selected:focus-visible .character-skill-popover { opacity:1; visibility:visible; transform:translate(0,-50%) scale(1); }
.character-name-row { width:min(460px,calc(100% - 90px)); display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:4px 8px; }.character-name-row label { display:grid; gap:3px; }.character-name-row label span { color:#fff; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; text-shadow:0 2px 5px rgba(48,28,70,.9); }.character-name-row input { width:100%; min-width:0; height:42px; border:2px solid rgba(255,255,255,.95); border-radius:999px; padding:7px 14px; color:var(--game-ink); background:rgba(255,255,255,.9); box-shadow:0 6px 18px rgba(48,28,70,.2); font:700 1rem "Atkinson Hyperlegible",sans-serif; }.character-name-row input:focus { border-color:var(--game-purple); outline:3px solid rgba(255,255,255,.7); }.character-name-row>small { display:none; }
.character-name-row input.is-locked { padding-right:38px; background:rgba(245,240,251,.9); color:#675d73; cursor:not-allowed; }
.character-name-row label:has(input.is-locked) { position:relative; }
.character-name-row label:has(input.is-locked)::after { content:"🔒"; position:absolute; right:12px; bottom:10px; font-size:.9rem; }
.character-guide { position:absolute; z-index:10; top:10%; left:50%; width:min(205px,calc(100% - 24px)); display:grid; grid-template-columns:auto minmax(0,1fr); align-items:start; gap:3px 6px; padding:8px 9px; border:1px solid rgba(255,255,255,.8); border-radius:15px; color:#3e2853; background:rgba(255,253,248,.76); box-shadow:0 9px 20px rgba(40,21,68,.18); transform:translateX(-50%); text-align:left; text-shadow:0 1px 0 rgba(255,255,255,.92); animation:character-guide-in .42s cubic-bezier(.2,.9,.25,1.25); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.character-guide::after { content:""; position:absolute; top:100%; left:50%; border:8px solid transparent; border-top-color:rgba(255,253,248,.92); transform:translateX(-50%); }
.character-guide-icon { grid-row:1/3; font-size:1.15rem; }
.character-guide div { display:grid; gap:2px; }
.character-guide strong { font:700 .9rem/1.05 "Fredoka",sans-serif; }
.character-guide p { margin:0; color:#655873; font-size:.66rem; font-weight:700; line-height:1.18; }
.character-guide button { grid-column:2; justify-self:end; min-height:28px; padding:4px 9px; border:0; border-radius:999px; color:#fff; background:var(--game-purple); cursor:pointer; font:700 .68rem "Fredoka",sans-serif; }
.character-guide button:hover,.character-guide button:focus-visible { outline:3px solid #dfd1ff; outline-offset:2px; }
.front-door-start { position:static; transform:none; width:106px; min-height:42px; display:flex; align-items:center; justify-content:center; gap:6px; border:3px solid #fff; border-radius:999px; color:#fff; background:linear-gradient(180deg,#f267a4 0%,#df4f91 100%); box-shadow:0 7px 16px rgba(74,28,81,.28); cursor:pointer; font:inherit; text-transform:none; -webkit-tap-highlight-color:transparent; }
.front-door-start strong { font:700 clamp(1.16rem,2.4vw,1.72rem)/1 "Fredoka",sans-serif; letter-spacing:.01em; text-shadow:0 2px 3px rgba(95,25,70,.3); }
.front-door-start span { color:#fff7a8; font-size:.84rem; animation:start-star-twinkle 1.2s ease-in-out infinite alternate; }
.front-door-start span:last-child { animation-delay:-.6s; }
.front-door-start:hover { transform:translateY(-3px) scale(1.03); }
.front-door-start:focus-visible { transform:translateY(-3px) scale(1.03); outline:3px solid rgba(110,67,206,.35); outline-offset:3px; }
.scene-halloween-entry { background-position:center center; }
.scene-halloween-entry::after { z-index:1; background:linear-gradient(180deg,rgba(20,12,44,.08),rgba(24,13,47,.12) 52%,rgba(24,13,47,.54)); }
.halloween-entry-world { overflow:hidden; }
.halloween-entry-banner { position:absolute; z-index:7; left:50%; top:8%; min-width:clamp(250px,34vw,470px); padding:12px 32px 14px; border:5px solid #301440; border-radius:12px 12px 22px 22px; color:#ffe57b; background:linear-gradient(165deg,#7d3182,#45164f 70%); box-shadow:inset 0 0 0 3px rgba(255,159,55,.42),0 12px 18px rgba(31,14,36,.4); transform:translateX(-50%) rotate(-1deg); text-align:center; }
.halloween-entry-banner::before,.halloween-entry-banner::after { content:""; position:absolute; bottom:100%; width:4px; height:clamp(26px,5vh,52px); background:#3c2430; box-shadow:1px 0 0 #a8805e; transform-origin:bottom; }
.halloween-entry-banner::before { left:13%; transform:rotate(-13deg); }
.halloween-entry-banner::after { right:13%; transform:rotate(13deg); }
.halloween-entry-banner i { position:absolute; top:-13px; width:14px; height:14px; border:3px solid #2b172e; border-radius:50%; background:#d78838; }
.halloween-entry-banner i:first-child { left:10%; }.halloween-entry-banner i:last-child { right:10%; }
.halloween-entry-banner strong { display:block; font:900 clamp(1.7rem,4vw,3.25rem)/.9 Papyrus,"Marker Felt",fantasy; text-shadow:2px 3px 0 #1e0e28,-2px 2px 0 #1e0e28,0 0 9px #ff8b2f; }
.halloween-entry-pumpkin { position:absolute; z-index:8; left:18%; bottom:7%; width:clamp(110px,14vw,180px); display:grid; justify-items:center; gap:3px; padding:0; border:0; color:#fff; background:transparent; cursor:pointer; font:inherit; text-align:center; filter:drop-shadow(0 15px 12px rgba(70,29,6,.42)); -webkit-tap-highlight-color:transparent; }
.halloween-entry-pumpkin::after { content:""; position:absolute; z-index:-1; left:50%; bottom:42px; width:72%; height:15px; border-radius:50%; background:rgba(35,30,20,.34); filter:blur(7px); transform:translateX(-50%); }
.halloween-entry-pumpkin>span { font-size:clamp(5.8rem,12vw,10rem); line-height:.78; transform-origin:center bottom; transition:transform .2s,filter .2s; }
.halloween-entry-pumpkin>strong { min-width:118px; padding:7px 13px; border:3px solid #fff2c2; border-radius:999px; color:#ffe77f; background:#3c174e; box-shadow:0 7px 18px rgba(20,8,31,.36); font:800 clamp(.84rem,1.5vw,1.08rem)/1 "Fredoka",sans-serif; }
.halloween-entry-pumpkin>small { padding:5px 9px; border-radius:999px; color:#fff3c5; background:rgba(37,15,52,.88); font-size:.72rem; font-weight:800; }
.halloween-entry-pumpkin:hover,.halloween-entry-pumpkin:focus-visible { outline:none; }
.halloween-entry-pumpkin:hover>span,.halloween-entry-pumpkin:focus-visible>span { transform:translateY(-8px) rotate(-3deg) scale(1.06); filter:brightness(1.12) drop-shadow(0 0 18px rgba(255,209,64,.8)); }
.halloween-entry-pumpkin:hover>strong,.halloween-entry-pumpkin:focus-visible>strong { background:#5b226b; box-shadow:0 8px 20px rgba(20,8,31,.42),0 0 18px rgba(255,222,101,.55); }
.halloween-entry-door-lock { position:absolute; z-index:8; left:39%; top:29%; width:22%; height:56%; display:grid; place-content:center; justify-items:center; gap:7px; padding:0; border:0; color:#fff; background:transparent; cursor:pointer; font:inherit; text-align:center; -webkit-tap-highlight-color:transparent; }
.halloween-entry-door-lock>span { display:grid; place-items:center; width:clamp(50px,6vw,78px); aspect-ratio:1; border:4px solid #fff0ba; border-radius:50%; background:rgba(54,24,71,.9); box-shadow:0 8px 20px rgba(17,6,28,.38); font-size:clamp(1.6rem,3vw,2.5rem); transition:transform .2s,filter .2s; }
.halloween-entry-door-lock>strong,.halloween-entry-door-lock>small { padding:6px 11px; border-radius:999px; color:#ffe98c; background:rgba(38,15,54,.9); opacity:0; transform:translateY(-5px); transition:opacity .2s,transform .2s; }
.halloween-entry-door-lock>strong { font:800 clamp(.78rem,1.3vw,1rem)/1 "Fredoka",sans-serif; }
.halloween-entry-door-lock>small { color:#f5e8fb; font-size:.68rem; font-weight:700; }
.halloween-entry-door-lock:hover,.halloween-entry-door-lock:focus-visible { outline:none; background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,226,117,.06)); filter:brightness(1.08); }
.halloween-entry-door-lock:hover>span,.halloween-entry-door-lock:focus-visible>span { transform:translateY(-4px) scale(1.08); filter:drop-shadow(0 0 13px rgba(255,227,105,.7)); }
.halloween-entry-door-lock:hover>strong,.halloween-entry-door-lock:hover>small,.halloween-entry-door-lock:focus-visible>strong,.halloween-entry-door-lock:focus-visible>small { opacity:1; transform:translateY(0); }
.start-door-hotspot { position:absolute; z-index:6; left:39.3%; top:0; width:21.4%; height:43%; padding:0; border:0; border-radius:0 0 1.5% 1.5%; color:#fff; background:transparent; box-shadow:none; cursor:pointer; overflow:hidden; transition:background .18s,filter .18s; -webkit-tap-highlight-color:transparent; }
.start-door-hotspot:hover,.start-door-hotspot:focus-visible { outline:none; background:linear-gradient(145deg,rgba(255,255,255,.18),rgba(255,226,117,.12)); box-shadow:none; filter:brightness(1.13) saturate(1.08); }
.start-door-prompt { position:absolute; left:50%; top:50%; min-height:28px; display:flex; align-items:center; justify-content:center; gap:3px; padding:3px 8px; border:2px solid #fff; border-radius:999px; background:linear-gradient(180deg,#f267a4 0%,#df4f91 100%); box-shadow:0 7px 16px rgba(74,28,81,.28); transform:translate(-50%,-50%); transition:transform .18s; }
.start-door-prompt strong { font:700 clamp(.78rem,1.4vw,1rem)/1 "Fredoka",sans-serif; text-shadow:0 2px 3px rgba(95,25,70,.3); }
.start-door-prompt i { color:#fff7a8; font-size:.54rem; font-style:normal; animation:start-star-twinkle 1.2s ease-in-out infinite alternate; }
.start-door-prompt i:last-child { animation-delay:-.6s; }
.start-door-hotspot:hover .start-door-prompt,.start-door-hotspot:focus-visible .start-door-prompt { transform:translate(-50%,calc(-50% - 3px)) scale(1.04); }
.scene-mission { position:absolute; z-index:6; top:22px; left:24px; width:min(330px,calc(100% - 48px)); display:grid; gap:2px; padding:13px 16px; color:#30234c; background:rgba(255,253,247,.93); border:3px solid #fff; border-radius:20px; box-shadow:0 12px 30px rgba(38,19,73,.28); backdrop-filter:blur(8px); }
.scene-mission span { color:var(--game-purple); font-size:.75rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.scene-mission strong { font:600 1.2rem/1.05 "Fredoka",sans-serif; }
.scene-mission small { color:#6e6381; font-size:.88rem; }
.kitchen-order { position:absolute; z-index:6; top:20px; left:50%; width:min(760px,calc(100% - 56px)); display:grid; justify-items:center; gap:3px; color:#fff; text-align:center; text-shadow:0 3px 8px rgba(40,20,58,.95),0 0 18px rgba(40,20,58,.72); transform:translateX(-50%); }
.kitchen-order>span { font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }.kitchen-order>strong,.kitchen-order>small { max-width:32ch; font:600 clamp(1.45rem,3vw,2.35rem)/1.02 "Fredoka",sans-serif; }.kitchen-order>small { display:block; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.kitchen-order>.kitchen-title { opacity:1; transform:none; animation:none; }
.kitchen-order.is-instruction-only + .kitchen-stage-progress { top:112px; }
.kitchen-order:not(.is-instruction-only) + .kitchen-stage-progress { top:154px; }
.kitchen-stage-progress { position:absolute; z-index:7; top:112px; left:50%; display:grid; grid-template-columns:repeat(3,minmax(86px,1fr)); gap:0; width:min(430px,calc(100% - 40px)); margin:0; padding:0; color:#fff; list-style:none; transform:translateX(-50%); filter:drop-shadow(0 3px 8px rgba(42,24,52,.38)); }
.kitchen-stage-progress::before { position:absolute; z-index:-1; top:16px; left:16.666%; right:16.666%; height:4px; border-radius:999px; background:rgba(255,255,255,.55); content:""; }
.kitchen-stage-progress li { display:grid; justify-items:center; gap:3px; opacity:.72; }
.kitchen-stage-progress li>span { display:grid; width:34px; height:34px; place-items:center; border:3px solid rgba(255,255,255,.9); border-radius:50%; color:#593869; background:rgba(255,255,255,.94); box-shadow:0 4px 10px rgba(44,22,62,.22); font:800 .86rem "Fredoka",sans-serif; }
.kitchen-stage-progress li>strong { padding:3px 8px; border-radius:999px; background:rgba(67,40,83,.72); font:700 .72rem "Atkinson Hyperlegible",sans-serif; }
.kitchen-stage-progress li.is-active { opacity:1; }
.kitchen-stage-progress li.is-active>span { color:#fff; background:#e84f91; animation:kitchen-stage-ready .9s ease-in-out infinite alternate; }
.kitchen-stage-progress li.is-complete { opacity:1; }
.kitchen-stage-progress li.is-complete>span { color:#294d3f; background:#bff3c9; animation:kitchen-stage-check .42s cubic-bezier(.2,.9,.32,1.3) both; }
@keyframes kitchen-stage-ready { from{transform:scale(1);box-shadow:0 4px 10px rgba(44,22,62,.22)} to{transform:scale(1.1);box-shadow:0 4px 10px rgba(44,22,62,.22),0 0 0 7px rgba(255,255,255,.28)} }
@keyframes kitchen-stage-check { 0%{transform:scale(.65) rotate(-10deg)} 100%{transform:none} }
.recipe-picker { position:absolute; z-index:7; left:50%; top:28%; display:flex; gap:clamp(12px,2.5vw,34px); transform:translateX(-50%); }
.recipe-picker button { display:grid; justify-items:center; gap:5px; width:clamp(150px,18vw,230px); min-height:150px; padding:16px 12px; border:4px solid #fff; border-radius:28px; color:#4b315d; background:rgba(255,253,247,.94); box-shadow:0 14px 34px rgba(44,22,62,.3); cursor:pointer; font:inherit; transition:transform .18s,box-shadow .18s; }
.recipe-picker button:hover,.recipe-picker button:focus-visible { outline:none; transform:translateY(-7px) scale(1.03); box-shadow:0 20px 40px rgba(44,22,62,.4),0 0 0 5px rgba(255,232,126,.55); }
.recipe-picker span { font-size:3.5rem; }.recipe-picker strong { font:700 clamp(1rem,1.8vw,1.3rem)/1.05 "Fredoka",sans-serif; }.recipe-picker small { color:#7a6883; font-weight:700; }
.recipe-picker.is-random { justify-content:center; }
.recipe-picker.is-random button { position:relative; width:max-content; min-width:0; min-height:0; gap:4px; padding:12px 18px; border-width:3px; border-radius:18px; overflow:visible; background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(255,247,222,.96)); animation:recipe-pop-in .58s cubic-bezier(.18,.89,.32,1.28) both; }
.recipe-picker.is-random span { font-size:2.1rem; }
.recipe-picker.is-random strong { white-space:nowrap; font-size:clamp(.8rem,1.08vw,.9rem); }
.recipe-picker.is-random button::before,.recipe-picker.is-random button::after { position:absolute; color:#fff1a6; content:"✦"; font-size:1.05rem; filter:drop-shadow(0 2px 3px rgba(81,42,89,.35)); animation:recipe-sparkle 1.1s ease-in-out infinite alternate; }
.recipe-picker.is-random button::before { left:-14px; top:11px; }
.recipe-picker.is-random button::after { right:-12px; bottom:12px; animation-delay:-.55s; }
@keyframes recipe-pop-in { 0%{opacity:0;transform:translateY(38px) scale(.55) rotate(-5deg)} 72%{opacity:1;transform:translateY(-7px) scale(1.06) rotate(1deg)} 100%{opacity:1;transform:none} }
@keyframes recipe-sparkle { from{opacity:.45;transform:scale(.72) rotate(-12deg)} to{opacity:1;transform:scale(1.15) rotate(12deg)} }
.kitchen-hear-again { position:absolute; z-index:7; left:24px; bottom:24px; display:grid; place-items:center; gap:2px; width:78px; height:78px; border:3px solid rgba(255,255,255,.9); border-radius:50%; color:#fff; background:rgba(98,57,178,.85); box-shadow:0 7px 22px rgba(35,18,60,.3); cursor:pointer; font-size:1.55rem; text-shadow:none; }.kitchen-hear-again b { font:700 .65rem "Atkinson Hyperlegible",sans-serif; }
.voice-caption span { display:inline-block; opacity:0; transform:translateY(12px) scale(.94); animation:caption-word-in .62s cubic-bezier(.2,.78,.25,1) forwards; animation-delay:var(--caption-delay); }
.game-look-chip { position:absolute; z-index:6; left:24px; bottom:22px; display:flex; align-items:center; gap:8px; color:#fff; background:rgba(68,37,132,.9); border:2px solid #fff; border-radius:999px; padding:7px 12px; box-shadow:0 8px 22px rgba(24,13,47,.3); }
.game-look-chip span { font-size:1.15rem; }.game-look-chip strong { font-size:.83rem; }
.closet-fixture { position:absolute; right:6%; bottom:6%; width:min(520px,52%); min-height:320px; border:10px solid #b97643; border-bottom-width:20px; border-radius:32px 32px 8px 8px; background:linear-gradient(90deg,rgba(91,43,26,.82),rgba(210,142,83,.9) 8%,rgba(255,236,202,.94) 11% 89%,rgba(210,142,83,.9) 92%,rgba(91,43,26,.82)); box-shadow:0 24px 48px rgba(33,17,47,.42),inset 0 0 40px rgba(114,63,30,.25); }
.closet-rail { position:absolute; left:8%; right:8%; top:48px; height:10px; border-radius:999px; background:linear-gradient(#f7e3b0,#8d693c); box-shadow:0 5px 7px rgba(65,36,20,.3); }
.hanging-clothes { position:absolute; inset:38px 4% 18px; display:grid; grid-template-columns:repeat(4,1fr); align-items:start; gap:5px; }
.wearable-object { position:relative; min-width:0; border:0; background:transparent; color:var(--game-ink); cursor:pointer; display:grid; place-items:center; gap:4px; padding:28px 2px 8px; -webkit-tap-highlight-color:transparent; filter:drop-shadow(0 10px 7px rgba(60,31,26,.25)); transition:transform .2s,filter .2s; }
.wearable-object::before { content:""; position:absolute; top:2px; left:50%; width:34px; height:22px; border:4px solid #8d704f; border-top-color:transparent; border-radius:0 0 50% 50%; transform:translateX(-50%) rotate(180deg); }
.wearable-object::after { content:""; position:absolute; top:-8px; left:50%; width:10px; height:14px; border:3px solid #8d704f; border-bottom:0; border-radius:8px 8px 0 0; transform:translateX(-50%); }
.wearable-object span { display:grid; place-items:center; width:clamp(58px,7vw,88px); aspect-ratio:.78; border:4px solid color-mix(in srgb,var(--item-color) 72%,#5a2d66); border-radius:25% 25% 38% 38%; background:linear-gradient(145deg,color-mix(in srgb,var(--item-color) 68%,white),var(--item-color)); font-size:clamp(2.2rem,5vw,3.6rem); box-shadow:inset 0 0 0 3px rgba(255,255,255,.35); }
.wearable-object strong { max-width:90px; padding:5px 7px; color:#4a315c; background:rgba(255,255,255,.92); border-radius:999px; font-size:.76rem; line-height:1.05; }
.wearable-object:hover,.wearable-object:focus-visible { transform:translateY(-8px) scale(1.04); outline:none; filter:drop-shadow(0 16px 9px rgba(60,31,26,.32)); }
.wearable-object.is-wearing span { box-shadow:0 0 0 5px #fff,0 0 0 9px var(--game-yellow),inset 0 0 0 3px rgba(255,255,255,.4); animation:item-wiggle .5s ease; }
.wearing-badge { position:absolute; left:7%; top:38%; display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; align-items:center; gap:0 10px; color:#30234c; background:rgba(255,255,255,.92); border:3px solid #fff; border-radius:22px; padding:11px 15px; box-shadow:0 12px 30px rgba(35,19,64,.25); }
.wearing-badge>span { grid-row:1/3; font-size:2.3rem; }.wearing-badge small { color:#786c86; }.wearing-badge strong { font:600 1rem "Fredoka",sans-serif; }
.world-door { position:absolute; z-index:5; width:118px; border:0; background:transparent; color:#fff; cursor:pointer; display:grid; place-items:center; gap:2px; padding:0; text-shadow:0 2px 7px rgba(25,14,43,.8); -webkit-tap-highlight-color:transparent; }
.door-face { position:relative; display:block; width:88px; height:138px; border:7px solid #7b442c; border-bottom-width:10px; border-radius:14px 14px 4px 4px; background:linear-gradient(90deg,#a86742,#d8915e 50%,#a86742); box-shadow:0 13px 22px rgba(30,15,40,.35),inset 0 0 0 4px rgba(255,219,160,.25); transition:transform .2s; }
.door-face::before,.door-face::after { content:""; position:absolute; left:15%; right:15%; height:34%; border:3px solid rgba(95,46,30,.48); border-radius:6px; }.door-face::before { top:9%; }.door-face::after { bottom:9%; }
.door-face i { position:absolute; z-index:3; right:10px; top:54%; width:10px; height:10px; border-radius:50%; background:#ffd85e; border:2px solid #885f19; box-shadow:0 0 0 3px rgba(255,222,105,.25); }
.door-face b { position:absolute; z-index:3; left:50%; top:22%; transform:translateX(-50%); font-size:1.55rem; text-shadow:none; }
.world-door>strong { font:600 .98rem "Fredoka",sans-serif; }.world-door>small { color:#fff; font-size:.72rem; font-weight:700; }
.world-door:hover .door-face,.world-door:focus-visible .door-face { transform:perspective(300px) rotateY(-12deg) scale(1.04); }.world-door:focus-visible { outline:4px solid #fff; outline-offset:5px; border-radius:12px; }
.world-door:disabled { cursor:not-allowed; filter:grayscale(.55); opacity:.74; }.world-door:disabled .door-face::after { content:"🔒"; display:grid; place-items:center; font-size:1.35rem; border:0; background:rgba(50,32,70,.58); }
.wardrobe-exit { left:7%; bottom:7%; }.return-door { right:5%; bottom:5%; width:150px; }.return-door>strong { min-width:max-content; }
.room-return-door { z-index:9; right:1%; bottom:1%; width:150px; transform:scale(.58); transform-origin:bottom right; }.room-return-door>strong,.room-return-door>small { min-width:max-content; }
.entrance-outside-door { scale:.7; transform-origin:bottom right; }
.kitchen-counter { position:absolute; z-index:4; left:0; right:0; bottom:0; height:160px; border:0; border-radius:0; background:transparent; box-shadow:none; }
.counter-food { position:absolute; left:2%; right:auto; top:46px; width:max-content; display:flex; justify-content:flex-start; align-items:end; gap:clamp(10px,1.4vw,20px); }
.food-object { position:relative; min-width:53px; border:0; background:transparent; color:#fff; cursor:grab; display:grid; place-items:center; padding:0 2px; text-shadow:0 2px 6px rgba(30,16,38,.75); transition:transform .2s,opacity .2s; touch-action:none; user-select:none; -webkit-user-select:none; }
.food-object::before,.food-object::after { display:none; }
.food-object span { font-size:clamp(2.066rem,3.596vw,3.213rem); filter:drop-shadow(0 7px 5px rgba(38,18,26,.28)); }.food-object strong { padding:3px 7px; background:rgba(65,37,80,.76); border-radius:999px; font-size:.68rem; }.food-object em { min-width:34px; padding:3px 7px; border-radius:999px; color:#4b315d; background:#fff; box-shadow:0 3px 8px rgba(35,18,48,.22); font-size:.72rem; font-style:normal; font-weight:900; text-shadow:none; }
.food-object:hover,.food-object:focus-visible { transform:translateY(-6px); outline:none; border-radius:16px; }.food-object.is-in-bowl { opacity:.38; transform:translate(140%,75%) scale(.62); pointer-events:none; }
.food-object.is-complete { opacity:.55; filter:grayscale(.25); cursor:default; }.food-object.is-complete em { color:#fff; background:#50a66a; }
.food-object.is-dragging { z-index:20; cursor:grabbing; transform:translate(var(--drag-x),var(--drag-y)) scale(1.14) rotate(-5deg); transition:none; filter:drop-shadow(0 18px 12px rgba(35,18,48,.36)); }
.food-object.is-returning { transform:translate(var(--drag-x),var(--drag-y)); transition:transform .2s ease-out; }
.bowl-object { position:absolute; left:50%; top:4px; width:190px; height:110px; padding:0; border:0; background:transparent; color:inherit; display:grid; place-items:center; transform:translateX(-50%); }
.bowl-object.is-mix-ready { z-index:4; cursor:pointer; border-radius:42%; }
.bowl-object.is-mix-ready:focus-visible { outline:4px solid #fff; outline-offset:5px; }
.kitchen-stovetop-object { top:-108px; width:310px; height:210px; }
.kitchen-stovetop-image { position:absolute; z-index:1; inset:0; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 12px 10px rgba(42,31,45,.25)); pointer-events:none; }
.kitchen-stovetop-object .bowl-mixture { z-index:3; top:69px; width:105px; height:25px; transform:translateX(-31%); }
.kitchen-stovetop-object .bowl-drop-target { z-index:4; top:28px; width:170px; height:100px; }
.kitchen-stovetop-object .bowl-mix-prompt { z-index:5; bottom:4px; }
.kitchen-prep-bowl { position:absolute; z-index:3; left:calc(50% - 205px); top:22px; display:grid; place-items:center; gap:2px; color:#fff; text-align:center; text-shadow:0 2px 5px rgba(48,25,72,.7); pointer-events:none; }
.kitchen-prep-bowl span { font-size:4.6rem; line-height:1; filter:drop-shadow(0 7px 5px rgba(38,18,26,.25)); }.kitchen-prep-bowl strong{padding:4px 9px;border-radius:999px;background:rgba(65,37,80,.72);font:700 .68rem "Fredoka",sans-serif}
.kitchen-serving-plate { position:absolute; z-index:5; left:50%; top:-74px; width:210px; height:150px; display:grid; place-items:center; align-content:center; gap:3px; padding:8px; border:0; border-radius:50%; color:#4d315d; background:radial-gradient(ellipse,#fff 0 54%,#e8e1d7 56% 65%,#fff 67%); box-shadow:0 10px 22px rgba(45,28,66,.25); cursor:pointer; transform:translateX(-50%); }
.kitchen-serving-plate>span { font-size:4.3rem; filter:drop-shadow(0 5px 4px rgba(45,28,66,.18)); transition:transform .25s,opacity .25s; }.kitchen-serving-plate>strong{padding:5px 10px;border-radius:999px;color:#fff;background:#7352bd;font:800 .72rem "Fredoka",sans-serif}.kitchen-serving-plate.is-biting>span{transform:scale(.75) rotate(-8deg)}.kitchen-serving-plate.is-finished>span{opacity:.28;transform:scale(.7)}.kitchen-serving-plate:disabled{cursor:default}
.bowl-mix-prompt { position:absolute; z-index:5; left:50%; bottom:-20px; min-width:110px; padding:6px 12px; border:3px solid #fff; border-radius:999px; color:#fff; background:#e84f91; box-shadow:0 6px 16px rgba(63,29,66,.34); font:800 .78rem "Fredoka",sans-serif; text-align:center; text-shadow:0 2px 4px rgba(45,24,54,.45); transform:translateX(-50%); }
@keyframes bowl-mix-ready { from { filter:drop-shadow(0 0 0 rgba(255,255,255,0)); } to { filter:drop-shadow(0 0 12px rgba(255,255,255,.95)); } }
.smoothie-blender-object { top:-480px; width:420px; height:640px; cursor:default; }
.smoothie-blender-object.is-ready { cursor:pointer; }
.smoothie-blender-object.is-blending { pointer-events:none; animation:smoothie-blender-shake .16s linear infinite; }
.smoothie-blender-fill-window { position:absolute; z-index:2; left:124px; top:102px; width:170px; height:325px; overflow:hidden; border-radius:10px 10px 66px 66px; clip-path:polygon(4% 0,96% 0,92% 55%,86% 82%,74% 100%,26% 100%,14% 82%,8% 55%); pointer-events:none; }
.smoothie-blender-fill { position:absolute; left:0; right:0; bottom:0; height:var(--smoothie-level); overflow:hidden; background:linear-gradient(155deg,var(--smoothie-fill-light),var(--smoothie-fill-dark)); box-shadow:inset 18px 7px 24px rgba(255,255,255,.24); transition:height .35s ease,background .25s ease; }
.smoothie-blender-object.is-blending .smoothie-blender-fill { animation:smoothie-liquid-churn .5s ease-in-out infinite alternate; }
.smoothie-blender-object.is-blending .smoothie-blender-fill::after { content:""; position:absolute; inset:8% 10% 12%; border-radius:38%; background:radial-gradient(circle at 18% 75%,rgba(255,255,255,.75) 0 3%,transparent 4%),radial-gradient(circle at 52% 55%,rgba(255,255,255,.62) 0 4%,transparent 5%),radial-gradient(circle at 78% 82%,rgba(255,255,255,.7) 0 3%,transparent 4%),radial-gradient(circle at 68% 25%,rgba(255,255,255,.5) 0 2.5%,transparent 3.5%); animation:smoothie-bubbles .6s ease-in-out infinite; }
.smoothie-blender-fill.is-finished { animation:snack-mix-finish .75s ease both; }
.smoothie-blender-fill .mixture-piece { transform:scale(.8); }
.smoothie-blender-object .bowl-drop-target { inset:0; width:100%; height:100%; border-radius:28%; transform:none; }
.smoothie-blender-object .bowl-drop-target.is-drop-ready { transform:none; }
.blender-action-prompt { position:absolute; z-index:6; left:50%; bottom:96px; padding:6px 16px; border:3px solid #fff; border-radius:999px; color:#fff; background:#e84f91; box-shadow:0 6px 16px rgba(63,29,66,.34); font:800 .82rem "Fredoka",sans-serif; text-shadow:0 2px 4px rgba(45,24,54,.45); transform:translateX(-50%); }
.bowl-drop-target { position:absolute; z-index:1; left:50%; top:-108px; width:min(46vw,560px); height:230px; display:grid; place-items:center; border:0; border-radius:50%; color:#fff; background:rgba(112,72,201,.12); opacity:0; transform:translateX(-50%) scale(.94); transition:opacity .15s,transform .15s; pointer-events:none; }
.bowl-drop-target i { padding:7px 12px; border-radius:999px; background:rgba(74,45,137,.78); font:700 .88rem "Fredoka",sans-serif; font-style:normal; text-shadow:0 2px 6px rgba(48,25,72,.8); }
.bowl-drop-target.is-drop-ready { opacity:1; transform:translateX(-50%) scale(1); }
.bowl-emoji { display:none; }
.bowl-mixture { position:absolute; z-index:2; left:50%; top:-10px; width:174px; height:38px; overflow:hidden; border-radius:50%; transform:translateX(-50%); filter:drop-shadow(0 4px 5px rgba(26,42,69,.22)); pointer-events:none; }
.bowl-mixture>b { position:absolute; inset:3px 5px; border-radius:50%; box-shadow:inset 0 8px 10px rgba(255,255,255,.24),inset 0 -7px 10px rgba(54,61,34,.2); }
.bowl-mixture.mixture-salad { top:-48px; width:206px; height:76px; overflow:visible; border-radius:0; }
.bowl-mixture.mixture-salad>b { display:none; }
.bowl-mixture.mixture-salad .mixture-piece { --piece-turn:0deg; --toss-height:-38px; --bounce-height:-14px; display:grid; width:46px; height:46px; place-items:center; border:0; border-radius:0; background:none; box-shadow:none; overflow:visible; font:normal 41px/1 sans-serif; filter:drop-shadow(0 3px 3px rgba(41,60,31,.3)); transform:translateX(-50%) rotate(var(--piece-turn)); transform-origin:50% 82%; }
.bowl-mixture.mixture-salad .mixture-piece::before { display:block; width:100%; height:100%; overflow:visible; text-align:center; line-height:1; }
.bowl-mixture.mixture-salad .mixture-broccoli::before { content:"🥦"; }
.bowl-mixture.mixture-salad .mixture-lettuce::before { content:"🥬"; }
.bowl-mixture.mixture-salad .mixture-tomato::before { content:"🍅"; }
.bowl-mixture.mixture-salad .mixture-cucumber::before { content:"🥒"; }
.bowl-mixture.mixture-salad .mixture-broccoli { width:58px; height:58px; font-size:54px; }
.bowl-mixture.mixture-salad .mixture-lettuce { width:54px; height:54px; font-size:49px; }
.bowl-mixture.mixture-salad .mixture-tomato { width:44px; height:44px; font-size:40px; }
.bowl-mixture.mixture-salad .mixture-cucumber { width:49px; height:49px; font-size:44px; }
.bowl-mixture.mixture-salad .mixture-piece:nth-of-type(1) { z-index:5; left:41%; top:5px; --piece-turn:-8deg; --toss-height:-42px; }
.bowl-mixture.mixture-salad .mixture-piece:nth-of-type(2) { z-index:4; left:59%; top:10px; --piece-turn:7deg; --toss-height:-36px; }
.bowl-mixture.mixture-salad .mixture-piece:nth-of-type(3) { z-index:6; left:50%; top:0; --piece-turn:1deg; --toss-height:-46px; }
.bowl-mixture.mixture-salad .mixture-piece:nth-of-type(4) { z-index:7; left:69%; top:21px; --piece-turn:16deg; --toss-height:-39px; }
.bowl-mixture.mixture-salad .mixture-piece:nth-of-type(5) { z-index:6; left:30%; top:22px; --piece-turn:-18deg; --toss-height:-44px; }
.bowl-mixture.mixture-salad .mixture-piece:nth-of-type(6) { z-index:8; left:55%; top:27px; --piece-turn:11deg; --toss-height:-35px; }
.bowl-mixture.mixture-salad .mixture-piece:nth-of-type(7) { z-index:7; left:79%; top:30px; --piece-turn:-12deg; --toss-height:-41px; }
.bowl-mixture.mixture-salad .mixture-piece:nth-of-type(8) { z-index:9; left:20%; top:31px; --piece-turn:21deg; --toss-height:-37px; }
.bowl-mixture.mixture-salad .mixture-piece:nth-of-type(9) { z-index:10; left:43%; top:35px; --piece-turn:-9deg; --toss-height:-43px; }
.bowl-mixture.mixture-salad .mixture-piece:nth-of-type(10) { z-index:9; left:67%; top:37px; --piece-turn:18deg; --toss-height:-38px; }
.bowl-mixture.mixture-salad .mixture-piece:nth-of-type(11) { z-index:8; left:11%; top:26px; --piece-turn:-15deg; --toss-height:-40px; }
.bowl-mixture.mixture-salad .mixture-piece:nth-of-type(12) { z-index:11; left:88%; top:25px; --piece-turn:9deg; --toss-height:-45px; }
.bowl-mixture.mixture-salad .mixture-broccoli:only-of-type { left:50%; }
.bowl-mixture.mixture-omelette { top:-30px; height:34px; }
.bowl-mixture.mixture-omelette>b { inset:2px 7px; background:linear-gradient(170deg,#ffe889 0%,#f6cf5d 52%,#e9b840 100%); }
.bowl-mixture.mixture-smoothie>b { background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.32) 0 4%,transparent 5%),radial-gradient(circle at 70% 58%,rgba(255,255,255,.24) 0 5%,transparent 6%),linear-gradient(165deg,#d77cab,#8e4d91); }
.mixture-piece { position:absolute; z-index:2; display:block; width:18px; height:13px; border:2px solid rgba(61,42,38,.2); border-radius:38%; box-shadow:inset 0 2px 3px rgba(255,255,255,.35),0 2px 3px rgba(42,34,36,.2); }
.mixture-piece:nth-of-type(1){left:12%;top:30%;transform:rotate(14deg)}.mixture-piece:nth-of-type(2){left:29%;top:58%;transform:rotate(-18deg)}.mixture-piece:nth-of-type(3){left:45%;top:23%;transform:rotate(28deg)}.mixture-piece:nth-of-type(4){left:63%;top:54%;transform:rotate(-9deg)}.mixture-piece:nth-of-type(5){left:79%;top:28%;transform:rotate(19deg)}.mixture-piece:nth-of-type(6){left:19%;top:67%;transform:rotate(33deg)}.mixture-piece:nth-of-type(7){left:37%;top:43%;transform:rotate(-29deg)}.mixture-piece:nth-of-type(8){left:55%;top:69%;transform:rotate(11deg)}.mixture-piece:nth-of-type(9){left:71%;top:40%;transform:rotate(-22deg)}.mixture-piece:nth-of-type(10){left:86%;top:61%;transform:rotate(25deg)}.mixture-piece:nth-of-type(11){left:5%;top:55%;transform:rotate(-8deg)}.mixture-piece:nth-of-type(12){left:50%;top:47%;transform:rotate(39deg)}
.mixture-egg { width:20px;height:16px;border-color:#f4c64e;border-radius:50%;background:#fff6c9 }.mixture-cheese { background:#ffd848 }.mixture-tomato,.mixture-strawberry { border-color:#b83335;border-radius:50%;background:#e94f4d }.mixture-ham { background:#e98a91 }.mixture-berries { width:13px;height:13px;border-color:#3c498a;border-radius:50%;background:#5969b4 }.mixture-apple { border-color:#a83131;background:#de4e49 }.mixture-banana { border-color:#d9a934;border-radius:50%;background:#f6d45f }.mixture-broccoli { border-color:#367c3e;border-radius:50%;background:#4d9a4c }.mixture-lettuce { width:22px;height:15px;border-color:#4b983f;border-radius:70% 28% 70% 30%;background:#79bf55 }.mixture-cucumber { border-color:#3d8b52;border-radius:50%;background:radial-gradient(circle,#d8ed91 0 42%,#6cbd68 45% 100%) }
.bowl-mixture.is-tossing { overflow:visible; animation:bowl-mix-finish .82s ease both; }
.bowl-mixture.is-tossing .mixture-piece { animation:ingredient-toss .78s cubic-bezier(.2,.75,.32,1) both; }
.bowl-mixture.is-tossing .mixture-piece:nth-of-type(3n+1) { animation-delay:0s; }
.bowl-mixture.is-tossing .mixture-piece:nth-of-type(3n+2) { animation-delay:.08s; }
.bowl-mixture.is-tossing .mixture-piece:nth-of-type(3n) { animation-delay:.16s; }
.bowl-mixture.mixture-salad.is-tossing .mixture-piece { animation:salad-ingredient-toss .72s cubic-bezier(.2,.72,.3,1) both; }
.bowl-mixture.mixture-salad.is-tossing .mixture-piece:nth-of-type(3n+1) { animation-delay:0s; }
.bowl-mixture.mixture-salad.is-tossing .mixture-piece:nth-of-type(3n+2) { animation-delay:.06s; }
.bowl-mixture.mixture-salad.is-tossing .mixture-piece:nth-of-type(3n) { animation-delay:.12s; }
.bowl-object.is-mixing-salad .bowl-mixture,.bowl-object.is-mixing-salad .bowl-mixture .mixture-piece { animation-iteration-count:2; }
.mix-spoon { position:absolute; right:4%; top:16px; min-width:82px; border:0; background:transparent; color:#fff; cursor:pointer; display:grid; place-items:center; text-shadow:0 2px 6px rgba(30,16,38,.75); }.mix-spoon span { font-size:4.8rem; transform:rotate(-28deg); filter:drop-shadow(0 8px 5px rgba(38,18,26,.25)); }.mix-spoon strong { background:#e84f91; border:3px solid #fff; border-radius:999px; padding:5px 12px; }.mix-spoon:disabled { opacity:.52; filter:grayscale(.5); cursor:not-allowed; }
.mix-spoon.is-ready { z-index:5; left:calc(50% + 68px); right:auto; top:-5px; animation:spoon-hover-around-bowl 2.4s ease-in-out infinite; }
.mix-spoon.is-ready strong { box-shadow:0 0 0 4px rgba(255,255,255,.2),0 8px 20px rgba(77,31,75,.32); }
.smoothie-maker,.smoothie-maker.is-ready { z-index:5; left:calc(50% + 125px); right:auto; top:-42px; min-width:94px; height:150px; animation:none; }
.smoothie-maker .blender-appliance { position:relative; display:block; width:64px; height:76px; border:5px solid #205f96; border-top-width:7px; border-radius:10px 10px 18px 18px; background:linear-gradient(90deg,rgba(205,239,255,.78),rgba(255,255,255,.95) 45%,rgba(151,207,239,.74)); box-shadow:inset 7px 0 9px rgba(255,255,255,.42),inset -5px 0 8px rgba(29,97,151,.16),0 8px 10px rgba(25,68,108,.3); transform:none; filter:none; }
.smoothie-maker .blender-appliance::before { content:""; position:absolute; z-index:3; left:-7px; right:-7px; top:-13px; height:9px; border:4px solid #1d5b91; border-radius:8px 8px 3px 3px; background:linear-gradient(180deg,#74b9e8,#327ebc 58%,#225f98); box-shadow:inset 0 3px 3px rgba(255,255,255,.42),0 3px 5px rgba(21,64,101,.32); }
.smoothie-maker .blender-appliance::after { content:""; position:absolute; left:-12px; right:-12px; bottom:-30px; height:27px; border:4px solid #1c588c; border-radius:9px 9px 15px 15px; background:linear-gradient(155deg,#65afe2 0%,#347fbf 48%,#225c96 100%); box-shadow:inset 8px 4px 7px rgba(255,255,255,.3),inset -7px -5px 8px rgba(17,63,105,.28),0 7px 9px rgba(25,68,108,.32); }
.smoothie-maker .blender-appliance i { position:absolute; left:4px; right:4px; bottom:4px; height:43%; border-radius:35% 35% 48% 48%; background:linear-gradient(155deg,#dc82af,#8d4f91); box-shadow:inset 0 5px 6px rgba(255,255,255,.24); }
.smoothie-maker:disabled { opacity:.9; filter:saturate(.82); }
.smoothie-maker.is-ready .blender-appliance { filter:drop-shadow(0 0 10px rgba(255,238,139,.9)); animation:blender-ready .7s ease-in-out infinite alternate; }
.smoothie-maker strong { position:absolute; bottom:-1px; white-space:nowrap; }
.kitchen-replay { position:absolute; z-index:6; right:3%; top:28px; min-height:62px; padding:9px 18px; border:4px solid #fff; border-radius:24px; color:#fff; background:linear-gradient(135deg,#7848dc,#e94f91); box-shadow:0 9px 22px rgba(52,25,77,.3); cursor:pointer; font:700 1.05rem/1.05 "Fredoka",sans-serif; }.kitchen-replay strong{display:block;margin-top:5px;font-size:.72rem}.kitchen-replay:hover,.kitchen-replay:focus-visible{transform:translateY(-3px);box-shadow:0 13px 26px rgba(52,25,77,.38);outline:none}.kitchen-cooldown{min-width:170px;margin-top:5px;padding:7px 13px;border-radius:999px;color:#fff;background:#7145d7;font-size:.92rem}
.kitchen-cook-stage,.kitchen-serving-stage { position:absolute; z-index:8; inset:0; overflow:hidden; pointer-events:none; }
.kitchen-stovetop { position:absolute; z-index:3; right:clamp(110px,15%,190px); bottom:calc(var(--kitchen-bench-line) - 52px); width:min(27vw,340px); height:48px; pointer-events:none; filter:drop-shadow(0 9px 7px rgba(53,31,28,.25)); }
.kitchen-stove-surface { position:absolute; inset:0; overflow:hidden; border:4px solid #d7d9df; border-radius:18px; background:linear-gradient(150deg,#f8f9fb 0%,#bec2ca 58%,#eceef2 100%); box-shadow:inset 0 5px 7px rgba(255,255,255,.82),inset 0 -5px 7px rgba(47,49,57,.18); transform:perspective(330px) rotateX(48deg); transform-origin:center bottom; }
.kitchen-stove-surface i { position:absolute; top:12%; width:31%; aspect-ratio:1.55; border:4px solid #33343a; border-radius:50%; background:radial-gradient(ellipse at center,#555761 0 19%,#202126 21% 40%,#5b5d64 43% 50%,#24252a 53% 100%); box-shadow:inset 0 0 0 3px rgba(255,255,255,.09); }
.kitchen-stove-surface i:nth-child(1){left:12%}.kitchen-stove-surface i:nth-child(2){right:12%}
.kitchen-stovetop.is-active .kitchen-stove-surface i:nth-child(2) { border-color:#d7502c; box-shadow:0 0 12px 4px rgba(255,91,48,.7),inset 0 0 0 3px rgba(255,224,157,.3); animation:kitchen-burner-glow .7s ease-in-out infinite alternate; }
.kitchen-world.is-omelette-cook .kitchen-counter,.kitchen-world.is-omelette-cook .bowl-object { display:none; }
.kitchen-mum-frame { position:absolute; right:2%; top:0; bottom:calc(var(--kitchen-bench-line) - var(--kitchen-bench-overlap)); width:min(31vw,390px); overflow:hidden; pointer-events:none; animation:kitchen-mum-arrive .7s cubic-bezier(.18,.85,.24,1.15) both; }
.kitchen-mum { position:absolute; right:0; bottom:0; display:block; width:100%; height:auto; max-height:none; object-fit:contain; object-position:center bottom; filter:drop-shadow(0 14px 12px rgba(52,29,51,.3)); transform:translateY(var(--kitchen-mum-sink)); transform-origin:center bottom; }
.kitchen-mum-speech,.kitchen-child-cook-speech,.kitchen-child-speech,.kitchen-serving-prompt { position:absolute; z-index:10; padding:10px 16px; border:4px solid #fff; border-radius:22px; color:#4a3370; background:rgba(255,253,247,.96); box-shadow:0 10px 24px rgba(43,27,64,.25); font:700 clamp(.78rem,1.5vw,1.05rem)/1.15 "Fredoka",sans-serif; text-align:center; }
.kitchen-mum-speech { right:22%; top:auto; bottom:calc(var(--kitchen-bench-line) + 28px); max-width:250px; }
.kitchen-mum-speech::after { content:""; position:absolute; left:100%; top:52%; border:10px solid transparent; border-left-color:#fff; }
.kitchen-child-cook-speech { left:3%; top:auto; bottom:calc(var(--kitchen-bench-line) + 28px); animation:kitchen-speech-pop .55s .35s both; }
.kitchen-child-cook-speech::after,.kitchen-child-speech::after { content:""; position:absolute; left:24%; top:100%; border:9px solid transparent; border-top-color:#fff; }
.kitchen-pan-action { position:absolute; z-index:11; left:auto; right:clamp(110px,15%,190px); bottom:calc(var(--kitchen-bench-line) - 38px); width:min(25vw,320px); display:grid; justify-items:center; padding:0; border:0; background:transparent; color:#fff; cursor:pointer; pointer-events:auto; transform:none; font:700 .96rem/1 "Fredoka",sans-serif; text-shadow:0 2px 5px rgba(49,25,49,.7); }
.kitchen-pan-action img { display:block; width:100%; height:auto; filter:drop-shadow(0 13px 9px rgba(43,27,45,.34)); transition:transform .22s,filter .22s; }
.kitchen-pan-action strong { margin-top:-14px; padding:8px 16px; border:3px solid #fff; border-radius:999px; background:#e84f91; box-shadow:0 7px 18px rgba(63,29,66,.3); }
.kitchen-pan-action>span { position:absolute; left:27%; top:4%; color:#fff3ae; font-size:1.7rem; letter-spacing:.4rem; animation:kitchen-steam 1s ease-in-out infinite; }
.kitchen-pan-action>.kitchen-cook-progress { left:50%; top:auto; bottom:32px; width:min(68%,250px); height:14px; overflow:hidden; border:3px solid #fff; border-radius:999px; background:rgba(70,43,91,.68); box-shadow:0 5px 12px rgba(45,27,58,.3); transform:translateX(-50%); animation:none; }
.kitchen-cook-progress>i { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#ffd85c,#f39a39,#e8614f); box-shadow:inset 0 2px 3px rgba(255,255,255,.55); animation:kitchen-cook-fill 2.4s linear forwards; }
.kitchen-pan-action:not(:disabled):hover img,.kitchen-pan-action:not(:disabled):focus-visible img { transform:translateY(-7px) scale(1.035); filter:drop-shadow(0 0 13px rgba(255,244,149,.9)) drop-shadow(0 13px 9px rgba(43,27,45,.34)); }
.kitchen-pan-action:focus-visible { outline:4px solid #fff; outline-offset:6px; border-radius:40%; }
.kitchen-pan-action:disabled { cursor:wait; }
.kitchen-cook-stage.is-cooking .kitchen-pan-action img { animation:kitchen-pan-sizzle .38s ease-in-out infinite alternate; }
.kitchen-cook-stage.is-cooking .kitchen-mum { animation:kitchen-mum-cook 1.1s ease-in-out infinite alternate; }
.kitchen-serving-prompt { left:50%; top:23%; transform:translateX(-50%); width:max-content; max-width:min(480px,55vw); }
.kitchen-serving-progress { position:absolute; z-index:11; left:50%; top:calc(23% + 62px); display:flex; gap:7px; padding:6px 10px; border:3px solid rgba(255,255,255,.92); border-radius:999px; background:rgba(71,44,93,.76); box-shadow:0 6px 15px rgba(43,27,64,.24); transform:translateX(-50%); }
.kitchen-serving-progress i { width:22px; height:22px; display:grid; place-items:center; border-radius:50%; color:#fff; background:rgba(255,255,255,.2); font:900 .78rem/1 "Fredoka",sans-serif; font-style:normal; }
.kitchen-serving-progress i.is-eaten { color:#4c3570; background:#ffe36f; box-shadow:0 0 0 2px rgba(255,255,255,.72); }
.kitchen-child-speech { left:3%; top:auto; bottom:calc(var(--kitchen-bench-line) + 28px); max-width:210px; animation:kitchen-speech-pop .42s both; }
.kitchen-serving-dish { position:absolute; z-index:8; left:52%; bottom:23px; width:min(34vw,430px); max-height:260px; object-fit:contain; object-position:center bottom; transform:translateX(-50%); filter:drop-shadow(0 11px 8px rgba(60,35,41,.27)); }
.kitchen-serving-stage.is-smoothie .kitchen-serving-dish { width:min(15vw,180px); max-height:300px; bottom:34px; }
.kitchen-serving-stage.is-smoothie .kitchen-serving-dish { left:23%; bottom:calc(var(--kitchen-bench-line) - 20px); }
.kitchen-serving-bite { --drag-x:0px; --drag-y:0px; position:absolute; z-index:12; left:calc(52% + 150px); bottom:96px; min-width:104px; display:grid; justify-items:center; gap:4px; padding:0; border:0; color:#fff; background:transparent; cursor:grab; pointer-events:auto; touch-action:none; transform:translate(var(--drag-x),var(--drag-y)); transition:transform .22s ease,filter .2s; text-shadow:0 2px 5px rgba(52,28,58,.78); }
.kitchen-serving-bite>span { font-size:clamp(3.5rem,7vw,6.2rem); filter:drop-shadow(0 8px 5px rgba(38,18,26,.3)); }
.kitchen-serving-bite>img { display:block; width:min(15vw,180px); max-height:270px; object-fit:contain; filter:drop-shadow(0 11px 8px rgba(60,35,41,.27)); pointer-events:none; }
.kitchen-serving-bite>strong { padding:6px 11px; border:3px solid #fff; border-radius:999px; background:#e84f91; font:700 .78rem/1 "Fredoka",sans-serif; }
.kitchen-serving-bite.is-drink { left:23%; bottom:calc(var(--kitchen-bench-line) - 30px); min-width:0; transform:translate(calc(-50% + var(--drag-x)),var(--drag-y)); }
.kitchen-serving-bite.is-drink:hover,.kitchen-serving-bite.is-drink:focus-visible { transform:translate(calc(-50% + var(--drag-x)),calc(var(--drag-y) - 5px)) scale(1.04); }
.kitchen-serving-bite.is-drink.is-dragging { transform:translate(calc(-50% + var(--drag-x)),var(--drag-y)) scale(1.12) rotate(-5deg); }
.kitchen-serving-bite:hover,.kitchen-serving-bite:focus-visible { outline:none; filter:drop-shadow(0 0 12px #fff); transform:translate(var(--drag-x),calc(var(--drag-y) - 5px)) scale(1.04); }
.kitchen-serving-bite.is-dragging { cursor:grabbing; transition:none; transform:translate(var(--drag-x),var(--drag-y)) scale(1.12) rotate(-5deg); }
.kitchen-serving-bite.is-returning { transition:transform .22s cubic-bezier(.2,.8,.25,1.2); }
.kitchen-mouth-target { position:absolute; z-index:15; left:16.5%; top:42%; width:74px; height:62px; border-radius:50%; opacity:0; transform:translate(-50%,-50%); transition:opacity .16s,box-shadow .16s; }
.kitchen-mouth-target.is-drop-ready { opacity:1; box-shadow:0 0 0 7px rgba(255,255,255,.8),0 0 28px 12px rgba(255,230,93,.9); }
.kitchen-make-another { position:absolute; z-index:12; left:52%; bottom:50px; min-width:210px; min-height:52px; padding:10px 20px; border:4px solid #fff; border-radius:999px; color:#fff; background:linear-gradient(135deg,#7042cf,#e84f91); box-shadow:0 10px 24px rgba(52,26,77,.35); cursor:pointer; pointer-events:auto; transform:translateX(-50%); font:700 1rem/1 "Fredoka",sans-serif; }
.kitchen-serving-stage.is-taking-bite .kitchen-serving-dish { animation:kitchen-serving-cheer .52s ease both; }
.kitchen-serving-stage.is-taking-bite .kitchen-serving-bite.is-drink img { animation:kitchen-serving-sip .52s ease both; }
@keyframes kitchen-serving-sip { 50% { transform:translateY(-12px) rotate(-8deg); } }
.kitchen-serving-stage.is-taking-bite .kitchen-serving-progress i.is-eaten { animation:kitchen-serving-step .52s ease both; }
.game-stage:has(.kitchen-serving-stage.is-taking-bite) .scene-player-kitchen img { animation:kitchen-child-taste .52s ease both; }
@keyframes kitchen-mum-arrive { from{opacity:0;transform:translateX(80%) rotate(3deg)} to{opacity:1;transform:none} }
@keyframes kitchen-mum-cook { from{transform:translateY(var(--kitchen-mum-sink)) rotate(-.6deg)} to{transform:translateY(calc(var(--kitchen-mum-sink) - 4px)) rotate(.8deg)} }
@keyframes kitchen-cook-fill { from{width:0} to{width:100%} }
@keyframes kitchen-speech-pop { from{opacity:0;transform:scale(.68) translateY(14px)} to{opacity:1;transform:none} }
@keyframes kitchen-pan-sizzle { from{transform:translateY(0)} to{transform:translateY(-4px)} }
@keyframes kitchen-burner-glow { from{filter:brightness(.9)} to{filter:brightness(1.35)} }
@keyframes kitchen-steam { 0%{opacity:.3;transform:translateY(8px) scale(.8)} 55%{opacity:1} 100%{opacity:0;transform:translateY(-15px) scale(1.12)} }
@keyframes kitchen-serving-cheer { 0%,100%{transform:translateX(-50%) scale(1)} 50%{transform:translateX(-50%) translateY(-8px) scale(1.04)} }
@keyframes kitchen-child-taste { 0%,100%{transform:translate(-50%,34%)} 45%{transform:translate(-50%,31%) rotate(-2deg) scale(1.025)} }
@keyframes kitchen-serving-step { 0%,100%{transform:scale(1)} 45%{transform:scale(1.3) rotate(-8deg)} }
.kitchen-doors { position:absolute; inset:0; pointer-events:none; }.kitchen-doors .world-door { pointer-events:auto; top:14%; width:12.5%; height:42%; border-radius:16px 16px 5px 5px; transition:box-shadow .18s,background-color .18s,filter .18s; }.kitchen-doors .world-door:hover,.kitchen-doors .world-door:focus-visible { background:rgba(255,236,156,.1); box-shadow:inset 0 0 0 4px rgba(255,249,210,.92),inset 0 0 30px rgba(255,224,112,.48),0 0 24px rgba(255,238,150,.72); filter:brightness(1.12) saturate(1.08); outline:none; }.kitchen-doors .world-door:disabled { background:rgba(50,32,70,.18); box-shadow:inset 0 0 0 3px rgba(255,255,255,.18); }.door-bedroom { left:32.5%; right:auto; }.door-playroom { left:54.5%; right:auto; }.door-backyard { left:76.8%; right:auto; }.garden-door { background:linear-gradient(90deg,#477b3c,#79b358 50%,#477b3c); }.play-door { background:linear-gradient(90deg,#a44d78,#ea89b6 50%,#a44d78); }.bed-door { background:linear-gradient(90deg,#6546a0,#9d7be0 50%,#6546a0); }
.kitchen-doors .world-door:hover,.kitchen-doors .world-door:focus-visible { background:transparent; box-shadow:none; filter:none; }
.world-critter,.world-bubble { position:absolute; z-index:5; left:var(--x); top:var(--y); transform:translate(-50%,-50%); }
.world-critter { width:74px; height:74px; border:3px solid #fff; border-radius:50%; background:rgba(255,245,188,.88); font-size:2.5rem; box-shadow:0 9px 22px rgba(31,21,47,.28); cursor:pointer; animation:critter-float 2.2s ease-in-out infinite; }.world-critter:nth-of-type(even){animation-delay:-1s}.world-critter.is-found { opacity:0; transform:translate(-50%,-50%) scale(.15); pointer-events:none; }
.backyard-option { position:absolute; z-index:6; padding:0; border:0; background:transparent; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.backyard-option::before { display:none; }
.backyard-option>span { position:absolute; left:50%; bottom:1%; width:max-content; padding:9px 17px; border:3px solid #fff; border-radius:999px; color:#fff; background:rgba(74,44,117,.82); box-shadow:0 8px 20px rgba(41,24,66,.3); transform:translateX(-50%); transition:color .18s,background-color .18s,box-shadow .18s,transform .18s; font:700 clamp(.9rem,1.8vw,1.22rem)/1 "Fredoka",sans-serif; text-shadow:0 2px 5px rgba(33,18,51,.5); }
.backyard-option:hover,.backyard-option:focus-visible,.backyard-option.is-active { outline:none; filter:none; }
.backyard-option:hover>span,.backyard-option:focus-visible>span,.backyard-option.is-active>span { color:#fffbd8; background:rgba(111,75,166,.97); box-shadow:0 8px 20px rgba(41,24,66,.3),0 0 15px rgba(255,248,184,.92); transform:translateX(-50%) scale(1.05); }
.backyard-world .scene-mission.is-choice { top:3%; left:3%; width:min(360px,calc(100% - 48px)); transform:none; }
.backyard-world .scene-mission.is-choice::after { content:""; position:absolute; left:22%; top:100%; border:17px solid transparent; border-top-color:rgba(255,253,247,.96); transform:rotate(12deg); transform-origin:top center; }
.backyard-swing-option { left:10%; top:25%; width:20%; height:34%; }
.backyard-swing-option>span { top:0; bottom:auto; }
.backyard-kennel-option { left:40%; top:35%; width:18%; height:28%; }
.backyard-kennel-option>span { top:-5%; bottom:auto; }
.backyard-pool-option { left:42%; top:57%; width:25%; height:18%; }
.backyard-time-machine-option { right:4%; top:27%; width:25%; height:42%; }
.backyard-parent { position:absolute; z-index:9; right:1.5%; bottom:0; width:clamp(135px,15vw,220px); height:min(48vh,420px); opacity:0; pointer-events:none; transform:translateX(115%); transition:opacity .45s ease,transform .55s cubic-bezier(.2,.8,.25,1); }
.backyard-parent.is-speaking { opacity:1; transform:translateX(0); }
.backyard-parent img { position:absolute; right:0; bottom:0; width:100%; height:100%; object-fit:contain; object-position:center bottom; transform:scaleX(-1); filter:drop-shadow(0 10px 10px rgba(42,28,61,.3)); }
.backyard-parent strong { position:absolute; right:82%; top:8%; width:max-content; max-width:min(280px,38vw); padding:10px 15px; border:4px solid #fff; border-radius:20px; color:#4a3370; background:rgba(255,253,247,.96); box-shadow:0 10px 24px rgba(43,27,64,.28); font:700 clamp(.78rem,1.5vw,1.05rem)/1.15 "Fredoka",sans-serif; text-align:center; }
.backyard-parent strong::after { content:""; position:absolute; left:100%; top:45%; border:9px solid transparent; border-left-color:#fff; }
.pool-mum { position:absolute; z-index:12; right:1.5%; bottom:0; width:clamp(135px,15vw,220px); height:min(48vh,420px); opacity:0; pointer-events:none; transform:translateX(115%); transition:opacity .45s ease,transform .55s cubic-bezier(.2,.8,.25,1); }
.pool-mum.is-speaking { opacity:1; transform:translateX(0); }
.pool-mum img { position:absolute; right:0; bottom:0; width:100%; height:100%; object-fit:contain; object-position:center bottom; transform:scaleX(-1); filter:drop-shadow(0 10px 10px rgba(42,28,61,.3)); }
.pool-mum strong { position:absolute; right:78%; top:8%; width:max-content; max-width:min(260px,38vw); padding:10px 15px; border:4px solid #fff; border-radius:20px; color:#4a3370; background:rgba(255,253,247,.96); box-shadow:0 10px 24px rgba(43,27,64,.28); font:700 clamp(.78rem,1.5vw,1.05rem)/1.15 "Fredoka",sans-serif; text-align:center; }
.backyard-world .world-critter { z-index:8; }
.scene-pool { background-image:linear-gradient(180deg,rgba(14,78,123,.02),rgba(0,91,150,.1)),var(--scene-image) !important; background-position:center; background-size:cover; }
.scene-pool::after { background:linear-gradient(180deg,rgba(13,73,112,.02) 48%,rgba(4,72,122,.18)); }
.pool-world { position:absolute; inset:0; z-index:2; overflow:hidden; }
.pool-game-header { position:absolute; z-index:12; left:2%; top:2%; width:min(680px,66%); display:grid; grid-template-columns:1fr auto; gap:8px 18px; padding:13px 17px 12px; border:4px solid #fff; border-radius:24px; color:#3c2764; background:rgba(255,253,247,.94); box-shadow:0 13px 32px rgba(26,59,91,.28); backdrop-filter:blur(8px); }
.pool-game-header>div:first-child { display:grid; gap:1px; }
.pool-game-header>div:first-child>span { color:#1677a8; font-size:.72rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.pool-game-header>div:first-child>strong { font:700 clamp(1.22rem,2.2vw,1.75rem)/1 "Fredoka",sans-serif; }
.pool-game-header>div:first-child>small { margin-top:2px; color:#6b5b81; font-size:.8rem; }
.pool-game-score { display:flex; align-items:center; gap:7px; }
.pool-game-score>span { min-width:72px; display:grid; justify-items:center; padding:6px 9px; border:2px solid #78d4ed; border-radius:15px; color:#146e98; background:#ecfbff; line-height:1; }
.pool-game-score b { font:800 1.35rem/1 "Fredoka",sans-serif; font-variant-numeric:tabular-nums; }
.pool-game-score small { margin-top:3px; font-size:.62rem; font-weight:800; text-transform:uppercase; }
.pool-timer-track { grid-column:1/-1; height:9px; overflow:hidden; border-radius:999px; background:#dceff5; }
.pool-timer-track>i { display:block; width:100%; height:100%; border-radius:inherit; background:linear-gradient(90deg,#ff6fa6,#ffd65a); transition:width .1s linear; }
.pool-water-playfield { position:absolute; inset:0; }
.pool-kid { position:absolute; z-index:5; left:var(--pool-kid-x); top:var(--pool-kid-y); width:clamp(92px,10vw,154px); height:clamp(92px,16vh,150px); transform:translate(-50%,-50%); transition:filter .18s,transform .18s; }
.pool-kid-float { position:absolute; inset:0; overflow:hidden; border-radius:48% 48% 42% 42%; filter:drop-shadow(0 8px 8px rgba(5,77,120,.3)); }
.pool-kid-float::after { content:""; position:absolute; left:6%; right:6%; bottom:1%; height:27%; border:4px solid rgba(255,255,255,.9); border-radius:50%; background:rgba(96,220,248,.74); box-shadow:inset 0 6px 12px rgba(255,255,255,.5),0 4px 12px rgba(7,99,150,.28); }
.pool-kid img { position:absolute; z-index:1; left:50%; top:-9%; width:108%; height:128%; object-fit:contain; transform:translateX(-50%); user-select:none; pointer-events:none; }
.pool-kid.is-in-trouble { animation:pool-help-bob 1.1s ease-in-out infinite; }
.pool-kid.is-drop-ready { filter:drop-shadow(0 0 17px #fff06b); transform:translate(-50%,-50%) scale(1.1); }
.pool-kid-bubble,.pool-duck-bubble { position:absolute; z-index:4; left:50%; bottom:94%; width:max-content; max-width:150px; padding:9px 13px; border:3px solid #fff; border-radius:20px 20px 20px 6px; color:#4a2b70; background:#fffdf8; box-shadow:0 8px 18px rgba(34,59,88,.24); transform:translateX(-50%); font:700 clamp(.78rem,1.5vw,1.05rem)/1.05 "Fredoka",sans-serif; }
.pool-kid-bubble::after,.pool-duck-bubble::after { content:""; position:absolute; top:100%; left:46%; border:7px solid transparent; border-top-color:#fff; }
.pool-kid-bubble[hidden] { display:none; }
.pool-duck { position:absolute; z-index:7; left:12%; top:70%; width:clamp(72px,8vw,126px); transform:translate(-50%,-50%); transition:left .12s linear,top .12s linear; filter:drop-shadow(0 8px 9px rgba(4,66,104,.3)); }
.pool-duck img { display:block; width:100%; height:auto; user-select:none; pointer-events:none; }
.pool-duck-bubble { left:55%; bottom:88%; color:#8a5200; border-color:#fff; background:#fff7b9; }
.pool-duck.is-chasing img { animation:pool-duck-paddle .52s ease-in-out infinite alternate; }
.pool-life-ring { --pool-ring-x:0px; --pool-ring-y:0px; position:absolute; z-index:15; left:50%; bottom:2.5%; min-width:116px; min-height:100px; display:grid; justify-items:center; align-content:center; padding:2px 10px 8px; border:0; color:#fff; background:transparent; cursor:grab; touch-action:none; transform:translate(calc(-50% + var(--pool-ring-x)),var(--pool-ring-y)); filter:drop-shadow(0 9px 8px rgba(19,64,95,.38)); transition:transform .24s ease,filter .18s; }
.pool-life-ring>span { font-size:clamp(4.4rem,8vw,7rem); line-height:.78; }
.pool-life-ring>strong { margin-top:7px; padding:6px 10px; border:3px solid #fff; border-radius:999px; color:#fff; background:#e23d55; font:700 .8rem/1 "Fredoka",sans-serif; white-space:nowrap; }
.pool-life-ring:hover,.pool-life-ring:focus-visible { outline:none; filter:drop-shadow(0 0 15px rgba(255,255,255,.95)) drop-shadow(0 9px 8px rgba(19,64,95,.38)); }
.pool-life-ring.is-dragging { cursor:grabbing; z-index:25; transition:none; }
.pool-life-ring.is-returning { transition:transform .24s cubic-bezier(.2,.8,.2,1.2); }
.pool-result-card { position:absolute; z-index:30; left:50%; top:52%; width:min(440px,calc(100% - 28px)); display:grid; justify-items:center; gap:10px; padding:28px 24px; border:5px solid #fff; border-radius:30px; color:#3d2a5f; background:rgba(255,253,247,.97); box-shadow:0 22px 60px rgba(22,57,88,.38); transform:translate(-50%,-50%); text-align:center; }
.pool-result-card>span { font-size:2.4rem; }
.pool-result-card>strong { font:700 clamp(1.55rem,4vw,2.2rem)/1 "Fredoka",sans-serif; }
.pool-result-card p { margin:0 0 4px; color:#685c7a; line-height:1.35; }
.pool-result-card button { width:min(100%,280px); min-height:46px; padding:8px 16px; border:0; border-radius:15px; color:#fff; background:linear-gradient(135deg,#6e43ce,#8b5ce5); box-shadow:0 6px 0 #4f2e9d; cursor:pointer; font:700 .95rem/1 "Fredoka",sans-serif; }
.pool-result-card button+button { color:#5b3a89; background:#f0e8ff; box-shadow:none; }
.pool-result-card.is-rescued { background:rgba(240,255,245,.98); }
.pool-exit { position:absolute; z-index:14; left:2%; bottom:2%; min-height:44px; padding:8px 16px; border:3px solid #fff; border-radius:999px; color:#fff; background:rgba(72,43,118,.88); box-shadow:0 8px 18px rgba(33,39,68,.28); cursor:pointer; font:700 .88rem/1 "Fredoka",sans-serif; }
@keyframes pool-help-bob { from{margin-top:-3px} 50%{margin-top:4px} to{margin-top:-3px} }
@keyframes pool-duck-paddle { from{transform:rotate(-3deg) translateY(-2px)} to{transform:rotate(3deg) translateY(3px)} }
.scene-backyard.is-time-machine-portal,.scene-time-machine { background-image:linear-gradient(180deg,rgba(15,13,54,.08),rgba(15,13,54,.22)),url('/src/assets/game/time-machine-portal-interior-v1.jpg') !important; background-position:center; background-size:cover; }
.scene-backyard.is-time-machine-portal::after,.scene-time-machine::after { background:radial-gradient(circle at 50% 48%,transparent 35%,rgba(28,12,54,.38) 100%); }
.scene-doghouse { background-size:100% 100%,220% auto!important; background-position:center,50% 53%!important; }
.scene-doghouse::after { background:linear-gradient(180deg,rgba(20,12,36,.02) 55%,rgba(20,12,36,.28)); }
.scene-player-doghouse { left:1.5%; bottom:1%; width:min(18vw,230px); height:min(40vh,370px); }
.doghouse-world .world-critter { z-index:8; }
.doghouse-mission { left:3%; top:4%; }
.doghouse-back { position:absolute; z-index:9; right:3%; bottom:4%; min-height:54px; display:flex; align-items:center; gap:9px; padding:9px 18px; border:4px solid #fff; border-radius:999px; color:#fff; background:rgba(74,44,117,.9); box-shadow:0 9px 22px rgba(41,24,66,.32); cursor:pointer; font:700 1rem "Fredoka",sans-serif; }
.doghouse-back>span { font-size:1.35rem; }
.doghouse-back:hover,.doghouse-back:focus-visible { outline:4px solid rgba(255,255,255,.55); transform:translateY(-3px); }
.dog-care-score { position:absolute; z-index:12; left:2.5%; top:3%; min-width:150px; display:grid; gap:1px; padding:10px 15px; border:3px solid #fff; border-radius:19px; color:#4d3467; background:rgba(255,252,239,.94); box-shadow:0 9px 22px rgba(52,33,73,.23); }
.dog-care-score span,.dog-care-score small { color:#765992; font-size:.65rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.dog-care-score strong { font:700 1.35rem/1 "Fredoka",sans-serif; }
.dog-name-house { position:absolute; z-index:11; left:30%; top:23%; width:25%; height:32%; display:grid; place-content:end center; padding:0 10px 18px; border:0; color:#fff; background:transparent; cursor:pointer; filter:drop-shadow(0 5px 6px rgba(48,28,47,.26)); }
.dog-name-house>span { position:absolute; inset:0; color:transparent; }
.dog-name-house strong,.dog-name-house small { width:max-content; max-width:230px; justify-self:center; padding:7px 13px; border:3px solid #fff; border-radius:999px; color:#fff; background:rgba(105,66,151,.92); font:700 clamp(.76rem,1.5vw,1rem)/1 "Fredoka",sans-serif; }
.dog-name-house small { margin-top:4px; padding:4px 9px; border-width:2px; background:rgba(63,44,83,.88); font-size:.58rem; }
.dog-name-house:hover strong,.dog-name-house:focus-visible strong { outline:4px solid #ffe481; outline-offset:3px; }
.dog-care-dog { position:absolute; z-index:10; left:43%; bottom:29%; width:clamp(88px,9vw,142px); display:grid; justify-items:center; pointer-events:auto; animation:dog-yard-wander 28s ease-in-out infinite alternate; animation-delay:var(--dog-wander-delay,0ms); filter:drop-shadow(0 8px 6px rgba(49,41,38,.28)); transform:translateX(-50%); }
.dog-care-dog>img { display:block; width:100%; height:auto; }
.dog-care-dog>strong { position:absolute; left:50%; bottom:calc(100% + 5px); width:max-content; max-width:180px; padding:6px 11px; border:2px solid #fff; border-radius:999px; color:#fff; background:rgba(91,57,132,.94); box-shadow:0 7px 16px rgba(49,32,66,.25); opacity:0; transform:translate(-50%,7px) scale(.92); transition:opacity .16s,transform .16s; font:700 .78rem/1 "Fredoka",sans-serif; pointer-events:none; }
.dog-care-dog:hover>strong,.dog-care-dog:focus-visible>strong { opacity:1; transform:translate(-50%,0) scale(1); }
.dog-care-dog:focus-visible { outline:4px solid #ffe481; outline-offset:4px; border-radius:42%; }
@keyframes dog-yard-wander { 0%{left:43%;bottom:29%;transform:translateX(-50%) translateY(0)} 24%{left:61%;bottom:30%;transform:translateX(-50%) translateY(-4px)} 48%{left:73%;bottom:27%;transform:translateX(-50%) translateY(2px)} 72%{left:66%;bottom:23%;transform:translateX(-50%) translateY(-2px)} 88%{left:50%;bottom:24%;transform:translateX(-50%) translateY(2px)} 100%{left:34%;bottom:24%;transform:translateX(-50%) translateY(0)} }
.dog-bowls { position:absolute; z-index:13; left:53%; bottom:30%; display:flex; align-items:flex-end; gap:12px; }
.dog-bowl { position:relative; width:78px; height:62px; padding:0; border:0; color:#4d3762; background:transparent; cursor:pointer; filter:drop-shadow(0 7px 6px rgba(49,36,58,.28)); }
.dog-bowl-dish { position:absolute; left:50%; bottom:0; font-size:3.65rem; line-height:1; transform:translateX(-50%); transition:transform .18s,filter .18s; }
.dog-bowl>i { position:absolute; z-index:1; left:50%; bottom:24px; font-size:1.35rem; line-height:1; transform:translateX(-50%); transition:opacity .18s,transform .18s; }
.dog-bowl.is-empty>i { opacity:.18; transform:translateX(-50%) scale(.7); }
.dog-bowl>strong { position:absolute; left:50%; bottom:calc(100% + 7px); min-width:max-content; padding:7px 11px; border:3px solid #fff; border-radius:999px; color:#fff; background:rgba(91,57,132,.94); box-shadow:0 7px 16px rgba(49,32,66,.28); opacity:0; transform:translate(-50%,8px) scale(.92); transition:opacity .16s,transform .16s; font:700 .78rem/1 "Fredoka",sans-serif; pointer-events:none; }
.dog-water-bowl>strong { background:rgba(39,132,187,.96); }
.dog-bowl:hover,.dog-bowl:focus-visible { outline:none; }
.dog-bowl:hover .dog-bowl-dish,.dog-bowl:focus-visible .dog-bowl-dish { filter:brightness(1.1) drop-shadow(0 0 7px #fff); transform:translateX(-50%) translateY(-3px) scale(1.08); }
.dog-bowl:hover>strong,.dog-bowl:focus-visible>strong { opacity:1; transform:translate(-50%,0) scale(1); }
.dog-poo { position:absolute; z-index:14; left:61%; bottom:17%; display:grid; justify-items:center; padding:4px 8px; border:0; color:#fff; background:transparent; cursor:pointer; animation:dog-poo-pulse .7s ease-in-out infinite alternate; }
.dog-poo>span { font-size:3.6rem; }.dog-poo strong,.dog-poo small{padding:4px 8px;border:2px solid #fff;border-radius:999px;background:#7c4c33;font:800 .65rem/1 "Fredoka",sans-serif}.dog-poo small{margin-top:3px;background:#e54c5f;font-size:.74rem}
@keyframes dog-poo-pulse { to{transform:scale(1.09) rotate(2deg)} }
.dog-leaf,.dog-pool-toy { position:absolute; z-index:13; border:0; background:transparent; cursor:pointer; filter:drop-shadow(0 5px 5px rgba(59,46,31,.3)); }
.dog-leaf>span{font-size:clamp(1.9rem,3.5vw,3.2rem)}.dog-pool-toy>span{font-size:clamp(2.4rem,5vw,4.3rem)}.dog-leaf:hover,.dog-leaf:focus-visible{outline:none;filter:brightness(1.12) drop-shadow(0 0 7px #fff);transform:translateY(-3px) scale(1.08)}.dog-pool-toy:hover,.dog-pool-toy:focus-visible{outline:4px solid #fff;border-radius:50%}
.dog-leaf:disabled{cursor:default}.dog-leaf-1{left:18%;bottom:15%}.dog-leaf-2{left:27%;bottom:21%}.dog-leaf-3{left:35%;bottom:25%}.dog-leaf-4{left:43%;bottom:26%}.dog-leaf-5{left:58%;bottom:27%}.dog-leaf-6{left:72%;bottom:26%}.dog-leaf-7{left:83%;bottom:17%}.dog-leaf-8{left:91%;bottom:23%}.dog-leaf-9{left:11%;bottom:25%}.dog-leaf-10{left:88%;bottom:12%}
.dog-leaf-mum{position:absolute;z-index:30;left:7%;bottom:3%;width:clamp(125px,15vw,210px);height:min(45vh,390px);pointer-events:none;animation:dog-leaf-mum-rush 8s ease-in-out forwards}.dog-leaf-mum img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;transform:scaleX(-1);filter:drop-shadow(0 10px 10px rgba(42,28,61,.32))}.dog-leaf-mum>span{position:absolute;right:-12%;bottom:2%;font-size:clamp(3.4rem,7vw,6rem);transform:rotate(-24deg);filter:drop-shadow(0 5px 4px rgba(58,39,26,.25))}.dog-leaf-mum strong{position:absolute;right:70%;top:3%;width:max-content;max-width:min(330px,42vw);padding:10px 14px;border:4px solid #fff;border-radius:19px;color:#4a3370;background:rgba(255,253,247,.97);box-shadow:0 10px 24px rgba(43,27,64,.28);font:700 clamp(.72rem,1.3vw,.95rem)/1.2 "Fredoka",sans-serif;text-align:center}
@keyframes dog-leaf-mum-rush{0%{left:-16%;transform:translateY(0)}18%{left:20%;transform:translateY(-4px)}38%{left:47%;transform:translateY(2px)}58%{left:73%;transform:translateY(-3px)}78%{left:39%;transform:translateY(2px)}100%{left:105%;transform:translateY(0)}}
.dog-pool-toy-1{left:46%;bottom:28%}.dog-pool-toy-2{left:54%;bottom:25%}.dog-pool-toy-3{left:62%;bottom:29%}
.dog-care-status { position:absolute; z-index:12; left:50%; top:4%; max-width:min(440px,48%); padding:9px 14px; border:3px solid #fff; border-radius:18px; color:#49345f; background:rgba(255,252,240,.94); box-shadow:0 8px 20px rgba(46,29,61,.2); font:700 clamp(.7rem,1.3vw,.9rem)/1.25 "Fredoka",sans-serif; transform:translateX(-50%); text-align:center; }
.dog-name-backdrop { position:absolute; z-index:40; inset:0; display:grid; place-items:center; padding:16px; background:rgba(43,25,57,.46); backdrop-filter:blur(5px); }
.dog-name-card { width:min(410px,100%); display:grid; justify-items:center; gap:10px; padding:25px 23px; border:5px solid #fff; border-radius:29px; color:#493260; background:#fffaf0; box-shadow:0 22px 55px rgba(35,22,46,.38); text-align:center; }
.dog-name-card>span{font-size:2.6rem}.dog-name-card>strong{font:700 1.8rem/1 "Fredoka",sans-serif}.dog-name-card p{margin:0;color:#705f7c;font-weight:700}.dog-name-card input{width:100%;min-height:50px;padding:9px 14px;border:3px solid #a989d6;border-radius:15px;color:#493260;background:#fff;font:700 1.15rem "Fredoka",sans-serif;text-align:center}.dog-name-card>div{display:flex;gap:8px}.dog-name-card button{min-height:44px;padding:8px 15px;border:0;border-radius:14px;color:#fff;background:#7042c2;cursor:pointer;font:700 .82rem "Fredoka",sans-serif}.dog-name-card button:last-child{color:#674d7c;background:#eee5f6}
@media(max-width:760px){.dog-care-score{left:2%;top:2%;min-width:112px;padding:7px 9px}.dog-care-score strong{font-size:1rem}.dog-care-status{top:2%;left:62%;max-width:68%;font-size:.6rem}.dog-name-house{left:24%;top:21%;width:39%;height:35%}.dog-name-house strong{font-size:.7rem}.dog-name-house small{font-size:.5rem}.dog-care-dog{width:clamp(72px,12vw,104px)}.dog-care-dog>strong{font-size:.65rem}.dog-bowls{left:48%;bottom:23%;gap:3px}.dog-bowl{width:58px;height:49px}.dog-bowl-dish{font-size:2.7rem}.dog-bowl>i{bottom:18px;font-size:1rem}.dog-bowl>strong{bottom:calc(100% + 3px);padding:5px 7px;border-width:2px;font-size:.62rem}.doghouse-back{bottom:auto;top:12%;right:1%;z-index:15}.dog-poo{left:60%;bottom:19%}.dog-poo>span{font-size:2.7rem}.dog-pool-toy-1{left:40%}.dog-pool-toy-2{left:52%}.dog-pool-toy-3{left:64%}.dog-leaf-mum{width:clamp(95px,20vw,140px);height:min(36vh,260px)}.dog-leaf-mum strong{right:58%;max-width:48vw;padding:7px 9px;border-width:3px;font-size:.62rem}}
@media(prefers-reduced-motion:reduce){.dog-care-dog,.dog-poo,.dog-leaf-mum{animation:none}.dog-leaf-mum{left:44%}}
.time-machine-world { z-index:7; color:#34244f; }
.time-machine-entry-card,.time-machine-result-card { position:absolute; z-index:12; left:50%; top:50%; width:min(520px,calc(100% - 32px)); display:grid; justify-items:center; gap:10px; padding:clamp(22px,4vw,38px); border:5px solid #fff; border-radius:34px; background:rgba(255,252,244,.94); box-shadow:0 24px 60px rgba(32,16,64,.42),0 0 42px rgba(98,224,255,.62); text-align:center; transform:translate(-50%,-50%); backdrop-filter:blur(10px); }
.time-machine-entry-card>span,.time-machine-result-card>span { color:#7546d8; font-size:2rem; letter-spacing:.15em; }
.time-machine-entry-card>strong,.time-machine-result-card>strong { font:700 clamp(1.8rem,4vw,2.65rem)/1 "Fredoka",sans-serif; }
.time-machine-entry-card p,.time-machine-result-card p { max-width:34ch; margin:0; font-weight:650; }
.time-machine-entry-card small,.time-machine-result-card small { color:#71617f; font-weight:700; }
.time-machine-entry-card button,.time-machine-result-card button { min-height:52px; padding:10px 22px; border:4px solid #fff; border-radius:999px; color:#fff; background:linear-gradient(135deg,#7648d9,#e64f96); box-shadow:0 8px 20px rgba(67,34,100,.3); cursor:pointer; font:800 1rem "Fredoka",sans-serif; }
.time-machine-entry-card button:disabled { opacity:.62; cursor:not-allowed; filter:grayscale(.2); }
.time-machine-entry-card .time-machine-back,.time-machine-result-card .time-machine-back { min-height:40px; padding:6px 15px; border:0; color:#6842bd; background:transparent; box-shadow:none; }
.time-machine-game-header { position:absolute; z-index:15; left:2%; top:2%; width:min(680px,75%); display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 17px; border:4px solid #fff; border-radius:24px; background:rgba(255,253,247,.94); box-shadow:0 12px 30px rgba(45,20,81,.3); backdrop-filter:blur(8px); }
.time-machine-game-header>div:first-child { display:grid; gap:1px; }
.time-machine-game-header span { color:#7042ce; font-size:.78rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.time-machine-game-header strong { font:700 clamp(1.2rem,2.8vw,2rem)/1.05 "Fredoka",sans-serif; }
.time-machine-game-header strong i { color:#e64f96; font-style:normal; }
.time-machine-game-header small { color:#6b5d7a; font-weight:700; }
.time-machine-game-header>div:last-child { min-width:78px; display:grid; place-items:center; padding:8px; border-radius:18px; color:#fff; background:linear-gradient(145deg,#8255df,#e4529a); }
.time-machine-game-header>div:last-child b { font:800 1.65rem "Fredoka",sans-serif; }
.time-machine-game-header>div:last-child small { color:#fff; font-size:.7rem; text-transform:uppercase; }
.time-machine-arena { position:absolute; z-index:9; inset:0; overflow:hidden; }
.time-figure { position:absolute; left:var(--time-x); top:var(--time-y); width:clamp(60px,7.5vw,96px); aspect-ratio:1; display:grid; place-items:center; padding:0; border:4px solid rgba(255,255,255,.94); border-radius:50%; background:radial-gradient(circle at 34% 28%,#fff 0 8%,rgba(255,246,200,.94) 11%,rgba(120,226,255,.78) 74%,rgba(88,68,190,.84)); box-shadow:0 0 22px rgba(92,229,255,.9),0 9px 22px rgba(32,19,63,.32); cursor:pointer; transform:translate(-50%,-50%); animation:time-figure-float var(--time-duration) ease-in-out var(--time-delay) infinite alternate,time-figure-pop var(--time-pop-duration) ease-in-out var(--time-pop-delay) infinite; }
.time-figure span { font-size:clamp(2rem,4.5vw,3.8rem); filter:drop-shadow(0 4px 5px rgba(40,23,60,.3)); }
.time-figure.has-character-art { width:clamp(72px,8vw,104px); border-radius:50%; overflow:hidden; }
.time-figure.has-character-art img { position:absolute; inset:7%; display:block; width:86%; height:86%; object-fit:contain; object-position:center bottom; filter:drop-shadow(0 5px 6px rgba(40,23,60,.35)); pointer-events:none; }
.time-figure:hover,.time-figure:focus-visible { z-index:11; outline:none; filter:brightness(1.18); box-shadow:0 0 35px #fff,0 0 52px rgba(79,229,255,.95); }
.time-machine-feedback { position:absolute; z-index:15; left:50%; bottom:4%; min-width:min(360px,70%); padding:10px 20px; border:4px solid #fff; border-radius:999px; color:#fff; background:rgba(69,40,120,.88); box-shadow:0 10px 24px rgba(34,17,65,.34); text-align:center; transform:translateX(-50%); font:800 1rem "Fredoka",sans-serif; }
.time-machine-exit { position:absolute; z-index:16; right:2%; top:3%; min-height:46px; padding:8px 16px; border:4px solid #fff; border-radius:999px; color:#fff; background:#6941bd; box-shadow:0 8px 18px rgba(37,20,67,.3); cursor:pointer; font:800 .88rem "Fredoka",sans-serif; }
@keyframes time-figure-float { from{transform:translate(-50%,-50%) translate(-24px,22px) rotate(-7deg)} to{transform:translate(-50%,-50%) translate(28px,-25px) rotate(8deg)} }
@keyframes time-figure-pop { 0%,9%,86%,100%{opacity:0;visibility:hidden} 15%,75%{opacity:1;visibility:visible} }
.world-bubble { width:clamp(70px,8vw,105px); aspect-ratio:1; cursor:pointer; }.world-bubble.is-popped { opacity:0; transform:translate(-50%,-50%) scale(1.7); pointer-events:none; }
.playroom-table-hotspot { position:absolute; z-index:7; left:34%; top:33%; width:24%; height:33%; padding:0; border:0; color:#fff; background:transparent; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.playroom-table-hotspot::before,.playroom-ballpit-hotspot::before,.playroom-castle-hotspot::before,.playroom-slide-hotspot::before { content:""; position:absolute; inset:0; z-index:0; background:rgba(255,251,216,.08); opacity:0; pointer-events:none; backdrop-filter:brightness(1.22) saturate(1.12); -webkit-backdrop-filter:brightness(1.22) saturate(1.12); filter:drop-shadow(0 0 8px rgba(255,255,255,.8)); transition:opacity .18s ease,transform .18s ease; }
.playroom-table-hotspot::before { clip-path:polygon(7% 35%,15% 27%,85% 27%,93% 35%,88% 48%,76% 53%,80% 96%,67% 100%,59% 55%,41% 55%,33% 100%,20% 96%,24% 53%,12% 48%); }
.playroom-table-hotspot i { display:none; }
.playroom-table-hotspot>span { position:absolute; z-index:1; left:50%; top:0; width:max-content; padding:10px 18px; border:3px solid #fff; border-radius:999px; color:#3f2d65; background:#fffdf7; box-shadow:0 10px 24px rgba(54,28,79,.28); transform:translateX(-50%); font:700 clamp(1rem,2.1vw,1.45rem)/1 "Fredoka",sans-serif; animation:colouring-sign-flash 1.15s ease-in-out infinite alternate; }
.playroom-table-hotspot>span small,.playroom-ballpit-hotspot>span small,.playroom-castle-hotspot>span small,.playroom-slide-hotspot>span small { display:block; margin-top:5px; font-size:.55em; line-height:1; white-space:nowrap; opacity:.82; }
.playroom-table-hotspot:hover,.playroom-table-hotspot:focus-visible,.playroom-ballpit-hotspot:hover,.playroom-ballpit-hotspot:focus-visible,.playroom-castle-hotspot:hover,.playroom-castle-hotspot:focus-visible,.playroom-slide-hotspot:hover,.playroom-slide-hotspot:focus-visible { outline:none; background:transparent; }
.playroom-table-hotspot:hover::before,.playroom-table-hotspot:focus-visible::before,.playroom-ballpit-hotspot:hover::before,.playroom-ballpit-hotspot:focus-visible::before,.playroom-castle-hotspot:hover::before,.playroom-castle-hotspot:focus-visible::before,.playroom-slide-hotspot:hover::before,.playroom-slide-hotspot:focus-visible::before { opacity:1; transform:scale(1.025); }
.playroom-ballpit-hotspot { position:absolute; z-index:7; right:7%; bottom:4%; width:30%; height:37%; padding:0; border:0; color:#fff; background:transparent; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.playroom-ballpit-hotspot::before { inset:2% 0 0; border-radius:50% 50% 18% 18% / 34% 34% 14% 14%; background:rgba(255,251,216,.16); filter:drop-shadow(0 0 3px #fff) drop-shadow(0 0 10px rgba(255,255,255,.95)); }
.playroom-ballpit-hotspot>span { position:absolute; z-index:1; left:50%; top:8%; width:max-content; padding:10px 18px; border:3px solid #fff; border-radius:999px; color:#3f2d65; background:#fffdf7; box-shadow:0 10px 24px rgba(54,28,79,.28); transform:translateX(-50%); font:700 clamp(1rem,2.1vw,1.45rem)/1 "Fredoka",sans-serif; animation:colouring-sign-flash 1.15s ease-in-out infinite alternate; }
.playroom-castle-hotspot { position:absolute; z-index:8; right:2%; top:6%; width:36%; height:53%; padding:0; border:0; color:#fff; background:transparent; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.playroom-castle-hotspot::before { clip-path:polygon(13% 24%,17% 24%,17% 14%,25% 0,34% 14%,34% 21%,69% 21%,69% 13%,78% 0,88% 13%,88% 21%,96% 21%,96% 88%,89% 88%,89% 100%,70% 100%,70% 88%,34% 88%,34% 100%,17% 100%,17% 88%,13% 88%); }
.playroom-castle-hotspot>span { position:absolute; z-index:1; left:65%; top:4%; width:max-content; padding:10px 18px; border:3px solid #fff; border-radius:999px; color:#3f2d65; background:#fffdf7; box-shadow:0 10px 24px rgba(54,28,79,.28); transform:translateX(-50%); font:700 clamp(1rem,2.1vw,1.45rem)/1 "Fredoka",sans-serif; animation:colouring-sign-flash 1.15s ease-in-out infinite alternate; }
.playroom-slide-hotspot { position:absolute; z-index:8; left:0; top:23%; width:34%; height:67%; padding:0; border:0; color:#fff; background:transparent; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.playroom-slide-hotspot::before { clip-path:polygon(0 23%,13% 11%,54% 11%,64% 18%,70% 50%,98% 88%,77% 100%,48% 75%,26% 83%,0 77%); }
.playroom-slide-hotspot>span { position:absolute; z-index:1; left:56%; top:1%; width:max-content; padding:10px 18px; border:3px solid #fff; border-radius:999px; color:#3f2d65; background:#fffdf7; box-shadow:0 10px 24px rgba(54,28,79,.28); transform:translateX(-50%); font:700 clamp(1rem,2.1vw,1.45rem)/1 "Fredoka",sans-serif; animation:colouring-sign-flash 1.15s ease-in-out infinite alternate; }
.playroom-start-backdrop { position:fixed; z-index:90; inset:0; display:grid; place-items:center; padding:24px; background:rgba(44,28,70,.58); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.playroom-start-card { width:min(430px,100%); padding:30px; border:5px solid #fff; border-radius:32px; color:#3f2d65; background:linear-gradient(155deg,#fffdf7,#fff0fa); box-shadow:0 28px 70px rgba(35,18,58,.44); text-align:center; }
.playroom-start-icon { display:block; margin-bottom:8px; font-size:3.2rem; line-height:1; filter:drop-shadow(0 7px 7px rgba(65,38,88,.2)); }
.playroom-start-card h2 { margin:6px 0 10px; font:800 clamp(1.8rem,5vw,2.45rem)/1 "Fredoka",sans-serif; }
.playroom-start-card p { margin:0 auto 22px; max-width:34ch; font-size:1rem; line-height:1.5; }
.playroom-start-card p strong { color:#7145d7; font-size:1.18em; }
.playroom-start-actions { display:grid; gap:10px; }
.playroom-start-actions button { min-height:54px; border:0; border-radius:18px; color:#fff; background:linear-gradient(135deg,#7848dc,#e94f91); box-shadow:0 9px 20px rgba(90,48,145,.27); cursor:pointer; font:800 1rem "Fredoka",sans-serif; }
.playroom-start-actions button:hover,.playroom-start-actions button:focus-visible { transform:translateY(-2px); outline:4px solid rgba(120,72,220,.25); outline-offset:3px; }
.playroom-start-actions .playroom-start-cancel { color:#57446d; background:#eee7f8; box-shadow:none; }
.castle-game-world { background:url('/src/assets/game/jumping-castle-interior-v1.jpg') center/cover no-repeat; }
.castle-game { position:absolute; z-index:12; inset:0; overflow:hidden; color:#352550; }
.castle-game::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(255,255,255,.05),transparent 58%,rgba(97,52,117,.12)); pointer-events:none; }
.castle-game-header { position:absolute; z-index:20; left:2%; top:2%; width:min(660px,76%); display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 16px; border:4px solid #fff; border-radius:24px; background:rgba(255,253,248,.96); box-shadow:0 12px 30px rgba(53,31,74,.25); }
.castle-game-header>div:first-child { display:grid; gap:2px; }.castle-game-header>div:first-child span { color:var(--game-purple); font-size:.75rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }.castle-game-header>div:first-child strong { font:700 clamp(1.05rem,2.4vw,1.6rem)/1 "Fredoka",sans-serif; }.castle-game-score { display:flex; gap:8px; }.castle-game-score span { display:grid; justify-items:center; min-width:78px; padding:7px 10px; border:2px solid #dfd2f1; border-radius:16px; color:#5b4770; background:#fff; font:.74rem/1.1 "Atkinson Hyperlegible",sans-serif; }.castle-game-score b { margin-top:2px; color:var(--game-purple); font:700 1.2rem/1 "Fredoka",sans-serif; }
.castle-arena { position:absolute; z-index:14; inset:42% 4% 4%; overflow:hidden; border-radius:24% 24% 12% 12% / 18% 18% 10% 10%; cursor:crosshair; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
.castle-arena:focus-visible { outline:5px solid rgba(255,255,255,.92); outline-offset:-7px; }
.castle-finish-line { position:absolute; z-index:2; left:12%; right:12%; top:4%; display:flex; align-items:center; justify-content:center; gap:10px; padding:5px 12px; border:3px dashed #fff; border-radius:999px; color:#fff; background:rgba(91,62,161,.72); box-shadow:0 5px 16px rgba(54,32,81,.22); font:700 clamp(.72rem,1.7vw,1rem)/1 "Fredoka",sans-serif; pointer-events:none; }
.castle-character { position:absolute; z-index:4; left:var(--castle-x,50%); top:var(--castle-y,70%); width:clamp(68px,8vw,112px); aspect-ratio:.66; padding:0; border:0; background:transparent; transform:translate(-50%,-100%); transition:left .55s cubic-bezier(.22,.7,.28,1),top .55s cubic-bezier(.22,.7,.28,1); filter:drop-shadow(0 11px 7px rgba(55,33,73,.26)); }
.castle-character img { width:100%; height:100%; object-fit:contain; object-position:center bottom; pointer-events:none; user-select:none; }
.castle-character.is-player { z-index:8; pointer-events:none; }.castle-character.is-player strong { position:absolute; left:50%; bottom:-10px; padding:4px 10px; border:2px solid #fff; border-radius:999px; color:#fff; background:var(--game-purple); box-shadow:0 4px 10px rgba(55,31,74,.28); transform:translateX(-50%); white-space:nowrap; font:700 .72rem/1 "Fredoka",sans-serif; }
.castle-character.is-jumping img { animation:castle-kid-jump .58s cubic-bezier(.2,.75,.3,1); }.castle-character.is-opponent:nth-of-type(even) img { animation-delay:-.08s; }.castle-character.is-bumped { animation:castle-bump .42s ease; }
.castle-bump-callout { position:absolute; z-index:16; left:50%; top:14%; max-width:70%; padding:9px 16px; border:3px solid #fff; border-radius:999px; color:#fff; text-align:center; background:rgba(93,61,166,.9); transform:translateX(-50%); font:700 clamp(.82rem,1.8vw,1.08rem)/1 "Fredoka",sans-serif; pointer-events:none; }.castle-bump-callout.is-showing { animation:castle-callout 1s ease both; }
.castle-game-back { position:absolute; z-index:21; left:2%; bottom:2%; min-height:44px; padding:8px 16px; border:3px solid #fff; border-radius:999px; color:#fff; background:rgba(83,55,142,.92); box-shadow:0 8px 18px rgba(48,29,70,.25); cursor:pointer; font:700 .95rem "Fredoka",sans-serif; }
.castle-result-card { position:absolute; z-index:22; left:50%; top:50%; width:min(440px,calc(100% - 32px)); display:grid; justify-items:center; gap:12px; padding:34px 26px; border:5px solid #fff; border-radius:34px; color:#352550; text-align:center; background:linear-gradient(145deg,#fffdf4,#f4eaff); box-shadow:0 24px 60px rgba(40,23,61,.42); transform:translate(-50%,-50%); }.castle-result-card>span { color:#eaa51a; font-size:2rem; letter-spacing:.28em; }.castle-result-card>strong { font:700 clamp(1.7rem,4.2vw,2.5rem)/1 "Fredoka",sans-serif; }.castle-result-card p { margin:0; font-size:1.08rem; }.castle-result-card p b { color:var(--game-purple); font-size:1.45rem; }.castle-result-card>small { font-weight:700; }.castle-result-prize { display:flex; align-items:center; gap:10px; padding:11px 20px; border-radius:999px; color:#fff; background:var(--game-purple); }.castle-result-prize span { font:700 1rem "Fredoka",sans-serif; }.castle-result-card button { min-height:44px; padding:8px 20px; border:3px solid #fff; border-radius:999px; color:#fff; background:#e75598; box-shadow:0 6px 14px rgba(86,39,93,.2); cursor:pointer; font:700 .98rem "Fredoka",sans-serif; }.castle-result-card .castle-result-back { color:#5e3e9e; background:#fff; border-color:#d8c9ef; }
.slide-game-world { background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(76,45,111,.12)),url('/src/assets/game/playroom-slide-game-landscape-v1.jpg') center/cover no-repeat!important; }
.slide-game { position:absolute; z-index:12; inset:0; overflow:hidden; color:#352550; }
.slide-game-header { position:absolute; z-index:20; right:2%; top:2%; display:grid; gap:2px; width:min(470px,42%); padding:11px 16px; border:4px solid #fff; border-radius:22px; background:rgba(255,253,248,.96); box-shadow:0 12px 30px rgba(53,31,74,.25); }
.slide-game-header span { color:var(--game-purple); font-size:.72rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }.slide-game-header strong { font:700 clamp(1.15rem,2.5vw,1.7rem)/1 "Fredoka",sans-serif; }.slide-game-header small { color:#6d607b; font-weight:750; }
.slide-playfield { position:absolute; inset:0; overflow:hidden; touch-action:manipulation; }
.slide-player,.slide-friend { position:absolute; z-index:10; width:clamp(64px,8vw,108px); height:clamp(108px,20vh,176px); display:grid; justify-items:center; padding:0; border:0; color:#352550; background:transparent; filter:drop-shadow(0 10px 8px rgba(57,34,74,.28)); }
.slide-player { --slide-start-x:35%; --slide-start-y:13%; --slide-end-x:62%; --slide-end-y:63%; left:var(--slide-start-x); top:var(--slide-start-y); cursor:pointer; transform:translateX(-50%); -webkit-tap-highlight-color:transparent; }
.slide-player::before { content:""; position:absolute; inset:10% 5% 3%; z-index:-1; border:4px solid rgba(255,255,255,.9); border-radius:46%; opacity:.72; box-shadow:0 0 18px rgba(255,255,255,.86); animation:slide-player-ready-glow 1s ease-in-out infinite alternate; }
.slide-player.is-ready { animation:slide-player-ready 1.05s ease-in-out infinite alternate; }
.slide-player.is-ready:hover,.slide-player.is-ready:focus-visible { outline:none; filter:brightness(1.12) drop-shadow(0 0 14px #fff) drop-shadow(0 10px 8px rgba(57,34,74,.28)); }
.slide-player.is-sliding { pointer-events:none; animation:slide-player-run 2.65s cubic-bezier(.28,.04,.36,1) forwards; }
.slide-player.is-sliding::before { display:none; }
.slide-player img,.slide-friend img { width:100%; height:100%; object-fit:contain; object-position:center bottom; pointer-events:none; user-select:none; }
.slide-player strong,.slide-friend strong { position:absolute; left:50%; bottom:0; padding:3px 8px; border:2px solid #fff; border-radius:999px; color:#fff; background:var(--game-purple); box-shadow:0 4px 10px rgba(57,34,74,.25); transform:translateX(-50%); white-space:nowrap; font:700 .66rem/1 "Fredoka",sans-serif; }
.slide-player small { position:absolute; left:50%; top:-3px; min-width:max-content; padding:5px 10px; border:3px solid #fff; border-radius:999px; color:#fff; background:#e65396; box-shadow:0 6px 14px rgba(62,37,79,.25); transform:translate(-50%,-100%); font:700 .72rem/1 "Fredoka",sans-serif; }
.slide-player.is-sliding small { display:none; }
.slide-friend { z-index:9; bottom:2%; left:var(--friend-start); animation:slide-friend-roam var(--friend-duration) ease-in-out var(--friend-delay) infinite alternate; }
.slide-friend-1 { --friend-start:53%; --friend-end:88%; --friend-duration:2.7s; --friend-delay:-.8s; }
.slide-friend-2 { --friend-start:91%; --friend-end:58%; --friend-duration:3.15s; --friend-delay:-1.9s; }
.slide-friend-3 { --friend-start:65%; --friend-end:94%; --friend-duration:2.35s; --friend-delay:-1.25s; }
.slide-jump-hint { position:absolute; z-index:18; right:3%; bottom:24%; max-width:310px; padding:9px 16px; border:3px solid #fff; border-radius:999px; color:#fff; background:rgba(104,65,190,.88); box-shadow:0 8px 18px rgba(48,29,70,.25); font:700 clamp(.78rem,1.6vw,1rem)/1.08 "Fredoka",sans-serif; text-align:center; pointer-events:none; }
.slide-game-back { position:absolute; z-index:23; left:2%; bottom:2%; min-height:44px; padding:8px 16px; border:3px solid #fff; border-radius:999px; color:#fff; background:rgba(83,55,142,.92); cursor:pointer; font:700 .9rem "Fredoka",sans-serif; }
.slide-result-card { position:absolute; z-index:22; left:50%; top:50%; width:min(430px,calc(100% - 32px)); display:grid; justify-items:center; gap:12px; padding:34px 26px; border:5px solid #fff; border-radius:34px; color:#352550; text-align:center; background:linear-gradient(145deg,#fffdf4,#edfaff); box-shadow:0 24px 60px rgba(40,23,61,.42); transform:translate(-50%,-50%); }.slide-result-card>span { font-size:2.2rem; }.slide-result-card>strong { font:700 clamp(1.7rem,4vw,2.4rem)/1 "Fredoka",sans-serif; }.slide-result-card p { margin:0; font-size:1.08rem; }.slide-result-card p b { color:var(--game-purple); }.slide-result-card button { min-height:44px; padding:8px 20px; border:3px solid #fff; border-radius:999px; color:#fff; background:#e75598; cursor:pointer; font:700 .98rem "Fredoka",sans-serif; }.slide-result-card .slide-result-back { color:#5e3e9e; background:#fff; border-color:#d8c9ef; }
@keyframes slide-player-ready { from{transform:translateX(-50%) translateY(2px) rotate(-2deg)} to{transform:translateX(-50%) translateY(-5px) rotate(2deg)} }
@keyframes slide-player-ready-glow { from{opacity:.45;transform:scale(.94)} to{opacity:.9;transform:scale(1.05)} }
@keyframes slide-player-run { 0%{left:var(--slide-start-x);top:var(--slide-start-y);transform:translateX(-50%) rotate(-3deg)} 17%{left:var(--slide-start-x);top:calc(var(--slide-start-y) - 7%);transform:translateX(-50%) rotate(7deg) scale(1.04)} 31%{left:var(--slide-start-x);top:var(--slide-start-y);transform:translateX(-50%) rotate(-4deg)} 72%{left:52%;top:43%;transform:translateX(-50%) rotate(5deg)} 100%{left:var(--slide-end-x);top:var(--slide-end-y);transform:translateX(-50%) rotate(0)} }
@keyframes slide-friend-roam { from{left:var(--friend-start);transform:translateX(-50%) rotate(-3deg)} to{left:var(--friend-end);transform:translateX(-50%) rotate(3deg)} }
.ball-game { position:absolute; z-index:12; inset:0; overflow:hidden; color:#352550; }
.ball-game-header { position:absolute; z-index:7; left:2%; top:2%; width:min(620px,74%); display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 16px; border:4px solid #fff; border-radius:24px; background:rgba(255,253,248,.95); box-shadow:0 12px 30px rgba(53,31,74,.25); }
.ball-game-header>div:first-child { display:grid; gap:2px; }.ball-game-header>div:first-child span { color:var(--game-purple); font-size:.75rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }.ball-game-header>div:first-child strong { font:700 clamp(1.15rem,2.5vw,1.65rem)/1 "Fredoka",sans-serif; }.ball-game-score { display:flex; gap:8px; }.ball-game-score span { display:grid; justify-items:center; min-width:84px; padding:7px 10px; border:2px solid #dfd2f1; border-radius:16px; color:#5b4770; background:#fff; font:.74rem/1.1 "Atkinson Hyperlegible",sans-serif; }.ball-game-score b { margin-top:2px; color:var(--game-purple); font:700 1.3rem/1 "Fredoka",sans-serif; }
.ball-arena { position:absolute; inset:0; overflow:hidden; touch-action:manipulation; }
.flying-ball { position:absolute; z-index:5; left:var(--ball-start-x); top:73%; width:clamp(48px,6.2vw,76px); aspect-ratio:1; padding:0; border:4px solid rgba(255,255,255,.92); border-radius:50%; background:radial-gradient(circle at 32% 27%,#fff 0 5%,rgba(255,255,255,.45) 6% 12%,var(--ball-colour) 35% 100%); box-shadow:inset -9px -11px 14px rgba(58,37,74,.14),0 12px 22px rgba(44,29,62,.28); cursor:pointer; transform:translate(-50%,-50%); animation:ball-flight var(--ball-duration) linear forwards; -webkit-tap-highlight-color:transparent; }
.flying-ball:hover,.flying-ball:focus-visible { outline:none; box-shadow:0 0 0 5px rgba(255,255,255,.85),0 12px 25px rgba(44,29,62,.3); }
.flying-ball.is-caught { pointer-events:none; animation:ball-caught .18s ease-out forwards; }
.ball-count-callout { position:absolute; z-index:4; left:50%; top:18%; min-width:90px; padding:8px 18px; border:4px solid #fff; border-radius:999px; color:#fff; text-align:center; background:rgba(100,65,193,.86); opacity:.18; transform:translateX(-50%) scale(.8); font:700 clamp(2rem,6vw,4.6rem)/1 "Fredoka",sans-serif; pointer-events:none; }.ball-count-callout.is-counting { animation:ball-count-pop .5s ease-out; }
.ball-loss-callout { position:absolute; z-index:6; left:50%; top:12%; padding:8px 14px; border:3px solid #fff; border-radius:999px; color:#fff; background:rgba(218,64,107,.9); opacity:0; transform:translateX(-50%) translateY(-6px); font:700 1rem/1 "Fredoka",sans-serif; pointer-events:none; }.ball-loss-callout.is-showing { animation:ball-loss-pop 1.2s ease both; }
.ball-game-back { position:absolute; z-index:8; left:2%; bottom:2%; min-height:44px; padding:8px 16px; border:3px solid #fff; border-radius:999px; color:#fff; background:rgba(83,55,142,.9); box-shadow:0 8px 18px rgba(48,29,70,.25); cursor:pointer; font:700 .95rem "Fredoka",sans-serif; }
.ball-result-card { position:absolute; z-index:13; left:50%; top:50%; width:min(430px,calc(100% - 32px)); display:grid; justify-items:center; gap:12px; padding:34px 26px; border:5px solid #fff; border-radius:34px; color:#352550; text-align:center; background:linear-gradient(145deg,#fffdf4,#eef8ff); box-shadow:0 24px 60px rgba(40,23,61,.42); transform:translate(-50%,-50%); }.ball-result-card>span { color:#eaa51a; font-size:2rem; letter-spacing:.28em; }.ball-result-card>strong { font:700 clamp(1.7rem,4.2vw,2.5rem)/1 "Fredoka",sans-serif; }.ball-result-card p { margin:0; font-size:1.15rem; }.ball-result-card p b { color:var(--game-purple); font-size:1.6rem; }.ball-result-prize { display:flex; align-items:center; gap:10px; padding:11px 20px; border-radius:999px; color:#fff; background:var(--game-purple); }.ball-result-prize span { font-size:1.6rem; }.ball-result-prize b { font:700 1.1rem "Fredoka",sans-serif; }.ball-result-card button { min-height:44px; padding:8px 20px; border:3px solid #fff; border-radius:999px; color:#fff; background:#e75598; box-shadow:0 6px 14px rgba(86,39,93,.2); cursor:pointer; font:700 .98rem "Fredoka",sans-serif; }.ball-result-card .ball-result-back { color:#5e3e9e; background:#fff; border-color:#d8c9ef; }
.colouring-game { position:absolute; z-index:12; inset:16px max(18px,5%); max-width:860px; margin:auto; display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:10px; padding:14px; border:4px solid #fff; border-radius:28px; color:#30234c; background:linear-gradient(145deg,rgba(255,254,249,.98),rgba(245,239,255,.98)); box-shadow:0 22px 60px rgba(43,25,65,.38); }
.colouring-game-header { display:flex; align-items:center; justify-content:space-between; gap:14px; }.colouring-game-header>div:first-child { display:grid; gap:1px; }.colouring-game-header span { color:var(--game-purple); font-size:.72rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }.colouring-game-header strong { font:700 clamp(1rem,2.3vw,1.4rem)/1.08 "Fredoka",sans-serif; }
.colouring-game-header>small { padding:7px 12px; border:3px solid #dfd1ff; border-radius:999px; color:var(--game-purple); background:#fff; font:700 .88rem/1 "Fredoka",sans-serif; }
.colouring-board { position:relative; z-index:1; justify-self:center; min-height:0; height:100%; max-width:100%; aspect-ratio:700/643; overflow:hidden; border:3px solid #d9cee8; border-radius:18px; background:#fff; box-shadow:0 10px 26px rgba(60,39,86,.16); }.colouring-board img,.colouring-board canvas { position:absolute; inset:0; width:100%; height:100%; }.colouring-board img { object-fit:contain; user-select:none; }.colouring-board canvas { z-index:2; cursor:crosshair; touch-action:none; mix-blend-mode:multiply; }.colouring-board canvas.is-auto-paint { cursor:cell; }
.colouring-tools { position:relative; z-index:4; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 10px 18px; border:2px solid #e2d8ef; border-radius:18px; background:rgba(255,255,255,.96); box-shadow:0 7px 20px rgba(60,39,86,.16); }.colouring-palette { display:grid; grid-template-columns:repeat(9,34px); align-items:start; gap:16px 6px; }.colouring-swatch { position:relative; width:34px; height:34px; padding:0; border:4px solid #fff; border-radius:50%; background:var(--swatch); box-shadow:0 0 0 2px #d6c9e5,0 5px 10px rgba(44,28,67,.18); cursor:pointer; transition:transform .15s,box-shadow .15s; }.colouring-swatch span { position:absolute; left:50%; top:calc(100% + 5px); color:#493565; font:700 .54rem/1 "Fredoka",sans-serif; transform:translateX(-50%); }.colouring-swatch:hover,.colouring-swatch:focus-visible,.colouring-swatch.is-selected { outline:none; transform:translateY(-3px) scale(1.1); box-shadow:0 0 0 3px var(--game-purple),0 8px 16px rgba(44,28,67,.25); }.colouring-actions { display:flex; align-items:center; gap:8px; }.colouring-auto { min-height:48px; display:grid; grid-template-columns:auto auto; grid-template-rows:auto auto; align-items:center; gap:0 6px; padding:5px 10px; border:3px solid #d7c9ed; border-radius:16px; color:#57446d; background:#f3eef9; box-shadow:0 5px 12px rgba(61,39,84,.14); cursor:pointer; font-family:"Fredoka",sans-serif; }.colouring-auto>span { grid-row:1/3; font-size:1.45rem; }.colouring-auto strong { font-size:.78rem; line-height:1; white-space:nowrap; }.colouring-auto small { color:#78678c; font-size:.7rem; font-weight:700; }.colouring-auto.is-active { color:#fff; border-color:#fff; background:linear-gradient(180deg,#9a6be8,#7047c5); box-shadow:0 0 0 3px #8a63d2,0 7px 16px rgba(83,51,139,.28); }.colouring-auto.is-active small { color:#fff; }.colouring-auto:focus-visible,.colouring-done:focus-visible { outline:4px solid rgba(120,72,220,.28); outline-offset:2px; }.colouring-done { min-height:44px; padding:8px 18px; border:3px solid #fff; border-radius:999px; color:#fff; background:linear-gradient(180deg,#62cc91,#39ae73); box-shadow:0 7px 16px rgba(36,116,75,.25); cursor:pointer; font:700 1rem "Fredoka",sans-serif; }
.colouring-exit-door { z-index:15; right:1%; bottom:1%; width:150px; transform:scale(.58); transform-origin:bottom right; }.colouring-exit-door>strong { min-width:max-content; }.colouring-exit-door>small { min-width:max-content; }
.colouring-result-card { position:absolute; z-index:12; left:50%; top:50%; width:min(390px,calc(100% - 32px)); display:grid; justify-items:center; gap:10px; padding:30px 24px; border:5px solid #fff; border-radius:32px; color:#352550; text-align:center; background:linear-gradient(145deg,#fffdf4,#f0e9ff); box-shadow:0 24px 60px rgba(40,23,61,.42); transform:translate(-50%,-50%); }.colouring-result-sparkles { color:#f0ad20; font-size:2rem; letter-spacing:.3em; }.colouring-result-card>strong { font:700 clamp(1.6rem,4vw,2.4rem)/1 "Fredoka",sans-serif; }.colouring-result-card p { margin:0; font-size:1.1rem; }.colouring-result-card p b { color:var(--game-purple); font-size:1.45rem; }.colouring-prize { display:flex; align-items:center; gap:9px; padding:10px 18px; border-radius:999px; color:#fff; background:var(--game-purple); }.colouring-prize span { font-size:1.6rem; }.colouring-prize b { font:700 1.05rem "Fredoka",sans-serif; }.colouring-result-card button { min-height:44px; padding:8px 18px; border:3px solid #fff; border-radius:999px; color:#fff; background:#e75598; box-shadow:0 6px 14px rgba(86,39,93,.2); cursor:pointer; font:700 .95rem "Fredoka",sans-serif; }.colouring-result-card .colouring-result-back { color:#5e3e9e; background:#fff; border-color:#d8c9ef; }
.quiz-answers { align-items:center; }.quiz-answers button { aspect-ratio:1; min-height:0; border-radius:50%; border:8px solid #f2eee7; background:radial-gradient(circle,#fff 0 54%,#e7e1d7 56% 64%,#fff 66%); box-shadow:0 8px 16px rgba(45,28,66,.15); }.quiz-answers button:hover,.quiz-answers button:focus-visible { transform:translateY(-6px) rotate(-2deg); border-color:#e8dfff; }
@keyframes item-wiggle { 30%{transform:rotate(-4deg)} 65%{transform:rotate(4deg)} } @keyframes critter-float { 50%{transform:translate(-50%,calc(-50% - 9px)) rotate(5deg)} }
@keyframes scene-player-blink { 0%,88%,91%,94%,100%{opacity:0} 89%,90%,92%,93%{opacity:1} }
@keyframes castle-kid-jump { 0%,100%{transform:translateY(0) rotate(0)} 42%{transform:translateY(-52%) rotate(-5deg)} 72%{transform:translateY(-12%) rotate(4deg)} }
@keyframes castle-bump { 30%{filter:drop-shadow(0 0 12px #ff547d);transform:translate(-50%,-100%) rotate(-9deg) scale(1.08)} 70%{transform:translate(-50%,-100%) rotate(8deg) scale(.95)} }
@keyframes castle-callout { 0%{opacity:0;transform:translate(-50%,-10px) scale(.9)} 18%,72%{opacity:1;transform:translate(-50%,0) scale(1)} 100%{opacity:.25;transform:translate(-50%,5px) scale(.96)} }
@keyframes magic-border-pulse { 0%,100%{transform:scale(.92);opacity:.68;box-shadow:0 0 5px #fff,0 0 12px rgba(255,255,255,.65),inset 0 0 7px rgba(255,255,255,.35)} 50%{transform:scale(1.06);opacity:1;box-shadow:0 0 10px #fff,0 0 25px #fff,inset 0 0 15px rgba(255,255,255,.72)} }
@keyframes magic-stars-twinkle { 0%,100%{transform:translateX(-50%) scale(.55) rotate(-8deg);opacity:.45} 35%{opacity:1} 50%{transform:translateX(-50%) scale(1.22) rotate(7deg);opacity:1} 75%{opacity:.7} }
@keyframes entrance-stars-flash { from{opacity:.32;filter:drop-shadow(0 0 3px rgba(255,255,255,.45));transform:translateY(2px) scale(.88)} to{opacity:1;filter:drop-shadow(0 0 9px #fff);transform:translateY(-2px) scale(1.12)} }
@keyframes entrance-star-burst { from{opacity:.38;transform:translate(-50%,-50%) scale(.76) rotate(-2deg)} to{opacity:1;transform:translate(-50%,-50%) scale(1.14) rotate(2deg)} }
@keyframes snack-mix-finish { 0%{transform:rotate(0) scale(.8)} 35%{transform:rotate(-12deg) scale(1.15)} 70%{transform:rotate(12deg) scale(1.15)} 100%{transform:rotate(0) scale(1)} }
@keyframes bowl-mix-finish { 0%,100%{transform:translateX(-50%) rotate(0) scale(1)} 35%{transform:translateX(-50%) rotate(-3deg) scale(1.03)} 70%{transform:translateX(-50%) rotate(3deg) scale(1.03)} }
@keyframes ingredient-toss { 0%,100%{translate:0 0} 42%{translate:0 -18px} 68%{translate:0 3px} }
@keyframes salad-ingredient-toss { 0%,100%{translate:0 0} 25%{translate:0 var(--toss-height)} 45%{translate:0 4px} 66%{translate:0 var(--bounce-height)} 84%{translate:0 2px} }
@media(prefers-reduced-motion:reduce){.bowl-mixture.is-tossing,.bowl-mixture.is-tossing .mixture-piece,.kitchen-cook-stage.is-cooking .kitchen-mum,.kitchen-cook-progress>i,.kitchen-serving-stage.is-taking-bite .kitchen-serving-progress i.is-eaten{animation:none}.kitchen-cook-progress>i{width:100%}.scene-player>.character-avatar-blink-frame{animation:none}}
@keyframes spoon-hover-around-bowl { 0%,100%{transform:translate(0,5px) rotate(-2deg)} 25%{transform:translate(10px,-4px) rotate(3deg)} 50%{transform:translate(0,-13px) rotate(-2deg)} 75%{transform:translate(-10px,-3px) rotate(2deg)} }
@keyframes caption-word-in { 0%{opacity:0;transform:translateY(12px) scale(.94);filter:blur(2px)} 55%{opacity:1;transform:translateY(-3px) scale(1.03);filter:blur(0)} 100%{opacity:1;transform:none;filter:blur(0)} }
@keyframes start-star-twinkle { from{opacity:.55;transform:scale(.7) rotate(-12deg)} to{opacity:1;transform:scale(1.25) rotate(12deg)} }
@keyframes character-gallery-next { from{opacity:.66;transform:translateX(22%)} to{opacity:1;transform:translateX(0)} }
@keyframes character-gallery-previous { from{opacity:.66;transform:translateX(-22%)} to{opacity:1;transform:translateX(0)} }
@keyframes install-target-pulse { 50%{transform:translateY(-2px) scale(1.04);box-shadow:0 0 0 7px rgba(255,214,90,.2),0 8px 20px rgba(83,52,166,.22)} }
@keyframes bowl-drop-pulse { from{box-shadow:0 0 12px rgba(255,255,255,.6)} to{box-shadow:0 0 28px #fff,0 0 42px rgba(138,101,238,.85)} }
@keyframes blender-ready { from{transform:rotate(-1.5deg)} to{transform:rotate(1.5deg) translateY(-2px)} }
@keyframes smoothie-blender-shake { 0%,100%{transform:translateX(-50%) rotate(-.8deg)} 50%{transform:translateX(calc(-50% + 3px)) rotate(.8deg)} }
@keyframes smoothie-liquid-churn { from{filter:saturate(1);transform:skewX(-1deg) scaleY(.985)} to{filter:saturate(1.14) brightness(1.05);transform:skewX(1deg) scaleY(1.015)} }
@keyframes smoothie-bubbles { 0%{opacity:.4;transform:translateY(12%) scale(.92)} 55%{opacity:.82} 100%{opacity:.3;transform:translateY(-18%) scale(1.06)} }
@keyframes colouring-sign-flash { from{opacity:.72;transform:translateX(-50%) translateY(3px) scale(.96);filter:brightness(.98)} to{opacity:1;transform:translateX(-50%) translateY(-3px) scale(1.04);filter:brightness(1.08)} }
@keyframes ball-flight { 0%{left:var(--ball-start-x);top:73%;transform:translate(-50%,-50%) scale(.68) rotate(0);animation-timing-function:cubic-bezier(.18,.7,.32,1)} 48%{left:var(--ball-middle-x);top:var(--ball-middle-y);transform:translate(-50%,-50%) scale(1.08) rotate(220deg);animation-timing-function:cubic-bezier(.68,0,.82,.3)} 100%{left:var(--ball-end-x);top:93%;transform:translate(-50%,-50%) scale(.9) rotate(520deg)} }
@keyframes ball-caught { to{opacity:0;transform:translate(-50%,-50%) scale(1.8) rotate(30deg);filter:brightness(1.5)} }
@keyframes ball-count-pop { 0%{opacity:.2;transform:translateX(-50%) scale(.55)} 30%{opacity:1;transform:translateX(-50%) scale(1.18)} 100%{opacity:.18;transform:translateX(-50%) scale(.82)} }
@keyframes ball-loss-pop { 0%{opacity:0;transform:translateX(-50%) translateY(-8px) scale(.9)} 18%,70%{opacity:1;transform:translateX(-50%) translateY(0) scale(1)} 100%{opacity:0;transform:translateX(-50%) translateY(8px) scale(.96)} }

@media(max-width:760px){
  .game-stage { min-height:calc(100svh - 64px); background-position:center; }
  .scene-start { background-position:center center; }
  .halloween-entry-banner { top:9%; min-width:240px; padding:9px 22px 11px; border-width:4px; }
  .halloween-entry-pumpkin { left:18%; bottom:6%; width:96px; }
  .halloween-entry-pumpkin>span { font-size:5.6rem; }
  .halloween-entry-pumpkin>strong { min-width:106px; padding:6px 9px; font-size:.78rem; }
  .halloween-entry-pumpkin>small { font-size:.62rem; }
  .halloween-entry-door-lock { left:36%; top:29%; width:28%; height:56%; }
  .halloween-entry-door-lock>strong,.halloween-entry-door-lock>small { opacity:1; font-size:.6rem; }
  .halloween-banner { top:12%; min-width:210px; padding:8px 20px 10px; border-width:4px; }
  .halloween-round-target { left:50%; top:24%; width:min(390px,calc(100% - 22px)); gap:9px; padding:10px 15px; border-radius:18px; }
  .halloween-round-target>span { font-size:2.15rem; }
  .halloween-round-target strong { font-size:1.1rem; }
  .halloween-round-target small { font-size:.78rem; }
  .halloween-game-timer { top:8px; min-width:92px; gap:4px; padding:6px 9px; border-width:2px; }
  .halloween-game-timer span { font-size:.85rem; }
  .halloween-game-timer strong { font-size:.92rem; }
  .halloween-tool-picker { bottom:38px; width:calc(100% - 16px); gap:4px; padding:6px; border-width:2px; border-radius:17px; }
  .halloween-tool-picker-label { font-size:.6rem; }
  .halloween-tool-picker>div { gap:4px; }
  .halloween-tool { gap:1px 4px; padding:6px 5px; border-radius:11px; }
  .halloween-tool>span { font-size:1.25rem; }
  .halloween-tool>strong { font-size:.67rem; }
  .halloween-tool>small { font-size:.53rem; }
  .halloween-tap-target { width:clamp(46px,10vw,68px); }
  .halloween-tap-target>span { font-size:clamp(2.6rem,9vw,4.2rem); }
  .halloween-decorator { left:7px; right:auto; bottom:auto; top:8px; width:164px; gap:5px; padding:8px; border-radius:17px; }
  .halloween-decorator::after { display:none; }
  .halloween-decorator-heading strong { font-size:.84rem; }
  .halloween-decorator-heading small,.halloween-prize { font-size:.57rem; }
  .halloween-decoration-tray { gap:2px; }
  .halloween-decoration { border-radius:8px; }
  .halloween-decoration>span { font-size:1.35rem; }
  .halloween-exit { right:7px; bottom:auto; top:8px; width:154px; min-height:74px; padding:9px 10px; border-radius:17px; }
  .halloween-exit>span { width:29px; font-size:1rem; }
  .halloween-exit>strong { font-size:.84rem; }
  .halloween-exit>small { font-size:.57rem; }
  .entrance-door { padding-inline:0; }.entrance-door-sparkles{font-size:.68rem}.entrance-door strong{font-size:.72rem}
  .character-chooser { width:calc(100% - 10px); gap:5px; }
  .character-carousel-arrow { width:42px; }
  .character-avatar { height:clamp(112px,24vw,160px); }
  .character-name-row { width:min(430px,calc(100% - 74px)); grid-template-columns:minmax(0,1fr) auto; }
  .front-door-start { width:100px; min-height:42px; }
  .scene-mission { top:12px; left:12px; width:calc(100% - 24px); padding:9px 12px; border-radius:16px; }.scene-mission strong{font-size:1.02rem}.scene-mission small{font-size:.78rem}
  .kitchen-order { top:18px; left:50%; width:calc(100% - 32px); gap:1px; }.kitchen-order>strong{font-size:1.58rem;max-width:18ch}.kitchen-order>small{font-size:.78rem}.kitchen-stage-progress{top:98px;width:min(360px,calc(100% - 28px));grid-template-columns:repeat(3,minmax(72px,1fr))}.kitchen-stage-progress li>span{width:29px;height:29px;font-size:.74rem}.kitchen-stage-progress li>strong{font-size:.62rem}.kitchen-stage-progress::before{top:14px}.kitchen-hear-again{left:16px;bottom:16px;width:62px;height:62px;font-size:1.25rem}.kitchen-hear-again b{font-size:.58rem}
  .recipe-picker { top:29%; width:calc(100% - 16px); gap:6px; }.recipe-picker button{width:calc((100% - 12px)/3);min-height:112px;padding:9px 4px;border-width:3px;border-radius:18px}.recipe-picker.is-random button{width:max-content;min-width:0;min-height:0;padding:9px 13px}.recipe-picker span{font-size:2.5rem}.recipe-picker strong{font-size:.82rem}.recipe-picker small{font-size:.6rem}
  .game-look-chip { left:12px; bottom:12px; padding:5px 9px; }.game-look-chip strong{font-size:.72rem}
  .game-character-reaction { top:108px; right:12px; left:auto; }
  .scene-kitchen { --kitchen-bench-line:150px; --kitchen-bench-overlap:16px; --kitchen-mum-sink:42%; }
  .scene-player-kitchen { left:-4%; top:0; width:min(58vw,330px); height:auto; }
  .scene-player-playroom { left:-4%; bottom:4%; width:min(38vw,190px); height:min(35vh,300px); }
  .scene-player.scene-player-backyard { left:-3%; bottom:1%; width:min(38vw,190px); height:min(36vh,310px); }
  .scene-player-pool { left:-2%; bottom:10%; width:min(30vw,150px); height:min(31vh,250px); }
  .scene-player-time-machine { left:-2%; bottom:1%; width:min(30vw,150px); height:min(31vh,250px); }
  .closet-fixture { right:3%; left:3%; bottom:3%; width:auto; min-height:310px; }.hanging-clothes{gap:2px}.wearable-object span{width:64px;font-size:2.35rem}.wearable-object strong{font-size:.66rem;padding:4px}
  .wearing-badge { left:12px; top:112px; padding:8px 10px; }.wearing-badge>span{font-size:1.8rem}.wearing-badge small{font-size:.68rem}.wearing-badge strong{font-size:.8rem}
  .wardrobe-exit { left:auto; right:10px; top:108px; bottom:auto; transform:scale(.72); transform-origin:top right; }
  .kitchen-counter { left:0; right:0; bottom:0; height:150px; }.counter-food{left:2%;right:auto;top:42px;width:max-content;gap:clamp(4px,2vw,10px)}.food-object{min-width:45px}.food-object span{font-size:1.874rem}.food-object strong{font-size:.52rem}.food-object.is-in-bowl{transform:translate(95%,75%) scale(.5)}
  .bowl-object{left:50%;top:4px;width:120px}.bowl-mixture{top:-86px;width:130px;height:27px}.bowl-mixture.mixture-salad{top:-78px;width:154px;height:58px}.mixture-piece{width:12px;height:8px;border-width:1px}.bowl-mixture.mixture-salad .mixture-piece{width:34px;height:34px;font-size:30px}.bowl-mixture.mixture-salad .mixture-broccoli{width:42px;height:42px;font-size:39px}.bowl-mixture.mixture-salad .mixture-lettuce{width:39px;height:39px;font-size:35px}.bowl-mixture.mixture-salad .mixture-tomato{width:32px;height:32px;font-size:29px}.bowl-mixture.mixture-salad .mixture-cucumber{width:35px;height:35px;font-size:32px}.mix-spoon{right:0;top:30px}.mix-spoon.is-ready{left:calc(50% + 30px);right:auto;top:-2px}.mix-spoon span{font-size:3.5rem}.mix-spoon strong{padding:3px 8px;font-size:.7rem}.smoothie-maker,.smoothie-maker.is-ready{left:calc(50% + 82px);top:-38px;transform:scale(.78);transform-origin:bottom center}.kitchen-replay{right:5px;top:32px;min-height:54px;padding:7px 11px;font-size:.82rem}
  .bowl-drop-target{top:-74px;width:300px;height:170px}
  .kitchen-stovetop{right:clamp(72px,14%,110px);bottom:calc(var(--kitchen-bench-line) - 42px);width:min(34vw,230px);height:38px}.kitchen-mum-frame{right:-1%;width:min(34vw,285px)}.kitchen-mum-speech{right:23%;top:auto;bottom:calc(var(--kitchen-bench-line) + 18px);max-width:190px;padding:7px 10px;border-width:3px;font-size:.72rem}.kitchen-child-cook-speech,.kitchen-child-speech{left:3%;top:auto;bottom:calc(var(--kitchen-bench-line) + 18px);padding:7px 10px;border-width:3px;font-size:.72rem}.kitchen-pan-action{left:auto;right:clamp(72px,14%,110px);bottom:calc(var(--kitchen-bench-line) - 38px);width:min(32vw,220px)}.kitchen-pan-action strong{margin-top:-10px;padding:6px 11px;font-size:.72rem}.kitchen-serving-prompt{top:22%;padding:7px 11px;border-width:3px;font-size:.72rem}.kitchen-serving-dish{left:54%;bottom:18px;width:min(34vw,310px);max-height:190px}.kitchen-serving-stage.is-smoothie .kitchen-serving-dish{width:min(14vw,130px);max-height:220px}.kitchen-serving-bite{left:calc(54% + 100px);bottom:75px;min-width:84px}.kitchen-serving-bite>span{font-size:3.5rem}.kitchen-serving-bite>strong{font-size:.65rem}.kitchen-serving-bite.is-drink{left:calc(54% + 78px);bottom:55px}.kitchen-mouth-target{left:17%;top:43%;width:62px;height:52px}.kitchen-make-another{left:54%;bottom:36px;min-width:175px;min-height:44px;font-size:.82rem}
  .kitchen-doors .world-door { top:13.375%; height:32.25%; }.door-bedroom{left:30.5%}.door-playroom{left:53.5%}.door-backyard{left:76.5%}
  .return-door { right:0; bottom:0; transform:scale(.62); transform-origin:bottom right; }
  .room-return-door { right:0; bottom:0; transform:scale(.52); }
  .wardrobe-return-door { bottom:60px; }
  .world-critter{width:62px;height:62px;font-size:2rem}.world-bubble{width:70px}
  .playroom-table-hotspot{left:34%;top:29%;width:22%;height:31%}.playroom-table-hotspot>span{top:23%;padding:8px 13px}
  .playroom-ballpit-hotspot{right:7%;bottom:4%;width:27%;height:30%}.playroom-ballpit-hotspot>span{padding:8px 13px;font-size:.95rem}
  .ball-game-header{padding:8px 10px}.ball-game-score span{min-width:68px;padding:5px 7px}.flying-ball{width:clamp(44px,6.5vw,62px)}
  .colouring-game{inset:8px;gap:7px;padding:9px;border-radius:20px}.colouring-game-header{gap:8px}.colouring-game-header>small{padding:5px 8px;font-size:.76rem}.colouring-board{width:auto;height:100%;align-self:center;border-radius:12px}.colouring-tools{padding:7px 8px 18px}.colouring-palette{grid-template-columns:repeat(9,30px);gap:15px 5px}.colouring-swatch{width:28px;height:28px}.colouring-swatch span{font-size:.48rem;top:calc(100% + 5px)}.colouring-auto{min-height:42px;padding:4px 7px}.colouring-auto>span{font-size:1.2rem}.colouring-auto strong{font-size:.68rem}.colouring-done{min-height:38px;padding:6px 13px}
  .colouring-exit-door{right:0;bottom:0;transform:scale(.5)}
  .quiz-answers { grid-template-columns:repeat(3,1fr); }.quiz-answers button { min-height:0; display:grid; grid-template-columns:1fr; }.quiz-answers button span{font-size:.9rem}.quiz-answers button small{font-size:.7rem}
}
@media(max-width:390px){
  .closet-fixture{min-height:285px}.wearable-object span{width:57px}.wearable-object strong{max-width:65px}.game-character-reaction{display:none}
  .kitchen-doors .world-door{transform:none}.world-bubble{width:62px}.world-critter{width:56px;height:56px}
}
/* Phones and tablets choose artwork by their current orientation. Landscape is
   the default above (and remains the desktop-browser default); rotating a
   touch device to portrait swaps every scene to its portrait composition. */
@media(orientation:portrait) and (any-pointer:coarse){
  .okay-game-shell,.okay-game { width:100%; min-height:100svh; overflow:hidden; }
  .game-stage { width:100%; height:calc(100svh - 64px); min-height:calc(100svh - 64px); background-image:linear-gradient(180deg,rgba(24,13,47,.02),rgba(24,13,47,.2)),var(--scene-image-portrait); background-size:cover; background-position:center; }
  .scene-entrance { background-image:linear-gradient(180deg,rgba(24,13,47,.02),rgba(24,13,47,.16)),var(--scene-image-portrait) !important; }
  .scene-pool { background-image:linear-gradient(180deg,rgba(14,78,123,.02),rgba(0,91,150,.1)),var(--scene-image-portrait) !important; }
  .scene-swing::before { background-image:var(--scene-image-portrait); }
  .game-grownup-note { display:none; }
  .scene-start,.scene-halloween,.scene-halloween-entry { background-position:center top; }
  .halloween-banner { top:21%; }
  .halloween-decoration.is-placed { width:58px; }
  .halloween-decoration.is-placed>span { font-size:3.2rem; }
  .backyard-kennel-option { left:auto; right:0; top:41%; width:27%; height:18%; }
  .backyard-pool-option { left:41%; right:auto; top:57%; width:36%; height:17%; }
  .backyard-time-machine-option { left:35%; right:auto; top:34%; width:30%; height:24%; }
  .backyard-option>span { padding:7px 12px; font-size:.82rem; }
  .backyard-parent,.pool-mum { right:-2%; width:clamp(110px,25vw,160px); height:min(38vh,290px); }
  .backyard-parent strong,.pool-mum strong { right:68%; top:3%; max-width:48vw; padding:7px 10px; border-width:3px; font-size:.7rem; }
  .scene-backyard.is-time-machine-portal,.scene-time-machine { background-image:linear-gradient(180deg,rgba(15,13,54,.06),rgba(15,13,54,.18)),url('/src/assets/game/time-machine-portal-interior-mobile-v1.jpg') !important; background-size:cover; background-position:center; }
  .scene-doghouse { background-size:100% 100%,205% auto!important; background-position:center,50% 52%!important; }
  .scene-player-doghouse { left:-3%; bottom:3%; width:min(34vw,170px); height:min(33vh,270px); }
  .doghouse-mission { top:3%; left:3%; width:72%; transform:scale(.82); transform-origin:top left; }
  .doghouse-back { right:2%; bottom:2%; min-height:44px; padding:6px 12px; font-size:.78rem; }
  .backyard-world .scene-mission.is-choice { top:38%; left:4%; width:62%; transform:translateY(-50%) scale(.82); transform-origin:left center; }
  .backyard-swing-option { left:0; top:27%; width:34%; height:28%; }
  .backyard-swing-option>span { top:-4%; }
  .time-machine-game-header { left:8px; top:8px; width:calc(100% - 72px); gap:7px; padding:8px 10px; border-width:3px; border-radius:17px; }
  .time-machine-game-header span{font-size:.6rem}.time-machine-game-header strong{font-size:1.05rem}.time-machine-game-header small{font-size:.7rem}.time-machine-game-header>div:last-child{min-width:54px;padding:5px}.time-machine-game-header>div:last-child b{font-size:1.2rem}
  .time-machine-exit { right:6px; top:9px; min-height:38px; padding:5px 9px; border-width:3px; font-size:.68rem; }
  .time-figure { width:clamp(54px,15vw,76px); border-width:3px; }
  .time-figure span { font-size:clamp(2rem,10vw,3rem); }
  .time-machine-feedback { bottom:3%; min-width:74%; padding:8px 12px; border-width:3px; font-size:.8rem; }
  .time-figure.has-character-art { width:clamp(66px,19vw,92px); }
  .time-machine-entry-card,.time-machine-result-card { width:calc(100% - 26px); padding:22px 16px; border-radius:26px; }
  .character-chooser { bottom:5px; width:calc(100% - 6px); gap:3px; }
  .character-carousel-arrow { width:36px; }
  .character-class-list { gap:0; }
  .character-avatar { height:clamp(104px,28vw,138px); }
  .character-skill-popover { left:50%; top:-18%; width:min(154px,58vw); padding:6px 8px; transform:translate(-50%,-50%) scale(.92); transform-origin:center; text-align:center; }
  .character-skill-popover::before { display:none; }
  .character-class-card.is-selected:hover .character-skill-popover,.character-class-card.is-selected:focus-visible .character-skill-popover { transform:translate(-50%,-50%) scale(1); }
  .character-name-row { gap:3px 6px; }
  .character-name-row label span { font-size:.58rem; }
  .character-name-row input { height:38px; padding:5px 8px; font-size:.9rem; }
  .character-name-row>small { display:none; }
  .character-guide { top:7%; left:50%; width:min(188px,calc(100% - 28px)); gap:3px 6px; padding:7px 8px; }
  .character-guide-icon { font-size:1rem; }
  .character-guide strong { font-size:.82rem; }
  .character-guide p { font-size:.63rem; }
  .character-guide button { min-height:27px; padding:3px 8px; }
  .front-door-start { width:92px; min-height:38px; border-width:2px; }
  .start-door-prompt { min-height:27px; padding:3px 7px; }
  .entrance-wardrobe { left:1.5%; top:20%; width:16%; height:40%; }
  .entrance-playroom { left:21%; top:25%; width:11%; height:29%; }
  .entrance-kitchen { left:39%; top:27%; width:22%; height:25%; }
  .entrance-backyard { left:67%; top:23%; width:10%; height:33%; }
  .entrance-exit { left:81.5%; top:20%; width:15%; height:42%; }
  .entrance-wardrobe { --door-inset:1% 3% 1% 29%; }
  .entrance-playroom { --door-inset:1% 26% 1% 16%; }
  .entrance-kitchen { --door-inset:1% 2%; }
  .entrance-backyard { --door-inset:1% 10% 1% 29%; }
  .entrance-exit { --door-inset:1% 19% 1% 8%; }
  .entrance-door { padding:0; }
  .lobby-player { bottom:-1.5%; width:min(62vw,330px); height:min(43vh,390px); }
  .lobby-player-speech { left:50%; right:auto; top:-5%; max-width:min(240px,62vw); padding:12px 16px; transform:translateX(-50%); font-size:clamp(.82rem,3.8vw,1rem); }
  .scene-mission { top:10px; left:10px; width:calc(100% - 20px); }
  .closet-fixture { left:2%; right:2%; bottom:2%; width:auto; min-height:42%; }
  .wearing-badge { top:106px; left:10px; }
  .wardrobe-exit { top:105px; right:5px; }
  .kitchen-order { top:8px; left:50%; width:calc(100% - 24px); }
  .kitchen-stage-progress { top:88px; width:calc(100% - 22px); }
  .recipe-picker { top:24%; }
  .kitchen-counter { height:190px; }
  .scene-kitchen { --kitchen-bench-line:45.6%; --kitchen-bench-overlap:16px; --kitchen-mum-sink:38%; }
  .kitchen-stovetop{right:clamp(68px,14%,100px);bottom:calc(var(--kitchen-bench-line) - 43px);width:min(34vw,210px);height:39px}.kitchen-mum-frame{right:-7%;width:min(52vw,250px)}.kitchen-mum-speech{right:4%;top:auto;bottom:calc(var(--kitchen-bench-line) + 20px);max-width:44vw}.kitchen-child-cook-speech,.kitchen-child-speech{left:3%;top:auto;bottom:calc(var(--kitchen-bench-line) + 20px);max-width:35vw}.kitchen-pan-action{left:auto;right:clamp(68px,14%,100px);bottom:calc(var(--kitchen-bench-line) - 40px);width:min(32vw,205px)}.kitchen-serving-prompt{top:17%;max-width:70vw}.kitchen-serving-dish{left:58%;bottom:52px;width:min(58vw,310px);max-height:210px}.kitchen-serving-stage.is-smoothie .kitchen-serving-dish{width:min(27vw,155px);max-height:240px;bottom:44px}.kitchen-serving-bite{left:calc(58% + 70px);bottom:118px}.kitchen-serving-bite.is-drink{left:calc(58% + 48px);bottom:92px}.kitchen-mouth-target{left:24%;top:42%;width:64px;height:52px}.kitchen-make-another{left:58%;bottom:76px}
  .scene-player-kitchen { left:1%; top:0; width:min(62vw,340px); height:auto; }
  .scene-player-kitchen img { top:auto; width:175%; }
  .counter-food { left:2%; right:auto; top:88px; width:max-content; gap:clamp(4px,2vw,10px); }
  .food-object span { font-size:2.448rem; }
  .bowl-object { top:-48px; }
  .mix-spoon { top:72px; }
  .mix-spoon.is-ready { top:10px; }
  .smoothie-maker,.smoothie-maker.is-ready { left:calc(50% + 82px); top:-66px; }
  .kitchen-doors .world-door { top:11%; height:24%; }
  .return-door { right:0; bottom:0; transform:scale(.64); transform-origin:bottom right; }
  .room-return-door { right:0; bottom:0; transform:scale(.54); }
  .wardrobe-return-door { bottom:58px; }
  .playroom-table-hotspot{left:28%;top:34%;width:31%;height:26%}.playroom-table-hotspot>span{top:20%;font-size:.92rem}
  .playroom-ballpit-hotspot{right:7%;bottom:11%;width:34%;height:25%}.playroom-ballpit-hotspot>span{top:2%;padding:7px 11px;font-size:.86rem}
  .ball-game-header{left:2%;top:2%;width:96%;gap:7px;padding:7px 9px;border-radius:18px}.ball-game-header>div:first-child strong{font-size:1rem}.ball-game-header>div:first-child span{font-size:.6rem}.ball-game-score{gap:4px}.ball-game-score span{min-width:57px;padding:4px;font-size:.62rem}.ball-game-score b{font-size:1rem}.flying-ball{width:48px}.ball-count-callout{top:16%;min-width:65px;padding:6px 12px}.ball-loss-callout{top:14%;font-size:.82rem}.ball-game-back{left:8px;bottom:8px;min-height:38px;padding:6px 11px;font-size:.78rem}.ball-result-card{width:calc(100% - 22px);gap:8px;padding:24px 18px}
  .colouring-game{inset:6px}.colouring-game-header strong{font-size:.92rem}.colouring-tools{gap:7px}.colouring-palette{grid-template-columns:repeat(6,27px);gap:15px 5px}.colouring-swatch{width:25px;height:25px}.colouring-swatch span{font-size:.46rem}.colouring-actions{flex-direction:column;gap:4px}.colouring-auto{min-height:36px;padding:3px 6px}.colouring-auto strong{font-size:.62rem}.colouring-auto small{font-size:.58rem}.colouring-auto>span{font-size:1rem}.colouring-done{min-height:34px;padding:5px 11px;font-size:.82rem}
  .colouring-exit-door{right:-8px;bottom:-5px;transform:scale(.44)}
}
@media(max-height:600px) and (orientation:landscape){
  .okay-game-shell { display:grid; place-items:start center; min-height:100svh; overflow:hidden; background:linear-gradient(90deg,#dff5ef,#f7ecff 50%,#dff5ef); }
  .okay-game { width:min(100vw,calc(177.79svh - 92.45px)); min-height:0; margin:0 auto; box-shadow:0 0 36px rgba(65,42,100,.25); }
  .game-topbar { min-height:52px; height:52px; padding:4px 12px; }
  .game-home { min-height:38px; font-size:.85rem; }
  .game-day strong { font-size:1.12rem; }
  .game-currency { min-height:36px; padding:4px 7px; }
  .halloween-round-target { left:50%; top:25%; width:min(410px,calc(100% - 22px)); gap:9px; padding:9px 15px; border-radius:18px; }
  .halloween-round-target>span { font-size:2rem; }
  .halloween-round-target strong { font-size:1.05rem; }
  .halloween-round-target small { font-size:.75rem; }
  .halloween-game-timer { top:7px; min-width:88px; gap:4px; padding:6px 8px; border-width:2px; }
  .halloween-game-timer span { font-size:.8rem; }
  .halloween-game-timer strong { font-size:.9rem; }
  .halloween-tap-target { width:clamp(44px,7vw,66px); }
  .halloween-tap-target>span { font-size:clamp(2.5rem,6.4vw,4rem); }
  .game-stage { width:100%; height:calc(100svh - 52px); min-height:0; background-size:100% 100%; background-position:center; }
  .game-grownup-note { display:none; }
  .kitchen-order { top:12px; left:50%; }
  .kitchen-stage-progress { top:84px; width:min(340px,44vw); }
  .scene-kitchen { --kitchen-bench-line:23.5%; --kitchen-bench-overlap:12px; --kitchen-mum-sink:40%; }
  .scene-player-kitchen { left:1%; top:0; width:min(32vw,320px); height:auto; }
  .scene-player-kitchen img { top:auto; width:125%; }
  .scene-player-playroom,.scene-player.scene-player-backyard { left:1%; bottom:1%; width:min(20vw,190px); height:48vh; }
  .halloween-banner { top:8%; min-width:190px; padding:6px 17px 8px; }
  .halloween-banner strong { font-size:1.22rem; }
  .halloween-decorator { left:7px; right:auto; top:7px; bottom:auto; width:170px; gap:4px; padding:7px; }
  .halloween-decorator::after { display:none; }
  .halloween-decorator-heading strong { font-size:.82rem; }
  .halloween-decorator-heading small,.halloween-prize { font-size:.55rem; }
  .halloween-decoration>span { font-size:1.25rem; }
  .halloween-exit { right:7px; top:7px; bottom:auto; width:154px; min-height:70px; padding:8px 10px; }
  .kitchen-order>strong { font-size:clamp(1.15rem,4.5vh,1.8rem); }
  .kitchen-order>small { font-size:.72rem; }
  .kitchen-stovetop{right:clamp(70px,12%,100px);bottom:calc(var(--kitchen-bench-line) - 38px);width:min(24vw,210px);height:34px}.kitchen-mum-frame{right:0;width:min(27vw,250px)}.kitchen-mum-speech{right:22%;top:auto;bottom:calc(var(--kitchen-bench-line) + 14px);font-size:.68rem}.kitchen-child-cook-speech,.kitchen-child-speech{left:3%;top:auto;bottom:calc(var(--kitchen-bench-line) + 14px);font-size:.68rem}.kitchen-pan-action{left:auto;right:clamp(70px,12%,100px);bottom:calc(var(--kitchen-bench-line) - 36px);width:min(23vw,205px)}.kitchen-serving-prompt{top:18%;font-size:.68rem}.kitchen-serving-dish{left:54%;bottom:8px;width:min(29vw,280px);max-height:170px}.kitchen-serving-stage.is-smoothie .kitchen-serving-dish{width:min(12vw,115px);max-height:185px;bottom:16px}.kitchen-serving-bite{left:calc(54% + 86px);bottom:55px}.kitchen-serving-bite.is-drink{left:calc(54% + 65px);bottom:42px}.kitchen-mouth-target{left:16%;top:43%;width:58px;height:48px}.kitchen-make-another{left:54%;bottom:22px}
  .recipe-picker { top:27%; }.recipe-picker button{min-height:105px}.recipe-picker span{font-size:2.2rem}
  .kitchen-hear-again { left:14px; bottom:14px; width:54px; height:54px; }
  .scene-mission { top:10px; left:12px; padding:8px 11px; transform:scale(.82); transform-origin:top left; }
  .entrance-door strong{font-size:.72rem}
  .closet-fixture { min-height:min(270px,74vh); bottom:3%; }
  .wearing-badge { top:34%; transform:scale(.8); transform-origin:left center; }
  .wardrobe-exit { transform:scale(.68); transform-origin:bottom left; }
  .kitchen-counter { height:128px; }
  .counter-food { top:38px; }
  .food-object span { font-size:clamp(2.142rem,9.945vh,3.672rem); }
  .bowl-object { top:4px; }
  .bowl-drop-target { top:-72px; height:160px; }
  .kitchen-doors .world-door { top:13.875%; height:41.25%; }
  .colouring-game{inset:4px 4%;grid-template-columns:1fr auto;grid-template-rows:auto 1fr;gap:5px 9px;padding:6px 9px}.colouring-game-header{grid-column:1}.colouring-board{grid-column:1;grid-row:2}.colouring-tools{grid-column:2;grid-row:1/3;flex-direction:column;justify-content:center;padding:7px 10px}.colouring-palette{grid-template-columns:repeat(3,27px);gap:14px 6px;justify-content:center}.colouring-swatch{width:25px;height:25px}.colouring-swatch span{font-size:.45rem}.colouring-actions{flex-direction:column}.colouring-auto{min-height:38px;padding:3px 7px}.colouring-done{padding:5px 12px;font-size:.8rem}.colouring-result-card{padding:18px 20px;gap:7px}
  .colouring-exit-door{right:-7px;bottom:-7px;transform:scale(.42)}
  .ball-game-header{left:1%;top:1%;width:68%;padding:5px 8px;border-width:3px;border-radius:16px}.ball-game-header>div:first-child strong{font-size:.9rem}.ball-game-header>div:first-child span{font-size:.55rem}.ball-game-score span{min-width:54px;padding:3px;font-size:.58rem}.ball-game-score b{font-size:.9rem}.flying-ball{width:44px}.ball-game-back{left:1%;bottom:2%;min-height:34px;padding:5px 10px;font-size:.72rem}.ball-result-card{width:min(370px,calc(100% - 22px));gap:6px;padding:17px 18px}.ball-result-card>span{font-size:1.4rem}.ball-result-card>strong{font-size:1.45rem}.ball-result-card p{font-size:.92rem}.ball-result-card button{min-height:35px;padding:5px 14px;font-size:.82rem}
}
@media(max-width:720px){.smoothie-blender-object{top:-335px;width:210px;height:475px}.smoothie-blender-fill-window{left:62px;top:38px;width:85px;height:222px;border-radius:5px 5px 30px 30px}.blender-action-prompt{bottom:72px}}
@media(max-height:600px) and (orientation:landscape){.smoothie-blender-object{top:-225px;width:230px;height:353px}.smoothie-blender-fill-window{left:68px;top:27px;width:93px;height:152px;border-radius:5px 5px 26px 26px}.blender-action-prompt{bottom:52px}}
@media(prefers-reduced-motion:reduce){.wearable-object.is-wearing span,.world-critter,.food-object::before,.food-object::after,.mix-spoon.is-ready,.smoothie-maker.is-ready .blender-appliance,.smoothie-blender-object.is-ready,.smoothie-blender-object.is-blending,.smoothie-blender-object.is-blending .smoothie-blender-fill,.smoothie-blender-object.is-blending .smoothie-blender-fill::after,.bowl-object.is-mix-ready,.voice-caption span,.front-door-start,.front-door-start span,.start-door-prompt,.start-door-prompt i,.bowl-drop-target.is-drop-ready,.game-menu-install.is-download-target,.entrance-door::before,.entrance-door::after,.entrance-door-sparkles,.character-guide,.character-class-list,.playroom-table-hotspot>span,.playroom-ballpit-hotspot>span,.recipe-picker.is-random button,.recipe-picker.is-random button::before,.recipe-picker.is-random button::after,.kitchen-stage-progress li>span{animation:none;filter:none}.voice-caption span{opacity:1;transform:none}.food-object:hover::before,.food-object:focus-visible::before,.food-object:hover::after,.food-object:focus-visible::after{opacity:1;transform:none}.flying-ball{animation-duration:4s}}
@media(prefers-reduced-motion:reduce){.lobby-player-speech{transform:translateX(-50%);animation-name:lobby-speech-fade}}

/* Playground swing: direct taps add unpredictable pushes to a damped pendulum. */
.scene-swing { background-image:none!important; background:#bdeeff; }
.scene-swing::before { content:""; position:absolute; inset:0; z-index:-2; background-image:var(--scene-image); background-size:cover; background-position:center; transform-origin:34% 55%; }
.scene-swing::after { background:linear-gradient(180deg,rgba(22,16,55,.04),transparent 48%,rgba(28,18,54,.35)); }
.swing-world { display:block; }
.swing-rope { position:absolute; z-index:5; top:30%; width:8px; height:42.4%; border-radius:999px; background:repeating-linear-gradient(115deg,#8d4c18 0 3px,#e9b452 3px 7px,#6f3613 7px 9px); box-shadow:inset 1px 0 rgba(255,243,174,.75),2px 3px 4px rgba(62,34,14,.22); transform:translateX(-50%) rotate(var(--swing-angle)); transform-origin:50% 0; will-change:transform; pointer-events:none; }
.swing-rope.is-left { left:31%; }.swing-rope.is-right { left:43.55%; }
.swing-seat,.swing-kid { position:absolute; inset:0; transform:translate(var(--swing-x),var(--swing-y)) rotate(var(--swing-tilt)); transform-origin:37% 72.4%; will-change:transform; pointer-events:none; }
.swing-seat { z-index:5; }
.swing-kid-back { z-index:4; }
.swing-kid-front { z-index:6; clip-path:inset(72.5% 0 0 0); }
.swing-seat img,.swing-kid > img { position:absolute; inset:0; width:100%; height:100%; object-position:center; transform-origin:0 0; filter:drop-shadow(0 11px 7px rgba(57,37,20,.18)); }
.swing-kid > img { object-fit:contain; transform:translate(9.2%,40%) scale(.56); }
.swing-seat img { transform:translate(16.3%,50%) scale(.5); }
.swing-kid-front > img { filter:none; }
.swing-kid.is-flying-off { animation:swing-kid-fly 1.5s cubic-bezier(.18,.68,.32,1) forwards; }
.swing-high-points { min-width:94px; display:grid; justify-items:center; padding:8px 12px; border:3px solid #ddcff5; border-radius:20px; background:#fff; }
.swing-high-points-floating { position:absolute; z-index:8; top:3%; right:3%; box-shadow:0 12px 26px rgba(43,29,75,.22); }
.swing-high-points b { color:var(--game-purple); font:700 1.7rem/1 "Fredoka",sans-serif; }
.swing-high-points small { font-size:.7rem; white-space:nowrap; }
.swing-motion-arc { position:absolute; z-index:4; left:25.5%; top:25%; width:22%; height:42%; border:5px dashed rgba(255,255,255,.7); border-color:rgba(255,255,255,.76) transparent transparent; border-radius:50%; opacity:0; transform:rotate(-10deg); pointer-events:none; }
.swing-motion-arc i { position:absolute; top:-8px; width:14px; height:14px; border-radius:50%; background:#fff; box-shadow:0 0 15px #fff; }
.swing-motion-arc i:nth-child(1){left:12%}.swing-motion-arc i:nth-child(2){left:48%}.swing-motion-arc i:nth-child(3){right:8%}
.is-swing-swinging .swing-motion-arc { opacity:1; animation:swing-arc-flash .85s ease-out; }
.swing-tap-zone { position:absolute; z-index:6; left:4%; top:16%; width:60%; height:73%; padding:0; border:0; background:transparent; cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
.swing-tap-zone:focus-visible { outline:5px solid rgba(255,255,255,.95); outline-offset:-5px; border-radius:40px; }
.swing-coach-card { position:absolute; z-index:11; left:50%; top:51%; max-width:calc(100% - 32px); padding:15px 25px; border:4px solid rgba(255,255,255,.96); border-radius:24px; color:#4f318f; background:rgba(255,253,247,.94); box-shadow:0 15px 34px rgba(43,28,75,.28); transform:translate(-50%,-50%); pointer-events:none; white-space:nowrap; font:600 clamp(1rem,2.1vw,1.35rem)/1.1 "Fredoka",sans-serif; animation:swing-coach-visit 3s ease both; backdrop-filter:blur(8px); }
.swing-coach-card.is-warning { color:#9b2949; border-color:#ffb4c7; background:rgba(255,242,246,.97); font-size:clamp(1.2rem,2.5vw,1.65rem); animation-duration:1.8s; }
.swing-back-card { position:absolute; z-index:12; right:3%; bottom:3.5%; min-height:58px; padding:12px 22px; border:4px solid rgba(255,255,255,.96); border-radius:22px; color:#55349f; background:rgba(255,253,247,.95); box-shadow:0 13px 30px rgba(43,28,75,.28); cursor:pointer; font:600 1rem/1.05 "Fredoka",sans-serif; backdrop-filter:blur(8px); }
.swing-back-card:active { transform:translateY(3px); }
@keyframes swing-arc-flash { 0%{opacity:0;transform:rotate(-16deg) scale(.78)} 35%{opacity:1} 100%{opacity:0;transform:rotate(8deg) scale(1.1)} }
@keyframes swing-coach-visit { 0%{opacity:0;transform:translate(-50%,-42%) scale(.86)} 12%,68%{opacity:1;transform:translate(-50%,-50%) scale(1)} 100%{opacity:0;transform:translate(-50%,-57%) scale(.96)} }
@keyframes swing-kid-fly { 0%{transform:translate(var(--swing-x),var(--swing-y)) rotate(var(--swing-tilt));opacity:1} 46%{transform:translate(calc(var(--swing-x) + var(--fly-x)),calc(var(--swing-y) - 190px)) rotate(calc(var(--swing-tilt) + var(--fly-rotate)));opacity:1} 100%{transform:translate(calc(var(--swing-x) + var(--fly-x)),calc(var(--swing-y) + 130px)) rotate(calc(var(--swing-tilt) + var(--fly-rotate)));opacity:0} }
@media(max-width:760px){
  .activity-character { width:min(28vw,155px); height:min(34vh,250px); }
  .activity-character-halloween,.activity-character-time-machine,.activity-character-pool,.activity-character-ball { left:-2%; bottom:-5%; }
  .activity-character-colouring { right:-3%; bottom:-7%; width:min(23vw,120px); height:min(28vh,190px); }
  .scene-swing::before { background-position:38% center; }
  .swing-rope { top:31.5%; height:45.8%; width:7px; }.swing-rope.is-left{left:24.6%}.swing-rope.is-right{left:47.8%}
  .swing-seat,.swing-kid { transform-origin:36.2% 77.3%; }
  .swing-kid > img { object-fit:cover; transform:translate(10.7%,30%) scale(.51,.64); }
  .swing-seat img { transform:translate(12%,50%) scale(.5); }
  .swing-high-points { min-width:72px; padding:6px 8px; border-width:2px; border-radius:14px; }.swing-high-points b{font-size:1.3rem}.swing-high-points small{font-size:.58rem}
  .swing-high-points-floating { top:2%; right:2%; }
  .swing-tap-zone { left:1%; top:15%; width:72%; height:76%; }
  .swing-coach-card { top:48%; padding:11px 16px; border-width:3px; border-radius:18px; }
  .swing-back-card { right:2%; bottom:2%; min-height:48px; padding:9px 14px; border-width:3px; border-radius:17px; font-size:.78rem; }
}
@media(max-height:600px) and (orientation:landscape){
  .swing-back-card{bottom:2%;min-height:43px;padding:8px 13px}.swing-coach-card{top:47%;padding:10px 16px}
}
@media(prefers-reduced-motion:reduce){.is-swing-swinging .swing-motion-arc{animation:none}.swing-coach-card{animation-duration:5s}}

/* Character-centred dressing room. */
.scene-wardrobe { background-position:center 44%; }
.scene-wardrobe::after { background:linear-gradient(180deg,rgba(255,255,255,.02) 45%,rgba(70,34,88,.2)); }
.wardrobe-world { color:var(--game-ink); }
.wardrobe-heading { position:absolute; z-index:8; top:18px; left:20px; display:grid; gap:1px; padding:9px 15px; border:3px solid #fff; border-radius:18px; background:rgba(255,253,247,.93); box-shadow:0 10px 24px rgba(76,45,25,.18); }
.wardrobe-heading span { color:var(--game-purple); font-size:.76rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.wardrobe-heading strong { font:600 clamp(1rem,2vw,1.25rem)/1.08 "Fredoka",sans-serif; }
.wardrobe-done { position:absolute; z-index:9; top:18px; right:20px; min-height:48px; display:flex; align-items:center; gap:7px; padding:7px 15px 7px 8px; border:3px solid #fff; border-radius:999px; color:#fff; background:linear-gradient(180deg,#63c789,#3fab70); box-shadow:0 8px 18px rgba(38,91,63,.28); cursor:pointer; font:inherit; }
.wardrobe-done span { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; color:#328259; background:#fff; font-weight:900; }
.wardrobe-done strong { font:700 1rem "Fredoka",sans-serif; }
.wardrobe-done:hover,.wardrobe-done:focus-visible { transform:translateY(-2px) scale(1.03); outline:3px solid rgba(255,255,255,.72); outline-offset:2px; }
.wardrobe-character { position:absolute; z-index:4; left:50%; bottom:20%; width:min(390px,39%); aspect-ratio:1; transform:translateX(-50%); display:grid; place-items:end center; isolation:isolate; }
.wardrobe-character-glow { position:absolute; z-index:-1; left:50%; bottom:2%; width:78%; aspect-ratio:1; transform:translateX(-50%); border-radius:50%; background:radial-gradient(circle,rgba(255,255,255,.88),rgba(255,255,255,.28) 52%,transparent 72%); filter:blur(4px); }
.wardrobe-character img { position:relative; z-index:1; display:block; width:100%; height:100%; object-fit:contain; object-position:center bottom; filter:drop-shadow(0 15px 10px rgba(70,42,68,.28)); pointer-events:none; user-select:none; }
.wardrobe-garment-hover { position:absolute; z-index:3; inset:0; background:rgba(255,255,255,.34); opacity:0; pointer-events:none; transition:opacity .16s ease; -webkit-mask:var(--garment-mask) center bottom/contain no-repeat; mask:var(--garment-mask) center bottom/contain no-repeat; clip-path:inset(var(--garment-hover-top,0%) 0 0); filter:drop-shadow(0 0 4px rgba(255,255,255,.72)); }
.wardrobe-character:has(.wardrobe-hit-area.is-body:hover) .wardrobe-garment-hover.is-body,.wardrobe-character:has(.wardrobe-hit-area.is-body:focus-visible) .wardrobe-garment-hover.is-body,.wardrobe-character:has(.wardrobe-hit-area.is-legs:hover) .wardrobe-garment-hover.is-legs,.wardrobe-character:has(.wardrobe-hit-area.is-legs:focus-visible) .wardrobe-garment-hover.is-legs,.wardrobe-character:has(.wardrobe-hit-area.is-feet:hover) .wardrobe-garment-hover.is-feet,.wardrobe-character:has(.wardrobe-hit-area.is-feet:focus-visible) .wardrobe-garment-hover.is-feet { opacity:1; }
.wardrobe-current-slot { position:absolute; z-index:6; right:88%; top:17%; min-width:142px; display:grid; gap:1px; padding:8px 12px; border:3px solid #fff; border-radius:16px; color:#4d315d; background:rgba(255,253,247,.94); box-shadow:0 9px 22px rgba(55,32,79,.22); pointer-events:none; text-align:left; }
.wardrobe-current-slot span { color:var(--game-purple); font-size:.68rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.wardrobe-current-slot strong { font:700 1rem/1.05 "Fredoka",sans-serif; }
.wardrobe-hit-area { position:absolute; z-index:4; left:50%; display:block; border:0; border-radius:0; padding:0; background:transparent; cursor:default; transform:translateX(-50%); -webkit-tap-highlight-color:transparent; }
button.wardrobe-hit-area { cursor:pointer; }
.wardrobe-hit-area.is-head { top:1%; width:48%; height:35%; border-radius:48% 48% 42% 42%; }
.wardrobe-hit-area.is-body { top:35%; width:49%; height:25%; }
.wardrobe-hit-area.is-legs { top:57%; width:38%; height:21%; }
.wardrobe-hit-area.is-feet { top:79%; width:39%; height:16%; border-radius:0; }
.wardrobe-hit-area:hover,.wardrobe-hit-area:focus-visible { background:transparent; outline:none; }
.wardrobe-character-name { position:absolute; z-index:5; bottom:0; left:50%; transform:translate(-50%,52%); min-width:max-content; padding:5px 13px; border:2px solid #fff; border-radius:999px; color:#fff; background:rgba(101,65,170,.9); box-shadow:0 6px 14px rgba(55,32,79,.22); font:700 .9rem "Fredoka",sans-serif; pointer-events:none; }
.wardrobe-options { position:absolute; z-index:8; left:0; right:0; bottom:5px; min-height:0; display:grid; place-items:end center; padding:7px 8px; border:0; background:transparent; box-shadow:none; }
.wardrobe-option-list { width:min(100%,540px); display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); justify-content:center; gap:3px; }
.wardrobe-option { min-width:0; min-height:64px; display:grid; place-items:center; align-content:center; gap:2px; padding:4px 2px; border:1px solid rgba(255,255,255,.92); border-radius:12px; color:#4c3860; background:rgba(255,255,255,.7); box-shadow:0 4px 9px rgba(67,39,79,.13); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); cursor:pointer; font:inherit; transition:transform .16s,color .16s,filter .16s,background-color .16s; }
.wardrobe-option span { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:transparent; font-size:1.35rem; box-shadow:none; }
.wardrobe-option span svg { display:block; width:100%; height:100%; overflow:visible; }
.wardrobe-option strong { overflow:hidden; max-width:100%; font:700 .66rem/1.05 "Fredoka",sans-serif; text-overflow:ellipsis; text-shadow:0 1px 3px #fff,0 0 8px #fff; white-space:nowrap; }
.wardrobe-option:hover,.wardrobe-option:focus-visible { transform:translateY(-4px); filter:drop-shadow(0 2px 3px rgba(67,39,79,.3)); }
.wardrobe-option:focus-visible { outline:3px solid #fff; outline-offset:2px; }
.wardrobe-option.is-selected { color:#713fb4; background:rgba(255,255,255,.88); box-shadow:0 6px 16px rgba(67,39,79,.18); transform:translateY(-3px) scale(1.04); }
.wardrobe-option.is-selected span { filter:drop-shadow(0 0 7px #ffd75a); }
.wardrobe-accessories-tab { position:absolute; z-index:8; left:calc(50% + min(235px,24vw)); top:25%; min-width:112px; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:0 7px; padding:8px 12px; border:3px solid #fff; border-radius:18px; color:#51345f; background:rgba(255,253,247,.94); box-shadow:0 9px 22px rgba(55,32,79,.22); cursor:pointer; font-family:"Fredoka",sans-serif; text-align:left; }
.wardrobe-accessories-tab>span { grid-row:1/3; font-size:1.45rem; }.wardrobe-accessories-tab strong{font-size:.82rem}.wardrobe-accessories-tab small{font-size:.64rem;font-weight:700}.wardrobe-accessories-tab.is-active{color:#fff;background:linear-gradient(180deg,#9a6be8,#7047c5)}
.wardrobe-option.is-locked { cursor:not-allowed; filter:grayscale(.65); opacity:.58; }.wardrobe-option.is-locked:hover{transform:none}.wardrobe-option>small{font-size:.52rem;font-weight:800}
.character-avatar,.game-menu-avatar,.scene-player,.bathroom-brushing-character,.pool-child,.slide-player,.castle-character,.character-directory-avatar { position:relative; }
.scene-player-kitchen { position:absolute; }
.game-menu-avatar { display:block; width:42px; height:42px; }.game-menu-avatar>img{width:100%;height:100%;object-fit:contain}
.wardrobe-accessory { position:absolute; z-index:5; left:50%; top:3%; display:grid; place-items:center; width:26%; aspect-ratio:1; font-size:clamp(1.3rem,4vw,3rem); line-height:1; filter:drop-shadow(0 3px 3px rgba(55,32,79,.28)); pointer-events:none; transform:translateX(-50%); }
.wardrobe-accessory.accessory-bow{left:63%;top:11%}.wardrobe-accessory.accessory-cap{top:0;font-size:clamp(1.55rem,5vw,3.6rem)}.wardrobe-accessory.accessory-glasses{top:18%;font-size:clamp(1.25rem,4.2vw,3.1rem)}.wardrobe-accessory.accessory-flowers{top:1%;font-size:clamp(1.5rem,5vw,3.5rem)}.wardrobe-accessory.accessory-headphones{top:11%;font-size:clamp(1.5rem,5vw,3.5rem)}.wardrobe-accessory.accessory-tiara{top:-2%;font-size:clamp(1.45rem,4.6vw,3.4rem)}
.wardrobe-accessory.is-back.accessory-bow{left:38%}.wardrobe-accessory.is-back.accessory-cap{transform:translateX(-50%) scaleX(-1)}

@media(max-width:760px){
  .wardrobe-heading { top:10px; left:10px; padding:7px 10px; border-radius:15px; }.wardrobe-heading span{font-size:.6rem}.wardrobe-heading strong{font-size:.88rem}
  .wardrobe-done { top:10px; right:10px; min-height:40px; padding:5px 10px 5px 6px; }.wardrobe-done span{width:25px;height:25px}.wardrobe-done strong{font-size:.8rem}
  .wardrobe-character { bottom:22%; width:min(330px,64%); }
  .wardrobe-accessories-tab { left:auto; right:10px; top:20%; min-width:96px; padding:6px 8px; }.wardrobe-accessories-tab>span{font-size:1.2rem}.wardrobe-accessories-tab strong{font-size:.7rem}.wardrobe-accessories-tab small{font-size:.55rem}
  .wardrobe-current-slot { right:74%; top:16%; min-width:110px; padding:6px 8px; border-width:2px; border-radius:12px; }.wardrobe-current-slot span{font-size:.53rem}.wardrobe-current-slot strong{font-size:.78rem}
  .wardrobe-options { left:8px; right:8px; bottom:7px; width:auto; min-height:0; grid-template-columns:1fr; gap:5px; padding:7px 8px; border-radius:18px; }
  .wardrobe-option-list { width:100%; grid-template-columns:repeat(7,minmax(0,1fr)); justify-content:center; gap:2px; }
  .wardrobe-option { min-height:49px; padding:2px 1px; border-radius:10px; }.wardrobe-option span{width:25px;height:25px;border-radius:8px;font-size:1rem}.wardrobe-option strong{font-size:.5rem}
}

@media(max-width:390px){
  .wardrobe-character { bottom:23%; width:66%; }
  .wardrobe-option strong { max-width:72px; }
}

@media(prefers-reduced-motion:reduce){.wardrobe-hit-area,.wardrobe-option,.wardrobe-done{transition:none}}

/* Bedroom, dance, and bathroom activities. */
.scene-wardrobe,.scene-bathroom,.scene-dance { background-position:center; }
.scene-wardrobe::after,.scene-bathroom::after,.scene-dance::after { background:linear-gradient(180deg,rgba(255,255,255,.01) 55%,rgba(75,38,60,.16)); }
.bedroom-hotspot,.bathroom-hotspot { position:absolute; z-index:7; display:grid; place-items:center; align-content:center; gap:4px; padding:0; border:0; color:#51345f; background:transparent; cursor:pointer; font:inherit; -webkit-tap-highlight-color:transparent; }
.bedroom-hotspot::before,.bathroom-hotspot::before { content:""; position:absolute; inset:8%; border:4px solid rgba(255,255,255,.82); border-radius:28px; opacity:0; background:rgba(255,255,255,.14); box-shadow:0 0 22px rgba(255,255,255,.82),inset 0 0 25px rgba(255,255,255,.28); transition:opacity .18s,filter .18s; }
.bedroom-hotspot::before { border:0; background:rgba(255,246,177,.26); box-shadow:none; filter:brightness(1.08) saturate(1.08); }
.bedroom-bathroom-door::before { display:none; }
.bedroom-door-highlight { position:absolute; inset:0; width:100%; height:100%; opacity:0; pointer-events:none; transition:opacity .18s; }
.bedroom-door-highlight path { fill:rgba(255,244,164,.22); }
.bedroom-bathroom-door:hover .bedroom-door-highlight,.bedroom-bathroom-door:focus-visible .bedroom-door-highlight { opacity:1; }
.bathroom-hotspot::before { border:0; box-shadow:none; }
.bedroom-hotspot>span,.bedroom-hotspot>strong,.bathroom-hotspot>span,.bathroom-hotspot>strong { position:relative; z-index:1; pointer-events:none; }
.bedroom-hotspot>span,.bathroom-hotspot>span { font-size:clamp(1.5rem,3vw,2.35rem); filter:drop-shadow(0 3px 5px rgba(61,32,72,.28)); }
.bedroom-hotspot>strong,.bathroom-hotspot>strong { padding:7px 13px; border:3px solid #fff; border-radius:999px; background:rgba(255,255,255,.88); box-shadow:0 7px 16px rgba(65,36,74,.2); font:700 clamp(.76rem,1.25vw,.98rem)/1 "Fredoka",sans-serif; }
.bedroom-hotspot:hover::before,.bedroom-hotspot:focus-visible::before,.bathroom-hotspot:hover::before,.bathroom-hotspot:focus-visible::before { opacity:1; }
.bedroom-hotspot:hover,.bedroom-hotspot:focus-visible,.bathroom-hotspot:hover,.bathroom-hotspot:focus-visible { outline:none; }
.bathroom-hotspot:hover,.bathroom-hotspot:focus-visible { transform:scale(1.04); }
.bedroom-dance-hotspot { position:absolute; z-index:3; left:65%; top:56%; width:23%; height:14%; padding:0; border:0; background:transparent; cursor:pointer; transform:translate(-50%,-50%); -webkit-tap-highlight-color:transparent; }
.bedroom-dance-tiles { position:absolute; inset:0; display:grid; grid-template-columns:repeat(5,1fr); grid-template-rows:repeat(3,1fr); gap:3px; padding:3px; overflow:hidden; border:3px solid rgba(255,255,255,.84); border-radius:7px; background:#3d185c; box-shadow:0 9px 17px rgba(47,24,70,.28),0 0 15px rgba(201,74,255,.4); clip-path:polygon(10% 0,90% 0,100% 100%,0 100%); transform:perspective(280px) rotateX(52deg); transform-origin:center bottom; pointer-events:none; transition:filter .16s,box-shadow .16s; }
.bedroom-dance-tiles>i { min-width:0; min-height:0; border:1px solid rgba(255,255,255,.42); border-radius:2px; background:linear-gradient(145deg,#ff35bc,#d90ac6); box-shadow:inset 0 0 9px rgba(255,255,255,.7),0 0 7px rgba(255,55,192,.72); }
.bedroom-dance-tiles>i:nth-child(5n+1) { background:linear-gradient(145deg,#20b8ff,#245bff); box-shadow:inset 0 0 9px rgba(255,255,255,.72),0 0 7px rgba(45,119,255,.78); }
.bedroom-dance-tiles>i:nth-child(5n+2) { background:linear-gradient(145deg,#ff8e32,#ff3f96); box-shadow:inset 0 0 9px rgba(255,255,255,.7),0 0 7px rgba(255,86,133,.72); }
.bedroom-dance-tiles>i:nth-child(5n+4) { background:linear-gradient(145deg,#a643ff,#6246ff); box-shadow:inset 0 0 9px rgba(255,255,255,.72),0 0 7px rgba(111,67,255,.78); }
.bedroom-dance-tiles>i:nth-child(7n) { background:linear-gradient(145deg,#ffe733,#ff9d16); box-shadow:inset 0 0 9px rgba(255,255,255,.74),0 0 7px rgba(255,183,25,.78); }
.bedroom-dance-hotspot:hover .bedroom-dance-tiles,.bedroom-dance-hotspot:focus-visible .bedroom-dance-tiles { filter:brightness(1.14) saturate(1.12); box-shadow:0 10px 19px rgba(47,24,70,.32),0 0 22px rgba(201,74,255,.72); }
.bedroom-dance-hotspot:focus-visible { outline:3px solid rgba(255,255,255,.92); outline-offset:4px; border-radius:8px; }
.bedroom-bathroom-door { right:5%; top:0; width:12%; height:75%; }
.bedroom-feedback,.bathroom-feedback { position:absolute; z-index:14; left:50%; top:15%; max-width:min(420px,70%); padding:12px 18px; border:4px solid #fff; border-radius:22px; color:#4d315d; background:rgba(255,255,255,.94); box-shadow:0 12px 28px rgba(62,35,72,.25); transform:translateX(-50%); font:700 clamp(.88rem,1.5vw,1.08rem)/1.18 "Fredoka",sans-serif; text-align:center; animation:bathroom-feedback-pop .32s ease-out both; }
.bathroom-brush { left:27%; top:30%; width:18%; height:28%; }
.bathroom-wash { right:25%; top:30%; width:18%; height:28%; }
.bathroom-return { position:absolute; z-index:10; right:14px; bottom:16px; min-height:48px; display:flex; align-items:center; gap:7px; padding:7px 14px 7px 8px; border:3px solid #fff; border-radius:999px; color:#fff; background:linear-gradient(180deg,#50bfc5,#2d9ea8); box-shadow:0 8px 18px rgba(33,98,105,.3); cursor:pointer; font:inherit; }
.bathroom-return span { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; color:#28868e; background:#fff; font-weight:900; }
.bathroom-return strong { font:700 .92rem "Fredoka",sans-serif; }
.bathroom-feedback { top:66%; display:grid; gap:4px; min-width:min(330px,70%); }
.bathroom-feedback span { font-size:1.6rem; }
.bathroom-toilet-note { position:absolute; z-index:5; right:1.5%; top:39%; display:grid; place-items:center; width:34px; height:34px; padding:0; border:2px solid rgba(255,255,255,.88); border-radius:50%; color:#67556f; background:rgba(255,255,255,.72); opacity:.8; font-size:.9rem; pointer-events:none; }
.scene-player-bathroom { left:50%; bottom:1%; width:min(31vw,340px); height:min(62vh,540px); transform:translate(-50%,18%); }
.bathroom-brush>strong { display:grid; gap:2px; min-width:126px; }
.bathroom-brush::before,.bathroom-brush.is-gated::before { display:none; }
.bathroom-hotspot-brush { width:clamp(58px,6.8vw,88px); height:clamp(87px,10.2vw,132px); display:block; filter:drop-shadow(0 5px 6px rgba(65,38,30,.3)); transform:translateY(-32%) rotate(7deg); transform-origin:center 70%; transition:transform .18s,filter .18s; }
.bathroom-hotspot-brush img { display:block; width:100%; height:100%; object-fit:contain; }
.bathroom-brush:not(.is-gated):hover .bathroom-hotspot-brush,.bathroom-brush:not(.is-gated):focus-visible .bathroom-hotspot-brush { filter:drop-shadow(0 7px 8px rgba(65,38,30,.36)); transform:translateY(-32%) rotate(-5deg) scale(1.08); }
.bathroom-brush small { color:#8b6a97; font-size:.58rem; letter-spacing:.04em; text-transform:uppercase; }
.bathroom-brush b { color:#673d88; font-size:.82rem; font-variant-numeric:tabular-nums; }
.bathroom-brush.is-gated { opacity:.9; cursor:not-allowed; }
.bathroom-brush-result { gap:9px; }
.bathroom-brush-result button,.bathroom-brush-exit { min-height:40px; padding:8px 17px; border:3px solid #fff; border-radius:999px; color:#fff; background:#7145d7; box-shadow:0 6px 14px rgba(62,35,72,.25); cursor:pointer; font:700 .8rem "Fredoka",sans-serif; }
.bathroom-brush-game { overflow:hidden; cursor:none; touch-action:none; }
.bathroom-brush-game * { cursor:inherit; }
.bathroom-brush-hud { position:absolute; z-index:12; left:50%; top:2.5%; width:min(410px,74%); display:grid; justify-items:center; gap:3px; padding:10px 18px; border:4px solid #fff; border-radius:22px; color:#543167; background:rgba(255,253,248,.96); box-shadow:0 12px 28px rgba(62,35,72,.24); transform:translateX(-50%); text-align:center; }
.bathroom-brush-hud>span { color:#4a9e9a; font-size:.7rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.bathroom-brush-hud>strong { font:700 clamp(1.8rem,4vw,2.7rem)/.9 "Fredoka",sans-serif; font-variant-numeric:tabular-nums; }
.bathroom-brush-hud>i { width:100%; height:9px; overflow:hidden; border-radius:999px; background:#e8dcf5; }
.bathroom-brush-hud>i>em { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#55c7cb,#ff75aa,#ffd65a); transition:width .18s linear; }
.bathroom-brush-hud>i>em.is-parent-bonus { animation:bathroom-progress-leap .75s cubic-bezier(.2,.85,.3,1); }
.bathroom-brushing-character { position:absolute; z-index:8; left:50%; top:52%; width:min(48vw,62vh,560px); aspect-ratio:1; display:grid; place-items:center; transform:translate(-50%,-50%); filter:drop-shadow(0 14px 16px rgba(65,38,30,.3)); }
.bathroom-brushing-character>img { width:100%; height:100%; object-fit:contain; object-position:center bottom; pointer-events:none; user-select:none; }
.bathroom-mouth-target { position:absolute; left:var(--bathroom-mouth-x,50%); top:var(--bathroom-mouth-y,31%); width:17%; aspect-ratio:1.3; display:grid; place-items:center; padding:0; border:0; border-radius:50%; appearance:none; color:#fff; background:transparent; box-shadow:none; outline:0; transform:translate(-50%,-50%); touch-action:none; transition:transform .16s; }
.bathroom-brushing-character[data-character="janavan"] { --bathroom-mouth-x:53%; --bathroom-mouth-y:36%; }
.bathroom-brushing-character[data-character="ellion"] { --bathroom-mouth-x:47%; --bathroom-mouth-y:29%; }
.bathroom-brushing-character[data-character="nikodian"] { --bathroom-mouth-x:50%; --bathroom-mouth-y:32%; }
.bathroom-brushing-character[data-character="polian"] { --bathroom-mouth-x:47%; --bathroom-mouth-y:28%; }
.bathroom-brushing-character[data-character="kaelian"] { --bathroom-mouth-x:48%; --bathroom-mouth-y:31%; }
.bathroom-cursor-brush { position:absolute; z-index:30; left:var(--bathroom-cursor-x,50%); top:var(--bathroom-cursor-y,50%); width:72px; height:108px; opacity:0; filter:drop-shadow(0 5px 6px rgba(65,38,30,.34)); transform:translate(-50%,-22%) rotate(-32deg); transform-origin:50% 22%; pointer-events:none; transition:opacity .08s; }
.bathroom-cursor-brush.is-visible { opacity:1; }
.bathroom-cursor-brush img { display:block; width:100%; height:100%; object-fit:contain; pointer-events:none; user-select:none; }
.bathroom-mouth-foam { position:absolute; inset:-9% -22% -12%; overflow:visible; border-radius:46% 54% 50% 50%; opacity:0; background:radial-gradient(circle at 10% 62%,#fff 0 10%,transparent 11%),radial-gradient(circle at 26% 43%,#e5faff 0 14%,transparent 15%),radial-gradient(circle at 45% 62%,#fff 0 17%,transparent 18%),radial-gradient(circle at 66% 38%,#e4f9ff 0 15%,transparent 16%),radial-gradient(circle at 87% 59%,#fff 0 12%,transparent 13%),linear-gradient(175deg,transparent 20%,rgba(255,255,255,.98) 38% 70%,rgba(199,240,249,.94) 71% 82%,transparent 83%); filter:drop-shadow(0 2px 5px rgba(69,181,199,.42)); pointer-events:none; transform:scale(.68) rotate(-3deg); }
.bathroom-mouth-foam::before { content:""; position:absolute; left:8%; right:7%; bottom:13%; height:35%; border-radius:50% 45% 52% 48%; background:linear-gradient(180deg,#fff 0 42%,#d8f7fd 55% 78%,rgba(255,255,255,.92)); box-shadow:inset 0 -3px 4px rgba(75,187,205,.24),0 0 5px rgba(255,255,255,.9); transform:rotate(2deg); }
.bathroom-mouth-foam i { position:absolute; z-index:1; width:18%; aspect-ratio:1; border:2px solid rgba(255,255,255,.98); border-radius:50%; background:radial-gradient(circle at 34% 27%,#fff 0 22%,#dff8fd 42% 74%,#a9e2ec 100%); box-shadow:inset 0 0 4px rgba(89,190,204,.34),0 0 5px rgba(255,255,255,.9); }
.bathroom-mouth-foam i:nth-child(1){left:0;top:51%}.bathroom-mouth-foam i:nth-child(2){left:12%;top:22%;width:23%}.bathroom-mouth-foam i:nth-child(3){left:29%;top:42%;width:25%}.bathroom-mouth-foam i:nth-child(4){left:48%;top:13%;width:22%}.bathroom-mouth-foam i:nth-child(5){right:11%;top:38%;width:24%}.bathroom-mouth-foam i:nth-child(6){right:0;top:14%;width:17%}.bathroom-mouth-foam i:nth-child(7){left:18%;bottom:-2%;width:16%}.bathroom-mouth-foam i:nth-child(8){left:44%;bottom:-8%;width:18%}.bathroom-mouth-foam i:nth-child(9){right:17%;bottom:0;width:15%}.bathroom-mouth-foam i:nth-child(10){right:-4%;bottom:28%;width:13%}
.bathroom-mouth-target.is-brushing { background:transparent; box-shadow:none; transform:translate(-50%,-50%) scale(1.08); }
.bathroom-mouth-target.is-brushing .bathroom-mouth-foam { opacity:1; animation:bathroom-mouth-foam-pulse .46s ease-in-out infinite alternate; }
.bathroom-mouth-target.is-brushing .bathroom-mouth-foam i { animation:bathroom-foam-bubble .78s ease-in-out infinite alternate; }
.bathroom-mouth-target.is-brushing .bathroom-mouth-foam i:nth-child(2n) { animation-delay:-.31s; }.bathroom-mouth-target.is-brushing .bathroom-mouth-foam i:nth-child(3n) { animation-delay:-.52s; }
.bathroom-brushing-character.is-brushing>img { animation:bathroom-character-brush .64s ease-in-out infinite alternate; }
.bathroom-brush-instruction { position:absolute; z-index:11; left:50%; bottom:3%; width:max-content; max-width:70%; margin:0; padding:8px 14px; border:3px solid #fff; border-radius:999px; color:#543167; background:rgba(255,253,248,.94); box-shadow:0 8px 18px rgba(62,35,72,.2); transform:translateX(-50%); font:700 clamp(.7rem,1.5vw,.92rem)/1.1 "Fredoka",sans-serif; text-align:center; }
.bathroom-brush-exit { position:absolute; z-index:13; left:14px; bottom:15px; }
.bathroom-parent-check { position:absolute; z-index:14; right:1%; bottom:0; width:min(33vw,350px); height:min(70%,590px); pointer-events:none; animation:bathroom-mum-arrive .55s cubic-bezier(.2,.78,.24,1.2) both; }
.bathroom-parent-check[hidden] { display:none; }
.bathroom-parent-check img { position:absolute; right:0; bottom:-2%; height:88%; max-width:72%; object-fit:contain; object-position:right bottom; filter:drop-shadow(0 12px 15px rgba(65,38,30,.28)); }
.bathroom-parent-check strong { position:absolute; right:46%; top:9%; width:max-content; max-width:235px; padding:12px 16px; border:4px solid #fff; border-radius:23px; color:#543167; background:rgba(255,253,248,.97); box-shadow:0 10px 24px rgba(62,35,72,.24); font:700 clamp(.82rem,1.5vw,1.05rem)/1.15 "Fredoka",sans-serif; text-align:center; }
.bathroom-parent-check strong::after { content:""; position:absolute; left:78%; top:100%; border:12px solid transparent; border-top-color:#fff; transform:rotate(-14deg); transform-origin:top; }
.bathroom-parent-check>span { position:absolute; right:47%; top:30%; width:max-content; padding:7px 12px; border:3px solid #fff; border-radius:999px; color:#7042a7; background:#fff27a; box-shadow:0 7px 18px rgba(62,35,72,.22); font:800 clamp(.68rem,1.2vw,.84rem) "Fredoka",sans-serif; animation:bathroom-bonus-pop .55s ease both; }
.bathroom-parent-check>span[hidden] { display:none; }
.bathroom-mum-reminder { position:absolute; z-index:13; right:10%; bottom:0; width:min(34vw,360px); height:min(72%,610px); pointer-events:none; animation:bathroom-mum-arrive .55s cubic-bezier(.2,.78,.24,1.2) both; }
.bathroom-mum-reminder img { position:absolute; right:0; bottom:-2%; height:90%; max-width:72%; object-fit:contain; object-position:right bottom; filter:drop-shadow(0 12px 15px rgba(65,38,30,.28)); }
.bathroom-mum-reminder strong { position:absolute; right:48%; top:8%; width:max-content; max-width:230px; padding:12px 16px; border:4px solid #fff; border-radius:23px; color:#543167; background:rgba(255,253,248,.97); box-shadow:0 10px 24px rgba(62,35,72,.24); font:700 clamp(.82rem,1.5vw,1.05rem)/1.15 "Fredoka",sans-serif; text-align:center; }
.bathroom-mum-reminder strong::after { content:""; position:absolute; left:78%; top:100%; border:12px solid transparent; border-top-color:#fff; transform:rotate(-14deg); transform-origin:top; }
@keyframes bathroom-feedback-pop { from{opacity:0;transform:translateX(-50%) scale(.8)} to{opacity:1;transform:translateX(-50%) scale(1)} }
@keyframes bedroom-dance-ring { from{opacity:.68;transform:scale(.92)} to{opacity:1;transform:scale(1.05)} }

.dance-world { overflow:hidden; }
.dance-heading { position:absolute; z-index:9; left:18px; top:16px; display:grid; gap:1px; padding:9px 15px; border:3px solid #fff; border-radius:18px; color:#4d315d; background:rgba(255,253,247,.94); box-shadow:0 10px 24px rgba(76,45,25,.2); }
.dance-heading span { color:#944ec9; font-size:.7rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.dance-heading strong { font:700 clamp(.95rem,1.8vw,1.18rem)/1.08 "Fredoka",sans-serif; }
.dance-character { position:absolute; z-index:6; left:27%; bottom:1%; width:min(31vw,360px); height:min(64vh,560px); display:grid; place-items:end center; filter:drop-shadow(0 15px 13px rgba(57,25,83,.38)); animation:dance-character-groove .78s ease-in-out infinite alternate; transform-origin:center bottom; }
.dance-character>img { width:100%; height:100%; object-fit:contain; object-position:center bottom; pointer-events:none; user-select:none; }
.dance-character>span,.dance-character>i { position:absolute; color:#fff; font:900 clamp(1.5rem,3vw,2.5rem)/1 "Fredoka",sans-serif; text-shadow:0 0 8px #ff5bc2,0 3px 3px #6745c8; animation:dance-note-float 1.3s ease-in-out infinite; }
.dance-character>span { left:8%; top:20%; }.dance-character>i{right:7%;top:9%;animation-delay:-.55s}
.dance-back { position:absolute; z-index:10; right:14px; bottom:14px; min-height:46px; display:flex; align-items:center; gap:7px; padding:7px 14px 7px 8px; border:3px solid #fff; border-radius:999px; color:#fff; background:linear-gradient(180deg,#9b62e8,#6740c4); box-shadow:0 8px 18px rgba(55,31,102,.32); cursor:pointer; font:inherit; }
.dance-back span { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; color:#7047c5; background:#fff; font-weight:900; }
.dance-back strong { font:700 .88rem "Fredoka",sans-serif; }
.dance-start-card,.dance-end-card { position:absolute; z-index:15; left:58%; top:51%; width:min(520px,52%); padding:24px; border:4px solid #fff; border-radius:28px; color:#42255d; background:rgba(255,253,255,.95); box-shadow:0 22px 58px rgba(42,12,72,.42),0 0 34px rgba(230,75,255,.28); transform:translate(-50%,-50%); text-align:center; backdrop-filter:blur(12px); }
.dance-start-card h2,.dance-end-card h2 { margin:5px 0 8px; color:#6022a3; font:800 clamp(1.55rem,3.2vw,2.4rem)/1 "Fredoka",sans-serif; }
.dance-start-card p,.dance-end-card p { margin:0 auto 16px; max-width:42ch; font-size:clamp(.92rem,1.7vw,1.08rem); line-height:1.42; }
.dance-start-card>button,.dance-end-card>button { min-height:54px; margin:15px auto 8px; padding:10px 23px; border:3px solid #fff; border-radius:999px; color:#fff; background:linear-gradient(135deg,#ff3cad,#773df0); box-shadow:0 9px 22px rgba(91,34,170,.34); cursor:pointer; font:800 1.05rem "Fredoka",sans-serif; }
.dance-start-card>button:disabled { filter:grayscale(.55); cursor:not-allowed; opacity:.7; }
.dance-start-card>small { display:block; margin-top:8px; color:#745a82; font-weight:700; }
.dance-play-facts { display:flex; justify-content:center; gap:10px; flex-wrap:wrap; }
.dance-play-facts span { min-width:132px; padding:9px 13px; border:2px solid #e6d6f7; border-radius:15px; color:#624178; background:#f8f0ff; }
.dance-play-facts b { color:#8c36d5; font-size:1.05rem; }
.dance-cooldown { display:block; margin:16px auto 4px; color:#6b3b8f; font-size:1.05rem; }
.dance-cooldown b { display:block; margin-top:5px; color:#e52e9a; font:800 1.65rem/1 "Fredoka",sans-serif; }
.dance-camera-stage { position:absolute; z-index:4; inset:8% 14% 3% 14%; overflow:hidden; border:5px solid rgba(255,255,255,.88); border-radius:30px; background:rgba(18,5,48,.86); box-shadow:0 18px 50px rgba(31,7,62,.5),0 0 38px rgba(61,225,255,.34); }
.dance-camera-stage video,.dance-camera-stage canvas { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scaleX(-1); }
.dance-camera-stage canvas { z-index:2; pointer-events:none; }
.dance-camera-badge { position:absolute; z-index:3; right:12px; top:12px; padding:7px 11px; border:2px solid rgba(255,255,255,.86); border-radius:999px; color:#fff; background:rgba(39,16,78,.72); font:700 .68rem "Fredoka",sans-serif; }
.dance-character.is-dance-buddy { z-index:7; left:auto; right:1.5%; bottom:1%; width:min(18vw,190px); height:min(37vh,310px); }
.dance-free-prompt { position:absolute; z-index:11; left:50%; bottom:4%; display:grid; justify-items:center; gap:2px; min-width:min(420px,62%); padding:9px 18px; border:3px solid #fff; border-radius:22px; color:#54266f; background:rgba(255,252,255,.94); box-shadow:0 9px 24px rgba(45,16,75,.3); transform:translateX(-50%); text-align:center; }
.dance-free-prompt strong { color:#b023a4; font:800 clamp(1rem,2vw,1.28rem) "Fredoka",sans-serif; }
.dance-free-prompt span { font-size:clamp(.7rem,1.3vw,.88rem); font-weight:700; }
.dance-camera-consent { position:absolute; z-index:24; left:50%; top:51%; width:min(570px,calc(100% - 36px)); padding:23px; border:4px solid #fff; border-radius:30px; color:#43245c; background:rgba(255,253,255,.97); box-shadow:0 22px 70px rgba(28,6,62,.58); transform:translate(-50%,-50%); text-align:center; backdrop-filter:blur(14px); }
.dance-camera-consent>span { font-size:2rem; }.dance-camera-consent h2{margin:3px 0 8px;color:#7025aa;font:800 clamp(1.45rem,3vw,2.15rem) "Fredoka",sans-serif}.dance-camera-consent p{max-width:44ch;margin:0 auto 14px;line-height:1.4}.dance-camera-consent>div{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.dance-camera-consent button{min-height:47px;padding:8px 17px;border:3px solid #fff;border-radius:999px;color:#fff;background:linear-gradient(135deg,#ff3cad,#773df0);box-shadow:0 8px 18px rgba(91,34,170,.3);cursor:pointer;font:800 .9rem "Fredoka",sans-serif}.dance-camera-consent button+button{color:#634279;background:#f3e9fb;border-color:#dbc5ee}.dance-camera-consent small{display:block;margin-top:10px;color:#735a80;font-weight:700}
.dance-question-card { position:absolute; z-index:22; left:50%; top:49%; width:min(620px,calc(100% - 32px)); display:grid; justify-items:center; gap:14px; padding:22px; border:5px solid #fff; border-radius:30px; color:#fff; background:linear-gradient(145deg,rgba(88,25,159,.96),rgba(221,38,165,.94)); box-shadow:0 20px 55px rgba(35,8,72,.55),0 0 38px rgba(255,238,78,.38); transform:translate(-50%,-50%); backdrop-filter:blur(12px); }
.dance-question-card>small { font-weight:800; letter-spacing:.03em; }
.dance-equation { display:flex; align-items:center; justify-content:center; gap:10px; min-width:min(470px,90%); padding:9px 18px; border:3px solid rgba(255,255,255,.92); border-radius:22px; color:#fff; background:rgba(49,13,92,.74); box-shadow:0 10px 25px rgba(38,9,68,.32); }
.dance-equation span,.dance-equation strong { min-width:42px; font:900 clamp(1.55rem,3.4vw,2.55rem)/1 "Fredoka",sans-serif; text-align:center; text-shadow:0 0 12px #ff5ed1; }
.dance-equation b { font:800 clamp(1.2rem,2.3vw,1.8rem)/1 "Fredoka",sans-serif; }
.dance-answer-choices { display:flex; gap:15px; }
.dance-answer-choices button { min-width:95px; min-height:74px; border:4px solid #fff; border-radius:23px; color:#fff; background:linear-gradient(145deg,#ff3fb5,#713cf0); box-shadow:0 13px 28px rgba(40,13,71,.4),0 0 24px rgba(239,67,255,.28); cursor:pointer; font:900 clamp(1.6rem,3.4vw,2.4rem)/1 "Fredoka",sans-serif; }
.dance-answer-choices button:hover,.dance-answer-choices button:focus-visible { outline:none; transform:translateY(-5px) scale(1.05); box-shadow:0 17px 34px rgba(40,13,71,.46),0 0 32px rgba(255,230,75,.55); }
.dance-correct-burst { padding:12px 20px; border:3px solid #fff; border-radius:999px; color:#65318c; background:#fff673; font:900 clamp(1.25rem,3vw,2rem) "Fredoka",sans-serif; animation:dance-correct-pop .55s ease both; }
.dance-end-card>span { color:#f2a900; font-size:2rem; letter-spacing:.18em; }
@keyframes dance-correct-pop { from{opacity:0;transform:scale(.65) rotate(-5deg)} to{opacity:1;transform:scale(1) rotate(0)} }
@keyframes dance-character-groove { from{transform:translateY(2px) rotate(-2deg)} to{transform:translateY(-8px) rotate(2deg)} }
@keyframes dance-note-float { 0%{opacity:.25;transform:translateY(14px) rotate(-8deg) scale(.8)} 55%{opacity:1} 100%{opacity:.35;transform:translateY(-16px) rotate(9deg) scale(1.16)} }
@media(max-width:760px){
  .dance-start-card,.dance-end-card{left:50%;top:48%;width:calc(100% - 28px);padding:18px 15px}.dance-character{opacity:.65}.dance-camera-stage{inset:12% 2% 8%}.dance-character.is-dance-buddy{right:0;width:min(28vw,145px);height:min(31vh,230px);opacity:1}.dance-free-prompt{bottom:2%;min-width:70%;max-width:72%;padding:6px 10px}.dance-question-card{top:48%;padding:16px 10px}.dance-equation{min-width:82%;padding:7px 10px}.dance-answer-choices{gap:8px}.dance-answer-choices button{min-width:76px;min-height:62px;border-radius:18px}.dance-back{z-index:25}
}
@media(max-height:600px) and (orientation:landscape){.dance-start-card,.dance-end-card{top:48%;padding:13px 17px}.dance-start-card p,.dance-end-card p{margin-bottom:8px}.dance-start-card>button,.dance-end-card>button{min-height:44px;margin-top:8px}.dance-camera-stage{inset:4% 15% 3%}.dance-question-card{top:49%;padding:12px}.dance-answer-choices button{min-height:56px}}
@media(prefers-reduced-motion:reduce){.dance-correct-burst{animation:none}}

@media(max-width:760px){
  .wardrobe-heading { max-width:61%; }
  .bedroom-dance-hotspot { left:63%; top:54%; width:32%; height:13%; }
  .bedroom-dance-tiles { gap:2px; padding:2px; border-width:2px; }
  .bedroom-bathroom-door { right:0; top:6%; width:22%; height:53%; }
  .bedroom-hotspot>strong,.bathroom-hotspot>strong { padding:5px 9px; border-width:2px; font-size:.7rem; }
  .bedroom-hotspot>span,.bathroom-hotspot>span { font-size:1.45rem; }
  .bedroom-feedback { top:17%; max-width:58%; padding:9px 12px; border-width:3px; font-size:.78rem; }
  .bathroom-brush { left:24%; top:30%; width:24%; height:26%; }
  .bathroom-wash { right:18%; top:30%; width:25%; height:26%; }
  .bathroom-return { right:8px; bottom:8px; min-height:40px; padding:5px 10px 5px 6px; }
  .bathroom-return span { width:25px; height:25px; }
  .bathroom-return strong { font-size:.76rem; }
  .bathroom-feedback { top:61%; min-width:62%; padding:9px 12px; border-width:3px; }
  .bathroom-toilet-note { right:2%; top:37%; width:28px; height:28px; font-size:.72rem; }
  .scene-player-bathroom { left:50%; bottom:1%; width:min(42vw,220px); height:min(52vh,340px); }
  .bathroom-brushing-character { top:53%; width:min(64vw,68vh,390px); }
  .bathroom-brush-hud { top:1.5%; width:min(330px,70%); padding:7px 12px; border-width:3px; }
  .bathroom-brush-instruction { bottom:2%; max-width:58%; white-space:normal; }
  .bathroom-brush-exit { left:7px; bottom:7px; min-height:36px; padding:5px 9px; font-size:.68rem; }
  .bathroom-parent-check { right:0; width:min(48vw,260px); height:58%; }
  .bathroom-parent-check strong { right:38%; top:0; max-width:165px; padding:8px 10px; border-width:3px; }
  .bathroom-parent-check>span { right:39%; top:26%; padding:5px 8px; border-width:2px; }
  .bathroom-mum-reminder { right:18%; width:min(48vw,260px); height:58%; }
  .bathroom-mum-reminder strong { right:38%; top:0; max-width:165px; padding:8px 10px; border-width:3px; }
  .dance-heading { left:8px; top:8px; padding:7px 10px; border-width:3px; border-radius:15px; }.dance-heading span{font-size:.56rem}.dance-heading strong{font-size:.78rem}
  .dance-character { left:50%; bottom:1%; width:min(58vw,280px); height:min(49vh,390px); transform:translateX(-50%); animation-name:dance-character-groove-mobile; }
  .dance-back { right:7px; bottom:7px; min-height:39px; padding:5px 9px 5px 6px; }.dance-back span{width:24px;height:24px}.dance-back strong{font-size:.72rem}
}

@media(orientation:portrait) and (any-pointer:coarse){
  .scene-wardrobe,.scene-bathroom,.scene-dance { background-position:center top; }
  .bedroom-dance-hotspot { left:63%; top:50%; }
  .bedroom-bathroom-door { top:4%; height:49%; }
  .bathroom-brush { left:22%; top:27%; width:28%; height:24%; }
  .bathroom-wash { right:14%; top:27%; width:29%; height:24%; }
  .bathroom-toilet-note { top:34%; }
}

@media(prefers-reduced-motion:reduce){.bedroom-hotspot,.bathroom-hotspot,.bedroom-feedback,.bathroom-feedback{animation:none;transition:none}}
@keyframes dance-character-groove-mobile { from{transform:translateX(-50%) translateY(2px) rotate(-2deg)} to{transform:translateX(-50%) translateY(-7px) rotate(2deg)} }
@media(prefers-reduced-motion:reduce){.dance-character,.dance-character>span,.dance-character>i{animation:none}}
@keyframes bathroom-mouth-foam-pulse { from{transform:scale(.57) rotate(-2deg)} to{transform:scale(.76) rotate(2deg)} }
@keyframes bathroom-foam-bubble { from{opacity:.62;transform:translateY(3px) scale(.76)} to{opacity:1;transform:translateY(-5px) scale(1.22)} }
@keyframes bathroom-character-brush { from{transform:rotate(-.7deg) translateY(1px)} to{transform:rotate(.7deg) translateY(-2px)} }
@keyframes bathroom-mum-arrive { from{opacity:0;transform:translateX(34%) scale(.9)} to{opacity:1;transform:translateX(0) scale(1)} }
@keyframes bathroom-progress-leap { 0%{filter:brightness(1);box-shadow:none} 42%{filter:brightness(1.25);box-shadow:0 0 14px #fff27a;transform:scaleY(1.8)} 100%{filter:brightness(1);box-shadow:none;transform:scaleY(1)} }
@keyframes bathroom-bonus-pop { from{opacity:0;transform:translateY(9px) scale(.7)} to{opacity:1;transform:translateY(0) scale(1)} }
@media(prefers-reduced-motion:reduce){.bathroom-mouth-target.is-brushing .bathroom-mouth-foam,.bathroom-mouth-target.is-brushing .bathroom-mouth-foam i,.bathroom-brushing-character.is-brushing>img,.bathroom-mum-reminder,.bathroom-parent-check,.bathroom-parent-check>span,.bathroom-brush-hud>i>em.is-parent-bonus{animation:none}}
@media(any-pointer:coarse){.bathroom-brush-game{cursor:auto}.bathroom-cursor-brush{display:none}}

@media(max-width:760px){
  .playroom-castle-hotspot{right:0;top:12%;width:36%;height:52%}.playroom-castle-hotspot>span{top:3%;padding:8px 13px;border-width:3px;font-size:.9rem}
  .playroom-slide-hotspot{left:0;top:25%;width:34%;height:62%}.playroom-slide-hotspot>span{left:55%;top:0;padding:7px 11px;font-size:.86rem}
  .castle-game-header{left:2%;top:2%;width:96%;gap:7px;padding:7px 9px;border-radius:18px}.castle-game-header>div:first-child span{font-size:.58rem}.castle-game-header>div:first-child strong{font-size:.92rem}.castle-game-score{gap:4px}.castle-game-score span{min-width:57px;padding:4px;font-size:.6rem}.castle-game-score b{font-size:.95rem}.castle-arena{inset:44% 3% 5%}.castle-character{width:clamp(56px,15vw,84px)}.castle-bump-callout{top:16%;max-width:86%;font-size:.76rem}.castle-game-back{left:8px;bottom:8px;min-height:38px;padding:6px 11px;font-size:.76rem}.castle-result-card{width:calc(100% - 22px);gap:8px;padding:24px 18px}
  .slide-game-header{right:2%;left:auto;top:2%;width:58%;padding:7px 9px;border-width:3px;border-radius:16px}.slide-game-header strong{font-size:.95rem}.slide-game-header small{font-size:.67rem}.slide-player,.slide-friend{width:clamp(52px,14vw,80px);height:clamp(88px,18vh,138px)}.slide-player small{padding:4px 7px;border-width:2px;font-size:.62rem}.slide-jump-hint{right:2%;bottom:23%;max-width:45%;padding:6px 9px;border-width:2px;font-size:.7rem}.slide-game-back{left:6px;bottom:2%;min-height:38px;padding:5px 9px;font-size:.68rem}.slide-result-card{width:calc(100% - 22px);gap:8px;padding:24px 18px}
}
@media(max-height:600px) and (orientation:landscape){
  .castle-game-header{left:1%;top:1%;width:76%;padding:5px 8px;border-width:3px;border-radius:16px}.castle-game-header>div:first-child span{font-size:.52rem}.castle-game-header>div:first-child strong{font-size:.82rem}.castle-game-score span{min-width:52px;padding:3px;font-size:.55rem}.castle-game-score b{font-size:.82rem}.castle-arena{inset:38% 3% 3%}.castle-character{width:clamp(52px,10vh,76px)}.castle-bump-callout{top:10%;font-size:.7rem}.castle-game-back{left:1%;bottom:2%;min-height:34px;padding:5px 10px;font-size:.7rem}.castle-result-card{width:min(370px,calc(100% - 22px));gap:6px;padding:17px 18px}.castle-result-card>span{font-size:1.4rem}.castle-result-card>strong{font-size:1.45rem}.castle-result-card p{font-size:.9rem}.castle-result-card button{min-height:35px;padding:5px 14px;font-size:.8rem}
}
@media(prefers-reduced-motion:reduce){.playroom-castle-hotspot>span,.playroom-slide-hotspot>span,.castle-character,.castle-character.is-jumping img,.castle-character.is-bumped,.castle-bump-callout.is-showing{animation:none;transition:none}.slide-player.is-ready,.slide-player::before{animation:none}.slide-player.is-sliding{animation-duration:2.65s}.slide-friend{animation-duration:6s}.slide-player,.slide-friend{transition:none}}

@media(orientation:portrait) and (hover:none) and (pointer:coarse){
  .slide-game-world{background-image:linear-gradient(180deg,rgba(255,255,255,.01),rgba(76,45,111,.1)),url('/src/assets/game/playroom-slide-game-portrait-v1.jpg')!important;background-position:center;background-size:cover}
  .slide-player{--slide-start-x:38%;--slide-start-y:28%;--slide-end-x:61%;--slide-end-y:61%}
  .slide-friend{bottom:3%}
  .slide-friend-1{--friend-start:48%;--friend-end:84%}.slide-friend-2{--friend-start:90%;--friend-end:54%}.slide-friend-3{--friend-start:62%;--friend-end:94%}
  .slide-game-header{right:2%;top:1.5%;width:72%}
  .slide-jump-hint{right:3%;bottom:25%;max-width:58%}
}

/* The playroom uses separately composed art in portrait so every activity remains
   visible and its tap target can follow the prop instead of a cropped desktop scene. */
@media(orientation:portrait) and (any-pointer:coarse){
  .game-stage.scene-playroom{background-image:linear-gradient(180deg,rgba(24,13,47,.01),rgba(24,13,47,.12)),var(--scene-image-portrait);background-size:cover;background-position:center}
  .scene-playroom .playroom-table-hotspot{left:18%;top:38%;width:49%;height:23%}
  .scene-playroom .playroom-table-hotspot>span{left:50%;top:0;padding:7px 11px;font-size:clamp(.78rem,3.3vw,.96rem)}
  .scene-playroom .playroom-ballpit-hotspot{right:0;bottom:8%;width:49%;height:34%}
  .scene-playroom .playroom-ballpit-hotspot>span{left:52%;top:2%;padding:7px 11px;font-size:clamp(.76rem,3.2vw,.92rem)}
  .scene-playroom .playroom-castle-hotspot{right:0;top:18%;width:49%;height:31%}
  .scene-playroom .playroom-castle-hotspot>span{left:50%;top:2%;padding:7px 11px;border-width:3px;font-size:clamp(.75rem,3.2vw,.92rem)}
  .scene-playroom .playroom-slide-hotspot{left:0;top:53%;width:52%;height:38%}
  .scene-playroom .playroom-slide-hotspot>span{left:49%;top:2%;padding:7px 11px;font-size:clamp(.76rem,3.2vw,.92rem)}
  .scene-playroom .scene-player-playroom{left:36%;bottom:0;width:min(25vw,150px);height:min(27vh,240px)}
  .scene-playroom .playroom-world .room-return-door{right:1%;top:1%;bottom:auto;transform:scale(.46);transform-origin:top right}
}

/* Permanent character class directory. */
.scene-characters { background-position:center; }
.scene-characters::after { background:linear-gradient(180deg,rgba(41,22,67,.18),rgba(41,22,67,.42)); }
.character-directory { overflow-y:auto; padding:24px clamp(16px,4vw,42px) 34px; color:var(--game-ink); scrollbar-gutter:stable; }
.character-directory-heading { width:min(760px,100%); display:grid; gap:3px; margin:0 auto 16px; padding:17px 22px; border:3px solid rgba(255,255,255,.96); border-radius:24px; background:rgba(255,252,246,.91); box-shadow:0 12px 28px rgba(54,31,74,.22); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); text-align:center; }
.character-directory-heading>span { color:var(--game-purple); font-size:.74rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.character-directory-heading h1 { margin:0; color:#4b315e; font:700 clamp(1.55rem,3vw,2.15rem)/1 "Fredoka",sans-serif; letter-spacing:-.035em; }
.character-directory-heading p { margin:4px 0 0; color:#6c6078; font-size:.9rem; font-weight:700; }
.character-directory-list { width:min(760px,100%); display:grid; gap:12px; margin:0 auto; }
.character-directory-row { min-height:182px; display:grid; grid-template-columns:clamp(128px,20vw,180px) minmax(0,1fr); align-items:center; gap:20px; padding:13px 20px 13px 10px; border:3px solid rgba(255,255,255,.94); border-radius:26px; background:rgba(255,252,246,.88); box-shadow:0 12px 26px rgba(49,29,68,.2); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
.character-directory-row.is-current { border-color:#ffe274; box-shadow:0 0 0 4px rgba(111,65,196,.78),0 14px 30px rgba(49,29,68,.26); }
.character-directory-avatar { position:relative; height:156px; display:grid; place-items:center; align-self:end; }
.character-directory-avatar img { display:block; width:100%; height:100%; object-fit:contain; object-position:center bottom; filter:drop-shadow(0 7px 7px rgba(56,34,63,.18)); }
.character-directory-avatar>span { position:absolute; left:50%; bottom:-3px; min-width:max-content; padding:4px 9px; border:2px solid #fff; border-radius:999px; color:#fff; background:var(--game-purple); font:700 .66rem/1 "Fredoka",sans-serif; transform:translateX(-50%); }
.character-directory-details { min-width:0; display:grid; align-content:center; gap:4px; }
.character-directory-class { color:var(--game-purple); font-size:.72rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.character-directory-details h2 { margin:0; color:#4b315e; font:700 clamp(1.35rem,2.6vw,1.85rem)/1 "Fredoka",sans-serif; }
.character-directory-ability { display:grid; gap:1px; margin-top:5px; padding:10px 13px; border-radius:16px; background:linear-gradient(135deg,rgba(235,222,255,.96),rgba(255,239,249,.96)); }
.character-directory-ability small { color:#7a6292; font-size:.64rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.character-directory-ability strong { color:#553875; font:700 clamp(.95rem,2vw,1.15rem)/1.16 "Fredoka",sans-serif; }
.character-directory-details>p { margin:3px 0 0; color:#6d607c; font-size:.76rem; font-weight:800; }
.character-directory-back { display:block; min-height:46px; margin:18px auto 0; padding:8px 22px; border:3px solid #fff; border-radius:999px; color:#fff; background:linear-gradient(135deg,var(--game-purple),#8d62e4); box-shadow:0 8px 18px rgba(66,38,96,.25); cursor:pointer; font:700 1rem "Fredoka",sans-serif; }
.character-directory-back:focus-visible { outline:4px solid #ffe274; outline-offset:3px; }

@media(max-width:760px){
  .scene-characters { background-position:center; }
  .character-directory { padding:12px 9px 28px; }
  .character-directory-heading { margin-bottom:9px; padding:11px 12px; border-radius:18px; }
  .character-directory-heading h1 { font-size:1.35rem; }.character-directory-heading p { font-size:.72rem; }
  .character-directory-list { gap:8px; }
  .character-directory-row { min-height:126px; grid-template-columns:94px minmax(0,1fr); gap:10px; padding:8px 9px 8px 4px; border-width:2px; border-radius:20px; }
  .character-directory-avatar { height:116px; }
  .character-directory-avatar>span { bottom:0; padding:3px 6px; font-size:.52rem; }
  .character-directory-class { font-size:.58rem; }.character-directory-details h2 { font-size:1.15rem; }
  .character-directory-ability { margin-top:2px; padding:7px 9px; border-radius:12px; }
  .character-directory-ability small { font-size:.52rem; }.character-directory-ability strong { font-size:.83rem; }
  .character-directory-details>p { font-size:.64rem; }
  .character-directory-back { min-height:42px; margin-top:12px; font-size:.86rem; }
}

@media(max-width:760px){
  .scene-pool { background-position:center; }
  .pool-game-header { left:8px; top:8px; width:calc(100% - 16px); gap:5px 8px; padding:8px 10px; border-width:3px; border-radius:17px; }
  .pool-game-header>div:first-child>span { font-size:.55rem; }
  .pool-game-header>div:first-child>strong { font-size:1rem; }
  .pool-game-header>div:first-child>small { font-size:.63rem; }
  .pool-game-score { gap:4px; }
  .pool-game-score>span { min-width:54px; padding:4px 5px; border-radius:11px; }
  .pool-game-score b { font-size:1rem; }
  .pool-game-score small { font-size:.5rem; }
  .pool-timer-track { height:6px; }
  .pool-kid { width:clamp(72px,21vw,112px); height:clamp(78px,17vh,120px); }
  .pool-kid-bubble,.pool-duck-bubble { padding:6px 8px; border-width:2px; font-size:.7rem; }
  .pool-duck { width:clamp(58px,16vw,88px); }
  .pool-life-ring { min-width:88px; min-height:76px; bottom:1%; }
  .pool-life-ring>span { font-size:4rem; }
  .pool-life-ring>strong { margin-top:4px; padding:4px 7px; border-width:2px; font-size:.65rem; }
  .pool-result-card { top:54%; gap:7px; padding:19px 15px; border-width:4px; border-radius:23px; }
  .pool-result-card>span { font-size:1.8rem; }
  .pool-result-card>strong { font-size:1.5rem; }
  .pool-result-card p { font-size:.82rem; }
  .pool-result-card button { min-height:40px; font-size:.82rem; }
  .pool-exit { left:7px; bottom:7px; min-height:38px; padding:6px 10px; border-width:2px; font-size:.7rem; }
}

@media(orientation:portrait) and (any-pointer:coarse){
  .scene-pool { background-size:auto 100%; background-position:center; }
  .pool-kid { top:calc(var(--pool-kid-y) + 5%); }
  .pool-duck { top:73%; }
  .pool-result-card { top:50%; }
}

@media(max-height:600px) and (orientation:landscape){
  .pool-game-header { left:1%; top:1%; width:62%; gap:3px 7px; padding:6px 8px; border-width:3px; border-radius:15px; }
  .pool-game-header>div:first-child>span { font-size:.5rem; }.pool-game-header>div:first-child>strong { font-size:.88rem; }.pool-game-header>div:first-child>small { font-size:.58rem; }
  .pool-game-score>span { min-width:50px; padding:3px 5px; }.pool-game-score b { font-size:.88rem; }.pool-game-score small { font-size:.46rem; }
  .pool-kid { width:clamp(68px,15vh,102px); height:clamp(76px,23vh,116px); }
  .pool-duck { width:clamp(58px,15vh,86px); }
  .pool-life-ring { bottom:0; min-height:66px; }.pool-life-ring>span { font-size:3.8rem; }.pool-life-ring>strong { font-size:.62rem; }
  .pool-result-card { top:52%; width:min(370px,calc(100% - 22px)); gap:6px; padding:17px 18px; }.pool-result-card>span{font-size:1.4rem}.pool-result-card>strong{font-size:1.45rem}.pool-result-card p{font-size:.85rem}.pool-result-card button{min-height:35px;padding:5px 14px;font-size:.78rem}
  .pool-exit { left:1%; bottom:2%; min-height:34px; padding:5px 9px; font-size:.68rem; }
}

@media(prefers-reduced-motion:reduce){
  .pool-kid.is-in-trouble,.pool-duck.is-chasing img { animation:none; }
  .pool-duck,.pool-life-ring { transition:none; }
}

@media(max-width:760px){
  .bowl-mixture.mixture-omelette { top:-99px; height:24px; }
}
@media(max-width:720px){
  .kitchen-order>small { font-size:1.58rem; }
  .kitchen-order:not(.is-instruction-only) + .kitchen-stage-progress { top:138px; }
  .bowl-mixture.mixture-salad { top:-90px; }
  .kitchen-serving-bite.is-drink { left:24%; bottom:calc(var(--kitchen-bench-line) - 24px); }
  .kitchen-serving-bite.is-drink>img { width:min(27vw,155px); max-height:220px; }
  .kitchen-serving-stage.is-smoothie .kitchen-serving-dish { left:24%; bottom:calc(var(--kitchen-bench-line) - 24px); }
}
@media(max-height:600px) and (orientation:landscape){
  .kitchen-order>small { font-size:clamp(1.15rem,4.5vh,1.8rem); }
  .kitchen-order:not(.is-instruction-only) + .kitchen-stage-progress { top:124px; }
  .kitchen-serving-bite.is-drink { left:20%; bottom:calc(var(--kitchen-bench-line) - 20px); }
  .kitchen-serving-bite.is-drink>img { width:min(12vw,115px); max-height:185px; }
  .kitchen-serving-stage.is-smoothie .kitchen-serving-dish { left:20%; bottom:calc(var(--kitchen-bench-line) - 20px); }
}
