@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-font-weight:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--container-md:28rem;--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--font-weight-bold:700;--radius-sm:.25rem;--radius-lg:.5rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.mx-auto{margin-inline:auto}.my-4{margin-block:calc(var(--spacing)*4)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-12{margin-top:calc(var(--spacing)*12)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.block{display:block}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.h-12{height:calc(var(--spacing)*12)}.h-48{height:calc(var(--spacing)*48)}.h-64{height:calc(var(--spacing)*64)}.max-w-md{max-width:var(--container-md)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.underline{text-decoration-line:underline}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#080b14;--bg-raised:#0d1220;--surface:#121929;--surface-strong:#182135;--surface-hover:#202b42;--line:#2a3650;--line-soft:#202b40;--text:#f4f7ff;--muted:#a7b2c9;--accent:#67dbc5;--accent-strong:#38bfa8;--accent-ink:#061712;--success:#67d9a6;--warning:#f0c46b;--danger:#ff8192;--danger-bg:#3d1822;--select-bg:#0a1020;--select-fg:#f4f7ff;--select-option-bg:#111a2b;--select-option-hover:#263653;--select-disabled:#748097;--radius-sm:.65rem;--radius:1rem;--radius-lg:1.4rem;--shadow:0 20px 55px #0000004d}*{box-sizing:border-box}html{background:var(--bg);min-width:320px}body{min-height:100vh;color:var(--text);background:radial-gradient(circle at 18% -10%,#1c3150 0,transparent 34rem),radial-gradient(circle at 90% 5%,#183c3a 0,transparent 28rem),var(--bg);margin:0;font-family:Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.app-select{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:var(--radius-sm);color:var(--select-fg);background-color:var(--select-bg);accent-color:var(--accent);border:1px solid #394760}.app-select-option,.app-select option{color:var(--select-fg);background-color:var(--select-option-bg)}.app-select-option:checked,.app-select option:checked{color:var(--accent-ink);background-color:var(--accent)}.app-select-option-disabled,.app-select option:disabled,.app-select:disabled{color:var(--select-disabled);background-color:var(--surface);cursor:not-allowed}.app-select:hover:not(:disabled){background-color:#101a2d;border-color:#52688d}.app-select:focus,.app-select:focus-visible{border-color:var(--accent);outline:3px solid var(--accent);outline-offset:3px}button,a,input,select{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell{width:min(108rem,100% - 2.5rem);margin-inline:auto}.page-shell{padding-block:2.5rem 4rem}.page-stack{gap:1.5rem;display:grid}.compact-hero h1{font-size:clamp(2rem,4vw,3.25rem)}.social-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;display:grid}.social-search{grid-template-columns:minmax(12rem,1fr) auto;align-items:end;gap:.75rem;margin-top:1rem;display:grid}.social-row,.friend-card{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:1rem;min-width:0;min-height:4rem;padding:.85rem 0;display:flex}.social-row>:first-child,.friend-card>:first-child{min-width:0}.social-username{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:min(32rem,52vw);display:block;overflow:hidden}.user-identity{align-items:center;gap:.75rem;min-width:0;display:inline-flex}.user-identity-copy{min-width:0;line-height:1.25;display:grid}.user-identity-copy strong,.user-identity-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-identity-copy small{color:var(--muted)}.room-content-with-chat{grid-template-columns:minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}.room-content-with-chat.has-chat{grid-template-columns:minmax(0,1fr) clamp(340px,24vw,400px)}.room-primary-content{min-width:0}.room-chat{z-index:20;border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;max-width:400px;max-height:min(42rem,100dvh - 8rem);box-shadow:var(--shadow);border-radius:1rem;position:sticky;top:1rem;overflow:hidden}.room-chat.is-collapsed{width:min(12rem,100vw - 2rem);max-width:12rem;position:fixed;top:auto;bottom:1rem;right:1rem}.room-chat-backdrop{display:none}.room-chat-toggle{width:100%;min-height:3.25rem;color:var(--text);background:var(--surface-strong);font:inherit;cursor:pointer;border:0;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:700;display:flex}.room-chat-header{background:var(--surface-strong);justify-content:space-between;align-items:center;gap:.75rem;min-height:3.25rem;padding:.45rem .55rem .45rem 1rem;font-weight:800;display:flex}.room-chat-title,.room-chat-toggle>span:first-child{align-items:center;gap:.5rem;display:inline-flex}.room-chat-body{grid-template-rows:minmax(0,1fr) auto;max-height:min(38.75rem,100dvh - 11.25rem);display:grid}.room-chat.is-collapsed .room-chat-body{display:none}.admin-batch-progress{gap:.45rem;display:grid}.admin-batch-progress progress{width:100%}.chat-messages{overscroll-behavior:contain;min-height:10rem;max-height:min(29rem,100dvh - 20rem);padding:.75rem;overflow-y:auto}.chat-empty{min-height:9rem;color:var(--muted);text-align:center;align-content:center;place-items:center;gap:.45rem;padding:1.25rem;display:grid}.chat-empty strong{color:var(--text)}.chat-empty p{max-width:18rem;margin:0;font-size:.85rem}.chat-message{border-bottom:1px solid var(--border);padding:.7rem 0}.chat-message header,.chat-message footer,.chat-compose>div{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.chat-message header strong{text-overflow:ellipsis;min-width:0;max-width:12rem;overflow:hidden}.chat-message header time{color:var(--muted);margin-left:auto;font-size:.75rem}.chat-message p{overflow-wrap:anywhere;white-space:pre-wrap;margin:.45rem 0}.chat-message footer{justify-content:flex-end}.chat-moderated{color:var(--muted);font-style:italic}.chat-compose{border-top:1px solid var(--border);background:var(--surface-strong);padding:.75rem}.chat-compose label,.chat-compose textarea{width:100%}.chat-compose textarea{resize:vertical;min-height:3.25rem}.chat-compose>div{justify-content:space-between;margin-top:.4rem}.new-chat-messages{color:var(--text);background:var(--accent);cursor:pointer;border:0;border-radius:999px;margin:0 .75rem .5rem;padding:.4rem .75rem}.compact-alert{margin:.5rem;padding:.55rem}.chat-report-dialog{z-index:3;background:#040812d1;place-items:center;padding:1rem;display:grid;position:absolute;inset:0}.chat-report-dialog form{border:1px solid var(--border);background:var(--surface);border-radius:.8rem;width:min(100%,24rem);padding:1rem}.admin-chat-report{border-bottom:1px solid var(--border);padding:1rem 0}.admin-chat-report header{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.admin-chat-report blockquote{border-left:3px solid var(--accent);overflow-wrap:anywhere;white-space:pre-wrap;margin:.75rem 0;padding:.75rem}.social-skeleton,.notification-skeleton{gap:.75rem;padding-block:.75rem;display:grid}.notification-skeleton{padding:1rem}.social-row:first-child,.friend-card:first-child{border-top:0}.social-row small{margin-top:.2rem;display:block}.friend-list{display:grid}.presence-line{align-items:center;gap:.4rem;margin:.25rem 0 0;display:flex}.presence-dot{background:#657087;border-radius:50%;width:.55rem;height:.55rem}.presence-in_game{background:#f2d565}.presence-in_room{background:#92a8ff}.presence-in_lobby,.presence-online{background:var(--success)}.notification-list{padding:0;overflow:hidden}.notification-row{border-bottom:1px solid var(--line-soft);align-items:center;gap:1rem;min-height:4.5rem;padding:.9rem 1rem;display:flex}.notification-row.unread{background:#5cddc30e}.notification-main{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:.8rem;display:flex}.notification-main>span:nth-child(2){min-width:0;display:grid}.notification-main small{color:var(--muted);margin-top:.2rem}.notification-icon{width:2.2rem;height:2.2rem;color:var(--accent);background:var(--surface-hover);border-radius:.65rem;flex:none;place-items:center;display:grid}.unread-marker{background:var(--accent);border-radius:50%;width:.5rem;height:.5rem;margin-left:auto}.load-more{justify-self:center}.friend-invite-dialog{width:min(36rem,100vw - 2rem)}.app-header{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#080b14d1;border-bottom:1px solid #2a3650b3;position:sticky;top:0}.nav-shell{grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;min-height:4.5rem;display:grid}.brand{letter-spacing:-.025em;align-items:center;gap:.7rem;width:max-content;font-size:1.18rem;font-weight:850;display:inline-flex}.brand-mark{width:2rem;height:2rem;color:var(--accent-ink);background:linear-gradient(135deg,var(--accent),#92a8ff);border-radius:.65rem;place-items:center;font-weight:950;display:grid;box-shadow:0 8px 25px #67dbc538}.main-nav{border:1px solid var(--line-soft);background:#121929b3;border-radius:.8rem;gap:.35rem;padding:.28rem;display:flex}.nav-link{color:var(--muted);border-radius:.58rem;align-items:center;gap:.38rem;padding:.48rem .85rem;font-size:.9rem;font-weight:700;display:inline-flex}.nav-link svg{width:1rem;height:1rem}.nav-link:hover,.nav-link.active{color:var(--text);background:var(--surface-hover)}.user-menu{justify-self:end;align-items:center;gap:.65rem;min-width:0;display:flex}.notification-menu{position:relative}.notification-button{border:1px solid var(--line);width:2.5rem;height:2.5rem;color:var(--text);background:var(--surface-hover);cursor:pointer;border-radius:.7rem;place-items:center;display:grid;position:relative}.notification-count{color:#101620;background:var(--accent);border-radius:999px;place-items:center;min-width:1.25rem;height:1.25rem;font-size:.65rem;font-weight:900;display:grid;position:absolute;inset:-.35rem -.35rem auto auto}.notification-dropdown{z-index:50;overscroll-behavior:contain;border:1px solid var(--line);width:min(23rem,100vw - 1.25rem);max-height:min(34rem,100vh - 5.75rem);box-shadow:var(--shadow);background:#111827;border-radius:.9rem;gap:.35rem;padding:.85rem;display:grid;position:absolute;top:calc(100% + .65rem);right:0;overflow-y:auto}.notification-preview{color:var(--muted);background:#ffffff06;border-radius:.6rem;gap:.12rem;padding:.65rem;display:grid}.notification-preview span,.notification-preview small,.notification-main strong,.notification-main small{overflow-wrap:anywhere}.notification-preview.unread{color:var(--text);background:#5cddc317}.notification-preview small,.notification-empty{font-size:.72rem}.notification-preview-main{align-items:center;gap:.65rem;display:flex}.notification-preview-main>svg{width:2rem;color:var(--accent)}.notification-preview-main>span{min-width:0;display:grid}.notification-all{color:var(--accent);text-align:center;padding:.5rem;font-weight:800}.user-chip{text-overflow:ellipsis;white-space:nowrap;max-width:12rem;color:var(--muted);align-items:center;gap:.45rem;font-size:.9rem;display:flex;overflow:hidden}.user-chip-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.status-dot{background:var(--success);border-radius:50%;flex:none;width:.55rem;height:.55rem;box-shadow:0 0 0 4px #67d9a61a}.hero,.room-header,.page-heading{justify-content:space-between;align-items:end;gap:2rem;padding-block:.8rem;display:flex}.hero h1,.room-header h1,.page-heading h1{letter-spacing:-.055em;margin:.15rem 0 .45rem;font-size:clamp(2.25rem,5vw,4.15rem);font-weight:900;line-height:1.02}.room-header h1,.page-heading h1{overflow-wrap:anywhere;font-size:clamp(1.65rem,2.8vw,2.65rem)}.hero p,.page-heading p{max-width:42rem;color:var(--muted);margin:0;font-size:1.05rem}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;font-weight:850}.button{min-height:2.75rem;color:var(--accent-ink);background:linear-gradient(180deg,#78e6d1,var(--accent-strong));cursor:pointer;border:1px solid #0000;border-radius:.72rem;justify-content:center;align-items:center;gap:.45rem;padding:.68rem 1rem;font-weight:800;transition:transform .16s,background .16s,border-color .16s;display:inline-flex;box-shadow:0 7px 22px #38bfa824}.button:hover:not(:disabled){transform:translateY(-1px)}.button.secondary{color:var(--text);background:var(--surface-hover);border-color:var(--line);box-shadow:none}.button.ghost{color:var(--muted);border-color:var(--line);box-shadow:none;background:0 0}.button.danger{color:#fff;box-shadow:none;background:#a6364c}.button.compact{min-height:2.25rem;padding:.42rem .72rem;font-size:.82rem}.button:disabled{color:#aab4c8;box-shadow:none;opacity:1;cursor:not-allowed;background:#252d3d;border-color:#3a465e;transform:none}.hero-action{flex:none}.card{border:1px solid var(--line-soft);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow);background:linear-gradient(155deg,#182135ed,#0f1523f0);padding:1.35rem}.section-card{padding:clamp(1.15rem,2.5vw,1.7rem)}.section-heading{justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1.2rem;display:flex}.section-heading h2{letter-spacing:-.02em;margin:0;font-size:1.2rem;font-weight:850}.section-heading p{color:var(--muted);margin:.2rem 0 0;font-size:.9rem}.lobby-toolbar{justify-content:space-between;align-items:center;min-height:2.4rem;display:flex}.lobby-filters{grid-template-columns:minmax(14rem,2fr) repeat(4,minmax(9rem,1fr));align-items:end;gap:.85rem;display:grid}.lobby-filters .field{margin:0}.input-with-icon{align-items:center;display:flex;position:relative}.input-with-icon>svg{color:var(--muted);pointer-events:none;position:absolute;left:.85rem}.input-with-icon input{width:100%;padding-left:2.6rem}.connection-pill,.connection-text{color:var(--muted);align-items:center;gap:.5rem;font-size:.85rem;display:inline-flex}.connection-reconnecting .status-dot,.connection-offline .status-dot{background:var(--warning)}.room-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}@media (min-width:1800px){.room-grid{grid-template-columns:repeat(4,minmax(20rem,1fr))}}.room-card{flex-direction:column;gap:.8rem;min-width:0;min-height:15rem;transition:border-color .16s,transform .16s;display:flex}.room-card:hover{border-color:#435272;transform:translateY(-2px)}.room-card-top,.badges,.room-meta,.row-actions,.room-actions,.form-actions,.dialog-actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.room-card-top{justify-content:space-between}.game-icon{color:var(--warning);letter-spacing:-.15em;font-size:.76rem}.room-card h2{text-overflow:ellipsis;white-space:nowrap;margin:.25rem 0 0;font-size:1.3rem;font-weight:850;overflow:hidden}.room-card p{overflow-wrap:anywhere;margin:0}.room-game-name{color:var(--muted);font-weight:700}.room-host{align-items:center;gap:.65rem;display:flex}.room-host>span{min-width:0;display:grid}.room-host small{color:var(--muted)}.room-host strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-unavailable{border:1px solid var(--line);min-height:2.75rem;color:var(--muted);background:#0a0f1a73;border-radius:.72rem;place-items:center;font-weight:800;display:grid}.room-admin-actions{grid-template-columns:1fr 1fr;gap:.55rem;display:grid}.room-status-playing{color:#f6d795;border-color:#745b2c}.room-status-finished{color:#cbd2e4}.close-room-preview{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.close-room-preview li{border:1px solid var(--line-soft);border-radius:var(--radius);align-items:center;gap:.5rem;padding:.7rem;display:flex}.close-room-preview strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-right:auto;overflow:hidden}.admin-room-filters{grid-template-columns:repeat(6,minmax(8rem,1fr));gap:.7rem;display:grid}.admin-room-filters .field{margin:0}.admin-room-batch{flex-wrap:wrap;align-items:center;gap:1rem;min-width:0;margin:1rem 0;display:flex}.admin-room-batch .button{margin-left:auto}.admin-room-list{gap:.55rem;display:grid}.admin-room-row{border:1px solid var(--line-soft);border-radius:var(--radius);grid-template-columns:auto auto minmax(12rem,1.5fr) minmax(12rem,1fr) auto minmax(10rem,1fr) auto;align-items:center;gap:.7rem;padding:.7rem;display:grid}.admin-room-name{min-width:0;display:grid}.admin-room-name strong,.admin-room-name small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-meta{color:var(--muted);justify-content:space-between;margin-top:auto;font-size:.82rem}.room-join{width:100%;margin-top:.25rem}.badge{border:1px solid var(--line);width:max-content;color:var(--muted);white-space:nowrap;background:#192235c7;border-radius:999px;align-items:center;padding:.25rem .58rem;font-size:.7rem;font-weight:800;display:inline-flex}.badge-active{color:#b8f5db;background:#173c31;border-color:#326b58}.badge-expired{color:#f6d795;background:#3d3018;border-color:#745b2c}.badge-consumed{color:#cbd2e4;background:#293044}.badge-revoked{color:#ffb6c1;background:#3e1d27;border-color:#743444}.empty-state{text-align:center;border-radius:var(--radius-lg);background:#0e142194;border:1px dashed #35435f;align-content:center;place-items:center;gap:.7rem;min-height:21rem;padding:2rem;display:grid}.empty-state h1,.empty-state h2{margin:0;font-size:1.5rem}.empty-state p{max-width:30rem;color:var(--muted);margin:0 0 .5rem}.empty-icon{width:3.4rem;height:3.4rem;color:var(--accent);background:#152c2d;border-radius:1rem;place-items:center;font-size:1.5rem;display:grid}.dialog{border:1px solid var(--line);border-radius:var(--radius-lg);width:min(690px,100% - 2rem);max-height:calc(100dvh - 2rem);color:var(--text);background:var(--bg-raised);margin:auto;padding:0;overflow:auto;box-shadow:0 35px 100px #000a}.dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#02050cc7}.dialog-content{gap:1.15rem;padding:clamp(1.2rem,4vw,2rem);display:grid}.dialog-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.dialog-heading h2{letter-spacing:-.035em;margin:.15rem 0 0;font-size:1.8rem}.dialog-actions{justify-content:flex-end;padding-top:.4rem}.icon-button{border:1px solid var(--line);min-width:2.65rem;min-height:2.65rem;color:var(--muted);cursor:pointer;background:0 0;border-radius:.7rem;font-size:1.25rem}.danger-icon{color:var(--danger)}.field{min-width:0;color:var(--text);align-content:start;gap:.38rem;font-size:.9rem;font-weight:700;display:grid}.field em{color:var(--muted);font-style:normal;font-weight:500}.field small,.helper{color:var(--muted);font-size:.75rem;font-weight:500}.field input,.field select{border-radius:var(--radius-sm);width:100%;min-height:2.85rem;color:var(--text);background:#0a1020;border:1px solid #394760;padding:.58rem .72rem}.field input:disabled{color:var(--muted);background:#121a2a}.field input::placeholder{color:#6f7b93}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-fieldset{border:1px solid var(--line-soft);border-radius:var(--radius);margin:0;padding:1rem}.settings-fieldset legend{color:var(--muted);padding-inline:.4rem;font-size:.82rem;font-weight:750}.color-settings{gap:.8rem;display:grid}.color-settings details{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:#0a1020}.color-settings summary{cursor:pointer;padding:.8rem .9rem;font-weight:800}.color-settings details>.form-grid{padding:0 .9rem .9rem}.color-preset{max-width:28rem}.rules-summary{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.45rem;font-size:.78rem;display:flex}.rules-summary>span:not(.badge){border:1px solid var(--line-soft);border-radius:999px;padding:.25rem .55rem}.rules-card{width:min(72rem,100%)}.color-game{gap:1rem;min-width:0;padding:clamp(.8rem,2vw,1.4rem);display:grid;overflow:hidden}.color-game-header,.hand-toolbar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.color-game-header h2{margin:.25rem 0 0}.color-game-status{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.active-color{border:1px solid var(--line);border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .65rem;font-weight:800;display:inline-flex}.active-color i{background:currentColor;border-radius:50%;width:.75rem;height:.75rem}.turn-timer{text-align:center;color:#fff;background:#4b2e83;border-radius:999px;min-width:3rem;padding:.35rem .6rem;font-weight:900}.color-table{border:1px solid var(--line-soft);border-radius:var(--radius);background:radial-gradient(circle,#173d35,#0b201e 70%);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;min-height:15rem;padding:1rem;display:grid}.opponents{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.55rem;display:grid}.opponent{border-radius:var(--radius-sm);background:#071817cc;border:1px solid #31574f;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.1rem .55rem;padding:.55rem;display:grid}.opponent.active{border-color:var(--accent);box-shadow:0 0 0 2px #55cdb32e}.opponent .player-avatar{grid-row:1/3}.opponent strong{text-overflow:ellipsis;overflow:hidden}.opponent>span:last-child{color:var(--muted);font-size:.75rem}.color-piles{align-items:center;gap:.75rem;display:flex;position:relative}.draw-penalty{color:#ffd0d6;text-align:center;font-weight:900;position:absolute;inset:auto 0 -2rem}.color-hand{overscroll-behavior-x:contain;scrollbar-color:#3b4d6b transparent;gap:clamp(.35rem,1vw,.75rem);padding:.35rem .2rem .75rem;display:flex;overflow-x:auto}.hand-toolbar>div{display:grid}.hand-toolbar span{color:var(--muted);font-size:.8rem}.color-card{aspect-ratio:.68;color:#fff;cursor:pointer;font:inherit;border:.28rem solid #f3f5f9;border-radius:.85rem;flex:0 0 clamp(5rem,8vw,7rem);align-content:center;place-items:center;gap:.25rem;display:grid;position:relative;box-shadow:0 .35rem .7rem #0006}.color-card strong{text-shadow:0 2px 3px #0008;font-size:clamp(1.5rem,3vw,2.6rem)}.color-card small{max-width:90%;color:inherit;text-align:center;text-transform:uppercase;font-size:.63rem;font-weight:900}.color-card:disabled{cursor:default;opacity:.58;filter:saturate(.65)}.color-card.card-back:disabled{opacity:.8}.card-corner{font-weight:950;position:absolute;inset:.32rem auto auto .38rem}.color-red{color:#ff8b98;background:#a9182b}.color-blue{color:#a8d7ff;background:#15589c}.color-green{color:#a9f1cf;background:#11704d}.color-yellow{color:#302800;background:#e7bd22}.color-black,.card-back{color:#fff;background:linear-gradient(140deg,#22283a,#080b12)}.color-choice{z-index:50;background:#02060ec7;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.color-choice>.card{width:min(28rem,100%)}.color-choice-grid{grid-template-columns:repeat(2,1fr);gap:.6rem;margin-block:1rem;display:grid}.color-choice-grid .button{border-color:currentColor}@media (max-width:720px){.color-settings details>.form-grid{grid-template-columns:1fr}.color-game-header,.hand-toolbar{flex-direction:column;align-items:flex-start}.color-game-status{justify-content:flex-start}.color-table{grid-template-columns:1fr;min-height:19rem}.color-piles{justify-content:center}.color-card{flex-basis:5.2rem}}.alert{border-radius:var(--radius-sm);border:1px solid;padding:.75rem .9rem}.error{color:#ffc1ca;background:var(--danger-bg);border-color:#743444}.muted{color:var(--muted)}.invite-form{grid-template-columns:minmax(10rem,.7fr) minmax(14rem,1fr) auto;align-items:end;gap:1rem;margin-bottom:1.2rem;display:grid}.code-reveal{border-radius:var(--radius);background:#102d27;border:1px solid #326b58;justify-content:space-between;align-items:center;gap:1rem;margin-block:1rem;padding:1rem;display:flex}.code-reveal>div{gap:.25rem;min-width:0;display:grid}.code-reveal span{color:#b8f5db;font-size:.78rem;font-weight:750}.code-reveal code,.copy-row code{overflow-wrap:anywhere;color:var(--text);font-size:.92rem}.table-wrap{contain:inline-size;width:100%;min-width:0;max-width:100%;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;min-width:680px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;padding:.7rem .65rem;font-size:.73rem;position:relative}td{border-top:1px solid var(--line-soft);padding:.85rem .65rem;font-size:.88rem}.truncate-cell{text-overflow:ellipsis;white-space:nowrap;max-width:16rem;overflow:hidden}.empty-inline{color:var(--muted);margin:1rem 0 0;font-size:.88rem}.single-game-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:1rem;display:grid}.single-game-card{flex-direction:column;gap:1rem;min-height:22rem;display:flex}.single-game-card h2{margin:0 0 .35rem;font-size:1.65rem}.single-game-card p{margin:0}.single-game-card .button{width:100%;margin-top:auto}.game-glyph{width:3rem;height:3rem;color:var(--accent);background:#102d27;border:1px solid #326b58;border-radius:.9rem;place-items:center;font-size:1.4rem;display:grid}.snake-layout{grid-template-columns:minmax(0,1fr) minmax(17rem,19rem);align-items:start;gap:clamp(1rem,2vw,1.5rem);display:grid}.snake-game-card{justify-items:center;gap:1rem;min-width:0;padding:clamp(.75rem,1.3vw,1.25rem);display:grid}.snake-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;width:100%;display:grid}.snake-stats>div{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:#0a1020;gap:.1rem;min-width:0;padding:.65rem;display:grid}.snake-stats span{color:var(--muted);text-transform:uppercase;font-size:.7rem;font-weight:750}.snake-stats strong{text-overflow:ellipsis;font-size:clamp(1rem,3vw,1.3rem);overflow:hidden}.snake-board{grid-template-columns:repeat(var(--snake-columns),minmax(0,1fr));grid-template-rows:repeat(var(--snake-rows),minmax(0,1fr));background:#090e19;border:.45rem solid #25324a;border-radius:1rem;width:min(100%,max(24rem,min(100dvh - 20rem,58rem)));display:grid;overflow:hidden;box-shadow:inset 0 0 35px #0008}.snake-cell{border:1px solid #2a36502e;min-width:0;min-height:0;position:relative;overflow:hidden}.snake-body:before,.snake-head:before,.snake-food:after{content:"";box-sizing:border-box;pointer-events:none;position:absolute}.snake-body:before,.snake-head:before{background:#55cdb3;border-radius:28%;inset:8%;box-shadow:0 0 .55rem #55cdb347}.snake-head:before{background:#a8f2df;box-shadow:0 0 .7rem #67dbc57a}.snake-food:after{background:var(--warning);border-radius:50%;inset:17%;box-shadow:0 0 .8rem #f0c46ba6}.snake-placeholder{aspect-ratio:1;text-align:center;background:#090e19;border:1px dashed #435272;border-radius:1rem;place-content:center;justify-items:center;gap:.6rem;width:min(100%,34rem);padding:2rem;display:grid}.snake-placeholder h2,.snake-placeholder p{margin:0}.snake-preview{color:var(--accent);letter-spacing:.1em;font-size:1.7rem}.snake-start{min-width:min(100%,14rem)}.snake-sidebar{gap:1rem;min-width:0;display:grid}.snake-sidebar h2{margin:0 0 1rem}.snake-controls{grid-template-columns:repeat(3,3.4rem);justify-content:center;gap:.45rem;margin-bottom:1rem;display:grid}.snake-controls button{min-height:3.4rem;color:var(--text);cursor:pointer;background:#121b2d;border:1px solid #435272;border-radius:.8rem;font-size:1.45rem}.snake-controls button:active{border-color:var(--accent);background:#173c31}.snake-controls button:first-child{grid-column:2}.snake-controls button:nth-child(2){grid-column:1}.rules-list{color:var(--muted);gap:.65rem;margin:0;padding-left:1.2rem;font-size:.88rem;display:grid}.minesweeper-toolbar{grid-template-columns:minmax(14rem,1.5fr) repeat(2,minmax(6rem,.45fr)) auto auto;align-items:end;gap:1rem;display:grid}.minesweeper-toolbar label,.mine-counter{color:var(--muted);gap:.35rem;font-size:.78rem;font-weight:750;display:grid}.mine-counter strong{color:var(--text);font-size:1.35rem}.mine-mode{gap:.4rem;display:flex}.minesweeper-stage{border-radius:var(--radius-lg);justify-items:center;gap:.75rem;min-width:0;display:grid;overflow-x:auto}.minesweeper-board{grid-template-columns:repeat(var(--mine-columns),minmax(0,1fr));grid-template-rows:repeat(var(--mine-rows),minmax(0,1fr));width:min(100%,52rem);box-shadow:var(--shadow);background:#0a1020;border:.4rem solid #33415e;border-radius:.8rem;display:grid;overflow:hidden}.minesweeper-easy{width:min(100%,36rem)}.minesweeper-hard{width:min(100%,78rem)}.mine-cell{min-width:0;min-height:0;color:var(--text);cursor:pointer;background:linear-gradient(145deg,#26334d,#19243a);border:1px solid #34415c;border-radius:0;place-items:center;padding:0;font-size:clamp(.55rem,1.5vw,1.05rem);font-weight:900;display:grid;overflow:hidden}.mine-cell:hover:not(:disabled),.mine-cell:focus-visible{z-index:1;background:#334766}.mine-cell.revealed{cursor:default;background:#0d1525;border-color:#1b263c}.mine-cell.flagged{color:var(--warning)}.mine-cell.mine{color:#0a0c12;background:var(--danger)}.mine-cell.exploded{color:#fff;background:#d52f4f}.mine-cell.incorrect{color:#fff;background:#7f3140}.mine-cell.adjacent-1{color:#73b9ff}.mine-cell.adjacent-2{color:#71dda7}.mine-cell.adjacent-3{color:#ff8192}.mine-cell.adjacent-4,.mine-cell.adjacent-5,.mine-cell.adjacent-6,.mine-cell.adjacent-7,.mine-cell.adjacent-8{color:#c3a3ff}.mine-result{justify-content:space-between;align-items:center;gap:1rem;display:flex}.mine-result h2,.mine-result p{margin:.25rem 0 0}.highscore-filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.highscore-filters label{color:var(--muted);gap:.4rem;font-size:.8rem;font-weight:750;display:grid}.highscore-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.highscore-summary article{gap:.3rem;display:grid}.highscore-summary span{color:var(--muted);font-size:.8rem}.highscore-summary strong{font-size:clamp(1.15rem,2vw,1.65rem)}.highscore-table{border-collapse:collapse;width:100%}.highscore-table th,.highscore-table td{border-bottom:1px solid var(--line-soft);text-align:left;white-space:nowrap;padding:.85rem}.highscore-table th{color:var(--muted);text-transform:uppercase;font-size:.72rem}.highscore-table td:nth-child(2){width:100%}.highscore-table .badge{margin-left:.5rem}.highscore-table .own-entry{background:#67dbc514}.pagination{color:var(--muted);justify-content:center;align-items:center;gap:1rem;display:flex}.game-over-overlay{z-index:30;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#02050cc2;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.game-over-card{text-align:center;width:min(100%,28rem)}.game-over-card h2{margin:.3rem 0;font-size:2rem}.result-score{color:var(--accent);font-size:2.3rem;display:block}.room-layout{grid-template-columns:minmax(32rem,1fr) minmax(300px,340px);align-items:start;gap:1rem;display:grid}.room-layout>.section-card{grid-column:auto}.room-sidebar{grid-column:auto;gap:1rem;min-width:0;display:grid}.room-settings-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:0;display:grid}.room-settings-summary div{border:1px solid var(--line-soft);border-radius:var(--radius);gap:.15rem;padding:.7rem;display:grid}.room-settings-summary dt{color:var(--muted);font-size:.75rem}.room-settings-summary dd{margin:0;font-weight:800}.room-settings-card>.form-grid,.room-settings-card>.helper,.room-settings-card>.row-actions,.room-sidebar>.rules-card,.room-sidebar>.room-game-settings-card{display:none}.room-settings-dialog{width:min(100%,52rem)}@media (min-width:1500px){.player-list{grid-template-columns:repeat(2,minmax(0,1fr))}.player-list li{grid-template-columns:auto minmax(0,1fr) auto}.player-list li>.ready-state{grid-column:2}}.player-list{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.player-list li{border:1px solid var(--line-soft);border-radius:var(--radius);background:#0b101c73;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:.65rem;display:grid}.player-list .empty-player-slot{color:var(--muted);background:0 0;border-style:dashed;grid-template-columns:auto minmax(0,1fr)}.empty-player-icon{border:1px dashed var(--line);border-radius:50%;place-items:center;width:3rem;height:3rem;display:grid}.empty-player-slot .player-name{display:grid}.player-avatar{width:2.4rem;height:2.4rem;color:var(--accent-ink);background:var(--accent);border-radius:.7rem;place-items:center;font-weight:900;display:grid}.bot-avatar{background:linear-gradient(135deg,var(--accent),var(--accent-strong))}.bot-member-actions,.bot-add-controls{align-items:flex-end;gap:.65rem;display:flex}.bot-member-actions select{min-width:7rem}.bot-add-controls{flex-wrap:wrap;margin-top:1rem}.player-name{min-width:0;display:grid}.player-name strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-name span{color:var(--muted);font-size:.72rem}.ready-state{color:var(--muted);font-size:.75rem;font-weight:800}.ready-state.ready{color:var(--success)}.room-actions{margin-top:1.2rem}.invite-box{gap:.5rem;display:grid}.invite-box label{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-top:.35rem;font-size:.72rem;font-weight:750}.copy-row{border:1px solid var(--line-soft);background:#0a1020;border-radius:.75rem;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;min-width:0;padding:.55rem;display:grid}.copy-row span{overflow-wrap:anywhere;white-space:normal;color:var(--muted);font-size:.8rem}.room-loading,.skeleton-page{gap:1rem;display:grid}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg,#141c2d 25%,#202a40 50%,#141c2d 75%) 0 0/200% 100%;animation:1.4s infinite shimmer}.h-12{height:3rem}.h-48{height:12rem}.h-64{height:16rem}@keyframes shimmer{to{background-position:-200% 0}}.game-card{gap:1.4rem;width:min(100%,76rem);min-width:0;margin-inline:auto;display:grid;overflow:hidden}.game-heading,.rematch-panel{justify-content:space-between;align-items:center;gap:1rem;display:flex}.game-heading h2{min-height:1.35em;margin:.15rem 0 0;font-size:clamp(1.45rem,3vw,2.1rem)}.connect-board{--connect-gap:clamp(.22rem,.8vw,.5rem);gap:var(--connect-gap);width:min(100%,var(--connect-board-width));aspect-ratio:var(--connect-columns)/var(--connect-rows);padding:calc(var(--connect-gap)/2);background:linear-gradient(145deg,#294a8a,#1a3366);border:0;border-radius:clamp(.8rem,2vw,1.4rem);margin-inline:auto;display:grid;box-shadow:0 0 0 1px #344567,inset 0 0 30px #07173799}.game-cell{cursor:pointer;background:#08101f;border:2px solid #102753;border-radius:50%;min-width:0;min-height:0;box-shadow:inset 0 4px 10px #0009}.game-cell.player-one{background:#f4c95d}.game-cell.player-two{background:#ec718b}.game-cell.winning{border-color:#b9ffdb;box-shadow:0 0 0 3px #65dfa566,0 0 24px #65dfa5aa}.game-cell:disabled{cursor:default}.rematch-panel{border-top:1px solid var(--line-soft);padding-top:1.1rem}.rematch-panel p{color:var(--muted);margin:.2rem 0 0;font-size:.85rem}.toast-region{z-index:100;pointer-events:none;gap:.6rem;width:min(22rem,100% - 2rem);display:grid;position:fixed;bottom:1rem;right:1rem}.toast{border:1px solid var(--line);color:var(--text);box-shadow:var(--shadow);background:#182237;border-radius:.8rem;padding:.8rem 1rem;font-weight:700}.toast-success{border-color:#326b58}.toast-error{border-color:#743444}.toast-info{border-color:#526485}@media (max-width:1180px){.room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-layout{grid-template-columns:1fr}.room-layout>.section-card,.room-sidebar{grid-column:auto}.lobby-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.lobby-search{grid-column:1/-1}.admin-room-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-room-row{grid-template-columns:auto auto minmax(0,1fr) auto}.admin-room-row>:nth-child(n+4):not(:last-child){grid-column:3/-1}.invite-form{grid-template-columns:1fr 1fr}.invite-form .form-actions{grid-column:1/-1}}.admin-test-data-row{grid-template-columns:auto minmax(0,1fr) auto}.admin-test-data-row>span{overflow-wrap:anywhere;min-width:0;max-width:100%}@media (max-width:1500px){.room-content-with-chat.has-chat .room-layout{grid-template-columns:1fr}}@media (max-width:1100px){.room-content-with-chat,.room-content-with-chat.has-chat{display:block}.room-chat{z-index:80;border-radius:1rem 1rem 0 0;width:min(100%,30rem);max-width:100%;max-height:min(78dvh,42rem);position:fixed;inset:auto 0 0}.room-chat-backdrop{z-index:79;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#02050cad;border:0;display:block;position:fixed;inset:0}.room-chat.is-collapsed{width:min(12rem,55vw);left:auto}.room-chat.is-collapsed+.room-chat-backdrop{display:none}.room-chat-body{max-height:calc(min(78dvh,42rem) - 3.25rem)}.chat-messages{max-height:calc(min(78dvh,42rem) - 12rem)}}@media (max-width:800px){.shell{width:min(100% - 1.25rem,92rem)}.page-shell{padding-block:1.5rem 3rem}.section-heading{flex-wrap:wrap}.section-heading>*{min-width:0}.admin-test-data-row{grid-template-columns:auto minmax(0,1fr)}.admin-test-data-row>.badge{white-space:normal;grid-column:2;width:auto}.admin-rooms .admin-room-row{grid-template-columns:auto minmax(0,1fr)}.admin-rooms .admin-room-row>:nth-child(n+3){grid-column:1/-1;min-width:0;max-width:100%}.admin-rooms .admin-room-row>.button{width:100%}.admin-rooms .admin-room-batch .button{width:100%;margin-left:0}.nav-shell{grid-template-columns:auto 1fr;gap:.7rem;min-height:4rem}.main-nav{box-sizing:border-box;overscroll-behavior-x:contain;grid-area:2/1/auto/-1;justify-content:flex-start;width:100%;min-width:0;max-width:100%;margin-bottom:.55rem;overflow-x:auto}.user-menu{justify-self:end}.user-chip{max-width:7rem}.social-columns,.social-search{grid-template-columns:1fr}.social-row,.friend-card,.notification-row{flex-direction:column;align-items:stretch}.notification-dropdown{position:fixed;top:4.25rem;right:.625rem}.hero,.room-header,.page-heading{flex-direction:column;align-items:stretch;gap:1rem}.hero-action{width:100%}.room-grid,.form-grid,.form-grid.three,.invite-form{grid-template-columns:1fr}.dialog{width:calc(100% - 1rem);max-height:calc(100dvh - 1rem)}.dialog-actions>*,.form-actions>*{flex:1}.code-reveal,.game-heading,.rematch-panel{flex-direction:column;align-items:stretch}.copy-row{grid-template-columns:1fr}.copy-row .button{width:100%}}@media (max-width:1100px){.snake-layout{grid-template-columns:minmax(0,1fr)}.snake-sidebar{grid-template-columns:repeat(3,minmax(0,1fr))}.snake-board{width:min(100%,max(20rem,min(100dvh - 19rem,48rem)))}.minesweeper-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.minesweeper-toolbar label,.mine-mode{grid-column:1/-1}.mine-mode>*{flex:1}.minesweeper-hard{min-width:45rem}.mine-result{flex-direction:column;align-items:stretch}.highscore-filters,.highscore-summary{grid-template-columns:1fr}.highscore-summary{gap:.65rem}}@media (max-width:760px){.snake-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.snake-status-card{grid-column:1/-1}.snake-board{width:min(100%,100vw - 2.75rem)}}@media (max-width:430px){.brand span:last-child,.user-chip{display:none}.nav-link{text-align:center;flex:1;justify-content:center;gap:0;min-width:0;padding-inline:.5rem;font-size:.72rem}.nav-link span{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.snake-stats,.snake-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.snake-sidebar{grid-template-columns:1fr}.snake-board{border-width:.3rem;border-radius:.7rem}.card{border-radius:1rem;padding:1rem}.lobby-toolbar{flex-direction:column;align-items:start;gap:.35rem}.player-list li{grid-template-columns:auto minmax(0,1fr) auto}.player-list .icon-button{grid-column:1/-1;width:100%}.room-actions .button{width:100%}}@media (min-width:900px) and (max-height:800px){.page-shell{padding-block:1.25rem 2rem}.snake-page{gap:.8rem}.snake-page .room-header{padding-block:0}.snake-page .room-header h1{font-size:clamp(2rem,3vw,2.7rem)}.snake-board{width:min(100%,max(22rem,min(100dvh - 16.5rem,58rem)))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.color-arena{background:linear-gradient(145deg,#111827,#080d18);width:min(100%,118rem);margin-inline:auto;padding:clamp(.55rem,1.2vw,1rem);overflow:clip}.color-arena .color-game-header{min-height:3.25rem}.color-arena .color-game-header h2{font-size:clamp(1.1rem,1.8vw,1.65rem)}.clash-table{isolation:isolate;background:#0a2924;border:1px solid #38665c;border-radius:clamp(1.2rem,3vw,3rem);width:min(100%,112rem,192dvh - 19.2rem);height:min(62.5rem,100dvh - 10rem,52.0833vw - 1.04167rem);min-height:40rem;max-height:62.5rem;margin-inline:auto;position:relative;overflow:hidden;box-shadow:inset 0 0 5rem #03110f99,0 1.2rem 3rem #0008}.clash-felt{z-index:-1;border-radius:inherit;background:radial-gradient(circle at 50% 45%,#245a4e 0 2%,#0000 35%),repeating-linear-gradient(120deg,#0000 0 16px,#ffffff03 17px 18px);border:1px solid #4c8174;position:absolute;inset:2.5%;box-shadow:inset 0 0 0 .35rem #071b18aa}.clash-center{z-index:3;place-items:center;gap:.6rem;width:clamp(14rem,28%,26rem);min-height:clamp(10rem,30%,17rem);display:grid;position:absolute;inset:40% auto auto 50%;transform:translate(-50%,-50%)}.clash-status-rail{justify-content:center;align-items:center;gap:.45rem;min-height:2.5rem;display:flex}.direction-indicator{color:#b9ffec;background:#09211dbb;border:1px solid #7ac8b4;border-radius:50%;place-items:center;width:2.25rem;height:2.25rem;font-size:1.3rem;font-weight:950;display:grid}.clash-status-rail .draw-penalty{color:#fff;background:#ba2344;border-radius:999px;min-width:2.5rem;padding:.35rem .55rem;font-weight:950;animation:.8s ease-in-out infinite alternate clash-penalty-pulse;position:static;box-shadow:0 0 1rem #ff476b88}.clash-piles{grid-template-columns:repeat(2,clamp(4.8rem,7vw,7.4rem));align-items:center;gap:clamp(.75rem,2vw,1.5rem);display:grid}.draw-stack:before,.draw-stack:after{content:"";z-index:-1;border-radius:inherit;background:#11192b;border:.18rem solid #c7d3e8;position:absolute;inset:-.34rem .25rem .28rem -.25rem}.draw-stack:after{z-index:-2;inset:-.58rem .5rem .5rem -.48rem}.draw-stack:not(:disabled){box-shadow:0 0 0 .2rem #77e6c855,0 0 1.5rem #77e6c888}.card-back-mark{aspect-ratio:1;color:#f4dc70;text-shadow:0 2px #0008;background:conic-gradient(from 40deg,#b42642,#d3a922,#16835e,#176bb0,#b42642);border:.16rem solid #dce8ff;border-radius:44% 56% 48% 52%;place-items:center;width:68%;font-size:clamp(1rem,2vw,1.7rem);font-weight:1000;display:grid;transform:rotate(-12deg)}.discard-target{aspect-ratio:.68;border-radius:.9rem;width:100%;transition:transform .15s,box-shadow .15s;position:relative}.discard-target>.color-card{width:100%;height:100%}.discard-target.drag-active{box-shadow:0 0 0 .25rem #f3d86666}.discard-target.drag-over{transform:scale(1.08);box-shadow:0 0 0 .3rem #7affcf,0 0 2rem #7affcfaa}.clash-seat{z-index:2;background:#041211e6;border:1px solid #41796d;border-radius:1rem;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.1rem .55rem;width:clamp(9.5rem,15%,15rem);min-height:4.4rem;padding:clamp(.4rem,.8vw,.7rem);transition:border-color .16s,box-shadow .16s;display:grid;position:absolute;box-shadow:0 .5rem 1.2rem #0005}.clash-seat.active,.local-seat.active{border-color:#83f5d5;box-shadow:0 0 0 .18rem #83f5d544,0 0 1.5rem #83f5d555}.clash-seat.active .player-avatar{animation:1.2s ease-in-out infinite alternate clash-active-seat}.clash-seat.winner{border-color:#f4d86f}.clash-seat[data-seat=top]{inset:3% auto auto 50%;transform:translate(-50%)}.clash-seat[data-seat=upper-left]{inset:7% auto auto 18%;transform:translate(-50%)}.clash-seat[data-seat=upper-right]{inset:7% 18% auto auto;transform:translate(50%)}.clash-seat[data-seat=left-upper]{inset:25% auto auto 2.5%}.clash-seat[data-seat=left-lower]{inset:auto auto 25% 2.5%}.clash-seat[data-seat=right-upper]{inset:25% 2.5% auto auto}.clash-seat[data-seat=right-lower]{inset:auto 2.5% 25% auto}.seat-name{min-width:0;display:grid}.seat-name strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.seat-name span{color:#91aaac;font-size:.65rem}.bot-seat-badge{color:#0c1714;background:#73ddbc;border-radius:999px;grid-column:1/-1;justify-self:start;padding:.15rem .42rem;font-size:.56rem;font-weight:950}.opponent-hand{pointer-events:none;justify-content:center;height:2.6rem;display:flex;position:absolute;inset:calc(100% - .4rem) 0 auto}.mini-card-back{aspect-ratio:.68;width:1.65rem;transform:rotate(calc((var(--back-index) - 2)*6deg));background:repeating-linear-gradient(135deg,#1c6d9e 0 5px,#8a244a 5px 10px);border:.12rem solid #dce6f6;border-radius:.3rem;margin-left:-.75rem;box-shadow:0 .2rem .35rem #0008}.opponent-hand b{color:#071612;text-align:center;background:#f3d76e;border-radius:999px;min-width:1.55rem;padding:.15rem .35rem;font-size:.7rem;position:absolute;inset:50% 0 auto auto}.local-seat{z-index:4;background:linear-gradient(#020a0b73,#020a0beb);border:1px solid #0000;border-radius:1.2rem;grid-template-rows:auto minmax(0,1fr);height:17.25rem;padding:.55rem .75rem .35rem;display:grid;position:absolute;inset:auto 3% 1.5%}.local-seat-toolbar{align-items:center;gap:.6rem;min-height:2.6rem;display:flex}.local-seat-toolbar>div{display:grid}.local-seat-toolbar>div span{color:var(--muted);font-size:.72rem}.local-seat-toolbar .button,.last-card-button{margin-left:auto}.last-card-button{color:#fff5bd;cursor:pointer;background:#58450d;border:1px solid #e8c957;border-radius:999px;padding:.48rem .75rem;font-weight:900}.last-card-button.armed{color:#122016;background:#f1d25e;transform:scale(1.04);box-shadow:0 0 1rem #f1d25e99}.color-hand-viewport{min-width:0;height:min(var(--hand-height),13.7rem);overflow:visible}.color-hand-scroll{overscroll-behavior-x:contain;scrollbar-color:#477162 transparent;touch-action:pan-x;width:100%;height:100%;overflow:auto hidden}.color-arena .color-hand{box-sizing:border-box;width:max-content;min-width:100%;height:100%;padding:2rem var(--hand-inline-safety,1.75rem).7rem;justify-content:center;align-items:end;gap:0;display:flex}.color-hand .color-card{margin-left:calc(var(--hand-overlap)*-1);transform:rotate(calc((var(--card-index) - var(--card-mid))*var(--fan-step)));transform-origin:bottom}.color-hand .color-card:first-child{margin-left:0}.color-hand .color-card:disabled{pointer-events:none}.color-hand .color-card:hover:not(:disabled),.color-hand .color-card:focus-visible,.color-hand .color-card.selected{z-index:20;transform:translateY(-.65rem)rotate(0)scale(1.05)}.mobile-draw{display:none}.play-selected-card{z-index:25;position:absolute;bottom:.45rem;right:.75rem}.color-arena .color-card{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-width:clamp(.18rem,.3vw,.28rem);border-radius:clamp(.65rem,1vw,.95rem);flex:0 0 clamp(4.4rem,6vw,7rem);transition:transform .17s,box-shadow .17s,opacity .17s;overflow:hidden}.card-emblem{aspect-ratio:.8;background:#ffffff1f;border:.14rem solid;border-radius:50% 38% 52% 42%;place-items:center;width:78%;display:grid;transform:rotate(-12deg)}.card-emblem strong{font-size:clamp(1.5rem,3vw,2.6rem);transform:rotate(12deg)}.card-corner.top{inset:.28rem auto auto .35rem}.card-corner.bottom{inset:auto .35rem .28rem auto;transform:rotate(180deg)}.color-arena .color-red{color:#fff;background:radial-gradient(circle at 25% 20%,#f56372,#a51530 68%)}.color-arena .color-blue{color:#fff;background:radial-gradient(circle at 25% 20%,#48a8ef,#124e98 68%)}.color-arena .color-green{color:#fff;background:radial-gradient(circle at 25% 20%,#3fc88d,#0d6748 68%)}.color-arena .color-yellow{color:#211b00;background:radial-gradient(circle at 25% 20%,#ffe77a,#d5a915 72%)}.color-arena .color-black,.color-arena .card-back{color:#fff;background:conic-gradient(from 35deg,#a72440,#bf991d,#167250,#176399,#a72440)}.kind-skip .card-emblem{border-style:double;border-width:.35rem}.kind-reverse .card-emblem{border-style:dashed}.kind-draw_two .card-emblem{box-shadow:inset 0 0 0 .25rem #ffffff38}.kind-wild .card-emblem{transform:rotate(45deg)scale(.75)}.kind-wild .card-emblem strong{transform:rotate(-45deg)}.color-card.selected{box-shadow:0 0 0 .22rem #f7dc67,0 0 1.3rem #f7dc67aa}.color-card.dragging{opacity:.22}.drag-preview{z-index:100;pointer-events:none;filter:drop-shadow(0 1rem 1rem #0009);width:clamp(5rem,7vw,7rem);position:fixed;inset:-4rem auto auto -3rem}.drag-preview .color-card{opacity:.9;width:100%;transform:rotate(4deg)scale(1.06)}.table-effect{z-index:25;pointer-events:none;width:clamp(4.5rem,6vw,6.8rem);position:absolute;inset:45% auto auto 50%}.table-effect .color-card{opacity:1;width:100%}.effect-card-back{aspect-ratio:.68;background:repeating-linear-gradient(135deg,#166996 0 12px,#992947 12px 24px);border:.25rem solid #fff;border-radius:.8rem;place-items:center;width:100%;font-weight:1000;display:grid}.table-effect b{position:absolute;inset:40% auto auto 105%}.effect-play{animation:.5s cubic-bezier(.2,.7,.25,1) both clash-play-flight}.effect-draw{animation:.5s cubic-bezier(.2,.7,.25,1) both clash-draw-flight}.effect-seat-bottom{--seat-x:0px;--seat-y:14rem}.effect-seat-top{--seat-x:0px;--seat-y:-14rem}.effect-seat-upper-left,.effect-seat-left-upper{--seat-x:-20rem;--seat-y:-9rem}.effect-seat-upper-right,.effect-seat-right-upper{--seat-x:20rem;--seat-y:-9rem}.effect-seat-left-lower{--seat-x:-22rem;--seat-y:5rem}.effect-seat-right-lower{--seat-x:22rem;--seat-y:5rem}.last-card-bubble{z-index:30;color:#161100;background:#fff0a9;border:2px solid #f3d868;border-radius:1.2rem 1.2rem 1.2rem .2rem;justify-items:center;padding:.75rem 1.1rem;animation:2.4s both clash-call;display:grid;position:absolute;inset:40% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 0 2rem #f3d868aa}.clash-winner-overlay{z-index:40;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#010808b8;place-items:center;padding:1rem;display:grid;position:absolute;inset:0}.clash-winner-card{text-align:center;background:linear-gradient(145deg,#152b29,#0b151b);border:1px solid #7cb9aa;border-radius:1.5rem;width:min(31rem,100%);max-height:95%;padding:clamp(1rem,2.5vw,1.6rem);animation:.32s ease-out both clash-winner-in;position:relative;overflow-y:auto;box-shadow:0 1.4rem 4rem #000b}.own-win .clash-winner-card{border-color:#f2d565;box-shadow:0 0 3rem #e8c95744}.winner-avatar{color:#172018;background:#f2d565;border-radius:1.2rem;place-items:center;width:4rem;height:4rem;margin:0 auto .6rem;font-size:2rem;font-weight:1000;display:grid}.clash-winner-card h3{margin:.25rem 0;font-size:clamp(1.8rem,4vw,2.6rem)}.clash-winner-card p{color:var(--muted);margin:0 0 .8rem}.clash-winner-card dl{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.clash-winner-card dl div{border:1px solid var(--line-soft);border-radius:.7rem;padding:.5rem;display:grid}.clash-winner-card dt{color:var(--muted);font-size:.65rem}.clash-winner-card dd{margin:0;font-weight:900}.clash-winner-card ul{gap:.35rem;margin:.7rem 0;padding:0;list-style:none;display:grid}.clash-winner-card li{justify-content:space-between;gap:1rem;font-size:.78rem;display:flex}.winner-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.clash-confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.clash-confetti:before,.clash-confetti:after{content:"◆  ●  ▲  ■  ◆  ●  ▲  ■";color:#f2d565;word-spacing:3rem;animation:1.8s ease-out both clash-confetti;position:absolute;inset:-3rem 0 auto}.clash-confetti:after{color:#65dcae;animation-delay:.12s;transform:translate(2rem)}@media (max-width:720px){.color-arena .color-game-header{flex-direction:column;align-items:flex-start}.color-arena .color-game-header .rules-summary{display:none}.clash-table{border-radius:1.2rem;width:100%;height:min(44rem,100dvh - 8rem);min-height:37rem}.clash-center{width:13rem;inset-block-start:34%}.clash-piles{grid-template-columns:repeat(2,4.8rem)}.clash-status-rail{transform:scale(.86)}.clash-seat{width:8.2rem;min-height:3.4rem;padding:.35rem}.clash-seat .player-avatar{width:1.8rem;height:1.8rem}.clash-seat[data-seat=top]{inset-block-start:2%}.clash-seat[data-seat=upper-left],.clash-seat[data-seat=left-upper]{inset:12% auto auto 2%;transform:none}.clash-seat[data-seat=upper-right],.clash-seat[data-seat=right-upper]{inset:12% 2% auto auto;transform:none}.clash-seat[data-seat=left-lower]{inset:25% auto auto 2%}.clash-seat[data-seat=right-lower]{inset:25% 2% auto auto}.opponent-hand{transform-origin:top;transform:scale(.8)}.local-seat{height:15.5rem;inset-inline:1%}.local-seat-toolbar .player-avatar{display:none}.last-card-button{padding:.4rem .55rem;font-size:.7rem}.color-arena .color-hand{padding-inline:var(--hand-inline-safety,1.25rem);justify-content:flex-start}.color-arena .color-card{flex-basis:4.8rem}.mobile-draw{padding:.35rem .5rem;font-size:.7rem;display:block;position:absolute;bottom:.4rem;right:.6rem}.play-selected-card{max-width:9rem;padding:.35rem .5rem;font-size:.65rem;left:.6rem;right:auto}.clash-winner-card dl{grid-template-columns:1fr}}@keyframes clash-play-flight{0%{opacity:.9;transform:translate(calc(-50% + var(--seat-x)),calc(-50% + var(--seat-y)))rotate(-10deg)scale(.9)}to{opacity:0;transform:translate(-50%,-50%)rotate(8deg)scale(1)}}@keyframes clash-draw-flight{0%{opacity:0;transform:translate(-50%,-50%)rotate(6deg)scale(1)}20%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--seat-x)),calc(-50% + var(--seat-y)))rotate(-8deg)scale(.9)}}@keyframes clash-call{0%{opacity:0;transform:translate(-50%,-40%)scale(.65)}14%,82%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-56%)scale(.96)}}@keyframes clash-active-seat{to{transform:scale(1.07);box-shadow:0 0 1rem #7ff0cf}}@keyframes clash-penalty-pulse{to{transform:scale(1.08)}}@keyframes clash-winner-in{0%{opacity:0;transform:translateY(1rem)scale(.95)}}@keyframes clash-confetti{to{opacity:0;transform:translateY(44rem)rotate(180deg)}}.button>svg,.badge>svg,.section-heading>svg,.icon-button>svg,.notification-button>svg{flex:none;width:1.1rem;height:1.1rem}.app-icon{vertical-align:middle;flex:none;max-width:none;max-height:none;display:inline-block}.app-icon.app-icon-xs{width:14px;height:14px}.app-icon.app-icon-sm{width:16px;height:16px}.app-icon.app-icon-md{width:20px;height:20px}.app-icon.app-icon-lg{width:24px;height:24px}.app-icon.app-icon-xl{width:32px;height:32px}.app-icon.app-icon-empty{width:48px;height:48px}.button{justify-content:center;align-items:center;gap:.45rem}.avatar{color:#fff;background:linear-gradient(145deg,#33476a,#182239);border:1px solid #ffffff24;border-radius:30%;flex:none;place-items:center;display:inline-grid;position:relative;overflow:visible;box-shadow:0 .4rem 1rem #00000040}.avatar>img,.avatar-preset-graphic,.avatar-generated{border-radius:inherit;width:100%;height:100%}.avatar-preset-graphic{display:block;overflow:hidden}.avatar>img{object-fit:cover;display:block}.avatar-generated{letter-spacing:-.03em;place-items:center;padding:.1rem;font-size:clamp(.65rem,42%,1.7rem);font-weight:850;display:grid;overflow:hidden}.avatar-presence{aspect-ratio:1;border:2px solid var(--surface);background:#667086;border-radius:50%;width:24%;min-width:.55rem;position:absolute;bottom:-.08rem;right:-.08rem}.avatar-presence.online{background:var(--success)}.avatar-role{aspect-ratio:1;border:2px solid var(--surface);width:clamp(.65rem,30%,1.5rem);color:var(--accent-ink);background:var(--accent);border-radius:50%;place-items:center;display:grid;position:absolute;top:-.35rem;right:-.35rem}.avatar-role>svg{width:65%}.avatar-role-spectator{color:#fff;background:#6857c7}.avatar-role-disabled{color:#fff;background:var(--danger)}.profile-shell{gap:1.25rem;width:min(68rem,100%);margin-inline:auto;display:grid}.profile-hero{background:radial-gradient(circle at 10% 20%,#67dbc526,transparent 15rem),var(--surface);align-items:center;gap:clamp(1rem,4vw,2.5rem);padding:clamp(1.25rem,4vw,2.5rem);display:flex}.profile-hero h1,.profile-editor h2{margin:.15rem 0}.profile-hero .badge{align-items:center;gap:.35rem;display:inline-flex}.profile-avatar-preview{place-items:center;min-width:8rem;min-height:8rem;display:grid}.profile-local-preview{border:2px solid var(--accent);object-fit:cover;border-radius:30%;width:8rem;height:8rem}.profile-editor{gap:1.35rem;padding:clamp(1.25rem,4vw,2.5rem);display:grid}.section-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.section-heading>svg{width:1.6rem;height:1.6rem;color:var(--accent)}.profile-editor label,.profile-editor fieldset{gap:.45rem;display:grid}.profile-editor fieldset{border:0;min-width:0;margin:0;padding:0}.profile-editor legend{margin-bottom:.75rem;font-weight:750}.preset-grid{grid-template-columns:repeat(auto-fit,minmax(5.4rem,1fr));gap:.55rem;display:grid}.preset-option{border:1px solid var(--line);border-radius:var(--radius-sm);min-width:0;color:var(--text);background:var(--surface-strong);cursor:pointer;justify-items:center;gap:.35rem;padding:.55rem .3rem;display:grid;position:relative}.preset-option>span:not(.avatar){text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.78rem;font-weight:700;overflow:hidden}.preset-option:hover{background:var(--surface-hover);border-color:#52688d}.preset-option.selected{border-color:var(--accent);background:#67dbc51a;box-shadow:0 0 0 2px #67dbc53d}.preset-option:focus-visible{outline-offset:2px;outline:3px solid #fff}.preset-option>svg{width:1.25rem;height:1.25rem;color:var(--accent-ink);background:var(--accent);border-radius:50%;padding:.15rem;position:absolute;top:.25rem;right:.25rem}.upload-panel{border:1px dashed var(--line);border-radius:var(--radius-sm);background:#ffffff05;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.upload-panel p{margin:.2rem 0 0}.upload-label{white-space:nowrap;cursor:pointer;display:inline-flex!important}.upload-label input{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}.profile-actions{flex-wrap:wrap;align-items:center;gap:.7rem;padding-top:.3rem;display:flex}.profile-logout{margin-left:auto}@media (max-width:620px){.profile-hero{align-items:flex-start}.profile-avatar-preview,.profile-local-preview{width:5.5rem;min-width:5.5rem;height:5.5rem;min-height:5.5rem}.profile-avatar-preview .avatar{width:5.5rem!important;height:5.5rem!important}.preset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.upload-panel{flex-direction:column;align-items:stretch}.profile-actions>*,.upload-label{width:100%}.profile-logout{margin-left:0}}@media (min-width:1800px){.profile-shell{width:min(74rem,100%)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}
