@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/tally-castle/assets/fredoka-hebrew-wght-normal-DdnsCkLr.woff2)format("woff2-variations");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/tally-castle/assets/fredoka-latin-ext-wght-normal-CYrqKuxd.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fredoka Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/tally-castle/assets/fredoka-latin-wght-normal-DM6njrJ3.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#2a1a5e;--night:#1d1450;--royal:#3a2a8f;--royal-2:#5a46c8;--gold:#ffcf3f;--gold-deep:#e09a00;--cream:#fff8e8;--good:#27b360;--bad:#e2304f;--banner:#e2304f;color:var(--ink);-webkit-tap-highlight-color:transparent;font-family:Fredoka Variable,Fredoka,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--night);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;height:100%;margin:0;overflow:hidden}button{font:inherit;cursor:pointer}.btn{color:var(--ink);background:#fff;border:0;border-radius:999px;padding:.7em 1.4em;font-size:1.05rem;font-weight:700;transition:transform 80ms;box-shadow:0 4px #0000002e}.btn:active{transform:translateY(3px);box-shadow:0 1px #0000002e}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:linear-gradient(#ffe27a, var(--gold) 55%, var(--gold-deep));color:#4a2a00;box-shadow:0 5px #a86a00,0 8px 18px #00000040}.btn.huge{padding:.55em 2.2em;font-size:clamp(1.5rem,5vw,2rem)}.btn.small{padding:.4em 1em;font-size:.95rem}.btn.rush{background:linear-gradient(#8f7dff, var(--royal-2));color:#fff;box-shadow:0 4px #2d1f86}.btn.build{background:linear-gradient(#ff8fa8, var(--banner));color:#fff;position:relative;box-shadow:0 4px #0000004d}.btn.build.glow{animation:1.4s ease-in-out infinite glow}@keyframes glow{50%{box-shadow:0 4px #0000004d,0 0 22px 6px #ffdc5abf}}.badge{background:var(--gold);color:#4a2a00;border-radius:999px;place-items:center;min-width:1.6em;height:1.6em;margin-left:.4em;font-size:.85em;display:inline-grid}.round-btn{width:46px;height:46px;color:var(--ink);background:#ffffffeb;border:0;border-radius:50%;flex:none;font-size:1.05rem;font-weight:800;box-shadow:0 3px #00000040}.home{height:100%;position:relative;overflow:hidden}.scene-wrap{position:absolute;inset:0}.scene{width:100%;height:100%;display:block}.topbar{padding:max(10px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) 10px max(12px, env(safe-area-inset-left));color:#fff;background:linear-gradient(#140c3cbf,#140c3c00);align-items:center;gap:10px;display:flex;position:absolute;inset:0 0 auto}.stars{background:#00000059;border-radius:999px;align-items:center;gap:6px;padding:6px 14px 6px 8px;font-size:1.3rem;font-weight:800;display:flex}.star-ico{color:var(--gold);text-shadow:0 0 10px #ffd23ccc;font-size:1.5rem}.area-name{text-align:center;text-shadow:0 2px 6px #0009;flex:1;min-width:0;display:grid}.area-name b{font-size:clamp(1.1rem,3.5vw,1.5rem)}.area-name span{opacity:.9;font-size:.85rem}.home-actions{padding:40px 16px max(18px, env(safe-area-inset-bottom));background:linear-gradient(#140c3c00,#140c3ccc);flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute;inset:auto 0 0}.pack-note{color:#fff;opacity:.85;margin:0;font-size:.85rem}@media (orientation:landscape) and (max-height:560px){.home-actions{inset:auto max(16px, env(safe-area-inset-right)) 0 auto;background:0 0;width:min(320px,45vw)}}.modal-back{z-index:20;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f082d99;place-items:center;padding:16px;animation:.2s fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{text-align:center;background:var(--cream);touch-action:pan-y;border-radius:28px;justify-items:center;gap:12px;width:min(420px,100%);max-height:calc(100dvh - 32px);padding:22px 20px;animation:.3s cubic-bezier(.2,1.4,.4,1) pop-in;display:grid;overflow:auto;box-shadow:0 10px #0003,0 20px 50px #0006}.modal.wide{width:min(640px,100%)}@keyframes pop-in{0%{opacity:0;transform:scale(.85)}}.modal h2{margin:0;font-size:1.7rem}.modal p{margin:0}.kicker{text-transform:uppercase;letter-spacing:.1em;color:var(--royal-2);font-size:.8rem;font-weight:700}.small{font-size:.95rem}.muted{opacity:.7}.big-target{font-size:1.6rem}.big-target b{background:var(--royal);color:var(--gold);border-radius:14px;padding:0 .4em;font-size:2.2rem;display:inline-block}.goal-list,.tasks,.packs{gap:8px;width:100%;margin:0;padding:0;list-style:none;display:grid}.goal-list li{text-align:left;background:#fff;border-radius:16px;align-items:center;gap:10px;padding:6px 12px;font-weight:600;display:flex}.tasks li{text-align:left;background:#fff;border-radius:18px;justify-content:space-between;align-items:center;gap:10px;padding:8px 8px 8px 16px;font-weight:600;display:flex}.packs{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.pack{text-align:left;width:100%;height:100%;color:var(--ink);background:#fff;border:3px solid #0000;border-radius:18px;justify-items:start;gap:2px;padding:12px 14px;display:grid;box-shadow:0 3px #0000001f}.pack.on{border-color:var(--royal-2)}.pack b{font-size:1.15rem}.pack .ages{color:var(--royal-2);font-size:.85rem;font-weight:700}.pack .sample{background:var(--royal);color:var(--gold);border-radius:10px;margin:4px 0;padding:2px 10px;font-weight:700}.pack .blurb{font-size:.85rem}.toggle{align-items:center;gap:10px;font-size:1.1rem;font-weight:600;display:flex}.toggle input{width:22px;height:22px}.swatches{gap:10px;display:flex}.swatch{border:3px solid #fff;border-radius:50%;width:36px;height:36px;box-shadow:0 2px #00000040}.swatch[aria-pressed=true]{outline:3px solid var(--ink)}.win .burst-star{color:var(--gold);text-shadow:0 0 30px #ffd23ce6;font-size:4.5rem;line-height:1;animation:.8s cubic-bezier(.2,1.4,.4,1) spin-in}@keyframes spin-in{0%{transform:scale(0)rotate(-180deg)}}.play{background-position:50%;background-size:cover;background:radial-gradient(120% 80% at 50% 0%, #5a46c8 0%, var(--royal) 45%, var(--night) 100%);height:100%;padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));flex-direction:column;gap:8px;display:flex}.hud{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.target{box-shadow:0 4px 0 #c99000, inset 0 0 0 3px var(--banner);background:linear-gradient(#fff6d6,#ffe48a);border-radius:18px;justify-items:center;padding:4px 16px 6px;animation:.5s cubic-bezier(.2,1.6,.4,1) bump;display:grid}@keyframes bump{0%{transform:scale(1.35)}}.t-verb{text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:700}.t-num{font-size:clamp(1.9rem,6vw,2.5rem);font-weight:800;line-height:1}.moves{color:#fff;background:#ffffff24;border-radius:16px;justify-items:center;min-width:64px;padding:4px 10px;display:grid}.m-num{font-size:1.8rem;font-weight:800;line-height:1}.m-lbl{opacity:.85;font-size:.75rem}.goals{background:#ffffff24;border-radius:16px;gap:8px;margin:0;padding:4px 8px;list-style:none;display:flex}.goals li{color:#fff;align-items:center;gap:2px;font-size:1.2rem;font-weight:800;display:flex}.goals li.done span{color:#7dffb0}.board-wrap{flex:1;min-height:0;position:relative}.board{touch-action:none;display:block;position:absolute;inset:0}.sum-bar{align-items:center;gap:8px;min-height:52px;display:flex}.sum{text-align:center;text-overflow:ellipsis;white-space:nowrap;background:#ffffffeb;border-radius:16px;flex:1;min-width:0;padding:10px 14px;font-size:clamp(1rem,3.6vw,1.25rem);font-weight:700;overflow:hidden}.sum.live{background:#fff6d6}.sum.ok{color:#13693a;background:#dcffe9}.sum.no{color:#9b1230;background:#ffe1e6}.sum.tip{white-space:normal;font-size:clamp(.85rem,3vw,1rem);font-weight:600}.pop-word{z-index:10;pointer-events:none;color:#fff;-webkit-text-stroke:2px var(--royal);text-shadow:0 3px 0 var(--royal);font-size:1.8rem;font-weight:800;animation:1.1s ease-out forwards rise;position:fixed;transform:translate(-50%,-50%)}@keyframes rise{0%{transform:translate(-50%,-50%)scale(.6)}20%{transform:translate(-50%,-60%)scale(1.15)}to{opacity:0;transform:translate(-50%,-150%)scale(1)}}@media (orientation:landscape) and (max-height:600px){.play{grid-template-rows:1fr auto;grid-template-columns:minmax(150px,30vw) 1fr;display:grid}.hud{flex-flow:column;grid-row:1;justify-content:flex-start}.hud .round-btn{align-self:flex-start}.goals{flex-wrap:wrap;justify-content:center}.board-wrap{grid-area:1/2/span 2}.sum-bar{flex-direction:column;grid-area:2/1;align-items:stretch}.sum{white-space:normal}}.area-done{z-index:5;text-align:center;background:#fff8e8f2;border-radius:24px;justify-items:center;gap:10px;width:min(360px,100% - 32px);padding:16px 18px;animation:.5s cubic-bezier(.2,1.4,.4,1) pop-in;display:grid;position:absolute;top:22%;left:50%;transform:translate(-50%);box-shadow:0 8px #0003}.area-done p{margin:0;font-size:1.2rem}
