:root{--field: rgba(10, 10, 10, .025);--line-strong: rgba(10, 10, 10, .28);--ring: rgba(10, 10, 10, .08);--bg: #fafafa;--fg: #0a0a0a;--muted: rgba(10, 10, 10, .45);--line: rgba(10, 10, 10, .1);--hover: rgba(10, 10, 10, .05);--panel: rgba(250, 250, 250, .96);--canvas: #f0f0f0;--wall: #f6f5f2;--art-shadow: rgba(40, 30, 20, .28);--dot: rgba(0, 0, 0, .13);--shadow: rgba(0, 0, 0, .4);--sel: #2f6fed;--radius: 10px;--glass: rgba(255, 255, 255, .1);--glass-thick: rgba(250, 250, 250, .74);--glass-line: rgba(255, 255, 255, .7);--glass-rim: inset 0 1px .5px rgba(255, 255, 255, .95), inset 0 -1px .5px rgba(255, 255, 255, .55), inset 0 0 8px rgba(255, 255, 255, .2), 0 0 0 1px rgba(0, 0, 0, .04);--glass-drop: 0 1px 2px rgba(0, 0, 0, .05), 0 10px 28px -8px rgba(0, 0, 0, .2);--glass-drop-deep: 0 2px 6px rgba(0, 0, 0, .06), 0 36px 80px -16px rgba(0, 0, 0, .38);--glass-fx: blur(2px) saturate(1.6) brightness(1.02);--glass-fx-thick: blur(28px) saturate(1.8);--glass-shine: rgba(255, 255, 255, .55);--chip: rgba(255, 255, 255, .8);--chip-drop: 0 1px 2px rgba(0, 0, 0, .1), 0 2px 8px -2px rgba(0, 0, 0, .12);--spring: cubic-bezier(.3, 1.36, .5, 1);--ease: cubic-bezier(.2, .7, .2, 1);--notch: 0px;--gold: #f5c542;--silver: #cfd6de;--bronze: #dd9358;--podium-ink: #1c1a0e;--stand-w: 150px;--stand-1: 220px;--stand-2: 170px;--stand-3: 135px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0a0a0a;--fg: #f5f5f5;--muted: rgba(245, 245, 245, .45);--line: rgba(245, 245, 245, .12);--hover: rgba(245, 245, 245, .07);--panel: rgba(18, 18, 18, .96);--canvas: #131313;--wall: #0c0c0c;--art-shadow: rgba(0, 0, 0, .9);--dot: rgba(255, 255, 255, .09);--shadow: rgba(0, 0, 0, .85);--sel: #5b8cff;--field: rgba(245, 245, 245, .035);--line-strong: rgba(245, 245, 245, .32);--ring: rgba(245, 245, 245, .1);--glass: rgba(255, 255, 255, .05);--glass-thick: rgba(22, 22, 24, .72);--glass-line: rgba(255, 255, 255, .12);--glass-rim: inset 0 1px .5px rgba(255, 255, 255, .32), inset 0 -1px .5px rgba(255, 255, 255, .12), inset 0 0 14px rgba(255, 255, 255, .05), 0 0 0 1px rgba(0, 0, 0, .35);--glass-fx: blur(2px) saturate(1.7) brightness(.78);--glass-drop: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 28px -8px rgba(0, 0, 0, .6);--glass-drop-deep: 0 2px 6px rgba(0, 0, 0, .3), 0 36px 80px -16px rgba(0, 0, 0, .8);--glass-shine: rgba(255, 255, 255, .1);--chip: rgba(255, 255, 255, .14);--chip-drop: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 3px rgba(0, 0, 0, .4);color-scheme:dark}}:root[data-theme=dark]{--field: rgba(245, 245, 245, .035);--line-strong: rgba(245, 245, 245, .32);--ring: rgba(245, 245, 245, .1);--bg: #0a0a0a;--fg: #f5f5f5;--muted: rgba(245, 245, 245, .45);--line: rgba(245, 245, 245, .12);--hover: rgba(245, 245, 245, .07);--panel: rgba(18, 18, 18, .96);--canvas: #131313;--wall: #0c0c0c;--art-shadow: rgba(0, 0, 0, .9);--dot: rgba(255, 255, 255, .09);--shadow: rgba(0, 0, 0, .85);--sel: #5b8cff;--glass: rgba(255, 255, 255, .05);--glass-thick: rgba(22, 22, 24, .72);--glass-line: rgba(255, 255, 255, .12);--glass-rim: inset 0 1px .5px rgba(255, 255, 255, .32), inset 0 -1px .5px rgba(255, 255, 255, .12), inset 0 0 14px rgba(255, 255, 255, .05), 0 0 0 1px rgba(0, 0, 0, .35);--glass-fx: blur(2px) saturate(1.7) brightness(.78);--glass-drop: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 28px -8px rgba(0, 0, 0, .6);--glass-drop-deep: 0 2px 6px rgba(0, 0, 0, .3), 0 36px 80px -16px rgba(0, 0, 0, .8);--glass-shine: rgba(255, 255, 255, .1);--chip: rgba(255, 255, 255, .14);--chip-drop: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 3px rgba(0, 0, 0, .4);color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg);color:var(--fg);font:14px/1.4 ui-sans-serif,system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}button{cursor:pointer}.icon-btn{position:relative;display:inline-grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:999px;background:transparent;color:inherit;transition:background .2s,color .2s,transform .3s var(--spring)}.icon-btn:hover:not(:disabled){background:var(--hover)}.icon-btn:active:not(:disabled){transform:scale(.9)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.on{background:var(--fg);color:var(--bg)}.icon-btn.on:hover:not(:disabled){background:color-mix(in srgb,var(--fg) 85%,var(--bg))}.icon-btn svg{width:18px;height:18px}.float{position:absolute;z-index:5;display:flex;gap:2px;padding:4px;border-radius:999px}.float,.modal,.tabs,.primary,.secondary,.context-menu,.players-menu,.player-card,.ui-tip,.podium-btn,.share-btn,.more-btn{border:1px solid var(--glass-line);background-color:var(--glass);box-shadow:var(--glass-rim),var(--glass-drop);backdrop-filter:var(--glass-fx) var(--refract,);-webkit-backdrop-filter:var(--glass-fx)}.modal,.context-menu,.players-menu,.player-card,.ui-tip{background-color:var(--glass-thick);backdrop-filter:var(--glass-fx-thick) var(--refract,);-webkit-backdrop-filter:var(--glass-fx-thick)}.modal{box-shadow:var(--glass-rim),var(--glass-drop-deep)}.modal .tabs,.modal .primary,.modal .secondary{box-shadow:var(--glass-rim)}.float:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(90px circle at var(--gx, 50%) var(--gy, 0px),var(--glass-shine),transparent 70%);opacity:0;transition:opacity .4s;pointer-events:none}.float:hover:before{opacity:1}@media(prefers-reduced-transparency:reduce){:root{--glass: var(--panel);--glass-thick: var(--bg);--glass-fx: none;--glass-fx-thick: none}}.float.tl{top:16px;left:16px}.tr{position:absolute;top:16px;right:16px;z-index:5;display:flex;align-items:center}.room .float,.room .players,.room .podium-btn,.room .share-btn{transition:opacity .2s ease}.room.idle .float,.room.idle .players,.room.idle .podium-btn,.room.idle .share-btn{opacity:0;pointer-events:none}.modal-bg{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:calc(16px + var(--notch)) 16px 16px;--scrim: rgba(0, 0, 0, .28);--scrim-fx: blur(5px)}.modal-bg:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--scrim);backdrop-filter:var(--scrim-fx);-webkit-backdrop-filter:var(--scrim-fx);animation:fade .2s ease}.modal{display:flex;flex-direction:column;gap:20px;width:min(420px,100%);padding:24px;border-radius:28px;animation:pop .36s var(--spring)}.modal h1{margin:0;font-size:22px;font-weight:600;letter-spacing:-.02em}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(10px) scale(.96)}}.modal-bg.closing{pointer-events:none}.modal-bg.closing:before{animation:fade-out .16s ease forwards}.modal-bg.closing .modal{animation:pop-out .16s ease forwards}@keyframes fade-out{to{opacity:0}}@keyframes pop-out{to{opacity:0;transform:translateY(6px) scale(.98)}}.modal.dialog{max-height:calc(100dvh - 32px - var(--notch));gap:16px;padding:20px 20px 20px 24px}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px}.dialog-title{display:flex;align-items:center;gap:6px;min-width:0}.dialog-title .icon-btn{margin-left:-8px}.dialog-actions{display:flex;align-items:center;gap:8px}.dialog-bar{flex:none}.dialog-body{min-height:0;display:flex;flex-direction:column;gap:20px;margin-right:-8px;padding-right:8px;overflow-y:auto;scrollbar-width:thin}.dialog-tabs{display:flex;justify-content:center}.prompt-form{display:flex;flex-direction:column;gap:20px}.dialog-body>*{flex:none}.modal-bg.sheet-bg{--scrim: transparent;--scrim-fx: blur(12px)}.modal.sheet{width:min(1080px,100%);height:calc(100dvh - 32px - var(--notch));gap:20px}.sheet .dialog-body,.profile .dialog-body{margin:-12px -16px -20px -22px;padding:12px 16px 32px 22px}.new-btn{height:36px;padding:0 10px 0 14px;font-size:14px}.new-btn svg{width:18px;height:18px}.tabs{display:inline-flex;gap:2px;padding:3px;border-radius:999px}.tab{height:30px;padding:0 16px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:13px;white-space:nowrap;transition:color .2s,background .25s,box-shadow .25s,transform .3s var(--spring)}.tab:hover{color:var(--fg)}.tab:active{transform:scale(.95)}.tab.on{background:var(--chip);box-shadow:var(--chip-drop);color:var(--fg)}.gallery{position:fixed;inset:0;z-index:50;overflow:hidden;background:var(--wall);animation:gallery-in .55s ease .12s both}@keyframes gallery-in{0%{opacity:0}}.gallery.going{pointer-events:none}.gallery.going .gallery-actions,.gallery.going .gallery-head h1,.gallery.going .gallery-tabs,.gallery.going .canvas-where,.gallery.going .tile{opacity:0;transition:opacity .22s ease}.gallery.going .tile{animation:none}.gallery .tile,.gallery .tile img{-webkit-user-drag:none}.gallery.closing{animation:fade-out .45s ease forwards}.gallery-head{position:absolute;top:calc(16px + var(--notch));left:0;right:0;width:min(1600px,100% - 32px);margin:0 auto;z-index:3;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;pointer-events:none;transition:opacity .2s}.gallery-head>*{pointer-events:auto}.gallery-head .float{position:relative;justify-self:start}.gallery-head h1{margin:0;font-size:15px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}.gallery-tabs{position:absolute;top:calc(72px + var(--notch));left:0;right:0;z-index:3;display:flex;justify-content:center;pointer-events:none;transition:opacity .2s}.gallery-tabs .tabs{pointer-events:auto}.gallery-actions{display:flex;justify-self:end;align-items:center;gap:8px}@media(max-width:600px){.gallery-head h1{display:none}.gallery-head{grid-template-columns:1fr 1fr}.gallery-actions .new-btn span{display:none}.gallery-actions .new-btn{padding:0 10px}}.canvas{position:absolute;inset:0;z-index:1;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.canvas.dragging .tile{pointer-events:none}.cell{position:absolute;top:0;left:0;will-change:transform}.canvas-heading{display:flex;align-items:baseline;gap:10px;font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:var(--muted);animation:fade .5s ease .2s both;transition:opacity .2s}.canvas-heading .n{font-variant-numeric:tabular-nums;letter-spacing:0;opacity:.7}.gallery.going .canvas-heading{opacity:0}.canvas-where{position:absolute;bottom:20px;z-index:2;display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;white-space:pre;left:24px;pointer-events:none;transition:opacity .2s}@media(max-width:600px){.canvas-where{display:none}}.tile{position:relative;display:flex;flex-direction:column;align-items:center;color:var(--fg);text-decoration:none;outline:0;-webkit-tap-highlight-color:transparent;animation:tile-in .7s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(.22s + var(--i, 0) * 40ms)}@keyframes tile-in{0%{opacity:0;transform:translateY(26px) scale(.96)}}.tile .pic{position:relative;display:grid;place-items:center;transform:perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(var(--lift, 0px));transition:transform .3s cubic-bezier(.2,.7,.2,1)}.tile:hover .pic{--lift: -4px;transition-duration:.12s}.tile:focus-visible .pic{outline:2px solid var(--sel);outline-offset:6px;border-radius:4px}.art-pic{position:relative;display:block;overflow:hidden;border-radius:10px;box-shadow:0 1px 2px var(--art-shadow),0 22px 40px -18px var(--art-shadow);transition:box-shadow .35s}.tile.art:hover .art-pic{box-shadow:0 2px 4px var(--art-shadow),0 34px 54px -20px var(--art-shadow)}.tile.art{align-items:stretch}.art-info{display:flex;align-items:center;gap:6px;margin-top:12px;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;letter-spacing:.02em;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s}.art-info .dot{opacity:.6}.art-info svg{flex:none;width:12px;height:12px}.tile.art:hover .art-info{color:var(--fg)}.art-pic img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}.art-pic img.full{opacity:0;transition:opacity .4s}.art-pic img.full.on{opacity:1}.art-pic:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--mx, 50%) var(--my, 50%),rgba(255,255,255,.22),transparent 55%);opacity:0;transition:opacity .3s;pointer-events:none}.tile.art:hover .art-pic:after{opacity:1}.tile .del{position:absolute;top:6px;right:6px;z-index:1;width:30px;height:30px;opacity:0;border:1px solid var(--glass-line);background:var(--glass-thick);box-shadow:var(--glass-drop);backdrop-filter:var(--glass-fx);-webkit-backdrop-filter:var(--glass-fx);color:var(--fg);transition:transform .3s var(--spring),opacity .15s,background .15s,color .15s}.tile.art .del{top:10px;right:10px}.tile:hover .del,.tile:focus-visible .del{opacity:1}.tile .del:hover:not(:disabled){border-color:var(--danger);background:var(--danger);color:#fff}.tile .del svg{width:16px;height:16px}@media(hover:none){.tile .del{opacity:1}}.gallery-empty{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:16px;color:var(--muted)}.gallery-empty p{margin:0;font-size:15px}.room.leaving{pointer-events:none;animation:room-away .8s ease-in forwards}.room.leaving .float:not(.tl),.room.leaving .tr,.room.leaving .notes-clip,.room.leaving .podium-btn,.room.leaving .share-btn{opacity:0;transition:opacity .15s}@keyframes room-away{to{opacity:.4}}@media(prefers-reduced-motion:reduce){.gallery,.tile,.room.leaving{animation-duration:.01s;animation-delay:0s}}.card{position:relative;display:flex;flex-direction:column;gap:8px;padding:6px 6px 10px;border:1px solid var(--line);border-radius:20px;background:var(--field);color:var(--fg);text-decoration:none;transition:background .2s,border-color .2s,box-shadow .3s,transform .35s var(--ease)}.card:hover{border-color:var(--line-strong);background:var(--hover);box-shadow:var(--glass-drop);transform:translateY(-2px)}.card:focus-visible{outline:2px solid var(--sel);outline-offset:2px}.card-pic{display:block;aspect-ratio:4 / 3;overflow:hidden;border-radius:14px;background:var(--hover);box-shadow:inset 0 0 0 1px var(--line)}.card .thumb{display:block;width:100%;height:100%;object-fit:cover}.card .progress{display:block;height:3px;margin:0 4px;overflow:hidden;border-radius:2px;background:var(--line)}.card .progress span{display:block;height:100%;border-radius:inherit;background:var(--fg)}.card-stats{display:flex;align-items:center;gap:12px;height:17px;padding:0 4px;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.card-stats>span{display:inline-flex;align-items:center;gap:4px}.card-stats svg{width:13px;height:13px}.card-stats .pct{margin-left:auto;color:var(--fg);font-weight:600}.card.done .progress span{background:var(--line-strong)}.card.done .pct svg{stroke-width:2.4}.card.ghost{pointer-events:none}.card.ghost .card-pic,.ghost-bar{background:linear-gradient(100deg,var(--hover) 30%,color-mix(in srgb,var(--hover) 40%,var(--bg)) 50%,var(--hover) 70%) var(--hover);background-size:300% 100%;box-shadow:none;animation:ghost 1.4s ease-in-out infinite}.ghost-bar{display:block;height:10px;border-radius:999px;background-color:var(--line);background-image:linear-gradient(100deg,var(--line) 30%,color-mix(in srgb,var(--line) 40%,var(--bg)) 50%,var(--line) 70%)}.ghost-bar.stats{width:45%;margin:10px 4px 8px}.ghost-bar.caption{width:45%;height:8px}.card.ghost:nth-child(3n+2) .card-pic,.card.ghost:nth-child(3n+2) .ghost-bar,.profile-room:nth-child(3n+2) .card-pic,.profile-room:nth-child(3n+2) .ghost-bar{animation-delay:.15s}.card.ghost:nth-child(3n) .card-pic,.card.ghost:nth-child(3n) .ghost-bar,.profile-room:nth-child(3n) .card-pic,.profile-room:nth-child(3n) .ghost-bar{animation-delay:.3s}@keyframes ghost{0%{background-position:100% 0}to{background-position:0 0}}@media(prefers-reduced-motion:reduce){.card.ghost .card-pic,.ghost-bar{animation:none}}.field{display:flex;flex-direction:column;gap:10px;width:100%}.label{margin:0;color:var(--muted);font-size:12px;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.row{display:flex;align-items:center;gap:8px;width:100%}.text{flex:1 1 auto;min-width:0;height:48px;padding:0 16px;border:1px solid var(--line);border-radius:14px;outline:0;background:var(--field);font-size:15px;transition:border-color .15s,box-shadow .15s,background .15s}.text:hover{border-color:var(--line-strong)}.text:focus{border-color:var(--fg);box-shadow:0 0 0 4px var(--ring);background:transparent}.text::placeholder{color:var(--muted)}.row>.text:not(.compact)~.primary,.row>.text:not(.compact)~.secondary{height:48px}.text.compact{height:38px;padding:0 14px;font-size:14px}.text.bad,.text.bad:focus{border-color:#d33;box-shadow:0 0 0 4px #dd33331f}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;min-width:88px;height:44px;padding:0 18px;border-radius:999px;font-size:15px;font-weight:500;white-space:nowrap;transition:opacity .2s,transform .3s var(--spring),background .2s,border-color .2s,box-shadow .2s}.primary{border-color:color-mix(in srgb,var(--fg) 30%,var(--glass-line));background-color:color-mix(in srgb,var(--fg) 76%,transparent);background-image:linear-gradient(#ffffff29,#fff0 60%);color:var(--bg)}.primary:hover:not(:disabled){background-color:color-mix(in srgb,var(--fg) 88%,transparent)}.secondary{color:var(--fg)}.secondary:hover:not(:disabled){background-color:var(--hover)}.primary:active:not(:disabled),.secondary:active:not(:disabled){transform:scale(.96)}.primary:focus-visible,.secondary:focus-visible{outline:0;box-shadow:0 0 0 4px var(--ring)}.primary:disabled,.secondary:disabled{opacity:.35;cursor:default}.primary svg,.secondary svg{width:18px;height:18px}.primary.wide{width:100%;height:48px;margin-top:4px}.primary .spin{width:16px;height:16px;border-color:transparent;border-top-color:var(--bg)}.secondary .spin{width:16px;height:16px}input[type=range]{--p: 50%;flex:1;height:20px;margin:0;background:transparent;cursor:pointer;appearance:none;-webkit-appearance:none}input[type=range]:focus{outline:0}input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--fg) 0 var(--p),var(--line) var(--p) 100%)}input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--line)}input[type=range]::-moz-range-progress{height:4px;border-radius:2px;background:var(--fg)}input[type=range]::-webkit-slider-thumb{width:18px;height:18px;margin-top:-7px;border:3px solid var(--bg);border-radius:50%;background:var(--fg);box-shadow:0 0 0 1px var(--fg),0 1px 4px #0003;transition:transform .1s;appearance:none;-webkit-appearance:none}input[type=range]::-moz-range-thumb{width:12px;height:12px;border:3px solid var(--bg);border-radius:50%;background:var(--fg);box-shadow:0 0 0 1px var(--fg),0 1px 4px #0003}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12)}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 1px var(--fg),0 0 0 5px var(--ring)}.toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--field);color:var(--fg);font:inherit;text-align:left;transition:border-color .15s}.toggle:hover{border-color:var(--line-strong)}.toggle:focus-visible{outline:0;box-shadow:0 0 0 4px var(--ring)}.toggle-text{display:flex;flex-direction:column;gap:2px;min-width:0}.toggle-hint{color:var(--muted);font-size:13px}.toggle-track{flex:none;position:relative;width:40px;height:24px;border-radius:12px;background:var(--line-strong);transition:background .2s}.toggle-knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--bg);box-shadow:0 1px 2px #00000040;transition:transform .2s}.toggle.on .toggle-track{background:var(--fg)}.toggle.on .toggle-knob{transform:translate(16px)}.modal.sheet.new-sheet{width:min(820px,100%);height:auto;max-height:calc(100dvh - 32px - var(--notch))}.create{display:flex;flex-direction:column;gap:28px}.stage{position:relative;display:grid;place-items:center;min-height:0;padding:12px;overflow:hidden;border:1px dashed var(--line-strong);border-radius:24px;background:var(--field);color:var(--muted);cursor:pointer;outline:0;transition:border-color .15s,background .15s,color .15s}.stage:hover,.stage.over{border-color:var(--fg);color:var(--fg)}.stage.over{background:var(--hover)}.stage:focus-visible{box-shadow:0 0 0 4px var(--ring)}.stage{height:min(66dvh,640px)}.stage.has{border:0;background:var(--canvas)}.stage-pic{display:grid;place-items:center;width:100%;height:100%;min-height:0}.stage-pic canvas{display:block;border-radius:4px;box-shadow:0 1px 2px var(--art-shadow),0 18px 40px -18px var(--art-shadow)}.stage-empty{display:grid;justify-items:center;gap:6px;text-align:center}.stage-icon{display:grid;place-items:center;width:64px;height:64px;margin-bottom:10px;border:1px solid var(--line);border-radius:50%;background:var(--bg);transition:border-color .15s,transform .2s}.stage:hover .stage-icon{border-color:var(--fg);transform:translateY(-2px)}.stage-icon svg{width:24px;height:24px}.stage-title{color:var(--fg);font-size:16px;font-weight:500}.stage-hint{font-size:13px}.stage input{display:none}.stage-clear{position:absolute;top:12px;right:12px;background:#00000080;color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.stage-clear:hover{background:#000000b3}.create-side{display:flex;flex-direction:column;gap:28px}.create-part{display:flex;flex-direction:column;gap:12px}.count{display:flex;align-items:baseline;gap:12px}.count-num{width:3.4em;margin:0 0 0 -6px;padding:0 6px;border:1px solid transparent;border-radius:8px;outline:0;background:transparent;font-size:40px;font-weight:600;letter-spacing:-.03em;line-height:1.15;font-variant-numeric:tabular-nums;transition:border-color .15s,background .15s}.count-num:hover{background:var(--hover)}.count-num:focus{border-color:var(--fg);background:transparent}.count-grid{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.shapes{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.shape{display:grid;justify-items:center;gap:6px;padding:10px 2px 8px;border:1px solid var(--line);border-radius:14px;background:var(--field);color:var(--muted);font-size:11px;transition:border-color .15s,color .15s,background .15s}.shape:hover{border-color:var(--line-strong);color:var(--fg)}.shape.on{border-color:var(--fg);background:var(--bg);color:var(--fg);font-weight:500}.shape:focus-visible{outline:0;box-shadow:0 0 0 4px var(--ring)}.shape svg{width:28px;height:28px}.toggle-title{display:inline-flex;align-items:center;gap:8px}.toggle-title svg{width:15px;height:15px}.create-slot{display:flex}.create-btn:disabled{opacity:1;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;background:color-mix(in srgb,var(--fg) 9%,var(--bg));color:color-mix(in srgb,var(--fg) 40%,var(--bg))}.room{position:fixed;inset:0;overflow:hidden;background:var(--canvas);-webkit-user-select:none;user-select:none}.room input{-webkit-user-select:text;user-select:text}.room canvas.board{position:absolute;inset:0;width:100%;height:100%;touch-action:none;outline:0}.room canvas.gpu{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.gpu-error{max-width:420px;padding:0 16px;text-align:center}.room canvas.gpu.top{z-index:4}.notes-clip{display:contents}.room.split .notes-clip{position:absolute;inset:0 50% 0 0;z-index:4;display:block;overflow:hidden;pointer-events:none}.room.split-4 .notes-clip{bottom:50%}.split-line{position:absolute;top:0;bottom:0;left:50%;z-index:5;width:2px;margin-left:-1px;background:var(--line-strong);pointer-events:none}.split-line.across{inset:50% 0 auto 50%;width:auto;height:2px;margin:-1px 0 0}.room.split-4 .split-line.across{left:0}.room canvas.cursors{position:absolute;inset:0;z-index:5;width:100%;height:100%;pointer-events:none}.tip{position:absolute;top:0;left:0;z-index:6;padding:3px 8px;border-radius:6px;background:var(--fg);color:var(--bg);font-size:12px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s}.center{display:grid;place-items:center;height:100%;color:var(--muted)}.spin{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--fg);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:480px){.card-stats{gap:8px}}.float.tc{top:16px;left:50%;align-items:center;transform:translate(-50%)}.bar-sep{align-self:stretch;width:1px;margin:6px 4px;background:var(--line)}.stat{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 10px;font-variant-numeric:tabular-nums;white-space:nowrap;cursor:default}.stat svg{width:16px;height:16px;color:var(--muted)}:root[data-notch] .room .tc{top:calc(8px + var(--notch))}.float.dev-menu{top:68px;left:50%;align-items:center;transform:translate(-50%)}:root[data-notch] .room .dev-menu{top:calc(60px + var(--notch))}.dev-label{padding:0 8px 0 6px;color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.dev-btn{height:32px;padding:0 12px;border:0;border-radius:999px;background:transparent;color:inherit;white-space:nowrap;transition:background .15s}.dev-btn:hover{background:var(--hover)}.play-tools .icon-btn{cursor:grab;touch-action:none}.react-pick{position:relative;display:inline-flex}.play-tools .react-pick .icon-btn{cursor:pointer;touch-action:manipulation}.reactions{position:absolute;inset:0;z-index:4;overflow:hidden;pointer-events:none}.reaction{position:absolute;top:0;left:0;font-size:28px;line-height:1;-webkit-user-select:none;user-select:none;will-change:transform,opacity}.notes{position:absolute;top:0;left:0;z-index:4;width:0;height:0;transform-origin:0 0;pointer-events:none}.note{position:absolute;display:flex;flex-direction:column;width:max-content;min-width:calc(var(--u) * var(--nw));padding:calc(var(--u) * .16) calc(var(--u) * .18);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:calc(var(--u) * .02) solid var(--edge, var(--line));border-radius:calc(var(--u) * .16);background:color-mix(in srgb,var(--edge, var(--bg)) 16%,var(--bg));color:var(--fg);font-size:calc(var(--u) * .26);--drop: 0 calc(var(--u) * (.06 + .3 * var(--up, 0))) calc(var(--u) * (.24 + .5 * var(--up, 0))) rgba(0, 0, 0, calc(.18 + .12 * var(--up, 0)));box-shadow:var(--drop);pointer-events:auto}.note.sel,.note.marked{border-color:var(--sel);box-shadow:0 0 0 calc(var(--u) * .03) var(--sel),var(--drop)}.note.marked{--sel: var(--mark)}.note[data-lit]:not(.sel,.marked){border-color:var(--lit);box-shadow:0 0 0 calc(var(--u) * .03) var(--lit),var(--drop)}.note-menu{position:absolute;top:calc(var(--u) * -.16);right:calc(var(--u) * -.16);display:flex;align-items:center;justify-content:center;gap:calc(var(--u) * .04);width:calc(var(--u) * .36);height:calc(var(--u) * .36);padding:0;border:calc(var(--u) * .02) solid var(--line);border-radius:calc(var(--u) * .1);background:var(--bg);box-shadow:0 calc(var(--u) * .03) calc(var(--u) * .1) #00000026;color:var(--muted);cursor:pointer;opacity:0;transform:scale(.75);pointer-events:none;transition:opacity .15s,transform .15s}.note-menu i{width:calc(var(--u) * .045);height:calc(var(--u) * .045);border-radius:50%;background:currentColor}.note.sel .note-menu{opacity:1;transform:none;pointer-events:auto}@media(hover:hover){.note:hover .note-menu{opacity:1;transform:none;pointer-events:auto}}.note-menu:hover{background:linear-gradient(var(--hover),var(--hover)) var(--bg);color:var(--fg)}.note-reacts{display:flex;gap:calc(var(--u) * .02);margin-left:calc(var(--u) * -.06)}.note-react{display:none;align-items:center;gap:calc(var(--u) * .05);height:calc(var(--u) * .32);margin-top:calc(var(--u) * .06);padding:0 calc(var(--u) * .06);border:0;border-radius:calc(var(--u) * .1);background:transparent;color:var(--fg);font:inherit;font-size:calc(var(--u) * .2);line-height:1;cursor:pointer;opacity:0;transform:scale(.75);transition:opacity .15s,transform .15s,background .15s,display .15s allow-discrete}.note-react.used,.note.sel .note-react{display:inline-flex;opacity:1;transform:none}@media(hover:hover){.note:hover .note-react{display:inline-flex;opacity:1;transform:none}}@starting-style{.note.sel .note-react:not(.used){opacity:0;transform:scale(.75)}}@media(hover:hover){@starting-style{.note:hover .note-react:not(.used){opacity:0;transform:scale(.75)}}}.note-react:not(.used) span{opacity:.55}.note-react:hover{background:var(--hover)}.note-react:hover span{opacity:1}.note-react.mine{background:color-mix(in srgb,var(--sel) 16%,transparent)}.note-react.mine:hover{background:color-mix(in srgb,var(--sel) 24%,transparent)}.note-react b{font-weight:600;font-variant-numeric:tabular-nums}.note-react svg{width:calc(var(--u) * .22);height:calc(var(--u) * .22);color:var(--muted)}.note-react:hover svg{color:var(--fg)}.note-reply{position:relative;margin-top:calc(var(--u) * .08);padding-top:calc(var(--u) * .08);border-top:calc(var(--u) * .02) solid var(--line)}.note-reply b{display:block;margin-bottom:calc(var(--u) * .02);color:var(--muted);font-size:calc(var(--u) * .18);font-weight:600}.note-reply span{display:block;padding-right:calc(var(--u) * .3);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.4;white-space:pre}.note-reply-delete{position:absolute;top:calc(var(--u) * .08);right:0;display:flex;align-items:center;justify-content:center;width:calc(var(--u) * .26);height:calc(var(--u) * .26);padding:0;border:0;border-radius:calc(var(--u) * .08);background:transparent;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .15s,background .15s}.note-reply:hover .note-reply-delete{opacity:1}.note-reply-delete:hover{background:var(--hover);color:var(--fg)}.note-reply-delete svg{width:calc(var(--u) * .18);height:calc(var(--u) * .18)}.note textarea{display:block;width:100%;min-width:100%;min-height:1.4em;padding:0;cursor:grab;border:0;outline:0;background:transparent;color:inherit;font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.4;white-space:pre;overflow:hidden;resize:none;pointer-events:none;-webkit-user-select:none;user-select:none}.note textarea::placeholder{color:var(--muted)}.note textarea:placeholder-shown{white-space:pre-wrap}.note textarea:focus{cursor:text;pointer-events:auto;-webkit-user-select:text;user-select:text}.note textarea.note-reply-field{cursor:text;pointer-events:auto;-webkit-user-select:text;user-select:text}.note-ghost{position:fixed;top:-20px;left:-32px;z-index:50;width:64px;height:40px;border:1px solid var(--line);border-radius:8px;background:var(--bg);box-shadow:0 8px 24px var(--shadow);pointer-events:none}.tray-ghost{position:fixed;top:-24px;left:-36px;z-index:50;width:72px;height:48px;border:1.5px solid var(--sel);border-radius:6px;background:color-mix(in srgb,var(--sel) 14%,transparent);box-shadow:0 8px 24px var(--shadow);pointer-events:none}@media(max-width:640px){.float.tc,:root[data-notch] .room .tc{top:auto;bottom:calc(16px + env(safe-area-inset-bottom))}.room .podium-btn,.room .share-btn{bottom:calc(74px + env(safe-area-inset-bottom))}}.players{position:relative;display:flex;align-items:center;gap:4px}.player-dots{display:flex;margin:0;padding:0;list-style:none}.player-dots li{position:relative}.player-dots li+li{margin-left:-6px}.player-dots li:nth-child(1){z-index:5}.player-dots li:nth-child(2){z-index:4}.player-dots li:nth-child(3){z-index:3}.player-dots li:nth-child(4){z-index:2}.player-dots li:nth-child(5){z-index:1}.player-btn{display:block;padding:0;border:0;border-radius:50%;background:none;transition:transform .15s ease}.player-btn:hover,.player-btn:focus-visible{position:relative;z-index:6;transform:translateY(-2px)}.player-btn:focus-visible{outline:2px solid var(--sel);outline-offset:2px}.player-dot{flex:none;display:grid;place-items:center;width:36px;height:36px;box-sizing:border-box;border:2px solid var(--canvas);border-radius:50%;background:var(--c);box-shadow:0 1px 4px var(--shadow);color:#fff;font-size:13px;font-weight:600;letter-spacing:.01em;white-space:nowrap;-webkit-user-select:none;user-select:none}.player-dot.you{position:relative}.player-dot.you:after{content:"You";position:absolute;bottom:-7px;left:50%;padding:1px 4px;border-radius:999px;background:var(--fg);color:var(--bg);font:700 8px/1.2 ui-sans-serif,system-ui,-apple-system,sans-serif;letter-spacing:.04em;text-transform:uppercase;transform:translate(-50%)}.player-dot.big.you:after{bottom:-8px;padding:2px 6px;font-size:10px}.you-label{color:var(--muted);font-weight:400}.player-dot.online{border-color:var(--c);box-shadow:inset 0 0 0 2px var(--canvas),0 1px 4px var(--shadow)}.player-dot.big{width:64px;height:64px;border-width:3px;font-size:22px}.player-dot.big.online{box-shadow:inset 0 0 0 3px var(--bg),0 2px 8px var(--shadow)}.player-dot.big:not(.online){border-color:var(--bg)}.more-btn:hover:not(:disabled){background:var(--glass-thick)}.player-card.side{position:fixed}.player-card{position:absolute;top:calc(100% + 10px);right:-8px;z-index:7;display:flex;flex-direction:column;gap:6px;width:220px;padding:12px;border-radius:20px;font-size:13px;pointer-events:none;animation:pop .26s var(--spring)}.player-card-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}.player-card-head>div{min-width:0}.player-card .player-dot.online{box-shadow:inset 0 0 0 2px var(--bg)}.player-card .player-dot:not(.online){border-color:var(--bg);box-shadow:none}.player-card-name{overflow:hidden;font-size:14px;font-weight:600;white-space:nowrap;text-overflow:ellipsis}.player-card-sub{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.player-card-row{display:flex;align-items:center;gap:8px;font-variant-numeric:tabular-nums}.player-card-row svg{flex:none;width:14px;height:14px;color:var(--muted)}.player-card-row.owner svg,.profile-stat.owner svg,.powner,.profile-share svg.crown{color:#e5a50a}.presence{flex:none;width:8px;height:8px;border-radius:50%;background:var(--line-strong)}.presence.here{background:#30a46c}.players-menu{position:absolute;top:calc(100% + 8px);right:-4px;z-index:7;display:flex;flex-direction:column;gap:2px;width:300px;max-height:min(420px,calc(100dvh - 90px));overflow:hidden;padding:12px 6px;border-radius:22px;transform-origin:100% 0;animation:pop .3s var(--spring)}.players-list{display:flex;flex-direction:column;gap:2px;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.players-menu.closing{pointer-events:none;animation:pop-out .16s ease forwards}.players-total{display:flex;align-items:center;gap:7px;margin:0 0 10px;padding:0 8px;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.players-total svg{width:14px;height:14px}.players-menu .label{display:flex;align-items:baseline;gap:8px;margin:0;padding:0 8px 6px}.players-menu section{display:flex;flex-direction:column;gap:2px}.players-menu section+section{margin-top:10px}.players-menu .label .n{font-variant-numeric:tabular-nums;letter-spacing:0;opacity:.7}.players-row{display:flex;width:100%;align-items:center;gap:10px;padding:5px 8px;border:0;border-radius:14px;background:transparent;color:inherit;text-align:left}.players-row:hover,.players-row.me{background:var(--hover)}.players-row .player-dot{width:30px;height:30px;font-size:12px;box-shadow:none}.players-row .player-dot:not(.online){border-color:transparent}.players-row .player-dot.online{box-shadow:inset 0 0 0 2px var(--bg)}.pname{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.powner{display:inline-flex;margin-left:5px;vertical-align:-2px}.powner svg,.pstat svg{width:14px;height:14px}.pstat{display:inline-flex;align-items:center;gap:4px;font-variant-numeric:tabular-nums}.pstat svg{color:var(--muted)}.ptime{min-width:58px;justify-content:flex-end}.modal.profile{width:min(760px,100%)}.profile-head{display:flex;align-items:center;gap:16px}.profile-who{display:flex;flex-direction:column;gap:4px}.profile-status{display:flex;align-items:center;gap:7px;font-weight:500}.profile-account{display:inline-flex;align-items:center;gap:6px;margin-left:auto}.profile-account svg{width:15px;height:15px}.profile-since{color:var(--muted);font-size:13px}.profile .label{display:flex;align-items:baseline;gap:8px;margin:0 0 10px}.profile .label .n{font-variant-numeric:tabular-nums;letter-spacing:0;opacity:.7}.profile-stats{display:flex;flex-wrap:wrap;gap:8px}.profile-stat{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;font-variant-numeric:tabular-nums}.profile-stat svg{width:15px;height:15px;color:var(--muted)}.profile-rooms{display:flex;gap:16px;margin:-6px -16px -24px -22px;padding:6px 16px 24px 22px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding:0 16px 0 22px;scrollbar-width:thin}.profile-rooms[aria-busy=true]{overflow-x:hidden}.profile-rooms>*{flex:none;width:220px;scroll-snap-align:start}.profile-room{display:flex;flex-direction:column;gap:6px}@media(max-width:480px){.profile-rooms>*{width:170px}.profile-empty{height:195px}}.profile-share{display:flex;align-items:center;gap:12px;height:18px;padding:0 4px;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.profile-share>span{display:inline-flex;align-items:center;gap:4px}.profile-share svg{width:13px;height:13px}.profile-empty{display:grid;place-items:center;height:232.5px;margin:0;color:var(--muted);text-align:center}.modal.basics-dialog{width:min(380px,100%)}.basics-body{gap:14px}.basics-more{margin:0;color:var(--muted);text-align:center}button.basics-more{align-self:center}.modal.changelog{width:min(760px,100%)}.changelog-body{gap:24px;padding-bottom:4px;line-height:1.5}.changelog-body section{display:flex;flex-direction:column;gap:8px}.changelog-body p,.changelog-body ul{margin:0}.changelog-body ul{display:flex;flex-direction:column;gap:6px;padding-left:18px}.changelog-body code{padding:1px 5px;border-radius:4px;background:var(--hover);font-size:.92em}.changelog-body a{color:inherit}.settings-panel.settings-help{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));align-content:start;gap:20px 28px}.settings-help section{display:flex;flex-direction:column;gap:8px}.settings-help dl,.basics-body dl{display:grid;grid-template-columns:auto 1fr;align-items:baseline;margin:0}.help-row{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;align-items:baseline;column-gap:12px;padding:5px 8px;border-radius:6px}.help-row:nth-child(odd){background:var(--hover)}.help-row dt{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.key-stack{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.key-group{display:inline-flex;align-items:center;gap:4px}.key-sep{color:var(--muted);font-size:12px}.help-row dd{margin:0;line-height:1.45}.key{display:inline-flex;align-items:center;height:24px;padding:0 8px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:6px;background:var(--field);font:500 12px/1 ui-sans-serif,system-ui,-apple-system,sans-serif;white-space:nowrap}.ui-tip{position:fixed;z-index:100;display:flex;align-items:center;gap:10px;max-width:280px;padding:7px 8px 7px 11px;border-radius:14px;color:var(--fg);font-size:13px;line-height:1.35;pointer-events:none;animation:pop .22s var(--spring)}.ui-tip:not(:has(kbd)){padding-right:11px}.ui-tip kbd{flex:none;min-width:20px;padding:2px 6px;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;color:var(--muted);font:600 11px/1.2 ui-sans-serif,system-ui,-apple-system,sans-serif;text-align:center}.settings{position:relative;display:inline-flex}.modal.settings-dialog{width:min(1000px,100%);height:min(680px,calc(100dvh - 32px - var(--notch)));background-image:linear-gradient(to right,var(--hover) 228px,var(--line) 228px 229px,transparent 229px)}.settings-body{flex:1;display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;margin-left:-8px;overflow:hidden}.settings-nav{display:flex;flex-direction:column;gap:2px}.settings-row.on{background:var(--hover);font-weight:600}.settings-row.on svg{color:inherit}.settings-panel{min-height:0;display:flex;flex-direction:column;gap:20px;margin-right:-8px;padding-right:8px;overflow-y:auto;scrollbar-width:thin}.settings-panel>*{flex:none}.settings-account{gap:24px}.settings-account>*{max-width:380px}.settings-account .secondary{align-self:flex-start}.settings-account,.settings-help{padding-left:8px}.settings-section{display:flex;flex-direction:column;gap:2px}.settings-section .label{padding:0 8px 4px}@media(max-width:640px){.modal.settings-dialog{background-image:none}.settings-body{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:16px}.settings-nav{flex-direction:row;overflow-x:auto;scrollbar-width:none}.settings-nav .settings-row{flex:none}.settings-nav .settings-key{display:none}}.settings-row{display:flex;align-items:center;gap:10px;height:36px;padding:0 8px;border:0;border-radius:10px;background:transparent;color:inherit;text-align:left;text-decoration:none;transition:background .15s}.settings-row:hover{background:var(--hover)}.settings-row svg{flex:none;width:16px;height:16px;color:var(--muted)}.settings-row span:first-of-type{flex:1}.switch{position:relative;flex:none;width:30px;height:18px;border-radius:9px;background:var(--line-strong);transition:background .15s}.switch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--bg);transition:transform .15s}.switch.on{background:var(--fg)}.switch.on:after{transform:translate(12px)}.celebration{position:fixed;inset:0;z-index:90;overflow:hidden;pointer-events:none}.modal-text{margin:-8px 0 0;color:var(--muted);line-height:1.5}.modal-error{margin:-8px 0 0;color:var(--danger);font-size:13px}button.link{align-self:flex-start;padding:0;border:0;background:none;color:var(--muted);font-size:13px;text-decoration:underline;text-underline-offset:3px}button.link:hover{color:var(--fg)}.passphrase{display:block;margin-bottom:-6px;font-size:0;line-height:0}.passphrase .word{display:inline-block;margin:0 6px 6px 0;vertical-align:middle;padding:6px 10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--field);font:500 15px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.passphrase .copy-btn{width:32px;height:32px;margin-bottom:6px;vertical-align:middle}.secondary.small{height:32px;padding:0 12px;font-size:13px}.settings-account .modal-text,.settings-account .modal-error{margin:0}.settings-account .secondary svg{width:16px;height:16px}.modal-note{margin:0;color:var(--muted);font-size:12px;line-height:1.4}.qr-wrap{display:grid;place-items:center;width:180px;height:180px}.qr{width:100%;border-radius:8px}.settings-key{color:var(--muted);font:600 11px/1 ui-sans-serif,system-ui,-apple-system,sans-serif}.settings-row svg.settings-ext{width:14px;height:14px}.modal-actions{justify-content:flex-end}:root{--danger: #e5484d}.settings-row.danger,.settings-row.danger svg{color:var(--danger)}.secondary.danger{color:var(--danger)}.secondary.danger:hover:not(:disabled){border-color:var(--danger)}.primary.danger{border-color:var(--danger);background:var(--danger);color:#fff}.room.pan-mode .note{pointer-events:none}.play-tools .view-btn{cursor:pointer;touch-action:manipulation}.podium-btn{position:absolute;bottom:16px;left:calc(50% - 26px);z-index:5;display:grid;place-items:center;width:44px;height:44px;padding:0 0 6px;border-radius:999px;color:inherit;cursor:pointer;transform:translate(-50%);animation:podium-in .5s cubic-bezier(.3,1.6,.5,1)}.podium-btn:hover{background:var(--glass-thick)}.podium-icon{display:flex;align-items:flex-end;gap:1px;height:22px}.podium-icon span{display:grid;place-items:start center;width:9px;padding-top:1px;border-radius:2px 2px 0 0;color:var(--podium-ink);font:700 7px/1 ui-sans-serif,system-ui,-apple-system,sans-serif}.podium-icon .p1{height:22px;background:var(--gold)}.podium-icon .p2{height:16px;background:var(--silver)}.podium-icon .p3{height:12px;background:var(--bronze)}@keyframes podium-in{0%{opacity:0;transform:translate(-50%) translateY(24px) scale(.6)}}.modal-bg.podium-bg{--scrim: transparent;--scrim-fx: blur(3px);cursor:pointer}.podium{display:flex;flex-direction:column;align-items:center;gap:28px;animation:sticker .55s cubic-bezier(.3,1.5,.5,1)}.podium-stands{display:flex;align-items:flex-end;gap:10px;filter:drop-shadow(0 18px 30px rgba(0,0,0,.35));transition:transform .2s ease-out}.podium-stands{will-change:transform}.podium-share{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:4px solid #fff;border-radius:999px;background:var(--podium-ink);color:#fff;font-size:15px;font-weight:700;box-shadow:0 10px 24px #00000059;cursor:pointer;transition:transform .15s}.podium-share:hover{transform:scale(1.05)}.podium-share:focus-visible{outline:0;box-shadow:0 0 0 4px var(--ring),0 10px 24px #00000059}.podium-share svg{width:18px;height:18px}.modal-bg.closing .podium{animation:pop-out .16s ease forwards}@keyframes sticker{0%{opacity:0;transform:scale(.4)}}.stand{display:flex;flex-direction:column;align-items:center;gap:10px;width:min(var(--stand-w),28vw)}.stand-name{max-width:100%;padding:6px 12px;overflow:hidden;border:4px solid #fff;border-radius:999px;background:var(--podium-ink);color:#fff;font-weight:700;white-space:nowrap;text-overflow:ellipsis}.stand-block{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;padding:12px 8px 16px;border:5px solid #fff;border-radius:18px 18px 8px 8px;color:var(--podium-ink);font-variant-numeric:tabular-nums}.place-1 .stand-block{height:var(--stand-1);background:var(--gold)}.place-2 .stand-block{height:var(--stand-2);background:var(--silver)}.place-3 .stand-block{height:var(--stand-3);background:var(--bronze)}.stand-rank{font:800 44px/1 ui-sans-serif,system-ui,-apple-system,sans-serif}.place-1 .stand-rank{font-size:60px}.stand-stat{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600}.stand-stat svg{width:14px;height:14px}.room canvas,.room img{-webkit-user-drag:none}.modal h1.private-title{display:flex;align-items:center;gap:10px}.private-title svg{flex:none;width:20px;height:20px}.room-link{display:flex;align-items:center;gap:8px}.room-link .text{flex:1;min-width:0;font:13px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.room-link .copy-btn{flex:none}.email-form,.field-stack{display:flex;flex-direction:column;gap:10px}.email-form .modal-error,.field-stack .modal-error{margin:0}.account-email{margin:0;overflow-wrap:anywhere}.invite{display:flex;flex-direction:column;gap:8px}.invite-list{max-height:220px;margin:0;padding:4px;overflow-y:auto;border:1px solid var(--line);border-radius:16px;list-style:none;scrollbar-width:thin}.invite-row{display:flex;align-items:center;gap:10px;width:100%;height:36px;padding:0 8px;border:0;border-radius:12px;background:transparent;color:inherit;text-align:left}.invite-row:hover:not(:disabled){background:var(--hover)}.invite-row:disabled{cursor:default;color:var(--muted)}.invite-box{display:grid;flex:none;place-items:center;width:18px;height:18px;border:1px solid var(--line-strong);border-radius:5px}.invite-row.on .invite-box{border-color:var(--fg);background:var(--fg);color:var(--bg)}.invite-row:disabled .invite-box{opacity:.5}.invite-box svg{width:14px;height:14px;stroke-width:2.2}.invite-name{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.invite-note{flex:none;font-size:12px}.modal.private-room{max-height:calc(100dvh - 32px);overflow-y:auto}.context-menu{position:fixed;z-index:20;display:flex;flex-direction:column;min-width:220px;padding:5px;border-radius:16px;transform-origin:0 0;animation:menu-in .22s var(--spring)}@keyframes menu-in{0%{opacity:0;transform:scale(.94)}}.context-menu button{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:7px 10px;border:0;border-radius:11px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.context-menu button:disabled{opacity:.35;cursor:default}.context-menu button:not(:disabled):hover{background:var(--hover)}.context-menu button.open{background:var(--hover)}.context-menu .sub-arrow{color:var(--muted);font-size:16px;line-height:1}.context-menu.sub-menu{position:absolute;min-width:180px;max-width:280px;max-height:calc(100dvh - 8px);overflow-y:auto;background:var(--panel);backdrop-filter:none;-webkit-backdrop-filter:none;animation:sub-in .12s ease-out}.context-menu .sub-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes sub-in{0%{opacity:0;transform:translate(-4px)}}.context-menu kbd{color:var(--muted);font:600 11px/1 ui-sans-serif,system-ui,-apple-system,sans-serif}.split-btn{display:inline-flex}.icon-btn.split-arrow{width:14px;margin-left:-1px;color:var(--muted)}.icon-btn.split-arrow svg{width:12px;height:12px;transition:transform .15s}.icon-btn.split-arrow.open{background:var(--hover);color:inherit}.icon-btn.split-arrow.open svg{transform:rotate(180deg)}.context-menu.split-menu{width:max-content;min-width:0}.context-menu.split-menu button{justify-content:flex-start;gap:10px}.split-menu-icon{width:20px;height:20px;flex:none;color:var(--muted)}.split-menu-check{width:1em;flex:none;text-align:center;color:var(--muted)}.context-menu .menu-look{display:grid;gap:10px;margin-bottom:4px;padding:6px 6px 10px;border-bottom:1px solid var(--line)}.context-menu .ref-look{grid-template-columns:auto 1fr 3.5ch;align-items:center}.context-menu .ref-pct{color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}.context-menu .tray-colors{display:flex;justify-content:space-between}.context-menu .tray-colors button{width:22px;height:22px;padding:0;border-radius:50%;background:var(--c)}.context-menu .tray-colors button:not(:disabled):hover{background:var(--c);transform:scale(1.12)}.context-menu .tray-colors button[aria-checked=true]{outline:2px solid var(--c);outline-offset:2px}.share-btn{position:absolute;bottom:16px;left:calc(50% + 4px);z-index:5;display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:999px;color:inherit;cursor:pointer}.share-btn:hover{background:var(--glass-thick)}.share-btn svg{width:20px;height:20px}.share-dialog{width:min(560px,100%)}.share-body{display:grid;grid-template-columns:1fr 1fr;gap:16px}.share-option{display:flex;flex-direction:column;gap:12px;min-width:0}.share-option .modal-text{margin:0;font-size:14px}.share-preview{display:grid;grid-template:minmax(0,1fr) / minmax(0,1fr);place-items:center;aspect-ratio:1;padding:8px;border:1px solid var(--line);border-radius:18px;background:var(--field);text-align:center;overflow:hidden}.share-preview img{max-width:100%;max-height:100%;border-radius:4px}.share-option button{margin-top:auto}@media(max-width:480px){.share-body{grid-template-columns:1fr}}.modal-bg.map-bg{display:block;padding:0;overflow:hidden;--scrim: rgba(0, 0, 0, .22);--scrim-fx: blur(6px) saturate(.8);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.modal-bg.map-bg:active{cursor:grabbing}.modal-bg.map-bg.drawing{cursor:crosshair}.map-picture{position:absolute;top:0;left:0;transform-origin:0 0;box-shadow:0 12px 48px #00000059;animation:fade .2s ease}.map-bg.closing .map-picture{animation:fade-out .16s ease forwards}.map-picture img,.map-picture svg{position:absolute;inset:0;display:block;pointer-events:none}.map-picture svg path{fill:none;stroke-linecap:round;stroke-linejoin:round}.map-bg .float.map-tools{bottom:calc(16px + env(safe-area-inset-bottom));left:50%;align-items:center;transform:translate(-50%);cursor:default;animation:map-tools-in .35s cubic-bezier(.2,.9,.3,1) both}.map-bg.closing .float.map-tools{animation:map-tools-out .16s ease-in forwards}@keyframes map-tools-in{0%{opacity:0;transform:translate(-50%,calc(100% + 32px))}}@keyframes map-tools-out{to{opacity:0;transform:translate(-50%,calc(100% + 32px))}}@media(prefers-reduced-motion:reduce){.map-bg .float.map-tools,.map-bg.closing .float.map-tools{animation-name:fade}}.modal-bg.search-bg{place-items:start center;padding-top:calc(12vh + var(--notch));--scrim: rgba(0, 0, 0, .2)}.modal.search{gap:0;width:min(600px,100%);max-height:min(560px,76vh);padding:0;overflow:hidden}.search-field{display:flex;align-items:center;gap:4px;padding:8px 8px 8px 18px;border-bottom:1px solid var(--line);color:var(--muted)}.search-field>svg{flex:none;width:20px;height:20px}.search-field .text,.search-field .text:hover,.search-field .text:focus{border-color:transparent;box-shadow:none;background:transparent;color:var(--fg);font-size:17px}.search-results{flex:1 1 auto;min-height:0;padding:6px;overflow-y:auto;overscroll-behavior:contain}.search-section{display:flex;gap:6px;margin:10px 10px 4px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.search-section:first-child{margin-top:4px}.search-section span{font-weight:500;opacity:.7}.search-item{display:flex;align-items:center;gap:12px;width:100%;padding:9px 10px;border:0;border-radius:10px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.search-item.on{background:var(--hover);box-shadow:inset 0 0 0 1px var(--line)}.search-main{display:flex;flex:1 1 auto;flex-direction:column;gap:3px;min-width:0}.search-title{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.search-meta{display:flex;gap:6px;overflow:hidden;color:var(--muted);font-size:12px;white-space:nowrap}.search-meta b{color:var(--fg);font-weight:500}.search-meta>*+*:before{content:"·";margin-right:6px;color:var(--muted)}.search-item mark{border-radius:3px;background:color-mix(in srgb,var(--sel) 28%,transparent);color:inherit}.search-enter{flex:none;padding:2px 6px;border:1px solid var(--line-strong);border-radius:5px;color:var(--muted);font:500 12px/1 ui-sans-serif,system-ui,-apple-system,sans-serif;opacity:0}.search-item.on .search-enter{opacity:1}.search-empty{margin:0;padding:32px 16px;color:var(--muted);font-size:14px;line-height:1.5;text-align:center}
