:root{--card: rgba(255, 255, 255, .93);--ink: #2b3440;--muted: #68727f;--accent: #2f9ba8;--accent-soft: rgba(47, 155, 168, .14);--guard: #ffcc33;--ok: #3fb66b;--bad: #e35b5b;--shadow: 0 10px 30px rgba(40, 60, 80, .16)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:linear-gradient(180deg,#c9e4f6,#e4f2fa,#eef5e6);-webkit-font-smoothing:antialiased}#app{position:fixed;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}#hud{position:fixed;inset:0;pointer-events:none}#hud>*{pointer-events:auto}.card{position:absolute;left:24px;bottom:24px;max-width:min(540px,calc(100vw - 48px));background:var(--card);border-radius:20px;padding:18px 24px 16px;box-shadow:var(--shadow);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:opacity .35s ease,transform .35s ease}.card.hidden{opacity:0;transform:translateY(12px);pointer-events:none}.card h1{margin:0 0 8px;font-size:27px;font-weight:800;letter-spacing:-.01em;line-height:1.15}.card .sub{margin:0;font-style:italic;font-weight:500;color:var(--muted);font-size:18px}.card ul{margin:0;padding-left:22px;font-size:17px;line-height:1.4;font-weight:500}.card li{margin:5px 0}.card li::marker{color:var(--accent)}.card .footer{margin:12px 0 0;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:none}.card.with-footer .footer{display:block}.nav{position:absolute;left:50%;bottom:24px;transform:translate(-50%);display:flex;align-items:center;gap:12px;background:var(--card);border-radius:999px;padding:8px 10px;box-shadow:var(--shadow);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.nav button{font:inherit;font-weight:800;font-size:15px;border:0;background:transparent;color:var(--ink);padding:8px 14px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:background .2s}.nav button:hover{background:var(--accent-soft)}.nav button:disabled{opacity:.3;cursor:default;background:transparent}.dots{display:flex;gap:7px;padding:0 4px}.dots i{width:9px;height:9px;border-radius:50%;background:#cbd5de;display:block;transition:background .3s,transform .3s;cursor:pointer}.dots i.done{background:#93c9d0}.dots i.on{background:var(--accent);transform:scale(1.35)}.dial{position:absolute;right:24px;bottom:24px;width:156px;background:var(--card);border-radius:20px;padding:12px 12px 10px;text-align:center;box-shadow:var(--shadow);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.dial svg{width:100%;display:block}.dial .label{font-weight:800;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:-4px}.dial .laps{font-size:13px;color:var(--muted);margin-top:4px;min-height:18px;font-weight:700;opacity:0;transition:opacity .4s}.dial .laps.on{opacity:1}.hint{position:absolute;left:50%;bottom:86px;transform:translate(-50%);font-weight:800;font-size:15px;color:var(--muted);animation:pulse 2.2s ease-in-out infinite;transition:opacity .4s;pointer-events:none}.hint.hidden{opacity:0;animation:none}@keyframes pulse{0%,to{opacity:.45}50%{opacity:1}}@media(max-width:1100px){.card{max-width:40vw}}@media(max-width:720px){.card{left:10px;right:10px;bottom:70px;max-width:none;padding:12px 16px 10px;border-radius:16px}.card h1{font-size:20px}.card ul,.card .sub{font-size:14px}.nav{bottom:12px;gap:6px;padding:6px}.nav button{padding:6px 8px;font-size:13px}.dots{gap:5px}.dial{right:10px;top:10px;bottom:auto;width:104px;padding:8px 8px 6px;border-radius:14px}.dial .label,.dial .laps{font-size:11px}.hint{bottom:auto;top:16px;left:16px;transform:none}}@media(prefers-reduced-motion:reduce){.hint{animation:none}}
