@font-face{font-family:Fraunces;src:url(/fonts/fraunces-var.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-var.woff2) format("woff2");font-weight:100 900;font-display:swap}:root{--paper: #fdfcfa;--ink: #191621;--ink-soft: rgba(25, 22, 33, .62);--ink-faint: rgba(25, 22, 33, .38);--hairline: rgba(25, 22, 33, .14);--pillar: #8A6D97;--pillar-tint: rgba(138, 109, 151, .09);--pillar-soft: rgba(138, 109, 151, .35);--card: #ffffff;--inset: #f6f4f7;--display: "Fraunces", Georgia, serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5}body.hide-cursor,body.hide-cursor *{cursor:none!important}a{color:var(--pillar)}button{font:inherit;font-family:var(--sans);color:var(--ink);background:var(--card);border:1px solid var(--hairline);border-radius:9px;padding:6px 13px;cursor:pointer}button:hover{border-color:var(--pillar)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--pillar);outline-offset:1px}button.linklike{background:none;border:none;color:var(--pillar);text-decoration:underline;text-underline-offset:3px;padding:2px 6px}button.x{background:none;border:none;color:var(--ink-faint);font-size:16px;padding:0 6px}input[type=text],input[type=search],input[type=password],input[type=number]{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--hairline);border-radius:9px;padding:8px 11px}input[type=number]{width:5.5em}input[type=range]{accent-color:var(--pillar);flex:1;min-width:100px}input[type=color]{width:30px;height:30px;padding:0;border:1px solid var(--hairline);border-radius:9px;background:none;cursor:pointer}select{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--hairline);border-radius:9px;padding:7px 10px}.hint{color:var(--ink-soft);font-size:13px}.warn{color:var(--pillar);font-size:13px}.kbd{font-size:11px;border:1px solid var(--hairline);border-radius:4px;padding:1px 5px;opacity:.75;margin-left:6px}.handle-line{font-family:var(--sans);font-weight:500;font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--ink-soft)}.dotbar{position:relative;display:inline-flex;gap:12px;height:10px;align-items:center}.dotbar-ring{width:9px;height:9px;border-radius:50%;border:1.6px solid var(--pillar)}.dotbar-solid{position:absolute;left:0;top:50%;width:9px;height:9px;border-radius:50%;background:var(--pillar);border:1.6px solid var(--pillar);transform:translate(42px,-50%)}.dotbar.animate .dotbar-solid{animation:dot-sweep 6.8s infinite}@keyframes dot-sweep{0%{transform:translateY(-50%);animation-timing-function:steps(1,end)}29.4%{transform:translateY(-50%);animation-timing-function:ease-in-out}50%{transform:translate(84px,-50%);animation-timing-function:steps(1,end)}79.4%{transform:translate(84px,-50%);animation-timing-function:ease-in-out}to{transform:translateY(-50%)}}@media(prefers-reduced-motion:reduce){.dotbar.animate .dotbar-solid{animation:none}}.arc-texture{background-image:url(/brand/arcs.svg);background-repeat:no-repeat;background-position:top right;background-size:720px auto}.stage{position:relative;overflow:hidden;background-size:cover;background-position:center}.stage-dim{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000004d}.stage-full{position:fixed;top:0;right:0;bottom:0;left:0}.stage-preview{width:100%;aspect-ratio:16 / 9;border-radius:12px;border:1px solid var(--hairline)}.stimulus{position:absolute;top:0;left:0;width:var(--dot-size, 32px);height:var(--dot-size, 32px);will-change:transform;display:flex;align-items:center;justify-content:center}.stimulus.is-filled{background:currentColor}.stimulus.glow{filter:drop-shadow(0 0 calc(var(--dot-size, 32px) * .45) currentColor) drop-shadow(0 0 calc(var(--dot-size, 32px) * .2) currentColor)}.shape-circle.geo,.stimulus.shape-circle{border-radius:50%}.shape-square.geo,.stimulus.shape-square{border-radius:18%}.shape-diamond.geo,.stimulus.shape-diamond{clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%)}.shape-triangle.geo,.stimulus.shape-triangle{clip-path:polygon(50% 3%,97% 97%,3% 97%)}.shape-star.geo,.stimulus.shape-star{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.shape-heart.geo,.stimulus.shape-heart{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 29.6'%3E%3Cpath d='M23.6,0c-3.4,0-6.3,2.7-7.6,5.6C14.7,2.7,11.8,0,8.4,0C3.8,0,0,3.8,0,8.4c0,9.4,9.5,11.9,16,21.2c6.1-9.3,16-12.1,16-21.2C32,3.8,28.2,0,23.6,0z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 29.6'%3E%3Cpath d='M23.6,0c-3.4,0-6.3,2.7-7.6,5.6C14.7,2.7,11.8,0,8.4,0C3.8,0,0,3.8,0,8.4c0,9.4,9.5,11.9,16,21.2c6.1-9.3,16-12.1,16-21.2C32,3.8,28.2,0,23.6,0z'/%3E%3C/svg%3E") center / contain no-repeat}.shape-bolt.geo,.stimulus.shape-bolt{clip-path:polygon(54% 0%,12% 58%,46% 58%,38% 100%,88% 40%,54% 40%,62% 0%)}.stimulus-emoji{font-size:var(--dot-size, 32px);line-height:1;-webkit-user-select:none;user-select:none}.shape-choices{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.shape-choice{width:34px;height:34px;padding:0;display:flex;align-items:center;justify-content:center;font-size:19px;background:var(--inset)}.shape-choice.on{border-color:var(--pillar);background:var(--pillar-tint)}.shape-sym{font-size:18px;line-height:1;color:var(--ink)}.shape-choice.on .shape-sym{color:var(--pillar)}.client-view{height:100%}.calm-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;background:var(--ink);text-align:center;padding:24px}.calm-screen p{margin:0;font-family:var(--display);font-weight:600;font-size:26px;color:var(--paper)}.calm-screen .hint{font-family:var(--sans);font-size:14px;color:#fdfcfa8c}.calm-screen .dotbar-ring{border-color:#a06e96}.calm-screen .dotbar-solid{background:#a06e96;border-color:#a06e96}.sound-gate{position:fixed;top:0;right:0;bottom:0;left:0;background:#191621d9;border:none;border-radius:0;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:24px;color:var(--paper);z-index:10}.client-brand{position:fixed;bottom:12px;left:0;right:0;text-align:center;font-family:var(--sans);font-weight:500;font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:#fdfcfa59;pointer-events:none;z-index:5}.login-wrap{height:100%;display:flex;align-items:center;justify-content:center;background-color:var(--paper)}.login{width:340px;display:flex;flex-direction:column;gap:14px;background:var(--card);border:1px solid var(--hairline);border-radius:16px;padding:32px;align-items:stretch}.login .dotbar{align-self:center;margin-bottom:4px}.login h1{margin:0;font-family:var(--display);font-weight:700;font-size:30px;line-height:1.15;text-align:center}.login .handle-line{text-align:center;margin-bottom:8px}.login p{margin:0;color:var(--ink-soft);text-align:center}.login button[type=submit]{background:var(--pillar);border-color:var(--pillar);color:#fff;padding:11px;font-weight:600}.panel{max-width:1180px;margin:0 auto;padding:18px 20px 60px;min-height:100%}.panel header{display:flex;align-items:center;gap:12px;margin-bottom:18px}.masthead{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin:0}.masthead-title{font-family:var(--display);font-weight:700;font-size:26px;line-height:1}.masthead .handle-line{font-size:9px;letter-spacing:.28em;white-space:nowrap}.panel header .spacer{flex:1}.badge{font-size:12px;border-radius:999px;padding:3px 11px;border:1px solid var(--hairline);color:var(--ink-soft);background:var(--card)}.badge.ok{color:var(--pillar);border-color:var(--pillar-soft);background:var(--pillar-tint)}.panel-grid{display:grid;grid-template-columns:minmax(380px,1fr) minmax(320px,420px);gap:20px}@media(max-width:900px){.panel-grid{grid-template-columns:1fr}}.panel-left{display:flex;flex-direction:column;gap:14px}.run-row{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}.big-btn{font-size:19px;padding:14px 34px;border-radius:12px;font-weight:600}.big-btn.start{background:var(--pillar);border-color:var(--pillar);color:#fff}.big-btn.stop{background:var(--ink);border-color:var(--ink);color:var(--paper)}.big-btn .kbd{border-color:#fff6}.limits{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.limits>label{color:var(--ink-soft)}.seg{display:inline-flex;border:1px solid var(--hairline);border-radius:10px;overflow:hidden}.seg button{border:none;border-radius:0;background:var(--card);padding:6px 13px}.seg button.on{background:var(--pillar);color:#fff}.counters{display:flex;gap:26px;align-items:baseline;background:var(--card);border:1px solid var(--hairline);border-radius:12px;padding:10px 16px;color:var(--ink-soft)}.counters .num{font-family:var(--display);font-size:24px;font-weight:600;color:var(--ink);margin-right:6px;font-variant-numeric:tabular-nums}.link-box{background:var(--card);border:1px solid var(--hairline);border-radius:12px;padding:12px 16px;display:flex;flex-direction:column;gap:8px}.link-box>label{color:var(--ink-soft);font-size:13px}.room-edit{display:flex;align-items:center;gap:2px;background:var(--inset);border:1px solid var(--hairline);border-radius:8px;padding:4px 8px}.room-prefix{color:var(--ink-soft);font-size:14px;white-space:nowrap}.room-input{flex:1;min-width:0;border:none!important;background:transparent!important;padding:4px 2px!important;font-weight:600;color:var(--pillar)!important}.link-row{display:flex;gap:10px;align-items:center}.link-row code{background:var(--inset);border-radius:8px;padding:6px 10px;overflow-x:auto;white-space:nowrap;flex:1;font-size:14px}.link-actions{display:flex;gap:8px;flex-wrap:wrap}.linklike.danger{color:var(--ink-soft)}.snapshots{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:640px){.snapshots{grid-template-columns:1fr}}.snap-col{background:var(--card);border:1px solid var(--hairline);border-radius:12px;padding:12px 14px}.snap-col h4{margin:0 0 8px;font-family:var(--display);font-weight:600;font-size:16px;text-transform:lowercase}.snap-add{display:flex;gap:8px}.snap-add input{flex:1;min-width:0}.snap-col ul{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:180px;overflow-y:auto}.snap-col li{display:flex;align-items:center;justify-content:space-between}.controls{display:flex;flex-direction:column;gap:14px}.controls section{background:var(--card);border:1px solid var(--hairline);border-radius:12px;padding:12px 16px 14px}.controls h3{margin:0 0 6px;font-family:var(--display);font-weight:600;font-size:17px;text-transform:lowercase}.controls .row{display:flex;align-items:center;gap:10px;margin:9px 0}.controls .row.wrap{flex-wrap:wrap}.controls .row>label:first-child{width:82px;flex-shrink:0;color:var(--ink-soft);font-size:14px}.controls .value{min-width:58px;text-align:right;color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:14px}.toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.toggle input{accent-color:var(--pillar);width:16px;height:16px}.toggle.small{font-size:13px;color:var(--ink-soft)}.swatches{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.swatch{width:26px;height:26px;border-radius:50%;border:2px solid #fff;padding:0;outline:1px solid var(--hairline)}.swatch.on{outline:2px solid var(--pillar)}.emoji-btn{font-size:20px;padding:2px 6px;background:var(--inset)}.emoji-btn.on{border-color:var(--pillar);background:var(--pillar-tint)}.emoji-search{width:100%;display:flex;flex-direction:column;gap:8px;margin-top:6px}.emoji-search input{width:100%}.bg-thumbs{display:flex;gap:6px;flex-wrap:wrap;width:100%;margin-top:6px}.bg-thumb{width:56px;height:36px;border-radius:8px;background-size:cover;background-position:center;border:2px solid #fff;outline:1px solid var(--hairline);padding:0}.bg-thumb.on{outline:2px solid var(--pillar)}.bg-thumb-wrap{position:relative;display:inline-block}.bg-thumb-x{position:absolute;top:-8px;right:-8px;width:20px;height:20px;border-radius:50%;padding:0;font-size:12px;line-height:1;background:var(--card)}.upload{display:flex;align-items:center;gap:10px;margin-top:8px;width:100%}.upload-btn{display:inline-block;background:var(--inset);border:1px dashed var(--hairline);border-radius:8px;padding:6px 12px;cursor:pointer}.upload-btn:hover{border-color:var(--pillar)}.solo-hud{position:fixed;left:16px;bottom:16px;display:flex;align-items:center;gap:14px;z-index:20;transition:opacity .4s}.solo-hud.running{opacity:.25}.solo-hud.running:hover{opacity:1}.solo-hud .counters,.solo-hud .gear{background:#fdfcfaeb}.gear{font-size:20px;padding:8px 12px}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(430px,100vw);background:var(--paper);border-left:1px solid var(--hairline);padding:16px;overflow-y:auto;transform:translate(100%);transition:transform .25s ease;z-index:30;display:flex;flex-direction:column;gap:14px}@media(prefers-reduced-motion:reduce){.drawer{transition:none}}.drawer.open{transform:translate(0)}.drawer-head{display:flex;align-items:center;gap:12px}.drawer-head h2{margin:0;font-family:var(--display);font-weight:700;font-size:20px;text-transform:lowercase;flex:1}.banner{display:flex;align-items:center;flex-wrap:wrap;gap:10px;border:1px solid var(--hairline);border-radius:12px;background:var(--card);padding:10px 14px;margin-bottom:14px;font-size:13px;color:var(--ink-soft)}.banner strong{color:var(--ink)}.banner button{font-size:12px;padding:5px 12px}.banner .x{margin-left:auto}.info-banner{border-color:var(--pillar-soft);background:var(--pillar-tint)}.warn-banner{border-color:#c9962f80;background:#c9962f14}.alert-banner{border-color:#c2437473;background:#c2437412}.fresh-banner{border-color:var(--pillar-soft);background:var(--pillar-tint)}.panel-right.readonly{opacity:.55;pointer-events:none}.session-log{border:1px solid var(--hairline);border-radius:12px;background:var(--card);padding:12px 14px;margin-top:14px}.session-log-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.session-log-head h4{margin:0;font-family:var(--display);font-size:14px}.session-log-head button{font-size:12px;padding:5px 12px}.session-log ul{list-style:none;margin:8px 0 4px;padding:0;font-size:13px;color:var(--ink-soft)}.session-log li{padding:3px 0;border-bottom:1px dashed var(--hairline)}.session-log li:last-child{border-bottom:none}.builtin-list{list-style:none;margin:0 0 10px;padding:0}.builtin-list li{display:flex;align-items:center;gap:8px;padding:2px 0}.builtin-list .tag{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);border:1px solid var(--hairline);border-radius:999px;padding:1px 7px}.client-stop{position:fixed;right:14px;bottom:14px;z-index:6;background:#19162152;border:1px solid rgba(253,252,250,.28);border-radius:999px;color:#fdfcfabf;font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:9px 18px;cursor:pointer}.client-stop:hover{background:#19162180;color:var(--paper)}body.hide-cursor .client-stop{opacity:.35}.stereo-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:8;display:flex;align-items:center;justify-content:space-between;padding:0 12vw;pointer-events:none;background:#1916218c}.stereo-overlay span{font-family:var(--display);font-size:30px;color:#fdfcfa40;transition:color .2s ease}.stereo-overlay span.on{color:var(--paper)}.photo-notice{position:fixed;left:50%;bottom:26px;transform:translate(-50%);z-index:12;width:min(440px,calc(100vw - 32px));background:var(--card);border:1px solid var(--hairline);border-radius:14px;padding:16px 18px;box-shadow:0 12px 40px #19162140}.photo-notice p{margin:0 0 12px;font-size:13px;line-height:1.5;color:var(--ink-soft)}.photo-notice button{background:var(--pillar);border-color:var(--pillar);color:#fff;font-weight:600;padding:7px 20px}.client-brand a{pointer-events:auto;color:#fdfcfa59;margin-left:14px;text-decoration:underline;text-underline-offset:2px}.client-brand a:hover{color:#fdfcfab3}.privacy-wrap{min-height:100%;background-color:var(--paper);padding:48px 20px 80px}.privacy{max-width:560px;margin:0 auto;background:var(--card);border:1px solid var(--hairline);border-radius:16px;padding:36px 40px}.privacy .dotbar{margin-bottom:10px}.privacy h1{margin:0;font-family:var(--display);font-weight:700;font-size:32px}.privacy .handle-line{margin:6px 0 18px}.privacy h2{font-family:var(--display);font-size:17px;margin:22px 0 6px}.privacy p{margin:0 0 10px;font-size:14px;line-height:1.6;color:var(--ink-soft)}.privacy a{color:var(--pillar)}.privacy-back{margin-top:26px}.bg-adjust{width:100%;margin-top:10px;padding:10px 12px;border:1px solid var(--hairline);border-radius:10px;background:var(--inset)}.bg-adjust .row{margin:4px 0}.bg-adjust .hint{margin-top:2px}.team-page{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:18px;padding-bottom:40px}.team-card{background:var(--card, #fff);border:1px solid var(--hairline);border-radius:14px;padding:18px 20px}.team-card h2{font-family:var(--display);font-weight:600;font-size:18px;text-transform:lowercase;margin:0 0 6px}.team-add{display:flex;gap:8px;margin:10px 0;flex-wrap:wrap}.team-add input{flex:1;min-width:180px}.team-bulk textarea{width:100%;box-sizing:border-box;border:1px solid var(--hairline);border-radius:9px;padding:8px 10px;font:inherit;margin:8px 0}.team-bulk-actions{display:flex;gap:10px;align-items:center}.fresh-logins ul{list-style:none;margin:10px 0;padding:0;display:flex;flex-direction:column;gap:8px}.fresh-logins li{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1px solid var(--hairline);border-radius:9px;padding:8px 12px}.team-table{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0}.team-table th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;padding:6px 10px 6px 0}.team-table td{border-top:1px solid var(--hairline);padding:8px 10px 8px 0;vertical-align:middle}.team-table .tag,.team-actions{white-space:nowrap}.team-table .tag{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);border:1px solid var(--hairline);border-radius:999px;padding:1px 7px}.team-table .ok-tag{color:var(--pillar);border-color:var(--pillar)}.team-table .warn-tag{color:var(--ink-soft);border-style:dashed}.team-actions{display:flex;gap:12px;justify-content:flex-end}@media(max-width:700px){.team-table thead{display:none}.team-table,.team-table tbody,.team-table tr,.team-table td{display:block}.team-table td{border-top:none;padding:2px 0}.team-table tr{border-top:1px solid var(--hairline);padding:10px 0}.team-actions{justify-content:flex-start}}
