:root{color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--bg: #f6f6f3;--fg: #1d1d1b;--muted: #6b6b66;--card: #ffffff;--line: color-mix(in srgb, var(--fg) 12%, transparent);--accent: #4f6fd9;--field-border: color-mix(in srgb, var(--fg) 50%, transparent);--focus-ring: var(--accent);--accent-fg: #ffffff;--danger: #b3261e;--danger-ink: #ffffff;--danger-text: var(--danger)}@media(prefers-color-scheme:dark){:root{--bg: #15161a;--fg: #ececea;--muted: #9a9a94;--card: #1f2128;--accent: #7d95ee;--accent-fg: #11131a;--danger: #f2b8b5;--danger-ink: #1a1a1a}}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--fg)}::placeholder{color:var(--muted);opacity:1}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:12px;padding:6px 16px;border-bottom:1px solid var(--line)}.topbar h1{margin:0;font-size:16px}.topbar .hint{margin-left:auto;font-size:13px}.game-area{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.game-root{flex:1;min-height:0;overflow:hidden}.muted{color:var(--muted)}.boot-error{white-space:pre-wrap;padding:16px;margin:16px;border-radius:8px;background:#fde8e8;color:#7a1f1f}.screen{min-height:100%;display:grid;place-items:center;padding:24px 16px;box-sizing:border-box}.card{width:min(380px,100%);box-sizing:border-box;padding:28px;border-radius:16px;background:var(--card);border:1px solid var(--line);box-shadow:0 12px 40px #00000014;display:flex;flex-direction:column;gap:14px;text-align:center}.card.wide{width:min(520px,100%);text-align:left}.card h1,.admin-head h1{margin:0;font-size:1.375rem}.card p{margin:0}.card-avatars{display:flex;justify-content:center;gap:10px}.row{display:flex;gap:8px;flex-wrap:wrap}.card:not(.wide) .row{justify-content:center}.btn{font:inherit;font-weight:600;padding:10px 16px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--fg);cursor:pointer}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn.small{padding:4px 10px;font-size:.8125rem}.field{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.875rem}.field input{font:inherit;font-weight:400;padding:10px 12px;border-radius:10px;border:1px solid var(--field-border);background:var(--bg);color:var(--fg)}.test-login{display:flex;flex-direction:column;gap:6px;padding-top:12px;border-top:1px dashed var(--line);font-size:13px}.test-login .row{flex-wrap:nowrap}.test-login input{flex:1;min-width:0;font:inherit;padding:8px 10px;border-radius:10px;border:1px solid var(--field-border);background:var(--bg);color:var(--fg)}.test-login-open{color:var(--danger);font-weight:600}.test-login input[type=password]{flex:0 1 7rem}.small-note{font-size:.75rem;line-height:1.4}.form-error{color:var(--danger-text);font-size:.875rem}.avatar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0;padding:0;border:0}.avatar-grid legend,.companion-grid legend{font-weight:600;font-size:14px;margin-bottom:6px}.avatar-option{display:grid;place-items:center;padding:8px 0;border-radius:12px;border:2px solid var(--line);cursor:pointer}.avatar-option.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.avatar-option-name{margin-top:4px;font-size:.8125rem;font-weight:600;line-height:1.2}.avatar-option input{position:absolute;opacity:0;pointer-events:none}.avatar-option:has(input:focus-visible){outline:2px solid var(--focus-ring);outline-offset:2px}.avatar-sprite{display:inline-block;background-repeat:no-repeat;background-position:0 var(--row-y, 0);image-rendering:pixelated}.avatar-sprite.walking{animation:avatar-walk .64s steps(4) infinite}@keyframes avatar-walk{to{background-position:calc(-1 * var(--sheet-w)) var(--row-y, 0)}}@media(prefers-reduced-motion:reduce){.avatar-sprite.walking{animation:none}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.status-picker{display:inline-flex;align-items:center;gap:6px}.status-picker select{font:inherit;font-size:13px;padding:3px 6px;border-radius:6px;border:1px solid var(--field-border);background:var(--card);color:var(--fg)}.overlay-right{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:min(260px,calc(100% - 24px));pointer-events:none}.overlay-right>*{pointer-events:auto}.nearby-panel{background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;box-shadow:0 4px 16px #0000002e;width:100%}.nearby-panel h2{margin:0 0 6px;font-size:13px;font-weight:600;color:var(--muted)}.nearby-panel ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}.nearby-panel li{display:flex;align-items:center;gap:8px;font-size:14px}.nearby-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-button{box-shadow:0 4px 16px #0000002e}.command-box{position:absolute;left:50%;bottom:24px;transform:translate(-50%);width:min(560px,calc(100% - 32px));background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:10px 12px 6px;box-shadow:0 8px 24px #00000040;z-index:5}.command-box input{width:100%;box-sizing:border-box;font:inherit;font-size:15px;padding:6px 8px;border-radius:6px;border:1px solid var(--field-border);background:var(--bg);color:var(--fg)}.command-box p{margin:6px 0 2px}.screen.modal{position:fixed;inset:0;z-index:10;background:#00000073}.screen.modal>.card{max-height:calc(100dvh - 32px);overflow-y:auto}.profile-actions{position:sticky;bottom:-28px;margin:0 -28px -28px;padding:12px 28px;background:var(--card);border-top:1px solid var(--line);z-index:1}.video-strip{position:absolute;top:8px;left:50%;transform:translate(-50%);display:flex;gap:6px;max-width:calc(100% - 300px);overflow-x:auto;z-index:3}@media(max-width:760px){.overlay-right{z-index:4}}.video-tile{position:relative;margin:0;width:120px;height:90px;flex:none;border-radius:16px;overflow:hidden;background:radial-gradient(circle at 50% 35%,#3a4152,#1f2229 70%);border:2px solid rgb(255 255 255 / .08);box-shadow:0 6px 16px #00000047;transition:border-color .2s,transform .2s}.video-tile.screen{width:160px;border-radius:10px}.video-tile.speaking{border-color:#3ccf6a;animation:tile-speaking 1.2s ease-in-out infinite}@keyframes tile-speaking{0%,to{box-shadow:0 6px 16px #00000047,0 0 #3ccf6a8c}50%{box-shadow:0 6px 16px #00000047,0 0 0 5px #3ccf6a00}}.video-tile.hand-up{border-color:#f5b83d}.video-tile.self-hidden{width:52px;height:52px;border-radius:50%;align-self:center}.video-host,.video-host video{width:100%;height:100%}.video-host video{object-fit:cover;display:block}.video-tile.screen .video-host video{object-fit:contain}.video-host video.mirror{transform:scaleX(-1)}.video-placeholder{display:grid;place-items:center;height:100%;font-size:32px;font-weight:700;color:#9aa0a6}.tile-avatar{display:block;image-rendering:pixelated;margin-top:-22px;filter:drop-shadow(0 3px 0 rgb(0 0 0 / .25))}.self-hidden .tile-avatar{margin-top:-14px}.video-tile figcaption{position:absolute;left:6px;bottom:6px;max-width:calc(100% - 12px);font-size:11px;color:#fff;background:#0009;border-radius:999px;padding:1px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile-badges{position:absolute;top:5px;right:5px;display:flex;gap:3px}.tile-badge{display:inline-flex;align-items:center;gap:1px;font-size:13px;line-height:1;padding:3px 5px;border-radius:999px;background:#0000008c}.tile-badge.hand{background:#f5b83d;animation:hand-wave 1.6s ease-in-out infinite}.tile-badge small{font-size:10px;font-weight:700;color:#1f2229}@keyframes hand-wave{0%,60%,to{transform:rotate(0)}70%{transform:rotate(-14deg)}85%{transform:rotate(10deg)}}.tile-self-toggle{position:absolute;top:5px;left:5px;border:0;border-radius:999px;background:#00000080;color:#fff;font-size:12px;line-height:1;padding:3px 5px;cursor:pointer;opacity:0;transition:opacity .15s}.video-tile:hover .tile-self-toggle,.tile-self-toggle:focus-visible,.self-hidden .tile-self-toggle{opacity:1}.self-hidden .tile-self-toggle{inset:auto -2px -2px auto;font-size:10px;padding:2px 3px}.tile-reactions{position:absolute;left:8px;bottom:24px;display:flex;gap:2px;pointer-events:none}.tile-reaction{display:inline-flex;align-items:flex-end;font-size:22px;line-height:1;filter:drop-shadow(0 2px 2px rgb(0 0 0 / .4))}.tile-reaction small{font-size:11px;font-weight:700;color:#fff;margin-left:1px}.tile-reaction.float{animation:tile-reaction-float 3s ease-out forwards}@keyframes tile-reaction-float{0%{transform:translateY(14px) scale(.4);opacity:0}12%{transform:translateY(0) scale(1.25);opacity:1}22%{transform:translateY(-2px) scale(1)}75%{opacity:1}to{transform:translateY(-36px);opacity:0}}.meeting-grid .video-tile .tile-reaction{font-size:34px}@media(prefers-reduced-motion:reduce){.video-tile.speaking,.tile-badge.hand,.tile-reaction.float,.reaction-sent{animation:none}}.video-more{align-self:center;color:#fff;font-weight:600}.media-controls{position:absolute;left:50%;bottom:12px;transform:translate(-50%);display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center;width:max-content;max-width:calc(100% - 24px);background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:12px;padding:6px 10px;box-shadow:0 6px 18px #00000038;z-index:4}.media-btn{display:inline-flex;flex-direction:column;align-items:center;gap:1px;min-width:64px;padding:4px 8px;line-height:1.1}.media-label{font-size:11px;white-space:nowrap}.media-split{display:inline-flex;align-items:stretch;border-radius:10px;transition:box-shadow .12s ease-out}.media-split .media-btn{border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}.media-caret{display:inline-grid;place-items:center;min-width:22px;padding:0 3px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid rgb(255 255 255 / .12);color:var(--muted)}.media-caret:hover,.media-caret[aria-expanded=true]{color:var(--fg)}.media-split.off .media-btn,.media-split.off .media-caret{background:#d33a3f;border-color:#d33a3f;color:#fff}.media-split.off .media-caret{border-left-color:#ffffff40}.media-split.idle .media-btn,.media-split.idle .media-caret,.media-split.alone .media-btn,.media-split.alone .media-caret{background:color-mix(in srgb,#e5484d 22%,var(--card));border-color:color-mix(in srgb,#e5484d 45%,var(--line))}.media-split.idle .media-icon,.media-split.alone .media-icon{color:#ff8a8d}.media-split.speaking{box-shadow:0 0 0 2px #3fbf6f}.media-icon{display:inline-grid;place-items:center;line-height:0}.media-btn.icon-only{min-width:40px;justify-content:center}.media-btn.presenting{background:#2f9e5b;border-color:#2f9e5b;color:#fff}.leave-btn{display:inline-flex;align-items:center;gap:6px;margin-left:6px}.chevron-down svg{transform:rotate(180deg)}.dock-reveal{display:inline-grid;place-items:center}.media-status:empty{display:none}.media-btn.on{color:var(--fg)}.media-status{margin:0 4px}.media-explain,.media-failure,.device-picker{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);width:min(380px,calc(100vw - 32px));background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;box-shadow:0 8px 24px #00000040;font-size:14px}.media-failure{margin:0;color:var(--danger-text);display:flex;align-items:flex-start;gap:8px}.media-failure>span{flex:1}.media-failure.dock-failure{left:12px;bottom:112px;z-index:4;transform:none;width:min(320px,calc(100vw - 24px))}.media-explain p{margin:0 0 8px}.device-picker{display:grid;gap:8px}.device-picker select{width:100%;font:inherit}.people-list{position:absolute;top:12px;left:12px;width:240px;max-height:calc(100% - 96px);box-sizing:border-box;overflow-y:auto;background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:8px 10px;box-shadow:0 4px 16px #0000002e;z-index:3}.people-list.closed{width:auto;padding:4px}.people-list.closed .people-toggle{white-space:nowrap}.people-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.people-list .people-head h2{margin:0}.people-list h2,.people-list h3{margin:4px 0 6px;font-size:13px;font-weight:600;color:var(--muted)}.people-list ul{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:4px}.people-list li{display:flex;align-items:center;gap:6px}.people-text{flex:1;min-width:0;display:grid}.people-name{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reaction-feed{position:absolute;left:12px;bottom:84px;list-style:none;margin:0;padding:0;display:grid;gap:4px;pointer-events:none;z-index:3}.reaction-feed li{background:#0000008c;color:#fff;font-size:13px;padding:3px 8px;border-radius:6px;width:fit-content}.wave-notice{position:absolute;top:116px;left:50%;transform:translate(-50%);background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;box-shadow:0 8px 24px #00000040;z-index:5}.wave-notice p{margin:0 0 8px}.shortcuts-help dl{display:grid;grid-template-columns:1fr;gap:4px;margin:0 0 12px}.shortcuts-help dl>div{display:flex;justify-content:space-between;gap:16px}.shortcuts-help dt,.shortcuts-help dd{margin:0}.shortcuts-help kbd{font:12px ui-monospace,monospace;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:1px 6px}@media(max-width:760px){.people-list:not(.closed){width:calc(100% - 24px);bottom:auto;max-height:50%}.reaction-feed{left:12px}}.desk-button,.desk-card{box-shadow:0 4px 16px #0000002e}.desk-card{display:flex;align-items:center;gap:8px;background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:6px 10px;font-size:14px;flex-wrap:wrap}.desk-card>span{flex:1 1 14rem;min-width:12rem}.nearby-chat{position:absolute;right:12px;bottom:216px;width:min(320px,calc(100% - 24px));background:#0009;color:#fff;border-radius:10px;padding:8px 10px;font-size:13px;pointer-events:none;z-index:3}.nearby-chat p{margin:2px 0;overflow-wrap:anywhere}.dm-button{position:relative}.badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;border-radius:8px;background:var(--danger);color:var(--danger-ink);font-size:10px;line-height:16px;text-align:center;padding:0 3px}.dm-panel{position:absolute;top:12px;right:12px;bottom:84px;width:min(320px,calc(100% - 24px));display:flex;flex-direction:column;background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #00000040;z-index:6}.dm-panel header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--line)}.dm-panel h2{margin:0;font-size:15px}.dm-privacy{margin:0;padding:6px 10px;font-size:12px;line-height:1.4;color:var(--muted);border-bottom:1px solid var(--line)}.dm-messages{flex:1;overflow-y:auto;padding:8px 10px;display:flex;flex-direction:column;gap:6px}.dm-messages p{margin:0;max-width:85%;padding:6px 9px;border-radius:10px;font-size:14px;overflow-wrap:anywhere}.dm-messages p time{display:block;font-size:10px;opacity:.7;margin-top:2px}.dm-messages .mine{align-self:flex-end;background:var(--accent);color:var(--accent-fg)}.dm-messages .theirs{align-self:flex-start;background:color-mix(in srgb,var(--fg) 8%,var(--card))}.dm-panel form{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--line)}.dm-panel form input{flex:1;font:inherit;padding:6px 8px;border-radius:6px;border:1px solid var(--field-border);background:var(--bg);color:var(--fg)}.object-modal{width:min(960px,calc(100vw - 32px))}.object-modal header{justify-content:space-between;align-items:center}.object-modal h1{margin:0}.object-frame{width:100%;height:min(640px,70vh);border:1px solid var(--line);border-radius:8px;background:#fff}.object-note{white-space:pre-wrap;font-size:18px;line-height:1.5}.object-image{max-width:100%;max-height:70vh;display:block;margin:0 auto}.lock-controls{display:grid;gap:6px;justify-items:end}.knock-card{display:flex;align-items:center;gap:6px;background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:6px 10px;box-shadow:0 4px 16px #0000002e;font-size:14px}.video-expand{flex:none;align-self:center;border:0;border-radius:8px;padding:6px 10px;background:#000000a6;color:#fff;cursor:pointer;font-size:13px}.meeting-view{position:absolute;inset:0 0 72px;z-index:3;display:flex;flex-direction:column;background:#16181d;color:#fff}.meeting-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px}.meeting-head button,.spotlight-tools button,.group-chat button{border:0;border-radius:6px;padding:4px 10px;background:#2c3039;color:#fff;cursor:pointer}.meeting-head button:hover,.spotlight-tools button:hover:not(:disabled){background:#3a404c}.meeting-body{flex:1;min-height:0;display:flex;gap:8px;padding:0 12px 12px}.tile-pin{position:absolute;right:6px;bottom:6px;border:0;border-radius:999px;background:#0000008c;font-size:13px;line-height:1;padding:5px 6px;cursor:pointer;opacity:0;transition:opacity .15s}.meeting-person:hover .tile-pin,.tile-pin:focus-visible,.tile-pin.on{opacity:1}.tile-pin.on{background:var(--accent)}.meeting-chat-toggle{position:relative}.meeting-chat-toggle.on{background:#ffffff29}.unread-badge{margin-left:6px;padding:0 6px;border-radius:999px;background:#e5484d;color:#fff;font-size:11px;font-weight:700}.tile-button{padding:0;border:0;background:none;cursor:zoom-in}.meeting-spotlight{flex:3;min-width:0;display:flex;flex-direction:column;gap:6px}.spotlight-frame{position:relative;flex:1;min-height:0;overflow:hidden;border-radius:12px;background:#0f1115}.spotlight-frame.zoomed{cursor:grab}.spotlight-frame.zoomed:active{cursor:grabbing}.spotlight-zoom{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px}.spotlight-canvas{width:100%;height:100%;transform-origin:0 0;transition:transform .08s ease-out}.spotlight-canvas .video-tile{width:100%;height:100%;border:0;border-radius:0;box-shadow:none}.zoom-tools{display:flex;align-items:center;gap:8px;font-size:12px;color:#c9cdd4;font-variant-numeric:tabular-nums}.zoom-tools small{opacity:.7}.spotlight-caption{flex:1;font-weight:600}.spotlight-frame .video-tile{width:100%;height:100%}.spotlight-frame video{object-fit:contain}.spotlight-tools{display:flex;align-items:center;gap:6px;justify-content:center}.group-chat{flex:none;width:260px;display:flex;flex-direction:column;background:#1f2229;border-radius:10px;padding:8px;font-size:13px}.group-chat h3{margin:0 0 6px;font-size:14px}.group-chat-lines{flex:1;overflow-y:auto}.group-chat-lines p{margin:0 0 4px;overflow-wrap:anywhere}.group-chat form{display:flex;gap:6px;margin-top:6px}.group-chat input{flex:1;min-width:0;border:1px solid color-mix(in srgb,currentcolor 50%,transparent);border-radius:6px;padding:4px 8px;background:#16181d;color:#fff}.group-chat input::placeholder{color:color-mix(in srgb,currentcolor 70%,transparent)}.minimap{position:absolute;right:12px;bottom:84px;width:160px;height:120px;border-radius:8px;background:#16181dcc;box-shadow:0 4px 12px #0000004d;cursor:crosshair;z-index:3}.listen-chip{position:absolute;left:50%;bottom:84px;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:#000000b3;color:#fff;font-size:13px;z-index:3}.prefs-panel{display:flex;flex-direction:column;gap:12px;max-width:420px;text-align:left}.prefs-panel h2{margin:0}.pref-row{display:flex;gap:10px;align-items:flex-start}.pref-row.column{flex-direction:column;gap:4px}.pref-row span{display:flex;flex-direction:column}.pref-row small{color:var(--muted)}@media(max-width:720px){.meeting-view{inset:0 0 72px}.group-chat,.minimap{display:none}}.menu-backdrop{position:fixed;inset:0;z-index:20}.person-menu{position:fixed;display:flex;flex-direction:column;min-width:190px;padding:6px;background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #00000040;font-size:14px}.person-menu strong{padding:4px 8px 6px}.person-menu button{text-align:left;border:0;border-radius:6px;padding:6px 8px;background:none;color:inherit;cursor:pointer}.person-menu button:hover,.person-menu button:focus-visible{background:color-mix(in srgb,var(--accent) 14%,transparent)}.follow-bar{position:absolute;left:50%;bottom:126px;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:var(--card);color:var(--fg);border:1px solid var(--line);box-shadow:0 4px 16px #0000002e;font-size:13px;z-index:3}.reminder-card p,.knock-card p{margin:0}.announce-banner{position:absolute;top:112px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:999px;background:#f2c14e;color:#1d1d1b;font-size:14px;font-weight:600;box-shadow:0 4px 16px #00000040;z-index:4}.announce-banner.notice{top:160px;background:var(--card);color:var(--fg);font-weight:400}.announce-left{font-variant-numeric:tabular-nums;opacity:.75}.admin{max-width:980px;margin:0 auto;padding:24px 16px 48px;min-height:100vh;box-sizing:border-box}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.admin-tabs{display:flex;gap:4px;margin:18px 0 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}.admin-tabs button{border:0;border-bottom:2px solid transparent;padding:8px 12px;background:none;color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap}.admin-tabs button.active{color:var(--fg);border-bottom-color:var(--accent);font-weight:600}.admin-notice{margin:0 0 12px;padding:8px 12px;border-radius:8px;background:color-mix(in srgb,#3ccf6a 16%,var(--card))}.admin-notice.error{background:color-mix(in srgb,var(--danger) 14%,var(--card))}.admin-list{display:flex;flex-direction:column;gap:10px}.admin-card{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:12px}.admin-card.column{flex-direction:column;align-items:stretch}.admin-card textarea{font:.875rem ui-monospace,Cascadia Code,monospace;padding:8px;border:1px solid var(--field-border);border-radius:6px;background:var(--bg);color:var(--fg)}.admin-field{display:flex;flex-direction:column;gap:4px;font-size:.8125rem;color:var(--muted);min-width:160px;flex:1}.admin-field input,.admin-field select,.admin-table select{font:inherit;font-size:.875rem;padding:6px 8px;border:1px solid var(--field-border);border-radius:6px;background:var(--bg);color:var(--fg)}.admin-check{display:flex;gap:6px;align-items:center;font-size:.875rem;padding-bottom:6px}.admin-table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:.875rem}.admin-table th,.admin-table td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.admin-table td{overflow-wrap:anywhere}.admin-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.admin-table td strong{display:block}.admin-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.btn.danger{color:var(--danger-text)}.floor-switcher{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.floor-switcher button{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:4px 10px;background:var(--card);color:var(--fg);font:inherit;font-size:13px;cursor:pointer;box-shadow:0 2px 8px #0000001f}.floor-switcher button.active{border-color:var(--accent);font-weight:600}.floor-count{min-width:18px;padding:0 5px;border-radius:999px;background:color-mix(in srgb,var(--accent) 16%,transparent);font-size:12px;text-align:center}.portal-prompt{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:8px;padding:12px 16px;border-radius:12px;background:var(--card);color:var(--fg);border:1px solid var(--line);box-shadow:0 8px 24px #00000040;z-index:5}.portal-prompt p{margin:0}.travel-overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:radial-gradient(circle at 50% 55%,#2a2440,#120f1d 70%);color:#fbf6e8;pointer-events:none}.travel-overlay.out{animation:travel-out .22s ease-in forwards}.travel-overlay.in{animation:travel-in .4s ease-out forwards}.travel-overlay p{margin:0;padding:10px 18px;border-radius:10px;background:#2f6b4f;border:2px solid #e8d9b5;font-size:15px;font-weight:600;box-shadow:0 6px 20px #00000059}.travel-overlay.travel-elevator{background:linear-gradient(90deg,#8a93a3 0 49.6%,#5d6577 49.6% 50.4%,#8a93a3 50.4% 100%)}@keyframes travel-out{0%{opacity:0}to{opacity:1}}@keyframes travel-in{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.travel-overlay.out,.travel-overlay.in{animation-duration:1ms}}.object-modal.object-elevator{width:min(440px,calc(100vw - 32px))}.elevator-panel{display:grid;gap:10px}.elevator-label{margin:0;font-size:14px;font-weight:600;color:var(--muted)}.elevator-floors{list-style:none;margin:0;padding:0;display:grid;gap:6px;outline:none}.elevator-floor{display:flex;align-items:center;gap:10px;min-height:44px;box-sizing:border-box;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--fg);cursor:pointer}.elevator-floor:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}.elevator-floor.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--card))}.elevator-floors:focus-visible .elevator-floor.selected{outline:2px solid var(--focus-ring);outline-offset:2px}.elevator-name{font-weight:600}.elevator-here{font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}.elevator-people{margin-left:auto;font-size:13px;color:var(--muted)}.elevator-hint{margin:0;color:var(--muted)}.elevator-hint kbd{font:12px ui-monospace,monospace;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:1px 6px}.office-picker select{font:inherit;font-size:14px;padding:2px 6px;border:1px solid var(--field-border);border-radius:6px;background:var(--card);color:var(--fg)}.zoom-control{position:absolute;right:180px;bottom:84px;display:flex;align-items:center;gap:2px;padding:2px;border-radius:8px;background:#16181dcc;color:#fff;font-size:12px;font-variant-numeric:tabular-nums;z-index:3}.zoom-control button{width:32px;height:32px;border:0;border-radius:6px;background:transparent;color:inherit;font-size:16px;cursor:pointer}.zoom-control button:hover:not(:disabled){background:#ffffff1f}.zoom-control button:disabled{opacity:.4;cursor:default}.zoom-steps span{min-width:40px;text-align:center}.zoom-steps{display:flex;align-items:center;gap:2px;border-radius:6px}.zoom-steps:focus{outline:none}.zoom-steps:focus-visible{outline:2px solid #fff}.zoom-control .zoom-recenter{width:auto;padding:0 10px;font-size:12px;white-space:nowrap;border-right:1px solid rgb(255 255 255 / .2);border-radius:6px 0 0 6px}.zoom-control button:focus-visible{outline:2px solid #fff;outline-offset:-2px}.listen-chip .btn{background:#ffffff24;color:#fff;border-color:transparent}.listen-chip .btn:hover{background:#ffffff3d}.invite-dialog{display:flex;flex-direction:column;gap:12px;max-width:480px;text-align:left}.invite-dialog h2,.invite-dialog h3{margin:0}.invite-link{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.invite-link input{flex:1;min-width:220px;font:13px ui-monospace,Cascadia Code,monospace;padding:6px 8px;border:1px solid var(--field-border);border-radius:6px;background:var(--bg);color:var(--fg)}.invite-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.invite-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px}.invite-dialog .row{align-items:flex-end}.object-modal.object-game{width:min(1200px,calc(100vw - 32px))}.object-game .object-frame{height:min(760px,78vh)}.object-modal.object-coffee{width:min(520px,calc(100vw - 32px))}.object-coffee{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.coffee-prompt{font-size:20px;line-height:1.35}.kudos-dialog{display:flex;flex-direction:column;gap:12px}.kudos-dialog h2{margin:0}.kudos-wall{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto}.focus-panel{display:flex;flex-direction:column;gap:8px;width:260px;padding:10px 12px;border-radius:10px;background:var(--card);color:var(--fg);border:1px solid var(--line);box-shadow:0 4px 16px #0000002e;font-size:13px}.focus-panel header,.standup-panel header{display:flex;justify-content:space-between;align-items:center;gap:8px}.focus-clock{font-variant-numeric:tabular-nums;font-weight:600;padding:2px 8px;border-radius:999px}.focus-clock.work{background:color-mix(in srgb,var(--accent) 18%,transparent)}.focus-clock.break{background:color-mix(in srgb,#3ccf6a 20%,transparent)}.focus-goal{display:flex;gap:6px}.focus-goal input{flex:1;min-width:0;font:inherit;padding:4px 8px;border:1px solid var(--field-border);border-radius:6px;background:var(--bg);color:var(--fg)}.focus-people{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.standup-chip{align-self:flex-end}.standup-panel{display:flex;flex-direction:column;gap:8px;width:260px;padding:10px 12px;border-radius:10px;background:var(--card);color:var(--fg);border:1px solid var(--line);box-shadow:0 4px 16px #0000002e;font-size:13px}.standup-panel p{margin:0}.standup-clock{font-variant-numeric:tabular-nums;font-weight:600;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 18%,transparent)}.standup-clock.over{background:color-mix(in srgb,#e5484d 25%,transparent)}.standup-order{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:2px}.standup-order .done{opacity:.5;text-decoration:line-through}.standup-order .current{font-weight:700}.trivia{display:flex;flex-direction:column;gap:12px}.trivia p{margin:0}.trivia-question{font-size:18px;font-weight:600}.trivia-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}@media(max-width:520px){.trivia-choices{grid-template-columns:1fr}}.trivia-choice{justify-content:flex-start;text-align:left;white-space:normal}.trivia-choice.picked{outline:2px solid var(--focus-ring)}.trivia-choice.right{background:color-mix(in srgb,#3ccf6a 30%,var(--card))}.trivia-choice.wrong{background:color-mix(in srgb,#e5484d 30%,var(--card))}.trivia-scores{margin:0;padding-left:20px}.avatar-mode,.avatar-tabs{display:flex;flex-wrap:wrap;gap:6px}.avatar-mode .selected,.avatar-tabs .selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.avatar-editor{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start}@media(max-width:560px){.avatar-editor{grid-template-columns:1fr;justify-items:center}}.avatar-editor-preview{display:grid;justify-items:center;gap:8px;padding:12px;border-radius:12px;background:color-mix(in srgb,var(--fg) 6%,transparent)}.avatar-editor-controls{display:flex;flex-direction:column;gap:10px;min-width:0}.avatar-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;max-height:260px;overflow-y:auto}.avatar-item{display:grid;justify-items:center;gap:2px;padding:4px 2px;border-radius:10px;border:2px solid var(--line);background:transparent;color:inherit;font:inherit;font-size:12px;cursor:pointer}.avatar-item.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.avatar-item:disabled{cursor:not-allowed;opacity:.55}.avatar-item small{font-size:10px}.avatar-colors{display:flex;flex-wrap:wrap;gap:6px}.swatch{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);cursor:pointer}.swatch.selected{outline:2px solid var(--focus-ring);outline-offset:2px}.theme-banner{position:absolute;top:72px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:2px;max-width:calc(100% - 32px);padding:10px 18px;border-radius:12px;background:color-mix(in srgb,var(--season, var(--accent)) 55%,#000);color:#fff;text-align:center;font-size:14px;box-shadow:0 6px 20px #00000040;pointer-events:none;z-index:5}.theme-banner strong{font-size:18px}.theme-banner-link{pointer-events:auto;color:#fff;font-size:13px;text-decoration:underline}.theme-banner-link:focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:4px}.special-dates{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;border:0}.special-dates legend{margin-bottom:4px;font-weight:600}.special-date-option{display:flex;align-items:flex-start;gap:8px;cursor:pointer}.special-date-option input{margin-top:3px}.special-date-option>span{display:flex;flex-direction:column;gap:2px}.decor-panel{position:absolute;left:16px;bottom:84px;z-index:6;display:flex;flex-direction:column;gap:8px;width:min(360px,calc(100% - 32px));max-height:calc(100% - 180px);overflow-y:auto;padding:12px;border-radius:12px;background:var(--card);color:var(--fg);border:1px solid var(--line);box-shadow:0 6px 20px #00000040;font-size:13px}.decor-panel header{justify-content:space-between}.decor-panel p{margin:0}.decor-title{margin:0;font-size:15px}.game-area.decorating{--decor-dock: 320px}.game-area.decorating .game-stage{margin-left:var(--decor-dock)}.game-area.decorating .decor-panel{top:0;bottom:0;left:0;width:var(--decor-dock);max-height:none;box-sizing:border-box;border-radius:0;border-width:0 1px 0 0;box-shadow:none}.game-area.decorating :is(.people-list,.overlay-right,.minimap,.video-strip,.reaction-feed,.since-panel,.dm-panel,.presentation-panel){display:none}.game-area.decorating .media-controls{left:calc(50% + var(--decor-dock) / 2);max-width:calc(100% - var(--decor-dock) - 24px)}.decor-bar{position:absolute;top:10px;left:calc(var(--decor-dock, 0px) + 12px);z-index:6;display:flex;align-items:center;gap:10px;padding:4px 4px 4px 12px;border-radius:999px;background:#14161ce0;color:#f1f1ed;font-size:14px;font-weight:600}@media(max-width:900px){.game-area.decorating .game-stage{margin-left:0}.game-area.decorating .decor-panel{width:min(var(--decor-dock),calc(100% - 48px));box-shadow:0 6px 20px #00000040}.game-area.decorating .media-controls{left:50%;max-width:calc(100% - 24px)}.decor-bar{left:auto;right:12px}}.decor-palette{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.decor-palette .decor-item span:last-child{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2;text-align:center;overflow-wrap:anywhere}.decor-title:focus{outline:none}.decor-item{display:grid;justify-items:center;gap:2px;padding:6px 4px;border-radius:10px;border:2px solid var(--line);background:transparent;color:inherit;font:inherit;font-size:11px;cursor:pointer}.decor-item.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.decor-item:disabled{cursor:not-allowed}.decor-item:disabled .decor-icon{opacity:.45}.decor-item small{font-size:12px;line-height:1.3;color:var(--muted)}.decor-icon{display:inline-block;background-repeat:no-repeat;image-rendering:pixelated}.decor-selected{gap:6px;flex-wrap:wrap;align-items:center}.decor-versions ol{margin:4px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:2px}.decor-versions .row{justify-content:space-between}.plant-card{display:flex;flex-direction:column;gap:10px}.plant-card p{margin:0}.plant-stage{font-size:16px}.plant-bar{height:10px;border-radius:999px;background:color-mix(in srgb,var(--fg) 10%,transparent);overflow:hidden}.plant-bar span{display:block;height:100%;background:#4a8a4f}.companions{display:flex;flex-direction:column;gap:10px}.companions p{margin:0}.companion-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;margin:0;padding:0;border:0}.companion-tabs{display:flex;gap:6px}.companion-grid .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.companion-emoji{font-size:28px;line-height:40px}.pet-icon{display:inline-block;width:64px;height:64px;margin:-12px 0 -8px;background-image:url(/sprites/pets.png);background-size:768px auto;background-repeat:no-repeat;image-rendering:pixelated}.race-hud{position:absolute;top:64px;left:50%;transform:translate(-50%);z-index:5;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 14px;max-width:calc(100% - 32px);padding:8px 14px;border-radius:12px;background:#14121ed9;color:#fff;font-size:14px;box-shadow:0 6px 20px #0000004d}.music-toggle{display:inline-flex;align-items:center;gap:6px}.music-toggle [aria-disabled=true]{opacity:.6;cursor:not-allowed}.race-hud .music-toggle .small-note{color:#ddd}.race-hud.results{flex-direction:column;align-items:stretch}.race-hud ol{margin:0;padding-left:20px}.race-item{padding:2px 8px;border-radius:999px;background:#ffffff24}.race-effect{font-weight:700;color:#ffd166}.race-countdown{position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);z-index:6;font-size:96px;font-weight:800;color:#fff;text-shadow:0 4px 0 #1e1a2b,0 0 24px rgb(0 0 0 / .5);pointer-events:none}.kart-card,.tracks-card{display:flex;flex-direction:column;gap:10px}.kart-card p,.tracks-card p{margin:0}.kart-card h3{margin:4px 0 0;font-size:15px}.kart-records,.tracks-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}.tracks-list{list-style:none;padding:0}.tracks-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line)}.track-editor{display:flex;flex-direction:column;gap:10px}.track-meta{flex-wrap:wrap;gap:8px}.track-tools{display:flex;flex-wrap:wrap;gap:4px}.track-tools .selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.track-swatch{display:inline-block;width:10px;height:10px;margin-right:4px;border-radius:2px;border:1px solid var(--line)}.track-grid-frame{max-height:60vh;overflow:auto}.track-grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);-webkit-user-select:none;user-select:none;touch-action:none}.track-cell{aspect-ratio:1;display:grid;place-items:center;font-size:9px;line-height:1;overflow:hidden;min-width:0;min-height:0;font-weight:700;color:#fff;text-shadow:0 0 2px #000;cursor:crosshair}.track-problems{margin:0;padding-left:20px}.race-lobby{position:absolute;right:12px;top:50%;transform:translateY(-50%);z-index:4;width:230px;max-height:60vh;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:10px;background:var(--card);color:var(--fg);border:1px solid var(--line);box-shadow:0 4px 16px #0000002e;font-size:14px}.race-lobby h2{margin:0;font-size:15px}.race-lobby ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.race-lobby .row{flex-wrap:wrap;gap:6px}.race-lobby-more{align-self:flex-start;background:transparent;border:none;padding:0;color:inherit;opacity:.75}.race-lobby-rules p{margin:0 0 6px}.topbar{flex-wrap:nowrap;overflow-x:auto;position:relative}.topbar>*{flex-shrink:0}.topbar .btn{white-space:nowrap}@media(max-width:1360px){.topbar .hint{display:none}.topbar .me-menu{margin-left:auto}}.shortcuts-help{max-width:calc(100vw - 32px);box-sizing:border-box}.shortcuts-help dl>div{justify-content:flex-start;align-items:baseline}.shortcuts-help dt{flex:0 0 auto;min-width:150px}.shortcuts-help dd{flex:1 1 auto;min-width:0}@media(max-width:600px){.shortcuts-help dl>div{flex-direction:column;gap:2px}}.track-info{display:flex;flex-direction:column;gap:2px}.track-players{color:var(--accent, #3d7bd9);font-weight:600}.race-effect.wrong-way{background:#d9473f;color:#fff;animation:wrong-way-blink .6s steps(2) infinite}@keyframes wrong-way-blink{50%{opacity:.55}}.broadcast-banner{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:10px;max-width:calc(100% - 140px);padding:6px 12px;border-radius:999px;background:var(--card);color:var(--fg);border:1px solid var(--line);box-shadow:0 4px 16px #0000002e;font-size:13px}.media-btn.broadcast-on{background:#f2c94c;color:#1c1c24}.game-stage{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.ambient-light{position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse at center,transparent 55%,rgb(24 18 48 / .28) 100%)}.daylight{position:absolute;inset:0;pointer-events:none;z-index:1;background:var(--day-tint, #ffb86b);opacity:var(--day-alpha, .06);mix-blend-mode:multiply;transition:background-color 60s linear,opacity 60s linear}.decor-style{gap:6px;align-items:center;flex-wrap:wrap}.decor-swatch{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);cursor:pointer;padding:0}.decor-swatch.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--card)}.desk-note-form{display:flex;gap:6px;align-items:center}.desk-note-form input{font:inherit;font-size:13px;padding:4px 8px;border:1px solid var(--field-border);border-radius:6px;min-width:200px;background:var(--card);color:var(--fg)}.meeting-view.with-people{left:264px}.game-area:has(.meeting-view) .people-list:not(.closed){bottom:84px;max-height:none}.meeting-view:not(.with-people) .meeting-head{padding-left:184px}.reaction-feed.beside-people{left:264px}.dock-divider{width:1px;align-self:stretch;margin:4px 2px;background:var(--line)}.reaction-bar{display:flex;align-items:center;gap:2px}.reaction-btn{position:relative;display:inline-grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:transparent;font-size:20px;line-height:1;cursor:pointer;transition:transform .12s,background .12s}.reaction-btn small{position:absolute;right:3px;bottom:1px;font-size:9px;color:var(--muted, #888)}.reaction-btn:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 16%,transparent);transform:translateY(-2px) scale(1.12)}.reaction-btn:disabled{opacity:.45;cursor:default}.reaction-btn.hand.on{background:#f5b83d}.reaction-sent{position:absolute;left:50%;top:0;pointer-events:none;animation:reaction-sent .9s ease-out forwards}@keyframes reaction-sent{0%{transform:translate(-50%) scale(1);opacity:1}to{transform:translate(-50%,-48px) scale(1.5);opacity:0}}.tile-reaction i,.reaction-face{display:inline-block;font-style:normal;transform-origin:50% 80%}.tile-reaction.float i{animation-duration:.9s;animation-delay:.3s;animation-iteration-count:2;animation-timing-function:ease-in-out}.reaction-btn:hover:not(:disabled) .reaction-face{animation-duration:.8s;animation-iteration-count:infinite;animation-timing-function:ease-in-out}.tile-reaction.float .motion-bump,.reaction-btn:hover:not(:disabled) .motion-bump{animation-name:motion-bump}.tile-reaction.float .motion-wave,.reaction-btn:hover:not(:disabled) .motion-wave{animation-name:motion-wave;transform-origin:70% 90%}.tile-reaction.float .motion-pop,.reaction-btn:hover:not(:disabled) .motion-pop{animation-name:motion-pop}.tile-reaction.float .motion-beat,.reaction-btn:hover:not(:disabled) .motion-beat{animation-name:motion-beat;transform-origin:50% 50%}.tile-reaction.float .motion-shake,.reaction-btn:hover:not(:disabled) .motion-shake{animation-name:motion-shake}.tile-reaction.float .motion-look,.reaction-btn:hover:not(:disabled) .motion-look{animation-name:motion-look}@keyframes motion-bump{0%,to{transform:translateY(0) rotate(0)}30%{transform:translateY(-5px) rotate(-12deg)}55%{transform:translateY(1px) rotate(4deg)}}@keyframes motion-wave{0%,to{transform:rotate(0)}20%{transform:rotate(18deg)}40%{transform:rotate(-12deg)}60%{transform:rotate(14deg)}80%{transform:rotate(-6deg)}}@keyframes motion-pop{0%,to{transform:scale(1) rotate(0)}25%{transform:scale(1.35) rotate(-14deg)}45%{transform:scale(.9) rotate(8deg)}65%{transform:scale(1.12) rotate(0)}}@keyframes motion-beat{0%,45%,to{transform:scale(1)}12%{transform:scale(1.28)}24%{transform:scale(.96)}34%{transform:scale(1.18)}}@keyframes motion-shake{0%,to{transform:rotate(0) translateY(0)}15%,45%,75%{transform:rotate(-10deg) translateY(-2px)}30%,60%,90%{transform:rotate(10deg) translateY(0)}}@keyframes motion-look{0%,to{transform:translate(0)}25%,40%{transform:translate(-4px)}65%,80%{transform:translate(4px)}}@media(prefers-reduced-motion:reduce){.tile-reaction i,.reaction-face{animation:none!important}}.presentation-panel{position:absolute;top:112px;right:12px;z-index:5;width:min(44vw,900px);min-width:320px;height:min(52vh,560px);min-height:220px;max-width:calc(100% - 24px);max-height:calc(100% - 200px);display:flex;flex-direction:column;resize:both;overflow:hidden;border-radius:12px;background:#12141af0;color:#fff;border:1px solid rgb(255 255 255 / .1);box-shadow:0 10px 30px #00000059}.presentation-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px 6px 12px;font-size:13px;cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.presentation-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.presentation-head .btn{background:#ffffff1f;color:#fff;border-color:transparent}.presentation-head .btn:hover{background:#ffffff38}.presentation-tabs{display:flex;gap:4px;padding:0 8px 6px}.presentation-tabs button{border:0;border-radius:999px;padding:2px 10px;font-size:12px;background:#ffffff1a;color:#fff;cursor:pointer}.presentation-tabs button[aria-selected=true]{background:var(--accent)}.presentation-body{flex:1;min-height:0;display:grid;gap:6px;padding:0 8px 8px}.presentation-body.cols-2{grid-template-columns:1fr 1fr}.presentation-pane{position:relative;min-width:0;min-height:0;overflow:hidden;border-radius:8px;background:#0b0c10}.presentation-pane.zoomed{cursor:grab}.presentation-canvas{width:100%;height:100%;transform-origin:0 0;transition:transform .08s ease-out}.presentation-canvas .video-tile{width:100%;height:100%;border:0;border-radius:0;box-shadow:none;background:#0b0c10}.presentation-canvas figcaption{display:none}.presentation-zoom{position:absolute;right:6px;bottom:6px;font-size:11px;padding:1px 6px;border-radius:999px;background:#0009}.presentation-note{margin:0;padding:0 12px 8px;font-size:12px;opacity:.8}.presenting-chip{position:absolute;top:150px;left:50%;transform:translate(-50%);z-index:5;display:flex;align-items:center;gap:8px;padding:6px 8px 6px 12px;border-radius:999px;background:#12141aeb;color:#fff;font-size:13px}.presenting-chip .btn{background:#e5484d;color:#fff;border-color:transparent}.video-expand.show-screen{background:#12141ad9}.media-controls,.nearby-panel,.floor-switcher,.people-list,.listen-chip,.dm-panel,.nearby-chat,.focus-panel,.decor-panel,.standup-panel,.race-lobby,.desk-card,.knock-card,.command-box,.me-dropdown{--card: rgb(20 22 28 / .88);--bg: rgb(10 11 15 / .55);--fg: #f1f1ed;--muted: #aeb2ba;--line: rgb(255 255 255 / .14);--field-border: color-mix(in srgb, var(--fg) 50%, transparent);--focus-ring: var(--fg);--danger-text: #f2b8b5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 14px #00000038}.media-controls .btn,.nearby-panel .btn,.floor-switcher button,.people-list.closed button{color:var(--fg)}.floor-switcher{position:relative;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.floor-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:6;min-width:180px;margin:0;padding:4px;list-style:none;border-radius:12px;background:var(--card);border:1px solid var(--line);box-shadow:0 8px 22px #0000004d;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.floor-menu[hidden]{display:none}.floor-menu button{width:100%;justify-content:space-between;border:0;border-radius:8px;box-shadow:none;background:transparent;padding:7px 10px}.floor-menu button:hover{background:#ffffff1a}.floor-menu button.active{background:color-mix(in srgb,var(--accent) 30%,transparent)}.media-label,.video-tile figcaption{font-size:12px}.reaction-btn small{font-size:10px;color:var(--muted)}.tile-self-toggle,.tile-pin{min-width:28px;min-height:28px;display:inline-grid;place-items:center}.self-hidden .tile-self-toggle{min-width:22px;min-height:22px}.status-text{margin-left:6px;font-size:12px;color:var(--muted)}.people-sub .status-text{margin-left:0}.speaking-icon{margin-right:3px}.media-controls.compact{gap:4px;padding:4px 6px}.media-controls.compact .media-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.media-controls.compact .media-btn{min-width:40px;min-height:36px;justify-content:center}.media-controls.compact .screen-btn{display:none}.dock-reveal{position:absolute;left:12px;bottom:64px;z-index:4;width:40px;height:40px;border:1px solid rgb(255 255 255 / .14);border-radius:50%;background:#14161cd6;color:#fff;font-size:18px;cursor:pointer}.focus-mine{margin:4px 0 0;font-size:13px}.decor-nodesk{font-size:13px;color:#f5c96a}.shortcuts-intro{margin:0 0 10px;font-size:14px;line-height:1.45;color:var(--muted)}.dm-panel,.nearby-chat,.focus-panel,.decor-panel,.standup-panel,.race-lobby,.desk-card,.knock-card,.people-list,.nearby-panel{border-radius:12px;background:var(--card);color:var(--fg)}.dm-panel input,.nearby-chat input,.focus-panel input,.decor-panel input,.desk-card input,.desk-card textarea,.command-box input{background:var(--bg);color:var(--fg);border-color:var(--field-border)}.crowd-cheer{position:absolute;left:50%;top:38%;z-index:7;display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none;transform:translate(-50%);animation:crowd-rise 1.8s ease-out forwards}.crowd-emoji{display:inline-block;font-size:64px;line-height:1;filter:drop-shadow(0 4px 6px rgb(0 0 0 / .35));animation-duration:.8s;animation-iteration-count:2}.crowd-cheer strong{padding:2px 10px;border-radius:999px;background:#14161cd6;color:#fff;font-size:14px}.crowd-cheer .motion-bump{animation-name:motion-bump}.crowd-cheer .motion-wave{animation-name:motion-wave}.crowd-cheer .motion-pop{animation-name:motion-pop}.crowd-cheer .motion-beat{animation-name:motion-beat}.crowd-cheer .motion-shake{animation-name:motion-shake}.crowd-cheer .motion-look{animation-name:motion-look}@keyframes crowd-rise{0%{opacity:0;transform:translate(-50%,30px) scale(.6)}15%{opacity:1;transform:translate(-50%) scale(1.1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-40px) scale(1)}}@media(prefers-reduced-motion:reduce){.crowd-cheer,.crowd-emoji{animation:none}}.avatar-head{display:block;width:64px;height:64px;overflow:hidden}.avatar-head .avatar-sprite{margin-top:-14px}.key-hint{margin-left:2px;padding:0 4px;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;color:var(--muted);font:11px ui-monospace,monospace}.decor-lead{font-size:14px}.decor-sticky{position:sticky;top:-12px;z-index:1;display:grid;gap:8px;margin:-12px -12px 0;padding:12px 12px 8px;background:#14161cfa}.decor-search{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}.decor-search-clear{width:28px;height:28px;padding:0;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--fg);cursor:pointer}.decor-search-clear:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.decor-search label{font-size:13px;font-weight:600;color:var(--muted)}.decor-search input{font:inherit;font-size:14px;padding:6px 10px;border-radius:8px;border:1px solid var(--field-border);background:var(--bg);color:var(--fg)}.decor-search input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.decor-empty{color:var(--muted);font-size:14px}.decor-locked h3{margin:6px 0 4px;font-size:12px;font-weight:600;color:var(--muted)}.decor-locked ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}.decor-locked-item{position:relative;display:grid;place-items:center;width:40px;height:40px;padding:0;border-radius:8px;border:1px dashed var(--line);background:transparent;cursor:help}.decor-locked-item .decor-icon{opacity:.45}.decor-locked-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.decor-lock{position:absolute;right:1px;bottom:0;font-size:11px}.decor-locked-caption{margin:4px 0 0;min-height:2.6em;font-size:12px;line-height:1.3;color:var(--muted)}.decor-versions summary,.decor-locked summary,.decor-help summary{cursor:pointer;font-weight:600;font-size:13px}.decor-locked summary{color:var(--muted)}.decor-locked[open] ul{margin-top:6px}.decor-help p{margin:4px 0 0}.decor-versions[open] summary{margin-bottom:6px}.decor-more{position:sticky;bottom:-12px;flex-shrink:0;height:36px;margin-top:-36px;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--card) 85%)}.decor-more[hidden]{display:none}.decor-toast-slot{position:absolute;left:calc(var(--decor-dock, 0px) + (100% - var(--decor-dock, 0px)) / 2);bottom:84px;transform:translate(-50%);z-index:7}.decor-toast{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 14px;border-radius:999px;background:#14161ceb;color:#f1f1ed;font-size:14px;box-shadow:0 4px 14px #00000038}.decor-toast .btn{color:#f1f1ed;border-color:#ffffff59}@media(max-width:900px){.decor-toast-slot{left:50%}}*{scrollbar-width:thin;scrollbar-color:transparent transparent}*:hover,*:focus-within{scrollbar-color:color-mix(in srgb,currentColor 35%,transparent) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border-radius:999px;background:transparent}:hover::-webkit-scrollbar-thumb,:focus-within::-webkit-scrollbar-thumb{background:color-mix(in srgb,currentColor 35%,transparent)}.me{display:inline-flex;align-items:center;gap:6px}.btn.small.me{padding-left:4px;border-color:var(--field-border)}.btn.small.me:hover,.btn.small.me[aria-expanded=true]{background:color-mix(in srgb,var(--fg) 6%,transparent)}.btn.small.me:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.me-name{min-width:0;max-width:16ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-avatar{display:inline-block;flex-shrink:0;width:32px;height:25px;margin-block:-4px;overflow:hidden}.me-avatar .avatar-sprite{margin-top:-15px}@media(max-width:640px){.topbar .me .me-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}.profile-hint{--z-hint: 25;--hint-radius: 12px;--hint-shadow: 0 10px 28px rgb(0 0 0 / .22);position:fixed;z-index:var(--z-hint);display:flex;align-items:center;gap:10px;box-sizing:border-box;padding:10px 12px;border-radius:var(--hint-radius);background:var(--card);color:var(--fg);border:1px solid var(--field-border);box-shadow:var(--hint-shadow);font-size:.875rem}.profile-hint p{margin:0;flex:1}.profile-hint:before{content:"";position:absolute;left:calc(var(--arrow-x, 20px) - 1px);bottom:100%;width:2px;height:var(--stem, 0px);background:var(--field-border)}.profile-hint:after{content:"";position:absolute;left:calc(var(--arrow-x, 20px) - 7px);bottom:calc(100% + var(--stem, 0px));border:7px solid transparent;border-top-width:0;border-bottom-color:var(--field-border)}.me-dropdown{position:fixed;z-index:30;min-width:220px;display:flex;flex-direction:column;padding:6px;border-radius:12px;background:var(--card);color:var(--fg);border:1px solid var(--line);box-shadow:0 10px 28px #00000038}.me-dropdown button,.me-dropdown a{display:block;text-align:left;border:0;border-radius:8px;padding:8px 10px;background:transparent;color:var(--fg);font:inherit;font-size:14px;text-decoration:none;cursor:pointer}.me-dropdown button:hover,.me-dropdown a:hover,.me-dropdown button:focus-visible,.me-dropdown a:focus-visible{background:color-mix(in srgb,var(--accent) 14%,transparent)}.me-dropdown hr{width:100%;border:0;border-top:1px solid var(--line);margin:4px 0}.person-menu button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.device-picker{max-height:min(70vh,560px);overflow-y:auto}.bg-picker{--bg-option-radius: 8px;--bg-thumb-radius: 4px;border:0;margin:0;padding:0;display:grid;gap:8px}.bg-picker legend{font-weight:600;padding:0;margin-bottom:4px}.bg-options{display:flex;flex-wrap:wrap;gap:6px}.bg-option{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:4px 10px;border:1px solid var(--line);border-radius:var(--bg-option-radius);cursor:pointer}.bg-option:has(input:checked){border-color:var(--accent);outline:2px solid var(--accent);outline-offset:-2px}.bg-option:has(input:focus-visible){outline:2px solid var(--focus-ring);outline-offset:2px}.bg-option:has(input:disabled){color:var(--muted);cursor:not-allowed}.bg-thumb{flex-direction:column;padding:4px}.bg-thumb img{border-radius:var(--bg-thumb-radius);object-fit:cover}.talk-hint{color:var(--muted);white-space:nowrap}.media-controls.compact .talk-hint{display:none}@media(max-width:640px){.talk-hint{display:none}}.decor-tabs{display:flex;flex-wrap:nowrap;gap:4px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding:2px 12px;margin:0 -12px;-webkit-mask-image:linear-gradient(to right,transparent,black 12px,black calc(100% - 12px),transparent);mask-image:linear-gradient(to right,transparent,black 12px,black calc(100% - 12px),transparent)}.decor-tab{flex:none;font:inherit;font-size:.8125rem;min-height:1.75rem;padding:3px 9px;border-radius:1em;border:1px solid var(--field-border);background:transparent;color:var(--fg);cursor:pointer;white-space:nowrap}.decor-tab.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:600}.decor-tab.empty:not(.selected){opacity:.55;cursor:default;border-style:dashed}.decor-tab:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.decor-tab-count{font-size:.75rem;opacity:.85}@media(pointer:coarse){.decor-tab{min-height:2.75rem;padding-inline:14px}}@media(max-width:600px){.game-area.decorating .decor-panel{inset:auto 0 0;width:auto;max-height:45%;border-width:1px 0 0;border-radius:.75rem .75rem 0 0}.decor-bar{top:8px;right:8px;padding:2px 2px 2px 12px}.decor-bar .btn.small,.decor-panel header .btn{min-height:44px;min-width:44px}}.meeting-grid{flex:1;min-width:0;min-height:0;display:flex;flex-wrap:wrap;gap:8px;align-content:center;justify-content:center;overflow:hidden}.meeting-person{position:relative;flex:none}.meeting-grid .video-tile{width:100%;height:100%;box-sizing:border-box;border-radius:14px}.meeting-grid .tile-button{flex:none}.meeting-grid.side{flex:none;width:184px;flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;align-content:stretch;overflow-y:auto}.meeting-grid.side .meeting-person,.meeting-grid.side .tile-button{width:100%;height:auto;aspect-ratio:16 / 9}:root{--z-toast: 4;--arrival-bg: rgb(0 0 0 / .82);--arrival-fg: #fff}.area-toast{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);background:#000000a6;color:#fff;font-size:20px;font-weight:600;padding:10px 18px;border-radius:10px;pointer-events:none;z-index:4}.toast-stack{position:absolute;left:50%;bottom:calc(var(--dock-clear, 96px) + 12px);transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 24px);pointer-events:none;z-index:var(--z-toast)}.toast-stack>.area-toast{position:static;transform:none;max-width:100%;text-align:center;overflow-wrap:anywhere}.ride-toast{font-size:15px;font-weight:500}.toast-stack>.arrival-toast{font-size:1rem;font-weight:500;line-height:1.35;background:var(--arrival-bg);color:var(--arrival-fg);margin-bottom:20px;max-width:min(100%,26em)}@media(max-height:640px){.toast-stack>.arrival-toast{margin-bottom:12px}}.object-frame-note{margin:6px 0 0}.travel-overlay.arrival.out{animation:none;opacity:1}.travel-overlay.arrival.in,.travel-overlay.leaving.out{animation-duration:.3s}.since-panel,.gift-picker{--card: rgb(20 22 28 / .88);--fg: #f1f1ed;--muted: #aeb2ba;--line: rgb(255 255 255 / .14);background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 14px #00000038}.since-panel{position:absolute;top:12px;left:12px;z-index:20;width:min(300px,calc(100% - 24px));padding:10px 12px 8px;animation:since-in .26s ease-out}.since-panel header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}.since-panel h2{margin:0;font-size:13px;font-weight:600;letter-spacing:.01em}.since-panel ul{margin:0;padding:0;list-style:none;display:grid;gap:4px}.since-panel li{display:grid;grid-template-columns:20px 1fr;gap:6px;font-size:13px;line-height:1.35}.since-panel .since-hint{margin:6px 0 0;font-size:11px;color:var(--muted)}.since-panel .close{border:0;background:none;color:var(--muted);font-size:16px;line-height:1;cursor:pointer;padding:2px 4px}.since-panel .close:hover,.since-panel .close:focus-visible{color:var(--fg)}@keyframes since-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.gift-picker{position:absolute;left:50%;bottom:96px;z-index:25;transform:translate(-50%);padding:10px 12px;max-width:calc(100% - 24px)}.desk-gift-anchor{position:relative}.desk-gift-anchor:empty{display:none}.gift-picker.anchored{top:calc(100% + 6px);right:0;bottom:auto;left:auto;transform:none}.gift-picker p{margin:0 0 8px;font-size:13px}.gift-picker .gift-emojis{display:flex;flex-wrap:wrap;gap:6px}.gift-picker .gift-emojis button{width:36px;height:36px;border-radius:8px;border:1px solid var(--line);background:#ffffff0f;font-size:20px;line-height:1;cursor:pointer}.gift-picker .gift-emojis button:hover,.gift-picker .gift-emojis button:focus-visible{background:#ffffff29;outline:2px solid #ffd166;outline-offset:1px}.gift-picker .small-note{margin:8px 0 0;font-size:11px;color:var(--muted)}@media(prefers-reduced-motion:reduce){.since-panel{animation:none}.travel-overlay.arrival.in,.travel-overlay.leaving.out{animation-duration:1ms}}.room-card{--card: rgb(20 22 28 / .88);--fg: #f1f1ed;--muted: #aeb2ba;--line: rgb(255 255 255 / .14);display:grid;gap:6px;width:min(240px,100%);padding:8px 10px;background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 14px #00000038;font-size:13px}.room-card header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.room-card-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-card-state{flex:none;font-size:12px;color:#ffb4a3}.room-card-actions{display:flex;flex-wrap:wrap;gap:6px}.room-card .btn{color:var(--fg);min-height:28px}.room-card .btn[aria-pressed=true]{background:#ffffff1f}.room-card .btn.room-card-meet{min-height:32px;padding-inline:12px;font-weight:600;background:#ffffff1a;border-color:#ffffff47}.room-card .btn.room-card-meet:hover,.room-card .btn.room-card-meet:focus-visible{background:#fff3}.room-card-knock{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:6px;border-top:1px solid var(--line)}.room-card-knock span{flex:1 1 100%}.room-card .btn.primary{color:var(--accent-fg)}.vehicle-icon{display:inline-block;flex:none;margin:8px auto 6px;background-repeat:no-repeat;image-rendering:pixelated}.btn.small.people-toggle{border-color:var(--field-border)}.people-empty{display:grid;gap:8px;justify-items:start}.people-empty p{margin:0}.people-toggle .people-unread{margin-left:6px;padding:0 6px;border-radius:999px;background:#e5484d;color:#fff;font-size:12px;font-weight:700}.dm-toast,.knock-toast,.save-failure-toast{--card: rgb(20 22 28 / .9);--fg: #f1f1ed;--line: rgb(255 255 255 / .14);display:flex;align-items:center;gap:8px;max-width:min(520px,calc(100% - 24px));padding:8px 12px;background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 6px 18px #00000047;font-size:14px}.dm-toast,.save-failure-toast{position:absolute;left:50%;bottom:96px;z-index:30;transform:translate(-50%)}.dm-toast span,.knock-toast span{min-width:0}.dm-toast .btn,.knock-toast .btn{flex:none;color:var(--fg)}.dm-toast .btn.primary{color:var(--accent-fg)}.dm-panel{inset:56px auto auto 12px;max-height:min(560px,calc(100% - 152px))}.people-list:not(.closed)~.dm-panel{top:12px;left:264px}.standup-chip{--card: rgb(20 22 28 / .88);background:var(--card);color:#f1f1ed;border:1px solid rgb(255 255 255 / .14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 14px #00000038}.save-failure-toast{bottom:148px}.save-failure-toast .btn{flex:none;color:var(--fg)}.save-failure-toast .save-failure-close{display:inline-grid;place-items:center;min-width:28px;min-height:28px}.save-failure-text{min-width:0;margin:0}.save-failure-idle{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}:root{--hand: #f5b83d;--hand-ink: #1f2229}.video-tile.hand-up{border-color:var(--hand);box-shadow:0 0 0 2px var(--hand),0 0 18px 2px #f5b83d80,0 6px 16px #00000047}.tile-hand{position:absolute;top:5px;right:5px;z-index:2;display:inline-flex;align-items:center;gap:4px;padding:1px 8px 1px 1px;border-radius:999px;background:var(--hand);color:var(--hand-ink);border:2px solid var(--hand-ink);box-shadow:0 2px 8px #00000073;line-height:1;pointer-events:none;transform-origin:80% 100%;animation:tile-hand-pop .5s cubic-bezier(.34,1.56,.64,1) both}.tile-hand i{font-style:normal;font-size:17px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--hand-ink);transform-origin:50% 90%;animation:tile-hand-wave 2.4s ease-in-out .5s infinite}.tile-hand b{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}.video-tile.hand-up .tile-badges{top:42px}.meeting-grid .tile-hand,.meeting-body .tile-hand{top:10px;right:10px;padding:2px 14px 2px 2px;gap:6px;border-width:3px}.meeting-grid .tile-hand i,.meeting-body .tile-hand i{font-size:28px;width:44px;height:44px}.meeting-grid .tile-hand b,.meeting-body .tile-hand b{font-size:22px}.meeting-grid .video-tile.hand-up .tile-badges,.meeting-body .video-tile.hand-up .tile-badges{top:64px}@keyframes tile-hand-pop{0%{opacity:0;transform:translateY(10px) scale(.3)}60%{opacity:1;transform:translateY(-4px) scale(1.12)}to{opacity:1;transform:none}}@keyframes tile-hand-wave{0%,55%,to{transform:rotate(0)}65%{transform:rotate(-16deg)}75%{transform:rotate(12deg)}85%{transform:rotate(-8deg)}}.hand-notices{position:absolute;top:112px;left:50%;transform:translate(-50%);z-index:7;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;max-width:calc(100% - 32px)}.hand-notice{display:flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:999px;background:#14161ceb;color:#fff;font-size:14px;border:2px solid var(--hand);box-shadow:0 6px 18px #00000059;white-space:nowrap;animation:hand-notice-in .35s cubic-bezier(.34,1.56,.64,1) both}.hand-notice strong{font-weight:700}.hand-notice-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--hand-ink);border:2px solid var(--hand);font-size:16px}.hand-notice-place{padding:1px 8px;border-radius:999px;background:var(--hand);color:var(--hand-ink);font-size:12px;font-weight:800}@keyframes hand-notice-in{0%{opacity:0;transform:translateY(-10px) scale(.9)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.tile-hand,.tile-hand i,.hand-notice{animation:none}}.idle-away-notice{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;padding:8px 16px;background:var(--card);color:var(--fg);border-bottom:2px solid var(--accent)}:root{--health-good: #3ccf6a;--health-fair: #f5b83d;--health-bad: #e5534b;--health-none: #9aa0a6;--health-radius: 10px;--health-target: 28px;--health-font: 14px;--health-mark-font: 11px;--health-shadow: 0 8px 24px rgb(0 0 0 / .25);--health-ink: #1f2229}.media-health{display:inline-flex;align-items:center}.media-health-glyph{display:inline-grid;place-items:center;min-width:var(--health-target);min-height:var(--health-target);padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}.media-health-glyph.health-boa{color:var(--health-good)}.media-health-glyph.health-regular{color:var(--health-fair)}.media-health-glyph.health-ruim{color:var(--health-bad)}.media-health-glyph.health-none{color:var(--health-none)}.media-health-glyph:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.media-health-pop,.media-health-chips:not(:empty){position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);width:min(380px,calc(100vw - 32px))}.media-health-pop{bottom:calc(100% + 8px);padding:10px 12px;background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:var(--health-radius);box-shadow:var(--health-shadow);font-size:var(--health-font)}.media-health-pop p{margin:0 0 4px}.media-health-chips:not(:empty){display:flex;flex-direction:column;gap:6px}.media-health-chips:empty{display:none}.media-health-chip{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:var(--health-radius);box-shadow:var(--health-shadow);font-size:var(--health-font)}.media-health-chip .btn{min-height:24px}.dock-reveal.has-health-notice:after{content:"!";position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;background:var(--health-fair);color:var(--health-ink);font-size:var(--health-mark-font);font-weight:700;line-height:16px;text-align:center}:root{--z-decor-refusal: 7}.screen:not(.modal)>.card.wide{max-height:calc(100dvh - 48px);overflow-y:auto}.screen>.card.wide{scroll-padding-bottom:96px}.screen>.card.wide .field input{scroll-margin-top:calc(1.225rem + 16px)}.command-box p:empty{margin:0}.portal-prompt.placed{transform:none}.portal-prompt.waiting{visibility:hidden}.decor-refusal-slot{position:absolute;left:calc(var(--decor-dock, 0px) + (100% - var(--decor-dock, 0px)) / 2);bottom:132px;transform:translate(-50%);z-index:var(--z-decor-refusal);max-width:calc(100% - var(--decor-dock, 0px) - 24px)}.decor-refusal{border-radius:1.25rem;white-space:normal}@media(max-width:900px){.decor-refusal-slot{left:50%}}.sound-toggle{--sound-z: 3;--sound-radius: 12px;--sound-size: 13px;position:absolute;left:12px;bottom:12px;z-index:var(--sound-z);display:inline-flex;align-items:center;gap:6px;min-width:44px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:var(--sound-radius);background:var(--card);color:var(--fg);font:inherit;font-size:var(--sound-size);cursor:pointer;box-shadow:0 2px 8px color-mix(in srgb,var(--fg) 18%,transparent)}.sound-toggle[aria-pressed=false]{border-style:dashed;border-color:var(--field-border)}.sound-toggle:hover{border-color:var(--field-border)}.sound-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media(max-width:520px){.sound-toggle-state{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}.media-btn.presenting{background:#c93c40;border-color:#c93c40;color:#fff}.presenter-card{display:flex;align-items:center;gap:12px;padding:8px 12px 8px 8px;border-radius:14px;background:#12141af0;color:#fff;border:1px solid rgb(255 255 255 / .12);box-shadow:0 8px 24px #00000059}.presenter-card.float{position:absolute;top:150px;left:50%;transform:translate(-50%);z-index:5;max-width:calc(100% - 32px)}.presenter-card.tile{flex-direction:column;justify-content:center;text-align:center;padding:12px;min-height:0;box-sizing:border-box}.presenter-preview{width:160px;aspect-ratio:16 / 9;flex:none;object-fit:contain;border-radius:8px;background:#000;border:2px solid #c93c40}.presenter-card.tile .presenter-preview{width:min(100%,360px);flex:1 1 auto;min-height:0}.presenter-text{display:flex;flex-direction:column;gap:4px;font-size:13px}.presenter-text small{opacity:.75}.presenter-mode-box{display:flex;flex-direction:column;gap:4px}.presenter-mode{display:flex;gap:4px;flex-wrap:wrap}.presenter-mode .btn{min-height:28px;min-width:64px;color:inherit;border:1px solid transparent}.presenter-mode .btn[aria-pressed=true]{border-color:currentColor;box-shadow:inset 0 -2px 0 currentColor}.presenter-mode-hint{opacity:.85}.presenter-mode-error{color:inherit;font-weight:600}.presenter-card.tile .presenter-mode,.presenter-card.tile .presenter-text .row{justify-content:center}.presenter-card .presenter-stop{background:#c93c40;border-color:transparent;color:#fff}.screen-notice{position:absolute;bottom:96px;left:50%;transform:translate(-50%);z-index:8;display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;border-radius:12px;background:#12141af2;color:#fff;font-size:13px;border:1px solid #c93c40;box-shadow:0 8px 24px #00000059;max-width:calc(100% - 32px)}.screen-notice.leaving{border-color:#f5b83d;pointer-events:none}.screen-notice small{opacity:.75}.race-lobby.race-card{--race-card-radius: 12px;top:50%;left:auto;right:16px;transform:translateY(-50%);width:min(320px,calc(100% - 32px));max-height:70vh}@media(max-width:480px){.race-lobby.race-card{top:auto;left:0;right:0;bottom:var(--dock-clear, 0px);transform:none;width:auto;max-height:30vh;gap:6px;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));border-radius:var(--race-card-radius) var(--race-card-radius) 0 0}.race-lobby.race-card ul:not(.race-keys,.race-results){display:grid;grid-template-columns:1fr 1fr;gap:2px 12px}.race-lobby.race-card .race-keys{display:none}.race-lobby.race-card.rules-open .race-keys{display:flex}.race-lobby.race-card,.race-lobby.race-card.rules-open{overflow-y:auto;overscroll-behavior:contain}}.race-lobby-more{min-height:28px}.race-results{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}.race-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.race-badge{font-size:11px;padding:1px 8px;border-radius:999px;background:#ffffff1f;border:1px solid rgb(255 255 255 / .25)}.race-cheer{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;padding:8px 12px;border-radius:12px;background:#ffffff1a;animation:race-cheer-glow 1.2s ease-in-out 3}.race-cheer-dots{position:absolute;inset:0;overflow:hidden;pointer-events:none}.race-cheer-dots i{position:absolute;bottom:0;left:calc(6% + var(--i) * 12%);width:6px;height:6px;border-radius:50%;background:currentcolor;opacity:0;animation:race-cheer-rise 1.6s ease-out calc(var(--i) * .12s) 2}.race-cheer.is-static{animation:none}.race-cheer.is-static .race-cheer-dots{display:none}@keyframes race-cheer-glow{50%{box-shadow:0 0 14px #ffffff59}}@keyframes race-cheer-rise{0%{opacity:.9;transform:translateY(0)}to{opacity:0;transform:translateY(-34px)}}@media(prefers-reduced-motion:reduce){.race-cheer,.race-cheer-dots i{animation:none}.race-cheer-dots{display:none}}.race-strip{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:5;display:flex;align-items:center;gap:8px;max-width:calc(100% - 32px);padding:6px 8px 6px 14px;border-radius:999px;background:#14121ed9;color:#fff;font-size:13px;box-shadow:0 4px 14px #00000040}.race-strip{--fg: #f1f1ed;--muted: #aeb2ba;--line: rgb(255 255 255 / .32)}.garage-btn{min-height:44px;min-width:44px;padding:0 14px;border-radius:999px}.race-strip .garage-btn:not(.primary){background:#ffffff1a}.race-strip .garage-btn:not(.primary,[aria-disabled=true]):hover,.race-strip .garage-btn:not(.primary,[aria-disabled=true]):focus-visible{background:#ffffff38}.race-strip .garage-btn:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.garage-btn[aria-disabled=true]{cursor:default}.race-strip .garage-btn[aria-disabled=true]{background:transparent;color:var(--muted);border-style:dashed;--line: rgb(255 255 255 / .5)}.garage-bar{padding:4px 4px 4px 14px}.race-hud.race-hud-corner{top:12px;left:12px;transform:none;justify-content:flex-start;max-width:min(360px,calc(100% - 24px));font-size:13px}.race-top{display:contents}@media(max-width:640px){.race-top{display:flex;flex-direction:column;align-items:center;gap:8px;position:absolute;top:12px;left:12px;right:12px;z-index:5;pointer-events:none}.race-top>.race-strip,.race-top>.race-hud.race-hud-corner,.race-top>.video-strip.race-thumbs{position:static;transform:none;pointer-events:auto}.race-top>.race-hud.race-hud-corner,.race-top>.video-strip.race-thumbs{align-self:flex-start}.race-top>.video-strip.race-thumbs{max-height:40vh}.race-strip{flex-wrap:wrap;justify-content:center;border-radius:22px;padding-left:12px;font-size:13px}.race-strip span{text-align:center;text-wrap:balance}.game-area:has(.race-top){--dm-drawer-h: max(min(40%, 40dvh), 180px)}.game-area.game-area:has(.race-top) .dm-panel{anchor-name:--dm-drawer;top:auto;left:12px;right:12px;bottom:calc(var(--dock-clear, 0px) + 8px);width:auto;max-height:var(--dm-drawer-h);overflow-y:auto}.game-area.game-area:has(.race-top) .dm-panel form{position:sticky;bottom:0;background:inherit}.game-area:has(.dm-panel) .race-top,.game-area.game-area:has(.race-top):has(.dm-panel) .save-failure-toast{bottom:calc(var(--dock-clear, 0px) + var(--dm-drawer-h) + 16px);bottom:calc(anchor(--dm-drawer top) + 8px)}.game-area.game-area:has(.race-top):has(.dm-panel) .save-failure-toast{anchor-name:--save-toast;left:12px;right:12px;max-width:none;transform:none}.game-area:has(.dm-panel):has(.save-failure-toast) .race-top{bottom:calc(anchor(--save-toast top) + 8px)}.game-area:has(.dm-panel) .race-top{overflow-y:auto;overscroll-behavior:contain}.game-area.game-area:has(.race-top) .dm-messages{min-height:0;overflow-y:auto}}@media(max-width:640px)and (max-height:640px){.game-area:has(.race-top){--dm-drawer-h: max(min(26%, 26dvh), 140px)}.game-area:has(.dm-panel) .race-top>.video-strip.race-thumbs{display:none}.game-area:has(.dm-panel) .race-top>.race-hud.race-hud-corner{padding-block:6px}.game-area:has(.dm-panel) .race-top .race-slot-frame{width:36px;height:36px}.game-area.game-area:has(.race-top):has(.dm-panel) .save-failure-toast{padding:2px 4px 2px 10px;line-height:1.25}}.race-slot{display:inline-flex;align-items:center;gap:8px}.race-slot-frame{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:10px;background:#ffffff1a;box-shadow:inset 0 0 0 2px #ffffffd9,inset 0 0 0 4px #281e46e6}.race-slot.empty .race-slot-frame{box-shadow:inset 0 0 0 2px #ffffff4d}.race-slot.rolling .race-slot-frame{box-shadow:inset 0 0 0 2px #e0b97e,inset 0 0 0 4px #281e46e6}.race-slot-label{font-size:12px;opacity:.9}.race-icon{display:block;image-rendering:pixelated}.race-keys{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:12px}.race-hud.race-hud-corner{gap:6px 16px;padding:10px 16px;font-size:16px}.race-hud.race-hud-corner strong,.race-hud.race-hud-corner .race-place,.race-hud.race-hud-corner .race-time{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums}.video-strip.race-thumbs{top:132px;left:12px;transform:none;flex-direction:column;max-width:none;max-height:calc(100% - 200px);overflow-x:hidden;overflow-y:auto}.video-strip.race-thumbs:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.video-strip.race-thumbs .video-tile{width:64px;height:48px;border-radius:10px}.video-strip.race-thumbs .video-tile figcaption{left:3px;bottom:3px;max-width:calc(100% - 6px);font-size:9px;padding:0 5px}@media(max-width:640px)and (max-height:520px){.game-area:has(.race-top):has(.dm-panel) .media-controls{gap:4px;padding:4px 6px}.game-area:has(.race-top):has(.dm-panel) .media-controls .media-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.game-area:has(.race-top):has(.dm-panel) .media-controls .media-btn{min-width:40px;min-height:36px;justify-content:center}}.avatar-editor.art .avatar-items{max-height:none;overflow:visible;grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}.avatar-editor.art .avatar-editor-preview{min-width:184px}.avatar-editor.art .avatar-tabpanel{min-height:430px}.avatar-editor.art .avatar-item[aria-disabled=true]{cursor:not-allowed;opacity:.8}.avatar-editor.art .avatar-item small{font-size:.6875rem;color:var(--fg)}.avatar-crop{display:block;width:64px;height:64px;overflow:visible clip}.avatar-crop .avatar-sprite{margin-top:var(--crop, 0)}.profile-actions:before{content:"";position:absolute;left:0;right:0;top:-24px;height:24px;background:linear-gradient(transparent,var(--card));pointer-events:none}.error-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px 16px;text-align:center;color:var(--fg);background:var(--bg)}.error-fallback.app{min-height:100%}.error-fallback.game{flex:1;min-height:0}.error-fallback h2{margin:0;font-size:20px}.error-fallback p{margin:0;max-width:36ch;color:var(--muted)}.error-fallback-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.error-fallback .btn:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.removed-exit [aria-disabled=true]{opacity:.6;cursor:progress}.removed-exit [role=status]:empty,.removed-exit [role=alert]:empty{margin:0}.account-settings{--account-radius: 12px;gap:16px}.account-settings h2,.account-settings h3{margin:0}.account-settings h3{font-size:1rem}.account-email{overflow-wrap:anywhere}.account-block{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-top:14px;border-top:1px solid var(--line);min-width:0}.account-block>p,.account-block>.field{align-self:stretch;overflow-wrap:anywhere}.account-danger{padding:14px;border:1px solid var(--danger-text);border-radius:var(--account-radius)}.account-danger h3{color:var(--danger-text)}.account-settings .btn,.account-settings .field input{min-height:44px;box-sizing:border-box}.account-settings .field input{width:100%;min-width:0}.account-settings .btn.danger{border-color:var(--danger-text)}.account-settings [aria-disabled=true]{opacity:.6;cursor:progress}.account-settings .btn.account-delete[aria-disabled=true]{opacity:1;color:var(--muted);border-color:var(--field-border);cursor:not-allowed}.account-settings a.btn{display:inline-flex;align-items:center;text-decoration:none;box-sizing:border-box}.account-kept{align-self:stretch;font-size:.875rem}.account-kept summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}.account-kept ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;overflow-wrap:anywhere}.account-settings [role=status]:empty,.account-settings [role=alert]:empty{margin:0;height:0}.account-settings [role=alert]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.farewell .btn{min-height:44px}.form-error{font-weight:600;padding-left:10px;border-left:3px solid currentColor}.form-error:focus{outline:2px solid var(--focus-ring);outline-offset:2px}.status-icon{--status-color: #9aa0a6;display:inline-flex;align-items:center;gap:4px;flex:none}.status-icon.status-available{--status-color: #3ccf6a}.status-icon.status-busy{--status-color: #e5534b}.status-glyph{display:block;fill:var(--status-color)}.status-glyph .status-mark{fill:#fff}.status-icon .status-text{margin-left:0}.person-menu-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.avatar-tabpanel{display:flex;flex-direction:column;gap:10px;min-width:0}.game-root:focus-visible{outline:3px solid var(--accent, #3d7bd9);outline-offset:-3px}.avatar-aid-note{max-width:100%;margin:0;font-size:1em}.avatar-editor-preview .avatar-aid-note{width:0;min-width:100%;overflow-wrap:anywhere}.btn.small{min-block-size:24px;min-inline-size:24px}.signout-failure{--z-signout: 25;--signout-radius: 8px;position:fixed;left:50%;bottom:16px;transform:translate(-50%);z-index:var(--z-signout);max-width:calc(100vw - 32px);margin:0;padding:10px 14px;background:Canvas;color:CanvasText;border:1px solid CanvasText;border-radius:var(--signout-radius)}.nearby-chat .nearby-unsent{pointer-events:auto}.nearby-unsent-note{display:block;font-style:italic}.dm-history-failure{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:6px 10px;border-bottom:1px solid var(--line)}.dm-history-text{margin:0;line-height:1.4}.dm-history-failure .btn[aria-disabled=true]{opacity:.6;cursor:progress}.connection-banner{flex:none;padding:4px 16px;background:#1f2229ee;color:#fff;font-size:.8125rem;font-weight:600;line-height:1.4;text-align:center;overflow-wrap:anywhere}.connection-banner.slow{background:var(--danger);color:var(--danger-ink)}.connection-banner.back{background:var(--accent);color:var(--accent-fg)}.media-split.waiting .media-btn,.media-split.waiting .media-caret{background:color-mix(in srgb,var(--danger) 18%,var(--card));border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}.connection-banner-idle{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.video-strip .video-host{transition:opacity .2s ease}.video-strip.switching .video-host{opacity:.45}@media(prefers-reduced-motion:reduce){.video-strip .video-host{transition:none}}.legal{box-sizing:border-box;width:min(68ch,100%);margin:0 auto;padding:24px 16px 48px;color:var(--fg);line-height:1.6;min-height:100%}.legal h1{margin:16px 0 4px;font-size:1.625rem;line-height:1.25}.legal h2{margin:28px 0 8px;font-size:1.125rem;line-height:1.3}.legal h3{margin:16px 0 2px;font-size:.9375rem}.legal p,.legal ul{margin:8px 0}.legal ul{padding-left:22px}.legal li{margin:6px 0}.legal-version{margin:0 0 16px;color:var(--muted);font-size:.875rem}.legal-pilot{margin:0 0 8px;padding:10px 14px;border:1px solid var(--line);border-left:4px solid var(--fg);border-radius:.5rem;background:var(--card);font-size:.875rem}.legal-top{font-size:.875rem}.legal-foot{margin-top:36px;padding-top:16px;border-top:1px solid var(--line);font-size:.875rem}.legal a,.terms-accept a,.guest-notice a,.legal-links a{color:inherit;text-decoration:underline;text-underline-offset:2px}.legal a:focus-visible,.terms-accept a:focus-visible,.terms-check input:focus-visible,.guest-notice a:focus-visible,.legal-links a:focus-visible,.legal h1:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:.125rem}.legal-links{display:flex;justify-content:center;flex-wrap:wrap;gap:4px 16px;font-size:.8125rem;color:var(--muted)}.legal-links a{display:inline-block;min-height:24px;line-height:24px}.guest-notice{font-size:.8125rem;line-height:1.5}.terms-links{margin:0;padding-left:20px;font-size:.875rem}.terms-links li{margin:4px 0}.terms-check{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--field-border);border-radius:.625rem;font-weight:600;cursor:pointer}.terms-check input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--fg)}.terms-accept h1:focus{outline:none}.terms-accept h1:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}.terms-accept [aria-disabled=true]{opacity:.7;cursor:default}@media(forced-colors:active){.legal-pilot{border-left-color:CanvasText}}.legal .ct-steps,.legal .it-rules{list-style:none;margin:16px 0;padding:0;display:grid;gap:8px}.legal .it-rules{gap:12px}.legal .ct-step,.legal .it-rule{margin:0;padding:10px 14px;border:1px solid var(--line);border-left-width:4px;border-radius:.5rem;background:var(--card)}.legal .ct-step{display:flex;align-items:flex-start;gap:12px}.ct-step[data-status=ok]{border-left-color:var(--fg)}.ct-step[data-status=warn]{border-left-color:var(--muted)}.ct-step[data-status=fail]{border-left-color:var(--danger)}.ct-mark{flex:none;display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;border:2px solid currentColor;border-radius:50%;font-size:.875rem;font-weight:700;line-height:1}.legal .ct-step-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;margin:0}.ct-state{color:var(--muted);font-size:.875rem}.ct-step[data-status=fail] .ct-state{color:var(--danger-text);font-weight:600}.legal .ct-step-text{margin:4px 0 0;font-size:.9375rem}.ct-verdict{margin:12px 0;padding:12px 16px;border:1px solid var(--line);border-left:4px solid var(--fg);border-radius:.5rem;background:var(--card)}.ct-verdict[data-kind=site],.ct-verdict[data-kind=realtime],.ct-verdict[data-kind=voice]{border-left-color:var(--danger)}.legal .ct-verdict h2{margin:0 0 4px;font-weight:600}.legal .ct-verdict p{margin:0}.ct-progress{color:var(--muted)}.ct .btn{min-height:44px}.ct .btn[aria-disabled=true]{opacity:.7;cursor:default}.ct summary{min-height:24px;cursor:pointer}.ct-textarea{box-sizing:border-box;width:100%;margin-top:8px;padding:10px;border:1px solid var(--field-border);border-radius:.5rem;background:var(--card);color:var(--fg);font:.8125rem/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;resize:vertical}.ct .btn:focus-visible,.ct summary:focus-visible,.ct-textarea:focus-visible,.legal button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.legal .it-rule h3{margin:0 0 6px;font-size:1rem}.legal .it-rule dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:6px 16px;margin:0 0 6px}.legal .it-rule dt{color:var(--muted);font-size:.8125rem}.legal .it-rule dd{margin:0;overflow-wrap:anywhere}.legal .it-rule p{margin:0}.legal code{overflow-wrap:anywhere}.help-connection a{color:inherit;text-decoration:underline;text-underline-offset:2px}.help-connection a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media(forced-colors:active){.ct-step,.it-rule,.ct-verdict{border-color:CanvasText}}.ct-hint{color:var(--muted);font-size:.875rem}.legal .it-copy{min-height:44px}.legal h2{scroll-margin-top:16px}.legal .it-index ul{display:flex;flex-wrap:wrap;gap:4px 8px;margin:8px 0 0;padding:0;list-style:none}.legal .it-index li{margin:0}.legal .it-index a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}.invite-doors{display:flex;flex-direction:column;gap:12px}.invite-door{display:block;text-align:left;white-space:normal;width:100%;box-sizing:border-box;text-decoration:none}.invite-door-note{display:block;margin-top:4px;font-size:.8125rem;font-weight:400}.team-paste h2,.team-notice h2,.team-paste h3{margin:0;font-size:1rem}.team-paste h3:focus{outline:2px solid currentColor;outline-offset:2px}.team-count p,.team-live{margin:0;font-size:.875rem}.admin-notice{overflow-wrap:anywhere}.support-mail{color:inherit;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}.support-mail:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:.125rem}.team-count p+p{margin-top:4px}.team-invalid{color:var(--danger-text)}.team-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.team-actions .btn[aria-disabled=true],.team-actions .btn[aria-disabled=true]:hover,.profile-actions .btn[aria-disabled=true],.profile-actions .btn[aria-disabled=true]:hover{background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--fg);border:2px dashed var(--fg);margin:-1px;cursor:not-allowed}.team-actions .btn[aria-disabled=true]:focus-visible,.profile-actions .btn[aria-disabled=true]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.team-picker{display:flex;flex-direction:column;align-items:flex-start;gap:6px;border:1px solid var(--line);border-radius:.375rem;padding:8px 12px;margin:0}.team-summary{margin:0;font-size:.875rem}.team-results{max-height:320px;overflow-y:auto}.team-results:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.team-results ul{list-style:none;margin:0;padding:0}.team-results li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:6px 0;border-top:1px solid var(--line);font-size:.875rem}.team-email{flex:1 1 220px;overflow-wrap:anywhere}.team-results li.invalid,.team-results li.failed,.team-results li.no-seat{color:var(--danger-text)}.admin-table-scroll{max-width:100%;overflow-x:auto;margin-bottom:12px}.admin-table-scroll:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.admin-table-scroll>.admin-table{min-width:0}.admin{--admin-wood: #8a5a2b;--admin-ok: #2f7a45;--admin-r-tab: 6px;--admin-r-chip: 7px;--admin-r-tile: 10px;--admin-r-card: 12px;--admin-r-pill: 999px;max-width:1040px}@media(prefers-color-scheme:dark){.admin{--admin-wood: #e0b07c;--admin-ok: #8fd6a4}}.admin-head{padding-bottom:14px;border-bottom:3px solid color-mix(in srgb,var(--admin-wood) 35%,transparent)}.admin-head h1{font-size:1.75rem;letter-spacing:-.01em;line-height:1.15}.admin-eyebrow{margin:0 0 2px;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--admin-wood)}.admin-tabs{margin:14px 0 18px}.admin-tabs button{font-size:.9375rem;font-weight:500;padding:10px 14px}.admin-tabs button:hover{color:var(--fg)}.admin-tabs button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px;border-radius:var(--admin-r-tab) var(--admin-r-tab) 0 0}.admin-card{padding:18px 20px;border-radius:var(--admin-r-card);margin-bottom:16px;gap:12px 16px}.admin-card h2,.usage-tile h2{margin:0;font-size:1.0625rem;font-weight:650}.admin-lead{margin:0;font-size:.875rem;line-height:1.5;color:var(--muted);max-width:70ch}.admin-count{display:inline-block;min-width:1.5em;padding:0 6px;margin-left:4px;border-radius:var(--admin-r-pill);background:color-mix(in srgb,var(--fg) 8%,transparent);font-size:.75rem;font-weight:600;text-align:center;font-variant-numeric:tabular-nums;vertical-align:.1em}.admin-empty{margin:0;padding:20px;border:1px dashed var(--line);border-radius:var(--admin-r-tile);text-align:center;font-size:.875rem;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:10px}.admin-empty p{margin:0}.admin-details summary{cursor:pointer;font-size:.8125rem;color:var(--muted)}.admin-details p{margin:6px 0 0}.team-seats{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0 0 16px}.team-seats p{margin:0;font-size:.9375rem}.seats-bar{flex:1 1 160px;max-width:280px;height:8px;border-radius:var(--admin-r-pill);background:color-mix(in srgb,var(--fg) 10%,transparent);overflow:hidden}.seats-bar>span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.team-seats.over .seats-bar>span{background:var(--danger)}.seats-over{color:var(--danger-text);font-weight:600}.admin-card.members{flex-wrap:nowrap}.members-tools{flex:none;display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px}.members-search{flex:1 1 220px;max-width:360px}.admin-segmented{display:inline-flex;flex-wrap:wrap;gap:4px;margin:0;padding:3px;border:1px solid var(--line);border-radius:var(--admin-r-tile)}.admin-segmented label{display:inline-flex;align-items:center;padding:5px 10px;border-radius:var(--admin-r-chip);font-size:.8125rem;cursor:pointer;color:var(--muted)}.admin-segmented label.on{background:color-mix(in srgb,var(--accent) 14%,var(--card));color:var(--fg);font-weight:600}.admin-segmented input{position:absolute;opacity:0;width:1px;height:1px}.admin-segmented label:has(input:focus-visible){outline:2px solid var(--focus-ring);outline-offset:1px}.members .admin-table-scroll{margin-bottom:0}.members .admin-table{border:0}.admin-you{font-weight:400;color:var(--muted)}.member-state{white-space:nowrap;font-size:.8125rem}.member-state.in{color:var(--admin-ok)}.member-state.pending{color:var(--muted)}@media(max-width:40rem){.members .admin-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.members .admin-table,.members .admin-table tbody{display:block}.members .admin-table tr{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 12px;padding:12px 0;border-bottom:1px solid var(--line)}.members .admin-table td{display:block;padding:0;border:0}.members .admin-table td:first-child,.members .admin-table td:last-child{grid-column:1 / -1}.members .admin-table td:last-child:empty{display:none}.members .admin-actions{justify-content:flex-start}}.usage-privacy{margin-bottom:14px}.usage-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:16px}.usage-tile{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px;background:var(--card);border:1px solid var(--line);border-radius:var(--admin-r-card)}.usage-tile h2{font-size:.875rem;font-weight:600;color:var(--muted)}.usage-tile p{margin:0}.usage-number{font-size:2rem;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}.usage-number span{font-size:1rem;font-weight:500;color:var(--muted)}.usage-bar{display:inline-block;width:120px;max-width:30vw;height:8px;margin-right:10px;border-radius:var(--admin-r-pill);background:color-mix(in srgb,var(--fg) 8%,transparent);vertical-align:middle;overflow:hidden}.usage-bar>span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.usage-weekend td{color:var(--muted)}.activity{display:flex;flex-direction:column;gap:14px}.activity-title{margin:0;font-size:1.0625rem;font-weight:650}.activity-filter{max-width:18rem}.activity-day h3{margin:0 0 6px;font-size:.875rem;font-weight:650;text-transform:none}.activity-day h3:first-letter{text-transform:uppercase}.activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--admin-r-card);background:var(--card)}.activity-item{display:grid;grid-template-columns:4.5rem 1fr;gap:12px;padding:10px 14px;font-size:.9375rem;line-height:1.45;overflow-wrap:anywhere}.activity-item+.activity-item{border-top:1px solid var(--line)}.activity-item time{color:var(--muted);font-variant-numeric:tabular-nums}.activity-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.activity-footer{margin-top:4px}:root{--avatar-variant-radius: 10px}.avatar-variants{display:grid;gap:4px;justify-items:center}.avatar-variants-row{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.avatar-variant{display:grid;place-items:center;min-width:48px;min-height:44px;padding:2px;border-radius:var(--avatar-variant-radius);border:2px solid var(--line);background:transparent;color:inherit;cursor:pointer}.avatar-variant.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.avatar-variant:disabled,.avatar-variant[aria-disabled=true]{cursor:not-allowed;opacity:.55}.avatar-history{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;width:0;min-width:100%}.avatar-history .btn[aria-disabled=true]{opacity:.55;cursor:default}.discard-confirm{--discard-radius: 10px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border:2px solid var(--accent);border-radius:var(--discard-radius)}.discard-confirm p{margin:0;flex:1 1 200px}.member-invite h1:focus{outline:none}.member-invite h1:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}.member-invite .row{gap:10px}.member-invite .btn,.member-invites .btn{min-height:44px;min-width:44px}.member-invite-fresh{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line);border-radius:.5rem}.member-invite-fresh .admin-field input{width:100%;min-height:44px;box-sizing:border-box;text-overflow:ellipsis}.member-invites-list-title{margin:4px 0 0;font-size:.9375rem}.member-invite-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.member-invite-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:10px 12px;border:1px solid var(--line);border-radius:.5rem;font-size:.875rem}.member-invite-row .btn{margin-left:auto}@media(max-width:40rem){.member-invite-row .btn{margin-left:0;width:100%}}@media(max-width:800px){.topbar{flex-wrap:wrap;overflow:visible;row-gap:6px}}@media(max-width:640px){.topbar>.muted,.topbar>.office-picker{flex-shrink:1;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .btn.small,.topbar .status-picker select{min-height:44px;box-sizing:border-box}.topbar .btn.small.me{min-width:44px}.topbar .status-picker,.topbar>.btn.small{flex:1 1 auto}.topbar .status-picker select{flex:1 1 auto;min-width:0}}@media(max-width:640px)and (pointer:coarse){.topbar .key-hint{display:none}}.minimap{width:120px;height:90px}.zoom-control{right:140px}@media(max-width:720px){.zoom-control{right:12px}}.game-area.decorating .zoom-control{right:12px}.game-area:has(.media-controls:not(.compact)) :is(.minimap,.zoom-control){bottom:max(84px,calc(var(--dock-clear, 0px) + 12px))}@media(max-width:1279px){.game-area:has(.media-controls:not(.compact)) .sound-toggle{bottom:calc(var(--dock-clear, 0px) + 12px)}}@media(max-width:720px){.game-area:not(.decorating):has(.media-controls:not(.compact)) .zoom-control{right:auto;left:12px;bottom:calc(var(--dock-clear, 0px) + 64px)}}
