:root{--bg-primary: #080d1a;--bg-secondary: #0f172a;--bg-card: #131d33;--bg-card-border: #1e2e4f;--text-main: #f8fafc;--text-muted: #94a3b8;--accent-gold: #f59e0b;--accent-cyan: #06b6d4;--accent-green: #10b981;--accent-purple: #c084fc;--accent-red: #f43f5e;--room-1: #f59e0b;--room-2: #f43f5e;--room-3: #10b981;--room-4: #06b6d4;--room-5: #3b82f6;--room-6: #a855f7;--room-7: #ec4899;--room-8: #64748b;--room-9: #f97316}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Outfit,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--bg-primary);color:var(--text-main);min-height:100vh;display:flex;justify-content:center;align-items:center;padding:24px 16px;background-image:radial-gradient(circle at 10% 15%,rgba(6,182,212,.1) 0%,transparent 40%),radial-gradient(circle at 90% 85%,rgba(192,132,252,.1) 0%,transparent 40%)}#app{width:100%;max-width:1120px;display:flex;flex-direction:column;gap:20px}.card{background:var(--bg-card);border:1px solid var(--bg-card-border);border-radius:14px;padding:16px 20px;box-shadow:0 10px 30px -5px #00000080}.game-header{display:grid;grid-template-columns:280px 1fr 240px;align-items:center;gap:20px}@media(max-width:860px){.game-header{grid-template-columns:1fr 1fr}.game-title{grid-column:1 / -1;order:-1}}.player-info{display:flex;flex-direction:column;gap:4px}.player-info .label,.score-info .label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:700}.player-name-wrapper{display:flex;align-items:center;gap:10px}.player-icon{font-size:1.5rem}#player-name-input{background:transparent;border:none;border-bottom:2px dashed rgba(255,255,255,.2);color:var(--text-main);font-family:inherit;font-size:1.15rem;font-weight:700;width:100%;padding:2px 4px;outline:none;transition:border-color .2s ease}#player-name-input:focus{border-bottom-color:var(--accent-cyan)}.game-title{text-align:center}.game-title h1{font-size:2.3rem;font-weight:800;letter-spacing:.12em;background:linear-gradient(135deg,#f8fafc 20%,#38bdf8,#c084fc);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.game-title .subtitle{font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted)}.score-info{display:flex;flex-direction:column;gap:4px}.score-display{display:flex;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:1.6rem;font-weight:800;color:#38bdf8}.score-icon{font-size:1.4rem;color:#38bdf8}.world-trait-card{background:linear-gradient(135deg,#0f172af2,#1e293be6);border-left:5px solid var(--trait-color, #f59e0b);padding:12px 18px;display:flex;flex-direction:column;gap:6px;box-shadow:0 4px 20px #00000059;transition:border-color .3s ease}.world-trait-content{display:flex;flex-direction:column;gap:6px}.world-trait-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.world-trait-tag{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.world-trait-badge{font-size:.75rem;font-family:JetBrains Mono,monospace;font-weight:700;padding:2px 8px;border-radius:6px;background:#f59e0b26;color:var(--trait-color, #f59e0b);border:1px solid var(--trait-color, rgba(245, 158, 11, .4))}.world-trait-main-row{display:flex;align-items:center;gap:12px}.world-trait-icon{font-size:1.8rem;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);box-shadow:0 0 12px #f59e0b33}.world-trait-text-block{display:flex;flex-direction:column;gap:2px}.world-trait-name{font-size:1.15rem;font-weight:800;letter-spacing:.04em;color:var(--trait-color, #f59e0b);margin:0}.world-trait-desc{font-size:.85rem;color:var(--text-muted);line-height:1.35;margin:0}.toolbar-section{display:flex;flex-direction:column;gap:10px;padding:12px 18px;background:#0f172a}.toolbar-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--text-muted)}.piece-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.tool-btn{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#182238;border:2px solid #233354;border-radius:10px;cursor:pointer;transition:all .2s ease;text-align:left;color:var(--text-main);font-family:inherit}.tool-btn:hover{background:#1e2c47;border-color:#38bdf8;transform:translateY(-1px)}.tool-btn.active{background:#1b2e4b;border-color:#38bdf8;box-shadow:0 0 16px #38bdf84d}.tool-badge{width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1.2rem;font-family:JetBrains Mono,monospace;flex-shrink:0}.badge-mother{background:linear-gradient(135deg,#a855f7,#ec4899);color:#fff;box-shadow:0 0 12px #a855f780}.badge-drone{background:linear-gradient(135deg,#06b6d4,#10b981);color:#fff;box-shadow:0 0 12px #06b6d480}.badge-worker{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 0 12px #f59e0b80}.badge-scout{background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;box-shadow:0 0 12px #3b82f680}.badge-claim{background:#334155;color:#f8fafc;font-size:1rem}.tool-info{display:flex;flex-direction:column;width:100%}.tool-name-row{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.tool-name{font-size:.95rem;font-weight:700}.tool-count{font-size:.72rem;font-family:JetBrains Mono,monospace;font-weight:700;padding:1px 6px;border-radius:4px;background:#ffffff1a;color:var(--accent-cyan)}.tool-cost-badge{font-size:.7rem;font-family:JetBrains Mono,monospace;font-weight:700;padding:1px 6px;border-radius:4px;background:#ef44442e;border:1px solid rgba(239,68,68,.4);color:#f87171;transition:all .2s ease}.tool-cost-badge.affordable{background:#38bdf826;border-color:#38bdf866;color:#38bdf8}.tool-desc{font-size:.72rem;color:var(--text-muted);line-height:1.2}.game-main{display:grid;grid-template-columns:minmax(360px,570px) 1fr;gap:24px;align-items:start}@media(max-width:900px){.game-main{grid-template-columns:1fr}}.grid-section{display:flex;flex-direction:column;align-items:center;gap:14px}.grid-wrapper{background:#060911;padding:16px;border-radius:18px;border:2px solid #1e2e4f;box-shadow:0 20px 45px #000000b3;width:100%;max-width:540px}.sudoku-grid{display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);gap:4px;width:100%;aspect-ratio:1 / 1}.cell{position:relative;aspect-ratio:1 / 1;background-color:#0b111e;border-radius:6px;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center;transition:transform .12s ease,box-shadow .15s ease,border-color .2s ease;border:2.5px solid var(--room-color, #334155)}.cell:hover{transform:scale(1.08);z-index:10;box-shadow:0 0 14px var(--room-color, #38bdf8);border-color:#fff}.cell.selected{outline:3px solid #ffffff;outline-offset:2px;z-index:12}.cell-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;pointer-events:none;position:relative}.cell.in-mother-zoi:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:4px;background:radial-gradient(circle,rgba(168,85,247,.25) 0%,transparent 80%);border:1px dashed rgba(168,85,247,.5);pointer-events:none}.cell.in-drone-zoi:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:3px;background:radial-gradient(circle,rgba(6,182,212,.22) 0%,transparent 80%);pointer-events:none}.cell.preview-valid{outline:2px solid #10b981;box-shadow:0 0 10px #10b98180}.cell.preview-invalid{outline:2px solid #ef4444;box-shadow:0 0 10px #ef444480;cursor:not-allowed}.piece-token-mother{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#c084fc,#9333ea);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.95rem;font-weight:900;font-family:JetBrains Mono,monospace;box-shadow:0 0 14px #c084fce6;animation:popIn .22s cubic-bezier(.175,.885,.32,1.275)}.piece-token-drone{width:26px;height:26px;border-radius:6px;background:linear-gradient(135deg,#06b6d4,#0d9488);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:900;font-family:JetBrains Mono,monospace;box-shadow:0 0 12px #06b6d4e6;animation:popIn .22s cubic-bezier(.175,.885,.32,1.275)}.piece-token-worker{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#b45309);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.88rem;font-weight:900;font-family:JetBrains Mono,monospace;box-shadow:0 0 12px #f59e0be6;animation:popIn .22s cubic-bezier(.175,.885,.32,1.275)}.piece-token-scout{width:24px;height:24px;border-radius:5px;transform:rotate(45deg);background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 0 12px #3b82f6e6;animation:popIn .22s cubic-bezier(.175,.885,.32,1.275)}.piece-token-scout span{transform:rotate(-45deg);font-size:.85rem;font-weight:900;font-family:JetBrains Mono,monospace}.cell.in-worker-zoi:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:4px;background:radial-gradient(circle,rgba(245,158,11,.22) 0%,transparent 80%);pointer-events:none}.cell.in-scout-zoi:before{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:4px;background:radial-gradient(circle,rgba(59,130,246,.22) 0%,transparent 80%);pointer-events:none}.piece-token-claim{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#38bdf8,#2563eb);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;box-shadow:0 0 10px #38bdf8b3;animation:popIn .2s cubic-bezier(.175,.885,.32,1.275)}@keyframes popIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.sidebar{display:flex;flex-direction:column;gap:16px;height:540px;max-height:540px;box-sizing:border-box}@media(max-width:900px){.sidebar{height:auto;max-height:none}}.legend-card{flex:1.15;display:flex;flex-direction:column;min-height:0;overflow:hidden}.legend-card h3,.resources-card h3{font-size:1.05rem;margin-bottom:4px;font-weight:700}.legend-hint{font-size:.78rem;color:var(--text-muted);margin-bottom:8px}.room-legend{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0;overflow-y:auto;padding-right:4px}.legend-item{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#ffffff08;border-radius:8px;border-left:5px solid var(--item-color);font-size:.85rem;transition:background .15s ease}.legend-item:hover{background:#ffffff14}.legend-item-name{display:flex;align-items:center;gap:8px;font-weight:600}.legend-color-indicator{width:14px;height:14px;border-radius:4px;border:2.5px solid var(--item-color);background:transparent}.legend-count{font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--text-muted)}.telemetry-card{background:linear-gradient(135deg,#0f172af2,#1e293be6);border-left:5px solid #06b6d4;padding:14px 18px;display:flex;flex-direction:column;gap:8px;box-shadow:0 4px 20px #00000059;margin-top:4px}.telemetry-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:8px}.telemetry-title{display:flex;align-items:center;gap:8px}.telemetry-title h3{font-size:1.05rem;font-weight:700;margin:0;color:#38bdf8}.telemetry-icon{font-size:1.25rem}.telemetry-body{display:flex;flex-direction:column;gap:6px}.telemetry-body #status-text{font-size:.9rem;color:var(--text-muted);line-height:1.45}.cell-details{margin-top:4px;padding:8px 14px;background:#0000004d;border:1px solid rgba(255,255,255,.06);border-radius:8px;font-size:.85rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px 14px}.game-controls{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px;width:100%}.grid-controls{max-width:540px;padding-top:2px}.btn{font-family:inherit;font-size:1rem;font-weight:700;display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:12px;border:none;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 15px #0000004d}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important}.btn-icon{font-size:1.2rem}.btn-warning{background:#374151;color:#fbbf24;border:1px solid #4b5563}.btn-warning:hover:not(:disabled){background:#4b5563;color:#fde047;transform:translateY(-2px);box-shadow:0 6px 18px #fbbf2440}.btn-primary{background:linear-gradient(135deg,#06b6d4,#2563eb);color:#fff}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#38bdf8,#3b82f6);transform:translateY(-2px);box-shadow:0 8px 25px #06b6d466}.btn-secondary{background:#1e293b;color:var(--text-main);border:1px solid #334155}.btn-secondary:hover:not(:disabled){background:#334155;transform:translateY(-2px);box-shadow:0 8px 20px #0006}.btn:active:not(:disabled){transform:translateY(0)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;transition:opacity .2s ease}.modal-content{max-width:520px;width:100%;background:#101728;border:1px solid #1e2e4f}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal-header h2{font-size:1.35rem}.modal-close{background:transparent;border:none;font-size:1.8rem;color:var(--text-muted);cursor:pointer}.modal-body p{font-size:.92rem;color:var(--text-muted);margin-bottom:18px;line-height:1.5}.auth-tabs{display:flex;gap:8px;background:#00000059;padding:4px;border-radius:10px;margin-bottom:16px;border:1px solid rgba(255,255,255,.08)}.auth-tab{flex:1;padding:8px 14px;font-family:inherit;font-size:.9rem;font-weight:700;border:none;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s ease}.auth-tab.active{background:linear-gradient(135deg,#06b6d4,#2563eb);color:#fff;box-shadow:0 2px 10px #06b6d466}.auth-tab:hover:not(.active){background:#ffffff0d;color:var(--text-main)}.auth-feedback{padding:10px 14px;border-radius:8px;font-size:.88rem;font-weight:600;margin-bottom:14px;line-height:1.4}.auth-feedback.success{background:#10b98126;border:1px solid var(--accent-green);color:#34d399}.auth-feedback.error{background:#ef444426;border:1px solid #ef4444;color:#f87171}.btn-finish-game{background:linear-gradient(135deg,#10b98133,#06b6d433);border:1px solid rgba(52,211,153,.6);color:#34d399;font-weight:700;box-shadow:0 0 12px #10b98126;transition:all .2s ease}.btn-finish-game:hover{background:linear-gradient(135deg,#10b98159,#06b6d459);border-color:#34d399;color:#fff;box-shadow:0 0 18px #10b98159;transform:translateY(-1px)}.summary-modal-content{max-width:580px!important}.debriefing-card{display:flex;gap:18px;background:#00000059;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px;margin-bottom:18px;align-items:center}.debriefing-map-col{display:flex;flex-direction:column;align-items:center;gap:8px;flex-shrink:0}.summary-minimap{width:150px;height:150px;border-radius:8px;border:1px solid rgba(255,255,255,.15);box-shadow:0 4px 12px #00000080;background:#0b1120}.summary-map-badge{font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--accent-cyan);background:#06b6d41f;padding:3px 8px;border-radius:6px;border:1px solid rgba(6,182,212,.25)}.debriefing-stats-col{display:flex;flex-direction:column;gap:12px;flex:1;min-width:0}.debriefing-stat-row{display:flex;flex-direction:column;gap:4px}.debriefing-label{font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:600}.summary-trait-badge{display:inline-flex;align-items:center;gap:6px;font-size:.88rem;font-weight:700;color:#f1f5f9;background:#ffffff0d;padding:4px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.1);width:fit-content}.summary-score-display{display:flex;align-items:baseline;gap:8px}.summary-score-num{font-family:JetBrains Mono,monospace;font-size:1.6rem;font-weight:800;color:#38bdf8;text-shadow:0 0 12px rgba(56,189,248,.4)}.summary-score-unit{font-size:.85rem;color:var(--text-muted);font-weight:600}.summary-rank-wrapper{display:flex;flex-direction:column;gap:3px}.summary-rank-badge{font-size:.95rem;font-weight:800;color:#fbbf24;display:inline-flex;align-items:center;gap:6px}.summary-rank-sub{font-size:.78rem;color:#34d399;font-weight:600}.summary-rating-section{margin-top:14px}.summary-rating-title{font-size:1rem;font-weight:700;margin-bottom:6px;color:#f8fafc}.rate-modal-intro{font-size:.92rem;color:var(--text-muted);line-height:1.5;margin-bottom:16px}.star-rating-wrapper{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 12px;background:#0000004d;border-radius:12px;border:1px solid rgba(255,255,255,.06)}.star-rating-buttons{display:flex;gap:10px}.star-btn{font-size:2.2rem;background:transparent;border:none;cursor:pointer;color:#475569;transition:transform .15s ease,color .15s ease,text-shadow .15s ease;line-height:1;padding:4px}.star-btn:hover{transform:scale(1.25);color:#fbbf24;text-shadow:0 0 16px rgba(251,191,36,.7)}.star-btn.active{color:#f59e0b;text-shadow:0 0 14px rgba(245,158,11,.8);transform:scale(1.1)}.selected-rating-text{font-family:JetBrains Mono,monospace;font-size:.88rem;font-weight:700;color:var(--accent-cyan)}.rating-feedback{margin-top:14px;padding:12px;border-radius:8px;text-align:center;font-size:.92rem;font-weight:700;background:#10b98126;border:1px solid var(--accent-green);color:#34d399}@media(max-width:600px){.debriefing-card{flex-direction:column;text-align:center}.summary-trait-badge{margin:0 auto}.summary-score-display{justify-content:center}}.popular-maps-teaser-card{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px;padding:18px 24px;background:linear-gradient(135deg,#1e293bb3,#0f172ad9);border:1px solid rgba(56,189,248,.25);border-radius:14px;box-shadow:0 4px 20px #00000059;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.popular-maps-teaser-card:hover{transform:translateY(-2px);border-color:#38bdf880;box-shadow:0 8px 26px #38bdf826}.teaser-content{display:flex;align-items:center;gap:16px}.teaser-icon-wrapper{width:48px;height:48px;border-radius:12px;background:#38bdf81f;border:1px solid rgba(56,189,248,.3);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.teaser-text h3{font-size:1.15rem;font-weight:700;color:#f8fafc;margin-bottom:4px}.teaser-text p{font-size:.9rem;color:var(--text-muted);line-height:1.4;margin:0}.popular-container{max-width:980px;margin:0 auto;padding:24px 16px 48px}.popular-header{display:flex;align-items:center;gap:20px;margin-bottom:24px;padding:18px 24px}.popular-header-info h2{font-size:1.4rem;font-weight:800;color:#f8fafc}.popular-subtitle{font-size:.88rem;color:var(--text-muted)}.popular-maps-list{display:flex;flex-direction:column;gap:20px}.popular-map-card{display:grid;grid-template-columns:240px 1fr;gap:24px;padding:20px;background:#101728cc;border:1px solid rgba(255,255,255,.08);border-radius:14px;transition:border-color .2s ease,box-shadow .2s ease}.popular-map-card:hover{border-color:#38bdf859;box-shadow:0 6px 20px #0006}.popular-map-preview-col{display:flex;flex-direction:column;align-items:center;gap:12px;padding-right:18px;border-right:1px solid rgba(255,255,255,.08)}.popular-map-canvas{width:140px;height:140px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#0b1120;box-shadow:0 4px 12px #0006}.popular-map-meta{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.popular-map-id{font-family:JetBrains Mono,monospace;font-size:.82rem;font-weight:700;color:var(--accent-cyan)}.popular-map-plays{font-size:.78rem;color:var(--text-muted)}.popular-map-trait{font-size:.78rem;font-weight:700;color:#fbbf24;background:#fbbf241a;padding:3px 8px;border-radius:6px;border:1px solid rgba(251,191,36,.25);text-align:center;max-width:100%}.popular-map-leaderboard-col{display:flex;flex-direction:column;gap:12px}.popular-map-leaderboard-col h4{font-size:1.05rem;font-weight:700;color:#f1f5f9;display:flex;align-items:center;gap:8px}.leaderboard-table{display:flex;flex-direction:column;gap:6px}.leaderboard-row{display:flex;align-items:center;padding:8px 14px;background:#00000040;border:1px solid rgba(255,255,255,.04);border-radius:8px;font-size:.88rem;transition:background .15s ease}.leaderboard-row:hover{background:#ffffff0d}.leaderboard-row.rank-1{background:#fbbf2414;border-color:#fbbf244d}.leaderboard-row.rank-2{background:#38bdf814;border-color:#38bdf84d}.leaderboard-row.rank-3{background:#34d39914;border-color:#34d3994d}.rank-pos{width:44px;font-weight:700;font-family:JetBrains Mono,monospace}.rank-player{flex:1;font-weight:600;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-score{font-family:JetBrains Mono,monospace;font-weight:800;color:#38bdf8;font-size:.95rem}@media(max-width:768px){.popular-map-card{grid-template-columns:1fr}.popular-map-preview-col{padding-right:0;border-right:none;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:16px}.popular-maps-teaser-card{flex-direction:column;text-align:center}.teaser-content{flex-direction:column}}.hidden{display:none!important}.cell-resource{display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:JetBrains Mono,monospace;font-size:.68rem;font-weight:800;border-radius:5px;padding:2px 4px;pointer-events:none;line-height:1.1;gap:1px;z-index:5;transition:transform .2s ease}.cell:hover .cell-resource{transform:scale(1.15)}.cell-resource .res-icon{font-size:.85rem}.cell-resource .res-pts{font-size:.62rem;letter-spacing:-.02em}.cell-resource.res-ore{color:#f59e0b;text-shadow:0 0 8px rgba(245,158,11,.7)}.cell-resource.res-biomass{color:#c084fc;text-shadow:0 0 8px rgba(168,85,247,.7)}.cell-resource.res-silicon{color:#06b6d4;text-shadow:0 0 8px rgba(6,182,212,.7)}.cell-resource.res-carbon{color:#94a3b8;text-shadow:0 0 6px rgba(148,163,184,.6)}.cell-resource-mined{position:absolute;top:-4px;right:-4px;font-size:.72rem;line-height:1;filter:drop-shadow(0 0 6px rgba(245,158,11,.9));z-index:15;animation:pulse 1.8s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.cell-resource-pending{position:absolute;top:-6px;right:-6px;font-size:.68rem;line-height:1;background:#f59e0be6;color:#0b111e;font-weight:800;font-family:JetBrains Mono,monospace;padding:1px 4px;border-radius:4px;box-shadow:0 0 8px #f59e0bd9;z-index:15;animation:pendingPulse 1.2s infinite ease-in-out}@keyframes pendingPulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}.resources-card{flex:.85;display:flex;flex-direction:column;min-height:0;overflow:hidden;border-left:4px solid var(--accent-gold)}.resource-legend-list{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0;overflow-y:auto;justify-content:center}.resource-legend-item{display:flex;align-items:center;justify-content:space-between;padding:5px 9px;border-radius:8px;background:#ffffff08;font-size:.8rem;border:1px solid rgba(255,255,255,.05)}.res-badge{font-family:JetBrains Mono,monospace;font-weight:800;font-size:.74rem;padding:2px 6px;border-radius:5px}.res-ore .res-badge{background:#f59e0b26;color:#f59e0b;border:1px solid rgba(245,158,11,.35);box-shadow:0 0 8px #f59e0b33}.res-biomass .res-badge{background:#a855f726;color:#c084fc;border:1px solid rgba(168,85,247,.35);box-shadow:0 0 8px #a855f733}.res-silicon .res-badge{background:#06b6d426;color:#06b6d4;border:1px solid rgba(6,182,212,.35);box-shadow:0 0 8px #06b6d433}.res-carbon .res-badge{background:#94a3b826;color:#94a3b8;border:1px solid rgba(148,163,184,.35)}.app-view{width:100%;display:flex;flex-direction:column;gap:20px;animation:fadeInView .35s cubic-bezier(.16,1,.3,1)}@keyframes fadeInView{0%{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.btn-block{width:100%;justify-content:center}.btn-sm{padding:8px 14px;font-size:.85rem}.btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.15);color:var(--text-muted)}.btn-ghost:hover{background:#ffffff0d;color:var(--text-main);border-color:#ffffff4d}.landing-container{width:100%;max-width:760px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:24px;padding:20px 0}.landing-header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.landing-badge{display:inline-block;font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:700;letter-spacing:.15em;color:var(--accent-cyan);background:#06b6d41f;border:1px solid rgba(6,182,212,.3);padding:4px 14px;border-radius:999px;text-transform:uppercase}.landing-title{font-size:3.2rem;font-weight:800;letter-spacing:.08em;background:linear-gradient(135deg,#f8fafc,#38bdf8 40%,#f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:0;text-shadow:0 0 30px rgba(56,189,248,.25)}.landing-subtitle{font-size:1.05rem;color:var(--text-muted);max-width:540px}.landing-card{width:100%;text-align:center;padding:36px 32px;border:1px solid rgba(6,182,212,.25);box-shadow:0 20px 50px -10px #000000b3,0 0 30px #06b6d41a;position:relative;overflow:hidden}.landing-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent-cyan),var(--accent-gold),var(--accent-purple))}.card-header-icon{font-size:2.8rem;margin-bottom:12px;display:inline-block;filter:drop-shadow(0 0 16px rgba(6,182,212,.4))}.landing-card h2{font-size:1.45rem;font-weight:700;margin-bottom:6px;color:var(--text-main)}.landing-card-desc{font-size:.92rem;color:var(--text-muted);margin-bottom:24px}.login-form{display:flex;flex-direction:column;gap:18px;text-align:left}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.84rem;font-weight:600;color:#cbd5e1}.label-optional{font-size:.75rem;color:#64748b;font-weight:400}.input-icon-wrapper{position:relative;display:flex;align-items:center}.input-icon-wrapper .input-icon{position:absolute;left:14px;font-size:1.1rem;pointer-events:none;opacity:.85}.input-icon-wrapper input{width:100%;background:#0f172ad9;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:12px 14px 12px 42px;color:#f8fafc;font-family:inherit;font-size:.96rem;transition:all .2s ease}.input-icon-wrapper input:focus{outline:none;border-color:var(--accent-cyan);background:#0f172a;box-shadow:0 0 16px #06b6d44d}.checkbox-label{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{accent-color:var(--accent-cyan);width:16px;height:16px;cursor:pointer}.form-actions{display:flex;flex-direction:column;gap:12px;margin-top:10px}.system-status-indicator{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08);font-size:.82rem;color:#94a3b8;font-family:JetBrains Mono,monospace}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--accent-green);box-shadow:0 0 8px var(--accent-green)}.status-dot.pulse{animation:pulseGlow 2s infinite}@keyframes pulseGlow{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.6}}.landing-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;width:100%}.pillar-card{text-align:center;padding:20px 16px;display:flex;flex-direction:column;align-items:center;gap:8px}.pillar-icon{font-size:1.8rem;margin-bottom:4px}.pillar-card h3{font-size:.98rem;font-weight:700;color:var(--text-main)}.pillar-card p{font-size:.82rem;color:var(--text-muted);line-height:1.4}@media(max-width:640px){.landing-pillars{grid-template-columns:1fr}.landing-title{font-size:2.4rem}.landing-card{padding:24px 18px}}.hub-container{width:100%;display:flex;flex-direction:column;gap:24px}.hub-header{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;background:#131d33d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hub-brand{display:flex;align-items:center;gap:12px}.hub-logo{font-size:2rem;filter:drop-shadow(0 0 12px rgba(6,182,212,.5))}.hub-brand h2{font-size:1.25rem;font-weight:800;letter-spacing:.05em;margin:0;color:var(--text-main)}.hub-sub{font-size:.78rem;color:var(--accent-cyan);font-family:JetBrains Mono,monospace;text-transform:uppercase}.hub-user-panel{display:flex;align-items:center;gap:16px}.user-chip,.score-chip{display:flex;align-items:center;gap:10px;padding:6px 14px;background:#0f172ab3;border:1px solid rgba(255,255,255,.1);border-radius:10px}.user-chip-icon,.score-chip-icon{font-size:1.2rem}.user-chip-label,.score-chip-label{display:block;font-size:.68rem;color:var(--text-muted);text-transform:uppercase;font-family:JetBrains Mono,monospace}.user-chip-val{font-weight:700;font-size:.9rem;color:var(--accent-cyan)}.score-chip-val{font-family:JetBrains Mono,monospace;font-weight:800;font-size:1.05rem;color:var(--accent-gold)}.hub-intro{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;margin:8px 0 4px}.hub-intro h1{font-size:2rem;font-weight:800;color:var(--text-main);margin:0}.hub-intro p{color:var(--text-muted);font-size:.95rem;max-width:600px}.modes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;width:100%}.mode-card{display:flex;flex-direction:column;padding:24px;border-radius:16px;transition:all .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.mode-active{border-color:#06b6d466;background:linear-gradient(180deg,#131d33f2,#0f172afa);box-shadow:0 10px 30px #00000080,0 0 20px #06b6d41f}.mode-active:hover{transform:translateY(-4px);border-color:var(--accent-cyan);box-shadow:0 16px 40px #0009,0 0 30px #06b6d440}.mode-locked{border-color:#ffffff14;background:#131d3399;opacity:.85}.mode-locked:hover{opacity:1;border-color:#fff3;transform:translateY(-2px)}.mode-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.mode-icon-wrapper{width:50px;height:50px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#06b6d426;border:1px solid rgba(6,182,212,.3)}.mode-icon-wrapper.locked-icon{background:#ffffff0d;border-color:#ffffff1a}.mode-icon{font-size:1.8rem}.mode-badge{font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:999px;text-transform:uppercase}.badge-active{background:#10b98126;color:var(--accent-green);border:1px solid rgba(16,185,129,.35)}.badge-locked{background:#f59e0b26;color:var(--accent-gold);border:1px solid rgba(245,158,11,.3)}.mode-title{font-size:1.35rem;font-weight:700;margin-bottom:10px;color:var(--text-main)}.mode-desc{font-size:.88rem;color:var(--text-muted);line-height:1.5;margin-bottom:18px;flex-grow:1}.mode-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px}.mode-tag{font-size:.72rem;font-family:JetBrains Mono,monospace;padding:3px 8px;border-radius:6px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);color:#cbd5e1}.mode-actions{margin-top:auto}@media(max-width:900px){.modes-grid{grid-template-columns:1fr}.hub-header{flex-direction:column;gap:12px;align-items:stretch}.hub-user-panel{flex-wrap:wrap;justify-content:space-between}}.game-top-nav{display:flex;align-items:center;gap:14px;padding:8px 16px;background:#131d33b3;border:1px solid var(--bg-card-border);border-radius:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.current-mode-chip{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:700;color:var(--accent-gold);background:#f59e0b1f;border:1px solid rgba(245,158,11,.3);padding:4px 12px;border-radius:999px}.top-nav-spacer{flex-grow:1}.upcoming-badge{display:inline-block;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:700;color:var(--accent-gold);background:#f59e0b26;border:1px solid rgba(245,158,11,.35);padding:4px 12px;border-radius:999px;margin-bottom:14px}.upcoming-desc{font-size:.95rem;line-height:1.55;color:var(--text-main);margin-bottom:16px}.upcoming-box{display:flex;gap:12px;padding:14px 16px;background:#0f172ad9;border:1px solid rgba(6,182,212,.25);border-radius:10px;font-size:.88rem;line-height:1.5;color:#cbd5e1}.upcoming-box-icon{font-size:1.4rem;flex-shrink:0}.cell-biome-mountain{background:linear-gradient(135deg,#1e293bd9,#0f172af2)!important;box-shadow:inset 0 0 10px #94a3b826}.cell-biome-mountain:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 50% 50%,rgba(148,163,184,.08) 1px,transparent 1px);background-size:6px 6px;pointer-events:none}.mountain-watermark{position:absolute;bottom:3px;right:4px;font-size:.7rem;opacity:.4;pointer-events:none;filter:grayscale(.5);transition:opacity .2s ease}.cell:hover .mountain-watermark{opacity:.8}.cell-biome-swamp{background:linear-gradient(135deg,#270f33e6,#120a1cf2)!important;box-shadow:inset 0 0 12px #a855f733}.cell-biome-swamp:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 50% 50%,rgba(168,85,247,.12) 1px,transparent 1px);background-size:6px 6px;pointer-events:none}.swamp-watermark{position:absolute;bottom:3px;right:4px;font-size:.7rem;opacity:.45;pointer-events:none;filter:drop-shadow(0 0 4px rgba(168,85,247,.6));transition:opacity .2s ease}.cell:hover .swamp-watermark{opacity:.85}.cell.cell-lake{background:radial-gradient(circle at 50% 50%,#0369a1,#075985 55%,#082f49)!important;box-shadow:inset 0 0 14px #38bdf880,0 0 6px #0ea5e966;border-color:#38bdf8!important;cursor:not-allowed!important}.cell.cell-lake:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-radial-gradient(circle at 50% 50%,transparent,transparent 4px,rgba(56,189,248,.15) 5px,transparent 6px);pointer-events:none;animation:waterRipple 4s ease-in-out infinite alternate}.lake-watermark{font-size:1.4rem;opacity:.95;pointer-events:none;filter:drop-shadow(0 2px 6px rgba(0,0,0,.6));animation:lakeBob 2.5s ease-in-out infinite alternate}@keyframes waterRipple{0%{transform:scale(.95);opacity:.3}to{transform:scale(1.08);opacity:.7}}@keyframes lakeBob{0%{transform:translateY(0) scale(1)}to{transform:translateY(-2px) scale(1.08)}}.biome-pill{display:inline-block;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:6px}.biome-pill.biome-mountain{background:#94a3b833;color:#e2e8f0;border:1px solid rgba(148,163,184,.4)}.biome-pill.biome-swamp{background:#a855f733;color:#f3e8ff;border:1px solid rgba(168,85,247,.4)}.biome-pill.biome-plains{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.3)}.legend-biome-badge{font-family:JetBrains Mono,monospace;font-size:.68rem;font-weight:600;padding:1px 6px;border-radius:4px;margin-left:6px;display:inline-block}.legend-biome-badge.biome-mountain-tag{background:#94a3b833;color:#e2e8f0;border:1px solid rgba(148,163,184,.4)}.legend-biome-badge.biome-swamp-tag{background:#a855f733;color:#f3e8ff;border:1px solid rgba(168,85,247,.4)}.legend-biome-badge.biome-plains-tag{background:#10b9811f;color:#34d399;border:1px solid rgba(16,185,129,.25)}
