:root{--charcoal:#2b2b2b;--ash:#777;--body:#4b4b4b;--disabled-text:#afafaf;--bg:#fffbf7;--surface:#fff;--line:#e5e5e5;--locked-fill:#e5e5e5;--locked-edge:#b8b8b8;--success:#58cc02;--success-edge:#46a302;--success-soft:#d7ffb8;--success-text:#2e7d0a;--danger:#ff4b4b;--danger-edge:#c93b3b;--danger-soft:#ffdfe0;--danger-text:#b3261e;--gold:#f9b814;--gold-edge:#c98e00;--orange:#f5821f;--orange-edge:#c4610f;--flame:#e63312;--ink:#2b2b2b;--tab-bg:#fffbf7db;--font:ui-rounded, "SF Pro Rounded", "Nunito", "Arial Rounded MT Bold", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--charcoal:#f3efeb;--ash:#a39c96;--body:#d6d0ca;--disabled-text:#6b645e;--bg:#141110;--surface:#221e1b;--line:#3a3430;--locked-fill:#3a3430;--locked-edge:#272320;--success-soft:#1d3312;--success-text:#8ee35a;--danger-soft:#3d1819;--danger-text:#ff8a82;--tab-bg:#141110db;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--charcoal:#f3efeb;--ash:#a39c96;--body:#d6d0ca;--disabled-text:#6b645e;--bg:#141110;--surface:#221e1b;--line:#3a3430;--locked-fill:#3a3430;--locked-edge:#272320;--success-soft:#1d3312;--success-text:#8ee35a;--danger-soft:#3d1819;--danger-text:#ff8a82;--tab-bg:#141110db;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--charcoal);font-family:var(--font);-webkit-text-size-adjust:100%;margin:0;font-weight:600}body{overscroll-behavior-y:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:900;line-height:1.15}p{margin:0}#root{min-height:100dvh}.app{max-width:520px;min-height:100dvh;margin:0 auto;position:relative}.screen{padding:calc(env(safe-area-inset-top) + 12px) 20px calc(env(safe-area-inset-bottom) + 110px)}.caption{letter-spacing:.1em;text-transform:uppercase;color:var(--ash);font-size:12px;font-weight:800}.title{font-size:30px}.muted{color:var(--ash)}.row{align-items:center;gap:12px;display:flex}.spacer{flex:1}.stack{flex-direction:column;gap:14px;display:flex}.btn{--fill:var(--orange);--edge:var(--orange-edge);--fg:#fff;--lift:5px;background:var(--fill);width:100%;min-height:54px;color:var(--fg);box-shadow:0 var(--lift) 0 var(--edge);letter-spacing:.08em;text-transform:uppercase;-webkit-user-select:none;user-select:none;border-radius:16px;justify-content:center;align-items:center;gap:10px;padding:14px 20px;font-size:16px;font-weight:900;transition:top .22s cubic-bezier(.3,1.6,.5,1),box-shadow .22s cubic-bezier(.3,1.6,.5,1);display:flex;position:relative;top:0}.btn:active:not(:disabled){top:var(--lift);box-shadow:0 0 0 var(--edge);transition:none}.btn:disabled{cursor:default;background:var(--locked-fill)!important;color:var(--disabled-text)!important;box-shadow:0 var(--lift) 0 var(--locked-edge)!important}.btn.success{--fill:var(--success);--edge:var(--success-edge)}.btn.danger{--fill:var(--danger);--edge:var(--danger-edge)}.btn.outline{--fill:var(--surface);--edge:var(--line);--fg:var(--orange);border:2px solid var(--line)}.btn.small{--lift:4px;border-radius:12px;width:auto;min-height:40px;padding:8px 14px;font-size:13px}.card{background:var(--surface);border:2px solid var(--line);box-shadow:0 4px 0 var(--line);border-radius:18px;padding:16px}.press{transition:top .22s cubic-bezier(.3,1.6,.5,1),box-shadow .22s cubic-bezier(.3,1.6,.5,1);position:relative;top:0}.press:active{transition:none;top:4px;box-shadow:0 0 0 var(--line)!important}.progress{background:var(--line);border-radius:99px;flex:1;height:16px;overflow:hidden}.progress>div{background:var(--fill,var(--orange));border-radius:99px;height:100%;transition:width .4s cubic-bezier(.2,.7,.2,1);position:relative}.progress>div:after{content:"";background:#ffffff4d;border-radius:99px;height:4px;position:absolute;top:4px;left:8px;right:8px}.badge{letter-spacing:.06em;border-radius:99px;align-items:center;gap:6px;max-width:100%;padding:5px 10px;font-size:11px;font-weight:800;display:inline-flex}.badge b{text-transform:uppercase;letter-spacing:.1em;font-weight:800}.badge span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.option{--line-c:var(--line);--fill-c:var(--surface);--fg-c:var(--charcoal);border:2px solid var(--line-c);background:var(--fill-c);width:100%;min-height:60px;color:var(--fg-c);box-shadow:0 4px 0 var(--line-c);text-align:left;border-radius:16px;align-items:center;gap:12px;padding:14px 16px;font-size:17px;font-weight:600;transition:top .22s cubic-bezier(.3,1.6,.5,1),box-shadow .22s cubic-bezier(.3,1.6,.5,1);display:flex;position:relative;top:0}.option:active:not([aria-disabled=true]){box-shadow:0 0 0 var(--line-c);transition:none;top:4px}.option[data-state=selected]{--line-c:var(--accent);--fill-c:color-mix(in srgb, var(--accent) 12%, var(--surface));--fg-c:color-mix(in srgb, var(--accent) 70%, var(--charcoal))}.option[data-state=correct],.option[data-state=missed]{--line-c:var(--success);--fill-c:var(--success-soft);--fg-c:var(--success-text)}.option[data-state=wrong]{--line-c:var(--danger);--fill-c:var(--danger-soft);--fg-c:var(--danger-text)}.option[data-state=dimmed]{--fg-c:var(--ash)}.option .text{flex:1}.option svg{flex:none}.reveal{animation:.28s ease-out both reveal;animation-delay:calc(var(--i,0) * 40ms)}@keyframes reveal{0%{opacity:0;transform:translateY(12px)}}.scrim{z-index:40;background:#00000061;animation:.2s ease-out both fade;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.sheet{z-index:41;background:var(--surface);max-width:520px;max-height:92dvh;padding:22px 20px calc(env(safe-area-inset-bottom) + 20px);border-radius:24px 24px 0 0;margin:0 auto;animation:.35s cubic-bezier(.2,.9,.3,1.05) both slideUp;position:fixed;bottom:0;left:0;right:0;overflow:auto}@keyframes slideUp{0%{transform:translateY(100%)}}.banner{z-index:30;max-width:520px;padding:20px 20px calc(env(safe-area-inset-bottom) + 18px);border-radius:24px 24px 0 0;margin:0 auto;animation:.35s cubic-bezier(.2,.9,.3,1.05) both slideUp;position:fixed;bottom:0;left:0;right:0}.banner.ok{background:var(--success-soft)}.banner.bad{background:var(--danger-soft)}.toast{top:calc(env(safe-area-inset-top) + 14px);z-index:60;background:var(--surface);border:2px solid var(--line);white-space:nowrap;border-radius:99px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:800;animation:.35s cubic-bezier(.2,.9,.3,1.1) both toastIn;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 10px 30px -10px #0000004d}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-20px)}}.tabs{left:50%;bottom:calc(env(safe-area-inset-bottom) + 12px);z-index:20;background:var(--tab-bg);-webkit-backdrop-filter:saturate(1.6)blur(16px);border:1px solid var(--line);border-radius:99px;gap:4px;width:min(360px,100% - 32px);padding:6px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px -12px #00000040}.tabs button{color:var(--charcoal);border-radius:99px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 4px;font-size:12px;font-weight:800;display:flex}.tabs button[aria-selected=true]{color:var(--orange);background:color-mix(in srgb, var(--charcoal) 7%, transparent)}.session{z-index:25;background:var(--bg);flex-direction:column;max-width:520px;margin:0 auto;animation:.3s ease-out both sessionIn;display:flex;position:fixed;inset:0}@keyframes sessionIn{0%{opacity:0;transform:translateY(16px)}}.session-top{padding:calc(env(safe-area-inset-top) + 12px) 20px 16px;align-items:center;gap:14px;display:flex}.session-body{flex:1;padding:0 20px 24px;overflow-y:auto}.session-bottom{padding:8px 20px calc(env(safe-area-inset-bottom) + 14px)}.icon-btn{width:36px;height:36px;color:var(--ash);border-radius:10px;place-items:center;display:grid}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}.chunky{flex:none;place-items:center;display:inline-grid;position:relative}.chunky-ring{border:4px solid var(--gold);border-radius:50%;position:absolute;inset:0}.chunky-btn{border-radius:50%;display:block}.chunky-face{color:#fff;box-shadow:0 var(--wall) 0 var(--edge-c);margin-bottom:var(--wall);place-items:center;transition:top .18s cubic-bezier(.3,1.6,.5,1),box-shadow .18s cubic-bezier(.3,1.6,.5,1);display:grid;position:relative;top:0}.chunky-face:before{content:"";opacity:var(--gloss);background:radial-gradient(60% 45% at 32% 26%,#ffffff61,#0000 60%),linear-gradient(#ffffff14,#0000001a);border-radius:50%;position:absolute;inset:0}.chunky-face>*{position:relative}.chunky-btn:active .chunky-face{top:var(--wall);box-shadow:0 0 0 var(--edge-c);transition:none}.statusbar{z-index:6;padding:calc(env(safe-area-inset-top) + 10px) 20px 10px;background:var(--bg);border-bottom:2px solid var(--line);font-size:17px;font-weight:800;position:sticky;top:0}.level-sticky{top:calc(env(safe-area-inset-top) + 48px);z-index:5;background:var(--bg);padding:8px 16px 12px;position:sticky}.level-header{border-radius:18px;padding:16px}.divider{align-items:center;gap:12px;padding:14px 24px 50px;display:flex}.divider:before,.divider:after{content:"";background:var(--div);flex:1;height:2px}.path-row{flex-direction:column;align-items:center;padding:6px 0 14px;scroll-margin-top:220px;display:flex}.path-node{flex-direction:column;align-items:center;display:flex;position:relative}.start-callout{background:var(--surface);border:2px solid var(--line);letter-spacing:.12em;white-space:nowrap;z-index:2;border-radius:12px;padding:7px 14px;font-size:14px;font-weight:900;animation:1.6s ease-in-out infinite bob;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}.start-callout:after{content:"";background:var(--surface);border-right:2px solid var(--line);border-bottom:2px solid var(--line);width:12px;height:12px;position:absolute;top:100%;left:50%;transform:translate(-50%,-6px)rotate(45deg)}@keyframes bob{50%{transform:translate(-50%,-5px)}}.bubble{background:var(--surface);border:2px solid var(--accent);border-radius:18px;flex-direction:column;gap:10px;width:calc(100% - 40px);margin:16px 20px 6px;padding:16px;animation:.25s cubic-bezier(.2,.9,.3,1.1) both bubbleIn;display:flex;position:relative}.bubble:before{content:"";background:var(--surface);border-left:2px solid var(--accent);border-top:2px solid var(--accent);width:16px;height:16px;position:absolute;bottom:100%;left:50%;transform:translate(-50%,9px)rotate(45deg)}@keyframes bubbleIn{0%{opacity:0;transform-origin:top;transform:scale(.94)}}.segmented{background:color-mix(in srgb, var(--charcoal) 8%, transparent);border-radius:12px;padding:3px;display:flex}.segmented button{color:var(--charcoal);border-radius:9px;padding:6px 12px;font-size:14px;font-weight:700}.segmented button[aria-checked=true]{background:var(--surface);box-shadow:0 1px 3px #00000026}.switch{appearance:none;background:var(--line);cursor:pointer;border-radius:99px;flex:none;width:50px;height:30px;margin:0;transition:background .2s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch:checked{background:var(--orange)}.switch:checked:after{transform:translate(20px)}.install{left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 84px);z-index:19;gap:10px;max-width:496px;margin:0 auto;padding:10px 10px 10px 12px;position:fixed}.pulse{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.7;transform:scale(1.12)}}.link-icon{background:color-mix(in srgb, var(--orange) 14%, var(--surface));width:44px;height:44px;color:var(--orange);border-radius:14px;flex:none;place-items:center;display:grid}.link-icon.on{background:var(--success-soft);color:var(--success-text)}.link-steps{color:var(--body);gap:6px;margin:0;padding-left:22px;font-size:15px;display:grid}.qr-box{border:2px solid var(--line);width:244px;height:244px;box-shadow:0 4px 0 var(--line);background:#fff;border-radius:20px;align-self:center;place-items:center;padding:12px;display:grid;position:relative}.qr-placeholder{color:#777;text-align:center;padding:20px;font-size:14px;font-weight:800}.qr-overlay{color:#2b2b2b;place-content:center;justify-items:center;gap:6px;font-weight:900;display:grid;position:absolute;inset:0}.short-code{letter-spacing:.12em;font-variant-numeric:tabular-nums;color:var(--charcoal);margin:4px 0;font-size:30px;font-weight:900}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}a.btn{text-decoration:none}
