*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:400 var(--fs-body)/1.45 var(--font-text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-variant-numeric:tabular-nums}button,input,textarea,select{font:inherit;color:inherit;background:none;border:0}button{cursor:pointer;touch-action:manipulation}a{color:inherit;text-decoration:none}img,svg{display:block}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:8px}::selection{background:#8fa4ff59}.t-hero{font:500 var(--fs-hero)/1 var(--font-display);letter-spacing:-.045em}.t-h1{font:600 var(--fs-h1)/1.1 var(--font-display);letter-spacing:-.02em}.t-h2{font:600 var(--fs-h2)/1.15 var(--font-display);letter-spacing:-.015em}.t-sm{font-size:var(--fs-sm)}.t-xs{font-size:var(--fs-xs)}.t-mut{color:var(--mut)}.t-ink2{color:var(--ink-2)}.eyebrow{display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--fs-sm);color:var(--ink-2)}.dot{width:7px;height:7px;border-radius:50%;background:var(--a2);box-shadow:0 0 12px var(--a2);flex:none;transition:background var(--t-aura),box-shadow var(--t-aura)}.dot.live{animation:dot-pulse 2.4s var(--ease-in-out) infinite}.dot.pos{background:var(--pos);box-shadow:0 0 10px var(--pos)}.dot.warn{background:var(--warn);box-shadow:0 0 10px var(--warn)}.dot.neg{background:var(--neg);box-shadow:0 0 10px var(--neg)}.dot.off{background:var(--mut-2);box-shadow:none}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.8)}}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);height:var(--h-btn);padding:0 var(--s6);border-radius:var(--r-pill);font-weight:500;font-size:var(--fs-body);white-space:nowrap;user-select:none;transition:transform var(--t-base) var(--ease-spring),background var(--t-fast),opacity var(--t-fast),color var(--t-fast)}.btn:active:not(:disabled){transform:scale(.965);transition-duration:90ms;transition-timing-function:var(--ease-out)}.btn:disabled{opacity:.4;cursor:default}.btn.block{width:100%}.btn.sm{height:40px;padding:0 var(--s4);font-size:14px}.btn-primary{background:var(--ink);color:var(--on-ink)}.btn-primary:hover{background:#fff}.btn-glass{background:#ffffff0d;border:1px solid var(--line)}.btn-glass:hover{background:#ffffff14}.btn-ghost{color:var(--ink-2);padding:0 var(--s3)}.btn-danger{background:#e0685e1f;color:var(--neg);border:1px solid rgba(224,104,94,.22)}.btn .spinner{display:none}.btn.loading{color:transparent;pointer-events:none}.btn.loading .spinner{display:block;position:absolute;inset:0;margin:auto}.spinner{width:20px;height:20px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}.btn-primary .spinner{color:var(--on-ink);border-color:var(--on-ink);border-right-color:transparent}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--surface-3);transition:transform var(--t-base) var(--ease-spring),background var(--t-fast)}.icon-btn:active{transform:scale(.9);transition-duration:90ms}.icon-btn svg{width:18px;height:18px}.card{background:var(--glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s4)}.card-solid{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s4)}.card-head{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--fs-sm);color:var(--mut);padding:0 var(--s1) var(--s2)}.card-head b{color:var(--ink);font-weight:500}.list{display:flex;flex-direction:column}.row{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s1);min-height:56px;border-bottom:1px solid var(--line);text-align:left;width:100%}.row:last-child{border-bottom:0}button.row,a.row{transition:background var(--t-fast);border-radius:var(--r-sm)}button.row:active,a.row:active{background:#ffffff0a}.row .ic{width:36px;height:36px;border-radius:11px;background:var(--surface-3);display:grid;place-items:center;flex:none;color:var(--ink-2)}.row .ic svg{width:18px;height:18px}.row .main{flex:1;min-width:0}.row .title{font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .sub{font-size:var(--fs-sm);color:var(--mut);display:flex;align-items:center;gap:6px}.row .trail{color:var(--mut);font-size:14px;display:flex;align-items:center;gap:var(--s1);flex:none}.row .chev{width:16px;height:16px;color:var(--mut-2)}.seg{position:relative;display:grid;grid-template-columns:repeat(var(--n, 4),1fr);padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-inner)}.seg:before{content:"";position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px) / var(--n, 4));transform:translate(calc(var(--idx, 0) * 100%));background:var(--surface-3);border-radius:12px;transition:transform var(--t-slow) var(--ease-spring)}.seg button{position:relative;height:40px;border-radius:12px;color:var(--mut);font-size:14px;transition:color var(--t-base)}.seg button[aria-pressed=true]{color:var(--ink)}.stepper{display:flex;align-items:center;gap:var(--s3);font:500 17px var(--font-display)}.stepper button{width:34px;height:34px;border-radius:50%;background:var(--surface-3);display:grid;place-items:center;font-size:18px;transition:transform var(--t-base) var(--ease-spring),opacity var(--t-fast)}.stepper button:active:not(:disabled){transform:scale(.86);transition-duration:80ms}.stepper button:disabled{opacity:.3}.stepper output{min-width:1.2em;text-align:center;display:inline-block}.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 var(--s3);border-radius:var(--r-pill);background:#ffffff0d;border:1px solid var(--line);font-size:var(--fs-xs);color:var(--ink-2)}.badge{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:6px;font-size:11px;font-weight:600;letter-spacing:.02em}.badge.pos{background:#7fe3f01f;color:var(--pos)}.badge.warn{background:#f2a65a24;color:var(--warn)}.badge.neg{background:#e0685e24;color:var(--neg)}.badge.mut{background:#ffffff0f;color:var(--mut)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:var(--fs-sm);color:var(--mut)}.input{height:52px;padding:0 var(--s4);border-radius:var(--r-inner);background:var(--surface);border:1px solid var(--line);transition:border-color var(--t-fast),box-shadow var(--t-fast);width:100%}.input:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 4px #8fa4ff24}.input.error{border-color:var(--neg);animation:shake .38s var(--ease-out)}@keyframes shake{20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.copy{display:flex;align-items:center;gap:var(--s2);padding:6px 6px 6px var(--s4);border-radius:var(--r-inner);background:var(--surface);border:1px solid var(--line)}.copy code{flex:1;min-width:0;font:13px/1.3 ui-monospace,SF Mono,monospace;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.horizon{position:absolute;inset:0 0 auto;height:var(--horizon-h, calc(var(--safe-top) + 380px));pointer-events:none;overflow:hidden;z-index:0;transition:--a1 var(--t-aura) var(--ease-in-out),--a2 var(--t-aura) var(--ease-in-out),--glow var(--t-aura) var(--ease-in-out)}.horizon .glow{position:absolute;inset:0;background:radial-gradient(ellipse 100% 64% at 50% calc(100% - 90px),color-mix(in oklab,var(--a2) calc(58% * var(--glow)),transparent),color-mix(in oklab,var(--a1) calc(40% * var(--glow)),transparent) 38%,color-mix(in oklab,var(--a1) calc(12% * var(--glow)),transparent) 62%,transparent 82%);animation:breathe 9s var(--ease-in-out) infinite alternate;transform-origin:50% 100%}.horizon .arc{position:absolute;left:50%;top:calc(100% - 90px);width:2000px;height:2000px;margin-left:-1000px;border-radius:50%;background:var(--bg);box-shadow:0 -1px color-mix(in oklab,var(--a2) 75%,transparent),0 -18px 50px color-mix(in oklab,var(--a1) calc(45% * var(--glow)),transparent)}.horizon .grain{position:absolute;inset:0;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.horizon.low{height:calc(var(--safe-top) + 190px)}.horizon.low .glow{opacity:.6}[data-horizon]{--mut: var(--on-glow);--ink-2: var(--on-glow-2)}:where([data-horizon]+*){margin-top:64px}@keyframes breathe{0%{opacity:.85;transform:scaleX(1)}to{opacity:1;transform:scaleX(1.05)}}.enter>*,.enter [data-i]{animation:rise var(--t-slow) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 45ms + 40ms)}@keyframes rise{0%{opacity:0;transform:translateY(14px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}.fade-in{animation:fade var(--t-base) var(--ease-out) both}@keyframes fade{0%{opacity:0}}.pop-in{animation:pop var(--t-slow) var(--ease-spring) both}@keyframes pop{0%{opacity:0;transform:scale(.6)}}.skel{border-radius:10px;background:linear-gradient(90deg,var(--surface-2) 0%,var(--surface-3) 50%,var(--surface-2) 100%) 0 0 / 200% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}.backdrop{position:absolute;inset:0;background:#0304068c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .42s var(--ease-out);z-index:50}.backdrop.open{opacity:1}.sheet{position:absolute;left:0;right:0;bottom:0;z-index:51;max-height:88%;overflow:auto;background:var(--surface);border:1px solid var(--line);border-bottom:0;border-radius:28px 28px 0 0;padding:var(--s2) var(--gutter) calc(var(--s5) + var(--safe-bottom));transform:translateY(100%);transition:transform .56s cubic-bezier(.32,.72,0,1);touch-action:none}.sheet.open{transform:translateY(var(--drag, 0px))}.sheet.dragging{transition:none}.sheet .grabber{width:36px;height:5px;border-radius:3px;background:var(--line-2);margin:0 auto var(--s4)}.sheet h3{font:600 var(--fs-h2)/1.15 var(--font-display);letter-spacing:-.015em;margin-bottom:var(--s2)}.toast-host{position:absolute;left:0;right:0;top:calc(var(--safe-top) + var(--s2));display:flex;flex-direction:column;align-items:center;gap:var(--s2);z-index:60;pointer-events:none;padding:0 var(--s4)}.toast{--c: var(--ink-2);position:relative;overflow:hidden;display:flex;align-items:center;gap:10px;width:min(360px,100%);padding:10px 16px 10px 10px;border-radius:18px;pointer-events:auto;touch-action:none;user-select:none;cursor:default;background:color-mix(in oklab,var(--surface-2) 94%,transparent);backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);border:1px solid var(--line-2);box-shadow:0 18px 44px #00000080,inset 0 1px #ffffff0f;transition:transform var(--t-base) var(--ease-spring),opacity var(--t-fast);animation:toast-in .56s var(--ease-spring) backwards}.toast.dragging{transition:none}.toast-ok{--c: var(--pos)}.toast-warn{--c: var(--warn)}.toast-err{--c: var(--neg)}.toast-ic{width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;color:var(--c);background:color-mix(in oklab,var(--c) 16%,transparent);box-shadow:0 0 18px color-mix(in oklab,var(--c) 22%,transparent);animation:pop var(--t-slow) 80ms var(--ease-spring) backwards}.toast-ic svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.toast-tick{stroke-dasharray:20;stroke-dashoffset:20;animation:draw .42s .2s var(--ease-out) forwards}.toast-tx{min-width:0;display:flex;flex-direction:column;gap:1px}.toast-tx b{font-weight:500;font-size:14px;line-height:1.3;color:var(--ink)}.toast-tx small{font-size:12.5px;line-height:1.3;color:var(--mut)}.toast-bar{position:absolute;left:12px;right:12px;bottom:0;height:2px;border-radius:1px;background:var(--c);opacity:.45;transform-origin:left;animation:toast-bar var(--dur, 2.8s) linear forwards}.toast.paused .toast-bar{animation-play-state:paused}.toast-err{animation:toast-in .56s var(--ease-spring) backwards,toast-nudge .42s .38s var(--ease-out)}.toast.out{animation:toast-out .26s var(--ease-out) forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(-18px) scale(.9);filter:blur(4px)}}@keyframes toast-out{to{opacity:0;transform:translateY(-12px) scale(.95)}}@keyframes toast-bar{to{transform:scaleX(0)}}@keyframes toast-nudge{25%{transform:translate(-4px)}50%{transform:translate(3px)}75%{transform:translate(-2px)}}@media(prefers-reduced-motion:reduce){.toast,.toast-ic,.toast-err{animation:none}.toast-tick{animation:none;stroke-dashoffset:0}}.check-draw{width:64px;height:64px}.check-draw circle{stroke:var(--pos);stroke-width:2;fill:none;stroke-dasharray:190;stroke-dashoffset:190;animation:draw .7s var(--ease-out) forwards}.check-draw path{stroke:var(--pos);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:draw .42s .52s var(--ease-out) forwards}@keyframes draw{to{stroke-dashoffset:0}}.divider{height:1px;background:var(--line);margin:var(--s4) 0}.stack{display:flex;flex-direction:column;gap:var(--s3)}.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}.center{text-align:center}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(prefers-reduced-motion:reduce){.horizon .glow,.dot.live,.skel{animation:none}.enter>*,.enter [data-i]{animation:fade 1ms both}}
