@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#000;--bg-1:#0a0a0a;--bg-2:#111;--bg-3:#1a1a1a;--border:#1f1f1f;--border-2:#2e2e2e;--fg:#ededed;--muted:#a1a1a1;--subtle:#6b6b6b;--brand:#ffec40;--brand-2:#f9bc12;--live:#3ddc84;--danger:#ff5c5c;--radius:8px;--font:"Geist Variable", ui-sans-serif, system-ui, -apple-system, sans-serif;--mono:"Geist Mono Variable", ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font);color:var(--fg);background:var(--bg);font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);margin:0;font-size:14px;line-height:1.5}button,input,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}code{font-family:var(--mono);color:var(--fg);font-size:.92em}.hidden{display:none!important}.mono{font-family:var(--mono);font-feature-settings:"zero" 0}.muted{color:var(--muted)}.small{font-size:12px}.spacer{flex:1}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.error{color:var(--danger);font-size:13px}.btn{border:1px solid var(--border-2);background:var(--bg-1);height:36px;color:var(--fg);cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:500;transition:background .15s,border-color .15s,color .15s,opacity .15s;display:inline-flex}.btn:hover{background:var(--bg-3);border-color:#3a3a3a}.btn:disabled{opacity:.5;cursor:default}.btn:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #fff3}.btn-primary{background:var(--fg);color:#000;border-color:var(--fg)}.btn-primary:hover{background:#fff;border-color:#fff}.btn-danger{background:var(--danger);border-color:var(--danger);color:#000}.btn-danger:hover{background:#ff7a7a;border-color:#ff7a7a}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--bg-3);color:var(--fg);border-color:#0000}.btn-danger-ghost{color:var(--danger);background:0 0;border-color:#0000}.btn-danger-ghost:hover{background:#ff5c5c1a;border-color:#0000}.danger-text{color:var(--danger)}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-xs{border-radius:5px;height:26px;padding:0 8px;font-size:12px}.btn-icon{width:36px;padding:0}.btn-icon.btn-xs{width:26px}.btn-block{width:100%}.topbar{border-bottom:1px solid var(--border);background:var(--bg);z-index:2;align-items:center;gap:12px;height:56px;padding:0 20px;display:flex;position:relative}.brand{letter-spacing:-.01em;align-items:center;gap:10px;font-weight:600;display:inline-flex}.brand-suffix{font-family:var(--mono);color:var(--muted);border:1px solid var(--border-2);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:400}.crumb-sep{color:var(--border-2);font-size:20px;font-weight:200}.crumb{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.pill{border:1px solid var(--border);height:28px;color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.tag{background:var(--bg-3);height:20px;color:var(--muted);font-size:11px;font-family:var(--mono);border-radius:4px;align-items:center;gap:6px;padding:0 7px;display:inline-flex}.tag-live{color:var(--live);background:#3ddc8414}.live-dot,.idle-dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.live-dot{background:var(--live);animation:2s infinite pulse;box-shadow:0 0 #3ddc8466}.idle-dot{background:var(--subtle)}.idle-dot.pending{background:var(--brand-2)}@keyframes pulse{0%{box-shadow:0 0 #3ddc8466}70%{box-shadow:0 0 0 6px #3ddc8400}to{box-shadow:0 0 #3ddc8400}}.avatar{background:linear-gradient(135deg, var(--brand), var(--brand-2));color:#000;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:inline-grid}.card{background:var(--bg-1);border:1px solid var(--border);border-radius:12px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>span{color:var(--muted);font-size:13px}input,select{border:1px solid var(--border-2);background:var(--bg);border-radius:6px;width:100%;min-width:0;height:36px;padding:0 10px;transition:border-color .15s}input:hover,select:hover{border-color:#3a3a3a}input:focus,select:focus{border-color:#555;outline:none}.input-prefix{border:1px solid var(--border-2);background:var(--bg);border-radius:6px;align-items:stretch;display:flex;overflow:hidden}.input-prefix>span{color:var(--subtle);align-items:center;padding:0 2px 0 10px;font-size:13px;display:flex}.input-prefix input{border:0;padding-left:0}.input-prefix:focus-within{border-color:#555}.home{background:radial-gradient(ellipse 80% 50% at 50% -10%, #ffec400d, transparent 70%), var(--bg);min-height:100%}.home-main{max-width:760px;margin:0 auto;padding:88px 20px 64px}.home-main h1{letter-spacing:-.045em;font-size:clamp(32px,6vw,52px);font-weight:650;line-height:1.05}.lead{max-width:520px;margin-top:18px;font-size:16px}.home-rooms{gap:10px;margin-top:48px;display:grid}.home-room{justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;transition:border-color .15s,background .15s;display:flex}.home-room:hover{border-color:var(--border-2);background:var(--bg-2)}.home-room h2{font-size:15px;font-weight:600}.home-room-meta{align-items:center;gap:8px;display:flex}.empty{text-align:center;justify-items:center;gap:12px;padding:28px;display:grid}.empty a{color:var(--fg);text-underline-offset:3px;text-decoration:underline}.room-page{flex-direction:column;height:100%;display:flex}.room-main{flex-direction:column;flex:1;gap:14px;min-height:0;padding:16px 20px 20px;display:flex}.stage{border:1px solid var(--border);isolation:isolate;background:#050505;border-radius:12px;flex:1;min-height:240px;position:relative;overflow:hidden}.stage.is-fullscreen{background:#000;border:0;border-radius:0}.stage.idle{cursor:none}.stage.kiosk{cursor:none;position:fixed;inset:0}.media-host,.media-host>*,.stage>.media-surface{width:100%;height:100%;position:absolute;inset:0}.media-surface{object-fit:contain;background:#000;display:block}.stage-badge{z-index:3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#000a;border:1px solid #ffffff14;border-radius:999px;align-items:center;gap:8px;height:28px;padding:0 11px;font-size:12px;font-weight:500;transition:opacity .3s;display:inline-flex;position:absolute;top:14px;left:14px}.stage-caption{text-align:center;z-index:2;color:var(--subtle);letter-spacing:.02em;pointer-events:none;padding:0 20px;font-size:12px;position:absolute;bottom:84px;left:0;right:0}.dock{z-index:4;-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);background:#0a0a0acc;border:1px solid #ffffff14;border-radius:12px;align-items:center;gap:6px;padding:6px;transition:opacity .3s,transform .3s;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0008}.stage.idle .dock,.stage.idle .stage-badge{opacity:0;pointer-events:none}.stage.idle .dock{transform:translate(-50%,8px)}.dock .btn:not(.btn-primary):not(.btn-danger){background:0 0;border-color:#0000}.dock .btn:not(.btn-primary):not(.btn-danger):hover{background:#ffffff12}.volume{align-items:center;gap:4px;padding-right:8px;display:flex}.volume input[type=range]{appearance:none;cursor:pointer;background:linear-gradient(to right, var(--fg) var(--value), #ffffff2e var(--value));border:0;border-radius:4px;width:120px;height:4px;padding:0}.volume input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border:0;border-radius:50%;width:14px;height:14px;box-shadow:0 1px 4px #0006}.volume input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:14px;height:14px}.toast{z-index:5;background:var(--bg-2);border:1px solid var(--border-2);border-radius:8px;padding:10px 14px;font-size:13px;position:absolute;top:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0008}.ended{z-index:6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000c;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.ended-card{text-align:center;justify-items:center;gap:10px;max-width:380px;display:grid}.ended-card h2{letter-spacing:-.02em;font-size:20px}.ended-card p{color:var(--muted);margin-bottom:8px}.room-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:16px;font-size:13px;display:flex}.room-status{align-items:center;gap:8px;display:flex}.room-status b{color:var(--fg);font-weight:500}.room-people{flex-wrap:wrap;flex:1;gap:6px;min-width:0;display:flex}.person{border:1px solid var(--border);height:24px;color:var(--muted);border-radius:999px;align-items:center;padding:0 9px;font-size:12px;display:inline-flex}.person.presenting{color:var(--live);border-color:#3ddc8433}.room-quality{color:var(--subtle);font-size:11px}.name-chip{border:1px solid var(--border);cursor:pointer;height:32px;color:var(--fg);background:0 0;border-radius:999px;align-items:center;gap:8px;max-width:220px;padding:0 10px 0 5px;font-size:13px;display:inline-flex}.name-chip svg{color:var(--subtle);flex:none}.name-chip:hover{border-color:var(--border-2);background:var(--bg-2)}.name-chip.editing{border:0;padding:0}.name-chip.editing input{border-radius:999px;width:200px;height:32px;padding:0 12px}.screensaver{z-index:1;background:radial-gradient(#0b0b0b 0%,#000 75%);position:absolute;inset:0;overflow:hidden}.screensaver-logo{will-change:transform;width:clamp(150px,24%,440px);transition:filter .4s;position:absolute;top:0;left:0}.screensaver-logo img{-webkit-user-select:none;user-select:none;opacity:.92;width:100%;height:auto;display:block}.screensaver-logo.celebrating{filter:drop-shadow(0 0 24px #ffec4099)}.screensaver-confetti{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.admin-page{min-height:100%}.admin-main{gap:16px;max-width:1040px;margin:0 auto;padding:40px 20px 80px;display:grid}.admin-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:8px;display:flex}.admin-head h1{letter-spacing:-.035em;font-size:28px;font-weight:650}.admin-head p{margin-top:4px;font-size:12px}.admin-main>.card{padding:20px}.conn{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.conn-dot{background:var(--subtle);border-radius:50%;width:6px;height:6px}.conn.open .conn-dot{background:var(--live)}.conn.closed .conn-dot{background:var(--danger)}.room-list{gap:12px;display:grid}.room-card{padding:0;overflow:hidden}.room-card-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 14px;display:flex}.room-card-title h2{letter-spacing:-.01em;align-items:center;gap:8px;font-size:16px;font-weight:600;display:flex}.room-link{color:var(--muted);align-items:center;gap:2px;margin-top:2px;font-size:12px;display:flex}.room-link a:hover{color:var(--fg);text-underline-offset:3px;text-decoration:underline}.room-card-actions{gap:6px;display:flex}.stats{border-top:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.stat{gap:4px;min-width:0;padding:12px 20px;display:grid}.stat+.stat{border-left:1px solid var(--border)}.stat-label{color:var(--subtle);font-size:12px}.stat-value{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.stat-value.warn{color:var(--brand-2)}.presenting-now{align-items:center;gap:8px;display:inline-flex}.room-card-edit{border-top:1px solid var(--border);background:var(--bg);padding:20px}.participants{border-top:1px solid var(--border);padding:12px 20px 16px}.participants-head{justify-content:space-between;align-items:center;height:26px;margin-bottom:6px;display:flex}.participants ul{margin:0;padding:0;list-style:none;display:grid}.participants li{border-bottom:1px solid var(--border);align-items:center;gap:10px;height:40px;display:flex}.participants li:last-child{border-bottom:0}.participant-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.room-card>.error{padding:0 20px 14px}.room-form{gap:18px;display:grid}.grid-3{grid-template-columns:1.3fr 1.3fr .8fr;gap:12px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.segmented{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.segmented.segmented-2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:480px}.segmented button{text-align:left;border:1px solid var(--border-2);background:var(--bg);cursor:pointer;border-radius:8px;gap:2px;padding:10px 12px;transition:border-color .15s,background .15s;display:grid}.segmented button:hover{border-color:#3a3a3a}.segmented button.active{border-color:var(--fg);background:var(--bg-2);box-shadow:0 0 0 1px var(--fg) inset}.segmented b{font-size:13px;font-weight:500}.segmented small{color:var(--subtle);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.login{background:radial-gradient(ellipse 60% 40% at 50% 0%, #ffec400a, transparent 70%), var(--bg);place-items:center;min-height:100%;padding:20px;display:grid}.login-card{gap:14px;width:100%;max-width:360px;padding:28px;display:grid}.login-card h1{letter-spacing:-.02em;margin-top:18px;font-size:20px}.login-card .muted{margin-top:-8px;margin-bottom:4px}@media (width<=760px){.topbar{gap:8px;padding:0 16px}.brand span:not(.brand-suffix){display:none}.room-main{padding:12px 16px 16px}.stage{min-height:56vw}.stats{grid-template-columns:1fr}.stat+.stat{border-left:0;border-top:1px solid var(--border)}.grid-3,.grid-4{grid-template-columns:1fr}.segmented{grid-template-columns:repeat(2,minmax(0,1fr))}.room-card-head{flex-direction:column}.volume input[type=range]{width:80px}.dock{max-width:calc(100% - 24px)}.name-chip{max-width:150px;overflow:hidden}.room-quality{display:none}}
