.backdrop{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.blob{filter:blur(46px);opacity:.4;border-radius:50%;animation-name:drift;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;position:absolute;transform:translate(0,0)}@keyframes drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(24px,-32px)scale(1.12)}}.settings-gear{z-index:200;background:var(--color-surface);cursor:pointer;width:68px;height:68px;box-shadow:0 6px 0 color-mix(in srgb, var(--color-grape) 70%, #000 12%), 0 10px 18px #33263f2e;border:none;border-radius:50%;place-items:center;font-size:1.9rem;transition:transform .1s;display:grid;position:fixed;top:1rem;right:1rem}.settings-gear:active{box-shadow:0 0 0 color-mix(in srgb, var(--color-grape) 70%, #000 12%);transform:translateY(6px)}.settings-overlay{z-index:300;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#33263f66;place-items:center;padding:1.5rem;animation:.2s both overlay-in;display:grid;position:fixed;inset:0}.settings-panel{border-radius:var(--radius-lg);background:var(--color-surface);width:min(100%,460px);animation:panel-in .35s var(--ease-bounce) both;flex-direction:column;gap:1.75rem;padding:clamp(1.5rem,4vw,2.5rem);display:flex;box-shadow:0 24px 50px #33263f59}.settings-heading{text-align:center;margin:0;font-size:2rem;font-weight:800}.settings-section{flex-direction:column;gap:.75rem;display:flex}.settings-section--row{flex-direction:row;justify-content:space-between;align-items:center}.settings-switch{background:color-mix(in srgb, var(--color-ink) 18%, #fff);cursor:pointer;border:none;border-radius:999px;flex:none;width:84px;height:48px;padding:4px;transition:background .2s}.settings-switch[data-on=true]{background:var(--color-mint)}.settings-switch-knob{width:40px;height:40px;transition:transform .2s var(--ease-bounce);background:#fff;border-radius:50%;display:block;box-shadow:0 2px 6px #33263f4d}.settings-switch[data-on=true] .settings-switch-knob{transform:translate(36px)}.settings-label{color:var(--color-ink-soft);font-size:1.1rem;font-weight:800}.settings-options{flex-wrap:wrap;gap:.75rem;display:flex}.settings-option{background:color-mix(in srgb, var(--color-ink) 6%, #fff);min-height:60px;color:var(--color-ink);cursor:pointer;transition:transform .12s var(--ease-bounce), box-shadow .12s ease;border:none;border-radius:18px;padding:.5rem 1.25rem;box-shadow:0 4px #33263f1f}.settings-option--font{flex:auto;font-size:1.4rem;font-weight:700}.settings-option--size{flex:none;width:68px;font-weight:800;line-height:1}.settings-option--layout{flex:auto;font-size:1.8rem;line-height:1}.settings-option[data-active=true]{background:var(--color-surface);box-shadow:0 5px 0 color-mix(in srgb, var(--color-sky) 70%, #000 12%), 0 8px 14px #33263f29;outline:4px solid var(--color-sky);outline-offset:-4px;transform:translateY(-2px)}.settings-stepper{align-items:center;gap:.6rem;display:flex}.settings-step{background:color-mix(in srgb, var(--color-ink) 6%, #fff);width:52px;height:52px;color:var(--color-ink);cursor:pointer;border:none;border-radius:16px;font-size:1.8rem;font-weight:800;line-height:1;transition:transform .1s;box-shadow:0 4px #33263f1f}.settings-step:active{transform:translateY(3px);box-shadow:0 1px #33263f1f}.settings-step:disabled{opacity:.35;cursor:default;box-shadow:none}.settings-step-value{text-align:center;font-variant-numeric:tabular-nums;min-width:4rem;font-size:1.3rem;font-weight:800}.settings-close{background:var(--color-coral);color:#fff;cursor:pointer;min-height:60px;box-shadow:0 5px 0 color-mix(in srgb, var(--color-coral) 70%, #000 18%);border:none;border-radius:999px;align-self:center;padding:.5rem 2.5rem;font-size:1.3rem;font-weight:800;transition:transform .1s}.settings-close:active{box-shadow:0 0 0 color-mix(in srgb, var(--color-coral) 70%, #000 18%);transform:translateY(5px)}@keyframes overlay-in{0%{opacity:0}}@keyframes panel-in{0%{opacity:0;transform:scale(.85)translateY(20px)}}.picker{z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:clamp(2rem,6vh,4rem);min-height:100%;padding:2rem;display:flex;position:relative}.picker-title{letter-spacing:-.02em;text-align:center;color:var(--color-ink);text-shadow:0 3px #ffffffb3;animation:title-drop .7s var(--ease-bounce) both;margin:0;font-size:clamp(2.5rem,8vw,5rem);font-weight:800}.picker-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:clamp(1.25rem,4vw,2.5rem);width:min(100%,940px);display:grid}.picker-tile{border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-ink);cursor:pointer;box-shadow:0 10px 0 color-mix(in srgb, var(--tile-color) 70%, #000 12%), 0 18px 30px #33263f2e;outline:6px solid var(--tile-color);outline-offset:-6px;animation:tile-pop .55s var(--ease-bounce) both;animation-delay:calc(.15s + var(--i) * 80ms);border:none;flex-direction:column;align-items:center;gap:.75rem;padding:clamp(1.75rem,4vw,2.75rem) 1rem;transition:transform .12s,box-shadow .12s;display:flex}.picker-tile:hover{transform:translateY(-4px)rotate(-1deg)}.picker-tile:active{box-shadow:0 0 0 color-mix(in srgb, var(--tile-color) 70%, #000 12%), 0 6px 12px #33263f33;transform:translateY(10px)}.picker-tile-icon{filter:drop-shadow(0 4px 3px #33263f26);font-size:clamp(3.5rem,9vw,5rem);line-height:1}.picker-tile-label{font-size:clamp(1.4rem,3vw,1.9rem);font-weight:800}.game-shell{z-index:1;height:100%;position:relative}.back-button{z-index:200;background:var(--color-surface);width:68px;height:68px;color:var(--color-ink);cursor:pointer;box-shadow:0 6px 0 color-mix(in srgb, var(--color-sky) 70%, #000 12%), 0 10px 18px #33263f2e;border:none;border-radius:50%;place-items:center;font-size:1.9rem;transition:transform .1s;display:grid;position:absolute;top:1rem;left:1rem}.back-button:active{box-shadow:0 0 0 color-mix(in srgb, var(--color-sky) 70%, #000 12%);transform:translateY(6px)}.loading{height:100%;color:var(--color-ink-soft);place-items:center;font-size:3rem;display:grid}@keyframes title-drop{0%{opacity:0;transform:translateY(-40px)scale(.9)}}@keyframes tile-pop{0%{opacity:0;transform:scale(.5)translateY(30px)}}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-400-normal-r8SDr6Up.woff2)format("woff2"),url(/assets/nunito-latin-400-normal-DKg4f3fz.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-cyrillic-400-normal-xAOo5cBP.woff2)format("woff2"),url(/assets/nunito-cyrillic-400-normal-D1j0u8EH.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-700-normal-DP36NgGt.woff2)format("woff2"),url(/assets/nunito-cyrillic-700-normal-DfHRUDv-.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-cyrillic-800-normal-D3igD7Kl.woff2)format("woff2"),url(/assets/nunito-cyrillic-800-normal-DymMgApb.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-cyrillic-ext-400-normal-CuPM9foi.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-400-normal-xaE7D4Sw.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-ext-700-normal-BuR0mlCG.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-700-normal-DfoqN4Gs.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-cyrillic-ext-800-normal-B-cvGohL.woff2)format("woff2"),url(/assets/nunito-cyrillic-ext-800-normal-pjRatrRO.woff)format("woff")}@font-face{font-family:Rubik;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/rubik-latin-400-normal-j0pmKyiQ.woff2)format("woff2"),url(/assets/rubik-latin-400-normal-BV1Ho3GG.woff)format("woff")}@font-face{font-family:Rubik;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/rubik-latin-700-normal-D-tMm-eS.woff2)format("woff2"),url(/assets/rubik-latin-700-normal-KHOtubUA.woff)format("woff")}@font-face{font-family:Rubik;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/rubik-latin-800-normal-BtaGuVpR.woff2)format("woff2"),url(/assets/rubik-latin-800-normal-Dq1miTTj.woff)format("woff")}@font-face{font-family:Rubik;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/rubik-cyrillic-400-normal-C5G8_8ug.woff2)format("woff2"),url(/assets/rubik-cyrillic-400-normal-D5R8xuhl.woff)format("woff")}@font-face{font-family:Rubik;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/rubik-cyrillic-700-normal-DFnztZBh.woff2)format("woff2"),url(/assets/rubik-cyrillic-700-normal-C_jxLOfU.woff)format("woff")}@font-face{font-family:Rubik;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/rubik-cyrillic-800-normal-wonQiwhm.woff2)format("woff2"),url(/assets/rubik-cyrillic-800-normal-DocVmW4N.woff)format("woff")}@font-face{font-family:Rubik;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/rubik-cyrillic-ext-400-normal-D-KNTwvG.woff2)format("woff2"),url(/assets/rubik-cyrillic-ext-400-normal-CTkTGo13.woff)format("woff")}@font-face{font-family:Rubik;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/rubik-cyrillic-ext-700-normal-3CKVJqgg.woff2)format("woff2"),url(/assets/rubik-cyrillic-ext-700-normal-CEbQMks9.woff)format("woff")}@font-face{font-family:Rubik;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/rubik-cyrillic-ext-800-normal-D8Ih7GUu.woff2)format("woff2"),url(/assets/rubik-cyrillic-ext-800-normal-BLkQng3O.woff)format("woff")}@font-face{font-family:Rubik Mono One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/rubik-mono-one-latin-400-normal-U2Afr9Di.woff2)format("woff2"),url(/assets/rubik-mono-one-latin-400-normal-Cd19iSlZ.woff)format("woff")}@font-face{font-family:Rubik Mono One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/rubik-mono-one-cyrillic-400-normal-BnSqJbXw.woff2)format("woff2"),url(/assets/rubik-mono-one-cyrillic-400-normal-CYYDEcIq.woff)format("woff")}@font-face{font-family:Noto Color Emoji;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-color-emoji-emoji-400-normal-BnQPWYVz.woff2)format("woff2"),url(/assets/noto-color-emoji-emoji-400-normal-DtGMVZwZ.woff)format("woff")}:root{--color-bg-top:#fff8ec;--color-bg-bottom:#ffe1c4;--color-surface:#fffdf6;--color-ink:#33263f;--color-ink-soft:#8a7f93;--color-sun:#ffca3a;--color-coral:#ff6b6b;--color-sky:#4cc9e0;--color-mint:#5ccf9b;--color-grape:#b388eb;--color-orange:#f89b3f;--accent:var(--color-coral);--radius:26px;--radius-lg:36px;--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);color:var(--color-ink);font-family:Nunito,system-ui,sans-serif;font-weight:700}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}button{color:inherit;font-family:inherit}html,body,#root{height:100%;margin:0}body{background:radial-gradient(120% 90% at 50% -10%, #fffdf6 0%, transparent 55%), linear-gradient(180deg, var(--color-bg-top) 0%, var(--color-bg-bottom) 100%);-webkit-user-select:none;user-select:none;touch-action:manipulation;overscroll-behavior:none;background-attachment:fixed}body:after{content:"";z-index:0;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
