:root{--bg: #08090b;--panel: #111419;--panel-edge: #1e242b;--quiet: #0d1014;--quiet-edge: #171c22;--raised: #151a20;--raised-edge: #262c34;--glass: rgba(6, 8, 10, .93);--glass-edge: #23272e;--side: #0b0e12;--line: #1b2026;--ink: #f2f4f5;--ink-2: #dfe4e8;--ink-body: #c3cbd2;--ink-lede: #98a1aa;--ink-mid: #939ca5;--ink-dim: #8b939c;--ink-faint: #7d868f;--accent: #4fd1c5;--accent-ink: #04120f;--accent-sub: #0a3833;--accent-bg: #0e1a19;--accent-edge: #2b4b47;--accent-dot: #14201f;--warn: #f0b24a;--warn-bg: #1c1508;--warn-edge: #4a3a15;--warn-ink: #c9b388;--bad: #ff8a8a;--sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--tap: 52px}*{box-sizing:border-box}html,body{margin:0;height:100%}[hidden]{display:none!important}body{background:var(--bg);color:var(--ink);font:16px/1.5 var(--sans);-webkit-font-smoothing:antialiased;overscroll-behavior:none}#app{min-height:100%;max-width:480px;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) 24px max(26px,env(safe-area-inset-bottom));display:flex;flex-direction:column}h1{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-mid);margin:0;font-weight:700}h2{font-size:28px;line-height:1.15;margin:0;font-weight:700;letter-spacing:-.01em;color:var(--ink);text-wrap:pretty}h2.xl{font-size:30px}h2.xxl{font-size:36px;line-height:1.12;max-width:420px}p{margin:0;color:var(--ink-dim);text-wrap:pretty}p.body{font-size:15px;line-height:1.45;color:var(--ink-body)}.lede{font-size:16px;line-height:1.45;color:var(--ink-lede)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.mid{color:var(--ink-mid)}.faint{color:var(--ink-faint)}.accent{color:var(--accent)}.screen strong{color:var(--ink);font-weight:500}strong.warn-text,.screen strong.warn-text{color:var(--warn)}.brand{font-size:12px;font-weight:700;letter-spacing:.22em;color:var(--ink-mid)}.eyebrow{font:500 11px var(--mono);letter-spacing:.16em;color:var(--ink-faint)}.eyebrow.accent{color:var(--accent)}.hint{font-size:13px;line-height:1.45;color:var(--ink-mid);text-align:center}.hint.left{text-align:left}.status{display:inline-flex;align-items:center;gap:9px;font-size:14px;font-weight:500;color:var(--ink-dim)}.status:before{content:"";flex:none;width:9px;height:9px;border-radius:50%;background:currentColor}.status.good{color:var(--accent)}.status.warn{color:var(--warn)}.status.warn:before{animation:pulse 1.6s ease-in-out infinite}.status.bad{color:var(--bad)}header{display:flex;align-items:center;justify-content:space-between;gap:12px}.screen{display:flex;flex-direction:column;gap:20px;flex:1}.flow{display:flex;flex-direction:column;gap:18px;flex:1}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px;margin:-4px 0 -6px}.spacer,.grow{flex:1}.row-between{display:flex;justify-content:space-between;align-items:center;gap:12px}.buttons{display:flex;flex-direction:column;gap:12px}.pair{display:flex;gap:10px}.pair>*{flex:1}hr{border:0;height:1px;background:var(--line);margin:0;width:100%}.card{background:var(--panel);border:1px solid var(--panel-edge);border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:10px}.card.roomy{border-radius:20px;padding:22px;gap:16px}.card.quiet{background:var(--quiet);border-color:var(--quiet-edge)}.card.tint{background:var(--accent-bg);border-color:var(--accent-edge);gap:14px}.card.chosen{background:var(--accent-bg);border:1.5px solid var(--accent);border-radius:20px;padding:20px;gap:8px}.card.warn{background:var(--warn-bg);border-color:var(--warn-edge);gap:8px}.card.compact{padding:12px 14px}.card p{font-size:14px;line-height:1.45}.card p.body{font-size:15px}.card.warn p{color:var(--warn-ink)}.card-title{font-size:14px;font-weight:500;color:var(--ink)}.card-title.warn{color:var(--warn)}.file-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.file-name{font-size:15px;font-weight:500;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{flex:none;font:13px var(--mono);color:var(--ink-dim)}ol.steps{list-style:none;margin:0;padding:0;counter-reset:step;display:flex;flex-direction:column;gap:14px}ol.steps li{counter-increment:step;display:flex;gap:14px;align-items:flex-start;font-size:16px;line-height:1.35;color:var(--ink-2)}ol.steps li:before{content:counter(step);flex:none;width:24px;height:24px;border-radius:50%;background:var(--accent-dot);border:1px solid var(--accent-edge);color:var(--accent);font:500 12px/22px var(--mono);text-align:center}ol.steps.intro li{font-size:15px;line-height:1.4;color:#b9c1c8}ol.steps.intro li:before{width:26px;height:26px;line-height:24px}ul.bullets{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}ul.bullets li{display:flex;gap:12px;font-size:15px;line-height:1.4;color:var(--ink-body)}ul.bullets li:before{content:"";flex:none;margin-top:7px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.checks{display:flex;flex-direction:column;gap:12px}.card.check{flex-direction:row;align-items:center;gap:14px}.check-mark{flex:none;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--accent);color:var(--accent);display:grid;place-items:center;font-size:14px;font-weight:700}.check-text{display:flex;flex-direction:column;gap:3px;font-size:13px;line-height:1.35;color:var(--ink-mid)}.check-title{font-size:15px;font-weight:500;color:var(--ink)}.card.warn .check-mark{border-color:var(--warn);color:var(--warn)}.card.warn .check-title{color:var(--warn)}.card.warn .check-text{color:var(--warn-ink)}.done-mark{width:74px;height:74px;margin-top:14px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:34px;font-weight:700}.done-mark.quiet{background:var(--raised);border:1px solid var(--raised-edge);color:var(--ink-dim)}button,a.button{font:inherit;color:var(--ink-2);cursor:pointer;touch-action:manipulation}.btn{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:var(--tap);padding:17px 19px;border-radius:16px;border:1px solid var(--raised-edge);background:var(--raised);color:var(--ink-2);font:500 17px/1.2 var(--sans);text-align:center;text-decoration:none;cursor:pointer;touch-action:manipulation;transition:background .12s ease,border-color .12s ease,transform 60ms ease}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}.btn.small{min-height:48px;padding:14px;border-radius:14px;font-size:15px}.btn.muted{color:var(--ink-dim)}.btn.danger{color:var(--bad)}.btn:active,.option:active{transform:scale(.985)}.btn:disabled{opacity:.5}.link{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:none;color:var(--accent);font:400 14px var(--sans);cursor:pointer}.link.dim{color:var(--ink-dim)}.link.center{align-self:center}.buttons>.link,.buttons>.row-between .link{font-size:15px}:is(button,a,label):focus-visible,label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}label>input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}label.link{position:relative}.option{position:relative;display:flex;flex-direction:column;gap:6px;width:100%;padding:22px;border-radius:20px;border:1px solid var(--panel-edge);background:var(--panel);color:var(--ink);text-align:left;font:inherit;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform 60ms ease}.option-title{font-size:20px;font-weight:700;color:var(--ink)}.option-title.small{font-size:19px}.option-text{font-size:14px;line-height:1.4;color:var(--ink-dim)}.option.filled{background:var(--accent);border-color:var(--accent)}.option.filled .option-title{color:var(--accent-ink)}.option.filled .option-text{color:var(--accent-sub);font-weight:500}.options{display:flex;flex-direction:column;gap:16px}.option[role=radio]{gap:10px;padding:20px}.option[role=radio] .option-title{font-size:19px}.option[role=radio] .option-text{font-size:15px;line-height:1.45}.option[aria-checked=true]{background:var(--accent-bg);border-color:var(--accent);box-shadow:inset 0 0 0 .5px var(--accent)}.option[aria-checked=true] .option-text{color:var(--ink-body)}.option-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.badge{font:500 11px var(--mono);letter-spacing:.12em;color:var(--accent-ink);background:var(--accent);padding:5px 9px;border-radius:20px}.facts{display:flex;flex-wrap:wrap;gap:4px 14px;font:13px var(--mono);color:var(--ink-mid)}.option[aria-checked=true] .facts>:first-child{color:var(--accent)}.recent-list{display:flex;flex-direction:column;gap:10px;padding-top:6px}.recent{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;background:var(--quiet);border:1px solid var(--quiet-edge);border-radius:14px}.recent-text{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:12px}.recent .link{flex:none;font-size:13px}.progress{display:flex;flex-direction:column;gap:12px}.pct-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.pct-row>:last-child{font:13px var(--mono);color:var(--ink-dim)}.pct{font:700 30px/1 var(--mono);font-variant-numeric:tabular-nums;color:var(--ink)}.pct.huge{font-size:46px}.pct.dim{color:var(--ink-faint)}.bar{height:8px;border-radius:4px;background:var(--line);overflow:hidden}.bar>span{display:block;width:0;height:100%;border-radius:4px;background:var(--accent);transition:width .2s ease}.bar.warn>span{background:var(--warn)}.meta{display:flex;justify-content:space-between;gap:12px;font:13px var(--mono);color:var(--ink-mid)}.meta>:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta>:last-child{flex:none}.meta.tech{font-size:12px;color:var(--ink-faint);padding-top:8px;border-top:1px solid var(--line)}.meter{display:flex;align-items:flex-end;gap:4px;height:34px}.meter i{flex:1;height:100%;border-radius:2px;background:var(--accent);transform-origin:bottom;animation:level 1.1s ease-in-out infinite alternate}.meter i:nth-child(2n){animation-duration:.8s;height:75%}.meter i:nth-child(3n){animation-duration:1.4s;animation-delay:-.5s;height:55%}.meter i:nth-child(n+9){background:var(--accent-edge)}.card.roomy .meter{height:44px}@keyframes level{0%{transform:scaleY(.35)}to{transform:scaleY(1)}}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}details.settings{border-top:1px solid var(--quiet-edge);padding-top:6px}details.settings summary{display:flex;justify-content:space-between;align-items:center;min-height:44px;font-size:14px;color:var(--ink-dim);cursor:pointer;list-style:none}details.settings summary .mono{font-size:13px}details summary::-webkit-details-marker{display:none}.settings-body{display:flex;flex-direction:column;gap:16px;padding:8px 0 4px}.setting{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ink-dim)}select{font:inherit;font-size:15px;width:100%;background:var(--raised);color:var(--ink-2);border:1px solid var(--raised-edge);border-radius:12px;padding:10px 12px;min-height:44px}details.tech{border-top:1px solid var(--line);padding-top:4px;font-size:13px}details.tech summary{min-height:40px;display:flex;align-items:center;color:var(--ink-faint);cursor:pointer;list-style:none}details.tech summary:before{content:"▸ "}details.tech[open] summary:before{content:"▾ "}details.tech[open]{display:flex;flex-direction:column;gap:10px}dl{margin:0;display:grid;gap:6px}.row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.row dt{color:var(--ink-faint);font-size:13px;margin:0}.row dd{margin:0;font-size:13px;font-family:var(--mono);color:var(--ink-2)}.sheet-back{position:fixed;inset:0;z-index:20;background:#040608bf;display:flex;align-items:flex-end;justify-content:center;padding:0 14px max(16px,env(safe-area-inset-bottom))}.sheet{width:100%;max-width:480px;background:#0c1015;border:1px solid var(--glass-edge);border-radius:26px;padding:24px;display:flex;flex-direction:column;gap:16px}.sheet-title{font-size:22px;font-weight:700;line-height:1.25;color:var(--ink)}.sheet p{font-size:15px;line-height:1.45}.buttons .btn.small{font-size:16px;padding:15px}.screen.live{position:fixed;inset:0;z-index:1;background:#000;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"top" "stage" "bottom";gap:12px;padding:max(14px,env(safe-area-inset-top)) 14px max(16px,env(safe-area-inset-bottom))}.live>.top{grid-area:top}.live>.stage{grid-area:stage}.live>.bottom{grid-area:bottom;max-height:72vh;max-height:72dvh;overflow-y:auto}.live .card.top,.live .card.bottom{background:var(--glass);border-color:var(--glass-edge);border-radius:22px;padding:16px 18px;gap:12px}.live .card.top{gap:8px}.live .card.top.good{border-color:var(--accent-edge)}.live .card.top.warn{border-color:var(--warn-edge)}.live .card.compact{padding:10px 12px}.live .card.compact p{font-size:12px;line-height:1.4}.live.stalled .card.bottom{background:#0c1015;border-radius:26px;padding:22px}.headline,.card .headline{font-size:20px;font-weight:700;line-height:1.25;color:var(--ink)}.stalled{display:flex;flex-direction:column;gap:16px}.stalled .buttons{gap:10px}.desk-only{display:none}.stage{position:relative;min-width:0;min-height:0}.sending .stage canvas.beam{position:absolute;inset:0;width:100%;height:100%;margin:0;object-fit:contain;border-radius:0;background:transparent}.viewfinder{display:grid;place-items:center;container-type:size;overflow:hidden}.viewfinder .frame{position:relative;aspect-ratio:var(--camera-aspect, 3 / 4);width:min(100cqw,calc(100cqh * var(--camera-aspect, .75)));border-radius:20px;overflow:hidden;background:linear-gradient(160deg,#15171a,#0b0c0e 60%,#121417)}.viewfinder video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}.reticle{position:absolute;inset:8%;border:2px solid rgba(255,255,255,.35);border-radius:20px;pointer-events:none;transition:border-color .2s ease,box-shadow .2s ease}.reticle.locked{border:2.5px solid var(--accent);box-shadow:0 0 0 6px #4fd1c529}.reticle.lost{border:2.5px solid var(--warn)}.beacon-wrap{display:flex;flex-direction:column;align-items:center;gap:8px}canvas.beacon{width:200px;max-width:60%;height:auto;border-radius:6px;display:block;image-rendering:pixelated}.screen.split{position:fixed;inset:0;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:0;background:var(--bg)}.hero{padding:44px 48px;display:flex;flex-direction:column;gap:26px;border-right:1px solid var(--quiet-edge);overflow-y:auto}.hero .lede{max-width:440px;font-size:17px;line-height:1.5;color:var(--ink-mid)}.hero .hint{max-width:440px;font-size:14px;line-height:1.5}.split .side{padding:44px 40px;display:flex;flex-direction:column;gap:18px;background:var(--side);overflow-y:auto}.split .side .option[role=radio] .option-title{font-size:18px}.split .side .option[role=radio] .option-text{font-size:14px}.dropzone{position:relative;max-width:440px;padding:36px;border:1px dashed #2b323a;border-radius:18px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:border-color .12s ease,background .12s ease}.hero .dropzone{flex:1;max-width:none;min-height:240px;justify-content:center}.dropzone:hover,.dragging .dropzone{border-color:var(--accent);background:#4fd1c50a}.zone-title{font-size:17px;font-weight:500;color:var(--ink-2)}.zone-text{font-size:14px;color:var(--ink-faint)}@media(min-width:900px){.screen.live{grid-template-columns:minmax(0,1fr) 400px;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"stage top" "stage bottom";gap:0;padding:0}.live .card.top,.live .card.bottom,.live.stalled .card.bottom{background:var(--side);border:0;border-left:1px solid var(--panel-edge);border-radius:0}.live .card.top{padding:40px 36px 0;gap:14px}.live>.bottom{max-height:none}.live .card.bottom,.live.stalled .card.bottom{padding:22px 36px 40px;gap:22px}.live .card .headline{font-size:26px;line-height:1.2}.live .pct{font-size:34px}.live .desk-only{display:flex;flex-direction:column;gap:16px}.sending .stage canvas.beam{inset:36px;width:calc(100% - 72px);height:calc(100% - 72px)}.camera .viewfinder{padding:24px}.sheet-back{align-items:center}}@media(prefers-reduced-motion:reduce){.meter i,.status:before,.pulse:before{animation:none!important}*{transition-duration:0ms!important}}.note{font-size:13px;color:var(--ink-faint);line-height:1.5}.note strong{color:var(--warn);font-weight:600}.lede.good{color:var(--accent)}.lede.bad{color:var(--bad)}.pulse{display:inline-flex;align-items:center;gap:9px;color:var(--ink-dim);font-size:14px}.pulse:before{content:"";width:9px;height:9px;border-radius:99px;background:var(--accent);animation:pulse 1.6s ease-in-out infinite}.pulse.warn:before{background:var(--warn)}label.file-drop{position:relative;border:1px dashed #2b323a;border-radius:18px;padding:32px 20px;text-align:center;cursor:pointer;display:block;color:var(--ink-dim)}label.file-drop:hover{border-color:var(--accent);color:var(--ink)}canvas.beam{width:100%;aspect-ratio:auto;border-radius:14px;background:#000;display:block;image-rendering:pixelated}@media(min-width:700px){.screen:not(.live) canvas.beam{width:min(96vw,150vh);margin-left:calc(50% - min(48vw,75vh))}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
