@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{--paper:#f8f5ee;--ink:#2e332b;--muted:#73776b;--green:#3d5c4d;--line:#e4e4d9;--pink:#b96665;--gold:#bc8538;--serif:'DM Serif Display',Georgia,serif;--sans:'DM Sans',system-ui,sans-serif;--ball:#d77d66}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #b97530;outline-offset:5px}button:disabled{cursor:wait}button{touch-action:manipulation}.icon-library{position:absolute;width:0;height:0;overflow:hidden}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.app-shell{max-width:1350px;margin:auto;padding:0 54px}.topbar{height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.wordmark{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:23px;white-space:nowrap}.wordmark b{font-weight:400;color:var(--green)}.brand-paw{width:37px;height:37px;display:grid;place-items:center;background:#eadfd1;border-radius:13px;color:#795e46}.brand-paw svg{width:22px;height:22px;fill:currentColor;stroke:none}.header-right{display:flex;align-items:center;gap:12px}.quantum-credit{display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:.04em;color:var(--muted);margin-right:15px}.quantum-credit img{height:29px;width:29px;border-radius:8px}.icon-button{position:relative;width:35px;height:35px;display:grid;place-items:center;border:1px solid var(--line);background:transparent;border-radius:50%;color:var(--muted)}.icon-button svg{width:17px;height:17px}.icon-button:hover{background:#ecece1}.sound-slash{position:absolute;width:21px;height:1.5px;background:var(--muted);transform:rotate(-45deg)}[aria-pressed=true] .sound-slash{display:none}.intro{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:42px 0 33px}.eyebrow{font-size:9px;letter-spacing:.17em;font-weight:700;color:#7d826f;margin:0 0 13px}h1{font:400 clamp(30px,3.2vw,43px)/1.15 var(--serif);letter-spacing:-1.1px;margin:0}h1 em{font-weight:400;color:#697d5d}p.lede{color:var(--muted);font-size:13px;margin:12px 0 0}.bond-badge{display:flex;gap:12px;align-items:center;flex-shrink:0}.bond-badge>div>span{display:block;font-size:12px;font-weight:600}.bond-badge small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.bond-badge b{font-weight:400}.bond-icon{width:39px;height:39px;display:grid;place-items:center;background:#f0e4dc;border-radius:50%;color:var(--pink)}.bond-icon svg{width:18px;height:18px;fill:currentColor;stroke:none}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:32px;align-items:start}.room{position:relative;overflow:hidden;background:#e6ddcc url('assets/playroom.webp') center center/cover;aspect-ratio:1.51;border-radius:20px;isolation:isolate;border:1px solid #ded5c6;cursor:crosshair;user-select:none;touch-action:manipulation}.room-heading{position:absolute;top:20px;left:22px;right:22px;display:flex;align-items:center;justify-content:space-between;z-index:3;pointer-events:none;font-size:10px;color:#5b5d4a}.room-status,.fetch-count{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:20px;background:#faf7ece3;backdrop-filter:blur(5px)}.room-status i{background:#748d62;width:5px;height:5px;border-radius:50%}.fetch-count svg{width:13px;height:13px}.fetch-count b{font-weight:500}.speech{position:absolute;bottom:54%;left:50%;transform:translateX(-50%);max-width:85%;width:max-content;background:#fffcf5f0;color:#6e6048;border:1px solid #e7ddca;border-radius:16px;padding:12px 17px;font-size:11px;text-align:center;z-index:4;box-shadow:0 3px 10px #45361f05;transition:opacity .18s;pointer-events:none}.speech:after{content:'';position:absolute;left:48%;bottom:-7px;width:12px;height:12px;background:#fffcf5;transform:rotate(45deg);border-right:1px solid #e7ddca;border-bottom:1px solid #e7ddca}.dog-position{position:absolute;left:50%;bottom:18%;width:20%;max-width:180px;aspect-ratio:192/208;transform:translateX(-50%);z-index:2;will-change:left}.chewy{position:absolute;inset:0;padding:0;border:0;background:none;cursor:pointer;border-radius:45%;transition:filter .2s;touch-action:manipulation;transform-origin:center 85%}.chewy:hover{filter:brightness(1.025)}.chewy:focus-visible{outline-offset:0;outline:2px dashed #a97c46}.chewy canvas{width:100%;height:100%;display:block;pointer-events:none}.dog-shadow{position:absolute;bottom:1%;left:17%;width:70%;height:8%;background:#564e2533;border-radius:50%;filter:blur(8px);z-index:-1}.room-hint{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;font-size:9px;white-space:nowrap;background:#fffdf2df;color:#77735f;padding:8px 12px;border-radius:30px;z-index:5;pointer-events:none}.room-hint svg{width:11px;height:11px;fill:currentColor;stroke:none}.loading-label{position:absolute;bottom:45%;left:50%;transform:translateX(-50%);font:14px var(--serif);color:#7d6c53;z-index:5}.loading-label[hidden]{display:none}.action-bar{display:grid;grid-template-columns:1fr 1fr 1.08fr;gap:11px;margin-top:15px}.action{display:flex;align-items:center;gap:10px;padding:14px 12px;background:#fffdf7;border:1px solid var(--line);border-radius:12px;text-align:left;transition:background .2s,transform .2s}.action:hover:not(:disabled){transform:translateY(-2px);background:#f0eddf}.action:disabled{opacity:.65}.action-icon{width:29px;height:31px;display:grid;place-items:center;flex-shrink:0}.action-icon svg{height:23px;width:23px}.action-icon.pink{color:var(--pink)}.action-icon.pink svg{fill:#b9666514}.action-icon.ochre{color:var(--gold)}.action strong{display:block;font-size:11px;font-weight:600;white-space:nowrap}.action small{display:block;font-size:8px;color:var(--muted);margin-top:4px;white-space:nowrap}.action kbd{margin-left:auto;color:#b6b8ab;font-size:9px}.fetch-action{background:var(--green);border-color:var(--green);color:#fffdf3}.fetch-action:hover:not(:disabled){background:#304e40}.fetch-action small,.fetch-action kbd{color:#c6d3c5}.below-room{display:flex;justify-content:space-between;gap:8px;font-size:9px;color:#96978b;margin-top:14px}.below-room p{margin:0;display:flex;align-items:center;gap:6px}.status-dot{height:4px;width:4px;background:#8d9a80;border-radius:50%}.below-room>span{white-space:nowrap}.side-column{display:flex;flex-direction:column;gap:24px}.training{background:#efeee3;border:1px solid #e3e4d5;border-radius:16px;padding:23px 21px 17px}.section-kicker{display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:.14em;font-weight:700;color:#7d866c}.section-kicker svg{width:16px;height:16px;color:#7f8a68}h2{font:400 30px/1.13 var(--serif);letter-spacing:-.4px;margin:14px 0 9px}.section-copy{font-size:10px;line-height:1.7;color:#858879;margin:0 0 20px}.trick{display:grid;grid-template-columns:30px 1fr auto;gap:9px;align-items:center;padding:15px 0;border-top:1px solid #dddfcf}.trick-icon{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:#e3e5d5;color:#7c876b}.trick-icon svg{height:16px;width:16px}.trick h3{font-weight:600;font-size:11px;margin:0 0 5px}.trick-progress{display:flex;align-items:center;gap:4px}.dot{width:5px;height:5px;background:#d3d8c5;border-radius:50%}.dot.filled{background:#6d8761}.trick-progress small{font-size:8px;color:#8b907f;margin-left:3px}.practice-button{border:1px solid #d4d8c4;border-radius:8px;background:#f8f8ee;padding:7px 9px;font-size:9px;color:#687757;min-width:61px}.practice-button:hover:not(:disabled){background:#e3e8d5}.practice-button:disabled{opacity:.5}.trick.learned .trick-icon{background:#d7e2cd;color:#506c47}.trick.learned .practice-button{background:#3d5c4d;color:white;border-color:#3d5c4d}.academy-note{padding-top:15px;border-top:1px solid #dddfcf;display:flex;align-items:center;gap:8px;color:#8b907b;font-size:8px;line-height:1.6}.academy-note svg{height:15px;width:15px;color:#95956b}.mini-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.mini-heading h3{font:400 16px var(--serif);margin:0}.mini-heading>span{font-size:9px;color:#929584}.mini-heading>svg{width:12px;height:12px;color:#b1a28b}.toy-options{display:flex;gap:9px}.toy{position:relative;width:54px;height:47px;border:1px solid var(--line);border-radius:10px;background:#fbfaf4;display:grid;place-items:center}.toy:hover{border-color:#a6b399}.toy.selected{border:1.5px solid #758868;background:#f0f2e7}.toy-ball,.fetch-ball,.carried-ball{display:block;width:23px;height:23px;background:var(--ball);border:2px solid #ffffffa3;border-radius:50%;box-shadow:inset -3px -2px #00000010;overflow:hidden}.toy-ball:after,.fetch-ball:after,.carried-ball:after{content:'';position:absolute;left:45%;top:-15%;width:70%;height:130%;border:2px solid #ffffffb5;border-radius:50%;transform:rotate(-35deg)}.toy-ball{position:relative}.toy-ball.coral{background:#d77d66}.toy-ball.sage{background:#8ca28c}.toy-ball.gold{background:#d9ad54}.toy-lock{position:absolute;right:3px;top:3px;width:10px;height:10px;color:#b49c6b}.toybox>p{font-size:9px;color:#96998a;line-height:1.5;margin:11px 0 0}.journal{border-top:1px solid var(--line);padding-top:18px}.journal ul{list-style:none;padding:0;margin:0}.journal li{position:relative;padding:0 0 10px 12px;color:#8a8f7f;font-size:9px;line-height:1.6}.journal li:before{content:'';position:absolute;left:0;top:5px;width:3px;height:3px;border-radius:50%;background:#b0b69e}.journal li:first-child{color:#65765c}footer{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#a0a295;border-top:1px solid var(--line);margin-top:36px;padding:22px 0 26px}.footer-note{font-family:var(--serif);font-style:italic;font-size:12px;color:#92977f}.fetch-ball{position:absolute;width:16px;height:16px;display:none;z-index:3;pointer-events:none;will-change:left,bottom}.carried-ball{position:absolute;width:12px;height:12px;left:70%;top:45%;display:none;z-index:3;pointer-events:none}.dog-position.facing-left .carried-ball{left:24%}.treat-fx{display:none;position:absolute;left:50%;bottom:36%;width:23px;height:23px;color:#c59447;z-index:4;pointer-events:none}.treat-fx svg{width:100%;height:100%;fill:#efd4a3;stroke-width:1.3}.particles{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:hidden}.particle{position:absolute;width:19px;height:19px;color:#c17f75;animation:float-heart 1.4s ease-out forwards}.particle svg{width:100%;height:100%;fill:currentColor;stroke:none}.particle.spark{color:#c4a353}.particle.spark svg{fill:#f1dab1;stroke:#c4a353;stroke-width:1.2}@keyframes float-heart{from{opacity:0;transform:translateY(10px) scale(.6)}20%{opacity:1}to{opacity:0;transform:translateY(-100px) rotate(15deg) scale(1.2)}}.chewy.loved{animation:loved .9s ease-in-out}@keyframes loved{30%{transform:rotate(-3deg) scale(1.035)}60%{transform:rotate(3deg) scale(1.035)}}.chewy.snack{animation:snack .8s ease-in-out}@keyframes snack{25%,65%{transform:translateY(2px) scale(1.02,.98)}45%,85%{transform:translateY(-1px) scale(.99,1.01)}}dialog{border:1px solid #dddccc;border-radius:20px;max-width:430px;padding:34px;background:var(--paper);color:var(--ink);box-shadow:0 20px 70px #20271d20}dialog::backdrop{background:#2a342963;backdrop-filter:blur(4px)}dialog h2{margin:0 0 17px}dialog p{line-height:1.8;color:var(--muted);font-size:12px}.dialog-close{position:absolute;right:14px;top:12px;background:none;border:none;font-size:25px;color:var(--muted)}.dialog-start{background:var(--green);border:none;border-radius:10px;color:white;padding:11px 20px;margin-top:24px;width:100%;font-weight:500}.keyboard-guide{display:flex;gap:7px;align-items:center;margin-top:20px;font-size:10px;color:var(--muted)}kbd{font-family:inherit} .keyboard-guide kbd{display:inline-block;border:1px solid #dcdece;border-radius:4px;padding:4px 7px;background:white;color:var(--green);margin-left:10px}.keyboard-guide kbd:first-child{margin-left:0}.noscript{padding:20px;text-align:center}.room.busy{cursor:default}
@media(min-width:1400px){.app-shell{max-width:1400px}.play-layout{grid-template-columns:minmax(0,1fr) 300px;gap:38px}.room{aspect-ratio:1.55}.dog-position{width:20%}.action{padding:17px}.action strong{font-size:12px}.action small{font-size:9px}.training{padding:25px}.side-column{gap:29px}}
@media(max-width:1100px){.app-shell{padding:0 30px}.play-layout{grid-template-columns:minmax(0,1fr) 250px;gap:22px}.intro{padding:32px 0 27px}.bond-badge{gap:8px}.bond-badge>div>span{font-size:10px}.bond-badge small{font-size:9px}.bond-icon{width:32px;height:32px}.action{gap:6px;padding:12px 8px}.action kbd{display:none}.action-icon{width:23px}.action strong{font-size:10px}.action small{font-size:7px}.speech{font-size:10px;padding:10px 13px}.room{aspect-ratio:1.32}.dog-position{width:20%;bottom:18%}.room-heading{top:14px;left:14px;right:14px}.training{padding:20px 17px}.trick{grid-template-columns:25px 1fr auto;gap:7px}.section-copy{font-size:9px}}
@media(max-width:780px){.app-shell{padding:0 22px}.topbar{height:76px}.quantum-credit{margin-right:0}.quantum-credit>span{display:none}.wordmark{font-size:21px}.header-right{gap:8px}.intro{align-items:flex-start;gap:16px;padding:30px 0 25px}.intro h1{font-size:34px;line-height:1.12}.intro h1 em{display:block}.intro .eyebrow{font-size:8px}.bond-badge{margin-top:15px;max-width:145px}.bond-badge small{line-height:1.6}.bond-icon{display:none}.lede{max-width:260px;line-height:1.6}.play-layout{grid-template-columns:1fr;gap:30px}.room{aspect-ratio:1.47}.dog-position{width:20%;bottom:18%}.speech{font-size:11px}.action{padding:15px 11px;gap:9px}.action strong{font-size:11px}.action small{font-size:8px}.action-icon{width:25px}.side-column{display:grid;grid-template-columns:1.4fr 1fr;gap:23px}.training{grid-row:span 2;padding:25px}.toybox{padding-top:7px}.journal{padding-top:17px}.section-copy{font-size:10px}.trick{grid-template-columns:28px 1fr auto;padding:16px 0}.footer-note{display:none}footer{margin-top:30px}.room-hint{font-size:9px}}
@media(max-width:480px){.app-shell{padding:0 16px}.topbar{height:69px;gap:8px}.wordmark{font-size:18px;gap:9px}.brand-paw{width:32px;height:32px}.header-right{gap:6px}.quantum-credit{display:none}.icon-button{width:31px;height:31px}.intro{padding:27px 0 22px;gap:10px}.intro h1{font-size:30px}.intro .eyebrow{font-size:7px;letter-spacing:.13em}.intro .lede{font-size:11px;max-width:210px}.bond-badge{max-width:99px;margin-top:21px}.bond-badge>div>span{font-size:9px;line-height:1.4}.bond-badge small{font-size:8px}.room{aspect-ratio:1.03;border-radius:17px;background-position:48% center}.dog-position{width:27%;bottom:18%}.speech{font-size:9px;padding:10px 12px;max-width:88%}.room-heading{top:12px;left:12px;right:12px;font-size:8px}.room-status,.fetch-count{padding:6px 8px}.room-hint{font-size:8px;padding:7px 9px;bottom:13px}.action-bar{gap:7px;margin-top:11px}.action{padding:12px 7px;gap:5px;border-radius:10px}.action-icon{width:19px}.action-icon svg{width:19px;height:19px}.action strong{font-size:9px}.action small{display:none}.below-room{font-size:7px;line-height:1.5}.side-column{grid-template-columns:1fr;gap:24px}.training{grid-row:auto;padding:24px}.training h2 br{display:none}.training h2{font-size:28px}.section-copy{margin-bottom:17px}.trick{grid-template-columns:33px 1fr auto}.trick h3{font-size:12px}.practice-button{font-size:10px;padding:9px 14px}.toybox{padding:0 7px}.toy-options{gap:12px}.toy{width:64px;height:52px}.journal{padding-left:7px;padding-right:7px}.journal li{font-size:10px}.mini-heading>span{font-size:10px}footer{font-size:8px;margin-top:27px;padding:20px 0}.academy-note{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.freeplay-toggle{position:absolute;right:18px;bottom:17px;z-index:7;border:1px solid #c4cfb7;background:#fcfaedee;border-radius:20px;padding:8px 11px;font-size:9px;color:#52694d}.freeplay-toggle[aria-pressed=false]{color:#817a68}.room-hint{left:18px;transform:none;max-width:calc(100% - 150px);white-space:normal}.floor-ball{position:absolute;left:29%;bottom:23%;width:16px;height:16px;border:2px solid #ffffffb5;border-radius:50%;background:var(--ball);box-shadow:0 3px 2px #413a2525;pointer-events:none;z-index:1}.floor-ball:after{content:"";position:absolute;inset:0 3px;border-left:1px solid #ffffffbb;border-right:1px solid #ffffffbb;border-radius:50%;transform:rotate(-35deg)}.floor-bone{position:absolute;left:70%;bottom:24%;width:27px;height:18px;color:#b58a4e;transform:rotate(-18deg);z-index:1;pointer-events:none;filter:drop-shadow(0 2px 1px #413a2520)}.floor-bone svg{width:100%;height:100%;fill:#ecd4a6;stroke-width:1.2}.room.autonomous{cursor:crosshair}.room.autonomous .room-status i{background:#bc8538}.chewy:hover{filter:none}.chewy{transition:none}.speech{pointer-events:none}
@media(max-width:480px){.room-hint{max-width:calc(100% - 128px);left:12px;font-size:7px}.freeplay-toggle{font-size:8px;right:12px;bottom:13px;padding:7px 9px}.floor-ball{width:12px;height:12px}.floor-bone{width:21px;height:15px}}

.carried-bone{display:none;position:absolute;left:42%;top:42%;width:22px;height:12px;color:#b58a4e;z-index:3;pointer-events:none;transform:rotate(-10deg)}.carried-bone svg{width:100%;height:100%;fill:#ecd4a6;stroke-width:1.2}@media(max-width:480px){.carried-bone{width:17px;height:10px}}

/* Phone companion shell and Home Screen installation. */
html{min-width:320px;scroll-padding-top:20px}
body{min-height:100svh}
.app-shell{padding-left:max(54px,env(safe-area-inset-left));padding-right:max(54px,env(safe-area-inset-right))}
.brand-paw{overflow:hidden;background:#dce2bd}.brand-paw img{width:100%;height:100%;object-fit:cover}
.icon-button{width:44px;height:44px}.dialog-close{width:44px;height:44px;right:7px;top:5px}
.freeplay-toggle{min-height:44px;font-size:11px;padding:8px 13px}
.room-hint{max-width:calc(100% - 170px)}
.home-card{display:flex;align-items:center;gap:13px;margin-top:22px;padding:17px;background:#f0eee2;border:1px solid var(--line);border-radius:16px}
.home-card>img{border-radius:13px;flex-shrink:0}
.home-card h3{font:400 20px var(--serif);margin:0 0 4px}
.home-card p{font-size:11px;line-height:1.5;color:#73776b;margin:0}
.home-card button{margin-left:auto;min-height:44px;white-space:nowrap;padding:10px 13px;border:1px solid #c7cfbb;background:#fffdf7;border-radius:10px;font-size:11px;font-weight:600;color:var(--green)}
.install-guide{border-top:1px solid #dcded1;margin-top:22px;padding-top:18px}.install-guide h3{font:400 23px var(--serif);margin:0 0 12px}.install-guide p{font-size:12px}.install-guide b{color:var(--ink)}
dialog{width:calc(100% - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;padding-top:45px}.dialog-start{min-height:48px}
@media(max-width:1100px){.app-shell{padding-left:max(30px,env(safe-area-inset-left));padding-right:max(30px,env(safe-area-inset-right))}.home-card{flex-wrap:wrap}.home-card button{margin-left:auto}}
@media(max-width:780px){
 .app-shell{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
 .topbar{height:76px;padding-top:env(safe-area-inset-top)}
 .action{min-height:68px}.action strong{font-size:12px}.action small{font-size:9px}.action kbd{display:none}
 .practice-button{min-height:44px;min-width:84px;font-size:12px}.toy{min-height:52px;min-width:60px}
 .section-copy,.academy-note,.toybox>p,.journal li{font-size:12px;line-height:1.7}
 .section-kicker{font-size:10px}.trick h3{font-size:14px}.trick-progress small{font-size:11px}.dot{width:6px;height:6px}
 .mini-heading h3{font-size:21px}.mini-heading>span{font-size:11px}.below-room{font-size:10px;line-height:1.6}
 footer{padding-bottom:max(25px,env(safe-area-inset-bottom))}
}
@media(max-width:480px){
 .app-shell{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
 .topbar{height:74px;gap:8px}.wordmark{gap:9px;font-size:20px}.brand-paw{width:38px;height:38px;border-radius:12px}.header-right{gap:4px}.icon-button{width:44px;height:44px}
 .intro{display:block;padding:23px 2px 19px}.intro .eyebrow{font-size:9px;letter-spacing:.13em;margin-bottom:10px}.intro h1{font-size:32px;line-height:1.1;letter-spacing:-.7px}.intro h1 em{display:block}.intro .lede{font-size:12px;max-width:none;margin-top:9px}
 .bond-badge{max-width:none;gap:7px;margin-top:15px}.bond-icon{display:grid;width:25px;height:25px}.bond-icon svg{width:12px;height:12px}.bond-badge>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bond-badge>div>span{font-size:11px}.bond-badge small{font-size:10px;margin:0}.bond-badge small:before{content:'·';margin-right:8px}
 .room{aspect-ratio:1.12;border-radius:19px;background-position:center}.dog-position{width:20%;bottom:18%}
 .room-heading{left:10px;right:10px;top:10px;font-size:10px}.room-status,.fetch-count{padding:7px 9px}.speech{font-size:11px;line-height:1.4;padding:9px 12px;max-width:88%;bottom:53%}
 .room-hint{left:10px;bottom:12px;max-width:calc(100% - 148px);font-size:9px;line-height:1.5;padding:7px 9px}.room-hint svg{display:none}.freeplay-toggle{right:10px;bottom:12px;font-size:10px;padding:8px 11px;min-height:44px}
 .action-bar{gap:8px;margin-top:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.action{flex-direction:column;justify-content:center;gap:7px;text-align:center;padding:12px 4px;min-height:82px;border-radius:14px}.action-icon{width:25px;height:24px}.action-icon svg{width:23px;height:23px}.action strong{font-size:11px}.action small{display:none}
 .below-room{flex-direction:column;gap:4px;margin-top:12px;font-size:10px;padding:0 2px}.below-room>span{padding-left:10px}
 .home-card{display:grid;grid-template-columns:44px 1fr;gap:10px 12px;padding:16px;margin-top:18px}.home-card>img{width:44px;height:44px}.home-card h3{font-size:21px}.home-card p{font-size:11px}.home-card button{grid-column:1/-1;width:100%;margin:0;min-height:46px;font-size:12px;background:#fffdf7}
 .play-layout{gap:25px}.side-column{gap:22px}.toybox{order:-1;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fffdf7}.toy-options{gap:12px}.toy{width:64px;height:54px}.toybox>p{margin-bottom:0}.training{padding:22px}.training h2{font-size:29px}.section-copy{margin-bottom:16px}.trick{padding:14px 0;gap:10px;grid-template-columns:33px 1fr auto}.trick-icon{width:32px;height:32px}.academy-note{font-size:11px}.journal{padding:19px 4px 0}.journal li{font-size:12px}.journal li:before{top:8px}
 dialog{padding:44px 23px 25px;border-radius:22px}dialog h2{font-size:30px}dialog p{font-size:13px;line-height:1.75}.keyboard-guide{display:none}footer{font-size:10px;margin-top:25px}
}
@media(max-width:350px){.wordmark{font-size:17px;gap:6px}.intro h1{font-size:29px}.action strong{font-size:10px}.room-heading{font-size:9px}.speech{font-size:10px}.room-hint{font-size:8px}.home-card p{font-size:10px}}
@media(hover:none){.action:hover:not(:disabled){transform:none}.chewy:hover{filter:none}}
.practice-button{min-height:44px;min-width:70px}
[hidden]{display:none!important}
.sync-card{margin-top:22px;border:1px solid #d8dfcf;background:#edf1e6;border-radius:17px;padding:20px}.sync-card-top{display:flex;gap:13px;align-items:flex-start}.sync-symbol{width:37px;height:37px;display:grid;place-items:center;flex-shrink:0;border-radius:12px;background:#dce5d4;font-size:27px;color:var(--green)}.sync-card h3,.share-card h3{font:400 23px var(--serif);margin:0 0 6px}.sync-card p,.share-card p{font-size:12px;line-height:1.6;color:#69745e;margin:0;max-width:480px}.sync-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:17px}.sync-controls a,.sync-controls button,.share-card button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 15px;border:1px solid #bac7af;border-radius:10px;text-decoration:none;background:#fffdf7;color:var(--green);font:600 12px var(--sans)}.sync-controls a.sync-primary{background:var(--green);color:#fff;border-color:var(--green)}#sign-out{background:transparent;border-color:transparent;padding:10px 3px;font-weight:400}#sync-status{font-size:10px;color:#748568;line-height:1.5}.sync-card[data-state=offline] #sync-status{color:#936b37}.sync-card[data-state=saving] #sync-status{color:#7a7965}.share-card{margin-top:32px;padding:23px 0 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:22px;flex-wrap:wrap}.share-card button{margin-left:auto;white-space:nowrap}.share-card input{width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;font:12px var(--sans)}.share-card h3{font-size:22px}.share-card p{max-width:none}.home-card{margin-top:15px}
@media(max-width:480px){.sync-card{padding:18px 16px;margin-top:19px}.sync-card h3{font-size:22px}.sync-card p{font-size:12px}.sync-symbol{width:30px;height:30px;border-radius:10px;font-size:23px}.sync-card-top{gap:10px}.sync-controls{gap:9px}.sync-primary{width:100%}#sync-status{font-size:11px;flex-basis:100%;order:5}.share-card{gap:16px;padding-top:24px}.share-card button{width:100%;min-height:46px}.share-card p{font-size:12px}.home-card h3{font-size:20px}}
/* A growing basket of small, distinct toys. */
.toy-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.toy{width:100%;min-width:0;height:auto;min-height:108px;padding:12px 5px 9px;display:flex;flex-direction:column;gap:8px;text-align:center}
.toy strong{font-size:10px;font-weight:600;line-height:1.3}.toy small{font-size:9px;color:#7c806e;line-height:1.4}.toy.locked{background:#efeee6;border-style:dashed}.toy.locked .toy-shape{opacity:.48}.toy.locked:hover{border-color:#a6b399}.toy.locked small{color:#83745e}
.toy-shape{--toy-size:28px;position:relative;display:block;flex-shrink:0;margin:4px 0}
.floor-ball{--toy-size:16px}.fetch-ball{--toy-size:18px}.carried-ball{--toy-size:13px}
:is(.toy-shape,.floor-ball,.fetch-ball,.carried-ball)[data-kind]{width:var(--toy-size);height:var(--toy-size);background:var(--ball);border:2px solid #ffffffa3;border-radius:50%;box-shadow:inset -3px -2px #00000010}
:is(.toy-shape,.floor-ball,.fetch-ball,.carried-ball)[data-kind=ball]::after{content:'';position:absolute;left:45%;top:-15%;width:70%;height:130%;border:2px solid #ffffffb5;border-radius:50%;transform:rotate(-35deg)}
:is(.toy-shape,.floor-ball,.fetch-ball,.carried-ball)[data-kind=rope]{width:calc(var(--toy-size)*1.4);height:calc(var(--toy-size)*.43);border:0;border-radius:5px;background:repeating-linear-gradient(65deg,#a28bb4 0 4px,#ece2db 4px 7px);overflow:visible;margin-top:calc(var(--toy-size)*.3);margin-bottom:calc(var(--toy-size)*.3)}
:is(.toy-shape,.floor-ball,.fetch-ball,.carried-ball)[data-kind=rope]::before,:is(.toy-shape,.floor-ball,.fetch-ball,.carried-ball)[data-kind=rope]::after{content:'';position:absolute;top:-20%;left:-8%;width:28%;height:140%;border:1px solid #89729c;border-radius:40%;background:#b7a1c6;transform:rotate(-12deg)}
:is(.toy-shape,.floor-ball,.fetch-ball,.carried-ball)[data-kind=rope]::after{left:auto;right:-8%;transform:rotate(12deg)}
:is(.toy-shape,.floor-ball,.fetch-ball,.carried-ball)[data-kind=duck]{height:calc(var(--toy-size)*.7);border:1px solid #d4a83e;border-radius:45% 45% 40% 40%;overflow:visible;margin-top:calc(var(--toy-size)*.3);margin-bottom:0}
:is(.toy-shape,.floor-ball,.fetch-ball,.carried-ball)[data-kind=duck]::before{content:'';position:absolute;left:40%;top:-65%;width:60%;height:90%;border-radius:50%;background:radial-gradient(circle at 65% 38%,#4e4635 0 8%,transparent 10%),#e5b954;border:1px solid #d4a83e}
:is(.toy-shape,.floor-ball,.fetch-ball,.carried-ball)[data-kind=duck]::after{content:'';position:absolute;left:88%;top:-19%;width:30%;height:25%;border:0;border-radius:40%;background:#d88a4f;transform:none}
:is(.toy-shape,.floor-ball,.fetch-ball,.carried-ball)[data-kind=disc]{width:calc(var(--toy-size)*1.3);height:calc(var(--toy-size)*.52);border:3px solid #6e9db5;background:#a4c8d8;box-shadow:inset 0 -3px #4f819b50;margin-top:calc(var(--toy-size)*.24);margin-bottom:calc(var(--toy-size)*.24)}
:is(.toy-shape,.floor-ball,.fetch-ball,.carried-ball)[data-kind=disc]::after{content:none}
.trick.locked .trick-progress{gap:0}.trick.locked .trick-progress small{margin:0;color:#86765e}.trick.locked .trick-icon{opacity:.5}.trick.locked button{cursor:default;opacity:.65}.trick.locked h3{color:#767b6c}
.reward-card{display:flex;align-items:center;gap:13px;margin-top:18px;padding:18px 20px;background:#f4ead6;border:1px solid #e9d8b7;border-radius:16px}.reward-star{font-size:36px;color:#a87f3e}.reward-card>div{flex:1;min-width:0}.reward-card h3{font:400 22px var(--serif);margin:0 0 5px}.reward-card p{font-size:12px;color:#877451;margin:0 0 9px;line-height:1.5}.reward-card progress{display:block;width:100%;height:6px;border:0;border-radius:8px;overflow:hidden;appearance:none;background:#e5d7bc}.reward-card progress::-webkit-progress-bar{background:#e5d7bc}.reward-card progress::-webkit-progress-value{background:#b68a47;border-radius:8px}.reward-card progress::-moz-progress-bar{background:#b68a47}.reward-toast{font-size:12px;line-height:1.6;color:#586d49;background:#e9efdc;border-radius:10px;padding:12px 15px}.reward-toast:empty{display:none}
.chewy.tugging{animation:tiny-tug .5s ease-in-out 3}@keyframes tiny-tug{50%{transform:translateX(-5%) rotate(-3deg)}}
@media(max-width:780px){.toy{min-height:117px}.toy strong{font-size:11px}.toy small{font-size:10px}.trick-progress{flex-wrap:wrap;row-gap:5px}.reward-card h3{font-size:22px}}
@media(max-width:480px){.toybox{padding:18px 14px}.toy-options{gap:8px}.toy{min-height:112px}.reward-card{padding:16px;gap:10px}.reward-card p{font-size:11px}.floor-ball{--toy-size:12px}}
