*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-deep:#060b06;--bg-panel:#0d1a0d;--bg-card:#111e11;--bg-hover:#162216;--text-primary:#f0ebe0;--text-secondary:#8a9a7a;--text-muted:#5a6a4a;--accent-green:#b8c8a0;--accent-gold:#c9a96e;--accent-cream:#efe7d3;--border:#788c6426;--border-strong:#788c644d;--serif:Georgia, "Noto Serif SC", "Source Han Serif SC", serif;--mono:"SF Mono", "Menlo", "Consolas", monospace;--sans:-apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:40px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-pill:999px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--focus-ring:0 0 0 2px #b8c8a08c}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible{box-shadow:var(--focus-ring);outline:none}html,body{background:var(--bg-deep);width:100%;height:100%;color:var(--text-primary);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.6;overflow:hidden}canvas#world-canvas{z-index:0;width:100%;height:100%;display:block;position:fixed;top:0;left:0}#ui-layer{z-index:10;pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0}.hidden{display:none!important}.display-title{font-family:var(--mono);letter-spacing:4px;text-transform:uppercase;color:var(--accent-cream);font-size:2.4rem;font-weight:700}.heading-italic{font-family:var(--serif);color:var(--text-primary);font-size:1.4rem;font-style:italic;font-weight:300;line-height:1.4}.body-text{font-family:var(--sans);color:var(--text-secondary);font-size:.9rem;line-height:1.7}.mono-label{font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);font-size:.7rem}.start-screen{z-index:100;background:var(--bg-deep);cursor:pointer;justify-content:center;align-items:center;transition:opacity .6s;display:flex;position:fixed;inset:0}.start-content{text-align:center;align-items:center;gap:var(--space-lg);max-width:480px;padding:var(--space-xl);flex-direction:column;display:flex}.start-content .display-title{letter-spacing:8px;font-size:2.8rem;animation:4s ease-in-out infinite title-glow}.start-tagline{font-family:var(--serif);color:var(--text-primary);letter-spacing:.5px;opacity:.9;font-size:1.3rem;font-style:italic;font-weight:300}.start-desc{font-family:var(--sans);color:var(--text-secondary);letter-spacing:.3px;font-size:.8rem;line-height:1.6}.start-controls{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-sm);background:#0d1a0d80;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.start-control-hint{font-family:var(--mono);letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);font-size:.6rem}.start-control-sep{color:var(--border-strong);font-size:.5rem}.start-actions{gap:var(--space-md);margin-top:var(--space-sm);flex-wrap:wrap;justify-content:center;display:flex}.start-action-btn{font-family:var(--mono);letter-spacing:3px;text-transform:uppercase;cursor:pointer;transition:all var(--transition-base);pointer-events:auto;border-radius:4px;padding:14px 28px;font-size:.7rem;font-weight:600}.start-action-btn.primary{background:var(--accent-gold);color:var(--bg-deep);border:1px solid var(--accent-gold);animation:3s ease-in-out infinite cta-border-glow}.start-action-btn.primary:hover{transform:translateY(-1px);box-shadow:0 4px 18px #c9a96e59}.start-action-btn:active{transform:translateY(0)scale(.98)}.start-action-btn.secondary{color:var(--accent-cream);border:1px solid var(--border-strong);background:0 0}.start-action-btn.secondary:hover{border-color:var(--accent-green);color:var(--accent-green)}.start-hint{font-family:var(--sans);color:var(--text-muted);margin-top:var(--space-md);font-size:.7rem;font-style:italic}.start-screen.fade-out{opacity:0;pointer-events:none}.touch-only{display:none}.desktop-only{display:inline}@media (pointer:coarse){.touch-only{display:inline}.desktop-only{display:none}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes title-glow{0%,to{text-shadow:0 0 #0000}50%{text-shadow:0 0 20px #b8c8a026}}@keyframes cta-border-glow{0%,to{border-color:#b8c8a066;box-shadow:0 0 #0000}50%{border-color:var(--accent-green);box-shadow:0 0 12px #b8c8a026}}.hud{top:var(--space-lg);font-family:var(--mono);letter-spacing:2px;text-transform:uppercase;color:var(--accent-green);opacity:0;transition:opacity var(--transition-base);pointer-events:none;white-space:nowrap;font-size:.7rem;position:absolute;left:50%;transform:translate(-50%)}.hud.visible{opacity:1}.minimap{bottom:var(--space-lg);right:var(--space-lg);background:var(--bg-panel);border:1px solid var(--border);width:160px;padding:var(--space-sm) var(--space-md);pointer-events:auto;border-radius:8px;position:absolute}.minimap-title{font-family:var(--mono);letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-sm);border-bottom:1px solid var(--border);padding-bottom:var(--space-xs);font-size:.6rem}.minimap-item{align-items:center;gap:var(--space-sm);cursor:pointer;transition:background var(--transition-fast);border-radius:4px;padding:3px 4px;display:flex}.minimap-item .mm-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-right:6px;display:inline-block}.minimap-item .mm-code{font-family:var(--mono);color:var(--text-muted);min-width:20px;font-size:.6rem}.minimap-item .mm-name{font-family:var(--sans);color:var(--text-secondary);font-size:.72rem}.minimap-item:hover{background:var(--bg-hover)}.minimap-item:hover .mm-name{color:var(--text-primary)}.minimap-item.active{background:var(--bg-card)}.minimap-item.active .mm-code{color:var(--accent-green)}.minimap-item.active .mm-name{color:var(--accent-cream)}.minimap-item .mm-distance{font-family:var(--mono);color:var(--accent-gold);opacity:0;transition:opacity var(--transition-base);margin-left:auto;padding-left:6px;font-size:.6rem}.minimap-item.hovered .mm-distance{opacity:.85}.minimap-item.hovered .mm-dot{box-shadow:0 0 8px 2px var(--zone-color,#b8c8a099)}.nav-overlay{top:var(--space-lg);left:var(--space-lg);pointer-events:auto;position:absolute}.nav-links{gap:var(--space-xs);flex-direction:column;display:flex}.nav-link{font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);transition:color var(--transition-fast), background var(--transition-fast);cursor:pointer;border-radius:4px;padding:4px 8px;font-size:.7rem;text-decoration:none}.nav-link:hover{color:var(--accent-green);background:var(--bg-hover)}.panel-overlay{pointer-events:auto;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#060b0699;justify-content:center;align-items:center;animation:.24s panel-overlay-fade;display:flex;position:absolute;inset:0}@keyframes panel-overlay-fade{0%{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}.panel{background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:12px;flex-direction:column;width:min(520px,90vw);max-height:80vh;animation:.32s cubic-bezier(.16,1,.3,1) panel-pop-in;display:flex;overflow-y:auto}@keyframes panel-pop-in{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.panel-stripe{border-top-left-radius:12px;border-top-right-radius:12px;flex-shrink:0;width:100%;height:4px}.panel-title{font-family:var(--serif);color:var(--accent-cream);font-size:1.5rem;font-style:italic;font-weight:300;line-height:1.4}.panel-header{padding:var(--space-lg) var(--space-lg) var(--space-md);border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;display:flex}.panel-eyebrow{font-family:var(--mono);letter-spacing:2px;text-transform:uppercase;color:var(--accent-green);margin-bottom:var(--space-xs);font-size:.65rem}.panel-close{border:1px solid var(--border);color:var(--text-muted);font-family:var(--mono);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);margin-left:var(--space-md);background:0 0;border-radius:4px;flex-shrink:0;padding:4px 10px;font-size:.7rem}.panel-close:hover{color:var(--text-primary);border-color:var(--border-strong)}.panel-body{padding:var(--space-lg);gap:var(--space-md);flex-direction:column;display:flex}.panel-body h3{font-family:var(--serif);color:var(--text-primary);font-size:1.4rem;font-style:italic;font-weight:300;line-height:1.4}.panel-divider{background:var(--border);border:none;height:1px}.panel-body p{font-family:var(--sans);color:var(--text-secondary);font-size:.875rem;line-height:1.7}.panel-footer{padding:var(--space-md) var(--space-lg) var(--space-lg);border-top:1px solid var(--border);gap:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.btn-primary{font-family:var(--mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--bg-deep);background:var(--accent-gold);border:1px solid var(--accent-gold);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);white-space:nowrap;border-radius:4px;justify-content:center;align-items:center;padding:9px 20px;font-size:.72rem;font-weight:700;text-decoration:none;display:inline-flex;box-shadow:0 1px 4px #c9a96e2e}.btn-primary:hover{background:var(--accent-cream);border-color:var(--accent-cream);color:var(--bg-deep);transform:translateY(-1px)scale(1.03);box-shadow:0 6px 18px #c9a96e66}.btn-primary:active{transform:translateY(0)scale(.99)}.btn-ghost{font-family:var(--mono);letter-spacing:1.8px;text-transform:uppercase;color:var(--text-secondary);border:1px solid var(--border-strong);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);white-space:nowrap;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:9px 20px;font-size:.72rem;font-weight:500;text-decoration:none;display:inline-flex}.btn-ghost:hover{color:var(--bg-deep);border-color:var(--accent-green);background:var(--accent-green);transform:translateY(-1px);box-shadow:0 4px 14px #b8c8a04d}.btn-ghost:active{transform:translateY(0)}.tag{font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;border-radius:var(--radius-sm);border:1px solid;align-items:center;padding:3px 8px;font-size:.6rem;display:inline-flex}.tag-active{color:var(--accent-green);background:#b8c8a014;border-color:#b8c8a066}.tag-muted{color:var(--text-muted);border-color:var(--border);background:0 0}.form-field{gap:var(--space-xs);flex-direction:column;display:flex}.form-label{font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);font-size:.65rem}.form-input{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);font-family:var(--sans);transition:border-color var(--transition-fast);border-radius:4px;outline:none;width:100%;padding:8px 12px;font-size:.875rem}.form-input:focus{border-color:var(--accent-green)}.form-input::placeholder{color:var(--text-muted)}.form-textarea{resize:vertical;min-height:80px}.tutorial-overlay{bottom:var(--space-xl);background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);pointer-events:auto;text-align:center;min-width:280px;position:absolute;left:50%;transform:translate(-50%)}.tutorial-keys{justify-content:center;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.tutorial-key{font-family:var(--mono);letter-spacing:1px;color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border-strong);text-align:center;border-radius:4px;min-width:28px;padding:3px 8px;font-size:.65rem}.tutorial-desc{font-family:var(--sans);color:var(--text-secondary);margin-bottom:var(--space-sm);font-size:.75rem}.tutorial-dismiss{font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:.6rem}.tutorial-dismiss:hover{color:var(--accent-green)}.tour-narration{bottom:var(--space-xl);border:1px solid var(--border-strong);padding:var(--space-md) var(--space-lg);pointer-events:auto;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:50;background:#0d1a0deb;border-radius:12px;width:90%;max-width:600px;position:absolute;left:50%;transform:translate(-50%)}.tour-narration:not(.hidden){animation:1.2s ease-out tour-narration-pulse,.24s panel-overlay-fade}.tour-narration.hidden{display:none}@keyframes tour-narration-pulse{0%{border-color:var(--border-strong);box-shadow:0 0 #0000}35%{border-color:var(--accent-gold);box-shadow:0 0 18px #c9a96e73}to{border-color:var(--border-strong);box-shadow:0 0 #0000}}.tour-prev{font-family:var(--mono);letter-spacing:2px;text-transform:uppercase;border:1px solid var(--border-strong);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border-radius:4px;padding:6px 14px;font-size:.6rem}.tour-prev:hover{color:var(--accent-green);border-color:var(--accent-green)}.tour-progress{font-family:var(--mono);letter-spacing:2px;color:var(--accent-gold);margin-bottom:var(--space-sm);font-size:.65rem}.tour-text{font-family:var(--serif);color:var(--text-primary);margin-bottom:var(--space-md);font-size:1rem;font-style:italic;line-height:1.6}.tour-buttons{gap:var(--space-sm);justify-content:center;display:flex}.tour-stop,.tour-skip{font-family:var(--mono);letter-spacing:2px;text-transform:uppercase;border:1px solid var(--border-strong);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border-radius:4px;padding:6px 14px;font-size:.6rem}.tour-stop:hover{color:var(--accent-green);border-color:var(--accent-green)}.tour-stop:active,.tour-skip:active,.tour-prev:active{transform:translateY(1px)}.tour-skip{border-color:var(--accent-gold);color:var(--accent-gold)}.tour-skip:hover{background:var(--accent-gold);color:var(--bg-deep)}.minimap-tour-btn{margin-top:var(--space-sm);background:var(--accent-gold);color:var(--bg-deep);font-family:var(--mono);letter-spacing:2px;text-transform:uppercase;text-align:center;cursor:pointer;transition:opacity var(--transition-fast);border-radius:4px;padding:8px 12px;font-size:.65rem;font-weight:600}.minimap-tour-btn:hover{opacity:.85}.crosshair{pointer-events:none;opacity:.5;width:16px;height:16px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crosshair:before,.crosshair:after{content:"";background:var(--accent-green);position:absolute}.crosshair:before{width:1px;height:100%;left:50%;transform:translate(-50%)}.crosshair:after{width:100%;height:1px;top:50%;transform:translateY(-50%)}.crosshair.hover-interactive{opacity:1;transform:translate(-50%,-50%)scale(1.4)}.crosshair.hover-interactive:before,.crosshair.hover-interactive:after{background:var(--accent-gold)}.zone-splash{pointer-events:none;opacity:0;text-align:center;z-index:60;background:0 0;flex-direction:column;justify-content:center;align-items:center;width:400px;height:200px;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.zone-splash.show{animation:1.5s forwards zone-splash-fade}.zone-splash-code{font-family:var(--mono);color:var(--accent-gold);letter-spacing:4px;font-size:4rem;font-weight:700;line-height:1}.zone-splash-name{font-family:var(--serif);color:var(--accent-cream);margin-top:var(--space-md);font-size:1.5rem;font-style:italic}.zone-splash-time{font-family:var(--mono);letter-spacing:1.5px;color:var(--accent-gold);opacity:.7;margin-top:var(--space-xs);font-size:.65rem}@keyframes zone-splash-fade{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}#touch-joystick{border:1px solid var(--border-strong);z-index:20;pointer-events:auto;background:#0d1a0d99;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;display:none;position:fixed;bottom:100px;left:40px}.joystick-knob{border:1px solid var(--accent-green);background:#b8c8a04d;border-radius:50%;width:32px;height:32px;transition:transform 50ms}@media (pointer:coarse){#touch-joystick{display:flex}.crosshair,.compass,.audio-toggle{display:none}.minimap{bottom:200px;left:var(--space-md);width:150px;right:auto}.tour-text{font-size:1.1rem}.start-actions{flex-direction:column;width:100%}.start-action-btn{width:100%;min-height:56px;transition:transform 80ms ease, all var(--transition-base);padding:16px 24px;font-size:.85rem}.start-action-btn:active{transform:scale(.98)}.start-action-btn.primary{width:100%;padding:18px 36px;font-size:.85rem}}.tour-resume-toast{background:var(--bg-panel);border:1px solid var(--accent-gold);border-radius:var(--radius-lg);padding:var(--space-lg);z-index:250;text-align:center;pointer-events:auto;max-width:360px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 32px #0006}.tour-resume-text{font-family:var(--serif);color:var(--accent-cream);margin-bottom:var(--space-md);font-size:1rem;font-style:italic;line-height:1.5}.tour-resume-buttons{gap:var(--space-sm);justify-content:center;display:flex}.tour-resume-btn{font-family:var(--mono);letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all var(--transition-fast);border-radius:4px;padding:8px 16px;font-size:.65rem}.tour-resume-btn.resume{background:var(--accent-gold);color:var(--bg-deep);border:1px solid var(--accent-gold)}.tour-resume-btn.resume:hover{opacity:.85}.tour-resume-btn.start-over{color:var(--text-secondary);border:1px solid var(--border-strong);background:0 0}.tour-resume-btn.start-over:hover{color:var(--accent-green);border-color:var(--accent-green)}.version-tag{top:calc(var(--space-lg) - 14px);right:var(--space-lg);font-family:var(--mono);letter-spacing:1px;color:var(--text-muted);opacity:.5;pointer-events:none;z-index:14;font-size:.55rem;position:absolute}@media (pointer:coarse){.version-tag{display:none}}.audio-toggle{top:var(--space-lg);right:var(--space-lg);font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);background:var(--bg-panel);border:1px solid var(--border);cursor:pointer;pointer-events:auto;transition:color var(--transition-fast), border-color var(--transition-fast);z-index:15;border-radius:4px;padding:4px 10px;font-size:.6rem;position:absolute}.audio-toggle:hover{color:var(--accent-green);border-color:var(--border-strong)}.audio-toggle:active{transform:translateY(1px)}.share-btn{top:calc(var(--space-lg) + 72px);right:var(--space-lg);font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);background:var(--bg-panel);border:1px solid var(--border);cursor:pointer;pointer-events:auto;transition:color var(--transition-fast), border-color var(--transition-fast);z-index:15;border-radius:4px;padding:4px 10px;font-size:.6rem;position:absolute}.share-btn:hover{color:var(--accent-gold);border-color:var(--border-strong)}.share-btn:active{transform:translateY(1px)}@media (pointer:coarse){.share-btn{top:calc(var(--space-lg) + 36px);right:56px}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg-panel)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.world-loader{z-index:200;background:var(--bg-deep);justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:fixed;inset:0}.world-loader.fade-out{opacity:0;pointer-events:none}.loader-content{text-align:center;gap:var(--space-md);flex-direction:column;align-items:center;width:320px;display:flex}.loader-title{font-family:var(--mono);letter-spacing:6px;color:var(--accent-cream);margin-bottom:var(--space-sm);font-size:1rem}.loader-bar{background:#788c6426;border-radius:2px;width:100%;height:2px;overflow:hidden}.loader-fill{background:var(--accent-gold);width:0%;height:100%;transition:width .2s ease-out}.loader-label{font-family:var(--mono);letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);font-size:.6rem}.compass{top:var(--space-lg);left:var(--space-lg);pointer-events:none;opacity:.6;width:60px;height:60px;position:absolute}.compass-ring{border:1px solid var(--border-strong);background:#0d1a0d66;border-radius:50%;width:100%;height:100%;position:relative}.compass-needle{transition:transform 80ms linear;position:absolute;inset:0}.compass-needle span{font-family:var(--mono);letter-spacing:0;color:var(--text-secondary);font-size:.6rem;position:absolute}.compass-n{font-weight:700;top:4px;left:50%;transform:translate(-50%);color:var(--accent-gold)!important}.compass-e{top:50%;right:4px;transform:translateY(-50%)}.compass-s{bottom:4px;left:50%;transform:translate(-50%)}.compass-w{top:50%;left:4px;transform:translateY(-50%)}@media (pointer:coarse){.compass{display:none}}.credits-overlay{z-index:300;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#060b06d9;justify-content:center;align-items:center;animation:.35s credits-fade-in;display:flex;position:fixed;inset:0}@keyframes credits-fade-in{0%{opacity:0}to{opacity:1}}.credits-card{background:var(--bg-panel);border:1px solid var(--border-strong);padding:var(--space-xl);text-align:center;border-radius:12px;max-width:400px}.credits-eyebrow{font-family:var(--mono);letter-spacing:4px;color:var(--accent-gold);margin-bottom:var(--space-md);font-size:.65rem}.credits-title{font-family:var(--serif);color:var(--accent-cream);margin-bottom:var(--space-md);font-size:1.6rem;font-style:italic;font-weight:300}.credits-body{font-family:var(--sans);color:var(--text-secondary);margin-bottom:var(--space-lg);font-size:.85rem;line-height:1.8}.credits-meta{font-family:var(--mono);letter-spacing:1.5px;color:var(--text-muted);margin-bottom:var(--space-lg);justify-content:space-between;font-size:.6rem;display:flex}.credits-close{font-family:var(--mono);letter-spacing:3px;border:1px solid var(--accent-green);color:var(--accent-green);cursor:pointer;transition:all var(--transition-fast);background:0 0;border-radius:4px;padding:8px 24px;font-size:.7rem}.credits-close:hover{background:var(--accent-green);color:var(--bg-deep)}.shortcuts-overlay{z-index:250;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto;background:#060b06b3;justify-content:center;align-items:center;animation:.2s shortcuts-fade;display:flex;position:fixed;inset:0}@keyframes shortcuts-fade{0%{opacity:0}to{opacity:1}}.shortcuts-card{background:var(--bg-panel);border:1px solid var(--border-strong);padding:var(--space-xl);border-radius:12px;width:90%;max-width:420px}.shortcuts-eyebrow{font-family:var(--mono);letter-spacing:3px;color:var(--accent-gold);text-align:center;margin-bottom:var(--space-sm);font-size:.6rem}.shortcuts-title{font-family:var(--serif);color:var(--accent-cream);text-align:center;margin-bottom:var(--space-lg);font-size:1.4rem;font-style:italic;font-weight:300}.shortcuts-list{gap:var(--space-sm);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.shortcut-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.shortcut-row:last-child{border-bottom:none}.shortcut-keys{align-items:center;gap:4px;display:flex}.shortcut-key{font-family:var(--mono);letter-spacing:1px;background:var(--bg-card);border:1px solid var(--border-strong);text-align:center;min-width:24px;color:var(--accent-cream);border-radius:4px;padding:3px 8px;font-size:.65rem}.shortcut-plus{color:var(--text-muted);margin:0 2px;font-size:.7rem}.shortcut-desc{font-family:var(--sans);color:var(--text-secondary);font-size:.8rem}.shortcuts-hint{font-family:var(--serif);color:var(--text-muted);text-align:center;margin-bottom:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border);font-size:.78rem;font-style:italic}.shortcuts-close{font-family:var(--mono);letter-spacing:3px;border:1px solid var(--accent-green);color:var(--accent-green);cursor:pointer;transition:all var(--transition-fast);background:0 0;border-radius:4px;margin:0 auto;padding:8px 24px;font-size:.7rem;display:block}.shortcuts-close:hover{background:var(--accent-green);color:var(--bg-deep)}.help-hint{bottom:var(--space-lg);left:var(--space-lg);font-family:var(--mono);letter-spacing:1.5px;color:var(--text-muted);pointer-events:none;opacity:.5;font-size:.6rem;position:absolute}.help-hint kbd{background:var(--bg-panel);border:1px solid var(--border-strong);font-family:var(--mono);border-radius:3px;padding:2px 6px}.tutorial-overlay{align-items:center;gap:var(--space-sm);flex-direction:column;display:flex}.tutorial-eyebrow{font-family:var(--mono);letter-spacing:3px;color:var(--accent-gold);margin-bottom:var(--space-xs);font-size:.55rem}.tutorial-keys{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 8px;display:flex}.tutorial-key-group{font-family:var(--sans);color:var(--text-secondary);align-items:center;gap:2px;font-size:.75rem;display:inline-flex}.tutorial-key-group kbd{font-family:var(--mono);background:var(--bg-card);border:1px solid var(--border-strong);color:var(--accent-cream);border-radius:3px;margin-right:4px;padding:2px 6px;font-size:.6rem}.tutorial-key-group kbd:last-of-type{margin-right:6px}.tutorial-sep{color:var(--border-strong);font-size:.7rem}.settings-toggle{top:calc(var(--space-lg) + 36px);right:var(--space-lg);font-family:var(--mono);color:var(--text-muted);background:var(--bg-panel);border:1px solid var(--border);cursor:pointer;pointer-events:auto;width:28px;height:28px;transition:color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);z-index:15;border-radius:4px;justify-content:center;align-items:center;font-size:.85rem;line-height:1;display:flex;position:absolute}.settings-toggle:hover{color:var(--accent-green);border-color:var(--border-strong);transform:rotate(45deg)}.settings-panel{top:calc(var(--space-lg) + 72px);right:var(--space-lg);background:var(--bg-panel);border:1px solid var(--border);width:200px;padding:var(--space-sm) var(--space-md);pointer-events:auto;z-index:16;border-radius:8px;position:absolute;box-shadow:0 6px 24px #00000059}.settings-title{font-family:var(--mono);letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-sm);border-bottom:1px solid var(--border);padding-bottom:var(--space-xs);font-size:.6rem}.settings-row{align-items:center;gap:var(--space-sm);font-family:var(--sans);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 2px;font-size:.75rem;display:flex}.settings-row input[type=checkbox]{cursor:pointer;accent-color:var(--accent-green)}.settings-row:hover{color:var(--text-primary)}@media (pointer:coarse){.settings-toggle{top:var(--space-lg)}.settings-panel{top:calc(var(--space-lg) + 36px)}}.home-btn{top:var(--space-lg);font-family:var(--mono);letter-spacing:1.5px;border:1px solid var(--border-strong);color:var(--text-secondary);cursor:pointer;pointer-events:auto;transition:all var(--transition-fast);background:#0d1a0d99;border-radius:4px;padding:5px 10px;font-size:.6rem;position:absolute;right:90px}.home-btn:hover{color:var(--accent-green);border-color:var(--accent-green);background:#0d1a0dd9}.home-btn:active{transform:translateY(1px)}@media (pointer:coarse){.home-btn{display:none}}.panel-media{width:100%;margin-bottom:var(--space-md);border:1px solid var(--border);border-radius:8px;overflow:hidden}.panel-media img{object-fit:cover;width:100%;max-height:280px;display:block}.panel-metrics{gap:var(--space-md);margin:var(--space-md) 0;padding:var(--space-md) 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);display:flex}.metric{text-align:center;flex:1}.metric-value{font-family:var(--mono);color:var(--accent-cream);margin-bottom:4px;font-size:1.4rem;font-weight:700;line-height:1}.metric-label{font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);font-size:.6rem}.webgl-fallback{z-index:100;background:var(--bg-deep);padding:var(--space-lg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.webgl-fallback.hidden{display:none}.webgl-fallback-card{background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);max-width:480px;padding:var(--space-xl) var(--space-lg);text-align:left}.webgl-fallback-eyebrow{font-family:var(--mono);letter-spacing:2.5px;text-transform:uppercase;color:var(--accent-gold);margin-bottom:var(--space-md);font-size:.65rem}.webgl-fallback-title{font-family:var(--serif);color:var(--accent-cream);margin-bottom:var(--space-md);font-size:1.6rem;line-height:1.25}.webgl-fallback-body{font-family:var(--sans);color:var(--text-secondary);margin-bottom:var(--space-md);font-size:.9rem}.webgl-fallback-link{margin-top:var(--space-sm);font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--accent-green);border-bottom:1px solid var(--border-strong);transition:color var(--transition-fast);padding-bottom:2px;font-size:.75rem;text-decoration:none;display:inline-block}.webgl-fallback-link:hover{color:var(--accent-cream)}.world-credits{z-index:5;font-family:var(--mono);letter-spacing:1px;color:var(--text-muted);opacity:.4;pointer-events:none;white-space:nowrap;transition:opacity var(--transition-fast);font-size:.55rem;position:fixed;bottom:8px;left:50%;transform:translate(-50%)}body:has(#start-screen:not(.fade-out)) .world-credits{opacity:0}:is(body:has(#panel-overlay:not(.hidden)) .world-credits,body:has(#nav-overlay:not(.hidden)) .world-credits,body:has(#tour-narration:not(.hidden)) .world-credits,body:has(#tutorial:not(.hidden)) .world-credits){opacity:0}canvas#world-canvas.chromatic{filter:drop-shadow(2px 0 #ff00001a)drop-shadow(-2px 0 #00ffff1a);transition:filter .2s}canvas#world-canvas.debug-invert{filter:invert()hue-rotate(180deg)}.debug-mode-label{z-index:200;font-family:var(--mono);letter-spacing:6px;color:#f44;padding:var(--space-md) var(--space-lg);pointer-events:none;background:#0009;border:1px solid #f44;border-radius:4px;font-size:1.4rem;animation:.6s ease-in-out infinite alternate debug-pulse;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes debug-pulse{0%{opacity:.7}to{opacity:1}}.minimap-item.visited .mm-dot{box-shadow:0 0 0 2px #b8c8a073}.minimap-item.visited .mm-code{color:var(--accent-green)}.panel-overlay.closing{animation:.2s forwards panel-overlay-fade-out}.panel-overlay.closing .panel{animation:.2s cubic-bezier(.4,0,1,1) forwards panel-pop-out}@keyframes panel-overlay-fade-out{0%{opacity:1}to{opacity:0}}@keyframes panel-pop-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-12px)scale(.97)}}.achievement-toast{z-index:1200;color:#efe7d3;letter-spacing:.08em;opacity:0;pointer-events:none;background:#141612eb;border:1px solid #c9a96e80;border-radius:999px;align-items:center;gap:10px;padding:10px 18px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;transition:opacity .3s,transform .3s;display:flex;position:fixed;top:24px;left:50%;transform:translate(-50%,-16px);box-shadow:0 8px 24px #00000059}.achievement-toast.visible{opacity:1;transform:translate(-50%)}.achievement-toast .achievement-check{color:#c9a96e;font-weight:700}.achievement-toast .achievement-label{opacity:.7}.achievement-toast .achievement-sep{opacity:.4}.achievement-toast .achievement-name{color:#c9a96e;font-weight:600}.settings-panel .settings-badge{opacity:.7;letter-spacing:.05em;border-top:1px solid #ffffff1a;margin-top:6px;padding-top:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.toast{--toast-stack-y:0px;transform:translate(-50%, calc(-16px + var(--toast-stack-y)));z-index:1200;color:#efe7d3;letter-spacing:.08em;opacity:0;pointer-events:none;background:#141612eb;border:1px solid #c9a96e80;border-radius:999px;align-items:center;gap:10px;padding:10px 18px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;transition:opacity .3s,transform .3s;display:flex;position:fixed;top:24px;left:50%;box-shadow:0 8px 24px #00000059}.toast.visible{opacity:1;transform:translate(-50%, var(--toast-stack-y))}.toast .toast-check{color:#c9a96e;font-weight:700}.toast .toast-label{opacity:.7}.toast .toast-sep{opacity:.4}.toast .toast-name{color:#c9a96e;font-weight:600}.toast.toast-info{border-color:#c9a96e59}.toast.toast-info .toast-name{color:#efe7d3}.toast.toast-success .toast-check{color:#a4c98b}.settings-panel .journey-summary{opacity:.75;letter-spacing:.04em;border-top:1px solid #ffffff1a;margin-top:6px;padding-top:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5}.settings-panel .journey-summary .journey-row{display:block}.settings-panel .journey-summary .journey-empty{opacity:.55;font-style:italic}.start-whats-new{font-family:var(--mono);color:var(--accent-gold);letter-spacing:1px;text-align:center;opacity:.85;text-transform:uppercase;margin:0 0 10px;font-size:.6rem}.panel-up-next{text-align:left;width:100%;font-family:var(--mono,ui-monospace, SFMono-Regular, Menlo, monospace);letter-spacing:1px;color:var(--accent-cream,#d8cfa8);opacity:.55;cursor:pointer;text-transform:uppercase;background:0 0;border:none;border-top:1px solid #ffffff14;padding:12px 24px;font-size:11px;transition:opacity .15s,color .15s,background .15s;display:block}.panel-up-next:hover{opacity:1;color:var(--accent-gold,#f5c542);background:#ffffff08}.start-clock{font-family:var(--mono);letter-spacing:1px;text-align:center;opacity:.4;text-transform:uppercase;margin:-6px 0 10px;font-size:.55rem}
