:root{--cream:#fff1d6;--pumpkin:#ef7d22;--pumpkin-dark:#b9530f;--night:#171230;--panel:#20142cf7;--muted:#fff1d6a6;color:var(--cream);background:var(--night);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;height:100%;margin:0;overflow:hidden}*{scrollbar-width:none}::-webkit-scrollbar{display:none}.stage,.screen{height:100dvh;position:fixed;inset:0}.screen{padding:max(16px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));overflow-y:auto}.btn{width:100%;font:inherit;color:var(--cream);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#2a1b3ad1;border:1px solid #fff1d624;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:13px 16px;font-size:1.05rem;font-weight:700;transition:background .12s;display:flex}.btn:hover:not(:disabled){background:#3e2a52e0}.btn:disabled{cursor:default;opacity:.55}.btn small{color:var(--muted);font-size:.78rem;font-weight:500}.btn-primary{color:#2a1204;background:linear-gradient(#ffb04a, var(--pumpkin));box-shadow:0 4px 0 var(--pumpkin-dark);border:0}.btn-primary:hover:not(:disabled){background:linear-gradient(#ffbd63,#f38a33)}.btn-primary:active{box-shadow:0 1px 0 var(--pumpkin-dark);transform:translateY(3px)}.btn-danger{color:#ffb3a1;background:#ff7b5c24;border-color:#ff7b5c99}.btn-icon{width:40px;height:40px;font:inherit;color:var(--cream);cursor:pointer;background:#fff1d61a;border:0;border-radius:50%;flex:none;place-items:center;font-size:1.15rem;display:grid}.btn:focus-visible,.btn-icon:focus-visible,.level-tile:focus-visible,.segmented button:focus-visible,.toggle:focus-visible{outline-offset:2px;outline:3px solid #ffd27a}.menu{flex-direction:column;gap:10px;width:min(320px,100%);display:flex}.stars{letter-spacing:6px;font-size:2rem}.stars-small{letter-spacing:2px;font-size:.95rem}.star{color:#fff1d633}.star.on{color:#ffc94a;text-shadow:0 0 12px #ffc85099}.star-total{color:#ffc94a;margin:0;font-weight:700}.title-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.title-pumpkin{filter:drop-shadow(0 0 40px #ffaa3c59);animation:4s ease-in-out infinite bob}.title{letter-spacing:-.5px;margin:0;font-family:ui-rounded,SF Pro Rounded,Nunito,system-ui,sans-serif;font-size:clamp(2.1rem,9vw,3.2rem);line-height:1.05}.title span{color:#ffb04a;text-shadow:0 0 24px #ff963273;display:block}.tagline{color:var(--muted);margin:0 0 8px}.screen-header{align-items:center;gap:12px;max-width:560px;margin:0 auto 18px;display:flex}.screen-header h1{flex:1;margin:0;font-size:1.35rem}.levels-screen{flex-direction:column;padding-left:0;padding-right:0;display:flex;overflow:hidden}.levels-screen .screen-header{width:calc(100% - 32px);margin-bottom:8px}.pager{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;flex:1;min-height:0;display:flex;overflow:auto hidden}.pager-page{scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 100%;justify-content:center;align-items:center;padding:0 16px;display:flex}.pager-page .patch{width:100%;margin:0}.pager-nav{justify-content:center;align-items:center;gap:18px;padding-top:10px;display:flex}.pager-nav .btn-icon:disabled{opacity:.3;cursor:default}.pager-dots{gap:10px;display:flex}.dot{cursor:pointer;background:#fff1d640;border:0;border-radius:50%;width:10px;height:10px;padding:0}.dot.on{background:#ffb04a;box-shadow:0 0 8px #ffb04a99}.patch-gate{color:#ffd27a;margin:-4px 0 10px;font-size:.85rem}.patch{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1e122bdb;border-radius:18px;max-width:560px;margin:0 auto 14px;padding:14px}.patch h2{justify-content:space-between;margin:0 0 12px;font-size:1.05rem;display:flex}.patch-stars{color:#ffc94a;font-size:.9rem}.patch-locked{opacity:.6}.patch-locked h2{margin-bottom:4px}.patch-locked p{color:var(--muted);margin:0;font-size:.9rem}.level-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.level-tile{width:100%;font:inherit;color:var(--cream);cursor:pointer;background:#10091a99;border:1px solid #fff1d61f;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:10px 6px 8px;display:flex;position:relative}.level-tile:hover:not(:disabled){background:#fff1d61a}.level-tile:disabled{cursor:default;opacity:.45}.level-number{font-size:.85rem;font-weight:800;position:absolute;top:6px;left:8px}.level-name{text-align:center;font-size:.8rem;font-weight:600;line-height:1.15}.level-grid li{display:flex}.level-tile{height:100%}.level-tile .stars{margin-top:auto}.level-tile canvas{aspect-ratio:1;max-width:84px;width:100%!important;height:auto!important}@media (width<=480px){.patch{padding:12px 10px}.level-grid{gap:5px}.level-tile{border-radius:11px;padding:8px 2px 6px}.level-name{font-size:.66rem}.level-number{font-size:.72rem;top:3px;left:5px}.stars-small{letter-spacing:0;font-size:.7rem}}.game-canvas{touch-action:none;cursor:none;width:100%;height:100%;display:block}.pause-btn{top:max(10px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));width:44px;height:44px;color:var(--cream);cursor:pointer;background:#140a1e8c;border:0;border-radius:50%;place-items:center;display:grid;position:absolute}.pause-btn-left{right:auto;left:max(12px, env(safe-area-inset-left))}.icon{display:block}.night-scene{width:100%;height:100dvh;display:block;position:fixed;inset:0}.modal-backdrop{background:#0a051480;place-items:center;padding:16px;animation:.25s ease-out fade-in;display:grid;position:fixed;inset:0}.panel{background:var(--panel);border-radius:22px;width:min(380px,100%);max-height:calc(100dvh - 32px);padding:22px 20px 20px;animation:.32s cubic-bezier(.2,.9,.3,1.2) rise;overflow-y:auto;box-shadow:0 20px 50px #00000073}.panel h1{margin:0 0 6px;font-size:1.5rem}.panel-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.panel-header h1{margin:0}.pause-menu{text-align:center;flex-direction:column;align-items:center;display:flex}.pause-menu .menu{margin-top:10px}.results{text-align:center}.results-level{color:var(--muted);margin:0 0 4px;font-size:.85rem}.results-score{font-variant-numeric:tabular-nums;color:#ffc46b;margin:0;font-size:3rem;font-weight:800}.results-best{color:#ffd27a;margin:4px 0 0;font-weight:700}.results-fail{color:var(--muted);margin:4px 0 16px}.results-shapes{background:#fff1d60f;border-radius:14px;margin:14px 0;padding:10px 14px;list-style:none}.results-shapes li,.results-stats div{font-variant-numeric:tabular-nums;justify-content:space-between;padding:4px 0;display:flex}.results-stats{color:var(--muted);margin:0 0 18px;padding:0 14px;font-size:.9rem}.results-stats dd{color:var(--cream);margin:0}.results-actions{flex-direction:column;gap:10px;display:flex}.results-secondary{gap:10px;display:flex}.settings h2{letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin:18px 0 6px;font-size:.8rem;font-weight:700}.setting{justify-content:space-between;align-items:center;gap:16px;min-height:44px;display:flex}.setting-stack{flex-direction:column;align-items:stretch;gap:8px;padding:6px 0}.setting input[type=range]{max-width:180px;accent-color:var(--pumpkin);flex:1}.segmented{background:#fff1d614;border-radius:12px;padding:3px;display:flex}.segmented button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;padding:8px 4px;font-size:.88rem;font-weight:600}.segmented button.on{color:#2a1204;background:#ffb04a}.toggle{cursor:pointer;background:#fff1d62e;border:0;border-radius:15px;flex:none;width:50px;height:30px;transition:background .15s;position:relative}.toggle span{background:var(--cream);border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle.on{background:var(--pumpkin)}.toggle.on span{transform:translate(20px)}.how-to ul{margin:0 0 18px;padding:0;list-style:none}.how-to li{border-bottom:1px solid #fff1d614;padding:8px 0;line-height:1.4}.how-to b{color:#ffd27a}@keyframes fade-in{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(20px)scale(.96)}}@keyframes bob{50%{transform:translateY(-6px)rotate(-1deg)}}@media (prefers-reduced-motion:reduce){.title-pumpkin,.panel,.modal-backdrop{animation:none}}.menu-row{gap:10px;display:flex}.patch h2>span:first-child{flex-direction:column;display:flex}.patch-type{color:var(--muted);font-size:.78rem;font-style:italic;font-weight:500}.results-unlocks{background:#ffd27a14;border:1px solid #ffd27a66;border-radius:14px;margin:12px 0 0;padding:10px 14px}.results-unlocks p{color:#ffd27a;margin:0 0 4px;font-weight:800}.results-unlocks ul{margin:0;padding:0;list-style:none}.results-unlocks li{padding:2px 0}.wardrobe h2{letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin:16px 0 8px;font-size:.8rem;font-weight:700}.wardrobe-total{margin:12px 0 0}.wardrobe-note{color:var(--muted);margin:0 0 10px;font-size:.82rem}.swatches{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;display:grid}.swatch{min-height:92px;font:inherit;color:var(--cream);cursor:pointer;background:#fff1d60f;border:2px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 8px;display:flex}.swatch.on{background:#ffb04a1f;border-color:#ffb04a}.swatch:disabled{cursor:default;opacity:.5}.swatch:focus-visible{outline-offset:2px;outline:3px solid #ffd27a}.flame{border-radius:50%;place-items:center;width:40px;height:40px;display:grid;box-shadow:0 0 16px #ffdc9659}.flame-rainbow{background:conic-gradient(#ff7a7a,#ffd36b,#8cff7a,#6bd5ff,#c77bff,#ff7a7a)!important}.flame-auto{color:#ffd27a;box-shadow:none;background:#fff1d61a;font-size:1.3rem}.swatch-name{text-align:center;font-size:.78rem;font-weight:600}.swatch-lock{color:var(--muted);font-size:.7rem}.results-note{color:var(--muted);margin:4px 0 0;font-size:.9rem}.streak{color:#ffb04a;font-weight:800}.daily-screen{flex-direction:column;gap:10px;display:flex;overflow:hidden}.daily-screen .screen-header{width:100%;max-width:420px;margin-bottom:0}.daily-card{text-align:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1e122bdb;border-radius:22px;flex-direction:column;align-items:center;gap:6px;width:100%;max-width:420px;margin:auto auto 0;padding:14px 16px;display:flex}.daily-title{align-items:baseline;gap:10px;margin:0;display:flex}.daily-number{color:#ffb04a;font-size:1.9rem;font-weight:800;line-height:1}.daily-date{color:var(--muted)}.daily-pumpkin{filter:drop-shadow(0 0 30px #ffaa3c40)}.daily-tags{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.tag{background:#fff1d61a;border-radius:999px;padding:4px 10px;font-size:.85rem;font-weight:600}.daily-rule{color:var(--muted);margin:0;font-size:.88rem}.daily-best{align-items:center;gap:10px;display:flex}.daily-best span{color:var(--muted)}.daily-best strong{color:#ffc46b;font-size:1.5rem}.daily-tries{color:var(--muted);margin:0;font-size:.85rem}.daily-carve{margin-top:4px}.daily-week{justify-content:center;gap:6px;width:100%;max-width:420px;margin:0 auto;display:flex}.week-day{color:var(--muted);background:#1e122bd1;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 0;font-size:.78rem;display:flex}.week-day.done{color:var(--cream);background:#5c371ed9}.week-day.today{outline:2px solid #ffb04a99}.week-mark{color:#ffc94a;min-height:1.2em;font-size:.7rem}.daily-footer{text-align:center;color:var(--muted);margin:0 0 auto;font-size:.85rem}.error-detail{white-space:pre-wrap;color:#ffb3a1;background:#0000004d;border-radius:10px;max-width:min(420px,100%);margin:0 0 8px;padding:10px 12px;font-size:.8rem;overflow-x:auto}.wardrobe{width:min(520px,100%)}.wardrobe .swatches{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.wardrobe .swatch{min-height:0;padding:8px 2px}.wardrobe .swatch-name{font-size:.72rem;line-height:1.15}.wardrobe .swatch-lock{text-align:center;font-size:.62rem;line-height:1.15}.flame-sparkle{position:relative}.flame-sparkle:after{content:"✦";color:#fffbe0;text-shadow:0 0 6px #fff59a;font-size:.8rem;animation:1.6s ease-in-out infinite glint;position:absolute;top:2px;right:4px}@keyframes glint{50%{opacity:.25;transform:scale(.7)}}.setting>span{flex-direction:column;display:flex}.setting-hint{color:var(--muted);font-size:.75rem}
