.app-screen{background:radial-gradient(900px 480px at 88% -12%, rgba(var(--accent-rgb), .06), transparent 62%), var(--bg);flex-direction:column;min-height:100dvh;display:flex}.app-screen.center{color:var(--text-2);justify-content:center;align-items:center;padding:24px}.app-top{padding:calc(14px + env(safe-area-inset-top)) 20px 14px;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;display:grid}.app-top>:first-child{justify-self:start}.app-top>:last-child{justify-self:end}.app-top-spacer{width:36px}.mirror{transform:scaleX(-1)}.is-hidden{visibility:hidden}.tabular{font-variant-numeric:tabular-nums}.gate-main{flex:1;place-items:center;padding:8px 20px 48px;display:grid}.gate-card{border-radius:var(--r-2xl);background:var(--surface-1);border:1px solid var(--line);width:100%;max-width:980px;animation:fade-up .4s var(--ease) both;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);display:grid;overflow:hidden}.gate-visual{border-right:1px solid var(--line);background-color:#15111e;flex-direction:column;justify-content:center;align-items:center;gap:26px;padding:48px 36px;display:flex}.mock-prompt{color:#1f2023;background:#fff;border-radius:14px;width:100%;max-width:320px;font-size:14px;overflow:hidden;box-shadow:0 30px 60px -20px #000000bf}.mock-url{color:#5a5d66;background:#eef0f3;align-items:center;gap:6px;padding:9px 14px;font-size:12px;display:flex}.mock-body{padding:16px 18px 18px}.mock-title{margin-bottom:10px;font-weight:700}.mock-row{color:#474a52;align-items:center;gap:10px;margin:8px 0;display:flex}.mock-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.mock-btn{color:#2f5bd3;border:1px solid #d5d8de;border-radius:999px;padding:7px 16px;font-weight:600;position:relative}.mock-btn.allow{color:#fff;background:#2f5bd3;border-color:#2f5bd3;animation:2s ease-in-out infinite allow-pulse}@keyframes allow-pulse{0%,to{box-shadow:0 0 #2f5bd380}50%{box-shadow:0 0 0 7px #2f5bd300}}.mock-cursor{color:#111;filter:drop-shadow(0 2px 3px #00000059);animation:2s ease-in-out infinite cursor-tap;position:absolute;bottom:-20px;right:-12px}@keyframes cursor-tap{0%,to{transform:translate(8px,10px)}45%,55%{transform:translate(0)scale(.9)}}.gate-visual-cap{text-align:center;max-width:280px;color:var(--text-2);font-size:14.5px}.gate-visual-cap b{color:var(--text)}.gate-body{padding:44px 44px 40px}.gate-icon{background:var(--accent-soft);width:48px;height:48px;color:var(--accent);border-radius:14px;place-items:center;margin-bottom:20px;display:grid}.gate-icon.warn{background:var(--amber-soft);color:var(--amber)}.gate-body h1{letter-spacing:-.03em;font-size:clamp(28px,3vw,36px);font-weight:800}.gate-sub{color:var(--text-2);margin-top:10px;font-size:16px;line-height:1.55}.gate-steps{gap:12px;margin:24px 0;padding:0;list-style:none;display:grid}.gate-steps li{color:var(--text-3);align-items:flex-start;gap:12px;font-size:15px;line-height:1.45;transition:color .2s;display:flex}.gate-steps li b{color:inherit;font-weight:700}.step-dot{background:var(--surface-2);border:1px solid var(--line-2);width:24px;height:24px;color:var(--text-2);border-radius:50%;flex:none;place-items:center;margin-top:-1px;font-size:12px;font-weight:800;transition:background-color .2s,color .2s;display:grid}.gate-steps li.active{color:var(--text)}.gate-steps li.active .step-dot{background:var(--accent-fill);color:var(--accent-ink);border-color:#0000}.gate-steps li.done{color:var(--text-2)}.gate-steps li.done .step-dot{background:var(--green);color:#04140c;border-color:#0000}.notice{border-radius:12px;align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 14px;font-size:14px;line-height:1.45;display:flex}.notice svg{flex:none;margin-top:1px}.notice.warn{background:var(--amber-soft);color:#f7c77a;border:1px solid #f5a52440}.vcam-own{margin:16px 0 0}.vcam-own b{color:var(--text)}.vcam-own .btn{max-width:100%;margin-top:10px}.check{background:var(--surface-2);border:1px solid var(--line);color:var(--text-2);cursor:pointer;border-radius:14px;align-items:flex-start;gap:12px;padding:14px 16px;font-size:15px;line-height:1.45;transition:border-color .15s;display:flex;position:relative}.check:hover{border-color:var(--line-2)}.check:has(input:checked){border-color:var(--accent-line)}.check b{color:var(--text)}.check input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.check-box{border:1.5px solid var(--text-3);color:#0000;border-radius:7px;flex:none;place-items:center;width:22px;height:22px;margin-top:-1px;transition:background-color .15s,border-color .15s,color .15s;display:grid}.check input:checked+.check-box{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--accent-ink)}.check input:focus-visible+.check-box{outline:2px solid var(--accent);outline-offset:2px}.gate-btn{margin-top:16px}.gate-foot{color:var(--text-3);text-align:center;justify-content:center;align-items:center;gap:6px;margin-top:14px;font-size:13px;display:flex}.gate-hint{color:var(--text-2);margin:0 0 22px;font-size:14px;line-height:1.55}.gate-hint b{color:var(--text);font-weight:600}.gate-actions{flex-wrap:wrap;gap:10px;display:flex}.prompt-arrow{z-index:50;background:var(--accent-fill);color:var(--accent-ink);border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:10px 14px 12px;font-size:15px;font-weight:800;animation:1.1s ease-in-out infinite bob;display:flex;position:fixed;top:10px;left:110px;box-shadow:0 16px 40px -10px #000000b3}.prompt-arrow.center{margin-left:-90px;left:50%}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.lobby-main{width:100%;max-width:1180px;animation:fade-up .4s var(--ease) both;flex:1;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;gap:36px;margin:0 auto;padding:8px 24px 48px;display:grid}.preview{isolation:isolate;aspect-ratio:4/3;border-radius:var(--r-2xl);border:1px solid var(--line);background:#050506;position:relative;overflow:hidden}.preview video{object-fit:cover;width:100%;height:100%;display:block}.preview-off{color:var(--text-2);background:#14111d;flex-direction:column;justify-content:center;align-items:center;gap:14px;font-weight:600;display:flex;position:absolute;inset:0}.preview-label{-webkit-backdrop-filter:blur(8px);background:#00000080;border-radius:999px;padding:5px 11px;font-size:12.5px;font-weight:700;position:absolute;top:14px;left:14px}.preview .preview-flip{position:absolute;top:10px;right:10px}.preview-bar{background:linear-gradient(#0000,#0009);align-items:center;gap:10px;padding:48px 14px 14px;display:flex;position:absolute;bottom:0;left:0;right:0}.meter{-webkit-backdrop-filter:blur(8px);height:40px;color:var(--text-2);background:#00000080;border-radius:999px;align-items:center;gap:8px;margin-left:auto;padding:0 14px;transition:color .15s;display:flex}.meter[data-speaking]{color:var(--green)}.meter-track{background:#ffffff29;border-radius:999px;width:96px;height:6px;overflow:hidden}.meter-track i{border-radius:inherit;background:var(--green);height:100%;transform:scaleX(var(--level,0));transform-origin:0;display:block}.lobby-side{flex-direction:column;min-width:0;display:flex}.identity{background:var(--surface-1);border:1px solid var(--line);border-radius:999px;align-items:center;gap:12px;width:fit-content;max-width:100%;margin-bottom:22px;padding:8px 18px 8px 8px;display:flex}.identity small{color:var(--text-3);font-size:12px;font-weight:600;display:block}.identity b{font-size:15px;line-height:1.25;display:block}.lobby-side h1{letter-spacing:-.03em;font-size:clamp(28px,3vw,38px);font-weight:800}.lobby-sub{color:var(--text-2);margin-top:10px;font-size:16px}.devices{background:var(--surface-1);border:1px solid var(--line);border-radius:14px;margin-top:24px}.devices summary{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:13px 16px;font-size:14.5px;font-weight:700;list-style:none;display:flex}.devices summary::-webkit-details-marker{display:none}.devices summary svg{color:var(--text-3);transition:transform .2s var(--ease)}.devices[open] summary svg{transform:rotate(180deg)}.device-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 12px 12px;display:grid}.select{background:var(--surface-2);border:1px solid var(--line);min-width:0;height:42px;color:var(--text-3);border-radius:10px;align-items:center;gap:8px;padding:0 12px;transition:border-color .15s;display:flex;position:relative}.select:focus-within{border-color:var(--accent-line)}.select select{appearance:none;min-width:0;height:100%;color:var(--text);text-overflow:ellipsis;cursor:pointer;background:0 0;border:0;outline:none;flex:1;font-size:14px;font-weight:600}.select select option{background:#1f1a29}.interests{margin-top:24px}.interests-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.interests-head b{font-size:15px}.interests-head span{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.interests-sub{color:var(--text-2);margin:4px 0 12px;font-size:14px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip:disabled{opacity:.4;cursor:not-allowed}.add-interest{gap:8px;margin-top:12px;display:flex}.add-interest input{background:var(--surface-1);border:1px solid var(--line);border-radius:10px;outline:none;flex:1;min-width:0;height:36px;padding:0 14px;font-size:16px;transition:border-color .15s}.add-interest input:focus{border-color:var(--accent-line)}.add-interest input::placeholder,.composer input::placeholder,.dg-guess input::placeholder,.tt-row input::placeholder{color:var(--text-3)}.lobby-cta{margin-top:28px}.lobby-hint{text-align:center;color:var(--text-3);margin-top:12px;font-size:13px}.lobby-hint kbd{background:var(--surface-2);box-shadow:inset 0 -1px 0 #0006, 0 0 0 1px var(--line-2);color:var(--text-2)}.room{background:#000;grid-template:"stage"minmax(0,1fr)"panel""dock"/minmax(0,1fr);height:100dvh;display:grid;position:relative;overflow:hidden}.stage{isolation:isolate;background:#100d18;grid-area:stage;min-height:0;position:relative;overflow:hidden}.remote{object-fit:cover;background:#000;width:100%;height:100%;position:absolute;inset:0}.self{--inset:12px;--top:calc(env(safe-area-inset-top) + 66px);z-index:4;aspect-ratio:3/4;touch-action:none;cursor:grab;width:clamp(92px,26vw,132px);transition:translate .32s var(--ease), width .3s var(--ease), box-shadow .2s;background:#1a1624;border-radius:14px;animation:.3s both fade-in;position:absolute;overflow:hidden;box-shadow:0 12px 32px -8px #000000b3,0 0 0 1px #ffffff24}.self.dragging{cursor:grabbing;transition:none;box-shadow:0 22px 48px -10px #000000d9,0 0 0 1px #ffffff4d}.self[data-corner=tl]{top:var(--top);left:var(--inset)}.self[data-corner=tr]{top:var(--top);right:var(--inset)}.self[data-corner=bl]{bottom:var(--inset);left:var(--inset)}.self[data-corner=br]{bottom:var(--inset);right:var(--inset)}.self video{object-fit:cover;width:100%;height:100%;display:block}.self:after{content:"";border-radius:inherit;box-shadow:inset 0 0 0 2.5px var(--green);opacity:0;pointer-events:none;transition:opacity .15s;position:absolute;inset:0}.self[data-speaking]:after{opacity:1}.self.full{z-index:0;aspect-ratio:auto;width:auto;box-shadow:none;cursor:default;border-radius:0;inset:0;translate:none}.self.full:after{display:none}.self-off{background:#1a1624;place-items:center;display:grid;position:absolute;inset:0}.self-tag{background:#0000008c;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11.5px;font-weight:700;display:inline-flex;position:absolute;bottom:6px;left:6px}.self-tag svg{color:var(--red)}.self-flip{color:#fff;background:#0000008c;border-radius:50%;place-items:center;width:30px;height:30px;display:grid;position:absolute;bottom:6px;right:6px}.self.full .self-flip{top:calc(env(safe-area-inset-top) + 64px);-webkit-backdrop-filter:blur(10px);width:40px;height:40px;bottom:auto;right:12px}.stage-top{z-index:7;padding:calc(env(safe-area-inset-top) + 12px) 12px 30px;pointer-events:none;background:linear-gradient(#00000073,#0000);justify-content:space-between;align-items:flex-start;gap:10px;display:flex;position:absolute;top:0;left:0;right:0}.stage-top>*{pointer-events:auto}.stage-top-left{align-items:center;gap:8px;min-width:0;display:flex}.stage-btn{-webkit-backdrop-filter:blur(12px);color:#fff;background:#100d188c;border-radius:50%;flex:none;place-items:center;width:40px;height:40px;transition:background-color .15s;display:grid;position:relative;box-shadow:0 0 0 1px #ffffff1a}.stage-btn:hover{background:#2c2c34bf}.partner-chip{-webkit-backdrop-filter:blur(12px);min-width:0;animation:fade-up .3s var(--ease) both;background:#100d188c;border-radius:999px;align-items:center;gap:10px;padding:4px 16px 4px 4px;display:flex;box-shadow:0 0 0 1px #ffffff1a}.partner-avatar{border-radius:50%;flex:none;display:grid;position:relative}.partner-avatar:after{content:"";box-shadow:0 0 0 2px var(--green);opacity:0;border-radius:50%;transition:opacity .15s;position:absolute;inset:-3px}.partner-avatar[data-speaking]:after{opacity:1}.partner-meta{min-width:0}.partner-meta b{align-items:center;gap:6px;font-size:14.5px;line-height:1.25;display:flex}.partner-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.quality{flex:none;place-items:center;display:inline-grid;position:relative}.quality.good{color:var(--green)}.quality.fair{color:var(--amber)}.quality.poor{color:var(--red)}.partner-status{white-space:nowrap;color:var(--text-2);align-items:center;gap:5px;font-size:12.5px;display:flex;overflow:hidden}.partner-status .live-dot{width:6px;height:6px}.partner-common{text-overflow:ellipsis;min-width:0;overflow:hidden}.online-pill.glass{-webkit-backdrop-filter:blur(12px);background:#100d188c;border-color:#ffffff1a;height:36px}.stage-center{z-index:2;text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:90px 24px;display:flex;position:absolute;inset:0}.stage-center.searching{background:#0606089e}.searching h2{letter-spacing:-.02em;margin-top:8px;font-size:clamp(20px,2.6vw,28px);font-weight:800}.search-interests{background:var(--accent-soft);max-width:100%;color:var(--accent);border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:700;display:inline-flex}.search-tip{max-width:360px;color:var(--text-2);animation:fade-up .4s var(--ease) both;font-size:14.5px}.search-name{animation:fade-up .4s var(--ease) both}.search-conn{color:var(--text-2);animation:fade-up .4s var(--ease) both;align-items:center;gap:8px;font-size:15px;font-weight:600;display:inline-flex}.reel{align-items:center;gap:13px;display:flex}.reel-win{background:#130f1d;border-radius:30px;width:112px;height:140px;position:relative;overflow:hidden;box-shadow:0 18px 40px -16px #000000e6}.reel-win:before{content:"";z-index:1;background:linear-gradient(#130f1d,#130f1d00 30% 70%,#130f1d);position:absolute;inset:0}.reel-win:after{content:"";z-index:2;border-radius:inherit;box-shadow:inset 0 0 0 1.5px rgba(var(--accent-rgb), .55);transition:box-shadow .3s;position:absolute;inset:0}.reel-strip{will-change:transform;transition:filter .35s;transform:translateY(18px)}.reel-win.fast .reel-strip{filter:blur(1.4px)}.reel-cell{place-items:center;height:104px;display:grid}.reel-pin{background:var(--accent);clip-path:polygon(0 0,100% 50%,0 100%);width:9px;height:14px;transition:background-color .3s}.reel-pin:last-child{clip-path:polygon(100% 0,0 50%,100% 100%)}.reel.landed .reel-win{animation:reel-hit .6s var(--ease)}.reel.landed .reel-win:after{box-shadow:inset 0 0 0 2.5px var(--fun)}.reel.landed .reel-pin{background:var(--fun)}@keyframes reel-hit{35%{transform:scale(1.07)}}.stage-center.placeholder{background:#130f1d}.placeholder p{color:var(--text-2);align-items:center;gap:8px;margin-top:6px;font-size:15px;font-weight:600;display:inline-flex}.invite-banner{z-index:8;top:calc(env(safe-area-inset-top) + 64px);-webkit-backdrop-filter:blur(16px);width:max-content;max-width:calc(100% - 24px);box-shadow:var(--shadow-pop);animation:banner-in .35s var(--ease-spring) both;background:#1c1726f2;border-radius:18px;align-items:center;gap:12px;padding:10px 10px 10px 12px;display:flex;position:absolute;left:50%;transform:translate(-50%)}@keyframes banner-in{0%{opacity:0;transform:translate(-50%,-10px)scale(.96)}to{opacity:1;transform:translate(-50%)scale(1)}}.invite-banner-text{min-width:0}.invite-banner-text b{font-size:14px;line-height:1.3;display:block}.invite-banner-text span{color:var(--text-2);font-size:13px;display:block}.invite-banner-actions{gap:6px;margin-left:4px;display:flex}.vcam-note{box-shadow:var(--shadow-pop), inset 0 0 0 1px #f5a5244d}.vcam-note .invite-banner-text{max-width:360px}.vcam-note-icon{background:var(--amber-soft);width:40px;height:40px;color:var(--amber);border-radius:12px;flex:none;place-items:center;display:grid}.vcam-badge{background:var(--amber);color:#1f1400;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;display:inline-grid;position:relative}.toast,.stage-chip{z-index:9;top:calc(env(safe-area-inset-top) + 64px);width:max-content;max-width:calc(100% - 24px);animation:toast-in .3s var(--ease) both;border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:600;display:inline-flex;position:absolute;left:50%;transform:translate(-50%)}.toast{-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow-pop);background:#1c1726f2}.toast svg{flex:none}.toast.info svg{color:var(--blue)}.toast.warn svg{color:var(--amber)}.toast.success svg{color:var(--green)}.stage-chip{z-index:8;font-size:13.5px;font-weight:700}.stage-chip.warn{color:#1f1400;background:#f5a524f0}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.tap-to-play{z-index:8;color:#111;background:#fff;border-radius:999px;align-items:center;gap:10px;height:52px;padding:0 24px;font-weight:800;display:inline-flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 16px 40px -10px #0009}.hi5-prompt{z-index:8;background:var(--fun);width:max-content;max-width:calc(100% - 24px);color:var(--fun-ink);text-align:left;animation:hi5-in .35s var(--ease-spring) both, hi5-glow 1.3s var(--ease) .35s infinite;border-radius:999px;align-items:center;gap:10px;padding:6px;font-size:14px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.hi5-prompt-icon{background:#0000001f;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;display:grid}.hi5-prompt em{background:var(--fun-ink);color:var(--fun);border-radius:999px;flex:none;padding:8px 14px;font-style:normal;font-weight:800}@keyframes hi5-in{0%{opacity:0;transform:translate(-50%)translateY(10px)scale(.95)}to{opacity:1;transform:translate(-50%)}}@keyframes hi5-glow{0%{box-shadow:0 0 0 0 rgba(var(--fun-rgb), .55), 0 16px 40px -12px rgba(var(--fun-rgb), .5)}to{box-shadow:0 0 0 14px rgba(var(--fun-rgb), 0), 0 16px 40px -12px rgba(var(--fun-rgb), .5)}}.hi5-burst{z-index:9;pointer-events:none;animation:burst 1.8s var(--ease) both;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.hi5-burst span{background:var(--fun);width:104px;height:104px;color:var(--fun-ink);box-shadow:0 0 0 14px rgba(var(--fun-rgb), .18), 0 20px 50px -10px #0009;border-radius:50%;place-items:center;display:grid}.hi5-burst b{letter-spacing:-.03em;text-shadow:0 6px 30px #0009;font-size:clamp(28px,4vw,44px);font-weight:800}@keyframes burst{0%{opacity:0;transform:scale(.4)}20%{opacity:1;transform:scale(1.08)}32%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:scale(1.04)}}.floaters{z-index:5;pointer-events:none;position:absolute;inset:0;overflow:hidden}.floater{background:var(--rc);color:#fff;width:48px;height:48px;box-shadow:0 10px 24px -8px var(--rc);border-radius:50%;place-items:center;animation:3s cubic-bezier(.2,.7,.4,1) forwards floatup;display:grid;position:absolute;bottom:18px}.floater svg{width:24px;height:24px}.floater.mine{width:40px;height:40px}.floater.mine svg{width:20px;height:20px}.floater:nth-child(2n){animation-name:floatup-alt}@keyframes floatup{0%{opacity:0;transform:translateY(20px)scale(.4)}12%{opacity:1;transform:translateY(-10px)scale(1.15)}25%{transform:translateY(-40px)scale(1)}70%{opacity:1}to{opacity:0;transform:translate(14px,-340px)scale(.9)}}@keyframes floatup-alt{0%{opacity:0;transform:translateY(20px)scale(.4)}12%{opacity:1;transform:translateY(-10px)scale(1.15)}25%{transform:translateY(-40px)scale(1)}70%{opacity:1}to{opacity:0;transform:translate(-14px,-340px)scale(.9)}}.peek{z-index:6;text-align:left;flex-direction:column;align-items:flex-start;gap:6px;max-width:min(72%,340px);display:flex;position:absolute;bottom:14px;left:12px}.peek-msg{-webkit-backdrop-filter:blur(12px);overflow-wrap:anywhere;max-width:100%;animation:fade-up .25s var(--ease) both;background:#100d18bf;border-radius:16px 16px 16px 6px;padding:8px 12px;font-size:14px;line-height:1.35;box-shadow:0 0 0 1px #ffffff14}.peek-msg b{color:var(--accent);margin-right:4px}.dock{z-index:3;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line);grid-area:dock;align-items:center;gap:8px;display:flex;position:relative}.dock-side{align-items:center;display:flex}.dock-main{align-items:center;gap:8px;display:flex}.dock-end{flex:1;justify-content:flex-end;min-width:0}.ctrl{background:var(--surface-2);width:46px;height:46px;box-shadow:inset 0 0 0 1px var(--line);color:var(--text);border-radius:50%;flex:none;place-items:center;transition:background-color .15s,color .15s,transform .12s;display:grid;position:relative}.ctrl:hover:not(:disabled){background:var(--surface-3)}.ctrl:active:not(:disabled){transform:scale(.94)}.ctrl:disabled{opacity:.4;cursor:not-allowed}.ctrl.off{background:var(--red);box-shadow:none;color:#fff}.ctrl.off:hover:not(:disabled){background:#f47373}.ctrl.on{background:var(--text);box-shadow:none;color:var(--bg)}.ctrl.on:hover:not(:disabled){background:#fff}.ctrl-end{background:var(--red);box-shadow:none;color:#fff}.ctrl-end:hover:not(:disabled){background:#f47373}.ctrl.hi5.sent{background:var(--fun-soft);box-shadow:inset 0 0 0 1px var(--fun-line);color:var(--fun);animation:1.2s infinite ring-pulse}.ctrl.hi5.received,.ctrl.nudge{background:var(--fun);color:var(--fun-ink);animation:1s infinite ring-pulse}@keyframes ring-pulse{0%{box-shadow:0 0 0 0 rgba(var(--fun-rgb), .6)}to{box-shadow:0 0 0 12px rgba(var(--fun-rgb), 0)}}.ctrl-badge{background:var(--accent-fill);min-width:18px;height:18px;color:var(--accent-ink);box-shadow:0 0 0 2px var(--bg);border-radius:999px;place-items:center;padding:0 5px;font-size:11px;font-weight:800;display:grid;position:absolute;top:-3px;right:-3px}.ctrl-dot{background:var(--green);width:10px;height:10px;box-shadow:0 0 0 2px var(--bg);border-radius:50%;position:absolute;top:2px;right:2px}.next-btn{background:var(--accent-fill);width:100%;height:46px;color:var(--accent-ink);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:16px;font-weight:800;transition:background-color .15s,transform .12s,color .15s;display:inline-flex;position:relative}.next-btn:hover:not(:disabled){background:var(--accent-fill-hover)}.next-btn:active:not(:disabled){transform:scale(.97)}.next-btn:disabled{background:var(--surface-2);color:var(--text-2);cursor:default}.next-btn .spinner{width:15px;height:15px}.dock .tray-anchor{position:static}.tray{z-index:20;-webkit-backdrop-filter:blur(16px);width:min(316px,100vw - 24px);box-shadow:var(--shadow-pop);animation:tray-in .2s var(--ease) both;background:#221d2ef7;border-radius:22px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;padding:8px;display:flex;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}@keyframes tray-in{0%{opacity:0;transform:translate(-50%,6px)scale(.96)}to{opacity:1;transform:translate(-50%)scale(1)}}.tray-btn{width:44px;height:44px;color:var(--rc);transition:background-color .15s, transform .15s var(--ease-spring);border-radius:50%;place-items:center;display:grid}.tray-btn:active{transform:scale(.9)}.tray-hi5{background:var(--fun-soft);width:100%;height:44px;color:var(--fun);border-radius:14px;order:2;justify-content:center;align-items:center;gap:8px;margin-top:4px;font-size:14.5px;font-weight:800;display:inline-flex}.tray-hi5.sent{opacity:.7}.tray-hi5.received{background:var(--fun);color:var(--fun-ink);animation:1s infinite ring-pulse}.tray-sep{display:none}.panel{z-index:2;visibility:hidden;background:var(--bg-2);height:0;min-height:0;transition:height .3s var(--ease), visibility 0s linear .3s;flex-direction:column;grid-area:panel;display:flex;position:relative;overflow:hidden}.room[data-sheet=chat] .panel{height:min(52dvh,500px)}.room[data-sheet=play] .panel{height:min(60dvh,640px)}.room[data-sheet=play][data-game=drawguess] .panel{height:min(70dvh,720px)}.room:not([data-sheet=none]) .panel{visibility:visible;transition:height .3s var(--ease);border-radius:18px 18px 0 0;margin-top:-18px;box-shadow:0 -14px 30px -14px #000000b3}.room[data-sheet=play] .self:not(.full){width:clamp(72px,20vw,100px)}.room:not([data-sheet=none]) .self:not(.full)[data-corner^=b]{bottom:calc(var(--inset) + 18px)}.room[data-kb] .dock{display:none}.room[data-kb] .self:not(.full){--top:calc(env(safe-area-inset-top) + 58px);width:52px}.room[data-kb][data-sheet=chat]{grid-template-rows:minmax(0,2fr) minmax(0,3fr) auto}.room[data-kb][data-sheet=chat] .panel{height:auto;transition:none}.room[data-kb][data-sheet=chat] .panel-head{display:none}.room[data-kb=overlay]{top:var(--kb-top,0);height:var(--kb-h,100dvh);position:fixed;left:0;right:0}.room[data-kb=overlay][data-sheet=play] .panel{height:min(calc(var(--kb-h) * .6), 640px)}.room[data-kb=overlay][data-sheet=play][data-game=drawguess] .panel{height:min(calc(var(--kb-h) * .7), 720px)}.sheet-grip{background:var(--line-2);border-radius:999px;width:36px;height:4px;margin-left:-18px;position:absolute;top:6px;left:50%}.panel-head{border-bottom:1px solid var(--line);touch-action:none;flex:none;align-items:center;gap:8px;padding:16px 8px 10px 12px;display:flex;position:relative}.segmented{background:var(--surface-1);border:1px solid var(--line);border-radius:12px;flex:1;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.segmented button{height:36px;color:var(--text-2);border-radius:9px;justify-content:center;align-items:center;gap:7px;font-size:14px;font-weight:700;transition:background-color .15s,color .15s;display:inline-flex}.segmented button:hover{color:var(--text)}.segmented button[aria-selected=true]{background:var(--surface-3);color:var(--text);box-shadow:0 1px 2px #00000059}.count{background:var(--accent-fill);min-width:18px;height:18px;color:var(--accent-ink);border-radius:999px;place-items:center;padding:0 5px;font-size:11px;font-weight:800;display:inline-grid}.live-tag{background:var(--green-soft);color:var(--green);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:2px 7px;font-size:10.5px;font-weight:800}.panel-body{flex-direction:column;flex:1;min-height:0;display:flex}.panel-body[hidden]{display:none}.chat{flex-direction:column;flex:1;min-height:0;display:flex}.chat-list{overscroll-behavior:contain;flex-direction:column;flex:1;gap:6px;min-height:0;padding:14px 14px 10px;display:flex;overflow-y:auto}.match-card{background:var(--surface-1);border:1px solid var(--line);animation:fade-up .3s var(--ease) both;border-radius:16px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;margin-bottom:8px;padding:14px;display:grid}.match-text{min-width:0}.match-text b{font-size:15.5px;line-height:1.3;display:block}.match-text span{color:var(--text-2);font-size:13.5px;display:block}.match-common{background:var(--green-soft);color:var(--green);border-radius:10px;grid-column:1/-1;align-items:center;gap:7px;padding:7px 11px;font-size:13px;font-weight:700;display:flex}.match-common svg{flex:none}.match-ice{grid-column:1/-1}.chat-empty{text-align:center;flex-direction:column;align-items:center;gap:4px;margin:auto;padding:24px;display:flex}.chat-empty-icon{background:var(--surface-1);border:1px solid var(--line);width:48px;height:48px;color:var(--text-2);border-radius:14px;place-items:center;margin-bottom:8px;display:grid}.chat-empty b{font-size:15px}.chat-empty p{max-width:240px;color:var(--text-2);font-size:14px}.msg-system{background:var(--surface-1);border:1px solid var(--line);max-width:95%;color:var(--text-2);text-align:center;border-radius:999px;align-self:center;align-items:center;gap:6px;margin:6px 0;padding:5px 11px;font-size:12.5px;font-weight:600;display:inline-flex}.msg-system svg{flex:none}.msg{max-width:82%;animation:msg-in .2s var(--ease) both;display:flex}.msg p{overflow-wrap:anywhere;border-radius:18px;padding:8px 13px;font-size:15px;line-height:1.4}.msg.me{align-self:flex-end}.msg.me p{background:var(--accent-fill);color:var(--accent-ink);border-bottom-right-radius:6px;font-weight:500}.msg.them{align-self:flex-start}.msg.them p{background:var(--surface-2);border-bottom-left-radius:6px}.msg.grouped{margin-top:-3px}.msg.me.grouped p{border-top-right-radius:6px}.msg.them.grouped p{border-top-left-radius:6px}@keyframes msg-in{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}.msg.typing{background:var(--surface-2);border-radius:18px 18px 18px 6px;gap:4px;width:fit-content;padding:12px 14px}.msg.typing span{background:var(--text-2);border-radius:50%;width:6px;height:6px;animation:1.2s infinite typing}.msg.typing span:nth-child(2){animation-delay:.15s}.msg.typing span:nth-child(3){animation-delay:.3s}@keyframes typing{0%,60%,to{opacity:.45;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.ice-card{background:var(--accent-soft);border:1px solid rgba(var(--accent-rgb), .25);max-width:88%;animation:msg-in .25s var(--ease) both;border-radius:16px;padding:10px 13px}.ice-card.me{align-self:flex-end}.ice-card.them{align-self:flex-start}.ice-card span{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);align-items:center;gap:5px;font-size:11.5px;font-weight:800;display:inline-flex}.ice-card p{margin-top:4px;font-weight:700;line-height:1.4}.composer{border-top:1px solid var(--line);flex:none;align-items:center;gap:8px;padding:10px;display:flex}.composer input{background:var(--surface-1);border:1px solid var(--line);border-radius:999px;outline:none;flex:1;min-width:0;height:42px;padding:0 16px;font-size:16px;transition:border-color .15s}.composer input:focus{border-color:var(--accent-line)}.composer input:disabled{opacity:.6}.composer-ice{width:42px;height:42px;color:var(--accent);border-radius:50%}.composer-ice:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.send-btn{background:var(--accent-fill);width:42px;height:42px;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;transition:opacity .15s,transform .12s;display:grid}.send-btn:disabled{opacity:.3;cursor:default}.send-btn:active:not(:disabled){transform:scale(.93)}.play{flex-direction:column;flex:1;min-height:0;display:flex}.play-scroll{overscroll-behavior:contain;flex:1;min-height:0;padding:16px 14px;overflow-y:auto}.play-intro h3{letter-spacing:-.015em;font-size:17px}.play-intro p{color:var(--text-2);margin-top:2px;font-size:14px}.invite-card{background:var(--accent-soft);border:1px solid var(--accent-line);animation:fade-up .3s var(--ease) both;border-radius:16px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;margin-top:14px;padding:12px;display:grid}.invite-card-text b{font-size:14.5px;display:block}.invite-card-text span{color:var(--text-2);font-size:13px;display:block}.invite-card-actions{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:8px;display:grid}.game-list{grid-template-columns:minmax(0,1fr);gap:8px;margin-top:14px;display:grid}.game-row{background:var(--surface-1);border:1px solid var(--line);text-align:left;transition:background-color .15s, border-color .15s, transform .15s var(--ease);border-radius:14px;align-items:center;gap:12px;padding:10px 12px 10px 10px;display:flex}.game-row:active:not(:disabled){transform:scale(.99)}.game-row:disabled{opacity:.45}.game-row.pending{background:var(--accent-soft);border-color:var(--accent-line)}.game-row-text{flex:1;min-width:0}.game-row-text b{font-size:14.5px;line-height:1.3;display:block}.game-row-text small{white-space:nowrap;text-overflow:ellipsis;color:var(--text-2);font-size:13px;display:block;overflow:hidden}.game-row-meta{color:var(--text-3);white-space:nowrap;align-items:center;gap:4px;font-size:12.5px;font-weight:600;display:inline-flex}.game-row-meta svg:last-child{margin-left:4px}.game-row-cancel{color:var(--accent);align-items:center;gap:6px;font-size:13px;font-weight:700;display:inline-flex}.game-row-cancel .spinner{width:14px;height:14px}.play-foot{color:var(--text-3);text-align:center;justify-content:center;align-items:center;gap:6px;margin-top:16px;font-size:13px;display:flex}.play-head{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:10px;padding:10px 8px 10px 14px;display:flex}.play-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:15px;overflow:hidden}.scoreboard{background:var(--surface-1);border:1px solid var(--line);height:30px;color:var(--text-2);border-radius:999px;align-items:center;gap:6px;padding:0 4px 0 10px;font-size:12.5px;font-weight:700;display:inline-flex}.scoreboard b{color:var(--text);font-variant-numeric:tabular-nums;font-size:15px}.scoreboard i{color:var(--text-3);font-style:normal}.play-body{overscroll-behavior:contain;flex:1;min-height:0;padding:16px;overflow-y:auto}.game{flex-direction:column;align-items:stretch;gap:14px;max-width:420px;margin:0 auto;display:flex}.g-status{text-align:center;justify-content:center;align-items:center;gap:8px;min-height:26px;font-size:15.5px;font-weight:700;display:flex}.g-status.go{color:var(--accent)}.g-sub{text-align:center;color:var(--text-2);justify-content:center;font-size:14px;display:flex}.g-hint{text-align:center;color:var(--text-3);margin-top:-6px;font-size:13px}.g-intro{gap:2px;display:grid}.g-thinking{color:var(--text-2);align-items:baseline;font-weight:600;display:inline-flex}.dots{gap:3px;margin-left:4px;display:inline-flex}.dots i{background:currentColor;border-radius:50%;width:4px;height:4px;animation:1.2s infinite typing}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}.g-inline-mark{place-items:center;width:22px;height:22px;display:inline-grid}.g-inline-mark svg{width:18px;height:18px}.g-inline-mark.mine{color:var(--accent)}.g-result{background:var(--surface-1);border:1px solid var(--line);animation:pop-in .35s var(--ease-spring) both;border-radius:14px;align-items:center;gap:12px;padding:12px 14px;display:flex}.g-result-icon{border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid}.g-result.win{background:var(--fun-soft);border-color:var(--fun-line)}.g-result.win .g-result-icon{background:var(--fun);color:var(--fun-ink)}.g-result.draw .g-result-icon{background:var(--blue-soft);color:var(--blue)}.g-result.lose .g-result-icon{background:var(--surface-3);color:var(--text-2)}.g-result h4{letter-spacing:-.01em;font-size:16px}.g-result p{color:var(--text-2);margin-top:2px;font-size:13.5px}.g-again{align-self:center}.g-legend{color:var(--text-2);justify-content:center;gap:16px;font-size:12.5px;font-weight:600;display:flex}.g-legend span{align-items:center;gap:6px;display:inline-flex}.g-waiting{text-align:center;justify-content:center;align-items:center;min-height:220px}.g-waiting-icon{background:var(--surface-1);border:1px solid var(--line);width:56px;height:56px;color:var(--text-2);border-radius:16px;place-items:center;display:grid}.ttt-board{grid-template-columns:repeat(3,1fr);gap:8px;width:100%;max-width:min(300px,38dvh);margin:0 auto;display:grid}.ttt-cell{aspect-ratio:1;background:var(--surface-1);border:1px solid var(--line);border-radius:16px;place-items:center;transition:background-color .15s,border-color .15s;display:grid}.ttt-cell:disabled{cursor:default}.ttt-mark{width:52%;height:52%;animation:pop-in .25s var(--ease-spring) both}.ttt-cell.mine{color:var(--accent)}.ttt-cell.theirs{color:var(--blue)}.ttt-cell.win{background:var(--fun-soft);border-color:var(--fun-line)}.ttt-cell.theirs.win{background:var(--blue-soft);border-color:#5b9dff66}.c4-board{background:#2446a6;border-radius:18px;grid-template-columns:repeat(7,1fr);gap:3px;width:100%;max-width:min(360px,49dvh);margin:0 auto;padding:8px;display:grid;box-shadow:inset 0 -5px #00000040,0 14px 30px -16px #2446a6e6}.c4-col{border-radius:10px;gap:3px;padding:2px;transition:background-color .15s;display:grid}.c4-col:disabled{cursor:default}.c4-slot{aspect-ratio:1;background:#0d1535;border-radius:50%;position:relative;box-shadow:inset 0 3px 6px #0000008c}.c4-disc{border-radius:50%;position:absolute;inset:3px}.c4-disc.mine,.c4-dot.mine{background:radial-gradient(circle at 35% 30%, #e6d8ff, var(--accent) 62%)}.c4-disc.theirs,.c4-dot.theirs{background:radial-gradient(circle at 35% 30%,#ffa3a1,#f25f5c 62%)}.c4-disc.drop{animation:.35s cubic-bezier(.5,0,.75,0) both c4drop}.c4-disc.win{box-shadow:0 0 0 3px #fff,0 0 16px #fffc}@keyframes c4drop{0%{transform:translateY(var(--fall))}to{transform:translateY(0)}}.c4-dot{border-radius:50%;width:14px;height:14px;display:inline-block}.rps-score{background:var(--surface-1);border:1px solid var(--line);border-radius:16px;grid-template-columns:1fr auto 1fr;align-items:center;padding:10px 16px;display:grid}.rps-player{text-align:center}.rps-player small{color:var(--text-2);align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.rps-player b{font-variant-numeric:tabular-nums;font-size:30px;font-weight:800;line-height:1.1;display:block}.rps-target{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-size:11px;font-weight:800}.rps-arena{justify-content:center;align-items:center;gap:18px;padding:4px 0;display:flex}.rps-hand{background:var(--surface-1);border:1px solid var(--line);border-radius:50%;place-items:center;width:92px;height:92px;transition:background-color .2s,border-color .2s;display:grid}.rps-hand svg{width:44px;height:44px}.rps-hand.mine{color:var(--accent)}.rps-hand.mine svg{transform:scaleX(-1)}.rps-hand.theirs{color:var(--blue)}.rps-arena.mine .rps-hand.mine{background:var(--accent-soft);border-color:var(--accent-line)}.rps-arena.theirs .rps-hand.theirs{background:var(--blue-soft);border-color:#5b9dff66}.rps-arena.shaking .rps-hand{animation:.3s ease-in-out 3 rps-shake}@keyframes rps-shake{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}.rps-vs{color:var(--text-3);font-size:13px;font-weight:800}.rps-choices{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.rps-choice{background:var(--surface-1);border:1px solid var(--line);color:var(--text-2);transition:background-color .15s, border-color .15s, transform .15s var(--ease);border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:16px 6px 12px;font-size:13.5px;font-weight:700;display:flex}.rps-choice svg{color:var(--text)}.rps-choice.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.rps-choice.on svg{color:var(--accent)}.rps-choice:disabled:not(.on){opacity:.4}.tot-progress{justify-content:center;gap:5px;display:flex}.tot-progress span{background:var(--surface-3);border-radius:999px;width:26px;height:5px;transition:background-color .3s}.tot-progress span.same{background:var(--accent-fill)}.tot-progress span.diff{background:var(--blue)}.tot-progress span.now{background:var(--text)}.tot-options{grid-template-columns:minmax(0,1fr);gap:10px;display:grid;position:relative}.tot-opt{--oc:#a78bfa;background:var(--surface-1);border:1px solid var(--line);letter-spacing:-.015em;min-height:84px;transition:background-color .15s, border-color .15s, transform .15s var(--ease);border-radius:18px;justify-content:center;align-items:center;gap:12px;padding:16px;font-size:19px;font-weight:800;display:flex}.tot-opt.b{--oc:#f5a524}.tot-opt svg{color:var(--oc)}.tot-opt:active:not(:disabled){transform:scale(.985)}.tot-opt.on{border-color:var(--oc);background:color-mix(in oklab, var(--oc) 16%, var(--surface-1));box-shadow:inset 0 0 0 1px var(--oc)}.tot-opt:disabled:not(.on){opacity:.45}.tot-or{background:var(--bg-2);border:1px solid var(--line-2);text-transform:uppercase;width:34px;height:34px;color:var(--text-2);pointer-events:none;border-radius:50%;place-items:center;font-size:11px;font-weight:800;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tot-last{text-align:center;animation:pop-in .3s var(--ease) both;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 12px;font-size:13.5px;font-weight:600;display:flex}.tot-last svg{flex:none}.tot-last.same{background:var(--accent-soft);color:var(--accent)}.tot-last.diff{background:var(--blue-soft);color:#9cc2ff}.vibe-ring{--pct:0%;text-align:center;background:radial-gradient(closest-side, var(--bg-2) 82%, transparent 83%), conic-gradient(var(--accent) var(--pct), var(--surface-3) 0);width:148px;height:148px;animation:pop-in .5s var(--ease-spring) both;border-radius:50%;place-content:center;align-self:center;display:grid}.vibe-ring b{letter-spacing:-.03em;font-size:38px;font-weight:800;line-height:1}.vibe-ring small{color:var(--text-2);font-size:12px;font-weight:600}.tot-verdict{text-align:center}.tot-verdict h4{letter-spacing:-.02em;font-size:20px}.tot-recap{grid-template-columns:minmax(0,1fr);gap:6px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.tot-recap li{background:var(--surface-1);border-radius:10px;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:8px 10px;display:grid}.tot-recap li span:last-child{text-align:right}.tot-recap em{color:var(--text-3);place-items:center;display:grid}.tot-recap li.same{background:var(--accent-soft)}.tot-recap li.same em{color:var(--accent)}.tt-ready{color:var(--green);justify-content:center;align-items:center;gap:6px;font-size:13.5px;font-weight:700;display:flex}.tt-inputs{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.tt-row{background:var(--surface-1);border:1px solid var(--line);border-radius:14px;gap:6px;padding:4px;transition:border-color .15s,background-color .15s;display:flex}.tt-row:focus-within{border-color:var(--line-2)}.tt-row.lie{background:var(--red-soft);border-color:#f25c5c80}.tt-row input{background:0 0;border:0;outline:none;flex:1;min-width:0;height:40px;padding:0 10px;font-size:16px}.tt-lie-btn{background:var(--surface-2);color:var(--text-2);white-space:nowrap;border-radius:10px;align-items:center;gap:5px;padding:0 12px;font-size:12.5px;font-weight:800;display:inline-flex}.tt-row.lie .tt-lie-btn{background:var(--red);color:#fff}.tt-guesses{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.tt-guess{background:var(--surface-1);border:1px solid var(--line);text-align:left;overflow-wrap:anywhere;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;font-weight:600;transition:background-color .15s,border-color .15s;display:flex}.tt-guess:disabled{cursor:default}.tt-guess em{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;flex:none;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-style:normal;font-weight:800;display:inline-flex}.tt-guess.is-truth em{background:var(--green-soft);color:var(--green)}.tt-guess.is-lie{background:var(--red-soft);border-color:#f25c5c80}.tt-guess.is-lie em{background:var(--red);color:#fff}.tt-guess.picked{box-shadow:inset 0 0 0 1.5px var(--text)}.tt-them{text-align:center}.dg-top{color:var(--text-2);align-items:center;gap:10px;font-size:13px;display:flex}.dg-round{background:var(--surface-1);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:999px;flex:none;padding:4px 9px;font-weight:800}.dg-timer{background:var(--surface-1);border:1px solid var(--line);color:var(--text);font-variant-numeric:tabular-nums;border-radius:999px;flex:none;align-items:center;gap:5px;padding:4px 10px;font-weight:800;display:inline-flex}.dg-timer.low{background:var(--red);color:#fff;border-color:#0000;animation:.8s infinite pulse-scale}@keyframes pulse-scale{50%{transform:scale(1.06)}}.dg-word{text-align:center;min-width:0;min-height:30px;color:var(--text);flex:1;justify-content:center;align-items:center;font-size:15px;display:flex}.dg-secret{background:var(--accent-fill);color:var(--accent-ink);letter-spacing:.03em;text-transform:uppercase;border-radius:8px;padding:2px 10px;font-size:16px}.dg-blanks{letter-spacing:.14em;font-size:19px;font-weight:800}.dg-blanks small{letter-spacing:0;color:var(--text-3);white-space:nowrap;margin-left:6px;font-size:12px;font-weight:600}.dg-reveal{color:var(--text-2);animation:pop-in .3s var(--ease) both;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:inline-flex}.dg-reveal.correct{color:var(--green)}.dg-reveal b{color:var(--text);text-transform:uppercase;letter-spacing:.03em}.dg-canvas-wrap{border:1px solid var(--line-2);touch-action:none;background:#fbfaf7;border-radius:16px;width:min(100%,48dvh);margin:0 auto;position:relative;overflow:hidden}.dg-canvas-wrap canvas{aspect-ratio:4/3;width:100%;height:auto;display:block}.dg-canvas-wrap.can-draw{cursor:crosshair;box-shadow:0 0 0 2px var(--accent)}.dg-canvas-tag{pointer-events:none;color:#fff;background:#0009;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex;position:absolute;top:8px;left:8px}.dg-tools{gap:10px;display:grid}.dg-palette{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.dg-swatches,.dg-sizes{align-items:center;gap:6px;display:flex}.dg-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.dg-color{border-radius:50%;width:26px;height:26px;transition:transform .15s;box-shadow:0 0 0 1px #fff3}.dg-color[aria-pressed=true]{box-shadow:0 0 0 2px var(--bg-2), 0 0 0 4px var(--text);transform:scale(1.12)}.dg-size{background:var(--surface-1);border:1px solid var(--line);border-radius:9px;place-items:center;width:32px;height:32px;display:grid}.dg-size span{background:var(--text);border-radius:50%;display:block}.dg-size[aria-pressed=true]{background:var(--surface-3);border-color:var(--line-2)}.dg-guess{gap:8px;display:flex}.dg-guess input{background:var(--surface-1);border:1px solid var(--line);border-radius:999px;outline:none;flex:1;min-width:0;height:42px;padding:0 16px;font-size:16px;transition:border-color .15s}.dg-guess input:focus{border-color:var(--accent-line)}.dg-log{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.dg-log span{background:var(--surface-1);border:1px solid var(--line);color:var(--text-2);border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:12.5px;display:inline-flex}.dg-log span b{color:var(--text);font-weight:700}.dg-log span.ok{background:var(--green-soft);color:var(--green);border-color:#0000}.g-final{align-items:center}.dg-final{text-align:center}.dg-final b{letter-spacing:-.04em;color:var(--fun);font-size:64px;font-weight:800;line-height:1;display:block}.dg-final b span{color:var(--text-3);font-size:30px}.dg-final small{color:var(--text-2);font-size:13px;font-weight:600}@media (hover:hover){.tray-btn:hover{background:color-mix(in oklab, var(--rc) 18%, transparent);transform:translateY(-3px)scale(1.08)}.game-row:hover:not(:disabled),.ttt-cell:not(:disabled):hover{background:var(--surface-2);border-color:var(--line-2)}.c4-board.my-turn .c4-col:not(:disabled):hover{background:#ffffff1f}.c4-board.my-turn .c4-col:not(:disabled):hover .c4-slot.landing:after{content:"";background:var(--accent-fill);opacity:.35;border-radius:50%;position:absolute;inset:3px}.rps-choice:hover:not(:disabled){background:var(--surface-2);border-color:var(--line-2);transform:translateY(-2px)}.tot-opt:hover:not(:disabled){border-color:color-mix(in oklab, var(--oc) 55%, transparent);background:color-mix(in oklab, var(--oc) 8%, var(--surface-1))}.tt-guess:hover:not(:disabled){background:var(--surface-2);border-color:var(--accent-line)}}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);background:#040406b3;place-items:center;padding:16px;animation:.2s both fade-in;display:grid;position:fixed;inset:0}.modal{background:var(--surface-1);border:1px solid var(--line-2);width:100%;max-width:440px;animation:modal-in .25s var(--ease) both;border-radius:22px;outline:none;padding:22px;box-shadow:0 30px 80px -20px #000000d9}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.modal-head{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:14px;display:grid}.modal-icon{background:var(--red-soft);width:40px;height:40px;color:var(--red);border-radius:12px;place-items:center;display:grid}.modal-head h3{letter-spacing:-.015em;margin-top:1px;font-size:18px}.modal-head p{color:var(--text-2);margin-top:4px;font-size:14px;line-height:1.5}.reasons{border:0;grid-template-columns:minmax(0,1fr);gap:8px;margin:18px 0 0;padding:0;display:grid}.reason{background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:12px 14px;font-size:15px;font-weight:600;transition:border-color .15s,background-color .15s;display:flex;position:relative}.reason:hover{border-color:var(--line-2)}.reason:has(input:checked){background:var(--red-soft);border-color:#f25c5c8c}.reason input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.radio{border:1.5px solid var(--text-3);border-radius:50%;flex:none;width:20px;height:20px;transition:border-color .15s,background-color .15s,box-shadow .15s}.reason input:checked+.radio{border-color:var(--red);background:var(--red);box-shadow:inset 0 0 0 3.5px var(--surface-2)}.reason:has(input:checked) input:checked+.radio{box-shadow:inset 0 0 0 3.5px #2a1c20}.reason input:focus-visible+.radio{outline:2px solid var(--accent);outline-offset:2px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.remote{transition:filter .2s var(--ease)}.room[data-reporting] .remote{filter:blur(28px)brightness(.55)}.report-modal .reasons{gap:6px;margin-top:16px}.report-modal .reason{padding:10px 14px}.reasons-legend{color:var(--text-2);margin-bottom:8px;padding:0;font-size:13px;font-weight:700}.report-switch{color:var(--accent);text-underline-offset:3px;margin-top:6px;font-size:13.5px;font-weight:600;text-decoration:underline}.report-switch:hover{color:var(--text)}.report-details{margin-top:10px;display:block}.report-details textarea{background:var(--surface-2);border:1px solid var(--line);resize:none;border-radius:12px;outline:none;width:100%;min-height:44px;padding:10px 14px;font-size:15px;line-height:1.4;transition:border-color .15s;display:block}.report-details textarea::placeholder{color:var(--text-3)}.report-details textarea:focus{border-color:var(--accent-line)}.report-evidence{color:var(--text-2);align-items:flex-start;gap:8px;margin-top:12px;font-size:13px;line-height:1.45;display:flex}.report-evidence svg{color:var(--text-3);flex:none;margin-top:1px}.stage-btn.report-prev{opacity:.8}.stage-btn.report-prev:hover{opacity:1}.notice-card{border-radius:var(--r-2xl);background:var(--surface-1);border:1px solid var(--line);text-align:center;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:440px;padding:32px 28px;display:flex}.notice-icon{background:var(--amber-soft);width:52px;height:52px;color:var(--amber);border-radius:16px;place-items:center;display:grid}.notice-card h1{letter-spacing:-.025em;color:var(--text);font-size:26px;font-weight:800}.notice-card p{color:var(--text-2)}.notice-card p b{color:var(--text)}.notice-icon.danger{background:var(--red-soft);color:var(--red)}.ban-card{gap:12px}.ban-reason{border-radius:var(--r-md);background:var(--surface-2);padding:8px 14px;font-size:14px}.ban-appeal{font-size:14px}.ban-appeal a{color:var(--accent);font-weight:600}.ban-appeal a:hover{text-decoration:underline}.ban-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px;display:flex}@media (min-width:900px),(min-width:560px) and (orientation:landscape){.room{padding:12px max(12px, env(safe-area-inset-right)) 12px max(12px, env(safe-area-inset-left));background:var(--bg);grid-template:"stage panel"minmax(0,1fr)"dock panel"/minmax(0,1fr) clamp(300px,30vw,380px);gap:0 12px}.stage{border-radius:var(--r-xl)}.room .panel,.room[data-sheet] .panel{visibility:visible;border-radius:var(--r-xl);border:1px solid var(--line);height:auto;box-shadow:none;margin:0;transition:none}.panel-head{touch-action:auto;padding:10px}.sheet-grip{display:none}.dock{background:0 0;border-top:0;grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);padding:12px 2px 0;display:grid}.dock-end{justify-content:flex-end}.ctrl{width:48px;height:48px}.next-btn{width:auto;min-width:148px;height:48px}.dock .tray-anchor{position:relative}.tray{border-radius:999px;flex-wrap:nowrap;width:auto;padding:6px}.tray-hi5,.tray-sep{display:none}.stage-top{background:linear-gradient(#00000059,#0000);padding:14px 14px 30px}.self{--inset:14px;--top:70px;aspect-ratio:4/3;border-radius:16px;width:clamp(150px,20%,240px)}.self.full{border-radius:0}.self.full .self-flip{top:70px}.room[data-sheet=play] .self:not(.full){width:clamp(150px,20%,240px)}.room:not([data-sheet=none]) .self:not(.full)[data-corner^=b]{bottom:var(--inset)}.invite-banner,.toast,.stage-chip{top:70px}.peek{bottom:14px;left:14px}.room .only-narrow{display:none}}@media (min-width:1280px){.room{gap:0 16px;padding:16px}}@media (max-width:899px){.app-top{padding-left:16px;padding-right:16px}.gate-main{place-items:start center;padding:4px 16px 32px}.gate-card{border-radius:var(--r-xl);grid-template-columns:minmax(0,1fr)}.gate-visual{display:none}.gate-body{padding:26px 20px 24px}.gate-body h1{font-size:28px}.gate-steps{margin:20px 0}.prompt-arrow{display:none}.lobby-main{grid-template-columns:minmax(0,1fr);gap:20px;padding:4px 16px 0}.preview{aspect-ratio:4/5;border-radius:var(--r-xl);max-height:56dvh}.lobby-cta{z-index:5;padding:14px 16px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--bg) 72%, #0e0b1600);margin:20px -16px 0;position:sticky;bottom:0}.invite-banner{flex-wrap:wrap;width:auto;animation-name:fade-up;left:12px;right:12px;transform:none}.invite-banner-text{flex:1}.invite-banner-actions{margin-left:auto}.floater{bottom:30%}.play-body{padding:12px 14px 14px}.game{gap:12px}}.room .only-wide{display:none}@media (min-width:900px),(min-width:560px) and (orientation:landscape){.room .dock-side.only-wide{display:flex}.room .ctrl.only-wide{display:grid}}@media (min-width:600px) and (max-width:899px){.dock{justify-content:center}.dock-end{flex:0 340px}}@media (max-width:899px) and (max-height:720px) and (orientation:portrait){.dg-canvas-wrap{width:min(100%,37.3333dvh)}.room[data-sheet=play] .self:not(.full){--top:calc(env(safe-area-inset-top) + 58px);width:56px}.panel-head{padding-top:14px;padding-bottom:8px}.segmented button{height:32px}}@media (max-width:380px){.dock{gap:6px;padding-left:8px;padding-right:8px}.dock-main{gap:6px}.ctrl{width:42px;height:42px}.next-btn{height:42px;padding:0 14px;font-size:15px}.device-row{grid-template-columns:minmax(0,1fr)}.meter-track{width:60px}.online-label{display:none}}@media (max-width:560px){.modal-backdrop{place-items:end stretch;padding:0}.modal{max-width:none;padding:20px 16px calc(16px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;animation-name:sheet-in}.modal-actions .btn{flex:1}}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:none}}
