:root{--bg:#fff;--bg-elevated:#f8f6ff;--bg-muted:#eeeaf9;--bg-workspace:#f4f1fc;--text:#16132b;--text-muted:#6a6585;--border:#e3def3;--border-strong:#c9c1e6;--accent:#9b45f0;--accent-strong:#8430de;--accent-soft:#f3e8ff;--accent-text:#6b21a8;--on-accent:#fff;--shadow:0 1px 2px #0000000d, 0 6px 20px #0000000f;--radius-lg:16px;--radius:10px;--radius-sm:8px;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#13111f;--bg-elevated:#1a1730;--bg-muted:#221e3b;--bg-workspace:#0c0a17;--text:#f3f1ff;--text-muted:#a29cc4;--border:#2a2645;--border-strong:#3d3860;--accent:#a855f7;--accent-strong:#bf7dff;--accent-soft:#2a1a47;--accent-text:#d8b4fe;--on-accent:#fff;--shadow:0 1px 2px #0006, 0 6px 20px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;padding:0;font-size:15px;line-height:1.5}button,input,select{font:inherit;color:inherit}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}::selection{background:var(--accent-soft)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--text-muted)}.small{font-size:13px}.mono{font-family:var(--font-mono)}.label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:600}
.btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);height:40px;color:var(--text);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:500;transition:background-color .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--bg-muted)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible,.icon-btn:focus-visible,.tabs__item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn svg{width:18px;height:18px}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn--primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn--lg{border-radius:var(--radius);height:52px;padding:0 24px;font-size:16px}.btn--block{width:100%}.btn--ghost{background:0 0;border-color:#0000}.icon-btn{border-radius:var(--radius);width:40px;height:40px;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;transition:background-color .12s;display:inline-flex}.icon-btn:hover{background:var(--bg-muted)}.icon-btn svg{width:20px;height:20px}.brand{letter-spacing:-.01em;align-items:center;gap:10px;font-size:17px;font-weight:700;display:inline-flex}.brand svg{width:auto;height:24px}.card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg)}.pill{background:var(--bg-muted);height:26px;color:var(--text-muted);border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:500;display:inline-flex}.pill--accent{background:var(--accent-soft);color:var(--accent-text)}.dot{background:var(--border-strong);border-radius:50%;width:8px;height:8px}.dot--on{background:var(--accent)}.segmented{border-radius:var(--radius);background:var(--bg-muted);padding:3px;display:inline-flex}.segmented button{border-radius:var(--radius-sm);height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:0 12px;font-weight:500}.segmented button[aria-pressed=true]{background:var(--bg);color:var(--text);box-shadow:var(--shadow)}
.tabs{border-bottom:1px solid var(--border);gap:4px;display:flex;position:relative}.tabs__item{height:42px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:0 14px;font-weight:500;transition:color .12s}.tabs__item:hover,.tabs__item--active{color:var(--text)}.tabs__underline{background:var(--accent);border-radius:2px;height:2px;transition:left .22s,width .22s;position:absolute;bottom:-1px}
.slider{align-items:center;width:100%;height:24px;display:flex;position:relative}.slider__track{background:var(--bg-muted);border-radius:4px;height:4px;position:absolute;left:0;right:0;overflow:hidden}.slider__fill{background:var(--accent);position:absolute;top:0;bottom:0}.slider input{cursor:pointer;appearance:none;background:0 0;width:100%;height:24px;margin:0;position:relative}.slider input::-webkit-slider-runnable-track{background:0 0;height:4px}.slider input::-moz-range-track{background:0 0;height:4px}.slider input::-webkit-slider-thumb{border:2px solid var(--accent);background:var(--bg);appearance:none;border-radius:50%;width:18px;height:18px;margin-top:-7px}.slider input::-moz-range-thumb{border:2px solid var(--accent);background:var(--bg);border-radius:50%;width:14px;height:14px}.slider input:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}
.home{background:var(--bg-workspace);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.home__backdrop{background:var(--bg-workspace);position:fixed;inset:0;overflow:hidden}.home__backdrop-art{position:absolute;inset:0}.home__backdrop-art--in{animation:.45s both home-fade}@keyframes home-fade{0%{opacity:0}}.home__scrim{background:linear-gradient(to right, color-mix(in srgb, var(--bg-workspace) 60%, transparent), transparent 65%), color-mix(in srgb, var(--bg-workspace) 62%, transparent);position:absolute;inset:0}:root[data-theme=dark] .home__scrim{background:linear-gradient(90deg,#06050e99,#0000 65%),#06050e8c}.home__bar{z-index:1;justify-content:space-between;align-items:center;padding:16px 24px;display:flex;position:relative}.home__tools{align-items:center;gap:8px;display:flex}.home__note{z-index:1;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);justify-content:space-between;align-items:center;gap:16px;margin:0 48px 8px;padding:12px 16px;font-size:14px;display:flex;position:relative}.home__main{--edge:48px;--gap:clamp(12px, 1.2vw, 20px);--tile:clamp(115px, min(12.6vw, 23.4vh), 216px);--tile-on:calc(var(--tile) * 1.22);flex-direction:column;padding:clamp(8px,3vh,40px) 48px 48px;display:flex;position:relative}.home__details{flex-direction:column;align-items:flex-start;gap:12px;max-width:640px;margin-top:clamp(32px,11vh,150px);animation:.3s both home-fade;display:flex}.home__title{letter-spacing:-.03em;font-size:clamp(40px,4.6vw,84px);font-weight:800;line-height:1.02}.home__tagline{font-size:clamp(16px,1.25vw,21px);line-height:1.45}.home__meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:15px;font-weight:600;display:flex}.home__meta-item{align-items:center;gap:8px;display:inline-flex}.home__meta-item svg{color:var(--game)}.home__badge{border:1px solid var(--border-strong);background:color-mix(in srgb, var(--bg) 70%, transparent);border-radius:999px;padding:3px 10px;font-size:13px}.home__actions{gap:12px;margin-top:16px;display:flex}.btn.home__host{border-color:var(--text);background:var(--text);min-width:220px;height:56px;color:var(--bg);font-size:17px;font-weight:700}.btn.home__host:hover:not(:disabled){background:color-mix(in srgb, var(--text) 85%, var(--bg))}.btn.home__host:disabled{border-color:var(--border-strong);background:color-mix(in srgb, var(--bg) 55%, transparent);color:var(--text-muted);opacity:1}.btn.home__host svg{fill:currentColor;width:20px;height:20px}@media (max-width:820px){.home__bar{padding:12px 16px}.home__note{margin:0 16px 8px}.home__main{--edge:16px;--tile:134px;--tile-on:163px;padding:8px 16px 32px}.home__details{margin-top:28px}}@media (max-width:480px){.home__tools .github-btn__label{display:none}}
.home__tiles{margin:-10px calc(-1 * var(--edge));padding:10px 0;position:relative;overflow-x:clip}.home__track{align-items:flex-start;gap:var(--gap);padding-left:var(--edge);will-change:transform;display:flex}.home__probe{visibility:hidden;pointer-events:none;height:0;position:absolute;top:0;left:0}.home__probe--off{width:var(--tile)}.home__probe--on{width:var(--tile-on)}.home__tiles--jump .game-tile{transition:none}.game-tile{width:var(--tile);height:var(--tile);background:var(--bg-elevated);box-shadow:var(--shadow);cursor:pointer;outline-offset:4px;border:0;border-radius:22px;outline:3px solid #0000;flex:none;padding:0;transition:width .22s,height .22s,outline-color .22s,opacity .22s;position:relative}.game-tile[aria-pressed=false]{opacity:.82}.game-tile[aria-pressed=false]:hover{opacity:1}.game-tile[aria-pressed=true]{width:var(--tile-on);height:var(--tile-on);outline-color:var(--game);border-radius:26px}.game-tile:focus-visible{outline-color:var(--game);outline-style:dashed}.game-tile[aria-pressed=true]:focus-visible{outline-width:4px;outline-style:solid}.game-tile__art{border-radius:inherit;position:absolute;inset:0;overflow:hidden}.cover__canvas,.cover__art{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.cover__clip{opacity:0;transition:opacity .4s}.cover__clip--on{opacity:1}
:root{--premium:#8a5a00;--premium-soft:#fff4d6;--premium-line:#e9c46a}:root[data-theme=dark]{--premium:#f6cf6a;--premium-soft:#2e2410;--premium-line:#8f6d1f}.premium-badge{letter-spacing:.01em;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;font-weight:700;line-height:1;display:inline-flex}.premium-badge svg{flex:none;width:auto}.premium-badge--details{border:1px solid var(--premium-line);background:var(--premium-soft);height:28px;color:var(--premium);text-transform:uppercase;padding:0 12px 0 10px;font-size:13px}.premium-badge--details svg{height:13px}.premium-badge--tile{color:#f6cf6a;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0e0a04b8;border:1px solid #f6cf6a8c;max-width:84%;height:max(20px,13cqi);padding:0 max(8px,5cqi) 0 max(6px,4cqi);font-size:max(10px,6.4cqi);position:absolute;top:8%;left:8%;box-shadow:0 2px 10px #00000059}.premium-badge--tile svg{height:max(8px,5.2cqi)}.game-tile--premium{container-type:inline-size}@container (max-width:170px){.premium-badge__brand{display:none}}
.shell{background:var(--bg-workspace);position:fixed;inset:0;overflow:hidden}.shell__brand{z-index:3;position:absolute;top:16px;left:20px}.home-link{border-radius:var(--radius);color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:6px 10px 6px 6px;text-decoration:none;display:inline-flex}.shell__brand .brand{text-shadow:0 0 2px var(--bg), 0 0 8px var(--bg)}.shell__tools{z-index:3;background:color-mix(in srgb, var(--bg) 84%, transparent);border-radius:999px;align-items:center;gap:2px;padding:2px;display:flex;position:absolute;top:12px;right:12px;overflow:hidden}.shell__tools .btn{background:0 0;border-color:#0000;width:40px;padding:0}.shell__tools .btn,.shell__tools .icon-btn{border-radius:999px;transform:none}.shell__tools .btn:hover,.shell__tools .icon-btn:hover,.shell__tools .btn:active,.shell__tools .icon-btn:active{background:color-mix(in srgb, var(--text) 8%, transparent);transform:none}.shell__tools .icon-btn:focus-visible,.shell__tools .btn:focus-visible{outline-offset:-2px}.shell__notice{background:var(--accent-soft);color:var(--accent-text);white-space:nowrap;border-radius:999px;padding:6px 14px;font-size:13px;position:absolute;top:76px;left:50%;transform:translate(-50%)}.showcase{background:#000;position:fixed;inset:0;overflow:hidden}
.join{border-radius:var(--radius-lg);color:#111214;box-shadow:var(--shadow);background:#fff;flex-direction:column;align-items:center;gap:12px;padding:20px;display:flex;position:absolute}.join--center{width:min(320px,56vh);top:50%;left:50%;transform:translate(-50%,-54%)}.join--corner{gap:8px;width:168px;padding:12px;bottom:20px;left:20px}.join__qr{aspect-ratio:1;width:100%}.join__qr svg{width:100%;height:100%;display:block}.join__head{flex-direction:column;align-items:center;gap:2px;display:flex}.join__label{color:#6b7078;font-size:13px;font-weight:600}.join__title{letter-spacing:-.02em;font-size:24px;font-weight:800}.join__code{letter-spacing:.2em;font-size:26px;font-weight:700}.join--corner .join__code{font-size:16px}.join__check{aspect-ratio:1;border-radius:var(--radius);color:#4b5058;text-align:center;background:#eef0f3;flex-direction:column;justify-content:center;align-items:center;gap:10px;width:100%;font-size:14px;font-weight:600;display:flex}.join__check .spinner,.join__check-text{animation:.2s .3s both join-check-in}@keyframes join-check-in{0%{opacity:0}to{opacity:1}}.join__regen,.join__extra{border-radius:var(--radius);color:#111214;width:100%;font:inherit;cursor:pointer;background:#fff;border:1px solid #d4d6db;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:14px;font-weight:600;display:flex}.join--corner .join__regen{padding:6px;font-size:12px}.join__regen svg{width:16px;height:16px}.join__regen:hover:not(:disabled),.join__extra:hover{border-color:var(--accent);color:var(--accent)}.join__regen:disabled{color:#6b7078;cursor:progress}.room-alert{background:color-mix(in srgb, var(--bg-workspace) 70%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;padding:16px;display:grid;position:absolute;inset:0}.room-alert__card{border-radius:var(--radius-lg);background:var(--bg);width:min(440px,100%);color:var(--text);box-shadow:var(--shadow);text-align:center;flex-direction:column;gap:14px;padding:28px;display:flex}.room-alert__title{letter-spacing:-.02em;margin:0;font-size:28px;font-weight:800}.room-alert__body{color:var(--text-muted);margin:0 0 6px;line-height:1.5}.shell__failed{flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:18px;display:flex;position:absolute;inset:0}
.settings{z-index:100;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);width:min(280px,100vw - 32px);box-shadow:var(--shadow);color:var(--text);gap:14px;padding:16px;animation:.14s ease-out settings-in;display:grid;position:fixed}.settings__title{align-items:center;gap:8px;margin:0;font-weight:600;display:flex}.settings__title svg{width:18px;height:18px;color:var(--accent)}.settings__row{gap:8px;display:grid}.settings__label{justify-content:space-between;font-size:14px;display:flex}.settings__value{color:var(--text-muted);font-variant-numeric:tabular-nums}.settings__hint{color:var(--text-muted);margin-top:-6px;font-size:13px}@keyframes settings-in{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.settings{animation:none}}
.phone{background:var(--bg-workspace);height:100dvh;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;display:flex}.phone__bar{height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0 16px;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;display:flex}.phone__bar .brand{font-size:16px}.phone__bar-actions{align-items:center;gap:4px;display:flex}.phone__bar-actions .btn{background:0 0;border-color:#0000;width:40px;padding:0}.phone__notice{background:var(--accent-soft);color:var(--accent-text);text-align:center;padding:10px 16px;font-size:14px}.phone__notice--action{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;padding-block:8px;display:flex}.phone__body{--phone-pad-y:16px;--phone-pad-x:16px;width:100%;max-width:560px;min-height:0;padding:var(--phone-pad-y) var(--phone-pad-x);flex-direction:column;flex:1;gap:16px;margin:0 auto;display:flex}.phone__waiting{margin:auto}.phone-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);flex-direction:column;gap:14px;padding:20px;display:flex}.phone-hero{text-align:center;flex-direction:column;align-items:center;gap:18px;margin:auto 0;padding:24px 8px;display:flex}.phone-hero__mark svg{width:112px;height:auto;display:block}.phone-title{letter-spacing:-.02em;font-size:26px;line-height:1.2}.name-field{text-align:left;flex-direction:column;gap:6px;width:100%;display:flex}.name-field__label{color:var(--text-muted);font-size:14px;font-weight:600}.name-field__input{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg);width:100%;height:56px;color:var(--text);font:inherit;padding:0 16px;font-size:20px;font-weight:600}.name-field__input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}@media (orientation:landscape) and (max-height:500px){.phone__bar{height:calc(44px + env(safe-area-inset-top))}.phone__body{--phone-pad-y:8px;gap:10px;max-width:960px}.phone-hero{gap:10px;padding:8px}.phone-hero--form{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);column-gap:32px;width:100%;margin:auto;display:grid}.phone-hero--form>*{grid-column:2}.phone-hero--form .phone-hero__mark{grid-area:1/1/span 2;place-self:end center}.phone-hero--form>.label{grid-area:3/1;align-self:start}.phone-hero__mark svg{width:96px}.name-field__input{height:48px}}
.loader{text-align:center;flex-direction:column;align-items:center;gap:14px;margin:auto;padding:24px;display:flex}.loader__mark{width:96px;height:auto;overflow:visible}.loader__shape{transform-box:fill-box;transform-origin:50% 80%;animation:1.2s cubic-bezier(.3,.7,.4,1) infinite loader-hop}.loader__shape--2{animation-delay:.15s}.loader__shape--3{animation-delay:.3s}.loader__bar{background:var(--bg-muted);border-radius:999px;width:140px;height:4px;position:relative;overflow:hidden}.loader__bar:after{content:"";border-radius:inherit;background:linear-gradient(90deg,#2d8cff,#f5145f,#a855f7);width:45%;animation:1.2s ease-in-out infinite loader-slide;position:absolute;inset:0}.loader__label{color:var(--text-muted);font-size:15px;font-weight:600}.spinner{vertical-align:-.15em;background:conic-gradient(from 90deg,#0000 10%,#2d8cff,#f5145f,#a855f7);border-radius:50%;flex:none;width:1em;height:1em;animation:.8s linear infinite spinner-turn;display:inline-block;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - .18em),#000 calc(100% - .17em));mask:radial-gradient(farthest-side,#0000 calc(100% - .18em),#000 calc(100% - .17em))}.shell__loader{justify-content:center;position:absolute;inset:0}.shell__notice{align-items:center;gap:8px;display:inline-flex}.home__note--wait{justify-content:center;animation:.3s ease-out .6s both loader-fade-in}.home__note--wait span{align-items:center;gap:8px;display:inline-flex}@keyframes loader-fade-in{0%{opacity:0}}@keyframes loader-hop{0%,60%,to{transform:translateY(0)scale(1)}25%{transform:translateY(-18%)scale(1.08)}}@keyframes loader-slide{0%{transform:translate(-100%)}to{transform:translate(225%)}}@keyframes spinner-turn{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.loader__shape,.loader__bar:after,.spinner{animation-duration:2.4s}}
.phone-hero--join{gap:14px;width:100%;max-width:420px;margin:auto}.phone-hero--join .phone-hero__mark svg{width:88px}.phone-hero__lead{margin:-6px 0 4px;font-size:15px}.phone-hero__aside{font-size:14px}.join-form{flex-direction:column;gap:12px;width:100%;display:flex}.join-form__code{letter-spacing:.3em;text-align:center;text-transform:uppercase;font-size:28px}.join-form__code::placeholder{color:var(--border-strong)}.qr-scan{z-index:50;color:#fff;background:#000;place-items:center;display:grid;position:fixed;inset:0}.qr-scan__video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.qr-scan__frame{aspect-ratio:1;border:3px solid #fff;border-radius:24px;width:min(70vw,70vh,300px);position:relative;box-shadow:0 0 0 100vmax #00000080}.qr-scan__hint{top:calc(24px + env(safe-area-inset-top));text-align:center;text-shadow:0 1px 4px #0009;margin:0;font-size:16px;font-weight:600;position:absolute;left:16px;right:16px}.qr-scan__close{bottom:calc(24px + env(safe-area-inset-bottom));position:absolute;left:50%;transform:translate(-50%)}.phone__notice{justify-content:center;align-items:center;gap:8px;display:flex}.loader--page{min-height:100dvh}@media (orientation:landscape) and (max-height:500px){.phone-hero--join .phone-hero__mark,.phone-hero--join .phone-hero__lead{display:none}.phone-hero--join{gap:8px}.join-form{grid-template-columns:1fr 1fr;gap:8px;display:grid}.join-form>.name-field,.join-form>.btn:only-of-type{grid-column:1/-1}}
