:root{--bg-dark: #080c14;--surface-base: #0b0f17;--surface-glass: rgba(11, 15, 23, .82);--surface-glass-border: rgba(255, 255, 255, .09);--surface-glass-hover: rgba(20, 27, 40, .9);--surface-card: rgba(15, 21, 33, .95);--surface-card-border: rgba(255, 255, 255, .12);--primary: #3b82f6;--primary-hover: #2563eb;--primary-glow: rgba(59, 130, 246, .35);--accent-gold: #f59e0b;--accent-gold-hover: #d97706;--accent-gold-glow: rgba(245, 158, 11, .3);--emerald: #10b981;--emerald-glow: rgba(16, 185, 129, .3);--ruby: #ef4444;--azure: #38bdf8;--amber: #fbbf24;--purple: #a855f7;--text-bright: #ffffff;--text-main: #f1f5f9;--text-muted: #94a3b8;--text-dim: #64748b;--ease-smooth: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0;user-select:none}body,html{width:100%;height:100%;overflow:hidden;background-color:var(--bg-dark);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text-main);-webkit-font-smoothing:antialiased}#app{width:100%;height:100%;position:relative;overflow:hidden}#game-canvas{width:100%;height:100%;display:block;cursor:grab}#game-canvas:active{cursor:grabbing}.loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#070a10;display:flex;align-items:center;justify-content:center;z-index:1000}.loading-content{display:flex;flex-direction:column;align-items:center;gap:16px}.loading-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.08);border-top-color:var(--accent-gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-title{font-size:1.15rem;font-weight:800;letter-spacing:.06em;color:#fff}.loading-sub{font-size:.85rem;color:var(--text-muted)}.ui-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.ui-layer>*{pointer-events:auto}.village-hud-top{position:absolute;top:14px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;pointer-events:none;z-index:40}.hud-capsule{pointer-events:auto;background:var(--surface-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--surface-glass-border);border-radius:12px;box-shadow:0 12px 36px -4px #0000008c,0 4px 12px -2px #00000059;transition:all .2s var(--ease-smooth)}.hud-identity{display:flex;align-items:center;gap:10px;padding:8px 14px}.hud-brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit;transition:opacity .15s ease}.hud-brand:hover{opacity:.85}.brand-glyph{width:24px;height:24px;color:var(--accent-gold);display:flex;align-items:center;justify-content:center}.brand-text{display:flex;flex-direction:column}.brand-name{font-weight:900;font-size:13px;letter-spacing:.08em;color:var(--text-bright);line-height:1.1}.brand-lab{font-size:9px;font-weight:700;letter-spacing:.06em;color:var(--accent-gold);text-transform:uppercase;line-height:1.2}.hud-status-divider{width:1px;height:18px;background:#ffffff1f}.hud-live-tag{display:flex;align-items:center;gap:5px;background:#ef444429;border:1px solid rgba(239,68,68,.35);padding:2px 7px;border-radius:5px}.live-dot{width:6px;height:6px;border-radius:50%;background:#ef4444;box-shadow:0 0 6px #ef4444;animation:pulse-dot 1.8s infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.live-text{font-size:9px;font-weight:800;letter-spacing:.08em;color:#fca5a5}.hud-epoch-tag{font-size:10px;font-weight:700;color:#93c5fd;background:#3b82f61f;border:1px solid rgba(59,130,246,.25);padding:2px 7px;border-radius:5px;letter-spacing:.04em}.hud-objective{flex:1;max-width:520px;display:flex;flex-direction:column;gap:6px;padding:8px 14px}.objective-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.objective-label-wrap{display:flex;align-items:center;gap:8px;overflow:hidden}.objective-phase-badge{font-size:9px;font-weight:800;letter-spacing:.08em;color:#10b981;background:#10b98124;border:1px solid rgba(16,185,129,.3);padding:1px 5px;border-radius:4px;white-space:nowrap}.objective-name{font-size:12px;font-weight:600;color:var(--text-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.objective-metrics{display:flex;align-items:center;gap:8px;white-space:nowrap}.objective-countdown{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;color:#facc15;font-weight:600}.objective-percent{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;font-weight:800;color:#34d399}.objective-progress-track{width:100%;height:5px;background:#ffffff14;border-radius:3px;overflow:hidden}.objective-progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#38bdf8);border-radius:3px;box-shadow:0 0 8px #10b98180;transition:width .4s var(--ease-smooth)}.hud-actions{display:flex;align-items:center;gap:8px;padding:6px 10px}.hud-btn{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:6px 12px;border-radius:8px;border:1px solid transparent;cursor:pointer;transition:all .15s var(--ease-smooth);white-space:nowrap}.btn-icon{width:14px;height:14px}.key-badge{font-size:9px;font-weight:700;font-family:ui-monospace,monospace;padding:1px 4px;border-radius:3px;background:#00000040;border:1px solid rgba(255,255,255,.15)}.hud-btn-vote{background:linear-gradient(180deg,#f59e0b,#d97706);color:#0b0f17;font-weight:700;box-shadow:0 2px 10px #f59e0b4d}.hud-btn-vote:hover{background:linear-gradient(180deg,#fbbf24,#f59e0b);box-shadow:0 4px 14px #f59e0b66}.hud-btn-forge{background:#ffffff14;color:#f1f5f9;border-color:#ffffff24}.hud-btn-forge:hover{background:#ffffff24;border-color:#ffffff3d}.hud-link-about{font-size:11px;font-weight:600;color:var(--text-muted);text-decoration:none;padding:6px 8px;transition:color .15s ease}.hud-link-about:hover{color:#fff}.camera-controls-widget{position:absolute;bottom:16px;right:16px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:auto;z-index:40}.tracking-pill{display:flex;align-items:center;gap:8px;background:var(--surface-glass);backdrop-filter:blur(14px);border:1px solid rgba(56,189,248,.35);padding:5px 12px;border-radius:20px;font-size:11px;font-weight:600;color:#38bdf8;box-shadow:0 4px 16px #0006;cursor:pointer;transition:all .15s ease}.tracking-pill:hover{border-color:#38bdf899;background:#0e1726f2}.tracking-pill.hidden{display:none}.tracking-dot{width:6px;height:6px;border-radius:50%;background:#38bdf8;box-shadow:0 0 6px #38bdf8}.tracking-cancel{font-size:14px;color:var(--text-dim)}.camera-actions-group{display:flex;align-items:center;background:var(--surface-glass);backdrop-filter:blur(16px);border:1px solid var(--surface-glass-border);border-radius:10px;padding:4px;box-shadow:0 8px 24px #00000073}.cam-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:var(--text-main);cursor:pointer;transition:all .15s ease}.cam-btn:hover{background:#ffffff1a;color:#fff}.cam-icon{width:16px;height:16px}.cam-zoom-badge{font-family:ui-monospace,monospace;font-size:10px;font-weight:700;color:var(--text-muted);padding:0 6px}.village-chronicle{position:absolute;bottom:16px;left:16px;width:360px;max-width:calc(100vw - 32px);background:var(--surface-glass);backdrop-filter:blur(16px);border:1px solid var(--surface-glass-border);border-radius:12px;box-shadow:0 12px 36px #00000080;overflow:hidden;z-index:40;transition:all .25s var(--ease-smooth)}.village-chronicle.minimized{width:auto}.chronicle-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#0000004d;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer}.chronicle-header-left{display:flex;align-items:center;gap:7px}.chronicle-beacon{width:6px;height:6px;border-radius:50%;background:#34d399}.chronicle-title{font-size:11px;font-weight:800;letter-spacing:.07em;color:#e2e8f0}.btn-chronicle-toggle{background:transparent;border:none;color:var(--text-muted);cursor:pointer;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.toggle-icon{width:14px;height:14px;transition:transform .2s ease}.chronicle-body{display:flex;flex-direction:column;gap:6px;padding:8px 12px;max-height:140px;overflow-y:auto}.chronicle-body.collapsed{display:none}.chronicle-item{display:flex;flex-direction:column;gap:2px;font-size:11px;line-height:1.35;border-bottom:1px solid rgba(255,255,255,.04);padding-bottom:5px}.chronicle-item:last-child{border-bottom:none;padding-bottom:0}.item-header-meta{display:flex;align-items:center;gap:6px}.event-tag{font-size:9px;font-weight:800;letter-spacing:.05em;padding:1px 4px;border-radius:3px}.tag-speech{background:#38bdf826;color:#38bdf8}.tag-build{background:#10b98126;color:#34d399}.tag-craft{background:#f59e0b26;color:#fbbf24}.tag-breakthrough{background:#facc1533;color:#fde047}.tag-epoch{background:#a855f726;color:#c084fc}.event-time{font-family:ui-monospace,monospace;font-size:10px;color:var(--text-dim)}.item-msg-line{color:#cbd5e1}.event-agent{font-weight:700;color:#93c5fd;margin-right:4px}.inspector-panel{position:absolute;top:76px;right:16px;width:330px;max-width:calc(100vw - 32px);background:var(--surface-glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--surface-glass-border);border-radius:14px;box-shadow:0 16px 48px #000000a6;overflow:hidden;z-index:50;animation:slide-in .25s var(--ease-smooth)}@keyframes slide-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.inspector-panel.hidden{display:none}.inspector-card-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#00000059;border-bottom:1px solid rgba(255,255,255,.08)}.inspector-artisan-profile{display:flex;align-items:center;gap:12px}.artisan-avatar-frame{width:38px;height:38px;border-radius:10px;border:2px solid #3b82f6;display:flex;align-items:center;justify-content:center;background:#0006;transition:all .2s ease}.artisan-avatar-initial{font-size:17px;font-weight:900;width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:8px}.artisan-info{display:flex;flex-direction:column}.artisan-name-row{display:flex;align-items:center;gap:8px}.artisan-name{font-size:16px;font-weight:800;color:var(--text-bright)}.artisan-role-pill{font-size:9px;font-weight:800;letter-spacing:.06em;padding:1px 6px;border-radius:4px;border:1px solid}.artisan-title{font-size:11px;color:var(--text-muted)}.btn-close-dossier{background:transparent;border:none;font-size:20px;color:var(--text-dim);cursor:pointer;padding:4px;line-height:1}.btn-close-dossier:hover{color:#fff}.inspector-card-body{padding:14px 16px;display:flex;flex-direction:column;gap:12px}.dossier-section{display:flex;flex-direction:column;gap:5px}.section-label-row{display:flex;justify-content:space-between;align-items:center}.section-label{font-size:9px;font-weight:800;letter-spacing:.08em;color:var(--text-dim)}.status-live-indicator{font-size:8px;font-weight:800;color:#34d399;letter-spacing:.06em}.artisan-activity{font-size:12px;font-weight:600;color:var(--text-main);background:#00000040;padding:6px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.05)}.artisan-thoughts-box{position:relative;display:flex;gap:8px;background:#0000004d;padding:8px 10px;border-radius:6px;border-left:2px solid var(--accent-gold)}.quote-glyph{width:14px;height:14px;color:var(--accent-gold);flex-shrink:0;margin-top:2px}.artisan-thoughts{font-size:11px;font-style:italic;color:#cbd5e1;line-height:1.4}.energy-val{font-family:ui-monospace,monospace;font-size:11px;font-weight:700;color:#34d399}.energy-meter-track{width:100%;height:6px;background:#ffffff14;border-radius:4px;overflow:hidden}.energy-meter-fill{height:100%;border-radius:4px;transition:width .3s ease}.inventory-grid{display:flex;flex-direction:column;gap:4px;max-height:120px;overflow-y:auto}.inventory-slot{display:flex;align-items:center;gap:8px;background:#00000040;border:1px solid rgba(255,255,255,.06);padding:5px 8px;border-radius:6px}.slot-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;border-radius:4px;background:#ffffff14;color:var(--text-muted)}.slot-details{flex:1}.slot-title{font-size:11px;font-weight:600;color:#e2e8f0}.slot-badge{font-family:ui-monospace,monospace;font-size:10px;font-weight:700;color:#93c5fd;background:#3b82f626;padding:1px 5px;border-radius:4px}.btn-track-artisan{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:8px 14px;border-radius:8px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:var(--text-bright);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;margin-top:4px}.btn-track-artisan:hover{background:#ffffff24}.btn-track-artisan.tracking-active{background:#38bdf833;border-color:#38bdf8;color:#38bdf8}.track-icon{width:14px;height:14px}.modal-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:100;animation:fade-in .2s var(--ease-smooth)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-backdrop.hidden{display:none}.modal-card{width:90%;max-width:580px;background:var(--surface-card);border:1px solid var(--surface-card-border);border-radius:16px;box-shadow:0 24px 64px #000000bf;display:flex;flex-direction:column;max-height:90vh;overflow:hidden;animation:scale-up .25s var(--ease-smooth)}@keyframes scale-up{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.modal-card-wide,.modal-card-forge{max-width:720px}.modal-card-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.modal-title-group{display:flex;flex-direction:column;gap:4px}.modal-badge-row{display:flex;gap:6px}.modal-chip{font-size:9px;font-weight:800;letter-spacing:.06em;padding:2px 6px;border-radius:4px;text-transform:uppercase}.chip-gold{background:#f59e0b29;color:#fbbf24;border:1px solid rgba(245,158,11,.35)}.chip-amber{background:#d977062e;color:#f59e0b;border:1px solid rgba(217,119,6,.35)}.chip-neutral{background:#ffffff14;color:var(--text-muted)}.modal-heading{font-size:19px;font-weight:800;color:var(--text-bright)}.modal-subheading{font-size:12px;color:var(--text-muted);line-height:1.4}.btn-modal-close{background:transparent;border:none;font-size:22px;color:var(--text-dim);cursor:pointer;line-height:1}.btn-modal-close:hover{color:#fff}.modal-card-body{padding:20px 24px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.ballot-list{display:flex;flex-direction:column;gap:10px}.ballot-card{background:#00000059;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:10px;transition:all .15s ease}.ballot-card:hover{border-color:#ffffff29;background:#00000073}.ballot-card-voted{border-color:#10b98166;background:#10b9810f}.ballot-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.ballot-info{display:flex;flex-direction:column;gap:4px}.ballot-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.ballot-title{font-size:14px;font-weight:700;color:var(--text-bright)}.ballot-percent{font-family:ui-monospace,monospace;font-size:13px;font-weight:800;color:#38bdf8}.ballot-desc{font-size:12px;color:var(--text-muted);line-height:1.4}.btn-vote-action{font-size:12px;font-weight:700;padding:6px 14px;border-radius:6px;background:var(--primary);color:#fff;border:none;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn-vote-action:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 0 12px var(--primary-glow)}.btn-vote-action:disabled{opacity:.6;cursor:not-allowed}.btn-vote-action.voted-state{background:#10b98133;color:#34d399;border:1px solid rgba(16,185,129,.4)}.ballot-track{width:100%;height:5px;background:#ffffff14;border-radius:3px;overflow:hidden}.ballot-fill{height:100%;background:linear-gradient(90deg,#38bdf8,#f59e0b);border-radius:3px;transition:width .3s ease}.ballot-tally-meta{font-size:11px;color:var(--text-dim)}.ballot-propose-card{border-top:1px solid rgba(255,255,255,.08);padding-top:16px;display:flex;flex-direction:column;gap:8px}.propose-tag{font-size:9px;font-weight:800;letter-spacing:.08em;color:var(--text-dim)}.propose-title{font-size:13px;font-weight:700;color:var(--text-bright)}.propose-desc{font-size:11px;color:var(--text-muted)}.propose-form{display:flex;gap:8px;margin-top:4px}.modal-input-text,.modal-input-select{flex:1;background:#0006;border:1px solid rgba(255,255,255,.14);border-radius:6px;padding:8px 12px;font-size:12px;color:#fff;outline:none;transition:border-color .15s ease}.modal-input-text:focus,.modal-input-select:focus{border-color:var(--primary)}.btn-propose-submit{font-size:12px;font-weight:600;padding:8px 16px;border-radius:6px;background:#ffffff1a;color:var(--text-bright);border:1px solid rgba(255,255,255,.14);cursor:pointer}.btn-propose-submit:hover{background:#ffffff2e}.propose-status{font-size:11px;color:#34d399}.forge-workspace{display:flex;gap:24px}.forge-canvas-panel{display:flex;flex-direction:column;align-items:center;gap:12px}.pixel-easel{width:256px;height:256px;background:#14171f;border:2px solid rgba(255,255,255,.15);border-radius:10px;overflow:hidden;box-shadow:0 10px 30px #00000080}#forge-pixel-canvas{width:256px;height:256px;image-rendering:pixelated;cursor:crosshair}.forge-toolbar{width:100%}.tool-btn-group{display:flex;gap:6px;width:100%}.forge-tool-btn{flex:1;padding:5px 8px;font-size:11px;font-weight:600;border-radius:6px;background:#ffffff14;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);cursor:pointer;transition:all .15s ease}.forge-tool-btn.active{background:var(--accent-gold);color:#0b0f17;font-weight:700;border-color:var(--accent-gold)}.palette-swatches-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;width:256px}.swatch-cell{width:26px;height:26px;border-radius:4px;border:2px solid transparent;cursor:pointer;transition:transform .1s ease}.swatch-cell.active{border-color:#fff;transform:scale(1.18);box-shadow:0 0 8px #fff6}.forge-form-panel{flex:1;display:flex;flex-direction:column;gap:12px}.forge-input-group{display:flex;flex-direction:column;gap:4px}.forge-label{font-size:11px;font-weight:600;color:var(--text-muted)}.forge-system-note{background:#00000040;border:1px solid rgba(255,255,255,.06);padding:8px 12px;border-radius:8px;display:flex;flex-direction:column;gap:3px}.note-heading{font-size:10px;font-weight:800;letter-spacing:.06em;color:#38bdf8}.note-body{font-size:11px;color:var(--text-muted);line-height:1.4}.btn-forge-submit{padding:10px 16px;border-radius:8px;background:linear-gradient(180deg,#f59e0b,#d97706);color:#0b0f17;font-size:13px;font-weight:700;border:none;cursor:pointer;box-shadow:0 4px 14px #f59e0b59;transition:all .15s ease}.btn-forge-submit:hover{background:linear-gradient(180deg,#fbbf24,#f59e0b);box-shadow:0 6px 18px #f59e0b73}.forge-feedback-msg{font-size:11px;color:#34d399;text-align:center}.forge-gallery-section{border-top:1px solid rgba(255,255,255,.08);padding-top:14px;display:flex;flex-direction:column;gap:10px}.gallery-title{font-size:13px;font-weight:700;color:var(--text-bright)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.blueprint-card{display:flex;align-items:center;gap:10px;background:#00000040;border:1px solid rgba(255,255,255,.06);padding:8px;border-radius:8px}.blueprint-card canvas{border-radius:4px;background:#14171f;image-rendering:pixelated}.blueprint-details{display:flex;flex-direction:column;gap:2px}.blueprint-name{font-size:12px;font-weight:700;color:var(--text-bright)}.blueprint-author{font-size:10px;color:var(--text-muted)}.blueprint-used-badge{font-size:9px;font-weight:800;color:#34d399;background:#10b98126;padding:1px 4px;border-radius:3px;width:fit-content}@media(max-width:900px){.village-hud-top{flex-direction:column;align-items:stretch;gap:8px}.hud-objective{max-width:100%}.hud-actions{justify-content:flex-end}}@media(max-width:768px){.village-hud-top{left:8px;right:8px;top:8px}.inspector-panel{inset:auto 8px 60px;width:auto}.forge-workspace{flex-direction:column;align-items:center}.village-chronicle{left:8px;bottom:8px}.camera-controls-widget{right:8px;bottom:8px}}
