:root{--g-paper: #fffaf0;--g-paper-2: #fff4dc;--g-ink: #465036;--g-ink-soft: #6b7453;--g-green: #5c8a45;--g-green-dark: #466d33;--g-pine: #2f7a52;--g-clay: #b8704f;--g-gold: #f2bf33;--g-line: #d9ccaa;--g-radius: 22px;--g-target: 56px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.game-scrim{position:absolute;inset:0;background:#2b362247;pointer-events:auto;z-index:19;animation:g-fade .2s ease-out}.game-scrim.puzzle-dock-scrim{background:none;pointer-events:none}.game-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:20;width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;background:var(--g-paper);color:var(--g-ink);border-radius:28px;padding:18px 22px 20px;box-shadow:0 24px 70px #22321f55,0 0 0 3px #fffdf6 inset;animation:g-pop .25s ease-out;font-size:17px}.game-panel.puzzle-dock{top:auto;bottom:14px;transform:translate(-50%);width:min(760px,calc(100vw - 20px));max-height:58vh;padding:14px 18px 16px}.game-panel:focus{outline:none}.game-panel h2{margin:4px 0 10px;font-family:Georgia,serif;font-size:26px;text-align:center}.game-panel .btn,#neighbor-note .btn{min-height:var(--g-target);min-width:120px;padding:0 22px;border-radius:18px;font:inherit;font-size:18px;font-weight:700;cursor:pointer;border:2px solid transparent;transition:transform .1s,filter .1s}.btn.primary{background:var(--g-green);color:#fff;box-shadow:0 4px 0 var(--g-green-dark)}.btn.secondary{background:var(--g-paper-2);color:var(--g-ink);border-color:var(--g-line)}.btn:active{transform:translateY(2px)}.btn:disabled{opacity:.45;cursor:default}.game-panel button:focus-visible,#neighbor-note button:focus-visible,.game-hud button:focus-visible{outline:3px solid #3b73c4;outline-offset:3px}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.card-title{display:flex;flex-direction:column;gap:2px}.card-title strong{font-size:18px}.card-progress{font-size:13px;color:var(--g-ink-soft)}.card-close{width:48px;height:48px;border-radius:50%;border:2px solid var(--g-line);background:var(--g-paper-2);color:var(--g-ink);font-size:26px;cursor:pointer}.card-body{display:flex;flex-direction:column;align-items:center;gap:12px}.card-prompt{margin:6px 0 2px;font-size:26px;font-weight:700;text-align:center;line-height:1.35}.card-prompt.small{font-size:20px}.card-prompt .blank{display:inline-block;min-width:1.6em;margin:0 .15em;padding:0 .2em;border:3px dashed #d9a441;border-radius:10px;color:#b8862b}.card-model svg,.hint svg,.explain-steps svg{max-width:100%;max-height:230px}.card-footer{display:flex;justify-content:center;gap:14px;margin-top:14px;flex-wrap:wrap}.hint-box{width:100%;display:flex;flex-direction:column;gap:8px}.hint{background:#fff4c9;border-radius:16px;padding:10px 14px;text-align:center}.hint p{margin:0 0 4px}.widget{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.answer-slots{display:flex;gap:12px}.answer-slot{min-width:132px;min-height:62px;padding:4px 12px;border-radius:16px;border:3px dashed var(--g-line);background:#fff;color:var(--g-ink);font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center}.answer-slot small{font-size:12px;color:var(--g-ink-soft)}.answer-slot .slot-value{font-size:30px;font-weight:800;min-height:36px}.answer-slot.active{border-style:solid;border-color:#d9a441;background:#fffbe8}.number-pad{display:grid;grid-template-columns:repeat(3,var(--g-target));gap:8px}.pad-key{width:var(--g-target);height:var(--g-target);border-radius:16px;border:2px solid var(--g-line);background:#fff;color:var(--g-ink);font:inherit;font-size:24px;font-weight:700;cursor:pointer;box-shadow:0 3px #e6dcc2}.pad-key:active{transform:translateY(2px);box-shadow:none}.pad-key.pad-action{background:var(--g-paper-2);font-size:20px}.widget-choice{flex-direction:row;flex-wrap:wrap;justify-content:center}.choice-chip{min-width:84px;min-height:var(--g-target);padding:0 18px;border-radius:999px;border:3px solid var(--g-line);background:#fff;color:var(--g-ink);font:inherit;font-size:22px;font-weight:700;cursor:pointer}.choice-chip[aria-pressed=true]{background:#e3f0d6;border-color:var(--g-green)}.choice-chip[aria-pressed=true]:before{content:"✓ ";color:var(--g-pine)}.stepper{display:flex;align-items:center;gap:10px}.stepper-label{min-width:108px;text-align:right;font-weight:700}.stepper-value{min-width:48px;text-align:center;font-size:30px;font-weight:800}.stepper.given .stepper-value{padding:2px 0;border-radius:14px;background:var(--g-paper-2)}.step-space{min-width:var(--g-target)}.step-btn{min-width:var(--g-target);height:var(--g-target);border-radius:18px;border:2px solid var(--g-line);background:#fff;color:var(--g-ink);font:inherit;font-size:22px;font-weight:700;cursor:pointer}.step-btn.wide{padding:0 16px}.readback{font-size:16px;color:var(--g-ink-soft);font-weight:600;text-align:center}.line-holder{width:100%;cursor:pointer;touch-action:none}.line-holder svg{width:100%;height:auto}.line-controls,.frames-controls{display:flex;align-items:center;gap:12px}.frames-area{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.crate{width:74px;height:58px;border-radius:10px;background:#e9c889;border:3px solid #b98a45;display:grid;place-items:center;font-weight:800;color:#6b4a22}.tens-frame{display:grid;grid-template-columns:repeat(5,30px);gap:4px;padding:6px;border-radius:10px;background:#fff;border:2px solid var(--g-line)}.tens-frame .counter{width:30px;height:30px;border-radius:50%;border:2px dashed #d7c6a0;font-size:10px;font-weight:800;color:#fff;display:grid;place-items:center}.tens-frame .counter.on{background:#e0935a;border:2px solid #b98a45}.coin-tray,.coin-bank{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;min-height:60px}.coin-tray{width:100%;padding:8px;border-radius:16px;background:#f4ecd8}.coin{width:var(--g-target);height:var(--g-target);border-radius:50%;border:3px solid #a8a8a8;background:radial-gradient(circle at 35% 30%,#fbfbfb,#cfcfcf);color:#444;font:inherit;font-weight:800;font-size:15px;cursor:pointer}.coin.coin-100,.coin.coin-200{border-color:#b99a3c;background:radial-gradient(circle at 35% 30%,#fff3bf,#e0bf55)}.coin.coin-1,.coin.coin-2{border-color:#a8653a;background:radial-gradient(circle at 35% 30%,#f6c49e,#c7804f);color:#fff}.feedback{display:flex;align-items:center;gap:10px;padding:10px 18px;border-radius:18px;font-size:20px;font-weight:700}.feedback p{margin:0}.feedback-mark{font-size:26px}.feedback.correct{background:#e3f3e8;color:var(--g-pine)}.feedback.not-yet{background:#f8e8dd;color:var(--g-clay)}.explain-steps{margin:0;padding-left:22px;width:100%;display:flex;flex-direction:column;gap:8px}.explain-steps li{opacity:0;animation:g-rise .4s ease-out forwards}.explain-steps li p{margin:0 0 4px;font-size:18px}.explain-bubble{position:relative;width:100%;margin-top:16px;padding:20px 18px 14px;border-radius:20px;background:#fffdf7;border:2px solid #eadfc4;box-shadow:0 3px #eadfc4}.explain-name{position:absolute;top:-14px;left:18px;padding:4px 16px;border-radius:999px;background:#a7c88c;color:#34452a;font-size:14px;transform:rotate(-3deg)}.explain-bubble[data-villager=barnaby] .explain-name{background:#e3bf8c}.explain-bubble[data-villager=hazel] .explain-name{background:#f3c6d3}.explain-bubble[data-villager=dilly] .explain-name{background:#f6de84}.explain-bubble[data-villager=rowan] .explain-name{background:#c9b3dd}.explain-opening{margin:0 0 10px;font-size:19px;font-weight:700;line-height:1.4;color:var(--g-ink);animation:g-rise .35s ease-out}.explain-opening.thinking{min-height:1.4em}.explain-opening .dots{display:inline-flex;gap:5px;padding:6px 12px;border-radius:999px;background:#f1ead6}.explain-opening .dots i{width:8px;height:8px;border-radius:50%;background:var(--g-ink-soft);animation:g-blink 1.1s infinite}.explain-opening .dots i:nth-child(2){animation-delay:.18s}.explain-opening .dots i:nth-child(3){animation-delay:.36s}.explain-opening+.explain-steps{border-top:1px dashed #e4d8ba;padding-top:10px}.summary-card{text-align:center}.stars{display:flex;justify-content:center;gap:10px;font-size:56px;color:#e7dcc3}.stars .star.on{color:var(--g-gold);animation:g-star .5s ease-out both;text-shadow:0 3px 0 #c99a1f}.summary-line{font-size:19px;font-weight:700;margin:8px 0}.summary-note{color:var(--g-ink-soft)}.summary-rewards{margin:10px 0 4px}.summary-rewards .summary-note{margin:0 0 6px;font-weight:700}.reward-tiles{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin:0;padding:0;list-style:none}.reward-tile{display:flex;flex-direction:column;align-items:center;gap:6px;width:132px;animation:g-pop-in .45s ease-out both}.reward-tile .item-art,.reward-tile .sticker-art{display:grid;place-items:center;width:84px;height:84px;border-radius:50%;background:radial-gradient(circle at 50% 42%,#fffaf0 0 38%,#f6ecd4 72%);box-shadow:0 3px #eadfc4}.reward-tile svg{width:64px;height:64px}.reward-tile .sticker-art svg{filter:drop-shadow(0 0 0 #fff) drop-shadow(1.5px 1.5px 0 #fff) drop-shadow(-1.5px -1.5px 0 #fff)}.reward-name{font-size:15px;font-weight:800;line-height:1.2;text-align:center}.summary-actions{display:flex;justify-content:center;gap:14px;margin-top:16px}#neighbor-note:not(.visible){pointer-events:none}#neighbor-note.visible{pointer-events:auto}#neighbor-note{z-index:18;cursor:pointer;min-width:min(420px,calc(100vw - 30px))}#neighbor-note .choices{display:flex;gap:12px;justify-content:center;margin:4px 0 6px}#neighbor-note .choices:empty{display:none}.game-hud{position:absolute;inset:0;pointer-events:none}.coin-pill{position:absolute;top:116px;left:30px;display:flex;align-items:center;gap:8px;padding:8px 16px 8px 10px;border-radius:999px;background:#fffbeaee;color:var(--g-ink);font-weight:800;font-size:18px;box-shadow:0 4px 16px #34492125}.coin-icon{display:grid;place-items:center;width:28px;height:28px}.coin-icon .clover,.coin-icon svg,.quest-marker .glyph .clover,.quest-marker .glyph svg{display:block;width:100%;height:100%}.quest-tracker{position:absolute;top:166px;left:30px;max-width:280px;padding:8px 14px;border-radius:14px;background:#fff3c4ee;color:#6b5320;font-size:14px;font-weight:700;opacity:0;transform:translateY(-4px);transition:.3s;box-shadow:0 4px 14px #34492120}.quest-tracker.visible{opacity:1;transform:none}.tracker-action{display:block;margin-top:8px;min-height:44px;padding:0 16px;border-radius:14px;border:2px solid #e2c77e;background:#fffaf0;color:#6b5320;font:inherit;font-weight:800;cursor:pointer}.tracker-action[hidden]{display:none}.game-buttons{position:absolute;right:26px;bottom:26px;display:flex;gap:10px}.game-btn{width:var(--g-target);height:var(--g-target);border-radius:50%;border:3px solid #fffbea;background:#7fa66a;color:#fff;font-size:24px;cursor:pointer;box-shadow:0 5px 16px #28381f40;display:grid;place-items:center}.game-btn .game-icon{display:grid;pointer-events:none}.game-btn svg{width:26px;height:26px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none}.game-btn.grown-ups{background:#9a9d8a;position:relative}.game-btn.grown-ups.holding:after{content:"";position:absolute;inset:-6px;border-radius:50%;border:4px solid #fff3c4;clip-path:inset(0 0 0 0);animation:g-hold 1.5s linear forwards}.marker-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden}.quest-marker{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;margin:-58px 0 0 -40px;width:80px;will-change:transform}.quest-marker .glyph{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--g-gold);color:#5b3d00;font-weight:900;font-size:24px;border:3px solid #fffbea;box-shadow:0 4px 12px #3a2a0045;animation:g-bob 1.6s ease-in-out infinite}.quest-marker[data-kind=errand] .glyph{background:#8cc46a;color:#fff}.quest-marker[data-kind=waiting] .glyph{background:#d8d2c0;color:#6b6450}.quest-marker .marker-label{margin-top:4px;padding:2px 8px;border-radius:999px;background:#fffbeadd;color:var(--g-ink);font-size:11px;font-weight:700;white-space:nowrap}.game-panel.lookout-card{width:min(820px,calc(100vw - 24px))}.lookout-intro,.lookout-note,.lookout-count{text-align:center;margin:6px 0}.lookout-note{min-height:1.4em;font-weight:700;color:var(--g-pine)}.lookout-count{color:var(--g-ink-soft)}.lookout-view{position:relative;border-radius:50%/46%;overflow:hidden;box-shadow:0 0 0 10px #5a4632,0 10px 30px #22321f55;margin:14px 8px}.lookout-view svg{display:block;width:100%;height:auto}.lookout-spot{position:absolute;min-width:44px;min-height:44px;border-radius:50%;border:3px dashed transparent;background:none;cursor:pointer}.lookout-spot:focus-visible{outline:3px solid #fffaf0}.lookout-spot.spotted{border-color:#fff3b0;box-shadow:0 0 0 3px #f2bf3380}body.in-home #hud>:not(.home-ui):not(#toast){visibility:hidden}.home-ui{position:absolute;inset:0;z-index:16;color:var(--g-ink)}.home-surface{position:absolute;inset:0;pointer-events:auto;touch-action:none}.home-bar{position:absolute;top:18px;left:22px;right:22px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.home-bar h2{margin:0;padding:8px 20px;border-radius:999px;background:#fffaf0ee;font-family:Georgia,serif;font-size:24px;box-shadow:0 4px 16px #34492122}.home-ui .btn{min-height:var(--g-target);min-width:56px;padding:0 18px;border-radius:18px;font:inherit;font-size:18px;font-weight:700;cursor:pointer;border:2px solid transparent}.home-ui .btn.secondary{background:var(--g-paper-2);border-color:var(--g-line);color:var(--g-ink)}.home-ui .btn.primary{background:var(--g-green);color:#fff;box-shadow:0 4px 0 var(--g-green-dark)}.home-ui .btn:disabled{opacity:.4}.home-ui button:focus-visible{outline:3px solid #3b73c4;outline-offset:3px}.home-tray,.home-tools{position:absolute;left:50%;bottom:16px;transform:translate(-50%);width:min(760px,calc(100vw - 24px));padding:12px 16px 14px;border-radius:24px;background:#fffaf0f2;box-shadow:0 12px 40px #22321f40}.home-tray[hidden],.home-tools[hidden]{display:none}.home-tray strong,.tools-title{display:block;margin:0 0 8px 4px;font-size:15px;color:var(--g-ink-soft)}.home-tray-items{display:flex;gap:10px;overflow-x:auto;padding-bottom:2px}.tray-item{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:112px;min-height:96px;padding:6px 12px 8px;border-radius:16px;border:2px solid var(--g-line);background:#fff;color:var(--g-ink);font:inherit;font-weight:700;font-size:16px;cursor:pointer}.tray-item .item-art svg,.tools-title .item-art svg{width:56px;height:56px}.tray-name{font-size:15px;line-height:1.2;text-align:center}.home-tray-items{align-items:stretch}.home-tools .tools-title{display:flex;align-items:center;gap:8px;margin-bottom:2px;color:var(--g-ink);font-size:17px}.tools-title .item-art svg{width:44px;height:44px}.tray-empty{margin:4px;color:var(--g-ink-soft)}.tools-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:6px}@keyframes g-pop-in{0%{opacity:0;transform:scale(.6) translateY(6px)}70%{transform:scale(1.06)}to{opacity:1;transform:none}}@keyframes g-fade{0%{opacity:0}}@keyframes g-pop{0%{opacity:0;scale:.96}}@keyframes g-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes g-blink{50%{opacity:.3}}@keyframes g-star{0%{transform:scale(.3) rotate(-30deg);opacity:0}}@keyframes g-bob{50%{transform:translateY(-5px)}}@keyframes g-hold{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@media(max-width:700px){.game-panel{padding:14px 14px 16px}.card-prompt{font-size:22px}.coin-pill{top:92px;left:14px}.quest-tracker{top:140px;left:14px;max-width:200px}.game-buttons{right:14px;bottom:96px}}@media(prefers-reduced-motion:reduce){.quest-marker .glyph,.explain-steps li,.reward-tile,.stars .star.on{animation:none;opacity:1}}
