:root{--bg: #0a0e1a;--surface: #141829;--surface-2: #1e2340;--border: #2a3055;--text: #e0e0f0;--text-dim: #8888aa;--primary: #f0a030;--primary-hover: #ffc060;--primary-glow: rgba(240, 160, 48, .4);--danger: #e04040;--success: #40c070;--sea: #0c2340;--island: #2a6030;--island-inhabited: #406820;--tortuga: #8b4513;--old-world: #6a4a8a;--red: #e04040;--blue: #4080e0;--green: #40c070;--purple: #8060c0;--orange: #e08030;--black: #606080;--gold-shimmer: linear-gradient(135deg, #f0a030, #ffd700, #f0a030);--ocean-gradient: linear-gradient(180deg, #0c1e38 0%, #0a1828 40%, #061020 100%)}*{margin:0;padding:0;box-sizing:border-box}body{background:#030508;color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;overflow:hidden;height:100vh;display:flex;align-items:center;justify-content:center}#root{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.app-frame{width:100%;height:100%;max-width:430px;max-height:932px;background:var(--bg);border-radius:0;overflow:hidden;display:flex;flex-direction:column;position:relative}@media(min-width:500px){.app-frame{border-radius:24px;border:1px solid rgba(240,160,48,.15);box-shadow:0 0 80px #f0a03014,0 0 200px #0a143c80,inset 0 0 60px #0000004d;position:relative}.app-frame:before{content:"";position:absolute;inset:-1px;border-radius:25px;padding:1px;background:conic-gradient(from var(--border-angle, 0deg),transparent 60%,rgba(240,160,48,.4) 80%,rgba(255,200,80,.6) 90%,rgba(240,160,48,.4) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:borderTrace 6s linear infinite;pointer-events:none;z-index:999}}@property --border-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@keyframes borderTrace{to{--border-angle: 360deg}}.screen{flex:1;display:flex;flex-direction:column;padding:20px;overflow-y:auto}.home-screen{align-items:center;justify-content:center;gap:24px}.title-section{text-align:center;position:relative}.game-title{font-size:2.2rem;font-weight:800;background:var(--gold-shimmer);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 3s linear infinite;filter:drop-shadow(0 2px 8px rgba(240,160,48,.4))}@keyframes shimmer{0%{background-position:200% center}to{background-position:-200% center}}.subtitle{color:var(--text-dim);margin-top:4px;letter-spacing:1px;font-size:.9rem}.connection-status{color:var(--danger);font-size:.8rem;margin-top:8px;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.welcome{text-align:center;margin-bottom:8px}.menu-section,.form-group{display:flex;flex-direction:column;gap:10px;width:100%;max-width:280px}.divider{text-align:center;color:var(--text-dim);font-size:.85rem;margin:4px 0}.input{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:12px 16px;border-radius:10px;font-size:1rem;outline:none;width:100%;transition:border-color .2s,box-shadow .2s}.input:focus{border-color:var(--primary);box-shadow:0 0 12px #f0a03026}.btn{padding:10px 20px;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.btn:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 50%);opacity:0;transition:opacity .2s}.btn:hover:after{opacity:1}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{background:var(--primary);color:#000;box-shadow:0 2px 12px #f0a0304d}.btn-primary:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 4px 20px #f0a03080;transform:translateY(-1px)}.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border);border-color:#f0a0304d;transform:translateY(-1px)}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 2px 12px #e040404d}.btn-danger:hover:not(:disabled){box-shadow:0 4px 20px #e0404080;transform:translateY(-1px)}.btn-small{padding:7px 14px;font-size:.82rem;border-radius:8px}.lobby-screen{gap:14px;align-items:center;position:relative}.lobby-header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px}.lobby-anchor{font-size:2rem;animation:anchorSwing 3s ease-in-out infinite;transform-origin:top center}@keyframes anchorSwing{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}.lobby-title{font-size:1.2rem;font-weight:700;color:var(--primary)}.lobby-subtitle{font-size:.78rem;color:var(--text-dim)}.code-section{display:flex;flex-direction:column;align-items:center;gap:6px}.code-label{font-size:.75rem;color:var(--text-dim)}.code-copy-btn{font-size:.72rem;padding:4px 10px}.crew-section{width:100%}.crew-heading{display:flex;align-items:center;gap:8px;font-size:.9rem;margin-bottom:8px}.crew-count-badge{background:#f0a03026;color:var(--primary);font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:8px;border:1px solid rgba(240,160,48,.3)}.player-info{display:flex;align-items:center;gap:10px}.player-avatar{font-size:1.3rem}.player-details{display:flex;align-items:center;gap:6px}.player-name{font-weight:600;font-size:.88rem}.player-you-tag,.player-bot-tag{font-size:.62rem;padding:1px 5px;border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.player-you-tag{background:#4080e026;color:var(--blue);border:1px solid rgba(64,128,224,.3)}.player-bot-tag{background:#8060c01f;color:var(--purple);border:1px solid rgba(128,96,192,.3)}.bot-btn-row{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.lobby-status{text-align:center;color:var(--text-dim);font-size:.8rem;font-style:italic;padding:4px 0}.lobby-ready-btn{align-self:center;min-width:180px;font-size:1.05rem;padding:12px 24px}.bot-controls{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;border:1px dashed var(--border);border-radius:10px;background:#1e23404d}.game-code{font-size:2.2rem;font-weight:700;background:var(--gold-shimmer);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 3s linear infinite;text-align:center;letter-spacing:8px;font-family:Courier New,monospace;filter:drop-shadow(0 0 8px rgba(240,160,48,.3))}.player-list{list-style:none;display:flex;flex-direction:column;gap:8px}.player-item{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--surface);border-radius:10px;border:1px solid var(--border);transition:border-color .3s,transform .2s}.player-item:hover{border-color:#f0a03033;transform:translate(2px)}.ready-badge{background:var(--success);color:#000;padding:2px 10px;border-radius:6px;font-size:.75rem;font-weight:700;box-shadow:0 0 8px #40c07066;animation:readyGlow 2s ease-in-out infinite}@keyframes readyGlow{0%,to{box-shadow:0 0 6px #40c0704d}50%{box-shadow:0 0 14px #40c07099}}.waiting-badge{background:var(--surface-2);color:var(--text-dim);padding:2px 10px;border-radius:6px;font-size:.75rem}.game-screen{padding:0;gap:0;position:relative}.game-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#141829d9;border-bottom:1px solid rgba(42,48,85,.6);font-size:.85rem;flex-shrink:0;z-index:10}.round-pill{background:#f0a03026;color:var(--primary);font-weight:700;font-size:.75rem;padding:4px 10px;border-radius:12px;border:1px solid rgba(240,160,48,.3);letter-spacing:.5px}.actions-pill{background:#ffffff0f;color:var(--text);font-weight:600;font-size:.78rem;padding:3px 8px;border-radius:10px;border:1px solid rgba(255,255,255,.1)}.game-header .turn-info{color:var(--text-dim)}.map-container{flex:1;overflow:hidden;position:relative;background:var(--ocean-gradient);touch-action:none}.map-container:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 600px 400px at 30% 70%,rgba(12,35,64,.6),transparent),radial-gradient(ellipse 400px 300px at 70% 30%,rgba(20,40,80,.4),transparent);animation:oceanShift 20s ease-in-out infinite alternate;pointer-events:none;z-index:0}@keyframes oceanShift{0%{opacity:.6}50%{opacity:1}to{opacity:.7}}.hex-grid-viewport{width:100%;height:100%;position:relative;z-index:1;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}.hex-grid-viewport svg{width:100%;height:100%;transform-origin:center center;will-change:transform}.zoom-controls{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;gap:4px;z-index:20}.zoom-btn{width:32px;height:32px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#141829e6;color:var(--text);font-size:1.1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,transform .1s;line-height:1}.zoom-btn:hover{background:#1e2340f2;border-color:#f0a03066;transform:scale(1.05)}.zoom-btn:active{transform:scale(.95)}.zoom-reset{font-size:.9rem;margin-top:2px}.zoom-indicator{position:absolute;top:10px;left:50%;transform:translate(-50%);background:#141829bf;backdrop-filter:blur(6px);color:var(--text-dim);font-size:.68rem;padding:3px 8px;border-radius:8px;border:1px solid rgba(255,255,255,.08);z-index:20;pointer-events:none}.floating-resources{position:absolute;bottom:10px;left:50%;transform:translate(-50%);display:flex;gap:4px;z-index:20;padding:5px 8px;background:#0a0e1aeb;border-radius:14px;border:1px solid rgba(255,255,255,.08);box-shadow:0 4px 20px #0006}.res-chip{display:flex;align-items:center;gap:3px;font-size:.72rem;font-weight:600;padding:3px 7px;border-radius:8px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);white-space:nowrap}.res-chip.gold{color:var(--primary);border-color:#f0a03033}.res-chip.supplies{color:var(--success);border-color:#40c07033}.res-chip.fame{color:var(--purple);border-color:#8060c033}.res-chip.crew{color:var(--blue);border-color:#4080e033}.res-chip.islands{color:var(--green);border-color:#40c07033}.bottom-panel{background:#141829f7;border-top:1px solid rgba(240,160,48,.08);padding:0 12px 10px;flex-shrink:0;max-height:42%;overflow-y:auto;transition:max-height .3s ease,padding .3s ease}.bottom-panel.collapsed{max-height:36px;padding-bottom:0;overflow:hidden}.panel-toggle{display:flex;align-items:center;justify-content:center;width:100%;padding:6px 0 4px;background:none;border:none;cursor:pointer}.panel-toggle-icon{color:var(--text-dim);font-size:.7rem;padding:2px 16px;border-radius:4px;background:#ffffff0a;transition:color .2s}.panel-toggle:hover .panel-toggle-icon{color:var(--primary)}.resources-bar{display:flex;gap:10px;justify-content:center;margin-bottom:8px;font-size:.85rem;padding:6px 10px;background:#0003;border-radius:10px;border:1px solid rgba(42,48,85,.5)}.resource{display:flex;align-items:center;gap:4px}.resource .value{font-weight:700}.resource.gold .value{color:var(--primary)}.resource.supplies .value{color:var(--success)}.resource.fame .value{color:var(--purple)}.resource.crew-count .value{color:var(--blue)}.resource.actions .value{color:var(--text)}.action-buttons{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:8px}.action-buttons .btn{flex:0 0 auto;font-size:.8rem;padding:6px 12px}.stats-bar{display:flex;justify-content:center;gap:12px;padding:4px 0;font-size:.8rem;color:var(--text-dim)}.attack-section{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.reward-select{display:flex;align-items:center;gap:4px;font-size:.75rem}.reward-select select{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-size:.75rem}.upgrade-menu{display:flex;flex-wrap:wrap;gap:4px;padding:4px 0}.tile-info{text-align:center;padding:4px 0;font-size:.85rem;color:var(--text-dim)}.tile-info strong{color:var(--text)}.toast{position:absolute;bottom:60px;left:50%;transform:translate(-50%);background:#1e2340f2;color:var(--text);padding:10px 20px;border-radius:12px;font-size:.85rem;border:1px solid rgba(240,160,48,.2);z-index:100;animation:toastIn .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;box-shadow:0 8px 32px #00000080;backdrop-filter:blur(12px)}.toast.error{border-color:#e0404066;color:var(--danger);box-shadow:0 8px 32px #e0404026}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(16px) scale(.9)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.crew-list{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:6px}.crew-badge{background:linear-gradient(135deg,var(--surface-2),rgba(30,35,64,.8));border:1px solid var(--border);border-radius:8px;padding:4px 10px;font-size:.75rem;display:flex;align-items:center;gap:4px;transition:border-color .2s,transform .15s}.crew-badge:hover{border-color:#f0a0304d;transform:translateY(-1px)}.crew-badge .emoji{font-size:.9rem}.hex-sea{fill:#0c2340;stroke:#1a3a5c;stroke-width:.5}.hex-inhabited{fill:#2a5c20;stroke:#4a9a40;stroke-width:.5}.hex-uninhabited{fill:#3a5a30;stroke:#5a7a50;stroke-width:.5}.hex-tortuga{fill:#6a3a1a;stroke:#a85a20;stroke-width:.5}.hex-old-world{fill:#4a3a6a;stroke:#8a6ab0;stroke-width:.5}.hex-cove{fill:#1a3a4c;stroke:#3a6a8c;stroke-width:.5}.hex-tile{cursor:pointer;transition:filter .15s}.hex-tile:hover{filter:brightness(1.4) saturate(1.1)}.hex-highlight{fill:#f0a03026;stroke:var(--primary);stroke-width:1.5;stroke-dasharray:4 2;cursor:pointer;pointer-events:all;animation:highlightPulse 2s ease-in-out infinite}@keyframes highlightPulse{0%,to{fill:#f0a0301a;stroke-opacity:.6}50%{fill:#f0a03040;stroke-opacity:1}}.hex-selected{stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 0 8px rgba(255,255,255,.6))}.ship-token{font-size:14px;pointer-events:none;filter:drop-shadow(0 1px 3px rgba(0,0,0,.6))}.ship-self circle{filter:drop-shadow(0 0 4px rgba(64,128,224,.6))}.ship-label{pointer-events:none;font-family:system-ui,sans-serif}.flag-icon{font-size:10px;pointer-events:none}.tile-label{font-size:7px;fill:#fff6;text-anchor:middle;pointer-events:none}.home-screen{background:radial-gradient(ellipse 300px 200px at 20% 80%,rgba(12,35,64,.4),transparent),radial-gradient(ellipse 200px 300px at 80% 20%,rgba(64,40,100,.2),transparent),var(--bg);position:relative;overflow:hidden}.home-screen:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle 3px at 20% 30%,rgba(240,200,100,.3),transparent 6px),radial-gradient(circle 2px at 40% 20%,rgba(200,180,255,.2),transparent 4px),radial-gradient(circle 2px at 60% 50%,rgba(240,200,100,.25),transparent 5px),radial-gradient(circle 3px at 80% 40%,rgba(200,180,255,.2),transparent 6px),radial-gradient(circle 2px at 10% 60%,rgba(240,200,100,.2),transparent 4px),radial-gradient(circle 2px at 90% 70%,rgba(200,180,255,.15),transparent 5px),radial-gradient(circle 2px at 50% 80%,rgba(240,200,100,.2),transparent 4px),radial-gradient(circle 3px at 30% 90%,rgba(200,180,255,.2),transparent 6px);animation:starsFloat 40s linear infinite;pointer-events:none;z-index:0}@keyframes starsFloat{0%{transform:translateY(0) translate(0)}to{transform:translateY(25%) translate(-10%)}}.home-screen>*{position:relative;z-index:1}.turn-indicator{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;font-weight:600}.turn-indicator.my-turn{background:#f0a03026;color:var(--primary);animation:myTurnPulse 2s ease-in-out infinite;border:1px solid rgba(240,160,48,.3)}@keyframes myTurnPulse{0%,to{box-shadow:0 0 4px #f0a03033}50%{box-shadow:0 0 16px #f0a03080}}.resource.gold .value{color:var(--primary);text-shadow:0 0 6px rgba(240,160,48,.3)}.screen{animation:screenFadeIn .3s cubic-bezier(.4,0,.2,1)}@keyframes screenFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.lobby-screen{background:radial-gradient(ellipse 250px 250px at 50% 50%,rgba(20,30,60,.5),transparent)}.combat-flash{position:absolute;inset:0;background:radial-gradient(circle at center,rgba(255,80,40,.3),transparent 70%);animation:combatFlash .5s ease-out forwards;pointer-events:none;z-index:50}@keyframes combatFlash{0%{opacity:1}to{opacity:0}}.victory-overlay{position:absolute;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;z-index:200;animation:victoryIn .5s cubic-bezier(.4,0,.2,1)}.victory-overlay h2{font-size:1.8rem;background:var(--gold-shimmer);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 2s linear infinite}@keyframes victoryIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.action-buttons .btn-primary{position:relative}.action-buttons .btn-primary:not(:disabled):before{content:"";position:absolute;inset:-2px;border-radius:10px;background:linear-gradient(135deg,#f0a03066,#ffc8501a);z-index:-1;opacity:0;animation:actionGlow 3s ease-in-out infinite}@keyframes actionGlow{0%,to{opacity:.3}50%{opacity:.7}}.bottom-panel::-webkit-scrollbar{width:4px}.bottom-panel::-webkit-scrollbar-track{background:transparent}.bottom-panel::-webkit-scrollbar-thumb{background:#f0a03033;border-radius:2px}.upgrade-menu .btn{background:linear-gradient(135deg,var(--surface-2),rgba(30,35,64,.8));border:1px solid var(--border);transition:all .2s}.upgrade-menu .btn:hover:not(:disabled){border-color:var(--primary);box-shadow:0 0 8px #f0a03033}.hex-tile .owned-glow{animation:ownershipPulse 3s ease-in-out infinite}@keyframes ownershipPulse{0%,to{opacity:.5}50%{opacity:.9}}.compass-rose{position:absolute;bottom:8px;right:8px;width:32px;height:32px;opacity:.15;font-size:28px;pointer-events:none;animation:compassSpin 60s linear infinite}@keyframes compassSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.screen-shake{animation:screenShake .4s cubic-bezier(.36,.07,.19,.97) both}@keyframes screenShake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-3px,0,0)}40%,60%{transform:translate3d(3px,0,0)}}.ocean-waves-css{position:absolute;bottom:0;left:0;width:100%;height:16px;background:linear-gradient(90deg,#0c234000,#3c8cdc0f,#0c234000);opacity:.5;pointer-events:none;z-index:2}.ambient-particles{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}.particle{position:absolute;border-radius:50%;opacity:0;animation:particleFloat linear infinite}.particle-bubble{background:radial-gradient(circle,rgba(100,200,255,.5),transparent 70%);box-shadow:0 0 3px #64c8ff4d}.particle-sparkle{background:radial-gradient(circle,rgba(255,215,100,.6),transparent 70%);box-shadow:0 0 4px #ffd76466}.particle-dust{background:radial-gradient(circle,rgba(200,200,255,.3),transparent 70%)}@keyframes particleFloat{0%{opacity:0;transform:translateY(0) translate(0) scale(.5)}10%{opacity:.7}50%{opacity:.4;transform:translateY(-40px) translate(15px) scale(1)}90%{opacity:.6}to{opacity:0;transform:translateY(-80px) translate(-10px) scale(.3)}}.resource-pops{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:6px;z-index:50;pointer-events:none}.resource-pop{font-size:1.1rem;font-weight:800;text-shadow:0 2px 8px rgba(0,0,0,.7);animation:popUp 1.6s cubic-bezier(.22,1,.36,1) forwards;white-space:nowrap;letter-spacing:1px}.resource-pop-gold{color:gold;text-shadow:0 0 10px rgba(255,215,0,.5)}.resource-pop-supplies{color:#60e090;text-shadow:0 0 10px rgba(96,224,144,.4)}.resource-pop-fame{color:#c080ff;text-shadow:0 0 10px rgba(192,128,255,.4)}.resource-pop-crew{color:#60b0ff;text-shadow:0 0 10px rgba(96,176,255,.4)}@keyframes popUp{0%{opacity:0;transform:translateY(10px) scale(.5)}15%{opacity:1;transform:translateY(-5px) scale(1.3)}30%{transform:translateY(-10px) scale(1)}to{opacity:0;transform:translateY(-50px) scale(.8)}}.action-burst{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:40}.burst-ring{position:absolute;top:50%;left:50%;width:60px;height:60px;margin:-30px 0 0 -30px;border-radius:50%;border:2px solid rgba(240,160,48,.6);animation:burstExpand .5s ease-out forwards}.burst-ring-2{border-color:#ffc8504d;animation-delay:.1s;animation-duration:.6s}@keyframes burstExpand{0%{transform:scale(0);opacity:1}to{transform:scale(3);opacity:0}}.loot-sparkle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:45}.sparkle-shard{position:absolute;width:4px;height:4px;background:gold;border-radius:50%;box-shadow:0 0 6px gold,0 0 12px #ffd70080;animation:sparkleExplode 1s ease-out forwards;transform-origin:center center}@keyframes sparkleExplode{0%{opacity:1;transform:rotate(var(--r, 0deg)) translateY(0) scale(1)}50%{opacity:1}to{opacity:0;transform:rotate(var(--r, 0deg)) translateY(-40px) scale(0)}}.hex-tile:hover path{filter:brightness(1.5) saturate(1.2) drop-shadow(0 0 4px rgba(255,255,255,.15))}.hex-highlight{stroke-dasharray:4 2;animation:highlightPulse 2s ease-in-out infinite,dashSpin 8s linear infinite}@keyframes dashSpin{0%{stroke-dashoffset:0}to{stroke-dashoffset:24}}.ship-self text{animation:shipBob 3s ease-in-out infinite}@keyframes shipBob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.res-chip{transition:transform .15s ease,box-shadow .2s ease,background .2s ease}.res-chip:hover{transform:scale(1.08);box-shadow:0 0 8px #ffffff1a;background:#ffffff14}.btn{transition:transform .1s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}.btn:active:not(:disabled){transform:scale(.94)}.btn-end-turn{position:relative;overflow:hidden}.btn-end-turn:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 40%,rgba(255,255,255,.05) 50%,transparent 60%);animation:btnSheen 4s ease-in-out infinite}@keyframes btnSheen{0%,to{transform:translate(-100%) rotate(45deg)}50%{transform:translate(100%) rotate(45deg)}}.bottom-panel{transition:max-height .35s cubic-bezier(.4,0,.2,1),padding .35s cubic-bezier(.4,0,.2,1)}.floating-resources{animation:floatUp .4s cubic-bezier(.22,1,.36,1)}@keyframes floatUp{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.game-header{animation:headerSlide .3s ease-out}@keyframes headerSlide{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.toast{animation:toastIn .35s cubic-bezier(.22,1,.36,1),toastOut .3s ease-in 3.5s forwards}@keyframes toastOut{to{opacity:0;transform:translate(-50%) translateY(10px) scale(.95)}}.turn-indicator.my-turn{animation:myTurnPulse 2s ease-in-out infinite,turnBadgePop .3s cubic-bezier(.22,1,.36,1)}@keyframes turnBadgePop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.victory-overlay:before{content:"";position:absolute;inset:0;background:radial-gradient(circle 2px at 15% 20%,#ffd700,transparent 3px),radial-gradient(circle 2px at 35% 15%,#ff6b6b,transparent 3px),radial-gradient(circle 2px at 55% 25%,#4ecdc4,transparent 3px),radial-gradient(circle 2px at 75% 10%,#ffd700,transparent 3px),radial-gradient(circle 2px at 85% 30%,#a78bfa,transparent 3px),radial-gradient(circle 3px at 25% 80%,#ffd700,transparent 4px),radial-gradient(circle 2px at 45% 85%,#ff6b6b,transparent 3px),radial-gradient(circle 2px at 65% 75%,#4ecdc4,transparent 3px),radial-gradient(circle 2px at 95% 60%,#ffd700,transparent 3px);animation:confettiFall 3s linear infinite;pointer-events:none;opacity:.6}@keyframes confettiFall{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.scoreboard{display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--surface);border-radius:12px;border:1px solid rgba(240,160,48,.2);min-width:250px}.scoreboard-row{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;border-radius:8px}.scoreboard-row.winner{background:#f0a0301a;border:1px solid rgba(240,160,48,.3)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.tooltip-wrapper{position:relative;display:inline-flex}.tooltip-bubble{position:absolute;background:#1a1e30;border:1px solid var(--border);color:var(--text);padding:6px 10px;border-radius:8px;font-size:.72rem;line-height:1.3;pointer-events:none;z-index:1000;box-shadow:0 4px 16px #00000080;animation:tooltipIn .15s ease-out;max-width:200px;white-space:normal}@keyframes tooltipIn{0%{opacity:0;transform:translateY(4px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.tooltip-top{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip-bottom{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip-left{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip-right{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.header-right{display:flex;align-items:center;gap:8px}.help-btn{background:none;border:none;font-size:1.1rem;cursor:pointer;padding:4px;border-radius:6px;transition:background .2s;line-height:1}.help-btn:hover{background:var(--surface-2)}.help-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:900;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.help-panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:90%;max-width:380px;max-height:80vh;overflow-y:auto;padding:20px;box-shadow:0 8px 40px #0009;animation:slideUp .25s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.help-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.help-header h3{font-size:1.1rem;color:var(--primary)}.help-close{background:none;border:none;color:var(--text-dim);font-size:1.2rem;cursor:pointer;padding:4px 8px;border-radius:6px}.help-close:hover{background:var(--surface-2);color:var(--text)}.help-section{margin-bottom:16px}.help-section h4{font-size:.85rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.setting-toggle{display:flex;align-items:center;gap:10px;padding:8px 0;cursor:pointer;font-size:.88rem}.setting-toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}.help-grid{display:flex;flex-direction:column;gap:8px}.help-card{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;background:var(--surface-2);border-radius:10px;border:1px solid var(--border)}.help-card-icon{font-size:1.2rem;flex-shrink:0;margin-top:1px}.help-card strong{color:var(--primary);font-size:.82rem}.help-card p{font-size:.76rem;color:var(--text-dim);margin-top:2px;line-height:1.3}.help-text{font-size:.82rem;color:var(--text-dim);line-height:1.5}.help-vp{margin-top:6px;font-family:monospace;font-size:.75rem;color:var(--primary);background:var(--surface-2);padding:6px 10px;border-radius:6px}.dice-overlay{position:fixed;inset:0;z-index:800;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#02040aeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:diceOverlayIn .4s cubic-bezier(.22,1,.36,1);overflow:hidden}@keyframes diceOverlayIn{0%{opacity:0;backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(12px)}}.dice-bg-effects{position:absolute;inset:0;pointer-events:none;overflow:hidden}.dice-radial-burst{position:absolute;top:50%;left:50%;width:400px;height:400px;margin:-200px 0 0 -200px;border-radius:50%;background:radial-gradient(circle,rgba(240,160,48,.08) 0%,transparent 70%);animation:burstPulse 3s ease-in-out infinite}@keyframes burstPulse{0%,to{transform:scale(.8);opacity:.4}50%{transform:scale(1.2);opacity:.8}}.dice-energy-ring{position:absolute;top:50%;left:50%;width:200px;height:200px;margin:-100px 0 0 -100px;border-radius:50%;border:2px solid rgba(240,160,48,.4);animation:energyExpand .8s ease-out infinite}@keyframes energyExpand{0%{transform:scale(.5);opacity:1}to{transform:scale(3);opacity:0}}.dice-header{display:flex;align-items:center;gap:16px;z-index:2;animation:diceSlideDown .5s cubic-bezier(.22,1,.36,1)}@keyframes diceSlideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.dice-player{font-size:.85rem;font-weight:700;padding:6px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d}.dice-attacker{color:var(--danger);border-color:#e040404d}.dice-defender{color:var(--blue);border-color:#4080e04d}.dice-me{box-shadow:0 0 16px #f0a0304d;border-color:#f0a03080;color:var(--primary);background:#f0a03014}.dice-vs{font-size:1.6rem;font-weight:900;color:var(--primary);text-shadow:0 0 20px rgba(240,160,48,.5);animation:vsPulse 1s ease-in-out infinite}@keyframes vsPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.dice-shake-prompt{display:flex;flex-direction:column;align-items:center;gap:8px;z-index:2;animation:shakePromptIn .4s ease-out .3s both}@keyframes shakePromptIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.shake-phone-icon{font-size:2.5rem;animation:phoneShake .4s ease-in-out infinite alternate;filter:drop-shadow(0 0 8px rgba(240,160,48,.4))}@keyframes phoneShake{0%{transform:rotate(-12deg) translate(-3px)}to{transform:rotate(12deg) translate(3px)}}.shake-text{font-size:1.3rem;font-weight:800;color:var(--primary);text-transform:uppercase;letter-spacing:2px;text-shadow:0 0 12px rgba(240,160,48,.4);animation:shakeTextPulse .6s ease-in-out infinite alternate}@keyframes shakeTextPulse{0%{transform:scale(1);opacity:.8}to{transform:scale(1.05);opacity:1}}.shake-subtext{font-size:.75rem;color:var(--text-dim)}.shake-intensity-bar{width:160px;height:6px;border-radius:3px;background:#ffffff14;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.shake-fill{height:100%;background:linear-gradient(90deg,var(--primary),#ff6030);border-radius:3px;transition:width .1s ease-out;box-shadow:0 0 8px #f0a03080}.dice-arena{display:flex;align-items:center;justify-content:center;gap:20px;z-index:2;padding:20px;cursor:pointer;min-height:180px}.dice-set{display:flex;flex-direction:column;align-items:center;gap:8px}.dice-set-label{font-size:1.2rem;opacity:.7}.dice-row{display:flex;gap:8px;perspective:400px}.die{width:56px;height:56px;border-radius:10px;display:flex;align-items:center;justify-content:center;transform-style:preserve-3d;transition:transform .3s cubic-bezier(.22,1,.36,1)}.die-face-svg rect{fill:var(--surface);stroke:var(--border);stroke-width:1.5}.die-face-svg .die-dot{fill:var(--text)}.die-attacker .die-face-svg rect{fill:#e040401f;stroke:#e0404066}.die-attacker .die-face-svg .die-dot{fill:var(--danger)}.die-defender .die-face-svg rect{fill:#4080e01f;stroke:#4080e066}.die-defender .die-face-svg .die-dot{fill:var(--blue)}.die-blank{width:100%;height:100%;border-radius:10px;background:var(--surface-2);border:1px dashed var(--border);animation:diePlaceholderPulse 1.5s ease-in-out infinite}@keyframes diePlaceholderPulse{0%,to{opacity:.3}50%{opacity:.6}}.die-spinning{animation:dieSpin .08s linear infinite,dieJitter .12s ease-in-out infinite}@keyframes dieSpin{0%{transform:rotateX(0) rotateY(0) rotate(0)}25%{transform:rotateX(90deg) rotateY(45deg) rotate(30deg)}50%{transform:rotateX(180deg) rotateY(90deg) rotate(60deg)}75%{transform:rotateX(270deg) rotateY(135deg) rotate(90deg)}to{transform:rotateX(360deg) rotateY(180deg) rotate(120deg)}}@keyframes dieJitter{0%,to{translate:0 0}25%{translate:-2px 1px}50%{translate:2px -1px}75%{translate:-1px -2px}}.die-landed{animation:dieLand .4s cubic-bezier(.22,1,.36,1) both}@keyframes dieLand{0%{transform:rotateX(720deg) rotateY(360deg) scale(.5);opacity:0}60%{transform:rotateX(0) rotateY(0) scale(1.15);opacity:1}80%{transform:scale(.95)}to{transform:scale(1);opacity:1}}.dice-total{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:8px;animation:totalReveal .4s cubic-bezier(.22,1,.36,1)}@keyframes totalReveal{0%{opacity:0;transform:scale(.5) translateY(10px)}50%{transform:scale(1.2) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}.dice-total-value{font-size:2rem;font-weight:900;letter-spacing:-1px}.dice-total-attacker .dice-total-value{color:var(--danger);text-shadow:0 0 16px rgba(224,64,64,.5)}.dice-total-defender .dice-total-value{color:var(--blue);text-shadow:0 0 16px rgba(64,128,224,.5)}.dice-modifier{font-size:.68rem;color:var(--primary);opacity:.8}.dice-clash{font-size:2.5rem;z-index:5;animation:clashExplode .6s cubic-bezier(.22,1,.36,1);filter:drop-shadow(0 0 12px rgba(255,200,50,.8))}@keyframes clashExplode{0%{transform:scale(0) rotate(-45deg);opacity:0}50%{transform:scale(1.5) rotate(10deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.dice-result{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 30px;border-radius:16px;z-index:3;animation:resultSlam .5s cubic-bezier(.22,1,.36,1)}@keyframes resultSlam{0%{opacity:0;transform:scale(2) translateY(-20px);filter:blur(10px)}50%{transform:scale(.9);filter:blur(0)}to{opacity:1;transform:scale(1) translateY(0)}}.dice-win{background:linear-gradient(135deg,#f0a03026,#ffd70014);border:1px solid rgba(240,160,48,.4);box-shadow:0 0 40px #f0a03033,inset 0 0 30px #f0a0300d}.dice-lose{background:linear-gradient(135deg,#e040401a,#961e1e0d);border:1px solid rgba(224,64,64,.3);box-shadow:0 0 30px #e0404026}.dice-spectate{background:#ffffff08;border:1px solid rgba(255,255,255,.1)}.dice-result-text{font-size:1.5rem;font-weight:900;letter-spacing:1px}.dice-win .dice-result-text{background:var(--gold-shimmer);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 2s linear infinite}.dice-lose .dice-result-text{color:var(--danger);text-shadow:0 0 12px rgba(224,64,64,.4)}.dice-reward{font-size:.85rem;color:var(--text);padding:4px 12px;border-radius:8px;background:#ffffff0a}.dice-dismiss{font-size:.7rem;color:var(--text-dim);opacity:.6;margin-top:4px;animation:pulse 2s ease-in-out infinite}.turn-tip{display:flex;align-items:center;gap:8px;padding:8px 12px;background:linear-gradient(135deg,#f0a0301a,#f0a0300d);border:1px solid rgba(240,160,48,.25);border-radius:10px;margin:0 12px;cursor:pointer;animation:tipSlide .3s ease-out}@keyframes tipSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.turn-tip-icon{font-size:1rem;flex-shrink:0}.turn-tip-text{font-size:.78rem;color:var(--text);flex:1}.turn-tip-dismiss{color:var(--text-dim);font-size:.8rem;opacity:.6}.tutorial-overlay{position:fixed;inset:0;background:#000c;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:950;animation:fadeIn .3s ease-out}.tutorial-card{background:var(--surface);border:1px solid var(--primary);border-radius:20px;padding:28px 24px;max-width:340px;width:90%;text-align:center;box-shadow:0 0 60px #f0a03026;animation:slideUp .35s ease-out}.tutorial-card h3{font-size:1.2rem;margin-bottom:20px;color:var(--primary)}.tutorial-steps{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;text-align:left}.tutorial-step{display:flex;align-items:flex-start;gap:10px;font-size:.85rem;color:var(--text)}.step-num{width:24px;height:24px;background:var(--primary);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.75rem;flex-shrink:0}.tutorial-mode{position:relative}.tutorial-banner{background:linear-gradient(135deg,#f0a0301f,#f0a0300a);border-bottom:1px solid rgba(240,160,48,.3);padding:12px 14px;flex-shrink:0;animation:tipSlide .3s ease-out}.tutorial-banner-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.tutorial-step-badge{background:var(--primary);color:#000;font-size:.68rem;font-weight:700;padding:2px 7px;border-radius:10px;flex-shrink:0}.tutorial-step-title{flex:1;font-size:.9rem;color:var(--primary);font-weight:700}.tutorial-exit-btn{background:none;border:none;color:var(--text-dim);font-size:1rem;cursor:pointer;padding:2px 6px;border-radius:4px}.tutorial-exit-btn:hover{background:var(--surface-2);color:var(--text)}.tutorial-step-msg{font-size:.8rem;color:var(--text);line-height:1.4;margin-bottom:8px}.tutorial-next-btn{margin-top:4px}.tutorial-complete-overlay{position:fixed;inset:0;background:#000c;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:950;animation:fadeIn .3s ease-out}.tutorial-complete-card{background:var(--surface);border:1px solid var(--primary);border-radius:20px;padding:28px 24px;max-width:320px;width:85%;text-align:center;box-shadow:0 0 60px #f0a03026;animation:slideUp .35s ease-out}.tutorial-complete-card h3{font-size:1.3rem;margin-bottom:12px;color:var(--primary)}.tutorial-complete-card p{font-size:.85rem;color:var(--text-dim);margin-bottom:18px;line-height:1.4}.player-item{animation:playerSlideIn .4s cubic-bezier(.22,1,.36,1) both}.player-item:nth-child(1){animation-delay:0s}.player-item:nth-child(2){animation-delay:.08s}.player-item:nth-child(3){animation-delay:.16s}.player-item:nth-child(4){animation-delay:.24s}@keyframes playerSlideIn{0%{opacity:0;transform:translate(-20px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}.action-buttons .btn{animation:actionBtnIn .3s cubic-bezier(.22,1,.36,1) both}.action-buttons .btn:nth-child(1){animation-delay:0s}.action-buttons .btn:nth-child(2){animation-delay:.05s}.action-buttons .btn:nth-child(3){animation-delay:.1s}.action-buttons .btn:nth-child(4){animation-delay:.15s}.action-buttons .btn:nth-child(5){animation-delay:.2s}.action-buttons .btn:nth-child(6){animation-delay:.25s}.action-buttons .btn:nth-child(7){animation-delay:.3s}.action-buttons .btn:nth-child(8){animation-delay:.35s}@keyframes actionBtnIn{0%{opacity:0;transform:translateY(12px) scale(.85)}to{opacity:1;transform:translateY(0) scale(1)}}.menu-section>*{animation:menuItemIn .5s cubic-bezier(.22,1,.36,1) both}.menu-section>:nth-child(1){animation-delay:.1s}.menu-section>:nth-child(2){animation-delay:.2s}.menu-section>:nth-child(3){animation-delay:.3s}.menu-section>:nth-child(4){animation-delay:.4s}@keyframes menuItemIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.game-code{animation:shimmer 3s linear infinite,codeReveal .8s cubic-bezier(.22,1,.36,1);transform-origin:center}@keyframes codeReveal{0%{opacity:0;transform:scale(.5) rotateX(40deg);filter:blur(10px)}50%{filter:blur(2px)}to{opacity:1;transform:scale(1) rotateX(0);filter:blur(0) drop-shadow(0 0 8px rgba(240,160,48,.3))}}.game-title{animation:shimmer 3s linear infinite,titleDrop .7s cubic-bezier(.22,1,.36,1)}@keyframes titleDrop{0%{opacity:0;transform:translateY(-30px) scale(1.2);filter:blur(6px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.subtitle{animation:subtitleFade .8s ease-out .3s both}@keyframes subtitleFade{0%{opacity:0;transform:translateY(8px);letter-spacing:6px}to{opacity:1;transform:translateY(0);letter-spacing:1px}}.res-chip{transition:transform .15s ease,box-shadow .2s ease,background .2s ease;animation:chipPop .25s cubic-bezier(.22,1,.36,1)}@keyframes chipPop{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.crew-badge{animation:crewBounce .35s cubic-bezier(.22,1,.36,1) both}.crew-badge:nth-child(1){animation-delay:0s}.crew-badge:nth-child(2){animation-delay:.06s}.crew-badge:nth-child(3){animation-delay:.12s}.crew-badge:nth-child(4){animation-delay:.18s}.crew-badge:nth-child(5){animation-delay:.24s}.crew-badge:nth-child(6){animation-delay:.3s}@keyframes crewBounce{0%{opacity:0;transform:scale(0) rotate(-10deg)}60%{transform:scale(1.15) rotate(2deg)}to{opacity:1;transform:scale(1) rotate(0)}}.round-pill{transition:transform .4s cubic-bezier(.22,1,.36,1);transform-style:preserve-3d}.round-pill:active{transform:rotateX(360deg)}.actions-pill{transition:color .3s,border-color .3s,box-shadow .3s}.hex-selected{stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 0 8px rgba(255,255,255,.6));animation:hexSelectPop .25s cubic-bezier(.22,1,.36,1)}@keyframes hexSelectPop{0%{stroke-width:0;filter:drop-shadow(0 0 20px rgba(255,255,255,1))}to{stroke-width:2.5;filter:drop-shadow(0 0 8px rgba(255,255,255,.6))}}.input{transition:border-color .2s,box-shadow .3s,transform .2s}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #f0a0301a,0 0 12px #f0a03026;transform:scale(1.01)}.btn-primary:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at var(--click-x, 50%) var(--click-y, 50%),rgba(255,255,255,.3) 0%,transparent 60%);opacity:0;transition:opacity .4s}.btn-primary:active:before{opacity:1;transition:opacity 0s}.lobby-screen:after{content:"";position:absolute;bottom:0;left:0;right:0;height:120px;background:linear-gradient(180deg,transparent,rgba(12,35,64,.3));pointer-events:none;animation:lobbyWave 8s ease-in-out infinite alternate}@keyframes lobbyWave{0%{opacity:.4;transform:translateY(0)}to{opacity:.8;transform:translateY(-10px)}}.ready-badge{animation:readyGlow 2s ease-in-out infinite,readyPop .3s cubic-bezier(.22,1,.36,1)}@keyframes readyPop{0%{transform:scale(0)}60%{transform:scale(1.2)}to{transform:scale(1)}}.bot-controls{animation:menuItemIn .4s cubic-bezier(.22,1,.36,1)}.bottom-panel{transform-origin:bottom;animation:panelReveal .4s cubic-bezier(.22,1,.36,1)}@keyframes panelReveal{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.help-card{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.help-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d;border-color:#f0a03033}.scoreboard-row.winner{animation:winnerGlow 2s ease-in-out infinite;position:relative;overflow:hidden}.scoreboard-row.winner:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 40%,rgba(240,160,48,.1) 50%,transparent 60%);animation:btnSheen 3s ease-in-out infinite}@keyframes winnerGlow{0%,to{box-shadow:0 0 8px #f0a03033}50%{box-shadow:0 0 20px #f0a03066}}.tile-info{animation:tileInfoIn .3s ease-out}@keyframes tileInfoIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.upgrade-menu .btn{animation:actionBtnIn .3s cubic-bezier(.22,1,.36,1) both}.upgrade-menu .btn:nth-child(1){animation-delay:0s}.upgrade-menu .btn:nth-child(2){animation-delay:.06s}.upgrade-menu .btn:nth-child(3){animation-delay:.12s}.upgrade-menu .btn:nth-child(4){animation-delay:.18s}.form-group{animation:menuItemIn .5s cubic-bezier(.22,1,.36,1) .15s both}.zoom-btn:hover{background:#1e2340f2;border-color:#f0a03066;transform:scale(1.1) rotate(5deg)}.map-container{animation:mapFadeIn .5s ease-out}@keyframes mapFadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.panel-toggle-icon{transition:color .2s,transform .3s cubic-bezier(.22,1,.36,1)}.panel-toggle:hover .panel-toggle-icon{color:var(--primary);transform:scale(1.4)}.stats-bar span{transition:text-shadow .3s,transform .2s}.stats-bar span:hover{text-shadow:0 0 8px currentColor;transform:scale(1.1)}.connection-status{animation:pulse 1.5s ease-in-out infinite,connectionShake .5s ease-in-out}@keyframes connectionShake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.pirate-ship-art{width:180px;height:100px;margin:0 auto -8px;animation:shipFloat 5s ease-in-out infinite;filter:drop-shadow(0 4px 12px rgba(0,0,0,.4))}@keyframes shipFloat{0%,to{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-6px) rotate(.5deg)}}.ship-svg{width:100%;height:100%}.ship-water{fill:#143c7866}.ship-hull{fill:#5a3418;stroke:#3a2010;stroke-width:.8}.ship-deck{fill:#7a4a28;stroke:#5a3418;stroke-width:.5}.ship-mast{stroke:#8a6040;stroke-width:2;stroke-linecap:round}.ship-sail{fill:#f0e8d8;stroke:#d0c8b0;stroke-width:.5;opacity:.9}.ship-flag{fill:#1a1a1a;stroke:none}.ship-crows-nest{fill:#6a4020}.ship-star{fill:gold}.wave-divider{width:200px;height:12px;margin:4px auto;opacity:.3}.wave-path{fill:none;stroke:var(--primary);stroke-width:1.5;stroke-linecap:round}.flavor-text{font-size:.72rem;color:var(--text-dim);text-align:center;padding:8px 16px;font-style:italic;line-height:1.4;max-width:280px;min-height:36px;display:flex;align-items:center;justify-content:center;transition:opacity .4s ease,transform .4s ease}.flavor-visible{opacity:.7;transform:translateY(0)}.flavor-hidden{opacity:0;transform:translateY(4px)}.skull-loader{display:flex;flex-direction:column;align-items:center;gap:8px}.skull-icon{font-size:2rem;animation:skullBob 1.5s ease-in-out infinite}@keyframes skullBob{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.05)}}.skull-text{font-size:.8rem;color:var(--text-dim)}.skull-dots{display:flex;gap:4px}.skull-dot{width:6px;height:6px;border-radius:50%;background:var(--primary);opacity:.4;animation:dotPulse 1.2s ease-in-out infinite}.skull-dot:nth-child(2){animation-delay:.2s}.skull-dot:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.sailing-transition{position:fixed;inset:0;background:var(--ocean-gradient);z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;animation:sailFadeIn .4s ease-out}@keyframes sailFadeIn{0%{opacity:0}to{opacity:1}}.sailing-ship{font-size:3rem;animation:sailBounce 1s ease-in-out infinite,sailDrift 4s linear infinite}@keyframes sailBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes sailDrift{0%{margin-left:-40px}to{margin-left:40px}}.sailing-wake{width:80px;height:4px;border-radius:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:wakeSpread 1.5s ease-in-out infinite}@keyframes wakeSpread{0%,to{width:60px;opacity:.3}50%{width:100px;opacity:.6}}.sailing-text{color:var(--text-dim);font-size:.9rem;letter-spacing:2px;animation:pulse 2s ease-in-out infinite}.lobby-countdown{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#0a0e1ae6;backdrop-filter:blur(8px);z-index:50;animation:fadeIn .3s ease-out}.countdown-number{font-size:4rem;font-weight:900;color:var(--primary);text-shadow:0 0 30px rgba(240,160,48,.5);animation:countPop 1s cubic-bezier(.22,1,.36,1)}@keyframes countPop{0%{transform:scale(2);opacity:0;filter:blur(8px)}40%{transform:scale(.9);opacity:1;filter:blur(0)}to{transform:scale(1)}}.countdown-text{color:var(--text-dim);font-size:.85rem;letter-spacing:1px}.victory-celebration{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:300;background:#000000e0;backdrop-filter:blur(8px);animation:fadeIn .5s ease-out}.victory-confetti-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none}.confetti-piece{position:absolute;top:-10px;width:8px;height:8px;border-radius:2px;animation:confettiDrop linear infinite}@keyframes confettiDrop{0%{transform:translateY(-10px) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:.3}}.victory-content{text-align:center;z-index:2;animation:victoryIn .6s cubic-bezier(.22,1,.36,1) .3s both}.victory-crown{font-size:3rem;animation:crownBounce 1.5s ease-in-out infinite;filter:drop-shadow(0 0 16px rgba(255,215,0,.5))}@keyframes crownBounce{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-8px) rotate(3deg)}}.victory-name{font-size:1.8rem;font-weight:900;background:var(--gold-shimmer);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 2s linear infinite;margin:12px 0 6px}.victory-subtitle{font-size:.85rem;color:var(--text-dim);font-style:italic}.pirate-loader{display:flex;flex-direction:column;align-items:center;gap:12px}.loader-compass{font-size:2.5rem;animation:compassSpin 3s linear infinite;filter:drop-shadow(0 0 8px rgba(240,160,48,.3))}.loader-quote{font-size:.82rem;color:var(--text-dim);font-style:italic;animation:quoteFade 2.5s ease-in-out infinite}@keyframes quoteFade{0%,to{opacity:.6}50%{opacity:1}}.event-feed{position:absolute;top:8px;left:8px;z-index:20;max-width:220px}.feed-toggle{display:flex;align-items:center;gap:6px;background:var(--glass-bg);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:20px;padding:5px 12px;font-size:.72rem;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;max-width:220px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.feed-toggle:hover{background:#ffffff1f;border-color:var(--gold)}.feed-toggle-icon{font-size:.9rem;flex-shrink:0}.feed-latest{opacity:.8;animation:feedSlideIn .3s ease}@keyframes feedSlideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:.8;transform:translate(0)}}.feed-list{margin-top:6px;background:var(--glass-bg);backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:12px;padding:8px;max-height:180px;overflow-y:auto;animation:panelReveal .25s ease}.feed-empty{font-size:.7rem;color:var(--text-dim);text-align:center;padding:12px 0;font-style:italic}.feed-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;font-size:.7rem;color:var(--text-secondary);animation:feedItemIn .3s ease;transition:background .15s}.feed-item:hover{background:#ffffff0f}@keyframes feedItemIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.feed-icon{flex-shrink:0;font-size:.8rem}.feed-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-milestone .feed-text{color:var(--gold);font-weight:600}.feed-combat .feed-text{color:var(--danger)}.feed-system .feed-text{color:var(--info);font-style:italic}.mini-scoreboard{position:relative}.scoreboard-toggle{display:flex;align-items:center;gap:4px;background:var(--glass-bg);backdrop-filter:blur(8px);border:1px solid var(--glass-border);border-radius:14px;padding:3px 10px;font-size:.7rem;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.scoreboard-toggle:hover{border-color:var(--gold);background:#f0a0301a}.rank-badge{font-weight:700;color:var(--gold);font-size:.8rem}.scoreboard-label{font-size:.65rem;opacity:.8}.scoreboard-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--glass-bg);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:14px;padding:10px;z-index:100;animation:panelReveal .2s ease;box-shadow:0 8px 32px #0006}.scoreboard-header-row{display:flex;justify-content:space-between;font-size:.6rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);padding:0 4px 6px;border-bottom:1px solid var(--glass-border);margin-bottom:6px}.scoreboard-entry{display:flex;justify-content:space-between;align-items:center;padding:5px 6px;border-radius:8px;margin-bottom:3px;transition:background .15s}.scoreboard-entry:hover{background:#ffffff0f}.scoreboard-me{background:#3b82f61f;border:1px solid rgba(59,130,246,.3)}.scoreboard-leader{position:relative}.scoreboard-leader:before{content:"👑";position:absolute;left:-2px;top:-4px;font-size:.6rem;animation:crownBounce 2s ease infinite}.entry-left{display:flex;align-items:center;gap:6px}.entry-rank{font-weight:700;font-size:.75rem;color:var(--text-dim);width:14px}.entry-name{font-size:.72rem;color:var(--text-primary);font-weight:500}.entry-you{font-size:.55rem;color:var(--info);border:1px solid rgba(59,130,246,.4);border-radius:4px;padding:0 3px;font-weight:600}.entry-right{text-align:right}.entry-vp{font-size:.82rem;font-weight:700;color:var(--gold)}.entry-details{display:flex;gap:4px;font-size:.55rem;color:var(--text-dim)}.scoreboard-footer{margin-top:8px;padding-top:6px;border-top:1px solid var(--glass-border);font-size:.6rem;color:var(--text-dim);text-align:center}.tile-detail{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#00000080;animation:fadeIn .2s ease}.tile-detail-card{background:var(--glass-bg);backdrop-filter:blur(24px);border:1px solid var(--glass-border);border-radius:18px;padding:20px;min-width:240px;max-width:300px;animation:tileDetailPop .3s cubic-bezier(.34,1.56,.64,1);box-shadow:0 16px 48px #00000080}@keyframes tileDetailPop{0%{opacity:0;transform:scale(.85) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.tile-detail-header{display:flex;align-items:center;gap:12px;margin-bottom:14px}.tile-detail-emoji{font-size:2rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.tile-detail-name{font-size:1rem;font-weight:700;color:var(--text-primary);margin:0}.tile-detail-type{font-size:.65rem;color:var(--text-dim);text-transform:capitalize}.tile-detail-body{display:flex;flex-direction:column;gap:8px}.detail-row{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:var(--text-secondary);padding:4px 0}.detail-perk{color:var(--gold);font-style:italic;font-size:.72rem}.detail-players{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.detail-label{font-size:.68rem;color:var(--text-dim);margin-right:4px}.detail-player-chip{font-size:.68rem;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:8px;padding:2px 8px;color:var(--text-primary)}.achievement-toast{position:fixed;top:60px;left:50%;transform:translate(-50%);z-index:300;display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#f0a03033,#ffc8001a);backdrop-filter:blur(20px);border:1px solid rgba(240,160,48,.5);border-radius:16px;padding:12px 20px;animation:achievementIn .4s cubic-bezier(.34,1.56,.64,1),achievementOut .4s ease 3s forwards;box-shadow:0 4px 24px #f0a0304d,0 0 0 1px #ffffff0d}@keyframes achievementIn{0%{opacity:0;transform:translate(-50%) translateY(-20px) scale(.8)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes achievementOut{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-20px)}}.achievement-icon{font-size:1.8rem;animation:achievementBounce .6s ease .2s}@keyframes achievementBounce{0%,to{transform:scale(1)}50%{transform:scale(1.3) rotate(10deg)}}.achievement-body{display:flex;flex-direction:column}.achievement-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);font-weight:600}.achievement-title{font-size:.9rem;font-weight:700;color:var(--text-primary)}.ship-status{margin-top:8px;padding:8px 10px;background:#ffffff08;border-radius:10px;border:1px solid var(--glass-border)}.ship-status-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.ship-status-icon{font-size:1rem;animation:shipBob 3s ease-in-out infinite}.ship-status-name{font-size:.72rem;font-weight:600;color:var(--gold);letter-spacing:.02em}.ship-upgrades-grid{display:flex;flex-direction:column;gap:3px}.upgrade-bar{display:flex;align-items:center;gap:6px;font-size:.65rem}.upgrade-bar-icon{width:16px;text-align:center;font-size:.75rem}.upgrade-bar-track{display:flex;gap:3px}.upgrade-pip{width:12px;height:5px;border-radius:3px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);transition:all .3s ease}.pip-filled{background:linear-gradient(135deg,var(--gold),#ffcc00);border-color:#f0a03080;box-shadow:0 0 6px #f0a03066}.upgrade-bar-label{color:var(--text-dim);font-size:.6rem;min-width:40px}.turn-banner{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:250;display:flex;align-items:center;gap:14px;padding:16px 32px;background:linear-gradient(135deg,#f0a03040,#ffc80026);backdrop-filter:blur(20px);border:2px solid rgba(240,160,48,.6);border-radius:20px;box-shadow:0 0 40px #f0a0304d,inset 0 0 20px #f0a0301a;animation:turnBannerIn .4s cubic-bezier(.34,1.56,.64,1),turnBannerOut .5s ease 1.7s forwards;pointer-events:none}@keyframes turnBannerIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.5) rotate(-5deg)}to{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}}@keyframes turnBannerOut{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.1)}}.turn-banner-icon{font-size:2rem;animation:anchorSwing 1s ease infinite}.turn-banner-text{font-size:1.2rem;font-weight:800;color:var(--gold);text-shadow:0 2px 8px rgba(240,160,48,.4);letter-spacing:.02em}.action-buttons .btn-small{position:relative;overflow:hidden}.action-buttons .btn-small:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transform:translate(-100%);transition:transform .5s ease}.action-buttons .btn-small:hover:after{transform:translate(100%)}.action-buttons .btn-danger{border-color:#ef444480;background:#ef44441a}.action-buttons .btn-danger:hover{background:#ef444433;box-shadow:0 0 12px #ef44444d}.action-buttons .btn-primary:last-child{transition:all .3s ease}.crew-badge{display:inline-flex;align-items:center;gap:4px;background:#ffffff0f;border:1px solid var(--glass-border);border-radius:10px;padding:3px 8px;font-size:.68rem;color:var(--text-secondary);transition:all .2s ease}.crew-badge:hover{background:#f0a03014;border-color:#f0a0304d;transform:translateY(-1px)}.crew-badge .emoji{font-size:.8rem}.tile-info p{position:relative}.tile-info p strong{background:linear-gradient(90deg,var(--text-primary),var(--gold),var(--text-primary));background-size:200% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 3s ease-in-out infinite}.stats-bar span{transition:all .2s ease;cursor:default}.stats-bar span:hover{transform:scale(1.1);filter:brightness(1.2)}.attack-section{display:flex;flex-direction:column;gap:6px;padding:8px;background:#ef44440d;border:1px solid rgba(239,68,68,.15);border-radius:10px;animation:fadeIn .2s ease}.reward-select{display:flex;align-items:center;gap:6px;font-size:.7rem}.reward-select select{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:6px;padding:2px 6px;color:var(--text-primary);font-size:.7rem}.upgrade-menu{display:flex;flex-direction:column;gap:4px;padding:6px;background:#ffffff05;border-radius:8px;border:1px solid var(--glass-border);animation:panelReveal .2s ease}.game-over-overlay{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;background:#000000b3;backdrop-filter:blur(8px);animation:fadeIn .5s ease}.game-over-card{position:relative;background:linear-gradient(160deg,#141928f2,#0a0c18fa);border:2px solid var(--gold);border-radius:24px;padding:28px 24px;min-width:280px;max-width:340px;text-align:center;animation:tileDetailPop .5s cubic-bezier(.34,1.56,.64,1);box-shadow:0 0 60px #f0a03033,0 16px 48px #00000080;overflow:hidden}.game-over-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti-piece{position:absolute;top:-20px;font-size:1.2rem;animation:confettiFall 3s linear infinite}.game-over-header{margin-bottom:20px}.game-over-crown{font-size:3rem;display:block;margin-bottom:8px;animation:crownBounce 2s ease infinite;filter:drop-shadow(0 4px 12px rgba(240,160,48,.4))}.game-over-title{font-size:1.5rem;font-weight:800;color:var(--gold);margin:0 0 4px;text-shadow:0 2px 12px rgba(240,160,48,.3)}.game-over-condition{font-size:.78rem;color:var(--text-dim);font-style:italic;margin:0}.game-over-standings{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.standing-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:#ffffff08;border:1px solid var(--glass-border);transition:all .2s ease}.standing-row:hover{background:#ffffff0f}.standing-winner{background:#f0a03014;border-color:#f0a0304d}.standing-me{border-color:#3b82f666}.standing-rank{font-size:.85rem;font-weight:700;width:24px;color:var(--text-dim)}.standing-winner .standing-rank{color:var(--gold)}.standing-name{flex:1;font-size:.78rem;font-weight:600;color:var(--text-primary);text-align:left}.standing-stats{display:flex;gap:6px;font-size:.6rem;color:var(--text-dim)}.standing-vp{font-weight:700;font-size:.78rem;color:var(--gold);min-width:36px;text-align:right}.game-over-btn{width:100%;padding:12px;font-size:.9rem;font-weight:700;border-radius:14px}.game-over-summary{max-width:400px;min-width:320px;max-height:85vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(240,160,48,.3) transparent}.game-over-my-rank{font-size:.75rem;color:var(--text-dim);margin:6px 0 0}.game-over-my-rank strong{color:var(--gold)}.game-over-summary{--player-red: #ef4444;--player-blue: #3b82f6;--player-green: #22c55e;--player-purple: #a855f7;--player-orange: #f97316;--player-black: #94a3b8}.summary-tabs{display:flex;gap:4px;margin-bottom:16px;background:#0003;border-radius:12px;padding:3px}.summary-tab{flex:1;padding:8px 6px;font-size:.7rem;font-weight:600;border:none;background:transparent;color:var(--text-dim);border-radius:10px;cursor:pointer;transition:all .2s}.summary-tab:hover{background:#ffffff0d;color:var(--text-primary)}.summary-tab-active{background:#f0a03026;color:var(--gold);box-shadow:0 0 12px #f0a0301a}.summary-content{min-height:200px;margin-bottom:16px}.awards-grid{display:flex;flex-direction:column;gap:8px}.award-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#ffffff08;border:1px solid var(--glass-border);animation:awardSlideIn .4s cubic-bezier(.34,1.56,.64,1) both;transition:all .2s}.award-card:hover{background:#ffffff0f}.award-mine{background:#3b82f614;border-color:#3b82f64d;box-shadow:0 0 20px #3b82f61a}.award-revealing{opacity:.5;animation:awardPulse 1s ease infinite}.award-emoji{font-size:1.6rem;flex-shrink:0;width:36px;text-align:center;filter:drop-shadow(0 2px 6px rgba(0,0,0,.3))}.award-info{flex:1;text-align:left;min-width:0}.award-title{font-size:.78rem;font-weight:700;color:var(--gold);line-height:1.2}.award-desc{font-size:.62rem;color:var(--text-dim);line-height:1.3;margin-top:1px}.award-meta{display:flex;justify-content:space-between;align-items:center;margin-top:4px;gap:8px}.award-player{font-size:.65rem;font-weight:600}.award-you{color:#3b82f6e6}.award-value{font-size:.65rem;font-weight:700;color:var(--text-primary);white-space:nowrap;background:#ffffff0f;padding:2px 6px;border-radius:6px}.standing-breakdown{display:flex;gap:5px;font-size:.58rem;color:var(--text-dim);flex-wrap:wrap}.vp-formula{margin-top:10px;font-size:.55rem;color:var(--text-dim);opacity:.6;text-align:center;padding:6px;border-top:1px solid var(--glass-border)}.stats-grid{display:flex;flex-direction:column;gap:12px}.stats-player{background:#ffffff05;border:1px solid var(--glass-border);border-radius:12px;padding:10px 12px}.stats-me{background:#3b82f60d;border-color:#3b82f640}.stats-player-name{font-size:.78rem;font-weight:700;margin-bottom:6px}.stats-you{font-size:.65rem;color:#3b82f6cc;font-weight:400}.stats-rows{display:grid;grid-template-columns:1fr 1fr;gap:3px 12px}.stat-row{display:flex;align-items:center;gap:4px;font-size:.62rem;padding:2px 0}.stat-icon{width:14px;text-align:center;flex-shrink:0}.stat-label{flex:1;color:var(--text-dim)}.stat-value{font-weight:700;color:var(--text-primary);min-width:16px;text-align:right}.my-awards-bar{display:flex;align-items:center;gap:6px;padding:8px 10px;margin-bottom:12px;background:#3b82f60f;border-radius:10px;border:1px solid rgba(59,130,246,.15)}.my-awards-label{font-size:.62rem;color:var(--text-dim);white-space:nowrap}.my-award-chip{font-size:1rem;cursor:default}@keyframes awardSlideIn{0%{opacity:0;transform:translate(-20px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes awardPulse{0%,to{opacity:.3}50%{opacity:.6}}.action-toast-bar{position:absolute;top:46px;left:50%;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:.35rem;padding:.35rem .8rem;background:#000000bf;backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:20px;font-size:.75rem;white-space:nowrap;animation:toastSlideDown .35s cubic-bezier(.34,1.56,.64,1),toastFadeOut .4s ease 2.6s forwards;pointer-events:none;box-shadow:0 4px 16px #0006}@keyframes toastSlideDown{0%{opacity:0;transform:translate(-50%) translateY(-14px) scale(.92)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes toastFadeOut{0%{opacity:1}to{opacity:0;transform:translate(-50%) translateY(-8px)}}.action-toast-pip{width:8px;height:8px;border-radius:50%;flex-shrink:0}.action-toast-name{font-weight:700}.action-toast-label{color:#fffc}.action-toast-combat{color:#ffa040;font-weight:600;margin-left:.2rem}.live-feed{position:absolute;top:8px;left:8px;z-index:30;max-width:220px}.live-feed-toggle{display:flex;align-items:center;gap:.3rem;background:#0000008c;backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:.3rem .6rem;color:#fff;font-size:.7rem;cursor:pointer;transition:background .2s;max-width:220px;overflow:hidden}.live-feed-toggle:hover{background:#000000b3}.live-feed-icon{font-size:.85rem;flex-shrink:0}.live-feed-latest{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;opacity:.8}.live-feed-count{font-size:.6rem;background:#ffd70040;color:gold;padding:.1rem .35rem;border-radius:8px;font-weight:700;flex-shrink:0}.live-feed-expanded .live-feed-toggle{border-radius:10px 10px 0 0}.live-feed-list{background:#000000a6;backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.08);border-top:none;border-radius:0 0 10px 10px;max-height:200px;overflow-y:auto;padding:.2rem 0}.live-feed-list::-webkit-scrollbar{width:3px}.live-feed-list::-webkit-scrollbar-thumb{background:#ffd70033;border-radius:2px}.live-feed-empty{padding:.6rem;text-align:center;color:#ffffff4d;font-size:.65rem;font-style:italic}.live-feed-entry{display:flex;align-items:center;gap:.3rem;padding:.2rem .5rem;font-size:.65rem;animation:feedSlide .25s ease;border-bottom:1px solid rgba(255,255,255,.03)}.live-feed-mine{background:#ffd7000a}@keyframes feedSlide{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.live-feed-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.live-feed-round{color:#ffffff4d;font-size:.55rem;flex-shrink:0}.live-feed-actor{font-weight:700;flex-shrink:0;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-feed-action{color:#ffffffb3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-feed-combat{color:#ffa040;font-weight:600;font-size:.6rem}.leaderboard{position:absolute;top:8px;right:8px;z-index:30}.leaderboard-toggle{display:flex;align-items:center;gap:.35rem;background:#0000008c;backdrop-filter:blur(6px);border:1px solid rgba(255,215,0,.15);border-radius:10px;padding:.3rem .6rem;color:#fff;font-size:.7rem;cursor:pointer;transition:background .2s}.leaderboard-toggle:hover{background:#000000b3}.leaderboard-expanded .leaderboard-toggle{border-radius:10px 10px 0 0}.leaderboard-rank{font-weight:800;color:gold;font-size:.8rem}.leaderboard-label{color:#ffffffb3}.leaderboard-list{background:#000000b3;backdrop-filter:blur(8px);border:1px solid rgba(255,215,0,.1);border-top:none;border-radius:0 0 10px 10px;padding:.2rem 0;min-width:200px;animation:lbSlide .2s ease}@keyframes lbSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.lb-row{display:flex;align-items:center;gap:.3rem;padding:.35rem .5rem;cursor:pointer;transition:background .15s;border-bottom:1px solid rgba(255,255,255,.04)}.lb-row:hover{background:#ffffff0f}.lb-row:last-child{border-bottom:none}.lb-me{background:#ffd7000f}.lb-active{border-left:2px solid #ffd700}.lb-pos{font-size:.7rem;font-weight:700;min-width:20px;text-align:center}.lb-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.lb-name{font-size:.72rem;font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70px}.lb-you{font-size:.55rem;color:gold;font-weight:400;margin-left:.2rem}.lb-turn{color:gold;font-size:.6rem;animation:turnBlink 1s ease-in-out infinite}.lb-stats{display:flex;gap:.25rem;font-size:.6rem;color:#fff9}.lb-vp{font-weight:700;color:gold}.inspector-backdrop{position:fixed;inset:0;z-index:200;background:#00000080;display:flex;align-items:flex-end;justify-content:center;animation:inspFadeIn .2s ease}@keyframes inspFadeIn{0%{opacity:0}to{opacity:1}}.inspector-drawer{position:relative;width:380px;max-width:95vw;max-height:80vh;background:linear-gradient(180deg,#0a1628,#0f1e3a);border:1px solid rgba(255,215,0,.2);border-radius:16px 16px 0 0;padding:1rem;overflow-y:auto;animation:inspSlideUp .3s cubic-bezier(.34,1.56,.64,1)}@keyframes inspSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.inspector-close{position:absolute;top:.6rem;right:.6rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:50%;width:26px;height:26px;font-size:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.inspector-close:hover{background:#ff505066}.inspector-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.8rem}.inspector-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0}.inspector-name{font-size:1.1rem;font-weight:800}.inspector-you{font-size:.7rem;color:gold;font-weight:400}.inspector-status{display:flex;gap:.5rem;font-size:.7rem;color:#fff9;margin-top:.1rem}.inspector-active-badge{color:gold}.inspector-section{margin-bottom:.8rem}.inspector-section-title{font-size:.7rem;font-weight:700;color:#ffd700b3;text-transform:uppercase;letter-spacing:.5px;margin:0 0 .4rem;padding-bottom:.25rem;border-bottom:1px solid rgba(255,255,255,.06)}.inspector-res-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.inspector-res{display:flex;flex-direction:column;align-items:center;background:#ffffff0a;border-radius:8px;padding:.35rem .2rem}.inspector-res-icon{font-size:1.1rem}.inspector-res-val{font-size:.95rem;font-weight:800;color:#fff;font-variant-numeric:tabular-nums}.inspector-res-label{font-size:.55rem;color:#fff6;text-transform:uppercase}.inspector-upgrades{display:flex;flex-direction:column;gap:.3rem}.inspector-upgrade-row{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;color:#fffc;padding:.15rem 0}.inspector-pips{display:flex;gap:3px}.inspector-pip{width:10px;height:10px;border-radius:3px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15)}.inspector-pip.pip-on{background:gold;border-color:gold;box-shadow:0 0 4px #ffd7004d}.inspector-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.2rem}.insp-stat{display:flex;align-items:center;gap:.3rem;font-size:.7rem;padding:.15rem .3rem;border-radius:4px}.insp-stat-icon{font-size:.75rem;flex-shrink:0}.insp-stat-label{flex:1;color:#ffffff80}.insp-stat-val{font-weight:700;color:#fff;font-variant-numeric:tabular-nums}.game-over-buttons{display:flex;gap:.6rem;justify-content:center;margin-top:.6rem}.replay-btn-main{background:linear-gradient(135deg,#2a1a4a,#1a3a5a)!important;border-color:#6a5acd!important}.replay-btn-main:hover{background:linear-gradient(135deg,#3a2a5a,#2a4a6a)!important}.replay-overlay{position:fixed;inset:0;z-index:2000;background:#000000eb;display:flex;align-items:center;justify-content:center;animation:replayFadeIn .3s ease}@keyframes replayFadeIn{0%{opacity:0}to{opacity:1}}.replay-container{position:relative;width:380px;max-width:95vw;max-height:95vh;background:linear-gradient(180deg,#0a1628,#0f1e3a);border:1px solid rgba(255,215,0,.3);border-radius:16px;padding:1rem .8rem .8rem;display:flex;flex-direction:column;gap:.5rem;overflow:hidden;box-shadow:0 0 40px #0009,0 0 80px #00326433}.replay-close{position:absolute;top:.5rem;right:.5rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:50%;width:28px;height:28px;font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:background .2s}.replay-close:hover{background:#ff505066}.replay-title{text-align:center;font-size:1rem;font-weight:700;color:gold;display:flex;align-items:center;justify-content:center;gap:.4rem}.replay-title-icon{font-size:1.2rem}.replay-round{font-size:.7rem;color:#ffd70099;font-weight:400;margin-left:.5rem}.replay-map{background:#060e1a;border-radius:10px;border:1px solid rgba(255,255,255,.06);overflow:hidden;flex:1;min-height:200px;max-height:340px;display:flex;align-items:center;justify-content:center}.replay-svg{width:100%;height:100%}.replay-ship{transition:transform .3s ease}.combat-pulse{animation:combatFlash .6s ease-out}@keyframes combatFlash{0%{r:4;opacity:.8}to{r:14;opacity:0}}.replay-action-label{text-align:center;font-size:.75rem;color:#fffc;min-height:1.4em;padding:.2rem .5rem;background:#ffffff0a;border-radius:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-actor{font-weight:700}.replay-combat-result{color:#ffa040;font-weight:600}.replay-start-msg{color:#ffd70099;font-style:italic}.replay-resources{display:flex;flex-direction:column;gap:.15rem;padding:.3rem .4rem;background:#ffffff08;border-radius:6px}.replay-player-row{display:flex;align-items:center;gap:.35rem;font-size:.65rem;color:#ffffffd9}.replay-player-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.replay-player-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;max-width:80px}.replay-stat{min-width:36px;text-align:right;font-variant-numeric:tabular-nums}.replay-controls{display:flex;align-items:center;justify-content:center;gap:.3rem}.replay-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#fff;border-radius:8px;width:36px;height:36px;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .1s}.replay-btn:hover{background:#ffffff26}.replay-btn:active{transform:scale(.93)}.replay-btn-play{width:44px;height:44px;font-size:1.3rem;background:#ffd70026;border-color:#ffd7004d}.replay-btn-play:hover{background:#ffd70040}.replay-speed{font-size:.7rem;font-weight:700;font-family:monospace;color:gold}.replay-timeline{display:flex;flex-direction:column;gap:.15rem}.replay-scrubber{-webkit-appearance:none;appearance:none;width:100%;height:6px;background:#ffffff1a;border-radius:3px;outline:none;cursor:pointer}.replay-scrubber::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:gold;border:2px solid #0a1628;cursor:pointer;box-shadow:0 0 6px #ffd70066}.replay-scrubber::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:gold;border:2px solid #0a1628;cursor:pointer;box-shadow:0 0 6px #ffd70066}.replay-timeline-info{text-align:center;font-size:.6rem;color:#fff6;font-variant-numeric:tabular-nums}.spectator-screen{position:fixed;inset:0;background:linear-gradient(180deg,#060e1a,#0a1628,#0f1e3a);color:#fff;display:flex;flex-direction:column;overflow:hidden;font-family:inherit}.spectator-header{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1.5rem;background:#0006;border-bottom:1px solid rgba(255,215,0,.2);flex-shrink:0}.spectator-title{font-size:1.5rem;font-weight:800;color:gold;display:flex;align-items:center;gap:.5rem}.spectator-icon{font-size:1.8rem}.spectator-badge{font-size:.65rem;font-weight:700;background:#e04040;color:#fff;padding:.15rem .5rem;border-radius:4px;letter-spacing:1px;animation:livePulse 2s ease-in-out infinite}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.5}}.spectator-game-info{display:flex;align-items:center;gap:1rem}.spectator-code-pill{font-family:monospace;font-size:1.1rem;font-weight:700;letter-spacing:3px;padding:.3rem .8rem;background:#ffd7001f;border:1px solid rgba(255,215,0,.3);border-radius:8px;color:gold}.spectator-round{font-size:1rem;color:#ffffffb3}.spectator-body{flex:1;display:flex;min-height:0;gap:0}.spectator-map-area{flex:1;position:relative;min-width:0;overflow:hidden}.spectator-map-area .map-container{height:100%}.spectator-game-over{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;z-index:10;animation:spectateWinSlide .6s ease}@keyframes spectateWinSlide{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.spectator-game-over-text{font-size:3rem;font-weight:900;color:gold;text-shadow:0 0 20px rgba(255,215,0,.5),0 4px 12px rgba(0,0,0,.6)}.spectator-game-over-sub{font-size:1.2rem;color:#fffc;margin-top:.5rem}.spectator-sidebar{width:320px;flex-shrink:0;display:flex;flex-direction:column;background:#0000004d;border-left:1px solid rgba(255,255,255,.08)}.spectator-section-title{font-size:.85rem;font-weight:700;color:#ffd700cc;padding:.6rem .8rem .4rem;margin:0;border-bottom:1px solid rgba(255,255,255,.06);text-transform:uppercase;letter-spacing:1px}.spectator-scoreboard{flex-shrink:0}.spectator-player{padding:.5rem .8rem;border-left:3px solid transparent;transition:background .3s}.spectator-player-active{background:#ffd7000f}.spectator-player-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.2rem}.spectator-player-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.spectator-player-name{font-weight:700;font-size:.9rem;flex:1}.spectator-turn-arrow{color:gold;font-size:.8rem;animation:turnBlink 1s ease-in-out infinite}@keyframes turnBlink{0%,to{opacity:1}50%{opacity:.3}}.spectator-player-stats{display:flex;gap:.6rem;font-size:.7rem;color:#ffffffb3;padding-left:14px;flex-wrap:wrap}.spectator-log{flex:1;display:flex;flex-direction:column;min-height:0}.spectator-log-scroll{flex:1;overflow-y:auto;padding:.4rem 0}.spectator-log-empty{padding:1rem;text-align:center;color:#ffffff4d;font-style:italic}.spectator-log-entry{display:flex;align-items:baseline;gap:.4rem;padding:.25rem .8rem;font-size:.75rem;animation:logSlideIn .3s ease;border-bottom:1px solid rgba(255,255,255,.03)}@keyframes logSlideIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.spectator-log-time{color:#ffffff59;font-size:.65rem;font-variant-numeric:tabular-nums;flex-shrink:0;min-width:24px}.spectator-log-actor{font-weight:700;flex-shrink:0}.spectator-log-action{color:#ffffffbf}.spectator-log-combat{color:#ffa040;font-weight:600}.spectator-footer{padding:.4rem 1rem;text-align:center;font-size:.7rem;color:#ffffff4d;background:#0000004d;border-top:1px solid rgba(255,255,255,.06);flex-shrink:0}.spectator-footer strong{color:#ffd70080}.spectator-waiting,.spectator-error{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:1rem;text-align:center}.spectator-waiting h2,.spectator-error h2{font-size:2rem;color:gold}.spectator-code{font-family:monospace;font-size:2.5rem;font-weight:800;letter-spacing:6px;color:gold;padding:.5rem 1.5rem;background:#ffd7001a;border:2px solid rgba(255,215,0,.3);border-radius:12px}.spectator-spinner{width:40px;height:40px;border:3px solid rgba(255,215,0,.2);border-top-color:gold;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.code-buttons{display:flex;gap:.4rem;justify-content:center;margin-top:.3rem}.spectator-log-scroll::-webkit-scrollbar{width:4px}.spectator-log-scroll::-webkit-scrollbar-track{background:transparent}.spectator-log-scroll::-webkit-scrollbar-thumb{background:#ffd70033;border-radius:2px}
