@font-face{font-family:Outfit;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/outfit-var.woff2)format("woff2-variations")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font-display:"Outfit", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-text:var(--font-display);--font-data:ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;--t-display:clamp(1.625rem, 1.25rem + 1.9vw, 2.5rem);--t-title:clamp(1.0625rem, 1rem + .4vw, 1.3125rem);--t-body:1rem;--t-small:.875rem;--t-micro:.75rem;--lh-tight:1.1;--lh-snug:1.3;--lh-body:1.55;--track-label:.09em;--track-display:-.02em;--w-regular:400;--w-medium:500;--w-bold:600;--canvas:#f5f4f2;--paper:#fff;--sunken:#eeece9;--ink:#1e1d1b;--ink-2:#6f6c67;--ink-3:#9c9892;--rule:#e4e1dd;--rule-strong:#cdc9c3;--brand:#6a63e0;--brand-ink:#fff;--brand-soft:#6a63e01f;--danger:#c0392f;--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4rem;--s-9:6rem;--tap:44px;--r-1:8px;--r-2:12px;--r-3:18px;--r-4:28px;--r-pill:999px;--hair:1px;--focus-w:2px;--focus-offset:3px;--dur-1:.12s;--dur-2:.2s;--ease:cubic-bezier(.2, 0, 0, 1);--measure:34rem;--page-pad:var(--s-4)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--canvas:#151412;--paper:#201f1d;--sunken:#191816;--ink:#fff;--ink-2:#a5a19b;--ink-3:#6e6a65;--rule:#302e2b;--rule-strong:#43403c;--brand:#8b84ff;--brand-ink:#16142e;--brand-soft:#8b84ff26;--danger:#ff6b5e}}:root[data-theme=dark]{--canvas:#151412;--paper:#201f1d;--sunken:#191816;--ink:#fff;--ink-2:#a5a19b;--ink-3:#6e6a65;--rule:#302e2b;--rule-strong:#43403c;--brand:#8b84ff;--brand-ink:#16142e;--brand-soft:#8b84ff26;--danger:#ff6b5e}:root[data-theme=light]{--canvas:#f5f4f2;--paper:#fff;--sunken:#eeece9;--ink:#1e1d1b;--ink-2:#6f6c67;--ink-3:#9c9892;--rule:#e4e1dd;--rule-strong:#cdc9c3;--brand:#6a63e0;--brand-ink:#fff;--brand-soft:#6a63e01f;--danger:#c0392f}@media (min-width:768px){:root{--page-pad:var(--s-6)}}@media (min-width:1024px){:root{--page-pad:var(--s-7)}}@media (prefers-reduced-motion:reduce){:root{--dur-1:1ms;--dur-2:1ms}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--canvas);color:var(--ink);font-family:var(--font-text);font-size:var(--t-body);line-height:var(--lh-body);font-weight:var(--w-regular);-webkit-font-smoothing:antialiased;margin:0}main{max-width:var(--measure);padding:var(--page-pad) var(--s-4) var(--s-8);margin:0 auto}main.wide{max-width:none;padding:var(--s-2) var(--s-2) var(--s-5)}.masthead{justify-content:space-between;align-items:center;gap:var(--s-4);display:flex}header h1{margin:0;line-height:0}header h1 img{width:auto;height:clamp(1.5rem,1.1rem + 1.8vw,2.25rem);display:block}.theme-toggle{align-items:center;gap:var(--s-2);min-height:var(--tap);padding:0 var(--s-3);font:inherit;font-size:var(--t-small);color:var(--ink-2);border:var(--hair) solid var(--rule);border-radius:var(--r-pill);cursor:pointer;transition:color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);background:0 0;flex:none;display:inline-flex}.theme-toggle:hover{color:var(--ink);border-color:var(--brand)}.theme-glyph{font-size:1rem;line-height:1}@media (max-width:479px){.theme-label{display:none}}.tagline{margin:var(--s-2) 0 var(--s-6);max-width:28rem}.tagline,.hint{color:var(--ink-2);font-size:var(--t-small)}.card{background:var(--paper);border:var(--hair) solid var(--rule);border-radius:var(--r-3);padding:var(--s-5)}.card h2{margin:0 0 var(--s-4);font-family:var(--font-display);font-size:var(--t-title);font-weight:var(--w-medium);line-height:var(--lh-snug)}hr{margin:var(--s-5) 0 var(--s-4);border:0;border-top:var(--hair) solid var(--rule)}footer{margin-top:var(--s-6);text-align:center}footer a{color:var(--ink-3);font-size:var(--t-micro);cursor:default;text-decoration:none}.row{gap:var(--s-2);margin:var(--s-4) 0 0;flex-wrap:wrap;display:flex}button,a.button{min-height:var(--tap);padding:0 var(--s-5);font:inherit;font-weight:var(--w-medium);color:var(--ink);border:var(--hair) solid var(--rule-strong);border-radius:var(--r-2);cursor:pointer;transition:background var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);background:0 0;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}button:hover:not(:disabled),a.button:hover{border-color:var(--ink)}button.primary,a.button.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}button.primary:hover:not(:disabled),a.button.primary:hover{opacity:.88}button:hover:not(:disabled):not(.primary),a.button:hover:not(.primary){border-color:var(--brand);background:var(--brand-soft)}button:disabled{color:var(--ink-3);border-color:var(--rule);cursor:not-allowed}button:focus-visible,a:focus-visible,textarea:focus-visible,input:focus-visible,label.drop:focus-within{outline:var(--focus-w) solid var(--brand);outline-offset:var(--focus-offset)}textarea{width:100%;padding:var(--s-3);font:inherit;color:var(--ink);background:var(--sunken);border:var(--hair) solid var(--rule);border-radius:var(--r-2);resize:vertical}textarea::placeholder{color:var(--ink-3)}textarea.mono,.received textarea{font-family:var(--font-data);font-size:var(--t-small)}.status{align-items:center;gap:var(--s-2);font-weight:var(--w-medium);display:flex}.status .dot{border-radius:var(--r-pill);background:var(--ink-3);flex:none;width:.5rem;height:.5rem}.status-waiting .dot,.status-transferring .dot{background:var(--brand);animation:pulse 1.4s var(--ease) infinite}.status-connected .dot,.status-done .dot{background:var(--ink)}.status-error .dot{background:var(--danger)}@keyframes pulse{50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.status .dot{animation:none}}.bar{margin:var(--s-4) 0 var(--s-2);border-radius:var(--r-pill);background:var(--rule);height:.375rem;overflow:hidden}.bar-fill{background:var(--brand);height:100%;transition:width var(--dur-1) linear}.error{color:var(--danger);font-size:var(--t-small)}.warn{margin:var(--s-4) 0 0;padding:var(--s-1) 0 var(--s-1) var(--s-3);border-left:2px solid var(--danger);font-size:var(--t-small);color:var(--ink-2)}.qr-block{margin-top:var(--s-5);text-align:center}.qr-frame{max-width:100%;padding:var(--s-3);border-radius:var(--r-3);background:#fff;justify-content:center;align-items:center;display:inline-flex}.qr-frame img{width:100%;height:auto;image-rendering:pixelated;display:block}.stage{align-items:center;gap:var(--s-3);flex-direction:column;display:flex}.stage-qr{aspect-ratio:1;border-radius:var(--r-3);background:#fff;justify-content:center;align-items:center;width:min(96vw,82dvh);display:flex;overflow:hidden}.stage-qr canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.stage:fullscreen{background:var(--canvas);padding:var(--s-2);justify-content:center}.stage:fullscreen .stage-qr{width:min(98vw,88dvh)}.stage-info{align-items:center;gap:var(--s-1);text-align:center;max-width:100%;font-size:var(--t-small);font-variant-numeric:tabular-nums;flex-direction:column;display:flex}.stage-info .ellipsis{vertical-align:bottom;max-width:14rem;display:inline-block}.stage-controls{margin-top:var(--s-2);justify-content:center}.stage .warn{max-width:var(--measure);text-align:left}.scanner{margin-top:var(--s-4);aspect-ratio:1;border-radius:var(--r-3);background:#000;position:relative;overflow:hidden}.scanner video{object-fit:cover;width:100%;height:100%;display:block}.scanner-frame{border-radius:var(--r-2);pointer-events:none;border:2px dashed #ffffffd9;position:absolute}.drop{align-items:center;gap:var(--s-1);margin-top:var(--s-3);padding:var(--s-5);border:var(--hair) dashed var(--rule-strong);border-radius:var(--r-2);text-align:center;font-size:var(--t-small);cursor:pointer;transition:border-color var(--dur-1) var(--ease), background var(--dur-1) var(--ease);flex-direction:column;display:flex}.drop:hover,.drop.dragging{border-color:var(--ink);background:var(--sunken)}.chosen-file,.file-result{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3);background:var(--sunken);border:var(--hair) solid var(--rule);border-radius:var(--r-2);display:flex}.file-result{margin-top:var(--s-2);display:block}.chosen-file strong,.file-result strong{font-weight:var(--w-bold);word-break:break-all}.preview{max-width:100%;max-height:20rem;margin:var(--s-2) 0;object-fit:contain;background:var(--sunken);border-radius:var(--r-2);display:block}.received{margin-top:var(--s-5)}.received label,.sas-label{margin-bottom:var(--s-2);color:var(--ink-2);font-size:var(--t-micro);font-weight:var(--w-medium);text-transform:uppercase;letter-spacing:var(--track-label);display:block}.sas{margin-top:var(--s-5);padding:var(--s-4);border:var(--hair) dashed var(--rule-strong);border-radius:var(--r-2);text-align:center}.sas-emoji{letter-spacing:.15em;font-size:1.75rem}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}main>.card+.card{margin-top:var(--s-5)}.section-label{margin-bottom:var(--s-2);color:var(--brand);font-size:var(--t-micro);font-weight:var(--w-medium);text-transform:uppercase;letter-spacing:var(--track-label);display:block}.field{align-items:center;gap:var(--s-2) var(--s-4);margin-top:var(--s-4);grid-template-columns:1fr auto;display:grid}.field-label{color:var(--ink-2);font-size:var(--t-micro);font-weight:var(--w-medium);text-transform:uppercase;letter-spacing:var(--track-label);grid-column:1/-1}.field input[type=range]{width:100%;accent-color:var(--brand)}.field-value{font-variant-numeric:tabular-nums;font-weight:var(--w-medium)}.knocks{margin-top:var(--s-5);padding:var(--s-4);background:var(--brand-soft);border:var(--hair) solid var(--brand);border-radius:var(--r-2)}.knock{justify-content:space-between;align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.knock .row{margin:0}.tag{font-family:var(--font-data);font-size:var(--t-micro);letter-spacing:.08em;color:var(--ink-3)}.chip-tag{margin-left:var(--s-2);color:var(--ink-3)}.text-input{width:100%;padding:var(--s-3);font:inherit;color:var(--ink);background:var(--sunken);border:var(--hair) solid var(--rule);border-radius:var(--r-2);grid-column:1/-1}.text-input::placeholder{color:var(--ink-3)}.roster{gap:var(--s-2);margin-top:var(--s-4);flex-wrap:wrap;display:flex}.chip{padding:.2rem var(--s-3);border:var(--hair) solid var(--rule-strong);border-radius:var(--r-pill);font-family:var(--font-data);font-size:var(--t-micro);letter-spacing:.06em}.chip-host{border-color:var(--brand);color:var(--brand)}.composer{margin-top:var(--s-5);padding-top:var(--s-5);border-top:var(--hair) solid var(--rule)}label.button{min-height:var(--tap);padding:0 var(--s-5);font-weight:var(--w-medium);border:var(--hair) solid var(--rule-strong);border-radius:var(--r-2);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}label.button:hover{border-color:var(--brand);background:var(--brand-soft)}.feed{margin:var(--s-5) 0 0;gap:var(--s-3);flex-direction:column;padding:0;list-style:none;display:flex}.feed-item{padding:var(--s-4);background:var(--sunken);border:var(--hair) solid var(--rule);border-radius:var(--r-2)}.feed-item.mine{border-left:3px solid var(--brand)}.feed-head{justify-content:space-between;align-items:baseline;gap:var(--s-3);margin-bottom:var(--s-2);display:flex}.feed-item pre{margin:0 0 var(--s-3);white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:var(--t-small);padding:0}.feed-item pre.mono{font-family:var(--font-data)}@media (max-width:479px){.row{flex-direction:column;align-items:stretch}.row button,.row a.button{width:100%}.stage-controls{flex-direction:row}.stage-controls button{flex:1;width:auto}}@media (hover:none){button:hover:not(:disabled),a.button:hover,.drop:hover{border-color:var(--rule-strong);background:0 0}}
