@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-opsz-normal-CfYZpDVp.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-opsz-normal-BFQXbQ-f.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-opsz-normal-BmPQvyvo.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-opsz-normal-BM0NlUE_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-opsz-normal-Ci9T9ieq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-opsz-normal-DpK-iCPk.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-opsz-normal-BwkfbSeq.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light dark;--font-sans: "Inter Variable", -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", Roboto, sans-serif;--scale: 1;--text-xs: 12px;--text-sm: 13px;--text-base: 15px;--text-md: 17px;--text-lg: 20px;--text-input: 16px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 48px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .32s;--white: oklch(100% 0 0);--brand-primary: #04c0ae;--brand-audio: #29d5ce;--paper: oklch(98% 0 0);--paper-2: oklch(94% 0 0);--paper-3: oklch(89% 0 0);--ink: oklch(15% 0 0);--ink-hover: oklch(28% 0 0);--ink-2: oklch(44% 0 0);--ink-3: oklch(57% 0 0);--on-ink: oklch(98% 0 0);--line: oklch(15% 0 0 / .1);--line-strong: oklch(15% 0 0 / .3);--scrim: oklch(15% 0 0 / .4);--shadow-dock: 0 -6px 24px -12px oklch(15% 0 0 / .2);--shadow-sheet: 0 -12px 48px -12px oklch(15% 0 0 / .32);--shadow-raised: 0 1px 2px oklch(15% 0 0 / .1)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: oklch(11% 0 0);--paper-2: oklch(16% 0 0);--paper-3: oklch(22% 0 0);--ink: oklch(96% 0 0);--ink-hover: oklch(86% 0 0);--ink-2: oklch(72% 0 0);--ink-3: oklch(55% 0 0);--on-ink: oklch(11% 0 0);--line: oklch(100% 0 0 / .12);--line-strong: oklch(100% 0 0 / .34);--scrim: oklch(0% 0 0 / .62);--shadow-dock: 0 -6px 24px -12px oklch(0% 0 0 / .6);--shadow-sheet: 0 -12px 48px -12px oklch(0% 0 0 / .8);--shadow-raised: 0 1px 2px oklch(0% 0 0 / .5)}}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark;--paper: oklch(11% 0 0);--paper-2: oklch(16% 0 0);--paper-3: oklch(22% 0 0);--ink: oklch(96% 0 0);--ink-hover: oklch(86% 0 0);--ink-2: oklch(72% 0 0);--ink-3: oklch(55% 0 0);--on-ink: oklch(11% 0 0);--line: oklch(100% 0 0 / .12);--line-strong: oklch(100% 0 0 / .34);--scrim: oklch(0% 0 0 / .62);--shadow-dock: 0 -6px 24px -12px oklch(0% 0 0 / .6);--shadow-sheet: 0 -12px 48px -12px oklch(0% 0 0 / .8);--shadow-raised: 0 1px 2px oklch(0% 0 0 / .5)}*,*:before,*:after{box-sizing:border-box}html{height:100%;overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;height:100%;overflow:hidden;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;color:var(--ink);background:var(--paper);font-feature-settings:"cv11","ss03";font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}button,input{font:inherit;color:inherit}button{margin:0;padding:0;border:0;background:none;cursor:pointer;text-align:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}button:disabled{cursor:default;opacity:.45}button>svg{flex:none}a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.app{height:100dvh;display:flex;flex-direction:column}.topbar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:52px;padding:env(safe-area-inset-top) var(--space-5) 0}.brand{display:inline-flex;align-items:center;min-height:44px;color:var(--ink)}.brand-logo{display:block;height:22px;width:auto}.state{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:var(--text-sm);font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}.state-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3)}.state.live{color:var(--ink)}.state.live .state-dot{background:var(--ink);animation:pulse 1.6s var(--ease-in-out) infinite}.state.connecting .state-dot,.state.draining .state-dot,.state.waiting .state-dot{animation:pulse 1s var(--ease-in-out) infinite}.state.error .state-dot{background:transparent;box-shadow:inset 0 0 0 2px var(--ink)}.timer{font-weight:500;color:var(--ink-3);font-variant-numeric:tabular-nums}.timer.low{font-weight:700;color:var(--ink)}.topbar-right{display:flex;align-items:center;gap:var(--space-1);margin-right:-10px}.iconbtn{width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2);transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.iconbtn:active{transform:scale(.92);background:var(--paper-2)}.focus-lang{font-size:var(--text-sm);font-weight:600;color:var(--ink-2)}main{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.column{max-width:720px;min-height:100%;margin:0 auto;padding:var(--space-2) var(--space-5) var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.is-session .column{height:100%}.is-home .topbar{justify-content:flex-end}.identity{padding-top:var(--space-2)}.voice-stage{flex:1;display:flex;align-items:center;min-height:72px;margin:0 calc(-1 * var(--space-5))}.voice{display:block;width:100%;height:120px;color:var(--line-strong)}.voice path{fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round}.identity-logo{display:block;height:52px;width:auto;color:var(--ink)}.identity-desc{display:block;margin-top:var(--space-2);font-size:var(--text-base);color:var(--ink-2)}.identity-lead{max-width:34ch;margin:var(--space-2) 0 0;font-size:var(--text-sm);line-height:1.5;color:var(--ink-3)}.textbutton.identity-more{margin:var(--space-1) -6px -10px;color:var(--ink-2)}.steps{margin:var(--space-2) 0 0;padding:0;list-style:none;counter-reset:step}.steps li{display:grid;grid-template-columns:28px 1fr;column-gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--line);counter-increment:step}.steps li:last-child{border-bottom:0}.steps li:before{content:counter(step);grid-row:span 2;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink-3)}.steps strong{font-weight:600}.steps span{color:var(--ink-2);font-size:var(--text-sm)}.about-free{margin:0}.account-line{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-3);margin:var(--space-4) 0 0;color:var(--ink-3);font-size:var(--text-sm);text-align:center}.account-line .textbutton{margin:0;color:var(--ink-2)}.is-home .column{padding-bottom:calc(var(--space-6) + env(safe-area-inset-bottom))}.choices{display:grid;gap:var(--space-3)}.choice{display:flex;align-items:center;gap:var(--space-4);min-height:96px;padding:var(--space-4) var(--space-4) var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:var(--paper-2);color:var(--ink);transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.choice:active{transform:scale(.98);background:var(--paper-3)}.choice>svg:first-child{flex:none}.choice>svg:last-child{flex:none;color:var(--ink-3)}.choice-text{flex:1;min-width:0}.choice-text strong{display:block;font-size:var(--text-lg);font-weight:600;letter-spacing:-.02em}.choice-text small{display:block;margin-top:2px;font-size:var(--text-sm);line-height:1.45;color:var(--ink-2)}@media(hover:hover){.choice:hover{background:var(--paper-3)}.iconbtn:hover{background:var(--paper-2)}}.route{--energy: 0;display:grid;grid-template-columns:auto minmax(24px,1fr) auto;align-items:end;gap:var(--space-3);padding-top:var(--space-2)}.lang{display:flex;flex-direction:column;gap:2px;min-height:52px;min-width:0;padding:4px 0;border-radius:8px;text-align:left}.lang small{font-size:11px;font-weight:500;letter-spacing:.02em;color:var(--ink-3)}.lang-value{display:inline-flex;align-items:center;gap:6px;min-width:0;font-size:clamp(22px,6.5vw,30px);font-weight:600;line-height:1.1;letter-spacing:-.02em}.lang-value>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lang-value>svg{flex:none;color:var(--ink-3)}.lang-source .lang-value{font-weight:500;color:var(--ink-2)}.lang-source .lang-value.pending{color:var(--ink-3)}.lang-swap{animation:fade .2s var(--ease-out)}.lang-target{align-items:flex-end;text-align:right}button.lang:active{opacity:.55}.route-line{position:relative;height:1px;margin-bottom:15px;background:var(--line-strong);container-type:inline-size}.route-line:before{content:"";position:absolute;right:0;top:-4px;width:8px;height:8px;border-top:1px solid var(--line-strong);border-right:1px solid var(--line-strong);transform:rotate(45deg)}.route-line:after{content:"";position:absolute;left:0;top:-1px;width:40px;height:3px;border-radius:2px;background:var(--ink);opacity:0;transition:opacity var(--dur-fast) linear}.route.live .route-line:after{opacity:calc(.3 + var(--energy) * .7);animation:travel 2.4s linear infinite}.route.waiting .route-line,.route.connecting .route-line,.route.ended .route-line,.route.closed .route-line,.route.error .route-line,.route.draining .route-line{background:repeating-linear-gradient(90deg,var(--line-strong) 0 6px,transparent 6px 12px)}.route.connecting .route-line,.route.draining .route-line{animation:march .5s linear infinite}.route.ended .route-line,.route.closed .route-line,.route.idle .route-line{opacity:.55}.standby{padding:var(--space-2) 0;border-top:1px solid var(--line)}.standby strong{display:block;font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em;color:var(--ink)}.standby span{display:block;margin-top:4px;max-width:40ch;font-size:var(--text-sm);line-height:1.5;color:var(--ink-2)}.standby.centered{padding:0;border:0;text-align:center}.standby.centered span{margin-inline:auto}.standby.closed strong{font-size:calc(var(--text-lg) * 1.2)}.standby-action{flex:none;margin-top:var(--space-3);min-width:200px}.standby.centered .standby-action{margin-inline:auto}.intro{margin:0;max-width:40ch;font-size:var(--text-base);line-height:1.55;color:var(--ink-2)}.meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px var(--space-4);min-height:24px;font-size:var(--text-sm);color:var(--ink-3)}.meta strong{font-weight:600;color:var(--ink-2)}.textbutton{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin:-10px -6px;padding:0 6px;border-radius:8px;font-size:var(--text-sm);font-weight:600;color:var(--ink);white-space:nowrap}.textbutton:active{opacity:.55}.meter{display:block;width:100%;height:40px;color:var(--ink)}.meter.small{height:28px}.meter.large{height:120px}.audio-stage{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--space-4);text-align:center}.audio-stage .status-line{margin:0;font-size:var(--text-md);font-weight:500;color:var(--ink)}.audio-stage .meter.large{margin:0 calc(-1 * var(--space-5));width:auto;align-self:stretch}.debug{flex:none;padding:var(--space-2) var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--ink-2)}.debug p{margin:0}.debug-title{font-weight:600;letter-spacing:.02em;color:var(--ink-3)}.debug-channel+.debug-channel{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--line)}.debug-head{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3)}.debug-head strong{color:var(--ink)}.debug table{border-collapse:collapse;margin:var(--space-1) 0}.debug th,.debug td{padding:1px var(--space-3) 1px 0;text-align:left;font-weight:500}.debug td{text-align:right;color:var(--ink)}.debug-stall.active{display:inline-block;padding:1px var(--space-2);border-radius:6px;background:var(--ink);color:var(--on-ink);font-weight:600}.debug-unknown code{font-size:inherit;overflow-wrap:anywhere}.captions{flex:1;min-height:140px;display:flex;flex-direction:column;container-type:inline-size}.captions-label{display:flex;align-items:baseline;gap:8px;font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;color:var(--ink-3)}.captions-label span{font-weight:500}.caption{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;padding:var(--space-2) 0 var(--space-3)}.is-session .caption>:first-child{margin-top:auto}.is-session .caption:has(.placeholder) .caption-current{margin-bottom:auto}.caption-history{margin:0 0 var(--space-3);font-size:calc(clamp(15px,4.2cqi,18px) * var(--scale));line-height:1.5;color:var(--ink-2);overflow-wrap:anywhere;white-space:pre-wrap}.caption-current{margin:0;font-size:calc(clamp(20px,6cqi,30px) * var(--scale));line-height:1.3;font-weight:500;letter-spacing:-.012em;color:var(--ink);overflow-wrap:anywhere;white-space:pre-wrap;text-wrap:pretty}.mode-text .caption-current{font-size:calc(clamp(24px,7.5cqi,40px) * var(--scale));line-height:1.25}.mode-text .caption-history{font-size:calc(clamp(16px,4.6cqi,20px) * var(--scale))}.placeholder{font-size:calc(var(--text-md) * var(--scale));font-weight:400;color:var(--ink-3)}.alert,.notice{display:flex;align-items:flex-start;gap:var(--space-3);padding:12px 6px 12px 14px;border-radius:var(--radius-md);background:var(--paper-2);font-size:var(--text-sm);line-height:1.5;text-align:left}.alert{font-weight:500;color:var(--ink)}.notice{color:var(--ink-2)}.alert>svg,.notice>svg{flex:none;margin-top:2px}.alert>span,.notice>span{flex:1;min-width:0;padding-top:1px}.alert-action{flex:none;margin:-6px 0;font-weight:600;text-decoration:underline}.dismiss{flex:none;width:44px;height:44px;margin:-10px -4px -10px 0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-3)}.dock{flex:none;padding:10px var(--space-4) calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow-dock)}.dock-inner{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-2)}.dock-row{display:flex;gap:var(--space-2)}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:2px;padding:3px;border-radius:var(--radius-md);background:var(--paper-2)}.segmented button{min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:11px;font-size:var(--text-xs);font-weight:600;color:var(--ink-2);white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.segmented button:active{transform:scale(.97)}.segmented button[aria-checked=true]{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-raised)}.btn{flex:1;min-width:0;min-height:52px;padding:0 var(--space-4);display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600;letter-spacing:-.01em;white-space:nowrap;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.btn>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--ink);color:var(--on-ink)}.btn-secondary{background:var(--paper-2);color:var(--ink)}.btn-secondary[aria-pressed=true]{background:var(--ink);color:var(--on-ink)}.btn-icon{flex:0 0 56px;padding:0}.btn-stop{flex:1.6}.dock-row:has(>:nth-child(3)) .btn{padding:0 8px;gap:6px;font-size:var(--text-sm)}@media(hover:hover){.btn-primary:hover:not(:disabled){background:var(--ink-hover)}.btn-secondary:hover:not(:disabled):not([aria-pressed=true]){background:var(--paper-3)}.option:hover,.textbutton:hover{background:var(--paper-2)}}.spin{animation:spin .9s linear infinite}.is-focus .topbar{justify-content:center;gap:var(--space-4)}.is-focus .column{padding-bottom:76px}.restore{position:fixed;left:50%;bottom:calc(12px + env(safe-area-inset-bottom));z-index:10;transform:translate(-50%);min-height:48px;padding:0 18px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;background:var(--paper-2);color:var(--ink);font-size:var(--text-sm);font-weight:600;box-shadow:var(--shadow-raised)}.sheet-backdrop{position:fixed;inset:var(--vv-top, 0px) 0 auto;height:var(--vv-height, 100%);z-index:40;display:flex;align-items:flex-end;justify-content:center;background:var(--scrim);animation:fade var(--dur-base) var(--ease-out)}.sheet{position:relative;width:100%;max-width:560px;max-height:calc(var(--vv-height, 100dvh) - 24px);overflow-y:auto;overscroll-behavior:contain;padding:10px var(--space-4) calc(var(--space-5) + var(--sheet-safe-bottom, env(safe-area-inset-bottom)));border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--paper);box-shadow:var(--shadow-sheet);animation:rise var(--dur-slow) var(--ease-out);transition:transform var(--dur-base) var(--ease-out);will-change:transform}.sheet:focus{outline:none}.sheet.is-dragging{transition:none}.grabber{width:36px;height:5px;margin:0 auto 6px;border-radius:3px;background:var(--paper-3)}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:48px}.sheet-head h2{margin:0;font-size:var(--text-lg);font-weight:600;letter-spacing:-.02em}.close{width:44px;height:44px;margin-right:-8px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2)}.sheet p{margin:2px 0 0;font-size:var(--text-sm);line-height:1.55;color:var(--ink-2)}.sheet .segmented{margin-top:var(--space-3)}.sheet .segmented button{min-height:44px;flex-direction:row;font-size:var(--text-sm)}.options{display:flex;flex-direction:column;margin-top:var(--space-2)}.option{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:56px;padding:6px 8px 6px 10px;border-radius:var(--radius-sm);font-size:var(--text-md);font-weight:500;color:var(--ink)}.option:active{background:var(--paper-2)}.option[aria-checked=true]{font-weight:600}.option-main{display:flex;align-items:center;gap:var(--space-3);min-width:0}.option-alt{font-weight:400;color:var(--ink-3)}.option-main small{display:block;font-size:var(--text-sm);font-weight:400;color:var(--ink-3)}.option .preview{width:44px;font-weight:600;line-height:1;text-align:center}.option>svg{flex:none;color:var(--ink)}.qr{display:flex;justify-content:center;margin:var(--space-4) 0}.qr-large>div{width:min(100%,288px)}.qr-large svg{width:100%;height:auto}.qr>div{padding:14px;border-radius:var(--radius-md);background:var(--white)}.qr svg{display:block}.field-label{margin:var(--space-4) 0 var(--space-2);font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;color:var(--ink-3)}.field-label+.segmented{margin-top:0}.prepare-route{margin-top:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(24px,.3fr) minmax(0,1fr)}.prepare-back{margin-top:var(--space-2)}.prepare-route .lang small{margin-top:0;font-size:11px}.join{display:flex;flex-direction:column;margin-top:var(--space-3)}.join input,.link-row input{flex:1;min-width:0;min-height:52px;padding:0 14px;border:0;border-radius:var(--radius-md);background:var(--paper-2);font-size:var(--text-input);color:var(--ink);text-overflow:ellipsis}.join input::placeholder,.link-row input::placeholder{color:var(--ink-3)}.join .btn{margin-top:var(--space-3)}.code-field{position:relative}.code-cells{display:flex;justify-content:center;gap:8px}.code-cell{flex:1;min-width:0;max-width:64px;height:60px;display:grid;place-items:center;border-radius:var(--radius-md);background:var(--paper-2);box-shadow:inset 0 0 0 1px var(--line);font-size:28px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}.code-cell.active{box-shadow:inset 0 0 0 2px var(--ink)}.code-cell.active:empty:after{content:"";width:2px;height:1em;border-radius:1px;background:var(--ink);animation:caret 1.1s step-end infinite}@keyframes caret{50%{opacity:0}}.join .code-field-input{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;border-radius:0;outline:0;background:transparent;color:transparent;-webkit-text-fill-color:transparent;caret-color:transparent;font-size:16px}.join .code-field-input::selection{background:transparent}.code{font-variant-numeric:tabular-nums;letter-spacing:.08em}.code-big{margin:var(--space-3) 0 var(--space-4);padding:var(--space-3) 0;border-radius:var(--radius-md);background:var(--paper-2);text-align:center;font-size:44px;font-weight:600;letter-spacing:.3em;text-indent:.3em;font-variant-numeric:tabular-nums}.divider{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-4) 0 var(--space-3);font-size:var(--text-xs);font-weight:600;color:var(--ink-3)}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}.sheet .btn+.join{margin-top:var(--space-3)}.textbutton.centered{align-self:center;margin:var(--space-2) auto 0;display:flex;color:var(--ink-2)}.scanner{display:block;width:100%;aspect-ratio:4 / 3;margin:var(--space-3) 0;border-radius:var(--radius-md);background:var(--paper-2);object-fit:cover}.textlinks{display:flex;justify-content:center;align-items:center;gap:var(--space-3);margin:var(--space-4) 0 0;color:var(--ink-3);font-size:var(--text-sm)}.textlinks .textbutton{margin:0;color:var(--ink-2)}.textlinks .textbutton:disabled{opacity:.55}.field-error{margin:var(--space-2) 0 0;font-size:var(--text-sm);font-weight:500;color:var(--ink)}.link-row{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.sheet .btn{width:100%;margin-top:var(--space-3)}.sheet .btn-icon{width:auto;margin:0}.sheet-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.sheet .sheet-actions .btn{margin-top:0}.sheet small{display:block;margin-top:var(--space-3);font-size:var(--text-xs);line-height:1.55;color:var(--ink-3)}.diag{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px var(--space-4);margin:var(--space-3) 0 var(--space-4);font-size:var(--text-sm)}.diag dt{color:var(--ink-3)}.diag dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.tone{display:flex;align-items:center;gap:var(--space-3)}.tone .btn{margin:0;width:auto;flex:none}.tone span{min-width:0;font-size:var(--text-xs);color:var(--ink-3)}footer{margin-top:auto;padding-top:var(--space-5);display:flex;flex-wrap:wrap;gap:0 var(--space-4);font-size:var(--text-xs);color:var(--ink-3)}footer>*{display:inline-flex;align-items:center;min-height:44px}footer a{color:var(--ink-2);text-decoration:underline;text-underline-offset:3px}@media(min-width:720px){.topbar{min-height:60px;padding-inline:var(--space-7)}.column{padding:var(--space-4) var(--space-7) var(--space-7)}.lang-value{font-size:32px}.choices{grid-template-columns:repeat(2,minmax(0,1fr))}.choice{min-height:120px}.dock{padding-inline:var(--space-6)}.sheet-backdrop{align-items:center;padding:var(--space-6)}.sheet{max-width:440px;padding:var(--space-3) var(--space-6) var(--space-6);border-radius:var(--radius-lg);animation-name:pop}.grabber{display:none}}@media(max-height:520px){.topbar{min-height:44px}.column{padding-top:4px;gap:var(--space-3)}.lang{min-height:44px}.lang small{display:none}.lang-value{font-size:20px}.intro,.meta,footer{display:none}.meter{height:28px}.meter.large{height:64px}.dock{padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom))}.dock-inner{flex-direction:row;max-width:none}.segmented,.dock-row{flex:1 1 50%}.segmented button{min-height:44px;flex-direction:row;gap:6px}.btn{min-height:44px}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.5}}@keyframes travel{0%{transform:translate(0)}to{transform:translate(calc(100cqi - 40px))}}@keyframes march{to{background-position:12px 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(100%)}}@keyframes pop{0%{opacity:0;transform:scale(.97) translateY(6px)}}::view-transition-old(root),::view-transition-new(root){animation-duration:.18s}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.sheet-backdrop,.sheet{animation-name:fade;animation-duration:.15s!important}.code-cell.active:empty:after{animation:none}.state-dot,.route-line,.route-line:after{animation:none!important}.route.live .route-line:after{opacity:.6}}.admin{height:100dvh;overflow-y:auto}.admin-badge{font-size:var(--text-sm);font-weight:600;color:var(--ink-2)}.admin-main{max-width:640px;margin:0 auto;padding:0 var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom))}.admin-main section{margin-top:var(--space-5)}.admin-main h2{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--ink-2)}.admin-count{color:var(--ink-3);font-weight:500}.admin-loading{display:block;margin:var(--space-6) auto;color:var(--ink-3)}.admin-empty{margin:0;color:var(--ink-3)}.admin-budget{padding:var(--space-2) 0}.admin-row-head{display:flex;justify-content:space-between;gap:var(--space-3)}.admin-meter{height:6px;margin-top:6px;border-radius:3px;background:var(--paper-2);overflow:hidden}.admin-meter span{display:block;height:100%;border-radius:3px;background:var(--ink)}.admin-list{margin:0;padding:0;list-style:none}.admin-list li{display:flex;align-items:center;gap:var(--space-3);min-height:56px;border-bottom:1px solid var(--line)}.admin-list li:last-child{border-bottom:0}.admin-item{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding:var(--space-2) 0;text-align:left}.admin-item>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-item small{color:var(--ink-3);font-size:var(--text-xs)}.admin-item .code{font-size:20px}.admin-item-button{min-height:56px}.btn.admin-action{flex:none;min-height:44px;padding:0 var(--space-3)}.sheet small a{color:var(--ink-2);text-decoration:underline;text-underline-offset:2px}.legal-links{display:inline-flex;flex-wrap:wrap;gap:0 var(--space-3)}.sheet small .legal-links{display:flex;margin-top:var(--space-1)}.admin-flag{margin-left:var(--space-2);padding:1px var(--space-2);border-radius:6px;background:var(--ink);color:var(--on-ink);font-size:var(--text-xs);font-style:normal;font-weight:600;vertical-align:1px}.admin-stream{padding-top:var(--space-3);border-top:1px solid var(--line);font-variant-numeric:tabular-nums}.admin-stream h3{margin:0 0 var(--space-2);font-size:var(--text-base)}.admin-stream dl{margin:0;display:grid;gap:2px;font-size:var(--text-sm)}.admin-stream dl>div{display:flex;justify-content:space-between;gap:var(--space-3)}.admin-stream dt{color:var(--ink-2)}.admin-stream dd{margin:0}.admin-stream-unknown{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--ink-2)}.admin-stream-unknown code{font-size:inherit;overflow-wrap:anywhere}.admin-danger{margin-top:var(--space-4);font-weight:600}
