@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.0wxq9webf.ew4.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_5972bc34-module__OU16Qa__className{font-family:Inter,Inter Fallback;font-style:normal}
:root{--z-base:1;--z-board:5;--z-controls:10;--z-header:50;--z-tooltip:100;--z-popover:500;--z-fullscreen-overlay:1000;--z-modal:9999;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s cubic-bezier(.4, 0, .2, 1);--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--radius-xl:12px;--radius-round:50%}
@keyframes pulse-opacity{0%,to{opacity:.4}50%{opacity:.8}}@keyframes pulse-bank{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}@keyframes pulse-badge{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}@keyframes pulse-contested{0%{stroke:var(--p1-color);fill:var(--p1-color)}50%{stroke:var(--p2-color);fill:var(--p2-color)}to{stroke:var(--p1-color);fill:var(--p1-color)}}@keyframes breathe{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}@keyframes ghost-pulse{0%,to{stroke-opacity:.3;stroke-width:1.5px;fill-opacity:.02}50%{stroke-opacity:.8;stroke-width:2px;fill-opacity:.08}}@keyframes flow{0%{stroke-dashoffset:24px}to{stroke-dashoffset:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes tooltip-fade{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@keyframes popoverSlideIn{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes hintFadeInOut{0%{opacity:0;transform:translate(-50%)translateY(10px)}10%{opacity:1;transform:translate(-50%)translateY(0)}80%{opacity:1}to{opacity:0}}@keyframes firstHintFade{0%{opacity:0;transform:translate(-50%)translateY(10px)}15%{opacity:1;transform:translate(-50%)translateY(0)}70%{opacity:1}to{opacity:0}}@keyframes hint-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@keyframes preview-pulse{0%,to{box-shadow:0 0 #2dd4bf00}50%{box-shadow:0 0 12px 2px #2dd4bf4d}}@keyframes feature-drain{0%{opacity:1;filter:saturate(2.5)brightness(1.6)}25%{opacity:.9;filter:saturate(1.2)brightness(1.1)}to{opacity:.3;filter:saturate(.15)brightness(.8)}}@keyframes floating-score-rise{0%{opacity:0;transform:translateY(0)scale(.5)}15%{opacity:1;transform:translateY(-5px)scale(1.2)}30%{transform:translateY(-10px)scale(1)}80%{opacity:1;transform:translateY(-25px)}to{opacity:0;transform:translateY(-35px)}}@keyframes score-tick{0%{filter:brightness();transform:scale(1)}30%{filter:brightness(1.5);transform:scale(1.25)}to{filter:brightness();transform:scale(1)}}
.plasma-avatar-container{box-shadow:0 0 10px var(--plasma-color), inset 0 0 20px var(--plasma-color), inset 0 0 5px #fff;background:#050505;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s cubic-bezier(.4,0,.2,1),filter .2s;animation:2s ease-in-out infinite alternate neon-surge;display:flex;position:relative;overflow:hidden;transform:translateZ(0)}.plasma-avatar-container:hover{filter:brightness(1.3);transform:scale(1.1)translateZ(0)}.plasma-avatar-container:active{transform:scale(.95)translateZ(0)}.plasma-avatar-container:after{content:"";pointer-events:none;z-index:10;opacity:.15;background-image:radial-gradient(#fff3 1px,#0000 1px);background-size:3px 3px;border-radius:50%;position:absolute;inset:0}.plasma-core{background:conic-gradient(from 0deg, transparent 0%, var(--plasma-color) 15%, #fff 25%, var(--plasma-color) 35%, transparent 50%, var(--plasma-color) 65%, #fff 75%, var(--plasma-color) 85%, transparent 100%);opacity:.8;will-change:transform;border-radius:50%;animation:3s linear infinite fusion-spin;position:absolute;inset:-50%}.plasma-highlight{background:var(--plasma-color);box-shadow:inset 0 0 8px #fff, 0 0 15px var(--plasma-color);z-index:2;will-change:transform;border-radius:50%;animation:1.2s infinite alternate core-beat;position:absolute;inset:25%}.plasma-avatar-container.plasma-bot{animation:2s ease-in-out infinite alternate neon-surge-bot}.plasma-avatar-container.plasma-bot .plasma-core{background:conic-gradient(from 0deg, transparent 0%, var(--plasma-color) 5%, #fff 10%, var(--plasma-color) 15%, transparent 25%, var(--plasma-color) 30%, #fff 35%, var(--plasma-color) 40%, transparent 50%, var(--plasma-color) 55%, #fff 60%, var(--plasma-color) 65%, transparent 75%, var(--plasma-color) 80%, #fff 85%, var(--plasma-color) 90%, transparent 100%);animation:3s linear infinite reverse fusion-spin}.plasma-avatar-container.plasma-bot .plasma-highlight{border-radius:20%;animation:1.5s ease-in-out infinite alternate core-beat-bot;transform:rotate(45deg)}.plasma-ring{z-index:5;pointer-events:none;border:2px solid #0000;border-color:#0000 #fff6;border-radius:50%;animation:4s linear infinite targeting-spin;position:absolute;inset:2px}.plasma-orbit{z-index:6;pointer-events:none;will-change:transform;border:2px dashed #fffc;border-color:#fffc #0000;border-radius:50%;animation:4s linear infinite glitch-spin;position:absolute;inset:0}@keyframes fusion-spin{to{transform:rotate(360deg)}}@keyframes targeting-spin{to{transform:rotate(-360deg)}}@keyframes glitch-spin{0%{transform:rotate(0)scale(1)}50%{opacity:.5;transform:rotate(180deg)scale(.9)}to{transform:rotate(360deg)scale(1)}}@keyframes core-beat{0%{box-shadow:inset 0 0 5px #fff, 0 0 5px var(--plasma-color);transform:scale(.85)}to{box-shadow:inset 0 0 12px #fff, 0 0 25px var(--plasma-color);transform:scale(1.15)}}@keyframes core-beat-bot{0%{box-shadow:inset 0 0 5px #fff, 0 0 5px var(--plasma-color);transform:scale(.9)rotate(45deg)}to{box-shadow:inset 0 0 12px #fff, 0 0 25px var(--plasma-color);transform:scale(1.1)rotate(45deg)}}@keyframes neon-surge{0%{box-shadow:0 0 10px var(--plasma-color), inset 0 0 10px var(--plasma-color), inset 0 0 2px #fff}to{box-shadow:0 0 25px var(--plasma-color), inset 0 0 20px var(--plasma-color), inset 0 0 8px #fff}}@keyframes neon-surge-bot{0%{box-shadow:0 0 5px var(--plasma-color), inset 0 0 5px var(--plasma-color)}to{box-shadow:0 0 30px var(--plasma-color), inset 0 0 25px var(--plasma-color), inset 0 0 10px #fff}}
:root{--color-background:#0a0a0a;--color-surface:#ffffff08;--color-surface-hover:#ffffff0f;--color-border:#ffffff26;--color-tile-base:#222;--color-tile-stroke:#fff3;--color-void:#0a0a0a;--color-vein:#a3a3a3;--color-vein-dim:#a3a3a333;--color-chamber:#a3a3a3;--color-chamber-dim:#a3a3a333;--color-rift:#cbd5e1;--color-rift-dim:#cbd5e133;--color-player1:#2dd4bf;--color-player2:#fbbf24;--color-player3:#f472b6;--color-player4:#a78bfa;--color-text-main:#f4f4f5;--color-text-muted:#a1a1aa;--glow-shadow:0 0 20px #ffffff1a}*{box-sizing:border-box;margin:0;padding:0}html{font-size:clamp(13px,1.1vw + 8px,16px)}html,body{background:var(--color-background);max-width:100vw;color:var(--color-text-main);overscroll-behavior:none;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);overflow-x:hidden}.container{min-height:100vh;z-index:var(--z-base);flex-direction:column;justify-content:center;align-items:center;padding:1rem;display:flex;position:relative}.title{letter-spacing:-.05em;background:linear-gradient(to bottom right,#fff,#94a3b8);-webkit-text-fill-color:transparent;text-align:center;opacity:.9;-webkit-background-clip:text;background-clip:text;margin-bottom:2rem;font-size:clamp(2rem,5vw,3rem);font-weight:200}.glass-panel{background:var(--color-surface);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);box-shadow:0 8px 32px #0003}.lobby{box-sizing:border-box;-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);background:#000000b3;border-radius:1px;flex-direction:column;gap:1.5rem;width:100%;max-width:clamp(22.5rem,90vw,42.5rem);padding:1.25rem;display:flex;overflow:hidden;box-shadow:0 8px 32px #0003}.lobby *{box-sizing:border-box;max-width:100%}.lobby input{border:1px solid var(--color-border);color:var(--color-text-main);background:#0000004d;border-radius:2px;padding:.8rem 1rem;font-family:inherit;font-size:1rem;font-weight:300;transition:all .3s}.lobby input:focus{border-color:var(--color-vein);background:#2dd4bf0d;outline:none}.lobby input::placeholder{color:var(--color-text-muted);font-weight:200}button{letter-spacing:.05em;text-transform:uppercase;cursor:pointer;border:1px solid var(--color-border);color:var(--color-text-muted);background:0 0;border-radius:2px;padding:.8rem 1.5rem;font-size:.9rem;font-weight:400;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}button:hover:not(:disabled){border-color:var(--color-text-main);color:var(--color-text-main);background:var(--color-surface-hover);box-shadow:0 0 15px #ffffff0d}button:disabled{opacity:.3;cursor:not-allowed}button.primary{border-color:var(--color-vein);color:var(--color-vein)}button.primary:hover:not(:disabled){background:var(--color-vein-dim);text-shadow:0 0 8px #2dd4bf66;box-shadow:0 0 20px #2dd4bf33}button.secondary{border-color:var(--color-border)}.divider{text-align:center;color:var(--color-text-muted);letter-spacing:.1em;font-size:.8rem;font-weight:200;position:relative}.divider:before,.divider:after{content:"";background:var(--color-border);width:35%;height:1px;position:absolute;top:50%}.divider:before{left:0}.divider:after{right:0}.game-container{box-sizing:border-box;flex-direction:column;align-items:center;gap:1.5rem;width:100%;height:calc(100vh - 2rem);padding:1.5rem;display:flex}.game-header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);background:#0009;justify-content:space-between;align-items:center;width:100%;max-width:1000px;padding:1rem 1.5rem;display:flex}.game-board-container{border:1px solid var(--color-border);background:#0006;flex:1;width:100%;max-width:1000px;position:relative;overflow:hidden;box-shadow:inset 0 0 100px #00000080}.hex-grid-container{-webkit-backdrop-filter:blur(12px);background:#00000059;width:100%;height:100%;overflow:hidden}.camera-controls{z-index:10;pointer-events:auto;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:12px;left:12px}.camera-dpad{grid-template-rows:repeat(3,28px);grid-template-columns:repeat(3,28px);gap:2px;display:grid}.camera-btn{color:#fff9;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1f;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:.875rem;font-weight:600;line-height:1;transition:all .15s;display:flex}.camera-btn:hover{color:#ffffffe6;background:#ffffff26;border-color:#ffffff40}.camera-btn:active{background:#ffffff38;transform:scale(.92)}.dpad-up{grid-area:1/2}.dpad-left{grid-area:2/1}.dpad-center{grid-area:2/2}.dpad-right{grid-area:2/3}.dpad-down{grid-area:3/2}.dpad-center{background:#ffffff0a;border-color:#ffffff14}.dpad-center:hover{background:#ffffff1f}.camera-zoom{gap:2px;display:flex}.camera-zoom .camera-btn{flex:1;height:28px}.game-controls{z-index:var(--z-controls);box-sizing:border-box;flex-direction:row;justify-content:center;align-items:center;gap:1rem;width:100%;height:clamp(90px,14vh,150px);margin:0;padding:0;display:flex;overflow:hidden}.bank-controls{flex-direction:column;justify-content:center;align-self:stretch;gap:.35rem;display:flex}.bank-controls button{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (max-width:540px){.game-controls{gap:.4rem}.bank-controls button{padding:.3rem .5rem;font-size:.72rem}.tile-preview{gap:.4rem;padding:.4rem .5rem}.rotation-buttons{gap:.3rem}}.tile-preview{border:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000c;border-radius:8px;flex-direction:row;align-items:stretch;gap:.75rem;padding:.5rem 1rem;display:flex;position:relative}.tile-info{flex-direction:column;justify-content:center;gap:.4rem;display:flex}.tile-info-header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.2rem;display:flex}.tile-preview h3{text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-dim);opacity:.5;margin:0;font-size:.55rem;font-weight:400;line-height:1}.rotation-buttons{justify-content:center;gap:.5rem;display:flex}.tile-label{white-space:nowrap;text-overflow:ellipsis;text-align:center;height:auto;color:var(--color-text-muted);margin-bottom:0;font-size:.8rem;overflow:hidden}.rotate-btn{border:1px solid var(--color-border);color:var(--color-text-muted);background:0 0;border-radius:6px;justify-content:center;align-items:center;gap:.3rem;padding:.4rem .5rem;transition:all .2s;display:flex}.rotate-btn .hotkey{min-width:1.6em;margin-left:0;padding:.15em .4em;font-size:.85em}.rotate-btn:hover:not(:disabled){border-color:var(--color-text-main);color:var(--color-text-main);background:#ffffff0d}.rotate-btn:active:not(:disabled){transform:scale(.95)}.rotate-btn svg{width:18px;height:18px}.rotate-left:hover:not(:disabled),.rotate-right:hover:not(:disabled){border-color:var(--color-player1);color:var(--color-player1)}.player-info-container{flex-direction:row;flex:1 1 0;align-items:center;gap:.3rem;min-width:0;min-height:4.5rem;display:flex;overflow:hidden}.player-card{cursor:default;background:0 0;border:none;border-bottom:1px solid #0000;border-radius:0;flex:1 1 0;align-items:stretch;gap:.5rem;padding:.5rem .5rem .5rem 0;transition:background-color .2s,border-color .2s,box-shadow .2s,opacity .2s;display:flex;position:relative;overflow:hidden;container:player-card/inline-size}@media (max-width:1200px){.player-card.active{flex:10 1 0}.player-card.active .player-stats-row{gap:.2rem;font-size:.72rem}.player-card.active .player-name{font-size:.9rem}.player-info-container{gap:.2rem}}.player-card.active{box-shadow:none;background:0 0;border-bottom-color:#fff9}.player-card.active .player-name{color:#fff;text-shadow:0 0 10px #fff6}.player-card.you .player-name{text-underline-offset:4px;-webkit-text-decoration:underline #fff3;text-decoration:underline #fff3}.turn-indicator{opacity:.7;border-radius:2px;flex-shrink:0;align-self:stretch;width:4px;height:auto;min-height:2rem;box-shadow:0 0 5px}.player-card.active .turn-indicator{opacity:1;box-shadow:0 0 12px}.player-details{flex:1;grid-template-rows:auto auto auto;align-content:center;gap:.15rem;min-width:0;display:grid}.player-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.player-name{white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-dim);font-size:1rem;font-weight:500;line-height:1.2;overflow:hidden}.you-indicator{color:#ffffff8c;flex-shrink:0;margin-left:.25rem;font-size:.65em}.player-card.active .player-name{color:#fff;font-weight:600}.player-stats-row{color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:.4rem;font-size:.85rem;display:flex;overflow:hidden}.player-row3{align-items:center;gap:.35rem;min-height:1.1em;display:flex;overflow:hidden}.stat-score{color:var(--color-text-main);font-weight:600}.stat-divider{opacity:.3;font-size:.7rem}.stat-crystals{align-items:center;gap:3px;display:flex}.player-timer{color:var(--color-text-main);letter-spacing:.02em;font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:.8rem;font-weight:600}.player-timer.timer-low{color:#f87171;animation:1s ease-in-out infinite timer-flash}@keyframes timer-flash{0%,to{opacity:1}50%{opacity:.4}}.move-timer{color:var(--color-text-muted);background:#ffffff0f;border:1px solid #ffffff1a;border-radius:4px;margin-left:.75rem;padding:.1rem .4rem;font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:.9rem;font-weight:600;display:inline-block}.move-timer.timer-urgent{color:#f87171;background:#f871711a;border-color:#f8717166;animation:.8s ease-in-out infinite timer-urgent-pulse}@keyframes timer-urgent-pulse{0%,to{transform:scale(1);box-shadow:0 0 #f8717100}50%{transform:scale(1.05);box-shadow:0 0 8px 2px #f871714d}}.advanced-toggle{color:var(--color-text-muted);cursor:pointer;text-transform:none;letter-spacing:normal;background:0 0;border:none;align-items:center;gap:.35rem;padding:.25rem 0;font-size:.8rem;transition:color .15s;display:flex}.advanced-toggle:hover{color:var(--color-text-main)}.advanced-chevron{font-size:.9rem;transition:transform .25s;display:inline-block;transform:rotate(0)}.advanced-chevron.open{transform:rotate(90deg)}.advanced-section{opacity:0;max-height:0;transition:max-height .3s,opacity .25s;overflow:hidden}.advanced-section.open{opacity:1;max-height:200px}.increment-row{justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0 .25rem;display:flex}.increment-label{color:var(--color-text-muted);white-space:nowrap;align-items:baseline;gap:.4rem;font-size:.85rem;display:flex}.increment-hint{opacity:.5;font-size:.7rem}.custom-input-row{align-items:center;gap:.4rem;transition:opacity .2s;display:flex}.custom-input-row.disabled{opacity:.3;pointer-events:none}.custom-unit{color:var(--color-text-muted);white-space:nowrap;min-width:1.8rem;font-size:.75rem}.timer-label-row{justify-content:space-between;align-items:center;display:flex}.unlimited-toggle{cursor:pointer;color:var(--color-text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:.3rem;font-size:.75rem;display:flex}.unlimited-toggle input[type=checkbox]{appearance:none;box-sizing:border-box;border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:2px;flex-shrink:0;width:12px;min-width:12px;max-width:12px;height:12px;min-height:12px;max-height:12px;margin:0;padding:0;transition:all .15s;position:relative}.unlimited-toggle input[type=checkbox]:checked{border-color:var(--color-vein);background:var(--color-vein)}.unlimited-toggle input[type=checkbox]:checked:after{content:"✓";color:#0f172a;justify-content:center;align-items:center;font-size:.56rem;font-weight:700;line-height:1;display:flex;position:absolute;inset:0}.unlimited-toggle span{font-size:.7rem;line-height:1}.settings-summary{flex-direction:column;gap:.4rem;display:flex}.settings-row{border-bottom:1px solid #ffffff0a;justify-content:space-between;align-items:center;padding:.3rem 0;font-size:.85rem;display:flex}.settings-row:last-child{border-bottom:none}.settings-key{color:var(--color-text-muted);font-weight:300}.settings-val{color:var(--color-text-main);font-weight:400}@keyframes pulse-bank{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.banked-badge{filter:drop-shadow(0 0 2px #00000080);animation:3s ease-in-out infinite pulse-badge;position:absolute;top:4px;right:4px}@keyframes pulse-badge{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.player-tooltip{min-width:210px;z-index:var(--z-tooltip);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;background:#0a0a0ff2;border:1px solid;border-radius:6px;margin-top:0;padding:.75rem;animation:.2s ease-out tooltip-fade;position:fixed;box-shadow:0 4px 20px #0006}@keyframes tooltip-fade{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.tooltip-header{border-bottom:1px solid #ffffff1a;margin-bottom:.5rem;padding-bottom:.25rem;font-size:.95rem;font-weight:700}.tooltip-row{color:var(--color-text-muted);justify-content:space-between;margin-bottom:.2rem;font-size:.85rem;display:flex}.tooltip-row strong{color:var(--color-text-main);font-weight:600}.tooltip-status{color:var(--color-text-main);text-align:center;background:#ffffff0d;border-radius:4px;margin-top:.5rem;padding:.2rem;font-size:.8rem}.player-card.eliminated{opacity:.45;filter:saturate(.3)}.player-card.eliminated .turn-indicator{opacity:.2;box-shadow:none}.move-timer-inline{color:var(--color-text-muted);background:#ffffff0f;border:1px solid #ffffff1a;border-radius:3px;margin-left:.25rem;padding:.05rem .3rem;font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:.72rem;font-weight:600}.move-timer-inline.timer-urgent{color:#f87171;background:#f871711a;border-color:#f8717166;animation:.8s ease-in-out infinite timer-urgent-pulse}.compact-timer{color:var(--player-color,var(--color-text-main));white-space:nowrap;font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:.72rem;font-weight:600;display:none}.player-card.compressed:not(.active){cursor:pointer}.player-card.compressed:not(.active):hover{background:#ffffff0a;border-radius:4px}.compact-info{flex-shrink:1;align-items:center;gap:.2rem;min-width:0;display:none;overflow:hidden}.compact-you-dot{color:var(--player-color,#fff9);flex-shrink:0;font-size:.55em;line-height:1}.compact-expand-hint{color:#fff3;flex-shrink:0;font-size:.65em;line-height:1;transition:color .15s}.player-card.compressed:not(.active):hover .compact-expand-hint{color:#ffffff80}@container player-card (max-width:90px){.player-details{display:none}.compact-info{display:flex}}@container player-card (max-width:35px){.compact-info{display:none}}.eliminated-icon{color:#f87171;margin-right:4px;font-size:.85em;font-weight:700}.eliminated-timer{letter-spacing:.06em;opacity:.9;color:#f87171!important;font-size:.7rem!important;font-weight:700!important}.eliminated-status{color:#f87171!important;background:#f8717114!important}.skip-penalty-status{white-space:nowrap;color:#f87171!important;background:#f8717114!important}.skip-turn-btn{width:100%;color:#f87171!important;background:#f871711a!important;border:1px solid #f871714d!important}.skip-turn-btn:hover{background:#f8717133!important;border-color:#f8717180!important}.skip-penalty-badge{color:#f87171;opacity:.9;pointer-events:none;font-size:.7rem;position:absolute;top:3px;right:22px}.go-row.eliminated{opacity:.5}.go-eliminated-badge{color:var(--color-text-muted);opacity:.8;margin-left:.4rem;font-size:.7rem;font-weight:400}.player-info{gap:1rem;display:flex}.player{border:1px solid #0000;padding:.5rem 1rem;transition:all .3s;position:relative}.player.active{border-color:var(--color-border);background:var(--color-surface)}.player.active:after{content:"";background:currentColor;width:100%;height:1px;position:absolute;bottom:-1px;left:0;box-shadow:0 -2px 10px}.player-name{letter-spacing:.05em;font-size:.9rem;font-weight:300}.player-stats{color:var(--color-text-muted);gap:1rem;margin-top:.25rem;font-size:.8rem;display:flex}.status-message{letter-spacing:.05em;color:var(--color-text-main);text-transform:uppercase;font-size:.85rem;font-weight:200}.crystal-placement{border:1px solid var(--color-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#000000e6;min-width:240px;padding:1.5rem}.crystal-placement-header{border-bottom:1px solid var(--color-border);margin-bottom:1rem;padding-bottom:.75rem}.crystal-placement-header h3{text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-main);font-size:.85rem;font-weight:400}.feature-option{border:1px solid var(--color-border);background:0 0;justify-content:space-between;width:100%;margin-bottom:.5rem;padding:.75rem}.feature-option:hover{background:var(--color-surface-hover);border-color:var(--color-text-muted);transform:none}.go-backdrop{z-index:899;-webkit-backdrop-filter:blur();backdrop-filter:blur();pointer-events:none;background:0 0;transition:background .5s,-webkit-backdrop-filter .5s,backdrop-filter .5s;position:fixed;inset:0}.go-backdrop.visible{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:auto;cursor:pointer;background:#00000059}.go-modal{z-index:900;opacity:0;pointer-events:none;transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .4s;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)scale(.85)}.go-modal.visible{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)scale(1)}.go-inner{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);text-align:center;background:#09090beb;border:1px solid #ffffff14;border-radius:16px;min-width:300px;max-width:380px;padding:2rem 2.5rem 1.5rem;position:relative;overflow:hidden}.go-glow{z-index:-1;background:conic-gradient(from var(--go-angle,0deg), transparent 0%, #ffffff59 8%, transparent 16%, transparent 45%, #ffffff40 53%, transparent 61%, transparent 100%);-webkit-mask-composite:xor;border-radius:17px;padding:1.5px;animation:4s linear infinite go-spin;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}@property --go-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes go-spin{to{--go-angle:360deg}}.go-title-area{margin-bottom:1.2rem}.go-headline{letter-spacing:.14em;margin:0;font-size:1.8rem;font-weight:700;animation:.5s .2s both go-title-in}.go-headline.victory{color:var(--color-vein);text-shadow:0 0 30px #2dd4bf59}.go-headline.defeat{color:var(--color-text-main);text-shadow:0 0 25px #ffffff26}.go-headline.draw{color:var(--color-text-muted)}.go-subline{opacity:0;margin:.3rem 0 0;font-size:.9rem;font-weight:400;animation:.4s .4s both go-title-in}@keyframes go-title-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.go-scores-list{flex-direction:column;gap:0;margin-bottom:1rem;display:flex}.go-row{opacity:0;border-bottom:1px solid #ffffff0a;align-items:center;gap:.6rem;padding:.55rem .7rem;animation:.35s both go-row-in;display:flex}.go-row:last-child{border-bottom:none}@keyframes go-row-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.go-row.winner{background:#ffffff08;border-radius:6px}.go-rank-icon{min-width:1.6rem;color:var(--color-text-muted);text-align:center;font-size:.85rem}.go-crown-icon{width:1.4rem;height:1.4rem;color:var(--color-text-main);vertical-align:middle}.go-crown-icon-inline{width:1.1rem;height:1.1rem;color:var(--color-text-main);vertical-align:middle}.go-row.winner .go-rank-icon{font-size:1rem;animation:2.5s ease-in-out infinite go-crown-bob}@keyframes go-crown-bob{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-2px)scale(1.1)}}.go-player-name{text-align:left;flex:1;font-size:.88rem;font-weight:500}.go-you{color:var(--color-text-muted);margin-left:.3rem;font-size:.7rem;font-weight:300}.go-player-score{color:var(--color-text-main);font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:700}.go-player-score.shine{animation:3s ease-in-out infinite go-shine}@keyframes go-shine{0%,to{filter:brightness();text-shadow:none}50%{filter:brightness(1.3);text-shadow:0 0 8px #ffffff26}}.go-collapse-btn{color:var(--color-text-muted);letter-spacing:.05em;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;padding:.45rem 1.2rem;font-size:.78rem;transition:color .2s,border-color .2s,background .2s}.go-collapse-btn:hover{color:var(--color-text-main);background:#ffffff0f;border-color:#fff3}.go-collapsed{z-index:900;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;opacity:0;white-space:nowrap;color:var(--color-text-main);background:#09090be6;border:1px solid #ffffff14;border-radius:999px;align-items:center;gap:.8rem;padding:.5rem 1rem;font-size:.82rem;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .3s,border-color .2s,background .2s;display:flex;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)translateY(60px)}.go-collapsed.visible{opacity:1;transform:translate(-50%)translateY(0)}.go-collapsed:hover{background:#09090bf2;border-color:#fff3}.go-collapsed-label{letter-spacing:.05em;font-weight:600}.go-collapsed-scores{gap:.5rem;display:flex}.go-collapsed-score{font-variant-numeric:tabular-nums;font-weight:700}.go-collapsed-expand{color:var(--color-text-muted);margin-left:.2rem;font-size:.65rem}.rift-info-badge{background:var(--color-rift-dim);color:var(--color-rift);cursor:help;border:1px solid #cbd5e14d;border-radius:4px;align-items:center;gap:.3rem;width:fit-content;padding:.15rem .4rem;font-size:.65rem;transition:background .2s,border-color .2s;display:flex}.rift-info-badge:hover{background:#cbd5e140;border-color:#cbd5e180}.rift-icon{font-size:1.1rem;line-height:1}.rift-text{letter-spacing:.05em;font-weight:600}.feature-claim-popover{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#09090bf2;border:1px solid #ffffff26;border-radius:12px;min-width:200px;max-width:280px;padding:1rem;animation:.2s ease-out popoverSlideIn;box-shadow:0 0 0 1px #ffffff0d,0 20px 40px #0009}@keyframes popoverSlideIn{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.feature-claim-pointer{border-bottom:8px solid #ffffff26;border-left:8px solid #0000;border-right:8px solid #0000;width:0;height:0;position:absolute;top:-8px;left:50%;transform:translate(-50%)}.feature-claim-pointer:after{content:"";border-bottom:7px solid #09090bf2;border-left:7px solid #0000;border-right:7px solid #0000;width:0;height:0;position:absolute;top:1px;left:-7px}.feature-claim-header{border-bottom:1px solid #ffffff1a;margin-bottom:.75rem;padding-bottom:.5rem}.feature-claim-header h4{text-transform:uppercase;letter-spacing:.05em;color:#fff;margin:0 0 .25rem;font-size:.85rem;font-weight:600}.feature-claim-header .crystals-info{align-items:center;gap:.35rem;font-size:.75rem;display:flex}.feature-claim-header .crystal-dot{border-radius:50%;width:8px;height:8px}.feature-claim-tile-container{background:#ffffff05;border-radius:8px;justify-content:center;margin:.75rem 0;padding:.5rem;display:flex}.feature-claim-list{flex-direction:column;gap:.35rem;margin-bottom:.75rem;display:flex}.feature-claim-option{cursor:pointer;text-transform:none;background:#ffffff08;border:1px solid #ffffff1a;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;transition:all .15s;display:flex}.feature-claim-option:hover,.feature-claim-option.hovered{background:#ffffff14;border-color:#ffffff4d}.feature-claim-option .feature-number{min-width:1rem;font-size:.8rem;font-weight:700}.feature-claim-option .feature-icon{font-size:1rem}.feature-claim-option .feature-name{color:#fff;flex:1}.feature-claim-option .feature-size{color:var(--color-text-muted);font-size:.75rem}.feature-claim-skip{width:100%;color:var(--color-text-muted);cursor:pointer;text-transform:none;background:0 0;border:1px solid #ffffff1a;border-radius:6px;justify-content:center;align-items:center;gap:.5rem;padding:.6rem;font-size:.8rem;transition:all .15s;display:flex}.feature-claim-skip:hover{color:#fff;background:#ffffff0d;border-color:#fff3}.feature-claim-skip .keyboard-hint{background:#ffffff1a;border-radius:3px;padding:.15rem .35rem;font-family:monospace;font-size:.7rem}.rotation-indicator{border:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0009;border-radius:6px;align-items:center;gap:.5rem;padding:.5rem;display:flex}.rotation-indicator-btn{border:1px solid var(--color-border);width:36px;height:36px;color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:all .15s;display:flex}.rotation-indicator-btn:hover:not(:disabled){border-color:var(--color-player1);color:var(--color-player1);background:#ffffff0d}.rotation-indicator-btn.active{border-color:var(--color-player1);color:var(--color-player1);background:#2dd4bf26;transform:scale(.95)}.rotation-indicator-btn:disabled{opacity:.3;cursor:not-allowed}.rotation-hint{color:var(--color-text-muted);align-items:center;gap:.15rem;font-size:.7rem;display:flex}.rotation-hint .hint-key{background:#ffffff14;border-radius:3px;padding:.1rem .3rem;font-family:monospace}.rotation-hint .hint-divider{opacity:.5}.keyboard-hint{color:var(--color-text-muted);background:#ffffff1a;border-radius:3px;padding:.15rem .35rem;font-family:monospace;font-size:.7rem}@keyframes pulse-opacity{0%,to{opacity:.4}50%{opacity:.8}}@keyframes breathe{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}@keyframes flow{0%{stroke-dashoffset:24px}to{stroke-dashoffset:0}}.vein-pulse{animation:3s ease-in-out infinite pulse-opacity}.node-pulse{animation:4s ease-in-out infinite breathe}.hex-highlight path{transition:all .3s}.hex-highlight path:first-child{stroke:var(--color-text-main);stroke-width:2px;filter:drop-shadow(0 0 4px var(--color-vein))}@keyframes ghost-pulse{0%,to{stroke-opacity:.25;stroke-width:1.5px;fill-opacity:.01;filter:drop-shadow(0 0 2px #ffffff0d)}50%{stroke-opacity:.7;stroke-width:2px;fill-opacity:.04;filter:drop-shadow(0 0 6px #ffffff4d)}}.empty-slot path{stroke:#fffc;stroke-width:1.5px;stroke-dasharray:8 6;fill:var(--color-vein);fill-opacity:.02;transition:all .3s;animation:3.5s ease-in-out infinite ghost-pulse}.empty-slot:hover path{filter:drop-shadow(0 0 8px var(--color-vein));cursor:pointer;animation:none;stroke:var(--color-vein)!important;stroke-opacity:1!important;stroke-width:3px!important;fill-opacity:.2!important}.source-selection-container{justify-content:center;align-items:center;gap:.75rem;display:flex}.source-card{-webkit-backdrop-filter:blur(8px);cursor:pointer;background:#0a0a0ab3;border:1px solid #ffffff1a;border-radius:8px;flex-direction:row;align-items:center;gap:.75rem;padding:.75rem 1rem;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 6px -1px #0000004d}.source-card:hover{border-color:var(--color-vein);background:#141414cc;transform:translateY(-1px);box-shadow:0 10px 15px -3px #00000080}.source-preview{background:#0003;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:70px;height:70px;display:flex}.source-preview svg{width:100%;height:100%;overflow:visible}.source-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:600;transition:color .2s}.source-card-info{flex-direction:column;gap:.4rem;display:flex}.source-card:hover .source-label{color:#fff}.source-btn{color:var(--color-text-dim);pointer-events:none;white-space:nowrap;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:4px;padding:.4rem .75rem;font-size:.8rem;transition:all .2s}.source-card:hover .source-btn{background:var(--color-vein);color:#000;border-color:var(--color-vein);font-weight:600}kbd.hotkey{vertical-align:middle;background:#ffffff26;border:1px solid #ffffff4d;border-radius:3px;justify-content:center;align-items:center;min-width:1.5em;height:auto;margin-left:.5em;padding:.1em .4em .2em;font-family:inherit;font-size:.7em;font-weight:600;line-height:1.2;display:inline-flex;box-shadow:0 1px 2px #0000004d}.source-card:hover kbd.hotkey{color:inherit;background:#0003;border-color:#0000004d}.waiting-message{letter-spacing:.05em;font-weight:200;animation:2s infinite pulse-opacity}.room-id-display{border:1px solid var(--color-border);color:var(--color-text-main);-webkit-user-select:none;user-select:none;z-index:var(--z-base);text-align:center;background:0 0;width:100%;padding:.25rem .75rem;font-family:Inter,monospace;transition:border-color .6s cubic-bezier(.23,1,.32,1);position:relative}.status-message{text-align:center;color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;min-width:0;padding:0 .75rem;font-size:.85rem;font-weight:500;line-height:1.2;overflow:hidden}.deck-info{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.header-icons-group{align-items:center;gap:.5rem;display:flex}.deck-count{font-variant-numeric:tabular-nums;color:var(--color-text-dim);white-space:nowrap;font-size:.9rem}.game-container{flex-direction:column;height:100vh;display:flex;position:relative;overflow:hidden}.game-header{z-index:var(--z-header);pointer-events:none;background:linear-gradient(#000c 0%,#0000 100%);grid-template-columns:minmax(10rem,1fr) minmax(0,auto) auto;align-items:center;gap:.5rem;padding:.75rem 1rem;display:grid;position:relative}.game-header>*{pointer-events:auto}.room-id-display.copied{color:var(--color-text-main);background:0 0;border-color:#0000}.room-id-display:before,.room-id-display:after{content:"";background:var(--color-text-main);opacity:0;width:100%;height:1px;z-index:var(--z-controls);pointer-events:none;transition:transform .6s cubic-bezier(.23,1,.32,1),opacity .6s;position:absolute;transform:scaleX(0);box-shadow:0 0 8px #ffffff80}.room-id-display:before{transform-origin:0;top:-1px;left:0}.room-id-display:after{transform-origin:100%;bottom:-1px;right:0}.room-id-display.copied:before,.room-id-display.copied:after{opacity:1;transform:scaleX(1)}@keyframes pulse-contested{0%{stroke:var(--p1-color);fill:var(--p1-color)}50%{stroke:var(--p2-color);fill:var(--p2-color)}to{stroke:var(--p1-color);fill:var(--p1-color)}}.feature-contested{animation:2s ease-in-out infinite pulse-contested}.config-panel{box-sizing:border-box;background:#0006;flex-direction:column;gap:1rem;width:100%;padding:.75rem;display:flex;overflow:hidden}.config-section{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:1rem;display:grid}.config-field{flex-direction:column;gap:.5rem;min-width:0;display:flex;overflow:hidden}.config-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem}.select-wrapper{width:100%;position:relative}.custom-select{appearance:none;border:1px solid var(--color-border);width:100%;color:var(--color-text-main);cursor:pointer;background:#0000004d;border-radius:2px;outline:none;padding:.6rem 2rem .6rem .8rem;font-family:inherit;font-size:.9rem;font-weight:300;transition:all .3s}.custom-select:focus{border-color:var(--color-vein);background:#2dd4bf0d}.select-wrapper:after{content:"▼";color:var(--color-text-muted);pointer-events:none;font-size:.6rem;position:absolute;top:50%;right:.8rem;transform:translateY(-50%)}.number-input-group{border-radius:2px;align-items:stretch;gap:1px;transition:all .3s;display:flex;overflow:hidden}.number-input-group input{border:1px solid var(--color-border);text-align:center;color:var(--color-text-main);background:#0000004d;outline:none;flex:1;width:100%;min-width:0;padding:.5rem .3rem;font-family:inherit;font-size:.9rem;font-weight:300;transition:border-color .2s}.number-input-group input:focus{border-color:var(--color-vein)}.number-input-group input[type=number]{appearance:textfield}.number-input-group input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;display:none}.number-input-group input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;display:none}.number-input-btn{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;width:32px;min-width:32px;padding:0;font-size:1rem;transition:all .2s;display:flex}.number-input-btn:hover:not(:disabled){border-color:var(--color-text-muted);color:var(--color-text-main);background:#ffffff0a}.number-input-btn:active:not(:disabled){background:#ffffff14;transform:scale(.95)}.number-input-btn:disabled{opacity:.2;cursor:not-allowed}.number-input-btn.minus{border-right:none;border-radius:2px 0 0 2px}.number-input-btn.plus{border-left:none;border-radius:0 2px 2px 0}.manual-modal-overlay{z-index:var(--z-modal);-webkit-backdrop-filter:blur(8px);background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.manual-modal-container{background:#09090b;border:1px solid #ffffff1a;border-radius:1rem;flex-direction:column;width:100%;max-width:72rem;max-height:90vh;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 1px #ffffff0d,0 25px 50px -12px #000c}.manual-modal-header{background:#09090b;border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.manual-modal-header h2{letter-spacing:-.02em;color:#fff;margin:0;font-size:1.25rem;font-weight:600}.manual-modal-close{color:#71717a;cursor:pointer;background:#ffffff0d;border:none;border-radius:.5rem;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;padding:0;transition:all .2s;display:flex}.manual-modal-close:hover{color:#fff;background:#ffffff1a}.manual-modal-nav{background:#09090b;border-bottom:1px solid #ffffff1a;gap:0;padding:0 1.5rem;display:flex}.manual-modal-tab{letter-spacing:.02em;text-transform:none;color:#71717a;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.75rem 1rem;font-size:.8rem;font-weight:500;transition:all .2s}.manual-modal-tab:hover{color:#a1a1aa}.manual-modal-tab.active{color:#fff;border-bottom-color:#fff}.manual-modal-content{background:#09090b;flex:1;padding:1.5rem;overflow-y:auto}.manual-modal-content::-webkit-scrollbar{width:8px}.manual-modal-content::-webkit-scrollbar-track{background:0 0}.manual-modal-content::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.manual-modal-content::-webkit-scrollbar-thumb:hover{background:#ffffff40}.rules-content{max-width:56rem;margin:0 auto}.rules-section{border-bottom:1px solid #ffffff14;margin-bottom:1.5rem;padding-bottom:1rem}.rules-section:last-child{border-bottom:none;margin-bottom:0}.rules-section h3{color:#fff;margin-bottom:.5rem;font-size:1.125rem;font-weight:600}.rules-section p{color:#a1a1aa;font-size:.9rem;line-height:1.6}.rules-section strong{color:#fff}.placement-demo{background:#ffffff05;border:1px solid #ffffff14;border-radius:.5rem;margin-bottom:1rem;padding:.75rem}.placement-demo-header{text-align:center;margin-bottom:.75rem}.placement-demo-header h4{color:#fff;margin:0 0 .25rem;font-size:.95rem;font-weight:600}.placement-demo-subtitle{color:#a1a1aa;margin:0;font-size:.75rem}.placement-demo-content{grid-template-columns:80px 1fr 80px;align-items:center;gap:.75rem;display:grid}.placement-demo-preview{flex-direction:column;align-items:center;gap:.375rem;display:flex}.preview-label{color:#71717a;text-transform:uppercase;letter-spacing:.05em;font-size:.65rem;font-weight:500}.preview-tile-container{border:2px solid var(--color-vein);background:#0000004d;border-radius:.375rem;width:60px;height:60px;padding:.25rem;animation:2s ease-in-out infinite preview-pulse}@keyframes preview-pulse{0%,to{box-shadow:0 0 #2dd4bf00}50%{box-shadow:0 0 12px 2px #2dd4bf4d}}.rotate-btn{color:#a1a1aa;cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:.25rem;padding:.25rem .5rem;font-size:.65rem;transition:all .15s}.rotate-btn:hover{background:var(--color-vein);color:#000;border-color:var(--color-vein)}.placement-demo-board{background:#0003;border:1px solid #ffffff0f;border-radius:.375rem;justify-content:center;align-items:center;height:140px;display:flex;position:relative}.placement-demo-board>div{width:100%;height:100%}.placement-hint{pointer-events:none;flex-direction:column;align-items:center;animation:1s ease-in-out infinite hint-bounce;display:flex;position:absolute;top:.25rem;right:.5rem}@keyframes hint-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.hint-arrow{color:var(--color-vein);text-shadow:0 0 8px var(--color-vein);font-size:1.25rem}.hint-text{color:var(--color-vein);font-size:.6rem;font-weight:500}.placement-demo-status{flex-direction:column;align-items:center;gap:.375rem;display:flex}.status-item{text-align:center;flex-direction:column;align-items:center;display:flex}.status-label{color:#71717a;text-transform:uppercase;letter-spacing:.03em;font-size:.55rem}.status-value{color:#fff;font-size:1rem;font-weight:600}.reset-btn{color:#f87171;cursor:pointer;background:#ef44441a;border:1px solid #ef44444d;border-radius:.25rem;margin-top:.25rem;padding:.2rem .4rem;font-size:.6rem;transition:all .15s}.reset-btn:hover{background:#ef444433;border-color:#ef444480}.placement-demo-rule{color:#a1a1aa;text-align:center;border-top:1px solid #ffffff0f;margin-top:.625rem;padding-top:.5rem;font-size:.7rem}.placement-demo-rule strong{color:#fff}.text-vein{color:var(--color-vein)}.text-chamber{color:var(--color-chamber)}.rule-figure{background:#ffffff05;border:1px solid #ffffff0f;border-radius:.375rem;align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.5rem .75rem;display:flex}.rule-figure-content{flex:1;min-width:0}.rule-figure-content h4{color:#fff;margin:0 0 .125rem;font-size:.85rem;font-weight:600;line-height:1.3}.rule-figure-text{color:#a1a1aa;font-size:.75rem;line-height:1.45}.rule-figure-text p{margin:0}.rule-figure-text strong{color:#fff}.rule-figure-text button{color:#a1a1aa;cursor:pointer;background:#ffffff14;border:1px solid #ffffff1a;border-radius:.25rem;margin-top:.375rem;margin-right:.25rem;padding:.2rem .4rem;font-size:.65rem;transition:all .15s}.rule-figure-text button:hover{color:#fff;background:#ffffff1f}.rule-figure-visual{background:#00000040;border:1px solid #ffffff0f;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;width:120px;height:120px;display:flex;overflow:hidden}.rule-figure-visual svg{width:100%;height:100%}.scoring-cards{flex-direction:column;gap:.375rem;display:flex}.scoring-card{background:#ffffff05;border:1px solid #ffffff0d;border-radius:.25rem;align-items:center;gap:.75rem;padding:.625rem .75rem;display:flex}.scoring-card-info{flex:1;min-width:0}.scoring-card-info h4{margin:0 0 .25rem;font-size:.8rem;font-weight:600}.scoring-value{color:#fff;margin-bottom:.25rem;font-family:Inter,monospace;font-size:.9rem;font-weight:500}.scoring-card-info p{color:#a1a1aa;margin:0;font-size:.7rem;line-height:1.5}.scoring-card-visual{background:#0003;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;width:120px;height:100px;padding:.375rem;display:flex;overflow:hidden}.scoring-card-visual>div{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.scoring-card-visual svg{width:100%;max-width:100%;height:100%;max-height:100%}.scoring-card-visuals{background:#0003;border-radius:.25rem;flex-shrink:0;align-items:center;gap:.375rem;height:70px;padding:.25rem;display:flex;overflow:hidden}.scoring-card-visuals>div:not(.single-tile-icon){flex-shrink:0;width:80px!important;height:60px!important}.scoring-card-visuals svg{width:100%;max-width:100%;height:100%;max-height:100%}.single-tile-icon{flex-direction:column;flex-shrink:0;align-items:center;gap:.125rem;width:55px;display:flex}.single-tile-icon>div:first-child{width:45px;height:45px}.single-tile-label{color:var(--color-text-muted);text-align:center;white-space:nowrap;font-size:.6rem}.edge-match-visual{justify-content:center;gap:1rem;margin-top:.75rem;display:flex}.edge-match-case{background:#0003;border-radius:.375rem;flex-direction:column;flex:1;align-items:center;gap:.25rem;max-width:120px;padding:.375rem;display:flex}.edge-match-case>div:first-child{width:100%;height:60px}.edge-match-label{font-size:.7rem;font-weight:600}.edge-match-label.correct{color:var(--color-vein)}.edge-match-label.mismatch{color:#f87171}.rift-edge-scenario{background:#00000026;border-radius:.375rem;align-items:center;gap:1rem;margin:.75rem 0;padding:.75rem;display:flex}.rift-edge-badge-preview{flex-shrink:0}.rift-edge-context{flex-direction:column;flex:1;align-items:center;gap:.25rem;max-width:120px;display:flex}.rift-edge-context>div:first-child{width:100%;height:70px}.rift-edge-caption{color:var(--color-text-muted);text-align:center;font-size:.65rem}.ownership-scenario{background:#00000026;border-radius:.375rem;flex-direction:column;align-items:center;gap:.375rem;margin:.75rem 0;padding:.75rem;display:flex}.ownership-scenario>div:first-child{width:100px;height:80px}.ownership-caption{color:var(--color-text-muted);text-align:center;font-size:.7rem}.flip-rotate-visual{background:#00000026;border-radius:.375rem;justify-content:center;align-items:center;gap:.5rem;margin-top:.5rem;padding:.75rem;display:flex}.flip-rotate-step{flex-shrink:0}.flip-rotate-arrow{color:var(--color-text-muted);opacity:.6;font-size:1.2rem}.single-tile-rift-badge{color:var(--color-rift,#f59e0b);text-align:center;white-space:nowrap;margin-top:-.125rem;font-size:.6rem;font-weight:700}.zoomable-visual{cursor:zoom-in;border-radius:.375rem;transition:outline .15s;position:relative}.zoomable-visual:hover{outline:1px solid var(--color-border-hover,#ffffff26)}.zoomable-visual:hover .zoom-hint{opacity:1}.zoom-hint{opacity:0;pointer-events:none;font-size:.6rem;line-height:1;transition:opacity .15s;position:absolute;bottom:4px;right:4px}.zoom-overlay{z-index:10000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:zoom-out;background:#000000d9;justify-content:center;align-items:center;animation:.15s ease-out zoomFadeIn;display:flex;position:fixed;inset:0}@keyframes zoomFadeIn{0%{opacity:0}to{opacity:1}}.zoom-content{background:var(--color-surface,#1a1a2e);border:1px solid var(--color-border,#ffffff1a);cursor:default;transform-origin:50%;border-radius:.75rem;align-items:center;gap:1.5rem;max-width:90vw;max-height:85vh;padding:3rem;display:flex;position:relative;transform:scale(3.5)}.zoom-close{color:var(--color-text-muted);cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:.25rem;padding:.25rem .5rem;font-size:.9rem;transition:opacity .15s;position:absolute;top:.5rem;right:.5rem}.zoom-close:hover{opacity:1}.turn-steps{counter-reset:step;grid-template-columns:repeat(2,1fr);gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.turn-steps li{counter-increment:step;color:#a1a1aa;background:#ffffff08;border:1px solid #ffffff14;border-radius:.375rem;padding:.5rem .5rem .5rem 2.5rem;font-size:.8rem;line-height:1.4;position:relative}.turn-steps li:before{content:counter(step);color:#fff;background:#ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:.75rem;font-weight:600;display:flex;position:absolute;top:.5rem;left:.5rem}.turn-steps li strong{color:#fff}.end-game-scoring{margin-top:.5rem;padding-left:1.25rem;list-style:outside}.end-game-scoring li{color:#a1a1aa;padding:.125rem 0;font-size:.85rem}.end-game-scoring li strong{color:#fff}.tile-overview{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}.tile-card{background:#ffffff08;border:1px solid #ffffff14;border-radius:.5rem;flex-direction:column;transition:border-color .2s;display:flex;overflow:hidden}.tile-card:hover{border-color:var(--color-vein)}.tile-card-visual{aspect-ratio:1;background:#0000004d;justify-content:center;align-items:center;padding:.75rem;display:flex;position:relative}.tile-card-svg{width:100%;max-width:80px;height:100%;max-height:80px;overflow:visible}.tile-card-count{color:#71717a;background:#00000080;border:1px solid #ffffff0d;border-radius:.25rem;padding:.125rem .375rem;font-family:Inter,monospace;font-size:.65rem;position:absolute;top:.375rem;right:.375rem}.tile-card-info{border-top:1px solid #ffffff14;padding:.5rem}.tile-card-info h4{color:#fff;margin-bottom:.125rem;font-size:.8rem;font-weight:500}.tile-card-edges{text-transform:uppercase;letter-spacing:.05em;color:#52525b;font-size:.65rem}.controls-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}.control-item{background:#ffffff05;border:1px solid #ffffff0f;border-radius:.375rem;flex-direction:column;gap:.25rem;padding:.75rem;display:flex}.control-action{color:#fff;font-size:.85rem;font-weight:500}.control-key{color:var(--color-vein);background:#ffffff1a;border:1px solid #ffffff26;border-radius:.25rem;padding:.15rem .4rem;font-family:monospace;font-size:.75rem;font-weight:600;display:inline-block}.control-desc{color:#a1a1aa;font-size:.75rem;line-height:1.4}.contextual-hint{color:var(--color-text-muted);z-index:var(--z-tooltip);pointer-events:none;opacity:0;background:#09090bf2;border:1px solid #ffffff1a;border-radius:.5rem;padding:.5rem 1rem;font-size:.75rem;animation:4s ease-out forwards hintFadeInOut;position:fixed;bottom:6rem;left:50%;transform:translate(-50%)}.contextual-hint .hint-key{color:var(--color-vein);background:#ffffff1a;border-radius:.2rem;margin:0 .15rem;padding:.1rem .3rem;font-family:monospace;font-weight:600}@keyframes hintFadeInOut{0%{opacity:0;transform:translate(-50%)translateY(10px)}10%{opacity:1;transform:translate(-50%)translateY(0)}80%{opacity:1}to{opacity:0}}.first-time-hint{animation:6s ease-out forwards firstHintFade}@keyframes firstHintFade{0%{opacity:0;transform:translate(-50%)translateY(10px)}15%{opacity:1;transform:translate(-50%)translateY(0)}70%{opacity:1}to{opacity:0}}@keyframes pulse-brightness{0%,15%{filter:brightness()}30%{filter:brightness(.7)}45%,60%{filter:brightness()}75%{filter:brightness(1.35)}90%,to{filter:brightness()}}.feature-pulse{opacity:.9;animation:4s ease-in-out infinite pulse-brightness}.feature-complete{opacity:.3;filter:saturate(.15)brightness(.8);animation:1s ease-out forwards feature-drain}.feature-complete-highlight{transition:opacity .2s,filter .2s;opacity:.7!important;filter:saturate(.6)brightness(1.2)!important;animation:none!important}.floating-score{pointer-events:none;animation:1.8s ease-out forwards floating-score-rise}.floating-score text{font-family:Inter,system-ui,sans-serif}.stat-score.score-tick{color:#fff;text-shadow:0 0 8px var(--player-color,#fff);animation:.6s ease-out score-tick}@keyframes hex-shockwave-ring{0%{opacity:0;stroke-width:1.2px}12%{opacity:.3;stroke-width:1px}45%{opacity:.18;stroke-width:.7px}to{opacity:0;stroke-width:.3px}}.hex-shockwave-ring{opacity:0;pointer-events:none;animation:.45s ease-out forwards hex-shockwave-ring}.score-delta{color:var(--player-color,#2dd4bf);opacity:0;margin-left:.35rem;font-size:.7rem;font-weight:700;animation:1.8s ease-out .3s forwards floating-score-rise;display:inline-block}.header-icon-btn{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;min-width:28px;min-height:28px;margin-left:.5rem;padding:.2rem .6rem;font-size:.8rem;transition:all .2s;display:inline-flex}.header-icon-btn:hover{border-color:var(--color-text-main);color:var(--color-text-main);background:var(--color-surface-hover)}.fullscreen-btn-wrapper{align-items:center;display:inline-flex;position:relative}.fullscreen-hint{white-space:nowrap;letter-spacing:.02em;text-transform:none;color:var(--color-text-main);border:1px solid var(--color-border);cursor:pointer;pointer-events:auto;z-index:var(--z-tooltip);background:#09090beb;border-radius:6px;padding:.4rem .75rem;font-size:.75rem;font-weight:500;animation:6s forwards hint-lifecycle;position:absolute;bottom:calc(100% + 10px);right:0;box-shadow:0 4px 16px #0006,0 0 8px #2dd4bf1a}.fullscreen-hint:after{content:"";border:5px solid #0000;border-top-color:var(--color-border);position:absolute;top:100%;right:10px}@keyframes hint-lifecycle{0%{opacity:0;transform:translateY(4px)}8%{opacity:1;transform:translateY(0)}75%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}.game-container.fullscreen-active{width:100vw;height:100dvh;z-index:var(--z-fullscreen-overlay);gap:0;padding:0;position:fixed;inset:0;overflow:hidden}.fullscreen-active .game-board-container{background:var(--color-background);max-width:none;box-shadow:none;z-index:0;border:none;position:absolute;inset:0}.fullscreen-active .game-header{z-index:2;pointer-events:none;background:linear-gradient(#000000b3 0%,#0000 100%);max-width:none;padding:.75rem 1.5rem;position:absolute;top:0;left:0;right:0}.fullscreen-active .game-header>*{pointer-events:auto}.fullscreen-active .game-controls{z-index:2;-webkit-backdrop-filter:blur(12px);background:#09090bbf;border:1px solid #ffffff14;border-radius:12px;flex-direction:row;align-items:center;gap:.75rem;width:auto;max-width:none;min-height:auto;padding:.75rem;position:absolute;bottom:1rem;left:auto;right:1rem;transform:none;box-shadow:0 8px 32px #0006}.fullscreen-active .tile-preview{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;flex-direction:row;align-items:center;gap:.5rem;min-width:auto;min-height:auto;padding:.5rem .75rem}.fullscreen-active .tile-preview h3{display:none}.fullscreen-active .tile-preview .tile-label{height:auto;margin-bottom:0;font-size:.7rem}.fullscreen-active .tile-preview .rotation-buttons{gap:.25rem}.fullscreen-active .tile-preview .rotation-buttons .rotate-btn{padding:.25rem .4rem}.fullscreen-active .bank-controls{margin-bottom:0!important}.fullscreen-active .bank-controls button{padding:.4rem .75rem;font-size:.75rem}.fullscreen-active .source-selection-container{gap:.5rem}.fullscreen-active .source-card{padding:.5rem}.fullscreen-active .source-card .source-preview{width:70px!important;height:70px!important}.fullscreen-active .source-card .source-label{font-size:.7rem}.fullscreen-active .source-card .source-btn{padding:.3rem .5rem;font-size:.7rem}body:has(.fullscreen-active)>canvas{display:none!important}.container:has(.fullscreen-active){padding:0}.player-card{container-type:inline-size}.bot-controls{align-items:center;gap:.5rem;min-width:0;display:flex}.bot-difficulty-selector{border:1px solid var(--color-border);background:#0000004d;border-radius:6px;flex-wrap:wrap;flex:1 1 0;gap:3px;min-width:0;padding:3px;display:flex}.remove-bot-btn{color:#f87171;white-space:nowrap;border-color:#f871714d;flex-shrink:0;padding:.2rem .5rem;font-size:.7rem}.remove-bot-btn .remove-icon{display:none}@container (max-width:20rem){.remove-bot-btn .remove-text{display:none}.remove-bot-btn .remove-icon{font-size:1rem;line-height:1;display:inline}.remove-bot-btn{padding:.15rem .4rem}}.difficulty-pill{color:var(--color-text-muted);letter-spacing:.02em;text-transform:none;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:4px;flex:none;align-items:center;gap:4px;padding:.2rem .45rem;font-size:.65rem;font-weight:400;transition:all .2s;display:flex}.difficulty-pill:hover:not(.active){color:var(--color-text-main);background:#ffffff0f;border-color:#ffffff1a}.difficulty-pill.active{border-color:var(--pill-color,var(--color-vein));color:var(--color-text-main);box-shadow:0 0 8px color-mix(in srgb, var(--pill-color,var(--color-vein)) 30%, transparent);background:#ffffff14}@container (min-width:0){.difficulty-pill{flex:auto}}@container (max-width:31.25rem){.difficulty-pill{flex:1 0 calc(50% - 5px)}}.difficulty-pip{background:var(--pill-color,var(--color-text-muted));opacity:.5;border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:opacity .2s}.difficulty-pill.active .difficulty-pip{opacity:1;box-shadow:0 0 4px var(--pill-color,var(--color-vein))}.difficulty-label{line-height:1}.thinking-indicator{align-items:center;gap:.3rem;margin-left:.5rem;display:inline-flex}.thinking-spinner{color:var(--color-vein);text-align:center;width:1em;font-family:monospace;font-size:1rem;display:inline-block}.game-board-container.bot-thinking{border-color:color-mix(in srgb, var(--active-player-color,#2dd4bf) 30%, transparent);box-shadow:inset 0 0 100px #00000080, 0 0 20px color-mix(in srgb, var(--active-player-color,#2dd4bf) 8%, transparent), inset 0 0 30px color-mix(in srgb, var(--active-player-color,#2dd4bf) 3%, transparent);animation:2s ease-in-out infinite board-thinking-pulse}@keyframes board-thinking-pulse{0%,to{border-color:color-mix(in srgb, var(--active-player-color,#2dd4bf) 15%, transparent);box-shadow:inset 0 0 100px #00000080, 0 0 12px color-mix(in srgb, var(--active-player-color,#2dd4bf) 5%, transparent)}50%{border-color:color-mix(in srgb, var(--active-player-color,#2dd4bf) 35%, transparent);box-shadow:inset 0 0 100px #00000080, 0 0 25px color-mix(in srgb, var(--active-player-color,#2dd4bf) 12%, transparent), inset 0 0 40px color-mix(in srgb, var(--active-player-color,#2dd4bf) 4%, transparent)}}.rift-edge-line{animation:4s ease-in-out infinite rift-edge-pulse,5s linear infinite rift-dash-flow}@keyframes rift-edge-pulse{0%,35%,65%,to{opacity:.8;stroke-width:1.5px;filter:blur()drop-shadow(0 0 4px #9333ea80)}50%{opacity:.25;stroke-width:.5px;filter:blur(2px)}}@keyframes rift-dash-flow{to{stroke-dashoffset:-18px}}.rift-edge-dot{animation:4s ease-in-out infinite rift-dot-pulse}@keyframes rift-dot-pulse{0%,35%,65%,to{opacity:.9;r:2.5;filter:blur()drop-shadow(0 0 5px #9333ea99)}50%{opacity:.3;r:1;filter:blur(1.5px)}}.rift-symbol{pointer-events:none}.rift-core{filter:drop-shadow(0 0 6px var(--color-rift));animation:2s ease-in-out infinite rift-core-pulse}.rift-orbit-group{transform-origin:0 0;animation:4s linear infinite rift-orbit-spin}.rift-orbit-dot{filter:drop-shadow(0 0 4px var(--color-rift));animation:2s ease-in-out infinite rift-dot-breathe}@keyframes rift-orbit-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rift-core-pulse{0%,to{opacity:.3;r:2.5}50%{opacity:.7;r:4}}.vein-crystal-terminus{transform-origin:0 0;animation:3s ease-in-out infinite crystal-pulse}@keyframes crystal-pulse{0%,to{opacity:.8;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}.rift-pulse-bg{transform-origin:0 0;animation:3s ease-out infinite rift-pulse-wave}@keyframes rift-pulse-wave{0%{r:0;opacity:.6}70%{r:25;opacity:0}to{r:25;opacity:0}}@media (max-width:480px){.container{padding:.5rem}.config-panel{padding:1rem}.room-id-display{font-size:1.4rem}}@media (max-width:540px){.status-message{display:none}}
