@font-face{font-family:Figtree;src:url('./assets/fonts/Figtree-Latin.woff2') format('woff2');font-weight:400 900;font-display:swap}
:root{color-scheme:light;--paper:#f8f6ed;--ink:#293f35;--muted:#5b6c60;--green:#355e4b;--green-dark:#244635;--mint:#e1ebd9;--line:#cbd6c5;--coral:#f4ab90;--soft:#edf1e6;--shadow:0 18px 42px #3e573013;--radius:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:#91a78b var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Figtree,system-ui,sans-serif}::selection{background:#d6e3c6;color:#20392a}button,input,select{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #a84d30;outline-offset:5px}a{color:inherit;text-underline-offset:4px}[hidden]{display:none!important}button{color:inherit}button svg{width:23px;height:23px;fill:currentColor}.shell{max-width:1140px;margin:auto;padding:0 34px}.skip{position:fixed;left:12px;top:12px;z-index:12;background:var(--green);color:white;padding:12px 20px;transform:translateY(-180%);border-radius:8px}.skip:focus{transform:none}.site-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:9px;font-size:27px;font-weight:800;text-decoration:none;letter-spacing:-.04em}.brand>svg{width:29px;height:29px;fill:#bb6b50;transform:rotate(-15deg)}.site-header nav{display:flex;align-items:center;gap:25px;font-size:13px;font-weight:550}.site-header nav a{text-decoration:none}.site-header nav a:hover{text-decoration:underline}.quiet{border:1px solid var(--line);border-radius:24px;min-height:42px;padding:8px 17px;background:transparent;font-size:12px}.quiet:hover{background:#e7eddc}.intro{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;padding:28px 0 22px}h1{font-size:clamp(34px,4vw,46px);line-height:1.16;letter-spacing:-.035em;font-weight:800;margin:0 0 10px;text-wrap:balance}h1 span{font-weight:450}.lead{font-size:15px;color:var(--muted);margin:0}.edition{font-size:12px;white-space:nowrap;color:var(--muted);padding-bottom:3px}.game-card{background:var(--mint);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;scroll-margin-top:12px}.game-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 28px;padding:18px 0 12px;border-bottom:1px solid #b9cbb66b}.level-heading{display:flex;align-items:baseline;gap:12px}#levelLabel{font-size:20px;font-weight:800;letter-spacing:-.02em}.chapter-label{font-size:12px;color:var(--muted)}.game-options{display:flex;align-items:center;gap:16px}.segmented{display:flex;gap:3px;padding:4px;border-radius:28px;background:#cdddc6}.segmented button{border:0;border-radius:23px;padding:7px 17px;min-height:36px;background:transparent;font-size:12px;color:#3f5a48;font-weight:600}.segmented button[aria-pressed=true]{background:#fffdf5;box-shadow:0 2px 5px #3f5c3520;color:var(--ink)}.segmented button:hover{color:#172d20}.segmented span{font-size:12px;margin-left:2px}.round{width:40px;height:40px;border:1px solid #aebfa5;border-radius:50%;background:transparent;font-weight:800;font-size:16px;flex-shrink:0}.round{display:grid;place-items:center}.round svg{width:17px;height:17px}.round:hover{background:#cfdfc6}.round:disabled{opacity:.5}.play-scene{position:relative;display:block;max-width:550px;margin:0 auto;padding:0}.arena{position:relative;width:100%;max-width:550px;touch-action:manipulation;cursor:crosshair;isolation:isolate}#board{display:block;width:100%;height:auto;overflow:visible;position:relative;z-index:2}.orbit-track{fill:none;stroke:#b0c5a6;stroke-width:1.5;stroke-dasharray:2 7}.orbit-track.outer{stroke:#b9cdb055;stroke-width:1;stroke-dasharray:none}.ball-shadow{fill:#6f8b6240;filter:blur(6px)}.core{fill:url(#fallbackFur);stroke:none}.fur-ready .core{fill:transparent}#furCanvas{position:absolute;width:42%;height:auto;aspect-ratio:1;left:29%;top:23.137%;z-index:1;pointer-events:none}.core-number{fill:#fff9ed;font:800 42px Figtree,sans-serif;text-anchor:middle;paint-order:stroke;stroke:#88431b55;stroke-width:1}.core-label{fill:#fff9ed;font:750 8px Figtree,sans-serif;text-anchor:middle;letter-spacing:1.6px}#pins line{stroke:#8c9b91;stroke-width:2.2;stroke-linecap:round}#pins circle{fill:url(#pearlHead);stroke:#91a393;stroke-width:.6}#pins .new-pin line{stroke:#a3a99a}#pins .new-pin circle{fill:url(#roseHead);stroke:#bd927e;stroke-width:.6}#incoming circle,#projectile circle{fill:url(#roseHead);stroke:#bd927e;stroke-width:.6}#projectile path{stroke:#9ba597;stroke-width:2.2;stroke-linecap:round}.aim-mark{fill:none;stroke:#698260;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.celebration{position:absolute;inset:0;pointer-events:none;overflow:visible}.celebration i{position:absolute;width:7px;height:11px;border-radius:3px;background:#c07648;left:50%;top:38%;opacity:0;animation:confetti .85s cubic-bezier(.16,1,.3,1) forwards}.celebration i:nth-child(3n){background:#528060}.celebration i:nth-child(3n+1){background:#f0ad7e}.play-footer{padding:0 28px 23px;position:relative;margin-top:0;text-align:center}.shot-hint{font-size:12px;color:#4e6548;display:flex;justify-content:center;gap:7px;align-items:center;min-height:30px;margin-bottom:8px}.live-dot{width:5px;height:5px;border-radius:50%;background:#5d8051;flex-shrink:0}.primary{display:inline-flex;align-items:center;justify-content:center;gap:13px;min-height:50px;padding:12px 25px;background:var(--green);color:#fffdf4;border:0;border-radius:12px;font-weight:750;transition:background .18s,transform .18s cubic-bezier(.16,1,.3,1),box-shadow .18s}.primary:hover{background:var(--green-dark);box-shadow:0 6px 14px #2f503321}.primary:active{transform:translateY(2px)}.primary:disabled{opacity:.55;box-shadow:none}.shoot{width:min(100%,430px);min-height:54px}.shoot svg{width:22px;height:22px;transform:rotate(-12deg);color:#cbdcc2}.key{font-size:12px;font-weight:500;letter-spacing:.6px;margin-left:15px;color:#d4e2ce}.under-button{font-size:12px;color:#536b4c;margin:10px 0 0}.text-button{border:0;background:transparent;font:inherit;text-decoration:underline;text-underline-offset:3px;padding:0;min-height:30px}.text-button:hover{color:#783c27}.practice-note{font-size:12px;margin:8px 0 0;color:#395b3e}.overlay{position:absolute;z-index:5;inset:68px 45px 60px;background:#fbf9ef;box-shadow:0 12px 38px #48633f24;border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:26px;cursor:default}.outcome-kicker{font-size:12px;font-weight:650;color:#80533b;margin:0}.overlay h2{font-size:32px;line-height:1.15;letter-spacing:-.025em;margin:8px 0 14px;text-wrap:balance}.overlay p:not(.outcome-kicker){font-size:13px;max-width:270px;margin:0 0 20px;color:var(--muted)}.play-records{display:flex;align-items:center;gap:22px;font-size:12px;padding:21px 2px;border-bottom:1px solid var(--line)}.play-records p{margin:0;white-space:nowrap}.play-records p:first-child strong{font-size:16px}.play-records p:last-child{margin-left:auto}.stat-divider{margin:0 9px;color:#9eaf94}.progress-track{height:4px;flex:1;max-width:180px;background:#dbe3d3;border-radius:3px;overflow:hidden}.progress-track i{display:block;width:100%;height:100%;background:#64885b;transform:scaleX(0);transform-origin:left;transition:transform .3s}.level-card{padding:26px 0 15px;scroll-margin-top:20px}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:16px}.section-title h2{font-size:19px;margin:0;font-weight:750;letter-spacing:-.02em}.section-title p{font-size:12px;color:var(--muted);margin:0}.level-grid{display:grid;grid-template-columns:repeat(15,minmax(0,1fr));gap:8px}.level-grid button{font-size:12px;font-weight:600;min-height:42px;border:1px solid #cdd7c5;border-radius:9px;background:#f0f2e8;position:relative}.level-grid button:hover{background:#e0e9d8;border-color:#8fa781}.level-grid button[aria-pressed=true]{background:var(--coral);border-color:#d49477;color:#412c21;font-weight:800}.level-grid button.done:after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:#476e40;bottom:4px;left:calc(50% - 2px)}.legend{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:12px}.legend i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#476e40;margin-right:4px}.guide{display:grid;grid-template-columns:1fr 1.5fr;gap:55px;border-top:1px solid var(--line);padding:35px 0 15px;margin-top:35px}.guide h2{font-size:28px;font-weight:650;line-height:1.25;letter-spacing:-.025em;margin:0}.guide p{font-size:14px;color:var(--muted);margin:0 0 16px;line-height:1.9}.faq{max-width:800px;margin:35px auto 50px}.faq h2{font-size:27px;line-height:1.3;margin:0 0 24px;letter-spacing:-.02em}.faq details{border-top:1px solid var(--line);padding:16px 0}.faq summary{min-height:30px;font-size:14px;cursor:pointer}.faq details p{font-size:13px;color:var(--muted);max-width:70ch}footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;padding:18px 0;color:#52674b}.privacy{font-size:12px;color:var(--muted);padding:8px 0 30px}.privacy h2{font-size:15px;color:var(--ink);margin:10px 0}.privacy p{max-width:95ch}.notice{padding:15px;background:#e4ebd8;color:#2d492f;border-radius:8px}dialog{max-width:430px;width:calc(100% - 36px);border:0;border-radius:16px;background:var(--paper);color:var(--ink);padding:28px;box-shadow:0 18px 60px #263e3550}dialog::backdrop{background:#20382980}dialog h2{margin-top:0;line-height:1.2}dialog form{display:flex;justify-content:flex-end;gap:12px;margin-top:22px}dialog .quiet{border-radius:10px}.article{max-width:780px;margin:34px auto 60px;overflow-wrap:anywhere}.article h1{font-size:clamp(30px,4vw,43px)}.article h2{font-size:26px;line-height:1.3;margin:36px 0 14px}.article h3{margin:28px 0 8px}.article p,.article li{line-height:1.85}.article .breadcrumbs{font-size:13px;margin-bottom:28px}.article .guide-table{overflow-x:auto}.article table{width:100%;border-collapse:collapse;font-size:14px}.article th,.article td{text-align:left;padding:10px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.article .return-link{display:inline-block;margin:16px 0;font-weight:700}.article details{padding:16px 0}.article summary{font-weight:700}.article nav ul{padding-left:22px}
@keyframes confetti{0%{opacity:0;transform:translate(0,0) rotate(0)}15%{opacity:1}100%{opacity:0;transform:translate(var(--tx),var(--ty)) rotate(var(--turn))}}
@media(max-width:900px){.shell{padding:0 25px}.intro{align-items:flex-start}.edition{display:none}h1{font-size:38px}.chapter-label{display:none}.level-grid{grid-template-columns:repeat(10,minmax(0,1fr))}.play-records{gap:15px}.progress-track{max-width:100px}.guide{gap:30px}}
@media(max-width:600px){.shell{padding:0 17px}.site-header{padding:15px 0;gap:12px}.brand{font-size:24px;gap:7px}.brand>svg{width:25px;height:25px}.site-header nav{gap:12px;font-size:12px}.site-header nav>a:first-child{display:none}.quiet{min-height:38px;padding:7px 12px;font-size:12px}.intro{padding:22px 0 17px}h1{font-size:34px;line-height:1.1;margin-bottom:8px}h1 span{display:block;font-size:22px;letter-spacing:-.02em;margin-top:5px}.lead{font-size:12px;max-width:40ch}.game-top{margin:0 15px;padding:13px 0 10px;gap:9px}#levelLabel{font-size:16px}.game-options{gap:8px}.segmented{padding:3px}.segmented button{min-height:34px;padding:6px 10px;font-size:12px}.segmented span{font-size:12px}.round{width:33px;height:33px;font-size:13px}.play-scene{display:block;padding:0 5px;min-height:0}.arena{width:100%;max-width:none}.play-footer{padding:0 14px 17px;margin-top:0}.shot-hint{font-size:12px;min-height:25px;margin-bottom:8px;justify-content:flex-start;padding-right:48px;text-align:left;line-height:1.4}.shoot{width:100%;min-height:51px;font-size:14px}.key{font-size:12px;margin-left:7px}.under-button{font-size:12px;line-height:1.5;margin-top:8px}.practice-note{font-size:12px}.overlay{inset:48px 25px 65px;padding:19px}.overlay h2{font-size:27px}.overlay p:not(.outcome-kicker){font-size:12px}.overlay .primary{font-size:13px;min-height:45px}.outcome-kicker{font-size:12px}.play-records{flex-wrap:wrap;gap:6px 12px;padding:16px 1px;font-size:12px}.play-records p:last-child{width:100%;margin:0}.progress-track{max-width:none;min-width:55px}.level-card{padding-top:20px}.section-title{display:block;margin-bottom:12px}.section-title h2{font-size:17px}.section-title p{font-size:12px;margin-top:4px}.level-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.level-grid button{min-height:42px;font-size:12px}.legend{font-size:12px;gap:15px}.guide{grid-template-columns:1fr;gap:15px;margin-top:25px;padding:27px 0 10px}.guide h2{font-size:25px}.guide p{font-size:12px}.faq{margin:22px 0 35px}.faq h2{font-size:23px}.faq summary{font-size:12px}.faq details p{font-size:12px}footer{flex-wrap:wrap;font-size:12px;gap:9px}.privacy{font-size:12px}.article{margin-top:25px}.article h1{font-size:30px}.article table{font-size:12px}.article th,.article td{padding:7px}.article p,.article li{font-size:14px}.article h2{font-size:23px}}
@media(max-width:360px){.shell{padding:0 12px}.site-header nav>a{display:none}h1{font-size:31px}.game-top{margin:0 11px}.segmented button{padding:6px 8px}.game-options{gap:6px}.shot-hint{padding-right:45px}.key{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.celebration{display:none}}

/* Centered toy scene: cropped paws belong to the launch lane, not a side portrait. */
.round-info{display:flex;justify-content:space-between;align-items:center;gap:15px;max-width:550px;margin:13px auto 0;padding:0 24px;font-size:12px;color:#53694b}.remaining-readout{display:flex;align-items:center;gap:7px}.remaining-readout strong{font-size:21px;color:var(--ink);font-variant-numeric:tabular-nums}.streak-readout{display:flex;align-items:baseline;gap:5px;font-size:12px}.streak-readout strong{font-size:16px;color:var(--ink)}.streak-readout small{font-size:12px;color:#5b6c53}.orbit-track.outer{display:none}.orbit-track{stroke:#bccfb0;stroke-width:1;stroke-dasharray:1 8}.ball-shadow{fill:#78896526;filter:blur(9px)}.arena{margin:auto;overflow:hidden}.paw{position:absolute;z-index:3;bottom:-43px;width:86px;height:134px;image-rendering:auto;pointer-events:none;transform-origin:50% 100%;will-change:transform}.paw-left{left:29%;transform:none}.paw-right{right:29%;transform:none}.play-scene[data-mood=happy] .paw-left{animation:paw-left-cheer .65s cubic-bezier(.16,1,.3,1)}.play-scene[data-mood=happy] .paw-right{animation:paw-right-cheer .65s cubic-bezier(.16,1,.3,1)}.play-scene[data-mood=surprise] .paw{opacity:.8}.play-footer{padding-top:3px}.outcome-kicker{display:none}.overlay{inset:60px 55px 75px}.overlay h2{margin-top:0}.celebration{z-index:4}.intro{padding-top:26px;padding-bottom:20px}.intro h1{margin:0 0 9px;font-size:43px}.lead{font-size:14px}.game-card{background:#e6eddf;box-shadow:0 14px 35px #40573b0d}.level-heading{gap:10px}.play-scene .cat-message{display:none}
@keyframes paw-left-cheer{40%{transform:translateY(-18px)}100%{transform:translateY(0)}}@keyframes paw-right-cheer{40%{transform:translateY(-18px)}100%{transform:translateY(0)}}
@media(max-width:600px){.intro h1{font-size:37px}.lead{font-size:12px;max-width:42ch}.round-info{margin-top:9px;padding:0 23px;font-size:12px}.remaining-readout strong{font-size:19px}.streak-readout{font-size:12px}.streak-readout small{font-size:12px}.paw{width:66px;height:103px;bottom:-33px}.paw-left{left:17%}.paw-right{right:17%}.shot-hint{padding-right:0;justify-content:center;text-align:center}.overlay{inset:40px 22px 50px;padding:20px}.play-footer{padding-top:1px}.play-scene{min-height:0}.shoot{font-size:14px}}
@media(prefers-reduced-motion:reduce){.paw{will-change:auto;animation:none!important}.celebration{display:none}}

#hitEffects{pointer-events:none}.impact-ring{fill:none;stroke:#fff8d9;stroke-width:3;transform-box:fill-box;transform-origin:center;animation:impact-ring .5s cubic-bezier(.16,1,.3,1) forwards}.impact-pixel{fill:#f6c079;animation:impact-pixel .5s cubic-bezier(.16,1,.3,1) forwards}.impact-pixel:nth-child(3n){fill:#66895d}.impact-pixel:nth-child(3n+1){fill:#fff8d9}.impact-miss .impact-ring{stroke:#bf7866}.impact-miss .impact-pixel{fill:#bf7866}.impact{filter:drop-shadow(0 2px 2px #66784d20)}@keyframes impact-ring{0%{transform:scale(.6);opacity:1}100%{transform:scale(4);opacity:0}}@keyframes impact-pixel{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--dx),var(--dy)) rotate(var(--rot));opacity:0}}@media(prefers-reduced-motion:reduce){#hitEffects{display:none}}

/* Flat toy-pin language matches the upright paw silhouettes. */
#pins .pin-outline,#projectile .pin-outline,#incoming .pin-outline{stroke:#bd987b;stroke-width:7;stroke-linecap:round}#pins .pin-shaft,#projectile .pin-shaft,#incoming .pin-shaft{stroke:#fff0d5;stroke-width:4;stroke-linecap:round}#pins circle{fill:#fff0d5;stroke:#bd987b;stroke-width:1.6}#pins .new-pin .pin-outline{stroke:#ba8c73}#pins .new-pin .pin-shaft{stroke:#f4c7aa}#pins .new-pin circle,#incoming circle,#projectile circle{fill:#f4c7aa;stroke:#ba8c73;stroke-width:1.6}.paw{filter:none}.paw-left,.paw-right{transform:none}
