@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";:root{font-family:Manrope,system-ui,sans-serif;color:#20231f;background:#f3f0e8;font-synthesis:none;--ink: #20231f;--paper: #f3f0e8;--surface: #fbfaf6;--line: #d8d3c8;--muted: #706f68;--blue: #3157d5;--blue-dark: #2543a9;--green: #47705c;--account-stat-surface: #eeebe2;--shadow-panel: 0 18px 46px rgba(28, 49, 44, .1), inset 0 1px 0 rgba(255, 255, 255, .58);--shadow-card: inset 0 1px 0 rgba(255, 255, 255, .45), 0 4px 10px rgba(28, 49, 44, .06);--shadow-board: inset 0 2px 5px rgba(28, 49, 44, .12), 0 16px 34px rgba(28, 49, 44, .12);--shadow-cell: inset 0 1px 0 rgba(255, 255, 255, .52);--shadow-filled-cell: inset 0 1px 0 rgba(255, 255, 255, .32), inset 0 -2px 0 rgba(0, 0, 0, .1);--shadow-soft: 0 3px 7px rgba(28, 49, 44, .08)}:root[data-theme=dark]{color:#ecebe5;background:#171b1a;--ink: #ecebe5;--paper: #171b1a;--surface: #222826;--line: #414946;--muted: #a6ada8;--blue: #7894ff;--blue-dark: #607de8;--green: #79a88f;--account-stat-surface: #303633;--shadow-panel: 0 20px 52px rgba(0, 0, 0, .34), inset 0 1px 0 rgba(255, 255, 255, .055);--shadow-card: inset 0 1px 0 rgba(255, 255, 255, .045), 0 6px 16px rgba(0, 0, 0, .24);--shadow-board: inset 0 2px 6px rgba(0, 0, 0, .3), 0 18px 38px rgba(0, 0, 0, .28);--shadow-cell: inset 0 1px 0 rgba(255, 255, 255, .045);--shadow-filled-cell: inset 0 1px 0 rgba(255, 255, 255, .11), inset 0 -2px 0 rgba(0, 0, 0, .24);--shadow-soft: 0 4px 12px rgba(0, 0, 0, .22)}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%}body{margin:0;min-width:320px;min-height:100dvh;background:var(--paper)}:root.theme-transitioning,:root.theme-transitioning *,:root.theme-transitioning *:before,:root.theme-transitioning *:after{transition-property:background-color,color,border-color,box-shadow,fill,stroke!important;transition-duration:.36s!important;transition-timing-function:ease!important}:root.theme-transitioning #root{animation:theme-soft-fade .36s ease both}@keyframes theme-soft-fade{0%,to{opacity:1}50%{opacity:.94}}@media(prefers-reduced-motion:reduce){:root.theme-transitioning,:root.theme-transitioning *,:root.theme-transitioning *:before,:root.theme-transitioning *:after{transition:none!important}:root.theme-transitioning #root{animation:none!important}}body.game-active{position:fixed;inset:0;width:auto;height:auto;min-height:0;overflow:hidden;overscroll-behavior:none}body.game-active #root{width:100%;height:100%;min-height:0;overflow:hidden}body.game-active .game-room{height:100%;min-height:0;overflow:hidden}body.game-active,body.game-active *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important;-webkit-user-drag:none!important}body.game-active :is(input,textarea,select,[contenteditable=true]){-webkit-user-select:text!important;user-select:text!important;-webkit-touch-callout:default!important}button,input{font:inherit}button{color:inherit;cursor:pointer}button:disabled,button.blocked,button[aria-disabled=true]{opacity:.55;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 72%,white);outline-offset:3px}.landing{--landing-nav-height: clamp(56px, 9dvh, 84px);position:fixed;inset:0;width:auto;height:auto;min-height:0;overflow:hidden;padding:0 6vw}.landing nav{height:var(--landing-nav-height);position:sticky;top:0;z-index:20;background:#f3f0e8f5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.landing nav:before,.room-page>nav:before{content:"";position:absolute;inset-block:0;left:50%;width:100vw;transform:translate(-50%);z-index:-1;pointer-events:none;background:inherit;-webkit-backdrop-filter:inherit;backdrop-filter:inherit}.landing-nav-actions{display:flex;align-items:center;gap:10px}nav{height:84px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:4}.logo{display:flex;align-items:center;gap:12px;color:var(--ink);font-weight:800;letter-spacing:.09em;font-size:18px;line-height:.85}.logo-button{border:0;background:transparent;padding:0;font:inherit;text-align:left;cursor:pointer}.logo-button:focus-visible{outline:3px solid var(--blue);outline-offset:4px;border-radius:4px}.logo small{display:block;color:var(--blue);font-size:8px;letter-spacing:.32em;margin-top:6px}.logo-mark{width:37px;height:37px;display:grid;grid-template-columns:1fr 1fr;gap:3px}.logo-mark i{display:block;border-radius:3px;background:#3157d5}.logo-mark i:nth-child(2){background:#e0c04f;transform:translateY(3px)}.logo-mark i:nth-child(3){background:#c8667a}.logo-mark i:nth-child(4){background:#42998c;transform:translateY(3px)}.logo.compact{font-size:14px}.logo.compact .logo-mark{width:31px;height:31px}.logo.compact small{font-size:6px}.online-pill{font:600 10px DM Mono,monospace;letter-spacing:.12em;padding:9px 13px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:#f8f6ef}.online-pill i,.lobby-card .eyebrow i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:7px}.hero{max-width:1180px;height:calc(100% - var(--landing-nav-height));min-height:0;margin:auto;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:7vw;position:relative;z-index:2}.hero-copy{padding-bottom:28px;position:relative}.eyebrow{color:var(--blue);font:500 11px DM Mono,monospace;letter-spacing:.12em;display:flex;align-items:center;gap:8px}h1{font-size:clamp(50px,6.1vw,88px);line-height:.94;letter-spacing:-.065em;margin:24px 0;text-wrap:balance}h1 em{color:var(--blue);font-style:normal}.hero-copy>p{color:var(--muted);font-size:17px;line-height:1.75;max-width:600px}.feature-row{display:flex;max-width:100%;gap:10px;flex-wrap:wrap;margin-top:34px;color:#4e504b;font-size:12px;font-weight:700}.feature-row span{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid color-mix(in srgb,var(--line) 64%,transparent);border-radius:999px;background:color-mix(in srgb,var(--surface) 82%,transparent)}.feature-row svg{width:16px;color:var(--blue)}.entry-card,.panel{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-panel)}.entry-card{padding:34px;border-radius:20px;min-height:350px;position:relative}.entry-card:before{content:"";position:absolute;inset:8px;border:1px solid color-mix(in srgb,var(--line) 50%,transparent);border-radius:13px;pointer-events:none}.entry-card>*{position:relative;z-index:1}.entry-card h2{font-size:26px;margin:0 0 8px;letter-spacing:-.035em}.entry-card>p,.entry-card form>p{color:var(--muted);margin:0 0 26px;font-size:15px;line-height:1.55}.primary,.secondary{border:0;border-radius:9px;font-size:14px;font-weight:750;display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 20px;transition:background .15s,transform .15s,box-shadow .15s}.primary{background:var(--blue);color:#fff}.primary:hover{background:var(--blue-dark);transform:translateY(-1px);box-shadow:0 8px 18px color-mix(in srgb,var(--blue) 25%,transparent)}.secondary{background:#eeebe2;border:1px solid var(--line)}.secondary:hover{background:#e7e2d8}.big{width:100%;padding:16px 20px;margin-top:11px}.big svg{width:18px}.text-button,.back{background:none;border:0;color:var(--muted);padding:16px 0 0;font-size:12px}.text-button{width:100%}.back{margin-top:2px}form h2{margin-bottom:24px!important}label{display:block;color:var(--muted);font:500 12px DM Mono,monospace;letter-spacing:.1em;margin:15px 0 8px}input{width:100%;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:7px;padding:14px 15px;outline:none;margin-top:8px;font-size:16px;line-height:1.35}input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #3157d51f}.name-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch;margin-top:8px}.name-input-row input{margin-top:0;min-width:0}.name-randomize{min-width:48px;min-height:48px;border:1px solid var(--line);border-radius:7px;background:#eeebe2;color:var(--blue);padding:0 12px;display:flex;align-items:center;justify-content:center;gap:7px;font:700 12px Manrope,sans-serif;letter-spacing:0}.name-randomize:hover{background:#e7e2d8}.name-randomize svg{width:18px;height:18px;flex:0 0 auto}.code-input{font:500 23px DM Mono;letter-spacing:.25em;text-transform:uppercase}.room-hint{display:flex;gap:10px;align-items:flex-start;background:#eeebe2;border-radius:8px;padding:13px;font-size:12px;line-height:1.5;margin-top:18px!important}.room-hint svg{width:17px;flex:0 0 auto;color:var(--blue)}.error{color:#a54050!important;font-size:14px!important;line-height:1.4!important;margin:12px 0!important}.decor-crop{position:absolute;left:0;bottom:0;width:270px;height:220px;overflow:hidden;pointer-events:none}.decor-grid{position:absolute;width:420px;height:420px;left:-170px;top:18px;display:grid;grid-template-columns:repeat(6,1fr);gap:6px;transform:rotate(10deg);opacity:.64}.decor-grid i{border:1px solid color-mix(in srgb,var(--line) 74%,transparent);border-radius:7px;background:color-mix(in srgb,var(--surface) 78%,transparent);box-shadow:var(--shadow-soft)}.decor-grid .tile-blue{background:#3157d5;border-color:#294ab6}.decor-grid .tile-gold{background:#e0c04f;border-color:#c6a936}.decor-grid .tile-rose{background:#c8667a;border-color:#ac5166}.decor-grid .tile-green{background:#42998c;border-color:#347c72}.loading{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:22px;color:var(--muted);text-align:center}.loading h2{color:var(--ink);margin:10px 0 0}.loading p{margin:0}.spinner{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.room-page{min-height:100vh;padding:0 4vw 16px}.lobby-room{width:100%;height:100dvh;min-height:0;overflow:hidden}.room-page>nav{position:sticky;top:0;height:70px;border-bottom:1px solid var(--line);background:#f3f0e8f5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:15}.room-code{position:absolute;left:50%;transform:translate(-50%);text-align:center}.room-code small{display:block;color:var(--muted);font:500 9px DM Mono;letter-spacing:.15em}.room-code button{background:none;border:0;font:500 17px DM Mono;letter-spacing:.17em;padding:3px}.room-code svg{width:13px;vertical-align:middle;color:var(--blue)}[data-room-kind=personalSolo] .room-code{display:none}.nav-actions{display:flex;gap:8px}.nav-actions button{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:8px 11px;display:flex;gap:7px;align-items:center;font-size:12px}.nav-actions svg{width:15px}.nav-menu{position:relative;order:1}.mobile-nav-menu>button{border:0;background:transparent}.nav-menu-popover{position:absolute;right:0;top:calc(100% + 8px);width:190px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 14px 34px #12141338}.nav-menu-popover button{width:100%!important;height:auto!important;min-height:52px;padding:9px 11px;justify-content:flex-start!important;gap:11px;border:0;background:transparent;text-align:left}.nav-menu-popover button:hover{background:#7f89841f}.nav-menu-popover button>svg{width:20px;height:20px;flex:0 0 20px}.nav-menu-popover span{display:grid;gap:3px;line-height:1.2}.nav-menu-popover small{color:var(--muted);font:500 7px DM Mono;letter-spacing:.1em}.nav-actions>.nav-sound,.nav-actions>.nav-theme{display:none}.mobile-nav-menu{display:block}.nav-menu-popover .nav-menu-item{display:flex}.mobile-menu-only{display:none!important}.marketing-page{min-height:100dvh;background:var(--paper);color:var(--ink)}.marketing-page>nav{min-height:76px;padding:14px clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--paper) 94%,transparent)}.marketing-logo{color:inherit;text-decoration:none}.marketing-page>nav>div{display:flex;align-items:center;gap:clamp(14px,3vw,30px)}.marketing-page>nav a{color:var(--ink);font-weight:700;text-decoration:none}.marketing-page>nav a:hover{color:var(--blue)}.marketing-page>nav .marketing-play{display:inline-flex;align-items:center;gap:7px;padding:10px 16px;border-radius:9px;background:var(--blue);color:#fff}.marketing-page>nav .marketing-play:hover{background:var(--blue-dark);color:#fff}.marketing-page svg{width:19px;height:19px}.marketing-content{width:min(1040px,calc(100% - 40px));margin:0 auto;padding:clamp(58px,9vw,110px) 0 80px}.marketing-content>header{max-width:760px;margin-bottom:48px}.marketing-content .eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--green);font:700 12px/1.2 DM Mono,monospace;letter-spacing:.12em}.marketing-content h1{margin:18px 0;font-size:clamp(42px,7vw,78px);line-height:.98;letter-spacing:-.055em}.marketing-content h1 em{color:var(--blue);font-style:normal}.marketing-content>header p{max-width:680px;margin:0;color:var(--muted);font-size:clamp(17px,2.2vw,21px);line-height:1.65}.marketing-guide{padding:clamp(24px,4vw,44px);border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-panel)}.marketing-guide .how-to-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 28px}.marketing-guide .how-to-steps span{min-width:0}.marketing-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}.marketing-cards>div,.marketing-story{padding:30px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-card)}.marketing-cards svg{color:var(--blue)}.marketing-cards h2,.marketing-story h2{margin:14px 0 8px}.marketing-cards p,.marketing-story p{margin:0;color:var(--muted);line-height:1.65}.marketing-story{max-width:780px}.marketing-story h2:first-child{margin-top:0}.marketing-story h2:not(:first-child){margin-top:30px}.marketing-page>footer{padding:28px clamp(20px,5vw,72px);display:flex;align-items:center;gap:20px;border-top:1px solid var(--line);color:var(--muted)}.marketing-page>footer span:nth-child(2){flex:1}.marketing-page>footer a{color:var(--blue);font-weight:800}.marketing-not-found{min-height:calc(100dvh - 153px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center}.marketing-not-found>svg{width:40px;height:40px;color:var(--blue)}.marketing-not-found h1,.marketing-not-found p{margin:0}.marketing-not-found .primary{margin-top:12px;padding:12px 18px;color:#fff;text-decoration:none}@media(max-width:700px){.marketing-page>nav{min-height:66px}.marketing-page>nav>div>a:not(.marketing-play){display:none}.marketing-content{width:min(100% - 28px,1040px);padding-top:48px}.marketing-guide .how-to-steps,.marketing-cards{grid-template-columns:1fr}.marketing-page>footer{align-items:flex-start;flex-direction:column}}.fade-presence{animation:fade-presence-in .12s ease-out both}.popup-presence,.popup-presence :is(button,a,input,select,textarea,[role=button]){pointer-events:auto;touch-action:manipulation}@keyframes fade-presence-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.fade-presence{animation-duration:1ms}}.account-backdrop{position:fixed;z-index:120;inset:0;padding:18px;display:grid;place-items:center;background:#0e121194;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.account-popup{width:min(520px,100%);max-height:calc(100dvh - 36px);overflow:auto;border-radius:16px}.account-popup>header{position:sticky;z-index:1;top:0;min-height:58px;padding:0 18px;border-bottom:1px solid var(--line);background:var(--surface);display:flex;align-items:center;justify-content:space-between}.account-popup>header>span{display:flex;align-items:center;gap:9px}.account-popup>header svg{width:19px;color:var(--blue)}.account-popup>header>button{width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:8px;background:transparent;display:grid;place-items:center}.account-body{padding:20px}.account-tabs{position:sticky;z-index:1;top:58px;display:grid;grid-template-columns:1fr 1fr;padding:8px 20px 0;background:var(--surface);border-bottom:1px solid var(--line)}.account-tabs button{min-height:38px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:11px;font-weight:800}.account-tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--blue)}.account-settings{display:grid;gap:14px}.account-settings>label{display:grid;gap:7px;color:var(--muted);font:700 9px DM Mono;letter-spacing:.06em}.account-settings select{min-height:42px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:600 13px inherit}.account-settings .settings-switch{grid-template-columns:1fr auto;align-items:center;padding:12px;border:1px solid var(--line);border-radius:10px;color:var(--ink);font-family:inherit;letter-spacing:0}.settings-switch>span{display:grid;gap:4px}.settings-switch small{color:var(--muted);font-size:10px;font-weight:500;line-height:1.35}.settings-switch input{width:18px;height:18px;accent-color:var(--blue)}.account-intro{margin:0 0 16px;color:var(--muted);font-size:13px;line-height:1.55}.account-body label small{float:right;font-size:8px}.account-save{width:100%;margin-top:18px}.account-auth-options{display:grid;gap:9px}.account-auth-options button{min-height:58px;padding:10px 13px;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--ink);display:flex;align-items:center;gap:12px;text-align:left}.account-auth-options button:hover{background:color-mix(in srgb,var(--ink) 5%,transparent)}.account-auth-options button>svg,.google-mark{width:21px;height:21px;flex:0 0 21px}.account-auth-options button>span:not(.google-mark){display:grid;gap:3px}.account-auth-options b{font-size:13px}.account-auth-options small{color:var(--muted);font-size:9px}.google-mark{color:#4285f4;font:800 18px/21px Arial,sans-serif;text-align:center}.account-actions button,.account-footer button{min-height:40px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px}.account-actions svg,.account-footer svg{width:15px;color:var(--blue)}.account-loading{min-height:120px;display:flex;align-items:center;justify-content:center;gap:9px;color:var(--muted);font-size:12px}.account-stats{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.account-stats>header{display:flex;align-items:center;gap:7px;font-size:13px}.account-stats>header svg{width:17px;color:var(--blue)}.account-stats>div{margin-top:11px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.account-stats span{min-height:58px;padding:8px;border-radius:8px;background:var(--account-stat-surface);color:var(--muted);font-size:9px;display:grid;align-content:center;gap:3px}.account-stats strong{color:var(--ink);font-size:16px}.account-breakdown{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.account-breakdown>header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.account-breakdown>header b{font-size:13px}.account-breakdown>header small{color:var(--muted);font-size:8px}.account-breakdown>div{margin-top:10px;display:grid;gap:8px}.account-breakdown article{padding:11px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--account-stat-surface) 58%,transparent)}.account-breakdown article>header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.account-breakdown article>header b{font-size:11px}.account-breakdown article>header span{color:var(--muted);font:600 8px DM Mono}.account-breakdown dl{margin:10px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.account-breakdown dl div{display:grid;gap:2px}.account-breakdown dt{color:var(--muted);font:500 7px DM Mono;text-transform:uppercase;letter-spacing:.05em}.account-breakdown dd{margin:0;font-size:11px;font-weight:800}.account-breakdown article>p{margin:9px 0 0;color:var(--muted);font-size:8px}.account-actions{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.account-footer{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:8px}.account-footer .danger-link{border-color:transparent;color:#b34054}.account-message{margin:0;padding:0 20px 20px;color:var(--muted);font-size:12px}.account-history{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.account-history>header{display:flex;align-items:center;gap:8px}.account-history>header>svg{width:18px;color:var(--blue)}.account-history>header>span{display:grid;gap:2px}.account-history>header b{font-size:13px}.account-history>header small,.account-history>p{color:var(--muted);font-size:9px}.account-history>p{margin:14px 0 0;font-size:11px;line-height:1.5}.account-history ol{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:9px}.account-history li{padding:12px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--account-stat-surface) 58%,transparent)}.account-history li>header{display:flex;align-items:start;justify-content:space-between;gap:10px}.account-history li>header>span{display:grid;gap:3px}.account-history li>header b{font-size:11px}.account-history li>header small{color:var(--muted);font:500 8px DM Mono}.account-history li>header>strong{color:var(--muted);font-size:10px;text-align:right}.account-history li>header>strong.solved{color:var(--green)}.account-history dl{margin:11px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.account-history dl div{display:grid;gap:2px}.account-history dt{color:var(--muted);font:500 7px DM Mono;text-transform:uppercase;letter-spacing:.06em}.account-history dd{margin:0;font-size:10px;font-weight:700}.account-history-link{margin:11px 0 0;padding:0;border:0;background:transparent;color:var(--blue);font-size:10px;font-weight:800;text-decoration:underline;text-underline-offset:3px;display:inline-flex;align-items:center;gap:5px}.account-history-link svg{width:13px}.account-history-unsolved{margin-top:11px;color:var(--muted);font-size:10px;font-weight:700;display:inline-block}.history-solution-backdrop{position:fixed;z-index:140;inset:0;padding:18px;display:grid;place-items:center;background:#0a0d0cb8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.history-solution-popup{width:min(580px,100%);max-height:calc(100dvh - 36px);overflow:auto;border-radius:16px;box-shadow:0 30px 90px #00000061}.history-solution-popup>header{min-height:64px;padding:0 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.history-solution-popup>header>span{display:flex;align-items:center;gap:10px}.history-solution-popup>header>span>svg{width:20px;color:var(--blue)}.history-solution-popup>header>span>span{display:grid;gap:3px}.history-solution-popup>header b{font-size:13px}.history-solution-popup>header small{color:var(--muted);font-size:9px}.history-solution-popup>header>button{width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:8px;background:transparent;display:grid;place-items:center}.history-solution-popup>header>button svg{width:16px}.history-solution-body{padding:22px;display:grid;justify-items:center}.history-solution-body>p{margin:14px 0 0;color:var(--muted);font-size:10px;text-align:center}.history-solution-board{width:min(100%,430px);aspect-ratio:1;padding:7px;border-radius:12px;background:var(--ink);display:grid;grid-template-columns:repeat(var(--solution-grid-size),1fr);gap:3px}.history-solution-board>span{min-width:0;border-radius:3px;background:color-mix(in srgb,var(--surface) 92%,var(--ink))}.history-solution-board>span.filled{background:var(--solution-piece);box-shadow:inset 0 0 0 1px #ffffff38}.history-solution-board>span.blocked{position:relative;background:#202725}.history-solution-board>span.blocked:after{content:"";position:absolute;inset:31%;border-radius:50%;background:#8fa39c}.host-toast{position:fixed;z-index:100;top:max(14px,env(safe-area-inset-top));left:50%;transform:translate(-50%);max-width:min(90vw,520px);padding:11px 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);box-shadow:0 10px 30px #0000002e;pointer-events:none;animation:toast-fade-out .2s ease-in 9.8s both}@keyframes toast-fade-out{0%{opacity:1}to{opacity:0}}.nav-actions .nav-end-solo{border-color:color-mix(in srgb,var(--green) 48%,var(--line));color:var(--green);font-weight:800}.nav-end-solo svg{width:16px}.directions-backdrop{position:fixed;inset:0;z-index:40;padding:18px;background:#0f12116b;display:grid;place-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.directions-popup{width:min(470px,100%);max-height:min(620px,calc(100dvh - 36px));overflow:auto;border-radius:14px}.directions-popup>header{min-height:60px;padding:0 17px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.directions-popup>header>span{display:flex;align-items:center;gap:9px;font-size:15px}.directions-popup>header svg{width:19px;color:var(--blue)}.directions-popup>header>button{width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:8px;background:transparent;display:grid;place-items:center}.directions-popup>header>button svg{width:16px;color:var(--muted)}.nav-pause svg{color:var(--blue)}.nav-restart svg{color:var(--blue)}.nav-pause .spinner,.nav-menu-popover .spinner{width:15px;height:15px;flex:0 0 15px}.solo-pause-backdrop{position:fixed;inset:0;z-index:55;padding:18px;background:#0e1211bd;display:grid;place-items:center;-webkit-backdrop-filter:blur(14px) saturate(.55);backdrop-filter:blur(14px) saturate(.55)}.solo-pause-popup{width:min(430px,100%);padding:30px;border-radius:16px;display:grid;justify-items:center;text-align:center;box-shadow:0 28px 80px #00000061}.solo-pause-popup>svg{width:42px;height:42px;margin-bottom:8px;color:var(--blue)}.solo-pause-popup>small{color:var(--blue);font:600 9px DM Mono;letter-spacing:.14em}.solo-pause-popup h2{margin:8px 0 6px;font-size:25px}.solo-pause-popup p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.solo-pause-popup p time{color:var(--ink);font-weight:800}.solo-pause-popup>strong{margin:18px 0 10px;color:var(--muted);font:500 10px DM Mono;letter-spacing:.05em}.solo-pause-popup>strong span{color:var(--ink);font-size:24px;letter-spacing:-.04em}.solo-pause-popup .pause-timer-loading{min-height:29px;display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:10px;letter-spacing:.05em}.solo-pause-popup .pause-timer-loading .spinner{width:16px;height:16px;flex:0 0 auto}.inline-sync{min-height:18px;display:inline-flex;align-items:center;gap:6px;color:var(--muted);font:500 9px DM Mono;letter-spacing:.03em}.inline-sync .spinner{width:13px;height:13px;flex:0 0 auto}.solo-pause-popup .pause-room-code{margin-bottom:18px}.pause-room-code b{color:var(--ink);font:600 13px DM Mono;letter-spacing:.12em}.solo-pause-popup>button{width:100%;min-height:48px;justify-content:center}.solo-pause-popup>button+button{margin-top:10px}.restart-vote-backdrop{position:fixed;inset:0;z-index:58;padding:18px;background:#0e1211ad;display:grid;place-items:center;-webkit-backdrop-filter:blur(10px) saturate(.7);backdrop-filter:blur(10px) saturate(.7)}.restart-vote-popup{width:min(460px,100%);padding:30px;border-radius:16px;display:grid;justify-items:center;text-align:center;box-shadow:0 28px 80px #00000061}.restart-vote-popup>svg{width:42px;height:42px;margin-bottom:8px;color:var(--blue)}.restart-vote-popup>small{color:var(--blue);font:600 9px DM Mono;letter-spacing:.14em}.restart-vote-popup h2{margin:8px 0 6px;font-size:25px}.restart-vote-popup p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.restart-vote-popup>strong{margin:18px 0;color:var(--muted);font:500 10px DM Mono;letter-spacing:.05em}.restart-vote-popup>strong span{color:var(--ink);font-size:20px;letter-spacing:-.03em}.restart-vote-actions{width:100%;display:grid;grid-template-columns:1fr 1.25fr;gap:9px}.restart-vote-actions button{min-height:48px;justify-content:center}.restart-waiting{min-height:48px;display:flex;align-items:center;gap:7px}.restart-waiting svg{width:18px;color:var(--green)}.restart-cancel{margin-top:12px;border:0;background:transparent;color:var(--muted);text-decoration:underline}.solo-transition-backdrop{position:fixed;inset:0;z-index:62;padding:18px;background:#0c100fd1;display:grid;place-items:center;-webkit-backdrop-filter:blur(16px) saturate(.55);backdrop-filter:blur(16px) saturate(.55)}.solo-transition-popup{width:min(520px,100%);padding:32px;border-radius:18px;display:grid;justify-items:center;text-align:center;box-shadow:0 30px 90px #00000073}.solo-transition-popup>svg{width:44px;height:44px;margin-bottom:8px;color:var(--blue)}.solo-transition-popup>small{color:var(--blue);font:700 9px DM Mono;letter-spacing:.15em}.solo-transition-popup h2{margin:8px 0 7px;font-size:27px}.solo-transition-popup>p{max-width:430px;margin:0;color:var(--muted);font-size:13px;line-height:1.6}.solo-transition-countdown{width:100%;margin:22px 0;display:grid;justify-items:center;gap:9px}.solo-transition-countdown>span{width:94px;height:94px;position:relative;border-radius:50%;background:conic-gradient(var(--blue) var(--decision-progress),var(--line) 0);display:grid;place-items:center;align-content:center}.solo-transition-countdown>span:before{content:"";position:absolute;inset:6px;border-radius:inherit;background:var(--surface)}.solo-transition-countdown strong,.solo-transition-countdown small{position:relative;z-index:1}.solo-transition-countdown strong{font:800 31px/1 DM Mono;letter-spacing:-.05em}.solo-transition-countdown small{margin-top:4px;color:var(--muted);font:600 8px DM Mono;letter-spacing:.12em}.solo-transition-countdown p{margin:0;color:var(--muted);font-size:11px}.solo-transition-actions{width:100%;display:grid;grid-template-columns:1fr 1.25fr;gap:9px}.solo-transition-actions button,.solo-transition-leave{min-height:50px;justify-content:center}.solo-transition-leave{min-width:180px;margin-top:2px}.end-infinite-backdrop{position:fixed;inset:0;z-index:66;padding:18px;background:#0c100fc2;display:grid;place-items:center;-webkit-backdrop-filter:blur(14px) saturate(.6);backdrop-filter:blur(14px) saturate(.6)}.end-infinite-popup{width:min(500px,100%);position:relative;padding:32px;border-radius:18px;display:grid;justify-items:center;text-align:center;box-shadow:0 30px 90px #0000006b}.end-infinite-popup>svg{width:42px;height:42px;margin-bottom:8px;color:var(--blue)}.end-infinite-popup>small{color:var(--blue);font:700 9px DM Mono;letter-spacing:.15em}.end-infinite-popup h2{margin:8px 0 7px;font-size:27px}.end-infinite-popup>p{max-width:410px;margin:0 0 22px;color:var(--muted);font-size:13px;line-height:1.6}.end-infinite-close{width:38px;height:38px;position:absolute;top:12px;right:12px;padding:0;border:1px solid var(--line);border-radius:9px;background:transparent;display:grid;place-items:center}.end-infinite-close svg{width:16px}.end-infinite-actions{width:100%;display:grid;grid-template-columns:1fr 1.25fr;gap:9px}.end-infinite-actions button{min-height:50px;justify-content:center}.end-infinite-cancel{margin-top:12px;border:0;background:transparent;color:var(--muted);text-decoration:underline}.leave-confirm-backdrop{position:fixed;inset:0;z-index:60;padding:18px;background:#0e1211ad;display:grid;place-items:center;-webkit-backdrop-filter:blur(10px) saturate(.7);backdrop-filter:blur(10px) saturate(.7)}.solo-transition-backdrop+.leave-confirm-backdrop,.leave-confirm-backdrop{z-index:70}.leave-confirm-popup{width:min(430px,100%);padding:30px;border-radius:16px;display:grid;justify-items:center;text-align:center;box-shadow:0 28px 80px #00000061}.leave-confirm-popup>svg,.host-left-popup>svg{width:42px;height:42px;margin-bottom:8px;color:#b34054}.leave-confirm-popup>small,.host-left-popup>small{color:#b34054;font:600 9px DM Mono;letter-spacing:.14em}.leave-confirm-popup h2,.host-left-popup h2{margin:8px 0 6px;font-size:25px}.leave-confirm-popup p,.host-left-popup p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.leave-confirm-popup>div{width:100%;margin-top:22px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.leave-confirm-popup>div button{min-height:48px;justify-content:center}.leave-confirm-popup .danger{border-color:#b34054;background:#b34054;color:#fff}.host-left-page{width:100%;min-height:100dvh;padding:18px;display:grid;place-items:center;background:var(--bg)}.host-left-popup{width:min(460px,100%);padding:34px 30px;border-radius:16px;display:grid;justify-items:center;text-align:center;box-shadow:0 28px 80px #0000003d}.host-left-popup>strong{margin:20px 0 14px;color:var(--muted);font:500 11px DM Mono}.host-left-popup>strong span{color:var(--ink);font-size:22px}.host-left-popup>a{color:var(--blue);font-weight:800;text-underline-offset:3px}.lobby-view{height:calc(100dvh - 86px);min-height:0;display:grid;grid-template-columns:minmax(400px,620px) 1fr;align-items:center;gap:8vw;max-width:1140px;margin:auto}.lobby-view.has-previous{grid-template-columns:minmax(0,1fr);gap:10px;max-width:1400px}.lobby-column{container-type:inline-size;width:100%;max-height:calc(100% - 16px);min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:0;align-self:center}.lobby-view.has-previous .lobby-column{grid-template-rows:auto minmax(0,1fr) auto;gap:10px}.lobby-card{min-height:0;overflow:hidden;padding:28px 36px 0;display:grid;grid-template-rows:minmax(0,1fr);border-radius:22px 22px 0 0}.lobby-card-body{min-height:0;overflow-y:auto}.lobby-card-body:after{content:"";display:block;height:12px;grid-column:1 / -1}.lobby-card h1{font-size:44px;margin:7px 0}.lobby-intro{padding:4px 2px 8px}.lobby-intro>p{margin:0;color:var(--muted);line-height:1.5}.lobby-sections{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:14px 0 0}.lobby-section,.rally-setup{min-width:0;margin:0;padding:12px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--surface) 58%,var(--paper))}.lobby-room .rally-setup{padding-top:0;border:0;background:transparent}.lobby-section>header,.rally-setup>header{display:flex;align-items:center;gap:8px;margin-bottom:9px}.lobby-section>header>span,.rally-setup>header>span{min-width:0;display:flex;align-items:center;gap:7px}.lobby-section>header small,.rally-setup>header small{color:var(--blue);font:600 8px DM Mono;letter-spacing:.08em}.lobby-section>header b,.rally-setup>header b{font-size:13px}.lobby-section>header em,.rally-setup>header em{margin-left:auto;color:var(--muted);font:500 7px DM Mono;letter-spacing:.1em;white-space:nowrap}.lobby-section>p{min-height:28px;margin:0;color:var(--muted);font-size:9px;line-height:1.45}.invite-link{width:100%;min-height:44px;margin-top:8px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#f8f6f0;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink);text-align:left}.invite-link:hover{background:#e7e2d8}.invite-link>span{min-width:0;display:grid;gap:3px}.invite-link small{color:var(--muted);font:500 8px DM Mono;letter-spacing:.12em}.invite-link b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:500 11px DM Mono}.invite-link svg{width:17px;flex:0 0 auto;color:var(--blue)}.player-chips{height:44px;display:flex;flex-wrap:nowrap;align-items:center;gap:7px;margin:8px 0 0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain}.player-chips span{flex:0 0 auto;background:#eeebe2;border:1px solid var(--line);border-radius:999px;padding:7px 12px 7px 7px;display:flex;align-items:center;gap:8px;font-size:11px;white-space:nowrap}.player-chips span.ready{border-color:#9eb6a8;background:#e8f0ea}.player-chips span.away{opacity:.55}.player-chips b{width:28px;height:28px;border-radius:50%;background:#d8ddd6;display:grid;place-items:center;color:#365447;font-size:9px}.player-chips svg{width:13px;color:#a97717}.player-chips small{display:inline-flex;align-items:center;gap:3px;color:var(--muted);font:500 7px DM Mono;letter-spacing:.05em}.player-chips small svg{width:10px;color:var(--green)}.lobby-ready-dock{position:sticky;bottom:0;z-index:6;padding:12px;border-radius:12px}.lobby-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.lobby-actions.solo{grid-template-columns:1fr}.lobby-actions>*{min-height:50px;margin:0}.ready-toggle{border:1px solid var(--line);border-radius:8px;background:#eeebe2;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:750}.ready-toggle svg{width:18px}.ready-toggle.ready{border-color:#8fab9a;background:var(--green);color:#fff}.ready-countdown{min-height:58px;margin:0 0 12px;padding:8px 12px;border:1px solid #b8c4df;border-radius:8px;background:#edf0f8;display:flex;align-items:center;gap:14px}.ready-countdown>span{min-width:64px;display:grid;justify-items:center}.ready-countdown small{color:var(--blue);font:500 7px DM Mono;letter-spacing:.08em}.ready-countdown time{color:var(--ink);font:500 25px DM Mono;line-height:1}.ready-countdown p{margin:0;color:#555b6b;font-size:10px;line-height:1.4}.ready-countdown.pending{background:#eeebe2;border-color:var(--line)}.ready-countdown.pending small,.ready-countdown.pending time{color:var(--muted)}.lobby-actions .waiting{display:flex;align-items:center;justify-content:center;gap:7px;padding:8px}.lobby-actions .waiting svg{width:16px;color:var(--green)}.lobby-ready-dock>small{display:block;text-align:center;margin-bottom:8px;color:var(--muted);font:500 9px DM Mono;letter-spacing:.11em}.waiting{padding:17px;text-align:center;background:#eeebe2;border-radius:8px;color:var(--muted);font-size:12px}.waiting .spinner{margin-right:8px;vertical-align:middle}.rally-setup>header{margin-bottom:12px}.rally-setup>header em,.rally-setup legend{color:var(--muted);font:500 11px DM Mono;letter-spacing:.09em}.rally-setup>header svg{width:14px;color:var(--muted)}.host-selection{margin:-2px 0 12px;padding:8px 10px;border:1px solid rgba(49,87,213,.2);border-radius:8px;background:#f2f4fb;display:flex;align-items:center;flex-wrap:wrap;gap:5px 10px;font-size:9px}.host-selection b{color:var(--blue);font-size:10px}.host-selection span{color:var(--muted)}.rally-setup fieldset{min-width:0;margin:0;padding:0;border:0}.rally-setup fieldset+fieldset{margin-top:12px}.rally-setup legend{margin-bottom:7px}.ruleset-options,.format-options{display:grid;gap:7px}.ruleset-options,.format-options{grid-template-columns:repeat(2,minmax(0,1fr))}.ruleset-options>button,.format-options>button{min-width:0;min-height:88px;position:relative;padding:12px 18px 12px 12px;border:1px solid #d2ccc0;border-radius:9px;background:#f8f6f0;display:grid;align-content:center;justify-items:start;gap:6px;color:var(--ink);text-align:left}.ruleset-options>button{display:flex;flex-direction:column;align-items:flex-start}.ruleset-options>button:hover:not(:disabled),.format-options>button:hover:not(:disabled){background:#fff;border-color:#a8b3d9}.ruleset-options>button.selected,.format-options>button.selected{border-color:var(--blue);background:#f2f4fb;box-shadow:0 0 0 2px #3157d51a}.format-options>button:disabled{cursor:not-allowed}.format-options>button.selected:disabled{opacity:1}.ruleset-options>button>span,.format-options>button>span{min-width:0;display:grid;gap:2px}.ruleset-options strong,.format-options strong{font-size:15px}.ruleset-options .beta-badge{display:inline-flex;margin-left:4px;padding:3px 5px;border-radius:999px;background:var(--blue);color:#fff;font:700 9px DM Mono;letter-spacing:.06em;vertical-align:2px}.ruleset-options small,.format-options small{color:var(--muted);font-size:11px;line-height:1.35}.ruleset-options em,.format-options em{color:var(--blue);font:600 10px/1.35 DM Mono;letter-spacing:.03em;text-transform:uppercase}.ruleset-options em{margin-top:auto}.ruleset-options svg,.format-options svg{position:absolute;right:7px;top:7px;width:13px;color:var(--blue)}.size-options-shell{--scroll-fade-surface: #eeebe2;--scroll-fade-width: min(42px, calc((100% - 168px)/2) );min-width:0;position:relative}.size-options{display:flex;gap:9px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--scroll-fade-width);padding:2px 2px 9px;padding-inline-end:calc(var(--scroll-fade-width) + 9px)}.size-options.single-size{padding:2px;overflow-x:hidden;scroll-snap-type:none}.size-scroll-cue{position:absolute;z-index:2;top:2px;bottom:9px;width:var(--scroll-fade-width);pointer-events:none;opacity:0;transition:opacity .18s ease}.size-scroll-cue.visible{opacity:1}.size-scroll-cue.left{left:0;background:linear-gradient(90deg,var(--scroll-fade-surface) 8%,color-mix(in srgb,var(--scroll-fade-surface) 88%,transparent) 48%,transparent)}.size-scroll-cue.right{right:0;background:linear-gradient(270deg,var(--scroll-fade-surface) 8%,color-mix(in srgb,var(--scroll-fade-surface) 88%,transparent) 48%,transparent)}.size-scroll-cue:after{content:"";position:absolute;top:50%;width:8px;height:8px;border-top:2px solid var(--blue);border-right:2px solid var(--blue);opacity:.82}.size-scroll-cue.left:after{left:9px;transform:translateY(-50%) rotate(-135deg)}.size-scroll-cue.right:after{right:9px;transform:translateY(-50%) rotate(45deg)}.size-options>button{flex:0 0 168px;width:168px;min-width:0;height:126px;position:relative;padding:12px 10px;border:1px solid #d2ccc0;border-radius:9px;background:#f8f6f0;display:grid;grid-template-rows:29px auto;justify-items:center;align-content:center;gap:7px;color:var(--ink);scroll-snap-align:start}.size-options.single-size>button{flex-basis:100%;width:100%}.size-options.single-size>button>.mini-grid,.size-options.single-size>button>span:not(.mini-grid){transform:translateY(3px)}.size-options>button:hover:not(:disabled),.round-options button:hover:not(:disabled){background:#fff;border-color:#a8b3d9}.size-options>button.selected{border-color:var(--blue);background:#f2f4fb;box-shadow:0 0 0 2px #3157d51a}.size-options>button>svg{position:absolute;right:5px;top:5px;width:12px;color:var(--blue)}.size-options>button>svg.random-size-icon{position:static;width:29px;height:29px;color:#98958e;stroke-width:1.6}.size-options>button>span:not(.mini-grid){min-width:0;width:100%;display:grid;justify-items:center;line-height:1.15}.size-options strong{font-size:15px}.size-options small{margin-top:3px;color:var(--blue);font:600 11px DM Mono;text-transform:uppercase}.size-options em{min-width:0;width:100%;min-height:32px;margin-top:5px;padding:0 2px;color:var(--muted);font:500 10px/1.4 DM Mono;display:grid;align-content:start;justify-items:center;gap:0}.size-options em span{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}.mini-grid{width:29px;height:29px;display:grid;grid-template-columns:repeat(var(--mini-size),1fr);gap:1px}.mini-grid i{border-radius:1px;background:#c9c5bc}.round-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(42px,1fr));gap:6px;padding:3px;border-radius:9px;background:#ddd8ce}.round-options button{min-height:38px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:700 13px DM Mono}.round-options button.selected{background:#fff;color:var(--blue);box-shadow:0 2px 8px #2f2b221a}.rally-setup>p{margin:12px 0 0;color:var(--muted);font-size:12px;line-height:1.5;text-align:center}.rally-setup.read-only button{opacity:.78}@container (min-width: 520px){.lobby-sections{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.rally-setup{grid-column:1 / -1}}.lobby-art{height:430px;position:relative}.lobby-art>span{position:absolute;left:calc(30% + var(--i) * 5%);top:calc(9% + var(--i) * 11%);transform:rotate(calc(-25deg + var(--i) * 12deg)) scale(2.35);filter:drop-shadow(0 10px 8px rgba(47,43,34,.16))}.lobby-scoreboard{width:min(100%,440px);max-height:min(72dvh,600px);justify-self:center;border-radius:13px;overflow:hidden}.lobby-scoreboard>header{min-height:62px;padding:0 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line)}.lobby-scoreboard>header>span:first-child{display:flex;align-items:center;gap:8px;font-size:13px}.lobby-scoreboard>header svg{width:18px;color:#a97717}.lobby-scoreboard>header>button{width:44px;height:44px;margin:0 -10px 0 auto;padding:0;border:0;border-left:1px solid var(--line);border-radius:0 10px 10px 0;background:transparent;display:grid;place-items:center}.lobby-scoreboard>header>button svg{width:15px;color:var(--blue);transition:transform .16s}.lobby-scoreboard:not(.collapsed)>header>button svg{transform:rotate(180deg)}.lobby-scoreboard.collapsed .previous-score-body{display:none}.previous-winner{min-width:0;margin-left:auto;display:grid;justify-items:end}.previous-winner small{color:var(--muted);font:500 7px DM Mono;letter-spacing:.1em}.previous-winner strong{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.previous-score-body{max-height:calc(min(72dvh,600px) - 62px);overflow-y:auto;padding:10px}.piece-preview{display:grid;gap:2px;width:max-content;height:max-content}.piece-preview i{border-radius:2px;border:1px solid rgba(32,35,31,.11)}.game-layout{max-width:1230px;margin:14px auto 0;display:grid;grid-template-columns:minmax(610px,1fr) 380px;gap:20px;align-items:start}.play-area{display:grid;grid-template-columns:minmax(410px,440px) minmax(320px,1fr);gap:14px;position:relative}.play-area,.play-area *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.play-area{touch-action:none}.timer-wrap{display:none}.timer-label{font:500 9px DM Mono;color:var(--muted);letter-spacing:.13em}.timer-wrap time{font:500 29px DM Mono;color:var(--ink);letter-spacing:.03em}.timer-locked{display:inline-flex;align-items:center;gap:4px;color:var(--green);font:500 8px DM Mono;letter-spacing:.1em}.timer-locked svg{width:13px}.board-shell{position:relative;padding:25px 0 0 25px;align-self:start}.board{width:100%;aspect-ratio:1;container-type:inline-size;display:grid;grid-template-columns:repeat(var(--board-size, 6),1fr);gap:clamp(2px,calc(8px - var(--board-size, 6) * .65px),4px);background:color-mix(in srgb,var(--ink) 10%,var(--paper));padding:8px;border:1px solid color-mix(in srgb,var(--ink) 18%,var(--line));border-radius:14px;box-shadow:var(--shadow-board)}.board button{min-width:0;min-height:0;aspect-ratio:1;border:1px solid color-mix(in srgb,var(--line) 88%,var(--ink));border-radius:5px;background:var(--surface);padding:0;transition:background .12s;box-shadow:var(--shadow-cell);touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.board button:hover{background:#efece4}.board button.flare{overflow:hidden;background:#414540;border-color:#414540;color:#f5f1e8;display:grid;place-items:center;font-size:min(19px,calc(52cqi / var(--board-size, 6)));line-height:1}.board button.flare span{display:block;max-width:100%;line-height:1}.board button.shaped-flare{background:#343934;box-shadow:inset 0 0 0 1px #ffffff14}.board button.filled{background:var(--piece);border-color:#20231f33;box-shadow:var(--shadow-filled-cell)}.signal-axis{position:absolute;display:grid;color:var(--muted)}.signal-axis.columns{left:33px;right:8px;top:5px;grid-template-columns:repeat(var(--board-size, 6),1fr);justify-items:center}.signal-axis.columns span{width:13px;height:13px;border-radius:50%;background:var(--signal-color)}.signal-axis.rows{left:3px;top:33px;bottom:8px;width:19px;grid-template-rows:repeat(var(--board-size, 6),1fr);align-items:center;justify-items:center}.signal-axis.rows span{width:19px;height:19px;display:grid;place-items:center;color:var(--muted)}.signal-axis.rows svg{width:13px;height:13px;fill:currentColor;stroke-width:1.8}.countdown,.round-banner{position:absolute;inset:25px 0 0 25px;border-radius:11px;background:#f8f6f0f2;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:4;border:1px solid var(--line)}.countdown small{font:500 10px DM Mono;letter-spacing:.17em;color:var(--blue)}.countdown strong{font-size:104px;color:var(--ink)}.round-banner svg{width:52px;height:52px;color:#a97717}.round-banner strong{font-size:20px;margin:15px}.round-banner span{font:500 21px DM Mono;color:var(--blue)}.round-banner small{color:var(--blue);font:500 9px DM Mono;letter-spacing:.13em}.spectator-banner{z-index:6;text-align:center}.spectator-banner svg{color:var(--blue)}.tray.spectating .pieces{opacity:.45}.finished-banner svg{color:var(--green)}.finished-banner strong{margin-bottom:8px}.finished-banner span{font-size:13px;color:var(--muted)}.intermission-banner span{font-size:18px}.tray{position:relative;border-radius:14px;padding:11px;align-self:start;margin-top:25px}.tray-lock-banner{position:absolute;inset:0;z-index:6;border-radius:inherit;background:#f8f6f0f5;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;border:1px solid var(--line);text-align:center}.tray-lock-banner svg{width:52px;height:52px;color:#a97717}.tray-lock-banner small{margin-top:10px;color:var(--blue);font:500 9px DM Mono;letter-spacing:.13em}.tray-lock-banner strong{margin:8px 0;font-size:20px}.tray-lock-banner span{max-width:260px;color:var(--muted);font:500 13px/1.5 DM Mono}.tray header{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font:500 10px DM Mono;letter-spacing:.1em;margin-bottom:8px}.tray header button{border:0;background:none;color:var(--muted);font-size:10px;text-decoration:underline}.tray-actions{display:flex;align-items:center;gap:6px}.tray header .give-up{min-width:106px;min-height:30px;padding:0 9px;border:1px solid #c98a94;border-radius:6px;background:#f5e6e8;color:#773744;font:700 9px DM Mono;letter-spacing:0;white-space:nowrap;text-decoration:none}.tray header .give-up:hover:not(:disabled){background:#ecd4d8}.tray header .give-up:disabled{border-color:var(--line);background:#ebe8e0;color:var(--muted);opacity:1;cursor:default}.how-to-play{color:#555750;font-size:10px;line-height:1.5}.how-to-play>strong{color:var(--ink);font-size:12px}.how-to-steps{display:grid;gap:7px}.how-to-play span{display:grid;grid-template-columns:62px minmax(0,1fr);gap:7px}.how-to-play .how-to-intro{margin-bottom:4px;padding:12px;border:1px solid color-mix(in srgb,var(--blue) 24%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--blue) 6%,var(--surface))}.how-to-play b{color:var(--ink)}.how-to-play kbd,.tray-tip kbd{font:500 8px DM Mono;color:var(--ink);background:#f8f6f0;border:1px solid #ccc6ba;border-radius:3px;padding:1px 3px}.lobby-directions{color:var(--muted);font-size:9px}.lobby-directions .how-to-steps{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}.popup-directions{padding:17px;font-size:11px}.popup-directions .how-to-steps{gap:12px}.pieces-viewport{width:100%;min-width:0;overflow:hidden;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:none}.pieces-viewport::-webkit-scrollbar{display:none}.pieces-track{width:100%;display:flex;align-items:stretch;transform:translate(var(--piece-offset, 0%));transition:transform .28s cubic-bezier(.22,.72,.24,1);will-change:transform}.pieces{min-width:0;flex:0 0 100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,104px);row-gap:10px;column-gap:10px}.pieces:not(.active){pointer-events:none}.piece-card{height:104px;position:relative;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--surface) 80%,var(--paper));display:grid;grid-template-columns:minmax(0,1fr) 44px;grid-template-rows:minmax(0,1fr);overflow:hidden;box-shadow:var(--shadow-card)}.piece-card.no-actions{grid-template-columns:minmax(0,1fr)}.piece-card>button:first-child{min-width:0;min-height:0;overflow:hidden;padding:4px;border:0;background:none;width:100%;align-self:stretch;display:grid;place-items:center;line-height:0;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;caret-color:transparent}.piece-card.selected{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 18%,transparent),0 7px 15px #1c312c1a}.piece-card.placed{opacity:.38}.piece-card>button>svg{display:none}.piece-card.placed>button>svg{display:block;width:16px;color:var(--green)}.piece-card.placed .piece-preview{display:none}.piece-card .piece-preview{transform:scale(.72)}.piece-card .piece-preview[data-rows="4"]{position:relative;transform:scale(.64);transform-origin:center}.piece-actions{min-width:44px;min-height:0;display:grid;grid-template-rows:repeat(2,minmax(0,1fr));border-left:1px solid #d5cfc3}.piece-actions.single{grid-template-rows:minmax(0,1fr)}.piece-actions button{min-width:44px;min-height:0;padding:3px 2px;border:0;background:#e9e5dc;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--blue);transition:background .1s ease,box-shadow .1s ease,color .1s ease}.piece-actions button+button{border-top:1px solid #d5cfc3}.piece-actions button:hover:not(:disabled){background:#dedbd2}.piece-actions button:active:not(:disabled){background:var(--blue);box-shadow:inset 0 3px 6px #0000003d;color:#fff}.piece-actions button:disabled{color:var(--muted);cursor:default}.piece-actions svg{width:15px;height:15px;flex:0 0 auto;stroke-width:2.25}.piece-actions span{font:700 10px DM Mono;letter-spacing:.02em}.tray-tip{color:var(--muted);font-size:10px;line-height:1.45;margin:7px 3px 0}.piece-pagination{width:100%;min-width:0;height:auto;min-height:52px;position:relative;z-index:auto;margin-top:9px;padding:5px;border:1px solid var(--line);border-radius:9px;background:#e9e5dc;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr);align-items:center;justify-content:stretch;gap:7px;overflow:hidden}.piece-pagination>button{width:100%;min-width:0;min-height:40px;padding:0 clamp(5px,.8vw,10px);border:1px solid #cec8bb;border-radius:7px;background:#f8f6f0;display:flex;align-items:center;justify-content:center;gap:4px;overflow:hidden;color:var(--blue);font-size:9px;font-weight:750;text-decoration:none;transition:transform .14s ease,background .14s ease,opacity .14s ease}.piece-pagination>button:hover:not(:disabled){background:#fff;transform:translateY(-1px)}.piece-pagination>button:active:not(:disabled){transform:scale(.96)}.piece-pagination>button:disabled{opacity:.38;cursor:default}.piece-pagination>button svg{width:15px}.piece-page-status{min-width:0;display:grid;justify-items:center;gap:2px;color:var(--muted);text-transform:uppercase}.piece-page-status strong{color:var(--ink);font:600 9px DM Mono;letter-spacing:.06em;white-space:nowrap}.piece-page-status strong b{color:var(--blue);font-size:11px}.piece-page-status small{font:500 7px DM Mono;letter-spacing:.08em}.piece-page-status i{display:flex;gap:5px;margin-top:2px}.piece-page-status i button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:#b6b1a6;transition:width .18s ease,border-radius .18s ease,background .18s ease,transform .18s ease}.piece-page-status i button.active{width:20px;border-radius:999px;background:var(--blue);transform:scaleY(1.08)}.compact-score-strip{display:none;min-width:0;flex:1;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none}.compact-score-strip::-webkit-scrollbar{display:none}.compact-score-strip>span{min-width:0;padding:0 12px;border-left:1px solid var(--line);display:grid!important;gap:2px!important}.scoreboard header .compact-score-strip b{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.1}.scoreboard header .compact-score-strip .gave-up b{text-decoration:line-through;text-decoration-thickness:1.5px;opacity:.68}.compact-score-strip small{color:var(--muted)!important;font-size:9px!important;line-height:1.1}@media(prefers-reduced-motion:reduce){.pieces-track,.piece-pagination *,.piece-page-status i button{transition:none!important}}.drag-preview{position:fixed;z-index:50;pointer-events:none;transform:translate(-50%,-50%);filter:drop-shadow(0 8px 10px rgba(47,43,34,.2))}.drag-preview .piece-preview{filter:saturate(1.05);transform:none}.drag-preview .piece-preview i{opacity:.82;border-radius:5px;border:2px solid rgba(255,255,255,.72)}.drag-preview.snapped .piece-preview i{opacity:.92;box-shadow:inset 0 0 0 2px #20231f2e,0 0 0 2px #ffffffa6}.drag-preview.invalid .piece-preview i{background:#a5233d!important;opacity:.9;border-color:#641426;box-shadow:inset 0 0 0 2px #560c1d47,0 0 0 2px #ffffff9e}.scoreboard{border-radius:11px;overflow:hidden;margin-top:25px}.scoreboard.finish-glow-odd{animation:finish-scoreboard-glow-odd .7s ease-in-out 2}.scoreboard.finish-glow-even{animation:finish-scoreboard-glow-even .7s ease-in-out 2}.score-row.finish-glow,.match-table-row.finish-glow,.compact-score-strip>span.finish-glow{animation:finish-player-glow .7s ease-in-out 2}@keyframes finish-scoreboard-glow-odd{50%{border-color:var(--green);box-shadow:0 0 0 4px #427e5b24,0 16px 36px #2f2b221f}}@keyframes finish-scoreboard-glow-even{50%{border-color:var(--green);box-shadow:0 0 0 4px #427e5b24,0 16px 36px #2f2b221f}}@keyframes finish-player-glow{50%{background:#e3f0e6;box-shadow:inset 0 0 0 1px #427e5b47,0 0 14px #427e5b2e}}@media(pointer:coarse){.scoreboard.finish-glow-odd,.scoreboard.finish-glow-even{animation:none;border-color:var(--green)}.score-row.finish-glow,.match-table-row.finish-glow,.compact-score-strip>span.finish-glow{animation:none;box-shadow:none}}.scoreboard header{height:58px;padding:0 19px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line)}.scoreboard header span{display:flex;align-items:center;gap:9px;font-weight:800;font-size:13px}.scoreboard header b{font:inherit}.scoreboard header svg{width:17px;color:#a97717}.scoreboard header small{font:500 9px DM Mono;color:var(--blue);letter-spacing:.09em}.scoreboard-meta{margin-left:0}.mobile-timer{display:grid!important;grid-template-columns:auto;justify-items:end;gap:0!important;margin-left:auto;line-height:1}.scoreboard header .mobile-timer small{color:var(--muted);font-size:6px;letter-spacing:.1em}.mobile-timer time{color:var(--ink);font:500 16px DM Mono;letter-spacing:-.04em;white-space:nowrap}.scoreboard header .mobile-time-value{display:flex;align-items:center;gap:6px}.mobile-time-value>i{width:6px;height:6px;border-radius:50%;background:var(--green)}.mobile-room-code,.scoreboard-toggle{display:none}.scoreboard-body,.leaderboard-popup-body{overflow-x:hidden}.score-head,.score-row,.score-row-scroll{--score-gap: 7px;--score-rank-column: 22px;--score-avatar-column: 38px;--score-player-column: minmax(132px, 1fr);--score-total-column: minmax(72px, 88px);--score-wins-column: minmax(42px, 52px);--score-status-column: 180px}.score-head,.score-row{display:grid;grid-template-columns:var(--score-rank-column) var(--score-avatar-column) var(--score-player-column) var(--score-total-column) var(--score-wins-column) var(--score-status-column);gap:var(--score-gap);margin:0 14px}.score-head{color:var(--muted);font:500 9px DM Mono;letter-spacing:.08em;padding:13px 0 8px}.score-head.no-avatar,.score-row.no-avatar{grid-template-columns:var(--score-rank-column) var(--score-player-column) var(--score-total-column) var(--score-wins-column) var(--score-status-column)}.scoreboard-body .score-head,.scoreboard-body .score-row-scroll-shell{min-width:0;max-width:none;width:calc(100% - 28px);justify-content:start}.leaderboard-popup .score-head,.leaderboard-popup .score-row-scroll-shell{min-width:0;max-width:none;width:calc(100% - 38px);justify-content:start}.score-head>span,.score-row>time,.score-row>.score-wins{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-head>span:nth-child(1){grid-column:3}.score-head>span:nth-child(2){grid-column:4;text-align:right}.score-head>span:nth-child(3){grid-column:5;text-align:right}.score-head>span:nth-child(4){grid-column:6}.score-head.no-avatar>span:nth-child(1){grid-column:2}.score-head.no-avatar>span:nth-child(2){grid-column:3}.score-head.no-avatar>span:nth-child(3){grid-column:4}.score-head.no-avatar>span:nth-child(4){grid-column:5}.score-head span:last-child,.score-row .round-progress{padding-left:12px;border-left:1px solid var(--line)}.score-head{overflow:hidden}.score-row-scroll-shell{--scroll-fade-surface: var(--surface);--scroll-fade-width: 30px;position:relative;margin:0 14px}.score-row-scroll{width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-width:none}.score-row-scroll::-webkit-scrollbar,.match-table-scroll::-webkit-scrollbar{display:none}.score-row{width:520px;min-width:520px;align-items:center;min-height:67px;margin:0;border-bottom:1px solid #e4e0d7}.score-row>.rank{grid-column:1}.score-row>.avatar{grid-column:2}.score-row>.player-name{grid-column:3;min-width:0}.score-row>time{grid-column:4}.score-row>.score-wins{grid-column:5}.score-row>.round-progress{grid-column:6;min-width:0;overflow:visible}.score-row.no-avatar>.player-name{grid-column:2}.score-row.no-avatar>time{grid-column:3}.score-row.no-avatar>.score-wins{grid-column:4}.score-row.no-avatar>.round-progress{grid-column:5}.score-row>.rank,.score-row>.avatar,.score-row>.player-name{position:sticky;z-index:2;background:var(--surface)}.score-row.host>.rank,.score-row.host>.avatar,.score-row.host>.player-name{background:#f0ede4}.score-row>.rank{left:0}.score-row>.avatar{left:calc(var(--score-rank-column) + var(--score-gap))}.score-row>.player-name{left:calc(var(--score-rank-column) + var(--score-avatar-column) + var(--score-gap) + var(--score-gap))}.score-row.no-avatar>.player-name{left:calc(var(--score-rank-column) + var(--score-gap))}.score-head>span:first-child,.score-row>.player-name{box-shadow:1px 0 0 var(--line)}.score-row-scroll-shell:has(.score-row.host){--scroll-fade-surface: #f0ede4}.score-row-scroll-cue{position:absolute;z-index:3;top:0;bottom:0;width:var(--scroll-fade-width);pointer-events:none;opacity:0;transition:opacity .18s ease}.score-row-scroll-cue.visible{opacity:1}.score-row-scroll-cue.left{left:0;background:var(--scroll-fade-surface)}.score-row-scroll-cue.right{right:0;background:var(--scroll-fade-surface)}.score-row-scroll-cue:after{content:"";position:absolute;top:50%;width:8px;height:8px;border-top:2px solid var(--blue);border-right:2px solid var(--blue);opacity:.82}.score-row-scroll-cue.left:after{left:9px;transform:translateY(-50%) rotate(-135deg)}.score-row-scroll-cue.right:after{right:9px;transform:translateY(-50%) rotate(45deg)}.score-wins{color:var(--muted);font:700 13px DM Mono;text-align:right}.best-of-score .score-wins{color:var(--blue);font-size:17px}.score-head.best-of-score span:nth-child(3){color:var(--blue);font-weight:800}.score-row.host{background:#f0ede4;border-radius:7px}.rank{font:500 10px DM Mono;color:var(--muted);text-align:center}.avatar{position:relative;width:34px;height:34px;border-radius:50%;background:#dce0d9;display:grid;place-items:center;font-size:9px;font-weight:800;color:#385748}.player-name{font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-row.gave-up .player-name{text-decoration:line-through;text-decoration-thickness:1.5px;opacity:.68}.player-name small{display:flex;align-items:center;gap:3px;color:#9a6d18;font:500 8px DM Mono;margin-top:3px}.player-name svg{width:9px;height:9px}.score-row time{font:500 12px DM Mono;color:#535650;text-align:right}.round-progress{display:grid;justify-items:end;gap:4px}.round-progress time{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;color:var(--ink);font-size:13px}.round-progress small{min-width:0;max-width:none;overflow:visible;display:flex;align-items:center;justify-self:stretch;justify-content:flex-end;gap:5px;color:var(--muted);font:500 8px DM Mono;letter-spacing:.07em;white-space:nowrap}.round-progress small>span{min-width:0}.round-progress small i{width:6px;height:6px;border-radius:50%;background:#aaa99f}.round-progress small.solving{color:var(--blue)}.round-progress small.solving i{background:var(--blue);animation:status-pulse 1s ease-in-out infinite}.round-progress small.done{color:var(--green)}.round-progress small.done i{background:var(--green)}.round-progress small.offline{color:#9a6d18}.round-progress small.offline i{background:#b88426}@keyframes status-pulse{50%{opacity:.3;transform:scale(.72)}}.score-note{font-size:10px;color:var(--muted);text-align:center;padding:8px 12px 14px;margin:0}.leaderboard-popup-backdrop{position:fixed;inset:0;z-index:24;display:grid;place-items:center;padding:16px;background:#20231f94}.leaderboard-popup{width:min(600px,100%);max-height:min(720px,calc(100dvh - 32px));overflow:hidden;border-radius:16px;box-shadow:0 24px 70px #20231f52;display:flex;flex-direction:column}.leaderboard-popup>header{padding:24px 26px 20px;border-bottom:1px solid var(--line);text-align:center}.leaderboard-popup>header>span{display:flex;align-items:center;justify-content:center;gap:7px;color:#a97717}.leaderboard-popup>header svg{width:22px}.leaderboard-popup>header small{color:var(--blue);font:600 11px DM Mono;letter-spacing:.12em}.leaderboard-popup h2{margin:7px 0 0;font-size:28px}.leaderboard-popup-countdown{margin:10px 0 0;color:var(--muted);font:600 13px DM Mono}.leaderboard-popup-countdown b{display:inline-grid;min-width:28px;min-height:28px;margin-left:4px;border-radius:50%;place-items:center;background:var(--blue);color:#fff;font-size:15px}.leaderboard-popup-countdown.pending{font-size:11px}.intermission-footer{flex:none;padding:16px 26px 18px;border-top:1px solid var(--line);text-align:center}.intermission-countdown{max-width:520px;margin:0 auto 12px;text-align:left}.intermission-action{margin:0 auto;min-width:210px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.solo-intermission-actions{display:flex;justify-content:center;gap:10px}.solo-intermission-actions .intermission-action{min-width:0;flex:1;margin:0}.ready-toggle.intermission-action{min-height:50px;padding:13px 20px;font-size:14px}.intermission-action svg{width:17px}.intermission-ready-count{margin:9px 0 0;color:var(--muted);font:600 10px DM Mono;text-transform:uppercase;letter-spacing:.05em}.intermission-solutions{margin:18px;padding-top:16px;border-top:1px solid var(--line)}.intermission-solutions h3{margin:0 0 10px;font-size:13px}.intermission-solution-table{overflow:hidden;border:1px solid var(--line);border-radius:10px}.intermission-solution-head,.intermission-solution-row{min-height:42px;padding:0 12px;display:grid;grid-template-columns:minmax(0,1fr) 90px 130px;align-items:center;gap:8px}.intermission-solution-head{min-height:32px;background:color-mix(in srgb,var(--surface) 72%,var(--ink));color:var(--muted);font:600 9px DM Mono;text-transform:uppercase}.intermission-solution-row+.intermission-solution-row{border-top:1px solid var(--line)}.intermission-solution-row>span{min-width:0;font-size:11px;font-weight:700}.intermission-solution-row button{padding:0;border:0;background:transparent;color:var(--blue);font-size:10px;font-weight:800;text-decoration:underline;text-underline-offset:3px;display:inline-flex;align-items:center;gap:5px}.intermission-solution-row button svg{width:13px}.leaderboard-popup-body{min-height:0;overflow-y:auto}.scoreboard-body .score-table-shell{margin:10px 14px 0}.leaderboard-popup-body .score-table-shell{margin:16px 18px 0}.live-score-table .match-table{min-width:520px}.live-score-table .match-table-head{min-height:38px}.live-score-table .match-table-row{min-height:67px}.leaderboard-popup .live-score-table .match-table-row{min-height:72px}.live-score-table .match-table-row.host{background:#f0ede4}.live-score-table .match-table-row.host>.match-rank,.live-score-table .match-table-row.host>.match-player{background:#f0ede4}.live-score-table .match-table-row.gave-up .match-player{text-decoration:line-through;text-decoration-thickness:1.5px;opacity:.68}.live-score-table .match-player small{display:flex;align-items:center;gap:3px}.live-score-table .match-player small svg{width:9px;height:9px}.live-score-table .match-wins.best-of-score{color:var(--blue);font-size:15px;font-weight:700}.live-score-status{padding-left:12px;border-left:1px solid var(--line)}.live-score-status small{display:flex;align-items:center;justify-content:flex-end;gap:5px;color:var(--muted)}.live-score-status small i{width:6px;height:6px;border-radius:50%;background:#aaa99f}.live-score-status small.solving{color:var(--blue)}.live-score-status small.solving i{background:var(--blue);animation:status-pulse 1s ease-in-out infinite}.live-score-status small.done{color:var(--green)}.live-score-status small.done i{background:var(--green)}.live-score-status .solved-time{display:flex;align-items:center;justify-content:flex-end;gap:6px;color:var(--ink)}.live-score-status .solved-time i,.compact-score-strip .compact-solving i,.compact-score-strip .compact-solved i{flex:none;width:6px;height:6px;border-radius:50%}.live-score-status .solved-time i,.compact-score-strip .compact-solved i{background:var(--green)}.compact-score-strip small.compact-solving,.compact-score-strip small.compact-solved{display:flex;align-items:center;gap:5px}.compact-score-strip small.compact-solving{color:var(--blue)}.compact-score-strip .compact-solving i{background:var(--blue);animation:status-pulse 1s ease-in-out infinite}.compact-score-strip small.compact-solved{color:var(--green)}.live-score-status small.forfeited,.live-score-status small.lost{color:#8d2a3d}.live-score-status small.forfeited i,.live-score-status small.lost i{background:#8d2a3d}.live-score-status small.skipped{color:#9a6d18}.live-score-status small.skipped i{background:#b88426}.leaderboard-popup .score-head{font-size:10px;padding-top:16px;margin-right:24px}.leaderboard-popup .score-row{min-height:78px;margin-right:24px}.leaderboard-popup .score-head,.leaderboard-popup .score-row{min-width:0}.leaderboard-popup .score-head,.leaderboard-popup .score-row{--score-total-column: minmax(72px, 88px);--score-wins-column: minmax(42px, 52px);--score-status-column: 180px}.leaderboard-popup .rank{font-size:12px}.leaderboard-popup .avatar{width:40px;height:40px;font-size:11px}.leaderboard-popup .player-name{font-size:15px}.leaderboard-popup .player-name small{margin-top:5px;font-size:9px}.leaderboard-popup .round-progress time,.leaderboard-popup .score-row>time{font-size:14px}.leaderboard-popup .score-row>time,.leaderboard-popup .round-progress time{min-width:0;white-space:nowrap}.leaderboard-popup .round-progress small{min-width:0;max-width:100%;white-space:nowrap}.leaderboard-popup .score-head span:nth-child(2),.leaderboard-popup .score-row>time{padding-right:10px}.leaderboard-popup .score-head span:last-child,.leaderboard-popup .score-row .round-progress{padding-right:12px}.leaderboard-popup .score-note{font-size:11px;padding-top:12px}.floating-action{position:fixed;right:4vw;bottom:28px;width:352px;z-index:8}.game-over{position:fixed;inset:0;background:#20231fc7;z-index:20;display:grid;place-items:center}.game-over>.match-results{width:min(940px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:26px;border-radius:14px;background:var(--surface);border:1px solid var(--line);overflow:auto}.match-summary{display:flex;align-items:center;gap:20px;margin-bottom:20px}.match-summary>svg{width:54px;height:54px;flex:0 0 auto;color:#a97717}.match-summary span{display:block;color:var(--blue);font:500 9px DM Mono;letter-spacing:.17em}.match-summary h2{font-size:30px;margin:4px 0}.match-summary p{margin:0;color:var(--muted);font-size:12px}.score-table-shell{--scroll-fade-surface: var(--surface);--scroll-fade-width: 32px;--score-sticky-width: 176px;--score-table-head-height: 36px;--score-fixed-head-surface: #eeebe2;position:relative;min-width:0}.score-table-shell.live-score-table{--score-table-head-height: 38px}.score-table-shell:before{content:"";position:absolute;z-index:4;left:1px;top:1px;bottom:1px;width:calc(var(--score-sticky-width) - 1px);border-radius:8px 0 0 8px;background:linear-gradient(to bottom,var(--score-fixed-head-surface) 0 var(--score-table-head-height),var(--scroll-fade-surface) var(--score-table-head-height) 100%);pointer-events:none}.score-table-shell:after{content:"";position:absolute;z-index:6;left:var(--score-sticky-width);top:1px;bottom:1px;width:1px;background:var(--line);pointer-events:none}.score-table-scroll-cue{position:absolute;z-index:4;top:1px;bottom:1px;width:var(--scroll-fade-width);pointer-events:none;opacity:0;transition:opacity .18s ease}.score-table-scroll-cue.visible{opacity:1}.score-table-scroll-cue.left{left:var(--score-sticky-width);background:linear-gradient(90deg,var(--scroll-fade-surface) 18%,color-mix(in srgb,var(--scroll-fade-surface) 92%,transparent) 52%,transparent)}.score-table-scroll-cue.right{right:1px;background:linear-gradient(270deg,var(--scroll-fade-surface) 18%,color-mix(in srgb,var(--scroll-fade-surface) 92%,transparent) 52%,transparent)}.score-table-scroll-cue:after{content:"";position:absolute;top:50%;width:8px;height:8px;border-top:2px solid var(--blue);border-right:2px solid var(--blue);opacity:.82}.score-table-scroll-cue.left:after{left:9px;transform:translateY(-50%) rotate(-135deg)}.score-table-scroll-cue.right:after{right:9px;transform:translateY(-50%) rotate(45deg)}.match-table-scroll{overflow-x:auto;overscroll-behavior-x:none;overscroll-behavior-inline:none;scrollbar-width:none;border:1px solid var(--line);border-radius:9px}.match-table{min-width:760px}.match-table-head,.match-table-row{--table-pad: 12px;--table-rank: 28px;--table-gap: 6px;display:grid;gap:var(--table-gap);align-items:center;padding:0 var(--table-pad)}.match-table-head{min-height:36px;color:var(--muted);background:#eeebe2;font:500 8px DM Mono;letter-spacing:.08em}.match-table-head span:not(:nth-child(2)){text-align:right}.match-table-row{--table-row-surface: var(--surface);min-height:62px;border-top:1px solid var(--line);background:var(--table-row-surface)}.match-table-row.winner{--table-row-surface: #f5f1e5}.match-table-row.forfeited>span:not(.match-rank):not(.match-player){opacity:.64}.match-table-head>span:first-child,.match-table-row>.match-rank{position:sticky;left:var(--table-pad);z-index:5;background:var(--table-row-surface, var(--surface))}.match-table-head>span:nth-child(2),.match-table-row>.match-player{position:sticky;left:calc(var(--table-pad) + var(--table-rank) + var(--table-gap));z-index:5;background:var(--table-row-surface, var(--surface))}.match-table-head>span:first-child,.match-table-head>span:nth-child(2){background:#eeebe2}.match-table-row>.match-rank,.match-table-row>.match-player{align-self:stretch;align-content:center}.match-table-row>.match-rank{box-shadow:calc(-1 * var(--table-pad)) 0 0 var(--table-row-surface)}.match-table-row>.match-player{box-shadow:calc(-1 * var(--table-gap)) 0 0 var(--table-row-surface),var(--table-pad) 0 0 var(--table-row-surface)}.match-table-row.host{--table-row-surface: #f0ede4}.match-rank{color:var(--muted);font:500 10px DM Mono;text-align:center}.match-player{min-width:0;display:grid;gap:3px}.match-player b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.match-player small{min-height:10px;color:#9a6d18;font:500 7px DM Mono;letter-spacing:.06em}.match-game,.match-wins,.match-total{text-align:right;color:#535650;font:500 10px DM Mono;white-space:nowrap}.match-game{display:grid;grid-template-rows:max-content 1em;align-content:center;gap:2px}.match-game small{color:var(--green);font-size:6px;letter-spacing:.04em}.match-game.gave-up small{color:#8d2a3d}.match-total{color:var(--ink);font-size:11px;font-weight:500}.match-results footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;min-height:56px}.match-results footer .intermission-action{margin:0}.match-results footer .big{width:auto;min-width:210px}.match-results footer>small{color:var(--muted)}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:#f5e6e8;border:1px solid #c98a94;border-radius:8px;padding:12px 16px;color:#773744;font-size:12px;z-index:30;animation:toast-fade-out .2s ease-in 9.8s both}.toast button{background:none;border:0;margin-left:15px}.solo-result-history{display:grid;gap:.5rem;padding:1rem}.solo-result-row{display:grid;grid-template-columns:minmax(6rem,1fr) minmax(6rem,1fr) auto;align-items:center;gap:1rem;min-height:3rem;padding:.65rem .8rem;border:1px solid var(--line);border-radius:.7rem;background:var(--surface)}.solo-result-row.active{border-color:var(--accent);background:var(--surface-alt)}.solo-result-row span{color:var(--muted)}.solo-result-row time{font-variant-numeric:tabular-nums;font-weight:800}@media(min-width:1101px)and (min-aspect-ratio:4 / 3){.lobby-room .lobby-view{width:100%;max-width:none;grid-template-columns:minmax(0,1fr);gap:10px;padding:4px 0}.lobby-room .lobby-column{width:100%}.lobby-room .lobby-card{width:100%;padding:16px 24px 0}.lobby-room .lobby-card-body{display:grid;grid-template-columns:minmax(360px,1fr) minmax(560px,1.25fr);grid-template-areas:"intro settings" "invite settings" "players settings";gap:8px 16px}.lobby-room .lobby-intro{grid-area:intro;align-self:start}.lobby-room .lobby-card h1{margin:5px 0;font-size:clamp(34px,3vw,44px)}.lobby-room .lobby-sections{display:contents}.lobby-room .invite-section{grid-area:invite}.lobby-room .players-section{grid-area:players}.lobby-room .rally-setup{grid-area:settings}.lobby-room .lobby-ready-dock{padding:8px 12px 12px}.lobby-room .ready-countdown{margin:0 0 8px}.lobby-room .lobby-ready-dock>small{margin-bottom:7px}.lobby-room .lobby-art{display:none}.lobby-room .lobby-scoreboard{width:min(100%,920px);max-height:32dvh}}@media(max-width:1100px){.nav-actions>.nav-account{width:44px;height:44px;justify-content:center;padding:0}.nav-actions>.nav-account span{display:none}.game-layout{grid-template-columns:1fr}.scoreboard{position:relative;z-index:9;grid-row:1;height:44px;margin:0;overflow:visible;box-shadow:0 6px 16px #2f2b220f}.scoreboard header{height:100%;padding:0 11px;border-bottom:0}.scoreboard header>span:first-child{font-size:11px}.scoreboard header small{font-size:7px}.scoreboard-toggle{width:44px;height:42px;margin-right:-11px;padding:0;border:0;border-left:1px solid var(--line);border-radius:0 10px 10px 0;background:#f4f1e9;display:grid;place-items:center;align-self:center}.scoreboard-toggle svg{width:14px;color:var(--blue);transition:transform .16s}.scoreboard:not(.collapsed) .scoreboard-toggle svg{transform:rotate(180deg)}.scoreboard:not(.collapsed) .scoreboard-body{position:absolute;left:-1px;right:-1px;top:43px;max-height:min(46vh,420px);overflow-y:auto;overflow-x:hidden;background:var(--surface);border:1px solid var(--line);border-top:0;border-radius:0 0 11px 11px;box-shadow:0 16px 28px #2f2b2229}.scoreboard-body .score-head,.scoreboard-body .score-row-scroll-shell{--score-total-column: minmax(72px, 78px);--score-status-column: 180px;min-width:0;max-width:none}.scoreboard-body .score-row>time,.scoreboard-body .round-progress time,.scoreboard-body .round-progress small{min-width:0;max-width:100%;white-space:nowrap}.play-area{grid-template-columns:minmax(400px,min(580px,calc(100dvh - 165px))) minmax(300px,1fr)}.pieces{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,88px)}.piece-card{height:88px}.piece-actions svg{width:13px;height:13px}.piece-actions span{font-size:8px}.floating-action{right:4vw}.hero{grid-template-columns:1fr 420px;gap:4vw}.feature-row{gap:12px}.lobby-view{gap:3vw}.lobby-art{transform:scale(.8)}}@media(max-width:760px){.account-stats>div{grid-template-columns:repeat(2,minmax(0,1fr))}.account-history dl{grid-template-columns:repeat(3,minmax(0,1fr))}.history-solution-body{padding:16px}body.game-active{width:auto;height:auto;min-height:0;overflow:hidden}body.game-active #root{width:100%;height:100%;min-height:0;overflow:hidden}body.game-active .room-page{touch-action:none}.landing{--landing-nav-height: 58px;padding:0 max(20px,env(safe-area-inset-right,0px)) 0 max(20px,env(safe-area-inset-left,0px))}.landing:has(.entry-card form) .hero{padding-top:0}.landing:has(.entry-card form) .hero-copy{display:none}.landing:has(.entry-card form) .decor-crop{display:none}.online-pill{display:none}.hero{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto;align-content:center;gap:clamp(12px,3dvh,24px);padding:0}.hero-copy{text-align:center}.hero h1{font-size:clamp(38px,12vw,52px);margin:14px 0}.hero-copy>p{max-width:540px;margin:0 auto;font-size:14px;line-height:1.5}.eyebrow,.feature-row{justify-content:center}.feature-row{margin:16px auto 0;gap:8px}.entry-card{min-height:0;padding:clamp(20px,3.5dvh,25px)}.room-page{position:relative;width:100%;height:100dvh;min-height:0;overflow:hidden;padding:0 max(12px,env(safe-area-inset-right,0px)) 6px max(12px,env(safe-area-inset-left,0px))}.room-page>nav{height:50px}.room-page>nav>.logo,.game-room>nav>.room-code{display:none}.nav-actions{gap:5px}.nav-actions{margin-left:auto;position:relative;z-index:12}.nav-actions button{width:44px;height:44px;justify-content:center;padding:0}.nav-actions>.nav-sound,.nav-actions>.nav-theme,.nav-actions>.nav-directions,.nav-actions>.nav-leave{display:none}.nav-actions>.nav-pause,.nav-actions>.nav-restart{display:none}.nav-actions>.nav-account span{display:none}.nav-end-solo span{display:none}.mobile-nav-menu{display:block}.room-page .mobile-nav-menu>button{border:0;background:transparent}.nav-menu-popover{position:fixed;left:50%;right:auto;top:58px;width:min(320px,calc(100vw - 24px));padding:8px;border-radius:12px;display:flex;flex-direction:column;gap:2px;transform:translate(-50%)}.nav-menu-popover .mobile-menu-only{display:flex!important}.nav-menu-popover .menu-divider{display:block!important;height:1px;margin:4px 8px;background:var(--line)}.nav-menu-popover button{min-height:58px;padding:10px 12px}.nav-menu-popover button+button{margin-top:0}.game-room{position:relative}.game-room>nav{position:absolute;top:3px;right:12px;width:44px;height:44px;border:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;z-index:18}.game-room>nav:has(.nav-end-solo){width:93px}.game-room .game-layout{width:100%;height:calc(100% - 3px);margin-top:3px;gap:6px;grid-template-rows:44px minmax(0,1fr);align-items:stretch}.play-area{min-height:0;display:flex;flex-direction:column;overflow:hidden}.timer-wrap{display:none}.scoreboard{position:relative;left:auto;right:auto;top:auto;width:auto;margin-right:49px;z-index:16}.game-room .scoreboard{background:transparent;border-color:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.game-room:has(.nav-end-solo) .scoreboard{width:calc(100% - 98px);min-width:0;margin-right:98px}.game-room:has(.nav-end-solo) .scoreboard header>span:first-child,.game-room:has(.nav-end-solo) .mobile-room-code{display:none}.scoreboard header{height:100%;gap:6px;padding:0 6px}.scoreboard header>span:first-child{flex:0 0 18px;min-width:0;white-space:nowrap}.scoreboard header>span:first-child b{display:none}.scoreboard header>span:first-child svg{width:16px}.mobile-room-code{min-width:50px;height:38px;padding:0 3px;border:0;background:transparent;display:grid;place-items:center;align-content:center;color:var(--ink)}.mobile-room-code small{color:var(--muted)!important;font:500 7px DM Mono!important;letter-spacing:.08em!important}.mobile-room-code strong{font:500 11px DM Mono;letter-spacing:.08em}.mobile-room-code svg{position:absolute;width:10px;margin-left:48px;color:var(--green)}.mobile-timer{display:grid!important;grid-template-columns:auto;justify-items:end;gap:0!important;margin-left:auto;line-height:1}.mobile-timer small{color:var(--muted)!important;font-size:7px!important;letter-spacing:.08em!important}.mobile-timer time{color:var(--ink);font:500 16px DM Mono;letter-spacing:-.04em;white-space:nowrap}.scoreboard-meta{margin-left:0}.scoreboard-toggle{width:48px;height:42px;margin-right:-6px;border-width:0 0 0 1px;border-radius:0 10px 10px 0;align-self:center}.scoreboard header .scoreboard-meta>small{font-size:0;letter-spacing:0}.scoreboard header .scoreboard-meta>small:before{content:attr(data-round);font-size:7px;letter-spacing:.04em}.scoreboard:not(.collapsed) .scoreboard-body,.scoreboard .scoreboard-body[data-fade-state=closed]{position:fixed;left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));top:46px;width:auto;min-width:0;max-height:min(56vh,420px);box-sizing:border-box}.scoreboard-body .score-head,.scoreboard-body .score-row-scroll-shell{--score-gap: 5px;--score-rank-column: 18px;--score-avatar-column: 34px;--score-total-column: minmax(62px, 72px);--score-wins-column: minmax(34px, 42px);--score-status-column: 180px;min-width:0;max-width:none;gap:var(--score-gap);margin-left:8px;margin-right:18px}.scoreboard-body .score-head span:last-child,.scoreboard-body .score-row .round-progress{min-width:0;padding-left:7px;padding-right:12px}.scoreboard-body .score-head span:nth-child(2),.scoreboard-body .score-row>time{padding-right:10px}.scoreboard-body .score-row>time,.scoreboard-body .round-progress time,.scoreboard-body .round-progress small{min-width:0;max-width:100%;white-space:nowrap}.board-shell{flex:0 0 auto;width:min(calc(100% - 20px),390px);margin:0 auto;padding:16px 0 0 8px}.signal-axis.columns{left:14px;right:6px;top:1px}.signal-axis.rows{left:-11px;top:22px;width:16px}.signal-axis.rows span{width:16px;height:16px}.signal-axis.rows svg{width:12px;height:12px}.signal-axis.columns span{width:12px;height:12px}.countdown,.round-banner{inset:16px 0 0 8px}.tray{width:100%;min-height:0;flex:1 1 auto;margin:4px auto 0;padding:5px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.tray header{min-height:32px;margin:0 3px 6px}.tray header button{min-width:44px;min-height:32px;padding:0 5px}.tray-tip{display:none}.directions-backdrop{padding:12px}.directions-popup{max-height:calc(100dvh - 24px)}.directions-popup>header{min-height:54px;padding:0 12px}.popup-directions{padding:14px}.solo-pause-backdrop{padding:12px}.solo-pause-popup{padding:25px 20px}.restart-vote-backdrop{padding:12px}.restart-vote-popup{padding:25px 20px}.leave-confirm-backdrop{padding:12px}.leave-confirm-popup,.host-left-popup,.solo-transition-popup,.end-infinite-popup{padding:25px 20px}.solo-transition-actions,.end-infinite-actions{grid-template-columns:1fr}.leaderboard-popup-backdrop{padding:12px}.leaderboard-popup{max-height:calc(100dvh - 24px)}.leaderboard-popup>header{padding:15px 14px 12px}.intermission-footer{padding:12px 14px 14px}.leaderboard-popup h2{font-size:18px}.intermission-solution-head,.intermission-solution-row{grid-template-columns:minmax(0,1fr) 70px 104px;padding:0 9px}.pieces{min-height:0;height:100%;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));row-gap:8px;column-gap:8px}.pieces-viewport,.pieces-track{min-height:0;height:100%}.compact-tray .pieces{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}.piece-card{min-height:0;height:auto;border-radius:9px}.piece-card .piece-preview{--preview-cell: 12px;--preview-gap: 1px;transform:none}.piece-card .piece-preview[data-rows="3"]{--preview-cell: 11px}.piece-card .piece-preview[data-rows="4"]{--preview-cell: 9px;top:0;transform:none}.piece-actions button{gap:2px;padding:3px 2px}.piece-actions svg{width:15px;height:15px;flex:0 0 auto;stroke-width:2.25}.piece-actions span{font-size:9px;font-weight:700;letter-spacing:.01em}.piece-pagination{min-height:48px;margin-top:6px;grid-template-columns:64px 1fr 64px;gap:4px}.piece-pagination>button{min-width:0!important;min-height:38px!important;padding:0 5px!important;text-decoration:none!important}.piece-pagination>button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.piece-page-status strong{font-size:8px}.piece-page-status small{font-size:6px}.lobby-room{padding-bottom:6px}.lobby-room .lobby-view{height:calc(100dvh - 50px);display:grid;grid-template-columns:1fr;place-items:center;padding:10px 0}.lobby-column{width:min(100%,560px);max-height:100%;background:transparent;box-shadow:none}.lobby-card{width:100%;padding:clamp(18px,3dvh,24px) clamp(18px,3dvh,24px) 0;overflow:hidden}.lobby-card h1{font-size:clamp(36px,11vw,44px);margin:12px 0}.lobby-intro>p{margin:0;line-height:1.5}.invite-link{margin-top:12px;min-height:48px}.rally-setup{padding:11px}.ruleset-options,.format-options{grid-template-columns:1fr}.lobby-ready-dock>small{margin-bottom:8px}.lobby-art{display:none}.lobby-scoreboard{width:100%}.lobby-scoreboard>header{min-height:52px;padding:0 10px;border-bottom:0}.floating-action{width:calc(100% - 24px);left:12px;right:12px}.countdown,.round-banner{inset:16px 0 0 8px;overflow:hidden;padding:12px;text-align:center}.countdown strong{font-size:78px}.round-banner strong{max-width:100%;margin:10px 0;font-size:clamp(16px,5.5vw,20px)}.round-banner span{max-width:100%;font-size:clamp(13px,4.5vw,18px);line-height:1.25;overflow-wrap:anywhere}.game-over>.match-results{width:calc(100% - 16px);max-height:calc(100dvh - 16px);padding:14px}.match-summary{gap:12px;margin-bottom:12px}.match-summary>svg{width:38px;height:38px}.match-summary h2{font-size:21px}.match-table-head,.match-table-row{--table-pad: 9px}.match-results footer{min-height:52px}.match-results footer{flex-wrap:wrap}.match-results footer .intermission-action{width:100%}.match-results footer .big{width:100%;margin-top:10px}}@media(max-height:700px){.landing{--landing-nav-height: 50px}.landing .logo-mark{width:31px;height:31px}.landing .logo{font-size:15px}.hero{gap:3vw}.hero h1{font-size:clamp(34px,7.5vw,58px);margin:10px 0}.hero-copy{padding-bottom:0}.hero-copy>p{font-size:13px;line-height:1.4}.feature-row{margin-top:12px}.entry-card{min-height:0;padding:20px}.entry-card>p,.entry-card form>p{margin-bottom:14px}.entry-card h2{font-size:23px}.back{padding-bottom:9px}form h2{margin-bottom:12px!important}label{margin:9px 0 5px}input{padding:10px 12px;margin-top:5px}.name-input-row{margin-top:5px}.name-randomize{min-height:43px}.room-hint{margin-top:10px!important;padding:9px}.big{padding:12px 16px;margin-top:8px}.lobby-room>nav{height:52px}.lobby-view{height:calc(100dvh - 68px)}.lobby-card{padding:20px 20px 0}.lobby-card h1{font-size:clamp(32px,7vw,42px);margin:8px 0}.lobby-card>p{font-size:13px;line-height:1.35}.invite-link{min-height:43px;margin-top:8px;padding:6px 9px}.player-chips{margin:10px 0}.player-chips span{padding-top:5px;padding-bottom:5px}.lobby-card .big{padding:11px 16px}.lobby-card>small{margin-top:8px}.lobby-art{height:min(320px,68dvh)}}@media(max-width:760px)and (max-height:700px){.landing .online-pill{display:none}.landing .hero-copy>p,.landing .feature-row{display:none}.landing .hero{gap:14px}.landing .entry-card{padding:18px}.lobby-room>nav{height:50px}.lobby-room .lobby-view{height:calc(100dvh - 50px);padding:6px 0}.lobby-card h1{font-size:34px}}@media(max-width:760px)and (max-height:759px){.game-room .board-shell{width:min(calc(100% - 20px),300px)}}@media(max-width:760px)and (orientation:portrait){.large-grid-room .play-area:has(.piece-pagination) .board-shell{width:min(calc(100% - 74px),336px)}}@media(max-width:760px)and (max-height:759px)and (orientation:portrait){.large-grid-room .play-area:has(.piece-pagination) .board-shell{width:min(calc(100% - 86px),234px)}}@media(max-width:360px)and (orientation:portrait){.game-room .piece-card{grid-template-columns:minmax(0,1fr) 38px}.game-room .piece-card.no-actions{grid-template-columns:minmax(0,1fr)}.game-room .piece-actions,.game-room .piece-actions button{min-width:38px}}@media(min-width:761px)and (max-width:1000px)and (max-height:700px){.hero{grid-template-columns:minmax(0,1fr) minmax(320px,380px)}.lobby-view{grid-template-columns:minmax(360px,1fr) minmax(180px,.7fr)}}@media(max-width:760px)and (min-height:760px){.board-shell{width:min(calc(100% - 20px),390px)}.piece-card{min-height:0;height:auto}.piece-actions svg{width:18px;height:18px}.piece-actions span{font-size:10px}}@media(max-width:760px)and (min-height:900px){.piece-card{min-height:0;height:auto}.piece-actions svg{width:19px;height:19px}.piece-actions span{font-size:11px}}@media(min-width:761px)and (max-width:1100px)and (orientation:portrait)and (min-height:800px){.lobby-room .lobby-view{align-items:start;padding-top:16px}.lobby-room .lobby-column{align-self:start}body.game-active{width:auto;height:auto;min-height:0;overflow:hidden}body.game-active #root{width:100%;height:100%;min-height:0;overflow:hidden}body.game-active .room-page{touch-action:none}.game-room{height:100%;overflow:hidden;padding:0 16px 10px}.game-room .game-layout{width:100%;height:calc(100% - 78px);margin-top:10px;gap:8px;grid-template-rows:44px minmax(0,1fr);align-items:stretch}.game-room .play-area{min-height:0;display:flex;flex-direction:column;align-items:stretch;overflow:hidden}.game-room .board-shell{flex:0 0 auto;width:min(calc(100% - 48px),calc(100dvh - 495px),600px);margin:0 auto;padding-top:20px}.game-room .signal-axis.columns{top:1px}.game-room .signal-axis.rows{top:29px}.game-room .countdown,.game-room .round-banner{inset:20px 0 0 25px}.game-room .tray{width:min(100%,940px);min-height:0;flex:1 1 auto;margin:8px auto 0;padding:8px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.game-room .tray header{min-height:32px;margin-bottom:6px}.game-room .tray-tip{display:none}.game-room .pieces-viewport,.game-room .pieces-track{min-height:0;height:100%}.game-room .pieces{min-height:0;height:100%;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:8px}.game-room .compact-tray .pieces{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}.game-room .piece-card{min-height:0;height:auto}.game-room .piece-card .piece-preview{--preview-cell: 13px;--preview-gap: 2px;transform:none}.game-room .piece-card .piece-preview[data-rows="4"]{--preview-cell: 11px;transform:none}.game-room .piece-pagination{min-height:48px;margin-top:6px}}@media(min-width:1101px){.game-room{padding:0 clamp(12px,1.5vw,24px) 8px}.game-room>nav{height:68px}.game-layout{width:100%;max-width:none;margin:6px auto 0}.game-room .game-layout{height:calc(100% - 72px);grid-template-columns:minmax(0,1fr);grid-template-rows:58px minmax(0,1fr);gap:10px}.game-room .scoreboard{grid-row:1;height:58px;max-height:none;margin:0;overflow:hidden}.game-room .scoreboard header{height:56px;padding:0 12px;border-bottom:0}.game-room .scoreboard header>span:first-child{flex:0 0 auto;white-space:nowrap}.game-room .scoreboard-body,.game-room .scoreboard-toggle{display:none}.game-room .compact-score-strip{display:flex}.game-room .mobile-timer{flex:0 0 auto;margin-left:0}.game-room .scoreboard-meta{flex:0 0 auto}.game-room .play-area{grid-row:2;min-height:0;grid-template-columns:minmax(0,1fr) clamp(470px,38vw,620px);align-items:start;gap:clamp(14px,1.5vw,24px)}.game-room .board-shell{min-width:0;width:min(calc(100% - 24px),calc(100dvh - 148px));max-height:100%;margin:0 auto}.game-room .tray{min-width:0;height:100%;max-height:100%;margin:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden}.tray{padding:10px}.pieces{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(98px,1fr))}.piece-card{height:auto}.game-room .pieces{height:100%;min-height:0;grid-template-columns:repeat(3,minmax(0,1fr))}.game-room .pieces-viewport,.game-room .pieces-track{height:100%;min-height:0}.game-room .profile-6 .pieces,.game-room .profile-7 .pieces,.game-room .profile-8 .pieces,.game-room .profile-9 .pieces{grid-template-rows:repeat(3,minmax(0,1fr))}.game-room .piece-card{height:auto;min-height:0}.game-room .tray-tip{margin-bottom:0}.piece-card .piece-preview{--preview-cell: clamp(14px, 2dvh, 19px);--preview-gap: 2px;transform:none}.piece-card .piece-preview[data-rows="4"]{--preview-cell: clamp(12px, 1.7dvh, 17px);transform:none}.piece-actions button{gap:3px}.piece-actions svg{width:18px;height:18px}.piece-actions span{font-size:11px}.scoreboard header{height:52px;padding:0 12px}.scoreboard header span{gap:6px;font-size:11px}.scoreboard header small{font-size:7px}.score-head,.score-row,.score-row-scroll-shell{--score-gap: 4px;--score-rank-column: 17px;--score-avatar-column: 29px;--score-total-column: minmax(62px, 72px);--score-wins-column: minmax(34px, 42px);--score-status-column: 180px;gap:var(--score-gap);margin-left:8px;margin-right:8px}.score-row{margin:0}.score-head{padding-top:10px}.score-row{min-height:58px}.score-row>time{padding-right:4px}.avatar{width:28px;height:28px}.player-name{font-size:10px}.player-name small{font-size:6px}.score-row time{font-size:10px}.round-progress time{font-size:11px}.round-progress small{font-size:6px}.score-note{font-size:8px;padding-bottom:10px}}@media(orientation:landscape)and (max-width:1100px)and (max-height:820px){body.game-active{width:auto;height:auto;min-height:0;overflow:hidden}body.game-active #root{width:100%;height:100%;min-height:0;overflow:hidden}.game-room{--landscape-safe-bottom: env(safe-area-inset-bottom, 0px);height:100%;overflow:hidden;padding:0 max(8px,env(safe-area-inset-right,0px)) var(--landscape-safe-bottom) max(8px,env(safe-area-inset-left,0px))}.game-room>nav{position:absolute;top:3px;right:max(8px,env(safe-area-inset-right,0px));width:44px;height:44px;border:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;z-index:18}.game-room>nav:has(.nav-end-solo){width:93px}.game-room>nav>.logo,.game-room>nav>.room-code{display:none}.game-room .nav-actions{margin-left:auto;position:relative;z-index:12}.game-room .nav-actions>.nav-sound,.game-room .nav-actions>.nav-theme,.game-room .nav-actions>.nav-directions,.game-room .nav-actions>.nav-leave,.game-room .nav-actions>.nav-pause,.game-room .nav-actions>.nav-restart{display:none}.game-room .mobile-nav-menu{display:block}.game-room .nav-actions button{width:44px;height:44px;justify-content:center;padding:0}.game-room .nav-end-solo span{display:none}.game-room .nav-menu-popover{position:fixed;left:50%;right:auto;top:48px;width:min(320px,calc(100vw - 24px));max-height:calc(100dvh - 56px);overflow-y:auto;padding:8px;border-radius:12px;display:flex;flex-direction:column;gap:2px;transform:translate(-50%)}.game-room .nav-menu-popover .mobile-menu-only{display:flex!important}.game-room .nav-menu-popover .menu-divider{display:block!important;height:1px;margin:4px 8px;background:var(--line)}.game-room .game-layout{width:100%;height:calc(100% - 3px);margin-top:3px;gap:6px;grid-template-columns:minmax(0,1fr);grid-template-rows:44px minmax(0,1fr);align-items:stretch}.game-room .scoreboard{position:relative;left:auto;right:auto;top:auto;width:auto;height:44px;margin:0 49px 0 0;z-index:16}.game-room .scoreboard{background:transparent;border-color:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.game-room:has(.nav-end-solo) .scoreboard{width:calc(100% - 98px);min-width:0;margin-right:98px}.game-room:has(.nav-end-solo) .scoreboard header>span:first-child,.game-room:has(.nav-end-solo) .mobile-room-code{display:none}.game-room .scoreboard header{height:100%;gap:6px;padding:0 6px}.game-room .scoreboard header>span:first-child{flex:0 0 18px;min-width:0;white-space:nowrap}.game-room .scoreboard header>span:first-child b{display:none}.game-room .mobile-room-code{min-width:50px;height:38px;padding:0 3px;border:0;background:transparent;display:grid;place-items:center;align-content:center;color:var(--ink)}.game-room .mobile-room-code small{color:var(--muted)!important;font:500 7px DM Mono!important;letter-spacing:.08em!important}.game-room .mobile-room-code strong{font:500 11px DM Mono;letter-spacing:.08em}.game-room .scoreboard-toggle{width:48px;height:42px;margin-right:-6px;border-width:0 0 0 1px;border-radius:0 10px 10px 0}.game-room .play-area{min-width:0;min-height:0;display:grid;grid-template-columns:minmax(220px,min(42vw,320px)) minmax(0,1fr);gap:8px;align-items:stretch;overflow:hidden}.game-room .board-shell{min-width:0;width:auto;max-width:none;margin:0;padding:16px 0 0 20px;align-self:start;justify-self:stretch}.game-room .signal-axis.columns{left:28px;right:7px;top:0}.game-room .signal-axis.rows{left:0;top:24px;bottom:7px;width:17px}.game-room .countdown,.game-room .round-banner{inset:16px 0 0 20px}.game-room .tray{min-width:0;width:100%;height:100%;min-height:0;margin:0;padding:5px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.game-room .tray header{min-height:30px;margin:0 3px 5px}.game-room .tray-tip{display:none}.game-room .pieces-viewport,.game-room .pieces-track{min-height:0;height:100%}.game-room .pieces{min-height:0;height:100%;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:5px}.game-room .compact-tray .pieces{grid-template-rows:repeat(3,minmax(0,1fr))}.game-room .piece-card{min-height:0;height:auto;grid-template-columns:minmax(0,1fr) 38px;border-radius:7px}.game-room .piece-card .piece-preview{--preview-cell: 9px;--preview-gap: 1px;transform:none}.game-room .piece-card .piece-preview[data-rows="4"]{--preview-cell: 7px;transform:none}.game-room .piece-actions{min-width:38px}.game-room .piece-actions button{min-width:38px;gap:1px;padding:2px 1px}.game-room .piece-actions svg{width:13px;height:13px}.game-room .piece-actions span{font-size:8px}.game-room .piece-pagination{min-height:42px;margin-top:4px;padding:3px}.game-room .piece-pagination>button{min-height:34px}}@media(min-width:761px)and (min-height:700px)and (max-width:1100px)and (max-height:820px)and (orientation:landscape)and (max-aspect-ratio:4 / 3){.game-room .play-area{align-items:center}.game-room .board-shell{align-self:center}.game-room .tray{height:min(520px,calc(100% - 32px));align-self:center}.game-room .piece-card .piece-preview{--preview-cell: clamp(18px, 3dvh, 24px);--preview-gap: 2px}.game-room .piece-card .piece-preview[data-rows="4"]{--preview-cell: clamp(16px, 2.5dvh, 20px)}}@media(min-aspect-ratio:4 / 3)and (max-width:1100px)and (max-height:700px){.landing{--landing-nav-height: 44px;padding:0 max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px))}.landing nav{height:var(--landing-nav-height)}.landing .hero-copy,.landing .online-pill,.landing .decor-crop{display:none}.landing .hero{width:min(460px,100%);height:calc(100% - var(--landing-nav-height));grid-template-columns:minmax(0,1fr);align-content:center;gap:0;padding:8px 0}.landing .entry-card{width:100%;max-height:100%;min-height:0;padding:16px 20px;overflow-y:auto}.landing .entry-card h2{font-size:21px}.landing .entry-card>p,.landing .entry-card form>p{margin-bottom:10px;font-size:12px;line-height:1.4}.landing .big{min-height:42px;padding:10px 14px;margin-top:6px}.landing:has(.entry-card form) .entry-card{padding-top:12px;padding-bottom:12px}.landing:has(.entry-card form) .back{padding-bottom:3px}.landing:has(.entry-card form) form h2{margin-bottom:6px!important}.landing:has(.entry-card form) label{margin:5px 0 3px}.landing:has(.entry-card form) input{padding-top:8px;padding-bottom:8px;margin-top:3px}.landing:has(.entry-card form) .name-input-row{margin-top:3px}.landing:has(.entry-card form) .name-randomize{min-height:40px}.landing:has(.entry-card form) .room-hint{display:none}}@media(max-width:430px){.name-randomize{width:50px;padding:0}.name-randomize span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.logo.compact>span:last-child{display:none}.room-code button{font-size:14px}.hero h1{font-size:48px}.feature-row span{font-size:10px}.leaderboard-popup .score-head,.leaderboard-popup .score-row,.leaderboard-popup .score-row-scroll-shell{--score-gap: 5px;--score-rank-column: 18px;--score-avatar-column: 30px;--score-total-column: minmax(62px, 72px);--score-wins-column: minmax(34px, 42px);--score-status-column: 180px;gap:var(--score-gap);margin-left:8px;margin-right:18px}.leaderboard-popup .score-row{margin:0}.leaderboard-popup .score-head span:last-child,.leaderboard-popup .score-row .round-progress{min-width:0;padding-left:7px}.board{gap:3px;padding:5px}.board button{border-radius:3px}.piece-preview{transform:scale(.85)}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}:root[data-theme=dark] .landing nav,:root[data-theme=dark] .room-page>nav{background:#171b1af5}:root[data-theme=dark] .online-pill,:root[data-theme=dark] .secondary,:root[data-theme=dark] .name-randomize,:root[data-theme=dark] .room-hint,:root[data-theme=dark] .lobby-section,:root[data-theme=dark] .rally-setup,:root[data-theme=dark] .player-chips span,:root[data-theme=dark] .ready-toggle,:root[data-theme=dark] .waiting,:root[data-theme=dark] .match-table-head{background:#2a302e}:root[data-theme=dark] .score-table-shell{--score-fixed-head-surface: #2a302e}:root[data-theme=dark] .lobby-room .rally-setup{background:transparent}:root[data-theme=dark] input,:root[data-theme=dark] .invite-link,:root[data-theme=dark] .host-selection,:root[data-theme=dark] .ruleset-options>button,:root[data-theme=dark] .format-options>button,:root[data-theme=dark] .size-options>button,:root[data-theme=dark] .round-options button.selected,:root[data-theme=dark] .scoreboard-toggle,:root[data-theme=dark] .piece-pagination>button{background:#303633}:root[data-theme=dark] .secondary:hover,:root[data-theme=dark] .name-randomize:hover,:root[data-theme=dark] .invite-link:hover,:root[data-theme=dark] .ruleset-options>button:hover:not(:disabled),:root[data-theme=dark] .format-options>button:hover:not(:disabled),:root[data-theme=dark] .size-options>button:hover:not(:disabled),:root[data-theme=dark] .round-options button:hover:not(:disabled),:root[data-theme=dark] .piece-pagination>button:hover:not(:disabled){background:#39413e}:root[data-theme=dark] .round-options,:root[data-theme=dark] .piece-pagination,:root[data-theme=dark] .piece-actions button{background:#2c3230}:root[data-theme=dark] .size-options-shell{--scroll-fade-surface: #2a302e}:root[data-theme=dark] .piece-actions button:hover:not(:disabled){background:#39413e}:root[data-theme=dark] .piece-actions button:active:not(:disabled){background:var(--blue);color:#fff}:root[data-theme=dark] .tray header .give-up{background:#4a2f35;border-color:#8d5964;color:#f8d9df}:root[data-theme=dark] .tray header .give-up:hover:not(:disabled){background:#593940}:root[data-theme=dark] .tray header .give-up:disabled{background:#2b302e;border-color:#4b5450;color:#b0b7b2}:root[data-theme=dark] .piece-card{background:#272d2b}:root[data-theme=dark] .board{background:#353c39;border-color:#4a534f}:root[data-theme=dark] .board button{background:#252b29;border-color:#3c4441}:root[data-theme=dark] .board button:hover{background:#303735}:root[data-theme=dark] .board button[data-blocker],:root[data-theme=dark] .board button[data-blocker]:hover{background:#59625e;border-color:#707a75;color:#fffdf5}:root[data-theme=dark] .board button.filled,:root[data-theme=dark] .board button.filled:hover{background:var(--piece);border-color:#ecebe533}:root[data-theme=dark] .drag-preview.snapped .piece-preview i{box-shadow:inset 0 0 0 2px #00000047,0 0 0 2px #7894ff61}:root[data-theme=dark] .drag-preview.invalid .piece-preview i{box-shadow:inset 0 0 0 2px #560c1d6b,0 0 0 2px #f8d9df42}:root[data-theme=dark] .countdown,:root[data-theme=dark] .round-banner{background:#222826f5}:root[data-theme=dark] .score-row.host{background:#2a302e}:root[data-theme=dark] .score-row.host>.rank,:root[data-theme=dark] .score-row.host>.avatar,:root[data-theme=dark] .score-row.host>.player-name{background:#2a302e}:root[data-theme=dark] .score-row-scroll-shell:has(.score-row.host){--scroll-fade-surface: #2a302e}:root[data-theme=dark] .live-score-table .match-table-row.host{background:#2a302e}:root[data-theme=dark] .live-score-table .match-table-row.host{--table-row-surface: #2a302e}:root[data-theme=dark] .live-score-table .match-table-row.host>.match-rank,:root[data-theme=dark] .live-score-table .match-table-row.host>.match-player{background:#2a302e}:root[data-theme=dark] .previous-score-row.winner,:root[data-theme=dark] .match-table-row.winner{background:#343526}:root[data-theme=dark] .match-table-row.winner{--table-row-surface: #343526}:root[data-theme=dark] .match-table-head>span:first-child,:root[data-theme=dark] .match-table-head>span:nth-child(2){background:#2a302e}:root[data-theme=dark] .match-table-row.winner>.match-rank,:root[data-theme=dark] .match-table-row.winner>.match-player{background:#343526}:root[data-theme=dark] .ready-countdown{background:#272e3c;border-color:#4e5f83}:root[data-theme=dark] .ready-countdown p,:root[data-theme=dark] .feature-row,:root[data-theme=dark] .how-to-play,:root[data-theme=dark] .score-row time,:root[data-theme=dark] .match-game,:root[data-theme=dark] .match-wins{color:#bdc3bf}:root[data-theme=dark] .how-to-play kbd{background:#303633;border-color:#59615d}:root[data-theme=dark] .player-chips b,:root[data-theme=dark] .avatar{background:#35413c;color:#b8d1c4}:root[data-theme=dark] .game-over{background:#050807d1}:root[data-theme=dark] .toast{background:#462d33;border-color:#8d5964;color:#f1cbd2}
