:root{--dark:#132c20;--green:#194d36;--lime:#c8f34a;--cream:#fff8e8;--ink:#13231b}*{box-sizing:border-box}body{margin:0;min-height:100svh;background:radial-gradient(circle at 85% 20%,#357458,transparent 32%),linear-gradient(140deg,var(--dark),var(--green));color:var(--cream);font-family:Nunito,system-ui,sans-serif}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:4px solid #fff;outline-offset:4px}button[hidden],section[hidden]{display:none!important}.shell{min-height:100svh;max-width:960px;margin:auto;padding:18px 22px 42px}header{display:flex;align-items:center;justify-content:space-between;gap:15px}.back{color:var(--cream);font-weight:900;text-decoration:none}.brand{display:flex;align-items:center;gap:8px;font-family:'Baloo 2',sans-serif;font-weight:800;letter-spacing:.05em}.brand img{width:38px;height:38px;object-fit:cover;border:3px solid var(--lime);border-radius:50%}.sound{width:42px;height:42px;border:1px solid #ffffff70;background:#ffffff15;border-radius:50%;color:white;font-size:1.25rem}.intro{text-align:center;position:relative;max-width:640px;margin:clamp(25px,7vh,80px) auto 0}.hero-dog{display:block;width:clamp(135px,26vh,210px);aspect-ratio:1;object-fit:cover;margin:0 auto 22px;border-radius:50%;border:9px solid var(--lime);box-shadow:12px 14px 0 #0b251b}.eyebrow{margin:0 0 5px;font-size:.73rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase;color:var(--lime)}h1{font:800 clamp(3.3rem,9vw,6rem)/.88 'Baloo 2',sans-serif;letter-spacing:-.045em;margin:0}h1 em{color:var(--lime);font-style:normal}.intro>p:not(.eyebrow){max-width:420px;margin:20px auto 25px;font-weight:800;line-height:1.5}.primary{border:2px solid var(--ink);background:var(--lime);color:var(--ink);border-radius:999px;padding:13px 29px;font-weight:900;box-shadow:5px 6px 0 #0a2418;transition:transform .2s,box-shadow .2s}.primary:hover{transform:translateY(-3px);box-shadow:5px 9px 0 #0a2418}.primary span{margin-left:20px}.spark{position:absolute;color:var(--lime);font-size:3rem}.s1{left:10%;top:12%}.s2{right:7%;top:38%}.arena{max-width:490px;margin:18px auto 0}.heading{display:flex;align-items:center;justify-content:space-between}.heading h1{font-size:clamp(2.7rem,7vw,4.4rem)}.heading img{width:76px;height:76px;object-fit:cover;border-radius:50%;border:5px solid var(--lime);transform:rotate(8deg)}.score{display:flex;align-items:center;justify-content:space-around;margin:14px 0 8px;padding:10px;border:2px solid #ffffff40;border-radius:20px;background:#ffffff15}.score div{text-align:center;min-width:90px}.score span{display:block;font-size:.7rem;font-weight:900;letter-spacing:.08em}.score strong{font:800 2rem 'Baloo 2',sans-serif;line-height:1}.score>b{font-size:1.4rem;color:var(--lime)}.status{text-align:center;font:800 1.45rem 'Baloo 2',sans-serif;margin:8px 0}.board{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:12px;background:var(--lime);border:4px solid var(--ink);border-radius:26px;box-shadow:9px 10px 0 #0a2418}.cell{aspect-ratio:1;border:3px solid var(--ink);border-radius:18px;background:var(--cream);color:#a067dc;font-size:clamp(2.8rem,10vw,5rem);line-height:1;display:grid;place-items:center;transition:transform .15s,background .2s}.cell:not(:disabled):hover{transform:scale(.96);background:#fff}.cell.player{font-size:clamp(2.5rem,8vw,4rem)}.cell.winning{background:#ffd85a;animation:pulse .55s 2}.actions{display:flex;align-items:center;justify-content:center;gap:17px;min-height:65px;margin-top:18px}.reset{border:0;background:none;color:white;text-decoration:underline;font-weight:800}.confetti{pointer-events:none;position:fixed;inset:0;opacity:0}.confetti.show{opacity:1;background-image:radial-gradient(circle,#c8f34a 3px,transparent 4px),radial-gradient(circle,#ffd85a 4px,transparent 5px),radial-gradient(circle,#f798ce 3px,transparent 4px);background-size:67px 93px,101px 73px,83px 113px;animation:party 1.8s linear}@keyframes party{from{background-position:0 -90px,0 -130px,0 -70px}to{background-position:0 500px,0 400px,0 550px}}@keyframes pulse{50%{transform:scale(.91)}}@media(max-width:520px){.shell{padding:12px 15px 25px}.arena{margin-top:14px}.heading img{width:62px;height:62px}.board{gap:6px;padding:8px;border-radius:20px}.cell{border-radius:13px}.intro{margin-top:clamp(30px,8vh,75px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
