:root{--bg:#0b0f14;--fg:#e6edf3;--muted:#8b98a5;--panel:#151b23;--line:#2a3340;--accent:#3b82f6;--ok:#22c55e;--warn:#f59e0b;--err:#ef4444;--code-bg:#0d1117;--code-head:#161b22;--gutter:#4b5563;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "JetBrains Mono", "Cascadia Code", "Fira Code", Consolas, monospace}.theme-light{--bg:#fff;--fg:#111827;--muted:#6b7280;--panel:#f3f4f6;--line:#d1d5db;--code-bg:#f6f8fa;--code-head:#e5e7eb;--gutter:#9ca3af}.theme-contrast{--bg:#000;--fg:#fff;--muted:#d1d5db;--panel:#111;--line:#666;--code-bg:#000;--code-head:#1a1a1a;--gutter:#bbb}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--font);-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button,input,select,textarea{font:inherit;color:inherit}button{background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:10px;padding:8px 14px}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.big{padding:14px 22px;font-size:1.2rem}button.icon,a.icon{width:42px;height:42px;color:inherit;background:color-mix(in srgb, var(--panel) 80%, transparent);border:1px solid var(--line);border-radius:50%;place-items:center;padding:0;font-size:1.1rem;text-decoration:none;display:grid}.chip{background:color-mix(in srgb, var(--panel) 80%, transparent);border-radius:999px;padding:6px 12px;font-size:.9rem}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.muted{color:var(--muted)}.error{color:var(--err)}.row{align-items:center;gap:8px;display:flex}.home{flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:100%;padding:16px;display:flex}.home h1{letter-spacing:.04em;margin:0}.home-grid{grid-template-columns:1fr 1fr;gap:16px;width:min(760px,100%);display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:10px;padding:18px;display:flex}.card h2{margin:0}.card label{flex-direction:column;gap:6px;display:flex}input,select,textarea{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px}.code-input{font-family:var(--mono);letter-spacing:.4em;text-transform:uppercase;text-align:center;width:9ch;font-size:1.6rem}@media (width<=560px){.home-grid{grid-template-columns:1fr}}.strip{padding:8px 12px;padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right));z-index:5;align-items:center;gap:10px;display:flex;position:fixed;left:0;right:0}.strip.top{background:linear-gradient(#0000008c,#0000);top:0}.strip.bottom{background:linear-gradient(#0000,#0000008c);justify-content:space-between;bottom:0}.strip.slim{pointer-events:none;background:0 0;padding:4px 10px}.strip.slim>*{pointer-events:auto}.dot{background:var(--err);border-radius:50%;width:10px;height:10px;display:inline-block}.dot.on{background:var(--ok)}.phase{text-shadow:0 1px 2px #000;flex:1;font-size:.9rem}.phase-error{color:var(--err)}.phase-unchanged{color:var(--warn)}.phase-streaming,.phase-thinking,.phase-sending{color:var(--accent)}.cost{font-family:var(--mono);text-shadow:0 1px 2px #000;font-size:.85rem}.counter{font-family:var(--mono);background:color-mix(in srgb, var(--panel) 70%, transparent);border-radius:999px;padding:2px 8px;font-size:.85rem}.host{background:#000;position:fixed;inset:0;overflow:hidden}.viewfinder{object-fit:cover;background:#000;width:100%;height:100%}.host.flash:after{content:"";opacity:.7;pointer-events:none;background:#fff;position:absolute;inset:0}.overlay-center{text-align:center;z-index:2;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.overlay-center p{margin:4px 0}.pulse{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.4}}.scrim{opacity:0;pointer-events:none;z-index:20;background:#00000080;transition:opacity .15s;position:fixed;inset:0}.scrim.show{opacity:1;pointer-events:auto}.drawer{background:var(--panel);border-left:1px solid var(--line);z-index:21;width:min(420px,85vw);color:var(--fg);flex-direction:column;font-size:16px;transition:transform .18s ease-out;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.drawer.open{transform:translate(0)}.drawer header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.drawer h2{margin:0;font-size:1.1rem}.drawer-body{flex-direction:column;gap:14px;padding:12px 14px;display:flex;overflow-y:auto}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--muted);font-size:.85rem}.segmented{border:1px solid var(--line);border-radius:10px;display:flex;overflow:hidden}.segmented button{background:0 0;border:0;border-radius:0;flex:1;padding:10px 6px;font-size:.9rem}.segmented button.on{background:var(--accent);color:#fff}.bigcode{font-family:var(--mono);letter-spacing:.3em;text-align:center;margin:6px 0;font-size:3rem}.qr{background:#fff;border-radius:12px;place-items:center;width:fit-content;margin:0 auto;padding:10px;display:grid}.client{background:var(--bg);color:var(--fg);position:fixed;inset:0}.answer-scroll{padding:44px max(56px, env(safe-area-inset-right)) 24px max(56px, env(safe-area-inset-left));-webkit-overflow-scrolling:touch;position:absolute;inset:0;overflow-y:auto}.answer{max-width:100%;line-height:1.45}.answer p{margin:.5em 0}.answer ul,.answer ol{margin:.4em 0;padding-left:1.4em}.answer h1,.answer h2,.answer h3{margin:.8em 0 .3em;font-size:1.1em}.answer code.inline{font-family:var(--mono);background:var(--code-bg);border:1px solid var(--line);border-radius:6px;padding:0 .3em;font-size:.95em}.cursor{background:var(--accent);vertical-align:text-bottom;width:.55em;height:1em;animation:.9s steps(2,end) infinite pulse;display:inline-block}.side-col{z-index:6;flex-direction:column;justify-content:space-between;align-items:center;width:56px;display:flex;position:fixed;top:54px;bottom:14px}.side-col.left{left:max(4px, env(safe-area-inset-left))}.side-col.right{right:max(4px, env(safe-area-inset-right))}.edge{background:color-mix(in srgb, var(--panel) 60%, transparent);border:1px solid var(--line);width:50px;height:78px;color:var(--fg);border-radius:14px;place-items:center;padding:0;font-size:1.6rem;line-height:1;display:grid}.edge:disabled{opacity:.15}.quick-btn{border-color:var(--accent);border-radius:50%;height:50px;font-size:1.3rem}.arrows-left .answer-scroll{padding-left:max(68px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right))}.arrows-right .answer-scroll{padding-left:max(16px, env(safe-area-inset-left));padding-right:max(68px, env(safe-area-inset-right))}.toast{background:var(--warn);color:#000;z-index:8;border-radius:999px;padding:8px 16px;font-size:.9rem;position:fixed;bottom:14px;left:50%;transform:translate(-50%)}.banner{text-align:center;background:var(--err);color:#fff;z-index:9;padding:2px;font-size:.85rem;position:fixed;top:0;left:0;right:0}.codeblock{border:1px solid var(--line);background:var(--code-bg);font-family:var(--mono);border-radius:10px;margin:.6em 0;overflow:hidden}.codeblock-head{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--code-head);border-bottom:1px solid var(--line);padding:3px 10px;font-size:.7em}.codeblock-body{overflow-x:auto}.shiki-wrap pre,.plain{counter-reset:line;margin:0;padding:8px 10px 8px 0;font-size:.85em;line-height:1.5;background:0 0!important}.shiki-wrap pre code,.plain code{font-family:var(--mono);display:block}.codeblock .line{min-height:1.5em;padding-left:.6em;display:block}.codeblock .line:before{counter-increment:line;content:counter(line);text-align:right;width:2.6em;color:var(--gutter);border-right:1px solid var(--line);-webkit-user-select:none;user-select:none;margin-right:.8em;padding-right:.5em;display:inline-block}.codeblock.wrap pre{white-space:pre-wrap;word-break:break-word}.codeblock.wrap .line{text-indent:-4.5em;padding-left:4.5em}.codeblock.wrap .line:before{text-indent:0}.codeblock.nowrap pre{white-space:pre}.theme-contrast .shiki-wrap pre{filter:contrast(1.2)brightness(1.1)}.capture-group{--shutter:74px;align-items:center;gap:calc(var(--shutter) * .18);display:flex}.capture-group.left,.capture-group.right{z-index:5;flex-direction:column;position:fixed;top:50%;transform:translateY(-50%)}.capture-group.left{left:max(10px, env(safe-area-inset-left))}.capture-group.right{right:max(10px, env(safe-area-inset-right))}.round{width:calc(var(--shutter) * .7);height:calc(var(--shutter) * .7);font-size:calc(var(--shutter) * .26);background:color-mix(in srgb, var(--panel) 80%, transparent);border:2px solid var(--line);color:#fff;border-radius:50%;place-items:center;padding:0;display:grid}.round.hidden{visibility:hidden}.round.stack.active{border-color:var(--accent);background:var(--accent)}.round .badge{font-family:var(--mono);font-weight:700;font-size:calc(var(--shutter) * .28)}.round.discard{border-color:var(--err);color:var(--err)}.shutter{width:var(--shutter);height:var(--shutter);border:calc(var(--shutter) * .07) solid #fff;background:#ffffff40;border-radius:50%;flex:none;padding:0}.shutter:active{background:#fff}.shutter.confirm{color:#000;font-size:calc(var(--shutter) * .5);background:#fff;font-weight:700;line-height:1}.focus-ring{pointer-events:none;z-index:4;border:2px solid #ffd54a;border-radius:50%;width:64px;height:64px;margin:-32px 0 0 -32px;animation:.7s ease-out forwards ring;position:fixed}@keyframes ring{0%{opacity:1;transform:scale(1.4)}to{opacity:0;transform:scale(.9)}}.section{border:1px solid var(--line);border-radius:12px;padding:0 12px}.section>summary{cursor:pointer;justify-content:space-between;padding:10px 0;font-weight:600;list-style:none;display:flex}.section>summary:after{content:"+";color:var(--muted)}.section[open]>summary:after{content:"−"}.section-body{flex-direction:column;gap:12px;padding:0 0 12px;display:flex}.small{margin:0;font-size:.8rem}.sheet{background:var(--panel);border-top:1px solid var(--line);z-index:21;max-height:85vh;color:var(--fg);padding-bottom:env(safe-area-inset-bottom);border-radius:18px 18px 0 0;flex-direction:column;font-size:16px;transition:transform .18s ease-out;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(105%)}.sheet.open{transform:translateY(0)}.sheet header{justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.sheet h2{margin:0;font-size:1.05rem}.sheet>.muted{margin:0 14px 6px}.quick-grid{grid-template-columns:repeat(4,1fr);gap:10px;padding:0 14px 14px;display:grid;overflow-y:auto}.quick{text-align:left;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;min-height:64px;padding:12px;display:flex}.quick-label{font-weight:600}.quick-hint{color:var(--muted);font-size:.8rem}@media (width<=640px){.quick-grid{grid-template-columns:repeat(2,1fr)}}
