#ui{position:fixed;inset:0;pointer-events:none;z-index:2;font-family:var(--font-family);color:var(--color-text);line-height:1.4;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#ui>*{pointer-events:auto}#ui>.toasts,#ui>.connection{pointer-events:none}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.glass{background:var(--color-glass);border:1px solid var(--color-glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur))}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:40px;padding:0 var(--space-lg);border:1px solid transparent;border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;cursor:pointer;user-select:none;transition:background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,transform var(--motion-fast) ease,opacity var(--motion-fast) ease}.btn:hover{background:var(--color-surface-hover)}.btn:active{transform:translateY(1px)}.btn:disabled{cursor:default;opacity:.55;transform:none}.btn[aria-busy=true]:disabled{cursor:progress;opacity:1}.btn:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.btn-primary{background:var(--color-primary);color:var(--color-primary-ink);box-shadow:0 3px 0 var(--color-primary-edge);text-shadow:0 1px 0 rgba(0,0,0,.18)}.btn-primary:hover{background:var(--color-primary);filter:brightness(1.08)}.btn-primary:active{transform:translateY(3px);box-shadow:0 0 0 var(--color-primary-edge)}.btn-primary:disabled{filter:none;transform:none;box-shadow:0 3px 0 var(--color-primary-edge)}.btn-ghost{background:transparent;border-color:var(--color-glass-border)}.btn-ghost:hover{background:var(--color-surface-hover)}.btn-lg{min-height:52px;padding:0 var(--space-xl);font-size:var(--font-size-md)}.pill{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 10px;border:1px solid var(--color-glass-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-dim);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;white-space:nowrap}.pill-accent{border-color:var(--color-accent-edge);background:var(--color-accent);color:var(--color-accent-ink);font-weight:var(--font-weight-bold)}.eyebrow{color:var(--color-accent);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.12em;text-transform:uppercase}.home{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;align-items:center;padding:76px 16px 40px;background:radial-gradient(ellipse 60% 55% at 50% 42%,#08050357,#08050300 70%)}.home-top{position:absolute;top:16px;left:20px;right:20px;display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.online{display:inline-flex;align-items:center;gap:var(--space-sm);min-height:36px;padding:0 14px;border-radius:var(--radius-pill);color:var(--color-text-dim);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums;white-space:nowrap}.online.is-empty{visibility:hidden}.online .dot{width:8px;height:8px;border-radius:50%;background:var(--color-success);box-shadow:0 0 0 3px #46d37a33}.btn.glass{min-height:36px;border-radius:var(--radius-pill);background:var(--color-glass)}.btn.glass:hover{background:#181e2cd1}.home-col{width:min(640px,100%);margin:auto 0;display:flex;flex-direction:column;align-items:center;gap:14px;animation:home-in var(--motion-slow) ease-out}@keyframes home-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.logo{margin:0;line-height:0}.logo>svg{display:block;width:min(420px,86vw,52vh);height:auto;filter:drop-shadow(0 6px 0 rgba(0,0,0,.25))}.tagline{margin:-4px 0 4px;color:var(--color-text-dim);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);text-wrap:balance}.field{display:flex;flex-direction:column;gap:6px;width:100%}.field-label{padding-left:2px;color:var(--color-text-dim);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.08em;text-transform:uppercase;text-shadow:0 1px 2px rgba(0,0,0,.6)}.field input{height:52px;padding:0 16px;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);background:#00000073;color:var(--color-text);font:inherit;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase;-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}.field input::placeholder{color:var(--color-text-faint);font-weight:var(--font-weight-medium);letter-spacing:0;text-transform:none}.field input:hover{border-color:#ffffff52}.field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2f9bff59}.field.invalid input{border-color:var(--color-danger)}.field.invalid input:focus{box-shadow:0 0 0 3px #ff5d5d4d}.field-error{min-height:18px;padding-left:2px;color:var(--color-danger);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-shadow:0 1px 2px rgba(0,0,0,.6)}.card{box-shadow:0 14px 36px #00000052,inset 0 1px #ffffff0f}.card-featured{display:grid;grid-template-columns:200px 1fr;gap:18px;width:100%;padding:14px}.card-art{display:grid;place-items:center;min-height:150px;border-radius:var(--radius-md);background:radial-gradient(circle at 35% 30%,#a8784c,#5a381f 70%);box-shadow:inset 0 0 0 3px #3b2414,inset 0 0 0 6px #8a5a34}.card-art>svg{display:block;width:76%;height:auto;filter:drop-shadow(0 4px 0 rgba(0,0,0,.28))}.card-body{display:flex;flex-direction:column;min-width:0;padding:2px 2px 0 0}.card-body h2{margin:2px 0;font-size:var(--font-size-xxl);font-weight:900;line-height:1.1;letter-spacing:.03em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-desc{margin:0;color:var(--color-text-dim);font-size:var(--font-size-md)}.meta{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin:12px 0 14px}.card-featured .btn-primary{width:100%;margin-top:auto}.mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}.card-mini{appearance:none;display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px;align-items:center;padding:10px;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:transform var(--motion-fast) ease,border-color var(--motion-fast) ease,background-color var(--motion-fast) ease,opacity var(--motion-fast) ease}.card-mini:hover:not(:disabled){transform:translateY(-2px);border-color:#ffffff47;background:#10141ec7}.card-mini:active:not(:disabled){transform:translateY(0)}.card-mini:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.card-mini:disabled{cursor:default;opacity:.6}.card-mini[aria-busy=true]{opacity:1;border-color:var(--color-primary)}.card-mini .card-art{width:56px;height:56px;min-height:56px;border-radius:10px;box-shadow:inset 0 0 0 2px #3b2414,inset 0 0 0 4px #8a5a34}.card-mini .card-art>svg{width:74%;filter:drop-shadow(0 2px 0 rgba(0,0,0,.28))}.card-mini>span{display:flex;flex-direction:column;gap:2px;min-width:0}.card-mini b{font-size:var(--font-size-md);font-weight:var(--font-weight-heavy);letter-spacing:.04em}.card-mini small{overflow:hidden;color:var(--color-text-dim);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.home-notice{margin:0;padding:12px 20px;border:1px solid var(--color-glass-border);border-radius:var(--radius-pill);background:var(--color-glass);color:var(--color-text-dim);font-weight:var(--font-weight-semibold);text-align:center;-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur))}@media(max-width:640px){.home{padding:64px 14px 56px}.home-top{top:12px;left:12px;right:12px}.home-col{gap:12px}.tagline{font-size:var(--font-size-md)}.card-featured{grid-template-columns:1fr;gap:14px}.card-featured .card-art{min-height:110px}.card-featured .card-art>svg{width:auto;height:92px}.mini-grid{grid-template-columns:1fr}}@media(min-width:641px)and (max-height:820px){.home{padding-top:56px;padding-bottom:24px}.home-col{gap:10px}.logo>svg{width:min(420px,86vw,40vh)}.field-error{min-height:14px}.meta{margin:10px 0 12px}}@media(max-width:640px)and (max-height:760px){.home.is-single .card-featured{grid-template-columns:96px minmax(0,1fr)}.home.is-single .card-featured .card-art{min-height:96px}.home.is-single .card-featured .card-art>svg{height:72px}}@media(min-width:641px)and (max-height:480px){.home.is-single{padding-bottom:12px}.home.is-single .home-col{width:min(720px,100%);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:20px;row-gap:10px;align-items:center}.home.is-single .logo,.home.is-single .tagline{grid-column:1;justify-self:center}.home.is-single .field{grid-column:1}.home.is-single .card-featured{grid-column:2;grid-row:1 / span 3;grid-template-columns:96px minmax(0,1fr)}.home.is-single .card-featured .card-art{min-height:0}}@media(max-width:480px){.online-games{display:none}}.modal{width:min(720px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 48px);margin:auto;padding:0;overflow:hidden;border:1px solid var(--color-glass-border);border-radius:var(--radius-lg);background:var(--color-glass-strong);color:var(--color-text);box-shadow:0 24px 64px #00000080;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.modal[open]{display:flex;flex-direction:column;animation:modal-in var(--motion-base) ease-out}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.modal::backdrop{background:#06040399;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-inner{padding:24px;overflow-y:auto}.modal h2{margin:0 0 18px;padding-right:96px;font-size:var(--font-size-xl);font-weight:var(--font-weight-heavy);line-height:1.2}.modal-close{position:absolute;top:12px;right:12px}.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 20px;padding:0;list-style:none}.step{padding:12px;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-md);background:var(--color-surface);text-align:center}.step-art>svg{display:block;width:56px;height:56px;margin:4px auto 10px}.step h3{margin:0 0 4px;font-size:var(--font-size-md);font-weight:var(--font-weight-heavy)}.step p{margin:0;color:var(--color-text-dim);font-size:var(--font-size-sm);line-height:1.45;text-wrap:balance}.rules{margin:0;padding:0;color:var(--color-text-dim);font-size:var(--font-size-md);line-height:1.7;list-style:none}.rules li{position:relative;padding-left:16px}.rules li+li{margin-top:2px}.rules li:before{content:"";position:absolute;top:.68em;left:2px;width:6px;height:6px;border-radius:50%;background:var(--color-accent)}.rules b{color:var(--color-text);font-weight:var(--font-weight-bold)}@media(max-width:640px){.modal-inner{padding:20px 16px}.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}.gameover{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;display:grid;justify-items:center;align-items:start;padding:16px 16px 44px;background:#0604038c;animation:gameover-fade var(--motion-slow) ease both}.gameover-panel{width:min(640px,100%);margin-block:auto;padding:24px 24px 20px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;background:var(--color-glass-strong);box-shadow:0 24px 64px #00000080;animation:gameover-rise var(--motion-slow) ease both}.gameover-panel h2{margin:0;font-size:36px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--color-accent);text-shadow:0 2px 0 rgba(0,0,0,.45)}.gameover-panel.is-win h2{color:var(--color-heal)}.gameover-panel.is-loss h2{color:var(--color-text)}.gameover-sub,.gameover-mine{margin:0;color:var(--color-text-dim);font-size:var(--font-size-md)}.gameover-mine{padding:6px 14px;border-radius:var(--radius-pill);background:var(--color-surface);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.podium{display:flex;align-items:flex-end;justify-content:center;gap:10px;margin:8px 0 2px}.podium-slot{margin:0;width:132px;display:flex;flex-direction:column;align-items:center}.podium-hero{width:132px;height:160px;display:block}.podium-step{width:100%;display:grid;place-items:center;border:3px solid var(--color-outline);border-radius:10px 10px 4px 4px;font-weight:900;color:var(--color-outline)}.place-1 .podium-step{height:56px;background:linear-gradient(#ffe27a,#f0b93a)}.place-2 .podium-step{height:40px;background:linear-gradient(#f7fbfd,#c6d0db)}.place-3 .podium-step{height:30px;background:linear-gradient(#e0a55f,#c98a46)}.podium-place{font-size:18px}.podium-slot figcaption{margin-top:6px;display:flex;flex-direction:column;gap:1px;max-width:100%}.podium-slot b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-md)}.podium-slot small{color:var(--color-text-dim);font-variant-numeric:tabular-nums}.podium-slot.is-me b{color:var(--color-shield)}.gameover-list{width:100%;max-height:clamp(96px,calc(100vh - 590px),220px);overflow-y:auto;margin:4px 0 0;padding:0;list-style:none;text-align:left}.gameover-list:focus-visible{outline:2px solid var(--color-shield);outline-offset:2px;border-radius:8px}.gameover-list li{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:8px;min-height:30px;padding:0 10px;border-radius:8px;font-size:var(--font-size-md)}.gameover-list li:nth-child(odd){background:#ffffff09}.gameover-list li.is-me{background:#2f9bff2e;outline:1px solid rgba(108,182,255,.6)}.gameover-list .rank{color:var(--color-text-faint);font-weight:var(--font-weight-heavy);font-variant-numeric:tabular-nums}.gameover-list .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--font-weight-semibold)}.gameover-list .record{grid-column:3;color:var(--color-text-dim);font-variant-numeric:tabular-nums}.gameover-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}@keyframes gameover-fade{0%{opacity:0}}@keyframes gameover-rise{0%{opacity:0;transform:translateY(16px) scale(.98)}}@media(max-height:820px){.gameover-panel h2{font-size:30px}.podium-slot,.podium-hero{width:110px}.podium-hero{height:133px}}@media(max-height:500px){.gameover{padding:8px 12px 36px}.gameover-panel{padding:12px 16px;gap:6px}.gameover-panel h2{font-size:24px}.podium-hero{display:none}.podium{margin:2px 0 0}.place-1 .podium-step{height:34px}.place-2 .podium-step{height:26px}.place-3 .podium-step{height:20px}.podium-place{font-size:14px}.gameover-list{max-height:60px}.gameover-actions{margin-top:4px}}@media(max-width:480px){.gameover-panel h2{font-size:28px}.podium-slot,.podium-hero{width:100px}.podium-hero{height:122px}}.toasts{position:fixed;left:50%;bottom:52px;transform:translate(-50%);width:min(720px,calc(100vw - 32px));display:flex;flex-direction:column-reverse;align-items:center;gap:var(--space-sm)}.toast{--toast-color: var(--color-primary);display:flex;align-items:center;gap:10px;max-width:100%;padding:10px 16px;border:1px solid color-mix(in srgb,var(--toast-color) 45%,rgba(255,255,255,.12));border-radius:var(--radius-md);background:var(--color-glass-strong);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);box-shadow:0 8px 24px #00000059;-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));animation:toast-in var(--motion-base) ease-out}.toast:before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--toast-color)}.toast-warn{--toast-color: var(--color-accent)}.toast-error{--toast-color: var(--color-danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.connection{position:fixed;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 10px;border-radius:var(--radius-pill);background:#0a0d1499;color:var(--color-text-dim);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.connection .dot{width:8px;height:8px;border-radius:50%;background:var(--connection-color, var(--color-success))}.connection.is-connecting{--connection-color: var(--color-accent)}.connection.is-offline{--connection-color: var(--color-danger)}@media(prefers-reduced-motion:reduce){#ui *,#ui *:before,#ui *:after{animation:none!important;transition:none!important}}
