@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:400 800;font-display:swap;src:url('./bricolage.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('./dm-sans.woff2') format('woff2')}

:root{font-family:'DM Sans',system-ui,sans-serif;color:#263f31;background:#f5ebdc;font-synthesis:none;--green:#264f3b;--mint:#e4ecd7;--pink:#df7194;--paper:#fffbf3;--muted:#75816f;--edge:#d7d6c3;--top:max(10px,env(safe-area-inset-top));--bottom:max(10px,env(safe-area-inset-bottom));--left:max(14px,env(safe-area-inset-left));--right:max(14px,env(safe-area-inset-right))}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;overscroll-behavior:none}button,a,input{-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}button{font:inherit;cursor:pointer;min-height:44px;border:0;border-radius:14px;font-weight:700;touch-action:manipulation}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #c66284;outline-offset:4px}.primary{background:var(--green);color:#fffbed;padding:15px 23px;box-shadow:0 4px 0 #183b2b;display:flex;justify-content:center;align-items:center;gap:40px}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #183b2b}.secondary{background:#ede3d4;color:var(--green);padding:13px 20px;border:1px solid #d7c9b7}.quiet-button{background:transparent;color:var(--green);padding:10px 13px;border:1px solid #cbd1bf}
.site-header{height:84px;max-width:1320px;padding:var(--top) 36px 10px;display:flex;align-items:center;justify-content:space-between;margin:auto}.wordmark{display:flex;align-items:center;gap:10px;color:var(--green);font-family:'Bricolage Grotesque',system-ui,sans-serif;font-size:22px;font-weight:800;text-decoration:none;letter-spacing:-.7px}.brand-doughnut{width:28px;height:28px;border-radius:50%;background:#e789a6;border:5px solid #cb9a59;box-shadow:inset 0 0 0 2px #f5adc2;position:relative}.brand-doughnut:after{content:'';position:absolute;width:8px;height:8px;background:#f5ebdc;border-radius:50%;inset:5px}.site-header>.quiet-button{font-size:12px;border:0;color:#596e5d}h1,h2,p{margin:0}h1,h2{font-family:'Bricolage Grotesque',system-ui,sans-serif}#menu{max-width:1248px;margin:auto;padding:20px 36px 24px}.intro{display:grid;grid-template-columns:.95fr 1.05fr;gap:22px;align-items:center;min-height:490px}.eyebrow{font-weight:800;font-size:10px;letter-spacing:2.1px;color:#648067}h1{font-size:clamp(58px,6.1vw,86px);line-height:.99;font-weight:800;letter-spacing:-4px;margin:22px 0}h1 span{color:#b96076}.intro-description{max-width:375px;color:#61715f;font-size:16px;line-height:1.65}.start-actions{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 23px}.best-score{font-size:9px;letter-spacing:1.6px;color:#7c816d;display:flex;align-items:baseline;gap:10px}.best-score output{font-weight:800;font-size:18px;color:var(--green);letter-spacing:0}.best-score span{letter-spacing:0;font-size:12px}.character-scene{position:relative;height:475px;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 52% 52%,#f8deb8 0 32%,#e5dfbb 64%,#d3d9b6);border-radius:48% 48% 18% 18%;box-shadow:inset 0 -12px 30px #697d5612}.scene-sun{position:absolute;width:245px;height:245px;border-radius:50%;background:#fbeace;top:35px;left:28%}.scene-grass{position:absolute;left:-10%;right:-10%;bottom:-40px;height:180px;background:#9aaf7f;border-radius:50%;z-index:-1;box-shadow:0 -20px 0 #b0bb8b}.scene-treetop{position:absolute;background:#507a54;width:150px;height:180px;border-radius:46%;top:28px;z-index:-1;box-shadow:inset -20px -12px 0 #34644733,20px -20px 0 #6a8a55}.scene-treetop.one{left:-100px;transform:rotate(-25deg)}.scene-treetop.two{right:-100px;top:-50px;transform:rotate(35deg)}.intro-beaver{position:absolute;width:61%;height:65%;object-fit:contain;left:-4%;bottom:68px;filter:drop-shadow(0 14px 9px #4a48252b);transform:rotate(-5deg);z-index:2}.intro-porcupine{position:absolute;width:57%;height:59%;object-fit:contain;right:-2%;bottom:77px;filter:drop-shadow(0 14px 9px #4a48252b);transform:rotate(5deg);z-index:1}.character-caption{position:absolute;bottom:32px;font-size:8px;letter-spacing:1.9px;color:#eaf0db}.character-caption strong{display:block;font-family:'Bricolage Grotesque',sans-serif;letter-spacing:0;font-size:16px;color:#fcf8e9;margin-top:4px}.beaver-caption{left:48px}.rival-caption{right:42px}.floating-doughnut{position:absolute;width:66px;height:66px;top:65px;left:18%;border-radius:50%;background:#e789a6;border:10px solid #c98e4d;box-shadow:inset 0 0 0 3px #f6aec6,0 8px 10px #907a4c25;transform:rotate(-22deg)}.floating-doughnut:after{content:'';position:absolute;inset:12px;border-radius:50%;background:#f4dfba;box-shadow:0 -12px 0 -10px #fff3d7}.floating-doughnut.chocolate{left:auto;right:19%;top:31px;width:46px;height:46px;border-width:7px;background:#674432;box-shadow:inset 0 0 0 2px #a4785b;transform:rotate(22deg)}.floating-doughnut.chocolate:after{inset:9px}.rules{display:grid;grid-template-columns:repeat(3,1fr);gap:38px;border-top:1px solid #d9d5bf;padding-top:25px;margin-top:28px}.rules>div{position:relative;padding-left:40px}.rules h2{font-size:17px;letter-spacing:-.3px;margin-bottom:8px}.rules p{font-size:12px;line-height:1.65;color:#78806c;max-width:275px}.rule-mark{position:absolute;left:0;top:1px;width:25px;height:25px;display:grid;place-items:center;font-family:serif;font-weight:800;font-size:30px;color:#759267}.doughnut-mark{background:#e789a6;border:5px solid #c99554;border-radius:50%;width:23px;height:23px}.doughnut-mark:after{content:'';width:6px;height:6px;background:#f5ebdc;border-radius:50%}.quill-mark{color:#986b52}.save-message{font-size:12px;color:#a35663;margin-top:16px;min-height:16px}

body[data-screen=play]{overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:none;background:#eee5d5}body[data-screen=play] .site-header{height:56px;padding:6px 24px;max-width:1200px}body[data-screen=play] .wordmark{font-size:17px}body[data-screen=play] .brand-doughnut{width:23px;height:23px;border-width:4px}body[data-screen=play] .brand-doughnut:after{inset:4px;width:7px;height:7px}#play{display:grid;grid-template-columns:minmax(0,1fr) 258px;gap:28px;max-width:1150px;margin:auto;padding:0 24px var(--bottom);height:calc(100dvh - 56px);align-items:center}.game-area{min-height:0;min-width:0;display:flex;flex-direction:column;align-items:center;align-self:start}.scoreboard{display:grid;grid-template-columns:1fr auto 1fr;gap:15px;align-items:center;width:min(100%,calc(100dvh - 145px));height:76px}.score-box{display:grid;gap:3px}.score-box output{font-family:'Bricolage Grotesque',sans-serif;font-size:29px;font-weight:800;line-height:1}.score-label{font-size:8px;font-weight:800;letter-spacing:1.1px;color:#75816b}.rival-score{text-align:right}.rival-score output{color:#9f654d}.round-clock{text-align:center;display:grid;gap:1px;min-width:62px}.round-clock>span{font-size:7px;font-weight:800;letter-spacing:1.2px;color:#7a826d}.round-clock>output{font-family:'Bricolage Grotesque',sans-serif;font-size:29px;font-weight:800;line-height:1.1}.round-clock.urgent>output{color:#b44b5f}.board-frame{position:relative;width:min(100%,calc(100dvh - 145px));aspect-ratio:1;background:#d9d9a4;border-radius:24px;box-shadow:0 4px 0 #c1b69d,0 13px 27px #5c673314;overflow:hidden;isolation:isolate}#board{display:block;width:100%;height:100%;touch-action:none}.control-panel{min-width:0}.play-details{display:flex;align-items:center;justify-content:space-between;gap:15px}.hit-meter{display:grid;grid-template-columns:1fr auto;column-gap:12px;row-gap:8px;min-width:130px;font-size:8px;font-weight:800;letter-spacing:1px}.hit-meter output{color:#95614e;letter-spacing:0;font-size:10px}.hit-dots{display:flex;gap:4px;grid-column:1/-1}.hit-dots i{width:9px;height:9px;border-radius:3px;background:#d4d0ba}.hit-dots i.filled{background:#bb6b68}.pause-button{font-size:11px;min-width:58px;padding:8px}.notice{min-height:47px;font-size:12px;line-height:1.5;color:#62735d;margin:22px 0 20px}.notice.warning{color:#b45461}.touch-controls{display:flex;align-items:center;justify-content:space-between;gap:20px}.stick-wrap,.chew-wrap{display:grid;gap:12px;justify-items:center}#stick{width:104px;height:104px;border-radius:50%;background:radial-gradient(circle,#a4b494 0 45%,#d6ddc6 46% 62%,#bac7a7 63%);border:1px solid #aaba95;box-shadow:inset 0 2px 8px #79865f20;display:grid;place-items:center;touch-action:none;cursor:grab}#stick-thumb{pointer-events:none;width:48px;height:48px;border:1px solid #cedcc0;border-radius:50%;background:radial-gradient(circle at 34% 22%,#719b76,#365f46 80%);box-shadow:0 5px 5px #5a714b35}#chew{width:103px;height:88px;background:#d87a94;color:#fffbed;border:1px solid #bc6179;box-shadow:0 5px 0 #ac566e;border-radius:26px;display:grid;justify-items:center;align-content:center;gap:7px;touch-action:none}#chew[aria-pressed=true]{background:#ba5b79;transform:translateY(3px);box-shadow:0 2px 0 #a74d67}.chew-teeth{font-size:16px;letter-spacing:-2px;line-height:.8}#chew strong{font-size:12px;letter-spacing:1.8px}.control-caption{font-size:7px;font-weight:800;letter-spacing:.8px;color:#778266;white-space:nowrap}.keyboard-help,.round-rule{font-size:10px;color:#8c907b;line-height:1.6;margin-top:28px}.round-rule{margin-top:14px;border-top:1px solid #d5d2bb;padding-top:15px}.overlay{position:absolute;inset:0;z-index:3;background:#edf0d3b5;backdrop-filter:blur(7px);display:grid;place-items:center}.overlay-panel,.confirm-panel{padding:28px;background:#fffcf1;border:1px solid #e0decc;box-shadow:0 15px 60px #4d633c20;width:min(86%,340px);border-radius:24px;display:grid;gap:12px;text-align:center}.overlay-panel .eyebrow{font-size:8px;letter-spacing:1.2px}.overlay-panel h2,.confirm-panel h2{font-size:32px;letter-spacing:-1.1px;line-height:1}.overlay-panel>p:not(.eyebrow),.confirm-panel p{font-size:12px;line-height:1.6;color:#75806a}.overlay-panel button{font-size:12px}.overlay-panel>.quiet-button{border:0}dialog{border:0;background:transparent;padding:0;width:min(92vw,350px)}.confirm-panel{width:100%;padding:25px}.confirm-panel h2{font-size:26px}dialog::backdrop{background:#1a35259c}
@media (hover:none){.keyboard-help{display:none}}
@media (max-width:700px){.site-header{height:68px;padding:var(--top) var(--right) 7px var(--left)}.wordmark{font-size:19px}#menu{padding:6px var(--right) 25px var(--left)}.intro{display:flex;flex-direction:column-reverse;gap:18px;min-height:0}.character-scene{width:100%;height:275px;border-radius:120px 120px 25px 25px;max-width:480px}.scene-sun{width:170px;height:170px;top:12px}.scene-grass{height:125px}.intro-beaver{bottom:44px;height:74%;width:64%}.intro-porcupine{bottom:48px;height:67%;width:59%}.character-caption{bottom:17px;font-size:6px}.character-caption strong{font-size:13px}.beaver-caption{left:29px}.rival-caption{right:28px}.floating-doughnut{top:25px;width:49px;height:49px;border-width:8px}.floating-doughnut:after{inset:8px}.floating-doughnut.chocolate{top:13px;width:35px;height:35px;border-width:6px}.floating-doughnut.chocolate:after{inset:6px}.intro-copy{width:100%;text-align:center}.eyebrow{font-size:8px;letter-spacing:1.7px}h1{font-size:52px;line-height:.99;letter-spacing:-2.7px;margin:12px 0}.intro-description{font-size:13px;line-height:1.6;max-width:340px;margin:auto}.start-actions{justify-content:center;margin:20px 0}.start-actions .primary{min-width:200px}.best-score{justify-content:center}.rules{gap:20px;margin-top:28px;grid-template-columns:1fr}.rules>div{padding-left:37px}.rules h2{font-size:15px;margin-bottom:4px}.rules p{font-size:11px;max-width:none}.rule-mark{font-size:26px}body[data-screen=play] .site-header{height:46px;padding:5px var(--right) 3px var(--left)}body[data-screen=play] .wordmark{font-size:16px}#play{padding:0 var(--right) var(--bottom) var(--left);height:calc(100dvh - 46px);display:flex;flex-direction:column;gap:16px;align-items:stretch;justify-content:flex-start}.game-area{width:100%;align-self:center}.scoreboard{height:66px;width:min(100%,calc(100dvh - 290px))}.board-frame{width:min(100%,calc(100dvh - 290px));border-radius:20px}.control-panel{width:100%;max-width:440px;align-self:center}.play-details{margin:0 4px}.hit-meter{font-size:7px;min-width:130px;row-gap:4px}.hit-dots i{width:8px;height:6px;border-radius:2px}.pause-button{min-height:44px}.notice{margin:3px 4px 7px;min-height:20px;font-size:10px;line-height:1.4}.touch-controls{padding:0 24px;gap:20px}#stick{width:90px;height:90px}#stick-thumb{width:42px;height:42px}#chew{width:95px;height:77px;border-radius:24px}.stick-wrap,.chew-wrap{gap:8px}.round-rule{display:none}.keyboard-help{margin-top:10px;text-align:center}.overlay-panel{padding:19px;gap:9px}.overlay-panel h2{font-size:27px}.overlay-panel>p:not(.eyebrow){font-size:11px}.overlay-panel button{min-height:40px;padding:10px 14px}.overlay-panel>.quiet-button{min-height:34px}}
@media (orientation:landscape) and (max-height:600px){body[data-screen=play] .site-header{height:42px;padding:3px var(--right) 3px var(--left)}#play{height:calc(100dvh - 42px);display:grid;grid-template-columns:minmax(0,1fr) 228px;gap:20px;padding:0 var(--right) var(--bottom) var(--left);align-items:center}.game-area{align-self:center}.scoreboard{height:54px;width:min(100%,calc(100dvh - 112px))}.board-frame{width:min(100%,calc(100dvh - 112px));border-radius:18px}.score-box output,.round-clock>output{font-size:23px}.score-label{font-size:6px}.round-clock>span{font-size:6px}.control-panel{max-width:none}.notice{font-size:10px;min-height:36px;margin:10px 0}.touch-controls{padding:0;gap:15px}#stick{width:90px;height:90px}#chew{width:91px;height:78px}.round-rule{display:none}.keyboard-help{margin-top:15px}.overlay-panel{padding:15px;gap:7px}.overlay-panel h2{font-size:24px}.overlay-panel button{min-height:36px;padding:8px}.overlay-panel .eyebrow{font-size:6px}.overlay-panel p{font-size:10px}.intro{min-height:0}.character-scene{height:300px}}
@media (max-height:690px) and (orientation:portrait){#play{gap:9px}.scoreboard{height:56px}.board-frame,.scoreboard{width:min(100%,calc(100dvh - 278px))}#stick{width:78px;height:78px}#stick-thumb{width:38px;height:38px}#chew{height:70px;width:90px}.touch-controls{padding-inline:18px}.notice{font-size:9px}.control-caption{font-size:6px}.hit-dots{gap:3px}}
#chew.near-tree:not(:disabled){border-color:#944561;outline:2px solid #c9779166;outline-offset:3px}
.overlay-panel button,.overlay-panel>.quiet-button{min-height:44px}
@media (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  #play{grid-template-columns:minmax(80px,1fr) minmax(0,calc(100dvh - 112px)) minmax(80px,1fr);grid-template-rows:44px minmax(0,1fr) 46px;gap:4px 14px}
  .game-area{grid-column:2;grid-row:1/4}
  .board-frame,.scoreboard{width:100%}
  .control-panel,.touch-controls{display:contents}
  .play-details{grid-column:3;grid-row:1;align-self:start;gap:5px}
  .hit-meter{min-width:0;column-gap:4px}
  .hit-dots{gap:2px}
  .hit-dots i{width:6px;height:6px}
  .notice{grid-column:3;grid-row:3;align-self:start;margin:0}
  .stick-wrap{grid-column:1;grid-row:2;justify-self:center}
  .chew-wrap{grid-column:3;grid-row:2;justify-self:center}
}
