@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400;500&family=Instrument+Serif&display=swap";:root{--bg: #1c0a0a;--bg-light: #2a1010;--primary: #c4b5a0;--accent: #8b3a3a;--secondary: #3d5a4c;--highlight: #a34040;--text: #e8e4dc;--text-muted: #8a7878;--text-dim: #5a4e4e}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;font-family:DM Mono,monospace;background:var(--bg);color:var(--text)}#root{width:100%;height:100%;background:var(--bg)}.home-screen{width:100vw;height:100vh;background:var(--bg);display:flex;align-items:center;justify-content:center}.home-content{text-align:center;padding:48px 64px;position:relative;z-index:10}.game-title{font-family:"Instrument Serif",serif;font-size:72px;font-weight:400;letter-spacing:.15em;color:var(--text);margin-bottom:8px;line-height:1}.game-subtitle{font-family:DM Mono,monospace;font-size:11px;font-weight:300;letter-spacing:.4em;color:var(--text-muted);margin-bottom:40px;text-transform:uppercase}.connection-status{font-size:12px;letter-spacing:.15em;margin-bottom:32px;min-height:48px;font-weight:400;display:flex;flex-direction:column;align-items:center;gap:8px}.status-idle{color:#ffffff80}.status-connecting{color:var(--primary)}.status-connected{color:var(--secondary)}.status-waiting{color:var(--primary);display:flex;flex-direction:column;align-items:center;gap:4px}.status-waiting .player-count{font-size:18px;font-weight:600;color:var(--secondary);letter-spacing:.1em}.status-starting{color:var(--secondary);font-weight:600;animation:pulse-glow .5s ease-in-out infinite alternate}.status-in-game{color:var(--secondary)}.status-error{color:var(--accent)}@keyframes pulse-glow{0%{text-shadow:0 0 5px var(--secondary)}to{text-shadow:0 0 20px var(--secondary),0 0 30px var(--secondary)}}.button-group{display:flex;justify-content:center;gap:16px}.btn-primary{padding:14px 48px;font-family:DM Mono,monospace;font-size:13px;font-weight:500;letter-spacing:.2em;border:none;background:var(--accent);color:var(--text);cursor:pointer;transition:background .2s ease,transform .1s ease;text-transform:uppercase}.btn-primary:hover:not(.btn-disabled){background:var(--highlight);transform:translateY(-1px)}.btn-primary:active:not(.btn-disabled){transform:translateY(0)}.btn-disabled{background:var(--bg-light);color:var(--text-dim);cursor:not-allowed}.hint-text{margin-top:24px;font-size:10px;letter-spacing:.3em;color:var(--text-dim);text-transform:uppercase}.game-hud{position:absolute;top:16px;left:16px;display:flex;gap:20px;font-family:DM Mono,monospace;font-size:12px;letter-spacing:.1em;color:var(--text-muted);background:#1a1a1fcc;padding:10px 16px;border:1px solid rgba(196,181,160,.1)}.health-bar-container{position:absolute;bottom:40px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;font-family:DM Mono,monospace;z-index:100}.health-bar-bg{width:200px;height:12px;background:#0009;border:1px solid rgba(255,255,255,.2);border-radius:2px;overflow:hidden}.health-bar-fill{height:100%;transition:width .2s ease-out,background-color .3s ease;box-shadow:0 0 8px currentColor}.health-bar-text{font-size:14px;font-weight:500;color:#fff;text-shadow:0 0 4px rgba(0,0,0,.8);min-width:30px}.storm-warning{position:absolute;top:16px;right:16px;display:flex;align-items:center;gap:10px;font-family:DM Mono,monospace;font-size:12px;letter-spacing:.1em;color:#b366ff;background:#50146499;padding:10px 16px;border:1px solid rgba(180,100,255,.4);z-index:100;animation:storm-pulse 1.5s ease-in-out infinite}@keyframes storm-pulse{0%,to{box-shadow:0 0 10px #b464ff4d}50%{box-shadow:0 0 20px #b464ff99}}.storm-icon{font-size:16px;animation:storm-icon-flash .8s ease-in-out infinite alternate}@keyframes storm-icon-flash{0%{opacity:.6}to{opacity:1;text-shadow:0 0 10px rgba(180,100,255,.8)}}.storm-label{font-weight:500;letter-spacing:.2em}.storm-bar{width:100px;height:6px;background:#00000080;border-radius:3px;overflow:hidden}.storm-fill{height:100%;background:linear-gradient(90deg,#83f,#f3a);border-radius:3px;transition:width .5s ease-out}.storm-size{font-size:11px;color:#b496ffe6;min-width:50px;text-align:right}canvas{display:block}.secondary-buttons{margin-top:20px}.btn-secondary{padding:10px 24px;font-family:DM Mono,monospace;font-size:11px;font-weight:400;letter-spacing:.15em;border:1px solid var(--text-dim);background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s ease;text-transform:uppercase;display:flex;align-items:center;gap:8px}.btn-secondary:hover{border-color:var(--primary);color:var(--text);background:#c4b5a014}.btn-icon{font-size:14px}.version-indicator{position:absolute;bottom:16px;left:20px;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.12em;color:var(--text-dim);display:flex;align-items:center;gap:8px;opacity:.7}.version-divider{opacity:.4}.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0a0505eb;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg);border:1px solid rgba(196,181,160,.15);padding:32px 40px;max-width:560px;width:90%;max-height:80vh;overflow-y:auto;animation:slideUp .25s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid rgba(196,181,160,.1)}.modal-header h2{font-family:"Instrument Serif",serif;font-size:24px;font-weight:400;letter-spacing:.1em;color:var(--text)}.modal-close{background:none;border:none;color:var(--text-muted);font-size:24px;cursor:pointer;padding:4px 8px;transition:color .2s ease}.modal-close:hover{color:var(--text)}.shop-credits{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;background:#8b3a3a26;border:1px solid rgba(139,58,58,.3)}.credits-label{font-size:10px;letter-spacing:.2em;color:var(--text-muted)}.credits-amount{font-size:18px;font-weight:500;color:var(--primary);letter-spacing:.05em}.shop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.shop-item{background:var(--bg-light);border:1px solid rgba(196,181,160,.08);padding:16px;display:flex;flex-direction:column;gap:12px;transition:border-color .2s ease}.shop-item:hover{border-color:#c4b5a033}.shop-item-preview{width:100%;height:80px;background:linear-gradient(135deg,#8b3a3a4d,#3d5a4c4d);border:1px solid rgba(196,181,160,.05)}.shop-item-info{display:flex;flex-direction:column;gap:4px}.shop-item-type{font-size:9px;letter-spacing:.2em;color:var(--text-dim);text-transform:uppercase}.shop-item-name{font-size:12px;letter-spacing:.1em;color:var(--text)}.shop-item-price{font-size:13px;font-weight:500;color:var(--primary);letter-spacing:.05em}.btn-shop-buy{padding:8px 12px;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.15em;border:1px solid var(--accent);background:transparent;color:var(--accent);cursor:pointer;transition:all .2s ease;text-transform:uppercase}.btn-shop-buy:hover{background:var(--accent);color:var(--text)}.settings-list{display:flex;flex-direction:column;gap:28px}.settings-group h3{font-family:DM Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.25em;color:var(--text-muted);margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid rgba(196,181,160,.08)}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.setting-row label{font-size:12px;letter-spacing:.1em;color:var(--text)}.slider-container{display:flex;align-items:center;gap:12px}.slider-container input[type=range]{width:120px;height:4px;-webkit-appearance:none;appearance:none;background:var(--bg-light);border-radius:2px;outline:none}.slider-container input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:var(--primary);border-radius:50%;cursor:pointer;transition:background .2s ease}.slider-container input[type=range]::-webkit-slider-thumb:hover{background:var(--text)}.slider-value{font-size:11px;color:var(--text-muted);min-width:36px;text-align:right}.toggle-btn{padding:6px 16px;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.15em;border:1px solid var(--text-dim);background:transparent;color:var(--text-dim);cursor:pointer;transition:all .2s ease;min-width:60px}.toggle-btn.active{border-color:var(--secondary);color:var(--secondary);background:#3d5a4c26}.toggle-btn:hover{border-color:var(--text-muted);color:var(--text-muted)}.controls-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.control-item{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:10px}.control-item kbd{padding:4px 8px;font-family:DM Mono,monospace;font-size:10px;background:var(--bg-light);border:1px solid rgba(196,181,160,.1);color:var(--text);letter-spacing:.05em}.sidebar-panel{position:absolute;top:50%;transform:translateY(-50%);width:300px;background:#0c1610f7;border:1px solid rgba(140,120,80,.22);z-index:20}.ship-panel{left:12%}.leaderboard-panel{right:12%}.panel-header{padding:16px 20px;border-bottom:1px solid rgba(140,120,80,.18);background:#08120c99}.panel-title{font-family:DM Mono,monospace;font-size:11px;font-weight:500;letter-spacing:.25em;color:#c4aa78e6}.ship-canvas-container{width:100%;height:220px;background:transparent}.ship-info{padding:14px 20px;display:flex;flex-direction:column;gap:4px;border-bottom:1px solid rgba(140,120,80,.15)}.ship-name{font-family:"Instrument Serif",serif;font-size:16px;color:var(--text);letter-spacing:.05em}.ship-class{font-size:9px;letter-spacing:.2em;color:var(--accent);text-transform:uppercase}.ship-stats{padding:16px 20px;display:flex;flex-direction:column;gap:12px}.stat-row{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:9px;letter-spacing:.15em;color:var(--text-dim)}.stat-bar{width:100%;height:5px;background:#060e0acc;border-radius:2px;overflow:hidden}.stat-fill{height:100%;background:linear-gradient(90deg,#a08246d9,#c8aa64f2);border-radius:2px;transition:width .3s ease}.leaderboard-list{padding:12px 0;max-height:420px;overflow-y:auto}.leaderboard-row{display:flex;align-items:center;padding:10px 20px;gap:14px;transition:background .15s ease}.leaderboard-row:hover{background:#8c78501a}.leaderboard-row.top-three{background:#32372340}.leader-rank{font-family:DM Mono,monospace;font-size:12px;font-weight:500;min-width:20px;text-align:center;color:var(--text-dim)}.leader-rank.rank-1{color:#d4af37}.leader-rank.rank-2{color:#a8a8a8}.leader-rank.rank-3{color:#cd7f32}.leader-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.leader-name{font-size:11px;letter-spacing:.08em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-stats{font-size:9px;color:var(--text-dim);letter-spacing:.1em}.leader-score{font-family:DM Mono,monospace;font-size:11px;color:#c4aa78e6;letter-spacing:.05em}.leaderboard-footer{padding:14px 20px;border-top:1px solid rgba(140,120,80,.18);font-size:11px;letter-spacing:.15em;color:#789664e6;text-align:center;background:#08120c99}@media(max-width:1100px){.sidebar-panel{display:none}}.user-status{position:absolute;top:-50px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:8px 16px;background:#3d5a4c33;border:1px solid rgba(61,90,76,.4);font-size:11px;letter-spacing:.1em}.user-indicator{color:var(--secondary);font-size:8px;animation:pulse-indicator 2s ease-in-out infinite}@keyframes pulse-indicator{0%,to{opacity:.6}50%{opacity:1}}.user-name{color:var(--text)}.player-info{padding:12px 20px;border-top:1px solid rgba(140,120,80,.15);display:flex;justify-content:space-between;align-items:center}.player-name{font-size:11px;letter-spacing:.1em;color:var(--text)}.player-matches{font-size:10px;color:var(--text-dim)}.stat-row{display:grid;grid-template-columns:80px 1fr 40px;align-items:center;gap:8px}.stat-value{font-size:10px;color:var(--primary);text-align:right}.loading-indicator{font-size:10px;color:var(--primary);animation:loading-dots 1s ease-in-out infinite}@keyframes loading-dots{0%,to{opacity:.3}50%{opacity:1}}.shop-modal{max-width:680px}.shop-notice,.shop-error{padding:12px 16px;margin-bottom:20px;display:flex;align-items:center;gap:10px;font-size:12px}.shop-notice{background:#c4aa7826;border:1px solid rgba(196,170,120,.3);color:var(--primary)}.shop-error{background:#8b3a3a33;border:1px solid rgba(139,58,58,.4);color:var(--accent)}.notice-icon{font-size:14px}.shop-loading{padding:40px;text-align:center;color:var(--text-muted);font-size:12px;letter-spacing:.1em}.shop-item{position:relative;transition:transform .2s ease,border-color .2s ease}.shop-item:hover{transform:translateY(-2px)}.shop-item-preview{display:flex;align-items:center;justify-content:center;border-width:2px;border-style:solid;position:relative;overflow:hidden}.shop-item-preview img{width:100%;height:100%;object-fit:cover}.preview-placeholder{font-size:32px;color:var(--text-dim);opacity:.5}.shop-item-rarity{font-size:8px;letter-spacing:.2em;font-weight:500}.shop-item-desc{font-size:10px;color:var(--text-dim)}.btn-shop-buy:disabled{opacity:.5;cursor:not-allowed}.rarity-common .shop-item-preview{border-color:#a0a0a0}.rarity-uncommon .shop-item-preview{border-color:#4ade80}.rarity-rare .shop-item-preview{border-color:#60a5fa}.rarity-epic .shop-item-preview{border-color:#c084fc}.rarity-legendary .shop-item-preview{border-color:#fbbf24}.rarity-legendary .shop-item-preview{box-shadow:0 0 15px #fbbf244d}.inventory-modal{max-width:640px}.inventory-notice,.inventory-empty{padding:48px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.inventory-notice{color:var(--text-muted)}.inventory-empty{color:var(--text-dim)}.empty-icon{font-size:36px;opacity:.6}.empty-hint{font-size:11px;color:var(--text-dim)}.inventory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.inventory-item{background:var(--bg-light);border:1px solid rgba(196,181,160,.08);padding:14px;display:flex;flex-direction:column;gap:10px;transition:all .2s ease}.inventory-item:hover{border-color:#c4b5a033}.inventory-item.equipped{border-color:var(--secondary);background:#3d5a4c26}.inventory-item-preview{width:100%;height:70px;background:linear-gradient(135deg,#503c284d,#283c324d);border-width:2px;border-style:solid;display:flex;align-items:center;justify-content:center;position:relative}.equipped-badge{position:absolute;bottom:4px;left:50%;transform:translate(-50%);padding:2px 8px;background:var(--secondary);color:var(--text);font-size:8px;letter-spacing:.15em}.inventory-item-info{display:flex;flex-direction:column;gap:2px}.inventory-item-rarity{font-size:8px;letter-spacing:.18em;font-weight:500}.inventory-item-name{font-size:11px;letter-spacing:.08em;color:var(--text)}.btn-equip{padding:6px 10px;font-family:DM Mono,monospace;font-size:9px;letter-spacing:.12em;border:1px solid var(--secondary);background:transparent;color:var(--secondary);cursor:pointer;transition:all .2s ease;text-transform:uppercase}.btn-equip:hover{background:var(--secondary);color:var(--text)}.auth-modal{max-width:400px}.auth-error{padding:12px 16px;margin-bottom:20px;background:#8b3a3a33;border:1px solid rgba(139,58,58,.4);color:var(--accent);font-size:12px}.auth-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:10px;letter-spacing:.2em;color:var(--text-muted)}.form-group input{padding:12px 16px;font-family:DM Mono,monospace;font-size:13px;background:var(--bg-light);border:1px solid rgba(196,181,160,.15);color:var(--text);outline:none;transition:border-color .2s ease}.form-group input:focus{border-color:var(--primary)}.form-group input::placeholder{color:var(--text-dim)}.btn-auth-submit{padding:14px 24px;font-family:DM Mono,monospace;font-size:12px;font-weight:500;letter-spacing:.2em;border:none;background:var(--accent);color:var(--text);cursor:pointer;transition:background .2s ease;margin-top:8px}.btn-auth-submit:hover:not(:disabled){background:var(--highlight)}.btn-auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-switch{margin-top:24px;padding-top:20px;border-top:1px solid rgba(196,181,160,.1);text-align:center;font-size:12px;color:var(--text-muted)}.auth-switch button{background:none;border:none;color:var(--primary);cursor:pointer;font-family:inherit;font-size:inherit;text-decoration:underline;text-underline-offset:3px}.auth-switch button:hover{color:var(--text)}.setting-value{font-size:12px;color:var(--text-muted)}.name-input-group{display:flex;gap:8px}.name-input-group input{padding:8px 12px;font-family:DM Mono,monospace;font-size:12px;background:var(--bg-light);border:1px solid rgba(196,181,160,.15);color:var(--text);outline:none;width:150px}.name-input-group input:focus{border-color:var(--primary)}.name-input-group button{padding:8px 12px;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.1em;background:transparent;border:1px solid var(--text-dim);color:var(--text-muted);cursor:pointer;transition:all .2s ease}.name-input-group button:hover:not(:disabled){border-color:var(--primary);color:var(--text)}.name-input-group button:disabled{opacity:.4;cursor:not-allowed}.btn-signout,.btn-signin{padding:8px 16px;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.12em;border:1px solid var(--text-dim);background:transparent;cursor:pointer;transition:all .2s ease}.btn-signout{color:var(--accent);border-color:var(--accent)}.btn-signout:hover{background:var(--accent);color:var(--text)}.btn-signin{color:var(--secondary);border-color:var(--secondary)}.btn-signin:hover{background:var(--secondary);color:var(--text)}
