:root{--bg-1: #1e1145;--bg-2: #4c1d95;--bg-3: #db2777;--bg-4: #0891b2;--ink: #ffffff;--ink-dim: rgba(255, 255, 255, .72);--ink-faint: rgba(255, 255, 255, .42);--card: rgba(255, 255, 255, .1);--card-strong: rgba(255, 255, 255, .18);--card-border: rgba(255, 255, 255, .18);--accent: #ffffff;--shadow: 0 20px 50px rgba(0, 0, 0, .35);--radius-lg: 28px;--radius-md: 18px;--radius-sm: 12px;--safe-top: env(safe-area-inset-top);--safe-bottom: env(safe-area-inset-bottom);--safe-left: env(safe-area-inset-left);--safe-right: env(safe-area-inset-right)}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,Inter,system-ui,sans-serif;color:var(--ink);background:linear-gradient(135deg,var(--bg-1),var(--bg-2),var(--bg-3),var(--bg-4));background-size:400% 400%;animation:gradient-shift 22s ease infinite;min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}body.screen-game,body:not(.screen-text) #app,body:not(.screen-text) .footer{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}@keyframes gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}#app{max-width:480px;margin:0 auto;padding:calc(20px + var(--safe-top)) calc(20px + var(--safe-right)) 24px calc(20px + var(--safe-left));display:flex;flex-direction:column;gap:18px;min-height:100dvh}.footer{text-align:center;padding:8px 0 calc(12px + var(--safe-bottom));font-size:12px;color:var(--ink-faint);letter-spacing:.04em}.footer a{color:var(--ink-dim);text-decoration:none}.footer a:hover{color:var(--ink)}.footer-admin{opacity:.55}.topbar{display:flex;align-items:center;justify-content:space-between}.brand{font-weight:800;font-size:22px;letter-spacing:-.02em}.brand-emoji{display:inline-block;transform:translateY(-1px)}.topbar-right{display:flex;gap:10px;align-items:center}.day-pill{background:var(--card);border:1px solid var(--card-border);padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.icon-btn{background:var(--card);border:1px solid var(--card-border);width:36px;height:36px;border-radius:999px;font-size:16px;cursor:pointer;color:var(--ink);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.icon-btn:active{transform:scale(.92)}.swatches{display:grid;grid-template-columns:1fr 1fr;gap:12px}.swatch{aspect-ratio:1 / 1;border-radius:var(--radius-lg);position:relative;box-shadow:var(--shadow),inset 0 0 0 1px #ffffff2e;transition:background 80ms linear}.swatch-target{aspect-ratio:1 / 1.05}.swatch-label{position:absolute;top:12px;left:14px;font-size:11px;letter-spacing:.12em;font-weight:700;text-transform:uppercase;color:#ffffffd9;text-shadow:0 1px 2px rgba(0,0,0,.4)}.timer-row{display:flex;align-items:center;gap:12px}.timer{font-variant-numeric:tabular-nums;font-weight:700;font-size:20px;min-width:56px}.timer-urgent{color:#ffe066;animation:pulse .6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.timer-bar{flex:1;height:8px;background:#ffffff2e;border-radius:999px;overflow:hidden}.timer-bar-fill{height:100%;background:linear-gradient(90deg,#ffe066,#ff6ec4);border-radius:999px;transition:width .1s linear}.sliders{display:flex;flex-direction:column;gap:14px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:18px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.slider-row{display:grid;grid-template-columns:28px 1fr 52px;align-items:center;gap:14px}.slider-label{font-weight:800;font-size:18px;text-align:center;color:var(--ink)}.slider-value{font-variant-numeric:tabular-nums;font-weight:700;font-size:18px;text-align:right;color:var(--ink)}.slider{-webkit-appearance:none;appearance:none;width:100%;height:38px;background:transparent;outline:none;--track: linear-gradient(to right, #000, #fff)}.slider::-webkit-slider-runnable-track{height:14px;border-radius:999px;background:var(--track);box-shadow:inset 0 0 0 1px #fff3,inset 0 2px 4px #0000002e}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:30px;height:30px;border-radius:50%;background:#fff;border:3px solid rgba(255,255,255,.95);box-shadow:0 4px 14px #00000059,0 0 0 1px #0000000d;cursor:pointer;margin-top:-8px;transition:transform 80ms ease}.slider:active::-webkit-slider-thumb{transform:scale(1.15)}.slider::-moz-range-track{height:14px;border-radius:999px;background:var(--track)}.slider::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:#fff;border:3px solid #fff;box-shadow:0 4px 14px #00000059;cursor:pointer}.actions,.actions-double{display:flex;gap:10px}.actions-secondary{margin-top:-8px}.btn{flex:1;padding:16px 20px;border-radius:var(--radius-md);border:none;font-size:17px;font-weight:700;letter-spacing:-.01em;cursor:pointer;color:#1a1033;background:#fff;box-shadow:0 10px 30px #00000040;transition:transform .1s ease,box-shadow .2s ease}.btn:active{transform:translateY(1px) scale(.99)}.btn-primary{background:#fff}.btn-secondary{background:var(--card-strong);color:var(--ink);border:1px solid var(--card-border);box-shadow:none;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-flash{background:#c4f5d3}.day-pill-free{background:linear-gradient(120deg,#ffe06652,#ff6ec452);border-color:#ffffff52}.result-swatches{display:grid;grid-template-columns:1fr 1fr;gap:12px}.swatch-mini{aspect-ratio:1 / 1;border-radius:var(--radius-lg);padding:14px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow),inset 0 0 0 1px #ffffff2e}.swatch-mini-label{font-size:11px;letter-spacing:.12em;font-weight:700;text-transform:uppercase;color:#ffffffd9;text-shadow:0 1px 2px rgba(0,0,0,.4)}.swatch-mini-rgb{font-variant-numeric:tabular-nums;font-weight:700;font-size:16px;align-self:flex-end;background:#0000004d;padding:4px 10px;border-radius:999px;color:#fff}.accuracy{text-align:center;padding:14px 0 4px}.accuracy-num{font-size:56px;font-weight:800;letter-spacing:-.03em;line-height:1;background:linear-gradient(120deg,#ffe066,#ff6ec4,#22d3ee);-webkit-background-clip:text;background-clip:text;color:transparent}.accuracy-sub{margin-top:6px;font-size:14px;color:var(--ink-dim)}.journey{display:flex;flex-direction:column;gap:4px;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow)}.journey-row{height:26px;width:100%}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:14px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.stat{text-align:center}.stat-num{font-size:22px;font-weight:800;letter-spacing:-.02em}.stat-label{margin-top:2px;font-size:11px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.stat-sub{margin-top:4px;font-size:10px;color:var(--ink-dim);font-weight:600;letter-spacing:.02em}.stat-sub-best{color:#f5a524}.come-back{text-align:center;font-size:13px;color:var(--ink-dim);margin:4px 0 0}.streak-pips{display:flex;justify-content:center;align-items:center;gap:1px;margin-top:4px;min-height:18px;line-height:1}.streak-pip{font-size:12px;display:inline-block}.streak-pip-empty{font-size:11px;color:var(--ink-faint)}.streak-overflow{font-size:10px;font-weight:700;color:var(--ink-dim);margin-left:2px;letter-spacing:-.02em}.tutorial{position:fixed;inset:0;background:#0f0a1fa6;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);display:grid;place-items:center;z-index:10;padding:24px;animation:fade-in .2s ease}.tutorial.fade-out{animation:fade-out .22s ease forwards}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{to{opacity:0}}.tutorial-card{max-width:360px;width:100%;background:linear-gradient(180deg,#ffffff2e,#ffffff1a);border:1px solid rgba(255,255,255,.22);border-radius:var(--radius-lg);padding:28px 24px;text-align:center;box-shadow:var(--shadow)}.tutorial-icon{font-size:48px}.tutorial-card h2{margin:8px 0 12px;font-size:24px;font-weight:800;letter-spacing:-.02em}.tutorial-card p{margin:6px 0;color:var(--ink-dim);font-size:15px;line-height:1.45}.tutorial-card .btn{margin-top:18px}.admin-modal{position:fixed;inset:0;background:#0f0a1fa6;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);display:grid;place-items:center;z-index:11;padding:24px;animation:fade-in .2s ease}.admin-modal.fade-out{animation:fade-out .22s ease forwards}.admin-card{max-width:360px;width:100%;background:linear-gradient(180deg,#ffffff2e,#ffffff1a);border:1px solid rgba(255,255,255,.22);border-radius:var(--radius-lg);padding:24px 22px;text-align:center;box-shadow:var(--shadow)}.admin-icon{font-size:36px;line-height:1}.admin-card h2{margin:6px 0;font-size:22px;font-weight:800;letter-spacing:-.02em}.admin-card p{margin:0 0 14px;color:var(--ink-dim);font-size:14px;line-height:1.45}.admin-input{width:100%;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--card-border);background:#ffffff1a;color:var(--ink);font-size:16px;font-family:inherit;outline:none;letter-spacing:.04em}.admin-input::placeholder{color:var(--ink-faint)}.admin-input:focus{border-color:#ffffff6b}.admin-input-error{border-color:#ff8b8b}.admin-error{margin-top:8px;font-size:13px;color:#ffb3b3}.admin-actions{margin-top:16px;display:flex;gap:10px}.confetti{position:fixed;inset:0;pointer-events:none;z-index:9}.screen-text{background:linear-gradient(135deg,var(--bg-1),var(--bg-2))}.text-page{max-width:560px;margin:0 auto;padding:calc(48px + var(--safe-top)) 24px calc(32px + var(--safe-bottom));color:var(--ink);line-height:1.6}.text-page h1{font-size:32px;font-weight:800;letter-spacing:-.02em;margin:0 0 16px}.text-page p{color:var(--ink-dim);font-size:16px;margin:12px 0}.text-page a{color:#ffe066;text-decoration:none}.text-page a:hover{text-decoration:underline}.text-page code{background:#ffffff1a;padding:2px 6px;border-radius:6px;font-size:14px}@media (max-width: 360px){.swatch{border-radius:22px}.accuracy-num{font-size:48px}.sliders{padding:14px}}@media (prefers-reduced-motion: reduce){body,.tutorial,.tutorial.fade-out,.timer-urgent{animation:none}}
