:root{--bg: #0a0f2c;--panel: rgba(14, 22, 56, .78);--panel-border: rgba(160, 180, 255, .18);--ink: #e8ecff;--ink-dim: #9aa4d4;--accent: rgba(160, 180, 255, .18);--accent-border: rgba(160, 180, 255, .45);--cur-default: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23e8ecff'><path d='M6 4h2v16H6zm2 0h2v2H8zm2 2h2v2h-2zm2 2h2v2h-2zm2 2h2v2h-2zm2 2h2v2h-2zm-8 6h2v2H8zm2-2h2v2h-2zm2-2h6v2h-6z'/></svg>") 6 4, default;--cur-pointer: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23e8ecff'><path d='M17 9h2v3h-2zm-4-2h2v4h-2zM9 3h2v8H9zM5 3h2v10H5zm14 6h2v2h-2zm-4-2h2v2h-2zm-4 0h2v2h-2zM7 1h2v2H7zM3 11h2v2H3zm-2 2h2v2H1zm0 2h2v2H1zm2 2h2v2H3zm2 2h2v2H5zm2 2h12v2H7zm12-2h2v2h-2zm2-8h2v8h-2zM5 13h2v2H5zm2 2h2v2H7z'/></svg>") 8 2, pointer;--cur-grab: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23e8ecff'><path d='M21 7h2v5h-2zm-4-2h2v7h-2zm-4-2h2v8h-2zM9 3h2v8H9zM5 5h2v8H5zm14 0h2v2h-2zm-4-2h2v2h-2zm-4-2h2v2h-2zM7 3h2v2H7zm-4 8h2v2H3zm-2 2h2v2H1zm0 2h2v2H1zm2 2h2v2H3zm2 2h2v2H5zm2 2h12v2H7zm12-2h2v2h-2zm2-7h2v7h-2zM5 13h2v2H5zm2 2h2v2H7z'/></svg>") 12 12, grab;--cur-grabbing: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23e8ecff'><path d='M21 7h2v5h-2zm-4-2h2v7h-2zm-4-2h2v8h-2zM9 3h2v8H9zM5 5h2v8H5zm14 0h2v2h-2zm-4-2h2v2h-2zm-4-2h2v2h-2zM7 3h2v2H7zm-4 8h2v2H3zm-2 2h2v2H1zm0 2h2v2H1zm2 2h2v2H3zm2 2h2v2H5zm2 2h12v2H7zm12-2h2v2h-2zm2-7h2v7h-2zM5 13h2v2H5zm2 2h2v2H7z'/></svg>") 12 12, grabbing;--cur-cross: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23e8ecff'><path d='M11 1h2v8h-2zm0 14h2v8h-2zM1 11h8v2H1zm14 0h8v2h-8z'/></svg>") 12 12, crosshair}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:VT323,ui-monospace,Courier New,monospace;font-size:18px;letter-spacing:.02em;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:none;-moz-osx-font-smoothing:grayscale;text-rendering:geometricPrecision;cursor:var(--cur-default)}input,textarea{cursor:text}#scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;display:block;cursor:var(--cur-cross)}#scene[data-cursor=default]{cursor:var(--cur-default)}#scene[data-cursor=add]{cursor:var(--cur-cross)}#scene[data-cursor=grab]{cursor:var(--cur-grab)}#scene[data-cursor=grabbing]{cursor:var(--cur-grabbing)}#selection-box{position:fixed;border:1px dashed rgba(255,226,122,.7);background:#ffe27a14;border-radius:2px;pointer-events:none;z-index:5}#selection-box[hidden]{display:none}#selection-frame{position:fixed;border:1px dashed rgba(255,226,122,.55);border-radius:2px;pointer-events:none;z-index:6}#selection-frame[hidden]{display:none}.selection-frame-corner{position:absolute;width:12px;height:12px;background:#0a0f2cf2;border:1.5px solid rgba(255,226,122,.9);border-radius:50%;pointer-events:auto;cursor:var(--cur-grab)}.selection-frame-corner:active{cursor:var(--cur-grabbing)}.selection-frame-corner[data-corner=tl]{left:-7px;top:-7px}.selection-frame-corner[data-corner=tr]{right:-7px;top:-7px}.selection-frame-corner[data-corner=bl]{left:-7px;bottom:-7px}.selection-frame-corner[data-corner=br]{right:-7px;bottom:-7px}#toolbar{position:fixed;left:16px;top:50%;transform:translateY(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;background:#0e1638;border:2px solid var(--accent-border);border-radius:0}.tool-group{--tool-size: 40px;--tool-gap: 6px;--active-index: 0;position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--tool-gap)}.tool-active-indicator{position:absolute;top:0;left:50%;width:var(--tool-size);height:var(--tool-size);margin-left:calc(var(--tool-size) / -2);background:var(--accent);border:2px solid var(--accent-border);border-radius:0;pointer-events:none;z-index:0;transform:translateY(calc((var(--tool-size) + var(--tool-gap)) * var(--active-index)));transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .2s ease-out}.tool-group .iconbtn{position:relative;z-index:1}.tool-group .iconbtn[aria-pressed=true]{background:transparent;border-color:transparent}.divider{width:24px;height:1px;background:var(--panel-border);margin:2px 0}.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:transparent;color:var(--ink-dim);border:2px solid transparent;border-radius:0;cursor:var(--cur-pointer);transition:background .12s,color .12s,border-color .12s}.iconbtn svg,.seed-copy-icon svg{shape-rendering:crispEdges}.iconbtn:hover{color:var(--ink);background:#ffffff0a}.iconbtn[aria-pressed=true]{color:var(--ink);background:var(--accent);border-color:var(--accent-border)}.iconbtn:disabled,.iconbtn:disabled[aria-pressed=true]{opacity:.35;cursor:not-allowed;color:var(--ink-dim);background:transparent;border-color:transparent}.iconbtn:disabled:hover{color:var(--ink-dim);background:transparent}.tool-text-label{font-family:Silkscreen,ui-monospace,monospace;font-weight:700;font-size:15px;line-height:1;letter-spacing:0;-webkit-font-smoothing:none}#map-name{position:fixed;top:16px;left:16px;z-index:10;display:flex;align-items:center;font-family:Silkscreen,ui-monospace,monospace;font-size:16px;letter-spacing:.03em;-webkit-font-smoothing:none}#map-name-display{display:inline-flex;align-items:center;padding:4px 10px;background:transparent;color:var(--ink);border:2px solid transparent;border-radius:0;font:inherit;cursor:var(--cur-pointer);white-space:nowrap;transition:background .12s,border-color .12s}#map-name-display:hover{background:#ffffff0a;border-color:var(--panel-border)}#map-name-input{display:none;padding:4px 10px;background:#0e1638;color:var(--ink);border:2px solid var(--accent-border);border-radius:0;font:inherit;outline:none;min-width:160px}#map-name[data-editing=true] #map-name-display{display:none}#map-name[data-editing=true] #map-name-input{display:inline-flex}.popover{position:fixed;z-index:20;min-width:180px;padding:4px;background:#0e1638;border:2px solid var(--accent-border);border-radius:0;box-shadow:3px 3px #00000047;opacity:0;transform:translate(-4px);pointer-events:none;transition:opacity .14s ease-out,transform .14s ease-out}.popover[data-open=true]{opacity:1;transform:translate(0);pointer-events:auto}.popover-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;color:var(--ink-dim);border:0;border-radius:0;font-family:VT323,ui-monospace,monospace;font-size:18px;letter-spacing:.02em;text-align:left;cursor:var(--cur-pointer);transition:background .12s,color .12s}.popover-item:hover,.popover-item[aria-expanded=true]{background:#ffffff0d;color:var(--ink)}.popover-item-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;shape-rendering:crispEdges}.popover-item-icon svg{shape-rendering:crispEdges}.popover-item-label{flex:1 1 auto}.popover-item-chevron{flex:0 0 auto;margin-left:6px;font-size:14px;color:inherit}.popover-empty{padding:8px 10px;color:var(--ink-dim);font-family:VT323,ui-monospace,monospace;font-size:16px}#info-btn{position:fixed;right:16px;bottom:16px;z-index:10}#info-btn[aria-expanded=true]{background:var(--accent)}#info-panel{position:fixed;right:16px;bottom:64px;z-index:11;width:275px;max-height:50vh;display:flex;flex-direction:column;padding:10px 12px 12px;background:#0e1638;border:2px solid var(--accent-border);border-radius:0;box-shadow:3px 3px #00000047;color:var(--ink);opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .16s ease-out,transform .16s ease-out}#info-panel[data-open=true]{opacity:1;transform:translateY(0);pointer-events:auto}#info-panel h2{margin:0 0 8px;font-family:Silkscreen,ui-monospace,monospace;font-size:14px;font-weight:700;letter-spacing:.04em;color:var(--ink);-webkit-font-smoothing:none}.info-stats{display:grid;grid-template-columns:1fr auto;gap:2px 12px;margin:0 0 10px;font-family:VT323,ui-monospace,monospace;font-size:16px}.info-stats dt{color:var(--ink-dim)}.info-stats dd{margin:0;text-align:right;color:var(--ink)}#info-named-list{list-style:none;margin:0;padding:6px 0 0;overflow-y:auto;border-top:1px solid var(--panel-border);scrollbar-width:thin;scrollbar-color:var(--accent-border) transparent}#info-named-list::-webkit-scrollbar{width:6px}#info-named-list::-webkit-scrollbar-track{background:transparent}#info-named-list::-webkit-scrollbar-thumb{background:var(--accent-border);border-radius:0}#info-named-list::-webkit-scrollbar-thumb:hover{background:var(--ink-dim)}#info-named-list:empty{display:none}#walkthrough{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;pointer-events:none}#walkthrough[data-visible=false]{display:none}#walkthrough-spotlight{position:fixed;pointer-events:none;border:2px solid var(--accent-border);border-radius:0;box-shadow:0 0 16px #ffe27a59;opacity:1;transition:opacity .14s ease-out,top .26s cubic-bezier(.4,0,.2,1),left .26s cubic-bezier(.4,0,.2,1),width .26s cubic-bezier(.4,0,.2,1),height .26s cubic-bezier(.4,0,.2,1)}#walkthrough-spotlight[hidden]{display:none}#walkthrough[data-transitioning=true] #walkthrough-spotlight,#walkthrough[data-transitioning=true] #walkthrough-tooltip{opacity:0;transition:opacity .14s ease-out}#walkthrough-tooltip{position:fixed;z-index:1001;pointer-events:auto;width:280px;padding:12px 14px 14px;background:#0e1638;border:2px solid var(--accent-border);border-radius:0;color:var(--ink);box-shadow:3px 3px #00000059;font-family:VT323,ui-monospace,monospace;font-size:16px;line-height:1.35;opacity:1;transition:opacity .14s ease-out,top .26s cubic-bezier(.4,0,.2,1),left .26s cubic-bezier(.4,0,.2,1)}#walkthrough-step{margin-bottom:6px;font-family:Silkscreen,ui-monospace,monospace;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--ink-dim);-webkit-font-smoothing:none}#walkthrough-text strong{color:#ffe27a;font-weight:400}#walkthrough-skip{margin-top:10px;padding:4px 10px;background:transparent;color:var(--ink-dim);border:1px solid var(--panel-border);border-radius:0;cursor:var(--cur-pointer);font-family:VT323,ui-monospace,monospace;font-size:14px;letter-spacing:.03em;transition:color .12s,border-color .12s}#walkthrough-skip:hover{color:var(--ink);border-color:var(--accent-border)}#info-named-list li{padding:4px 6px;font-family:VT323,ui-monospace,monospace;font-size:16px;color:var(--ink-dim);cursor:var(--cur-pointer);transition:background .12s,color .12s}#info-named-list li:hover{background:#ffffff0d;color:var(--ink)}#info-named-list li:has(.info-name-edit){background:#00000059;box-shadow:inset 0 0 0 1px var(--ink);color:var(--ink)}.info-name-edit{display:block;width:100%;padding:0;background:transparent;color:inherit;border:0;border-radius:0;outline:none;font:inherit;font-family:VT323,ui-monospace,monospace;font-size:16px;letter-spacing:inherit;box-sizing:border-box}#constellation-label{position:fixed;z-index:8;padding:4px 10px;background:#0e1638;color:var(--ink);border:2px solid var(--accent-border);border-radius:0;font-family:Silkscreen,ui-monospace,monospace;font-weight:400;font-size:13px;letter-spacing:.04em;white-space:nowrap;pointer-events:none;-webkit-font-smoothing:none;opacity:0;transform:translateY(4px);transition:opacity .18s ease-out,transform .18s ease-out}#constellation-label[data-visible=true]{opacity:1;transform:translateY(0)}#name-input-wrap{position:fixed;z-index:11;display:flex;align-items:stretch;width:240px;background:#0e1638;border:2px solid var(--accent-border);border-radius:0;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .18s ease-out,transform .18s ease-out}#name-input-wrap[data-visible=true]{opacity:1;transform:translateY(0);pointer-events:auto}#name-input{flex:1 1 auto;min-width:0;padding:8px 10px;background:transparent;color:var(--ink);border:0;outline:none;font-family:VT323,ui-monospace,monospace;font-size:18px;letter-spacing:.02em}#name-input::placeholder{color:var(--ink-dim)}#name-input-wrap button{flex:0 0 auto;display:none;align-items:center;justify-content:center;width:28px;padding:0;background:transparent;color:var(--ink-dim);border:0;border-left:2px solid var(--accent-border);cursor:var(--cur-pointer);transition:color .12s,background .12s}#name-input-wrap[data-empty=false] button{display:inline-flex}#name-input-wrap button:hover{color:var(--ink);background:#ffffff0a}#name-input-wrap button svg{shape-rendering:crispEdges}#name-save:hover{color:#c8ffb0}#name-cancel:hover{color:#ffb0b0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#05081699;opacity:1;pointer-events:auto;transition:opacity .25s ease-out,background-color .25s ease-out}.overlay[hidden]{display:flex;opacity:0;pointer-events:none;background-color:#05081600}.modal-card{background:#0e1638;border:2px solid var(--accent-border);border-radius:0;padding:20px 24px;width:min(440px,calc(100vw - 32px));color:var(--ink);display:flex;flex-direction:column;gap:12px;transform:translateY(0);opacity:1;transition:transform .25s ease-out,opacity .25s ease-out}.overlay[hidden] .modal-card{transform:translateY(-4px);opacity:0}.modal-card h2{margin:0;font-family:Silkscreen,VT323,monospace;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#ffe27a}.modal-hint{margin:0;color:var(--ink-dim);line-height:1.3}.seed-display{position:relative;display:block;width:100%;padding:12px 14px;background:#00000059;border:2px solid var(--panel-border);border-radius:0;color:#ffe27a;font-family:VT323,ui-monospace,monospace;line-height:1.2;text-align:left;word-break:break-all}.seed-display:hover .seed-copy-icon{opacity:1}.seed-text{display:block}.seed-copy-icon{position:absolute;opacity:0;transition:opacity .12s;top:8px;right:8px;width:20px;height:20px;background:#0a0f2cf2}.seed-copy-icon:hover{color:var(--ink);background:#0a0f2cf2}.seed-display[data-copied=true] .seed-copy-icon{color:#ffe27a}#import-input{width:100%;padding:10px 12px;background:#00000059;color:var(--ink);border:2px solid var(--panel-border);border-radius:0;font:inherit;font-family:VT323,ui-monospace,monospace;font-size:16px;outline:none;transition:border-color .12s}#import-input:focus{border-color:var(--accent-border)}.modal-error{color:#ff8a8a;padding:6px 10px;background:#ff8a8a14;border:2px solid rgba(255,138,138,.4);border-radius:0}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.modal-actions button{padding:6px 14px;background:transparent;color:var(--ink-dim);border:2px solid var(--panel-border);border-radius:0;cursor:var(--cur-pointer);font:inherit;font-family:inherit;font-size:16px;letter-spacing:.04em}.modal-actions button:hover{color:var(--ink);border-color:var(--accent-border)}.modal-actions button.primary{background:var(--accent);color:var(--ink);border-color:var(--accent-border)}.modal-actions button.primary:hover{background:#a0b4ff47}.help-card{background:#0e1638;border:2px solid var(--accent-border);border-radius:0;padding:20px 28px;min-width:320px;color:var(--ink);transform:translateY(0);opacity:1;transition:transform .25s ease-out,opacity .25s ease-out}.overlay[hidden] .help-card{transform:translateY(-4px);opacity:0}.help-card hr{margin:14px 0 12px;border:0;border-top:2px solid var(--panel-border)}.help-toggle{display:flex;align-items:center;gap:8px;font-size:16px;color:var(--ink-dim);cursor:var(--cur-pointer);line-height:1.3}.help-toggle input{cursor:var(--cur-pointer);accent-color:#ffe27a}.help-card h2{margin:0 0 14px;font-family:Silkscreen,VT323,monospace;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#ffe27a}.help-card dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;margin:0;font-size:17px}.help-card dt{display:flex;align-items:center;gap:4px;white-space:nowrap}.help-card dd{margin:0;align-self:center;color:var(--ink-dim)}kbd{display:inline-block;padding:1px 6px;background:#ffffff14;border:2px solid var(--panel-border);border-radius:0;font-family:Silkscreen,ui-monospace,monospace;font-size:11px;line-height:1;color:var(--ink)}
