:root{font-family:Roboto,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-size:16px;color-scheme:dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a24;--bg-elevated: #22222e;--accent-primary: #8b5cf6;--accent-hover: #a855f7;--accent-secondary: #3b82f6;--accent-tertiary: #ec4899;--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .75);--text-muted: rgba(255, 255, 255, .6);--border-subtle: rgba(139, 92, 246, .15);--border-default: rgba(139, 92, 246, .3);--accent-bright: #7F00FF;--bg-button: #0B0610;--glass-bg: rgba(8, 4, 12, .75);--glass-blur: 20px;--glow-primary: 0 0 20px rgba(139, 92, 246, .3);--glow-secondary: 0 0 20px rgba(59, 130, 246, .3);--gradient-primary: linear-gradient(135deg, #8b5cf6 0%, #3b82f6 100%);--gradient-accent: linear-gradient(135deg, #8b5cf6 0%, #ec4899 100%);color:var(--text-primary);background-color:var(--bg-primary);--panel-left-width: 320px;--panel-right-width: 320px;--content-max-width: none;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--font-xs: clamp(10px, .6vw + 5.4px, 12px);--font-sm: clamp(12px, .6vw + 7.4px, 14px);--font-base: clamp(13px, .9vw + 6.1px, 16px);--font-lg: clamp(16px, 1.2vw + 6.8px, 20px);--font-xl: clamp(18px, 1.8vw + 4.2px, 24px);--font-2xl: clamp(20px, 2.4vw + 1.6px, 28px);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--color-success: #44ff44;--color-success-dim: rgba(68, 255, 68, .15);--color-error: #ff4444;--color-error-dim: rgba(255, 68, 68, .15);--color-warning: #ffaa44;--color-warning-dim: rgba(255, 170, 68, .15);--color-info: #59c9c9;--color-info-dim: rgba(89, 201, 201, .15);--color-gold: #c9a959;--color-gold-dim: rgba(201, 169, 89, .15);--color-gold-hover: #d4b86a;scrollbar-color:rgba(166,103,228,.3) transparent;scrollbar-width:thin}@media(max-width:1279px){:root{--panel-left-width: 280px;--panel-right-width: 280px;--space-lg: 20px;--space-xl: 24px}}@media(min-width:1600px){:root{--panel-left-width: 360px;--panel-right-width: 360px}}@media(min-width:1920px){:root{--content-max-width: 2400px}}a{font-weight:500;color:var(--accent-primary);text-decoration:inherit;transition:color .2s ease}a:hover{color:var(--accent-hover)}body{margin:0;min-width:320px;min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#a667e400;border-radius:3px}*:hover::-webkit-scrollbar-thumb{background:#a667e44d}::-webkit-scrollbar-thumb:hover{background:#a667e499}h1{font-size:var(--font-lg);line-height:1.1}button{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);padding:10px 16px;min-height:44px;font-size:var(--font-sm);font-weight:500;font-family:inherit;background-color:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);text-decoration:none;white-space:nowrap}button:hover{border-color:var(--accent-primary);background-color:var(--bg-elevated);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary) 15%,transparent)}button:active{transform:scale(.98)}button:focus{outline:none;box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px var(--accent-primary)}button:focus:not(:focus-visible){box-shadow:none}button:disabled{opacity:.5;cursor:not-allowed;transform:none}button:disabled:hover{border-color:var(--border-subtle);background-color:var(--bg-tertiary)}.btn-sm{min-height:36px;padding:8px 14px;font-size:var(--font-sm);border-radius:var(--radius-sm)}.btn-md{min-height:44px;padding:10px 16px;font-size:var(--font-sm)}.btn-lg{min-height:52px;padding:14px 24px;font-size:var(--font-sm);border-radius:var(--radius-md)}.btn-primary{background:var(--gradient-primary);border-color:transparent;color:#fff;font-weight:600}.btn-primary:hover{filter:brightness(1.1);border-color:transparent;background:var(--gradient-primary)}.btn-secondary{background:var(--bg-button);border:2px solid var(--accent-bright);border-radius:6px;color:var(--text-primary)}.btn-secondary:hover{background:linear-gradient(#170528,#170528) padding-box,linear-gradient(135deg,#a667e4,#e3c8fe) border-box;border:2px solid transparent;box-shadow:none}.btn-secondary.active{background:#7f00ff1a;border-color:var(--accent-bright)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-tertiary);border-color:transparent;color:var(--text-primary)}.btn-danger{background:var(--color-error-dim);border-color:var(--color-error);color:var(--color-error)}.btn-danger:hover{background:var(--color-error);border-color:var(--color-error);color:#fff}.btn-success{background:var(--color-success-dim);border-color:var(--color-success);color:var(--color-success)}.btn-success:hover{background:var(--color-success);border-color:var(--color-success);color:#000}.btn-opal{position:relative;overflow:hidden;background:var(--gradient-primary);border-color:transparent;color:#fff;font-weight:600;animation:opalPulse 4s ease-in-out infinite}.btn-opal:hover{filter:brightness(1.1);border-color:transparent}@keyframes opalPulse{0%,to{box-shadow:0 0 15px #b447eb66,0 0 30px #47b4eb33}33%{box-shadow:0 0 20px #47b4eb80,0 0 40px #eb47b440}66%{box-shadow:0 0 18px #eb47b473,0 0 35px #b447eb38}}.panel-glass{background:#08040c99;backdrop-filter:blur(12px) saturate(1.3);-webkit-backdrop-filter:blur(12px) saturate(1.3);border:2px solid rgba(127,0,255,.6);border-radius:10px}.btn-generate{display:flex;justify-content:center;align-items:center;width:100%;height:37px;padding:12px 18px;background:linear-gradient(93.53deg,#a667e4 3.32%,#361390 95.06%);border:2px solid #7F00FF;border-radius:6px;font-family:Roboto,sans-serif;font-weight:500;font-size:var(--font-sm);line-height:var(--font-sm);color:#fff;cursor:pointer;margin-top:12px;transition:filter .15s ease}.btn-generate:hover:not(:disabled){filter:brightness(1.15)}.btn-generate:disabled{opacity:.5;cursor:not-allowed}.btn-icon{min-width:44px;min-height:44px;padding:10px;aspect-ratio:1}.btn-icon.btn-sm{min-width:32px;min-height:32px;padding:6px}.btn-tool{flex:1 1 calc(50% - 4px);font-weight:600}.btn-tool-active{background:linear-gradient(95.76deg,#361390 1.18%,#52239e 22.55%,#672fa9 66.48%,#a667e4 99.1%) padding-box,linear-gradient(135deg,#e4caff,#b7f) border-box;border:2px solid transparent;border-radius:6px;color:#fff;box-shadow:none}.btn-tool-active:hover{filter:brightness(1.15);background:linear-gradient(95.76deg,#361390 1.18%,#52239e 22.55%,#672fa9 66.48%,#a667e4 99.1%) padding-box,linear-gradient(135deg,#e4caff,#b7f) border-box;border:1px solid transparent;box-shadow:none}.btn-tool .material-symbols-outlined{font-size:18px}.btn-circle{border-radius:50%;width:28px;height:28px;min-width:28px;min-height:28px;padding:0;font-weight:600;flex-shrink:0}input[type=text],input[type=email],input[type=password],input[type=number],textarea{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);transition:all .2s ease}input[type=text]:hover,input[type=email]:hover,input[type=password]:hover,input[type=number]:hover,textarea:hover{border-color:var(--accent-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary) 15%,transparent)}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,textarea:focus{outline:none;border-color:var(--accent-primary)}.input-glass{background:linear-gradient(#1a1324,#1a1324) padding-box,linear-gradient(135deg,#a667e4,#e4caff) border-box!important;border:2px solid transparent!important;border-radius:5px!important;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px)}.input-glass:hover{box-shadow:none!important}.input-glass:focus{box-shadow:none!important;outline:none}.toggle-pill{display:flex;background:linear-gradient(#1a1324,#1a1324) padding-box,linear-gradient(135deg,#a667e4,#e4caff) border-box;border:2px solid transparent;border-radius:100px;padding:3px}.toggle-pill button{border:2px solid transparent;background:transparent;min-height:auto}.toggle-pill button:hover{border:2px solid transparent;background:transparent;box-shadow:none}.toggle-pill-active{background:linear-gradient(95.76deg,#361390 1.18%,#52239e 22.55%,#672fa9 66.48%,#a667e4 99.1%) padding-box,linear-gradient(135deg,#e4caff,#b7f) border-box!important;border:2px solid transparent!important;border-radius:100px!important;color:#fff!important;font-weight:500!important}.toggle-pill-active:hover{background:linear-gradient(95.76deg,#361390 1.18%,#52239e 22.55%,#672fa9 66.48%,#a667e4 99.1%) padding-box,linear-gradient(135deg,#e4caff,#b7f) border-box!important;border:2px solid transparent!important;border-radius:100px!important;filter:brightness(1.15);box-shadow:none!important}input[type=checkbox]{appearance:none;-webkit-appearance:none;width:16px;height:16px;border:2px solid var(--border-default);border-radius:4px;background:var(--bg-primary);cursor:pointer;transition:all .15s ease;position:relative}input[type=checkbox]:hover{border-color:var(--accent-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-primary) 20%,transparent)}input[type=checkbox]:checked{background:var(--accent-primary);border-color:var(--accent-primary)}input[type=checkbox]:checked:after{content:"";position:absolute;left:50%;top:45%;width:5px;height:9px;border:solid white;border-width:0 2px 2px 0;transform:translate(-50%,-50%) rotate(45deg)}input[type=checkbox]:focus{outline:none;box-shadow:0 0 0 2px var(--bg-primary),0 0 0 4px var(--accent-primary)}input[type=checkbox]:focus:not(:focus-visible){box-shadow:none}select{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;background-color:var(--bg-button);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6z'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 12px center!important;border:2px solid var(--accent-bright);border-radius:6px;color:#fff;padding:8px 36px 8px 12px!important;font-size:var(--font-sm);cursor:pointer;transition:all .2s ease}select:hover{background-color:#170528;border-color:#a667e4;box-shadow:none}select:focus{outline:none;border-color:var(--accent-bright);box-shadow:none}select:focus:not(:focus-visible){box-shadow:none}select option{background:var(--bg-button);color:#fff;padding:8px}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:4px;min-width:180px;background:var(--bg-button);border:2px solid var(--accent-bright);border-radius:6px;box-shadow:0 4px 12px #0006;z-index:100;overflow:hidden}.dropdown-menu-backdrop{position:fixed;inset:0;z-index:99}.dropdown-menu-header{padding:12px;border-bottom:1px solid var(--border-subtle)}.dropdown-menu-body{padding:4px}.dropdown-menu-item{width:100%;padding:10px 12px;border:none;background:transparent;color:var(--text-primary);font-size:var(--font-sm);text-align:left;cursor:pointer;border-radius:4px}.dropdown-menu-item:hover{background:#7f00ff26}.link-subtle{color:inherit;text-decoration:none;transition:opacity .15s ease}.link-subtle:hover{opacity:1!important;text-decoration:underline}.starfield{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}.star{position:absolute;width:2px;height:2px;background:var(--accent-primary);border-radius:50%;animation:twinkle var(--duration, 8s) ease-in-out infinite;animation-delay:var(--delay, 0s)}.star:before{content:"";position:absolute;top:50%;left:50%;width:2px;height:16px;background:linear-gradient(to bottom,transparent 0%,var(--accent-primary) 40%,var(--accent-primary) 60%,transparent 100%);transform:translate(-50%,-50%);opacity:.8}.star:after{content:"";position:absolute;top:50%;left:50%;width:16px;height:2px;background:linear-gradient(to right,transparent 0%,var(--accent-primary) 40%,var(--accent-primary) 60%,transparent 100%);transform:translate(-50%,-50%);opacity:.8}.star--small{width:1px;height:1px}.star--small:before{width:1px;height:10px}.star--small:after{width:10px;height:1px}.star--blue:before,.star--blue:after{background:linear-gradient(var(--ray-direction, to bottom),transparent 0%,var(--accent-secondary) 40%,var(--accent-secondary) 60%,transparent 100%)}.star--blue:before{--ray-direction: to bottom}.star--blue:after{--ray-direction: to right}.star--pink:before,.star--pink:after{background:linear-gradient(var(--ray-direction, to bottom),transparent 0%,var(--accent-tertiary) 40%,var(--accent-tertiary) 60%,transparent 100%)}.star--pink:before{--ray-direction: to bottom}.star--pink:after{--ray-direction: to right}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes twinkle{0%,8%{opacity:0;transform:scale(.5)}25%{opacity:var(--max-opacity, .6);transform:scale(1)}42%{opacity:calc(var(--max-opacity, .6) * .7);transform:scale(.95)}58%{opacity:var(--max-opacity, .6);transform:scale(1)}75%{opacity:calc(var(--max-opacity, .6) * .8);transform:scale(.97)}92%,to{opacity:0;transform:scale(.5)}}@media(prefers-reduced-motion:reduce){.panel-glass{background:#08040c;backdrop-filter:none;-webkit-backdrop-filter:none}.star{animation:none;opacity:.4}}@keyframes mapBorderShimmer{0%{box-shadow:inset 0 0 30px #00000080,0 8px 32px #0006,0 0 20px #8b5cf64d,0 0 40px #8b5cf61a}50%{box-shadow:inset 0 0 30px #00000080,0 8px 32px #0006,0 0 25px #8b5cf680,0 0 50px #3b82f64d,0 0 80px #8b5cf626}to{box-shadow:inset 0 0 30px #00000080,0 8px 32px #0006,0 0 20px #8b5cf64d,0 0 40px #8b5cf61a}}.map-border-shimmer{animation:mapBorderShimmer .8s ease-in-out infinite;border-color:#8b5cf699!important}.map-boundary-hit{border-color:#f44!important;box-shadow:inset 0 0 30px #00000080,0 8px 32px #0006,0 0 20px #f449,0 0 40px #ff44444d!important;transition:border-color .15s ease,box-shadow .15s ease}.map-minimap{position:absolute;bottom:16px;right:16px;border:2px solid var(--border-default);border-radius:4px;background:var(--bg-secondary);box-shadow:0 4px 12px #0000004d;overflow:hidden;z-index:50;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.map-minimap:hover{border-color:var(--accent-primary);box-shadow:0 4px 16px #0006,var(--glow-primary)}.minimap-viewport{position:absolute;border:2px solid var(--color-gold);background:#c9a95933;pointer-events:none;box-sizing:border-box}@media(max-width:768px){.map-minimap{display:none}}.app-header{padding:16px 24px;border-bottom:2px solid rgba(127,0,255,.6);background:#08040c99;backdrop-filter:blur(12px) saturate(1.3);-webkit-backdrop-filter:blur(12px) saturate(1.3);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;min-height:60px;position:relative;z-index:20;transition:padding .25s ease,gap .25s ease}.app-header-title{margin:0;font-size:var(--font-2xl);color:#fff;text-shadow:2px 2px 4px rgba(0,0,0,.8);white-space:nowrap;transition:font-size .25s ease}.app-header-subtitle{margin:4px 0 0;font-size:var(--font-sm);color:#fff;font-style:italic;white-space:nowrap;opacity:.7;transition:opacity .25s ease,max-height .25s ease,margin .25s ease;max-height:2em;overflow:hidden}.header-nav-buttons{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;flex:1 1 auto}.dev-tools-float{position:absolute;bottom:16px;right:16px;display:flex;align-items:center;gap:8px;padding:4px 10px;background:#08040c99;backdrop-filter:blur(12px) saturate(1.3);-webkit-backdrop-filter:blur(12px) saturate(1.3);border-radius:6px;border:2px solid rgba(127,0,255,.4);font-size:var(--font-xs);box-shadow:0 2px 8px #0006;transition:opacity .25s ease}.dev-tools-float .btn-sm{height:28px;padding:0 8px;font-size:var(--font-xs)}.zoom-toolbar{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center;gap:12px;padding:6px 14px;background:#08040c99;backdrop-filter:blur(12px) saturate(1.3);-webkit-backdrop-filter:blur(12px) saturate(1.3);border-radius:6px;border:2px solid rgba(127,0,255,.6);font-size:var(--font-base);box-shadow:0 2px 8px #0006;transition:gap .25s ease,padding .25s ease,font-size .25s ease}.zoom-controls{display:flex;align-items:center;gap:8px}.zoom-label{color:#fff;font-size:var(--font-sm)}.zoom-pct{width:48px;height:36px;text-align:center;color:var(--text-primary);font-size:var(--font-sm);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);padding:2px 4px;cursor:text}.zoom-divider{width:1px;height:24px}.rotate-section{display:flex;align-items:center;gap:8px}.zoom-toolbar .btn-sm{height:36px;padding:0 10px}.drawer-edge-tab{position:absolute;top:16px;z-index:10;background:#08040cb3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:2px solid rgba(127,0,255,.6);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:6px}.drawer-edge-tab .material-symbols-outlined{font-size:24px}.drawer-edge-tab:hover{background:#08040cd9}.drawer-edge-tab--left{left:0;border-radius:0 6px 6px 0;border-left:none}.drawer-edge-tab--right{right:0;border-radius:6px 0 0 6px;border-right:none}.drawer-close-btn{padding:4px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.drawer-close-btn:hover{color:#fff;border-color:transparent;background-color:transparent;box-shadow:none}.header-nav-btn-text{transition:opacity .25s ease,max-width .25s ease;max-width:120px;overflow:hidden}.zoom-label,.rotate-section{transition:opacity .25s ease,max-width .25s ease;overflow:hidden}@media(max-width:768px){.header-nav-btn-text{opacity:0;max-width:0;overflow:hidden;margin:0;padding:0}.header-nav-btn{padding:0 10px!important;min-width:40px;justify-content:center}.app-header{padding:12px 16px;gap:8px 12px}.app-header-title{font-size:var(--font-xl)}.zoom-toolbar{gap:6px;padding:4px 10px;font-size:var(--font-sm)}.zoom-toolbar .zoom-label{opacity:0;max-width:0;padding:0;margin:0}.dev-tools-float{right:8px;bottom:56px;padding:3px 8px;gap:6px}}@media(max-width:480px){.app-header{padding:8px 12px;gap:6px 8px}.app-header-title{font-size:var(--font-lg)}.app-header-subtitle{opacity:0;max-height:0;margin:0}.zoom-toolbar{gap:4px;padding:4px 8px}.zoom-toolbar button{height:32px;padding:0 8px}.zoom-toolbar .zoom-pct{width:40px;height:32px}.zoom-toolbar .rotate-section{opacity:0;max-width:0;padding:0;margin:0}}.map-resize-handle{isolation:isolate;transform:translateZ(0)}.map-resize-handle .map-resize-handle-line{background:var(--accent-bright);border-radius:2px;opacity:0;transition:opacity .15s ease}.map-resize-handle:hover .map-resize-handle-line,.map-resize-handle.active .map-resize-handle-line{opacity:.8}.map-crop-overlay{position:absolute;background:#dc262640;border:2px dashed rgba(220,38,38,.6);pointer-events:none;z-index:5}
