:root{--bg:#11151c;--panel:#181d27;--panel-2:#1e2430;--panel-3:#222937;--border:#f3eee41a;--border-strong:#f3eee438;--text:#f3eee4;--text-dim:#9aa0ab;--text-faint:#6c7580;--accent:#d6a75e;--accent-active:#b88a45;--accent-soft:#d6a75e24;--accent-ink:#19140a;--success:#6fae96;--danger:#c9614f;--radius:12px;--radius-sm:8px;--shadow-card:0 16px 40px #0006;--font-body:"Inter", system-ui, sans-serif;--font-display:"Fraunces", serif;--font-mono:"JetBrains Mono", ui-monospace, Consolas, monospace;font:14px/1.45 var(--font-body);color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{margin:0;overflow:hidden}[hidden]{display:none!important}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#fff3}::-webkit-scrollbar-track{background:0 0}:root{--lime-2:var(--accent)}#app{position:fixed;inset:0}#viewport{z-index:1;position:absolute;inset:0}#viewport canvas{display:block}.floating-card{border:1px solid var(--border);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#141821db;border-radius:14px}button{color:var(--text);border-radius:var(--radius-sm);cursor:pointer;font:inherit;white-space:nowrap;background:0 0;border:1px solid #0000;padding:7px 11px;font-size:13px;transition:background .13s,border-color .13s,color .13s,transform .13s}button:hover{background:var(--panel-3)}button:active{transform:translateY(1px)}button:disabled{opacity:.42;cursor:default}button:disabled:hover{background:0 0}kbd{font-family:var(--font-mono);border:1px solid var(--border);color:var(--text-dim);background:#ffffff0f;border-radius:4px;padding:1.5px 5px;font-size:9.5px}#toolbar{z-index:12;border:1px solid var(--border);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#141821db;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex;position:absolute;top:12px;left:12px;right:12px}.tb-side{align-items:center;gap:6px;min-width:0;display:flex}.tb-btn{color:var(--text-dim);border-radius:9px;align-items:center;gap:7px;padding:8px 12px;font-size:12.5px;font-weight:500;display:inline-flex}.tb-btn:hover{color:var(--text)}.tb-btn svg{flex:none;width:16px;height:16px}.tb-icon-btn{padding:8px 9px}.tb-btn-primary{background:linear-gradient(135deg, var(--accent), var(--accent-active));color:var(--accent-ink);border:none;padding:8px 16px;font-weight:600}.tb-btn-primary:hover{filter:brightness(1.07);color:var(--accent-ink);background:linear-gradient(135deg, var(--accent), var(--accent-active))}.tb-btn-outline{border-color:var(--border-strong);color:var(--text)}.tb-btn-outline:hover{border-color:var(--accent-active);color:#f0d9ae}.tb-divider{background:var(--border);flex:none;width:1px;height:22px;margin:0 4px}.tb-doc{align-items:center;gap:10px;min-width:0;display:flex}.tb-brand{background:linear-gradient(135deg, var(--accent), var(--brass-deep,#8e6e38));width:30px;height:30px;color:var(--accent-ink);border-radius:9px;flex:none;place-items:center;display:grid}.tb-brand svg{width:16px;height:16px}.tb-doc-text{flex-direction:column;min-width:0;display:flex}.tb-doc-name{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;max-width:260px;font-size:14.5px;font-weight:600;line-height:1.15;overflow:hidden}.tb-doc-sub{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);font-size:9px}@media (width<=1180px){.tb-btn span{display:none}.tb-btn{padding:8px 9px}.tb-btn-primary{padding:8px 12px}.tb-btn-primary span{display:inline}}@media (width<=900px){.tb-doc-sub{display:none}.tb-doc-name{max-width:130px;font-size:13px}#toolbar{gap:6px;padding:6px 8px}.tb-divider{margin:0 1px}}@media (width<=760px){#sidebar{width:calc(100vw - 86px);max-width:292px}#statusbar{max-width:calc(100vw - 24px);font-size:10px}.status-chip{display:none}}#toolrail{z-index:11;border:1px solid var(--border);width:52px;box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#141821db;border-radius:14px;flex-direction:column;gap:8px;padding:7px;display:flex;position:absolute;top:72px;left:12px}.rail-group{flex-direction:column;gap:4px;display:flex}.rail-group[hidden]{display:none}.rail-divider{background:var(--border);height:1px;margin:4px 2px}#toolrail button{width:38px;height:38px;color:var(--text-dim);border-radius:10px;place-items:center;padding:0;display:grid}#toolrail button svg{width:19px;height:19px}#toolrail button:hover{color:var(--text);background:var(--panel-3)}#toolrail .tool-btn.active{background:var(--accent-soft);color:var(--accent);border-color:#d6a75e73}.tool-btn.active,.brush-type-btn.active,#btn-sea-toggle.active,.transform-mode-btn.active{background:var(--accent-soft);border-color:var(--accent-active);color:#f0d9ae}#sidebar{z-index:10;border:1px solid var(--border);width:292px;box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#141821db;border-radius:14px;flex-direction:column;display:flex;position:absolute;top:72px;bottom:56px;left:74px;overflow:hidden}.panel-header{border-bottom:1px solid var(--border);flex:none;padding:14px 16px 12px}.panel-header h2{font-family:var(--font-display);letter-spacing:.1px;margin:0;font-size:17px;font-weight:600}.panel-scroll{flex:1;padding:14px 14px 18px;overflow-y:auto}.panel{flex-direction:column;gap:12px;display:none}.panel.active{display:flex}.panel-fixed h3{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1.1px;color:var(--text-faint);align-items:center;gap:8px;margin:0 0 2px;font-size:10.5px;font-weight:600;display:flex}.panel-fixed h3:after{content:"";background:var(--border);flex:1;height:1px}.panel label{color:var(--text-dim);font-size:12px}.hint{color:var(--text-faint);margin:2px 0 0;font-size:11.5px;line-height:1.5}.hint b{color:var(--text-dim)}.hint-danger{color:var(--danger)}.field{flex-direction:column;gap:7px;display:flex}.field-head{color:var(--text-dim);justify-content:space-between;align-items:baseline;font-size:12px;display:flex}.field-head output{font-family:var(--font-mono);color:var(--text);border:1px solid var(--border);text-align:center;background:#ffffff0d;border-radius:5px;min-width:30px;padding:1px 7px;font-size:11px}input[type=range]{appearance:none;cursor:pointer;width:100%;height:4px;accent-color:var(--accent);background:#2a3833;border-radius:999px;outline:none}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);border:2.5px solid #141821;border-radius:50%;width:14px;height:14px;transition:transform .12s;box-shadow:0 1px 5px #00000080}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}input[type=range]::-moz-range-thumb{background:var(--accent);border:2.5px solid #141821;border-radius:50%;width:14px;height:14px;box-shadow:0 1px 5px #00000080}.field-text{color:var(--text-dim);flex-direction:column;gap:6px;font-size:12px;display:flex}.seg{border:1px solid var(--border);background:#00000040;border-radius:10px;gap:3px;padding:3px;display:grid}.seg>button{min-width:0;color:var(--text-dim);background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:7px 6px;font-size:12px;font-weight:500;display:inline-flex}.seg>button:hover{color:var(--text);background:var(--panel-3)}.seg>button.active{background:var(--panel-3);color:#f0d9ae;box-shadow:0 1px 4px #0000004d}.action-primary{font-weight:600;background:linear-gradient(135deg, var(--accent), var(--accent-active))!important;color:var(--accent-ink)!important;border:none!important}.action-primary:hover{filter:brightness(1.07)}.action-danger{color:#e8a196!important}.action-danger:hover{border-color:var(--danger)!important;background:#c9614f1a!important}.path-actions button,.selection-actions button,.selection-nudge-row button,.large-map-actions button,.map-grow-pad button{background:var(--panel-2);border-color:var(--border)}.path-actions button:hover,.selection-actions button:hover,.selection-nudge-row button:hover,.large-map-actions button:hover,.map-grow-pad button:hover{border-color:var(--accent-active);background:var(--panel-3)}#color-swatches,#path-colors{grid-template-columns:repeat(4,1fr);gap:7px;display:grid}.swatch{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;border:2px solid #ffffff14;width:100%;padding:0;transition:transform .12s,border-color .12s}.swatch:hover{transform:scale(1.06)}.swatch.selected{box-shadow:0 0 0 2px var(--accent-active);border-color:#fff}.object-browser-tools{flex-direction:column;gap:7px;display:flex}.object-browser-tools input,.object-browser-tools select,.transform-fields input,.large-map-controls select{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;min-width:0;color:var(--text);font:inherit;background:#10131a;outline:none;padding:8px 9px;font-size:12.5px;transition:border-color .13s}.object-browser-tools input:focus,.object-browser-tools select:focus,.transform-fields input:focus,.large-map-controls select:focus{border-color:var(--accent)}#object-palette{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.palette-item{border-radius:var(--radius);border:1px solid var(--border);background:var(--panel-2);cursor:pointer;flex-direction:column;align-items:stretch;gap:0;min-height:86px;padding:0;transition:border-color .13s,transform .13s;display:flex;position:relative;overflow:hidden}.palette-item:hover{border-color:var(--border-strong);background:var(--panel-2);transform:translateY(-1px)}.palette-item.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.palette-picture{aspect-ratio:4/3;object-fit:cover;-webkit-user-select:none;user-select:none;background:#0c0e13;width:100%;display:block}.palette-icon{aspect-ratio:4/3;background:linear-gradient(160deg,#1f2530 0%,#171b23 100%);place-items:center;width:100%;font-size:26px;line-height:1;display:grid}.palette-item span.label{color:var(--text-dim);text-align:center;overflow-wrap:anywhere;background:#0000002e;padding:6px 6px 7px;font-size:10.5px;line-height:1.2;display:block}.palette-item.selected span.label{color:#fff}.palette-item.is-placeholder{border-style:dashed}.palette-item.is-loading{border-color:#46628c}.palette-item.has-error{border-color:#8c554f}.asset-state{letter-spacing:.3px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:5px;padding:2px 5px;font-size:7.5px;font-weight:700;line-height:1.3;position:absolute;top:5px;right:5px}.asset-state.ready{color:#b9f4ce;background:#265c3ee0}.asset-state.loading{color:#c9dcf5;background:#2b4769e0}.asset-state.fallback{color:#f2d495;background:#5e4d2de0}.library-info{color:var(--text-faint);font-size:10px;line-height:1.4}.brush-type-row{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.brush-type-row:not(.seg) button{background:var(--panel-2);border-color:var(--border);font-size:12px}.water-type-row{grid-template-columns:repeat(3,1fr)}.road-mode-row{grid-template-columns:repeat(2,1fr)}.water-subpanel{flex-direction:column;gap:10px;display:none}.water-subpanel.active{display:flex}.path-actions{flex-direction:column;gap:6px;display:flex}.info-box,#selection-info{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);padding:9px 10px;font-size:12px}#selection-info.has-selection{border-left:3px solid var(--accent);color:var(--text)}#selection-controls{flex-direction:column;gap:10px;display:flex}#selection-controls[hidden]{display:none}.transform-mode-row{grid-template-columns:repeat(3,minmax(0,1fr))}.transform-mode-row button{padding:7px 3px;font-size:11px}.transform-mode-row kbd{margin-left:1px}.transform-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.transform-fields label{min-width:0}.selection-nudge-row{grid-template-columns:1fr 1.15fr 1fr;gap:5px;display:grid}.selection-nudge-row button{padding-inline:4px}.selection-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.danger-action,#btn-selection-delete{color:#ff9b9b}.selection-shortcuts{border-top:1px solid var(--border);padding-top:9px}.large-map-controls{border-top:1px solid var(--border);gap:8px;margin-top:9px;padding-top:10px;display:grid}.large-map-controls label{gap:5px;display:grid}.large-map-actions{grid-template-columns:1fr auto;gap:5px;display:grid}#map-expand-progress{width:100%;height:9px;accent-color:var(--accent)}.map-expand-info{min-height:26px;color:var(--text-faint);font-size:10px;line-height:1.35}.panel-fixed{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-top:18px;padding-top:14px;display:flex}.map-grow-pad{grid-template-columns:repeat(3,1fr);place-items:center;gap:6px;display:grid}.map-grow-pad button{width:100%}#map-bounds{color:var(--text-dim);text-align:center;font-size:12px}#statusbar{z-index:11;max-width:calc(100vw - 24px);font-family:var(--font-mono);color:var(--text-dim);border:1px solid var(--border);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#141821db;border-radius:999px;align-items:center;gap:10px;padding:7px 14px 7px 12px;font-size:11px;display:flex;position:absolute;bottom:12px;left:12px}.status-dot{background:var(--success);border-radius:50%;flex:none;width:7px;height:7px;box-shadow:0 0 6px #6fae96b3}#status-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.status-spacer{background:var(--border);flex:none;width:1px;height:14px}.status-chip{border:1px solid var(--border);color:var(--text-faint);white-space:nowrap;background:#ffffff0d;border-radius:999px;flex:none;padding:2px 9px}.status-chip:empty,.status-chip:empty+.status-spacer{display:none}.status-spacer:has(+.status-chip:empty:last-child){display:none}#node-context-menu{z-index:100;border:1px solid var(--border-strong);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:216px;box-shadow:var(--shadow-card);background:#181b23f5;flex-direction:column;gap:4px;padding:9px;display:flex;position:fixed}#node-context-menu[hidden]{display:none}#node-context-menu strong{color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px;padding:3px 4px 7px;font-size:11px}#node-context-menu button{text-align:left;width:100%}#node-context-menu button:hover{background:var(--accent-soft)}#node-context-menu .danger-action{color:#ff9b9b}#launcher{z-index:50;color:var(--text);background:radial-gradient(900px 480px at 18% -8%,#d6a75e21 0%,#0000 60%),radial-gradient(1100px 560px at 88% 4%,#6fae9614 0%,#0000 55%),linear-gradient(170deg,#141821 0%,#0f1218 100%);position:fixed;inset:0;overflow-y:auto}#launcher[hidden]{display:none}.launcher-inner{max-width:1120px;margin:0 auto;padding:44px 30px 64px}.launcher-header{z-index:20;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#11151cc7;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin:-44px -30px 30px;padding:18px 30px;display:flex;position:sticky;top:0}.launcher-brand{align-items:center;gap:15px;display:flex}.launcher-logo{width:56px;height:56px;color:var(--accent-ink);background:linear-gradient(150deg, var(--accent) 0%, var(--accent-active) 100%);border:1px solid var(--accent-active);box-shadow:var(--shadow-card);border-radius:16px;place-items:center;display:grid}.launcher-logo svg{display:block}.launcher-title{font-family:var(--font-display);letter-spacing:-.3px;margin:0;font-size:32px;font-weight:600}.launcher-subtitle{color:var(--text-dim);margin:3px 0 0;font-size:14px}.launcher-header-actions{gap:10px;display:flex}.launcher-btn{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;padding:8px 13px;font-size:13px;transition:background .13s,border-color .13s,transform .13s}.launcher-btn:hover{border-color:var(--accent-active);background:var(--panel-3)}.launcher-btn.primary{background:linear-gradient(180deg, var(--accent) 0%, var(--accent-active) 100%);border-color:var(--accent-active);color:var(--accent-ink);font-weight:600}.launcher-btn.primary:hover{filter:brightness(1.06);transform:translateY(-1px)}.launcher-btn.danger:hover{border-color:var(--danger);color:#ffa3a3}.launcher-btn.big{padding:11px 20px;font-size:14px}.launcher-btn.grow{flex:1}.launcher-btn.icon{flex:none;padding:8px 10px}.launcher-card.featured{background:linear-gradient(150deg, #d6a75e1a 0%, var(--panel) 72%);border:1px solid var(--border-strong);border-radius:calc(var(--radius) + 6px);box-shadow:var(--shadow-card);flex-direction:row;align-items:stretch;gap:0;margin-bottom:38px;display:flex;overflow:hidden}.launcher-card.featured .launcher-thumb{aspect-ratio:auto;border-radius:0;flex:0 0 44%;min-height:210px}.launcher-card.featured .launcher-card-body{flex-direction:column;flex:1;justify-content:center;gap:10px;padding:28px 32px;display:flex}.launcher-badge{font-family:var(--font-mono);letter-spacing:1.2px;color:#f0d9ae;background:#d6a75e29;border:1px solid #d6a75e59;border-radius:999px;align-self:flex-start;padding:3px 9px;font-size:10px;font-weight:700}.launcher-card.featured .launcher-card-title{margin:0;font-size:26px}.launcher-card.featured .launcher-card-meta{max-width:46ch;font-size:13.5px;line-height:1.55}.launcher-card.featured .launcher-card-actions{border:0;margin-top:6px;padding:0}.launcher-thumb.demo-art{background:linear-gradient(#7fa8c9 0%,#a9c6d4 46%,#cfdcd2 72%,#dbd8c0 100%);position:relative;overflow:hidden}.demo-art-sun{background:radial-gradient(circle,#fff7dd 0%,#ffe9a8 55%,#0000 72%);border-radius:50%;width:44px;height:44px;position:absolute;top:12%;right:14%}.demo-art-range{height:70%;position:absolute;bottom:18%;left:0;right:0}.demo-art-range.back{clip-path:polygon(0 100%,8% 52%,19% 74%,32% 30%,43% 62%,56% 18%,68% 58%,80% 36%,92% 68%,100% 50%,100% 100%);opacity:.85;background:#5c7186}.demo-art-range.front{clip-path:polygon(0 100%,0 64%,12% 84%,26% 44%,40% 76%,54% 34%,66% 70%,82% 48%,94% 78%,100% 62%,100% 100%);background:#3f5468;bottom:8%}.demo-art-lake{opacity:.92;background:linear-gradient(#6ea3c4 0%,#4f7fa4 100%);border-radius:50%;height:12%;position:absolute;bottom:4%;left:18%;right:22%}.launcher-featured-row{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:34px;display:grid}.launcher-featured-row .launcher-card.featured{margin-bottom:0}@media (width<=760px){.launcher-featured-row{grid-template-columns:1fr}}.launcher-thumb.fjord-art{background:linear-gradient(#8fb2cf 0%,#bcd2d8 40%,#7fa7bf 58%,#35617f 100%);position:relative;overflow:hidden}.fjord-art-sun{background:radial-gradient(circle,#fff7dd 0%,#ffe4a0 55%,#0000 72%);border-radius:50%;width:40px;height:40px;position:absolute;top:14%;left:16%}.fjord-art-peak{background:linear-gradient(#7d8ea0 0%,#566d84 70%,#3f5468 100%);width:62%;height:52%;position:absolute;bottom:42%}.fjord-art-peak.left{clip-path:polygon(0 100%,40% 8%,62% 46%,82% 22%,100% 100%);left:-6%}.fjord-art-peak.right{clip-path:polygon(0 100%,20% 40%,46% 10%,72% 44%,100% 100%);opacity:.9;right:-6%}.fjord-art-sea{background:linear-gradient(#5b93b6 0%,#2f5c7a 100%);height:42%;position:absolute;bottom:0;left:0;right:0}.fjord-art-island{background:linear-gradient(#6f8d4f 0%,#4f793d 100%);border-radius:50% 50% 45% 45%;width:44px;height:16px;position:absolute;bottom:16%;left:46%}.launcher-section{margin-bottom:34px}.launcher-section-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1.2px;color:var(--accent);margin:0 0 14px;font-size:11px;font-weight:600}.launcher-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;display:grid}.launcher-card{background:var(--panel);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);flex-direction:column;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex;overflow:hidden}.launcher-card:hover:not(.featured){border-color:var(--accent-active);box-shadow:var(--shadow-card);transform:translateY(-3px)}.launcher-thumb{aspect-ratio:16/9;background:#0c0e13;width:100%;position:relative;overflow:hidden}.launcher-thumb-img{object-fit:cover;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.launcher-thumb.placeholder{background:radial-gradient(300px 130px at 50% 110%,#d6a75e24 0%,#0000 70%),linear-gradient(160deg,#1b202b 0%,#141821 100%);place-items:center;display:grid}.launcher-thumb-emoji{color:var(--text-faint);opacity:.8}.launcher-thumb-emoji svg{display:block}.launcher-empty-icon{color:var(--text-faint)}.launcher-empty-icon svg{display:block}.launcher-card-body{padding:12px 14px 8px}.launcher-card-title{white-space:nowrap;text-overflow:ellipsis;margin:0 0 3px;font-size:15.5px;font-weight:650;overflow:hidden}.launcher-card-meta{color:var(--text-dim);margin:0;font-size:12px}.launcher-card-id{color:var(--text-faint);font-size:9.5px;font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;margin:5px 0 0;overflow:hidden}.launcher-card-actions{border-top:1px solid #ffffff0a;gap:6px;margin-top:8px;padding:10px 12px 12px;display:flex}.launcher-empty{text-align:center;color:var(--text-dim);border:1px dashed var(--border-strong);border-radius:calc(var(--radius) + 4px);background:#ffffff03;place-items:center;gap:4px;padding:42px 26px;display:grid}.launcher-empty p{margin:0}.launcher-empty-icon{opacity:.55;font-size:34px}.launcher-empty-hint{color:var(--text-faint);font-size:12px}.launcher-footer{border-top:1px solid var(--border);color:var(--text-faint);text-align:center;margin-top:44px;padding-top:18px;font-size:12px}@media (width<=700px){.launcher-inner{padding:24px 16px 48px}.launcher-header{gap:12px;margin:-24px -16px 22px;padding:12px 16px}.launcher-brand{gap:11px}.launcher-logo{border-radius:12px;width:40px;height:40px}.launcher-logo svg{width:20px;height:20px}.launcher-title{font-size:21px}.launcher-subtitle{display:none}.launcher-header-actions{flex:100%;gap:8px}.launcher-header-actions .launcher-btn{text-align:center;flex:1;padding:9px 10px;font-size:12.5px}.launcher-btn.google{justify-content:center;padding:9px 12px}.auth-chip{flex:100%;justify-content:space-between}.auth-name{max-width:120px}.launcher-card.featured .launcher-card-body{gap:8px;padding:18px 18px 20px}.launcher-card.featured .launcher-card-title{font-size:21px}.launcher-card.featured .launcher-card-meta{font-size:12.5px}}.launcher-loading{flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:absolute;inset:0}.launcher-spinner{border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:46px;height:46px;animation:.9s linear infinite launcher-spin}@keyframes launcher-spin{to{transform:rotate(360deg)}}.launcher-loading-text{color:var(--text-dim);font-size:14px}@media (width<=720px){.launcher-card.featured{flex-direction:column}.launcher-card.featured .launcher-thumb{aspect-ratio:16/9;flex:none;width:100%;min-height:0}.launcher-card.featured .launcher-card-body{padding:20px}}.compass-btn{letter-spacing:.5px;width:100%;color:var(--text-dim);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 0;font-size:11.5px;font-weight:700}.compass-btn:hover{color:var(--text);border-color:var(--accent-active);background:var(--panel-3)}.add-object-btn{color:#f0d9ae;background:var(--accent-soft);border:1px dashed var(--accent-active);border-radius:var(--radius-sm);justify-content:center;align-items:center;gap:8px;padding:10px;font-weight:600;display:inline-flex}.add-object-btn svg{width:15px;height:15px}.add-object-btn:hover{background:#d6a75e38;border-style:solid}.af-dialog{width:min(440px,100vw - 40px);color:var(--text);background:linear-gradient(165deg, #1b1f28 0%, var(--panel) 100%);border:1px solid var(--border-strong);border-radius:16px;padding:22px 22px 18px;box-shadow:0 24px 70px #0000008c}.af-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#06080ca8}.af-dialog h3{font-family:var(--font-display);margin:0 0 6px;font-size:19px;font-weight:600}.dialog-sub{color:var(--text-dim);margin:0 0 14px;font-size:12.5px;line-height:1.5}.dialog-choices{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.dialog-choice{text-align:center;background:var(--panel-2);border:1px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:18px 12px;transition:border-color .13s,transform .13s,background .13s;display:flex}.dialog-choice:hover{border-color:var(--accent);background:var(--panel-3);transform:translateY(-2px)}.dialog-choice .choice-icon{font-size:26px}.dialog-choice strong{font-size:13.5px}.dialog-choice .choice-hint{color:var(--text-dim);font-size:11px;line-height:1.35}.dialog-label{color:var(--text-dim);flex-direction:column;gap:6px;margin-bottom:12px;font-size:12px;display:flex}.dialog-textarea{resize:vertical;border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;min-height:68px;color:var(--text);font:inherit;background:#10131a;outline:none;padding:9px 10px;font-size:13px}.dialog-textarea:focus{border-color:var(--accent)}.dialog-footer{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.dialog-btn{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 14px}.dialog-btn:hover{border-color:var(--accent-active);background:var(--panel-3)}.dialog-btn.primary{background:linear-gradient(180deg, var(--accent) 0%, var(--accent-active) 100%);border-color:var(--accent-active);color:var(--accent-ink);font-weight:600}.dialog-btn.primary:hover{filter:brightness(1.06)}.generate-status{color:var(--text-dim);border-radius:var(--radius-sm);background:#d6a75e14;border:1px solid #d6a75e38;align-items:center;gap:10px;margin-bottom:10px;padding:10px 12px;font-size:12.5px;display:flex}.generate-status[hidden]{display:none}.dialog-spinner{border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex:none;width:16px;height:16px;animation:.8s linear infinite launcher-spin}.af-dialog.viewer{width:min(420px,100vw - 40px)}.viewer-host{border:1px solid var(--border);background:radial-gradient(280px 160px at 50% 82%,#d6a75e1f 0%,#0000 70%),linear-gradient(170deg,#171b23 0%,#10131a 100%);border-radius:12px;place-items:center;margin-bottom:10px;display:grid;overflow:hidden}.viewer-host canvas{display:block}.generate-status{flex-direction:column;align-items:stretch}.generate-status-line{align-items:center;gap:10px;display:flex}.generate-progress{width:100%;height:8px;accent-color:var(--accent);margin-top:8px}.generate-progress[hidden]{display:none}#btn-create-game{color:#f0d9ae;font-weight:600}#game-group[hidden],#mode-group[hidden],.phase-game .panel-fixed,.phase-game #btn-undo{display:none}.zone-type-grid{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.zone-type-btn{text-align:left;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:7px;padding:8px 9px;font-size:11.5px;display:flex}.zone-type-btn:hover{border-color:var(--accent-active);background:var(--panel-3)}.zone-type-btn.active{border-color:var(--accent);background:var(--accent-soft);color:#fff}.zone-dot{border-radius:50%;flex:none;width:10px;height:10px;box-shadow:0 0 0 2px #ffffff1f}.field-text input,.field-text select,#panel-zone input[type=text]{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);font:inherit;background:#10131a;outline:none;padding:8px 9px;font-size:12.5px}.field-text input:focus,.field-text select:focus,#panel-zone input[type=text]:focus{border-color:var(--accent)}.zone-list{flex-direction:column;gap:5px;display:flex}.zone-list:empty{display:none}.zone-row{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:7px 9px;display:flex}.zone-row-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:12px;overflow:hidden}.zone-row-delete{color:#ff9b9b;background:0 0;border:1px solid #0000;flex:none;padding:3px 7px;font-size:12px}.zone-row-delete:hover{border-color:var(--danger);background:#ff70701a}.inspect-switch{grid-template-columns:1fr 1fr}.inspect-report{flex-direction:column;gap:5px;display:flex}.inspect-report:empty{display:none}.inspect-row{color:var(--text-dim);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:8px 10px;font-size:12.5px;display:flex}.inspect-row strong{color:var(--text);font-size:14px}.inspect-row.warn{color:#f2d495;border-color:#6b4a2b}.inspect-row.warn strong{color:#ffcf7a}.inspect-verdict{border-radius:var(--radius-sm);border:1px solid var(--border);margin-top:4px;padding:10px 11px;font-size:12px;line-height:1.5}.inspect-verdict.ok{color:#b9f4ce;background:#4dd06a1a;border-color:#4dd06a59}.inspect-verdict.warn{color:#ffd9a0;background:#ffb3471a;border-color:#ffb34759}.inspect-empty{color:var(--text-dim);text-align:center;padding:16px;font-size:12.5px}.launcher-header-actions{flex-wrap:wrap;align-items:center}.launcher-btn.google{color:#1f2430;background:#fff;border-color:#fff;align-items:center;gap:9px;padding:10px 16px;font-weight:600;display:inline-flex}.launcher-btn.google:hover{background:#f1f3f6;border-color:#f1f3f6;transform:translateY(-1px)}.google-icon{line-height:0;display:inline-flex}.launcher-btn.small{padding:6px 11px;font-size:12px}.auth-chip{background:var(--panel-2);border:1px solid var(--border);border-radius:999px;align-items:center;gap:9px;padding:5px 6px 5px 5px;display:inline-flex}.auth-chip.muted{color:var(--text-faint);border-style:dashed;padding:8px 14px;font-size:12.5px}.auth-avatar{object-fit:cover;background:var(--panel-3);border-radius:50%;width:30px;height:30px}.auth-avatar.fallback{place-items:center;font-size:16px;display:grid}.auth-name{white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-size:13px;font-weight:600;overflow:hidden}.credit-pill{font-family:var(--font-mono);color:#f0d9ae;white-space:nowrap;background:#d6a75e24;border:1px solid #d6a75e59;border-radius:999px;align-items:center;padding:4px 10px;font-size:12.5px;font-weight:700;display:inline-flex}.auth-identity{cursor:pointer;color:inherit;background:0 0;border:none;align-items:center;gap:9px;padding:0;display:inline-flex}.auth-identity:hover{background:0 0}.auth-identity:hover .auth-name{color:var(--accent)}.profile-dialog{width:min(460px,100vw - 40px)}.profile-head{align-items:center;gap:15px;margin-bottom:16px;display:flex}.profile-avatar{object-fit:cover;background:var(--panel-3);border:2px solid var(--border-strong);border-radius:50%;width:64px;height:64px}.profile-avatar.fallback{place-items:center;font-size:30px;display:grid}.profile-identity{min-width:0}.profile-name{font-family:var(--font-display);margin:0;font-size:20px;font-weight:600}.profile-email{color:var(--text-dim);text-overflow:ellipsis;margin:3px 0 0;font-size:13px;overflow:hidden}.profile-credits{background:#d6a75e17;border:1px solid #d6a75e47;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:14px 16px;display:flex}.profile-credits-value{font-family:var(--font-display);color:#f0d9ae;font-size:22px;font-weight:700}.profile-credits-label{color:var(--text-dim);margin-top:2px;font-size:12px;display:block}.profile-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;display:grid}.profile-stat{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;flex-direction:column;align-items:center;gap:3px;padding:12px 6px;display:flex}.profile-stat strong{font-size:18px}.profile-stat span{color:var(--text-dim);text-align:center;font-size:11px}.profile-note{color:var(--text-faint);margin:0 0 4px;font-size:12px;line-height:1.5}.card-title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.vis-badge{white-space:nowrap;border-radius:999px;flex:none;padding:2px 7px;font-size:10px;font-weight:700}.vis-badge.public{color:#b9f4ce;background:#4dd06a24;border:1px solid #4dd06a4d}.vis-badge.private{color:var(--text-dim);background:var(--panel-3);border:1px solid var(--border)}.card-attribution{color:#d8b487;margin:5px 0 0;font-size:11.5px}.explore-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.explore-head .launcher-section-title{margin:0}.explore-search{min-width:200px;max-width:340px;font:inherit;color:var(--text);border:1px solid var(--border);background:#10131a;border-radius:999px;outline:none;flex:1;padding:9px 12px;font-size:13px}.explore-search:focus{border-color:var(--accent)}.explore-empty{text-align:center;color:var(--text-dim);padding:24px;font-size:13px}.settings-visibility{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.settings-radio,.settings-check{background:var(--panel-2);border:1px solid var(--border);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.settings-radio:hover,.settings-check:hover{border-color:var(--accent-active)}.settings-radio strong{font-size:13.5px;display:block}.settings-permissions{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.settings-check{align-items:center}.settings-hint{color:var(--text-dim);margin:2px 0 0;font-size:11.5px;display:block}.view-banner{z-index:60;border:1px solid var(--accent-active);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#181b23f7;border-radius:999px;align-items:center;gap:14px;max-width:calc(100vw - 40px);padding:10px 12px 10px 18px;font-size:13px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.view-banner button{color:#fff;background:var(--accent-active);border:1px solid var(--accent);border-radius:999px;flex:none;padding:8px 14px;font-weight:600}.view-banner button:hover{background:var(--accent)}.settings-section-title{margin:16px 0 6px;font-size:13px}.collab-add{grid-template-columns:1fr auto auto;gap:6px;margin-bottom:8px;display:grid}.collab-input,.collab-select{font:inherit;color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);background:#10131a;outline:none;min-width:0;padding:8px 9px;font-size:12.5px}.collab-input:focus,.collab-select:focus{border-color:var(--accent)}.collab-list{flex-direction:column;gap:5px;display:flex}.collab-row{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:8px;padding:7px 9px;display:flex}.collab-email{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;overflow:hidden}.collab-role{color:var(--text-dim);font-size:11px}.profile-friends{margin:6px 0 4px}.friend-search{width:100%;font:inherit;color:var(--text);border:1px solid var(--border);background:#10131a;border-radius:999px;outline:none;margin-bottom:8px;padding:9px 11px;font-size:13px}.friend-search:focus{border-color:var(--accent)}.friend-results:not(:empty),.friend-block:not(:empty){flex-direction:column;gap:5px;margin-bottom:8px;display:flex}.friend-row{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:9px;padding:6px 9px;display:flex}.friend-identity{cursor:pointer;min-width:0;color:inherit;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:9px;padding:0;display:flex}.friend-identity:hover .friend-name{color:var(--accent)}.friend-avatar{object-fit:cover;background:var(--panel-3);border-radius:50%;flex:none;width:30px;height:30px}.friend-avatar.fallback{place-items:center;font-size:15px;display:grid}.friend-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.launcher-btn.small.primary{background:var(--accent-active);border-color:var(--accent);color:#fff}.profile-public-maps{flex-direction:column;gap:5px;display:flex}.selection-name-row{color:var(--text-dim);flex-direction:column;gap:4px;margin-bottom:10px;font-size:12px;display:flex}.selection-name-row input{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:7px;padding:7px 9px}.selection-name-row input:focus{border-color:var(--accent);outline:none}.selection-role-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;margin-bottom:10px;padding-bottom:10px;display:flex}.selection-role-label{color:var(--text-dim);margin-right:2px;font-size:12px}.role-btn{cursor:pointer;background:var(--panel-3);border:1px solid var(--border);color:var(--text);border-radius:7px;flex:1;padding:7px 8px;font:600 12px system-ui,sans-serif}.role-btn:hover{border-color:#4a5262}.role-btn[data-role=player].active{color:#dbeafe;background:#16386e;border-color:#3b82f6}.role-btn[data-role=ai].active{color:#fee2e2;background:#6e1f22;border-color:#ef4444}body.play-mode.game-rt-ended,body.play-mode.game-rt-ended #viewport{cursor:auto}#game-rt-hud{z-index:45;pointer-events:none;position:fixed;inset:0}#game-rt-stats{flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:60px;right:18px}#game-rt-stats span{color:#fff;background:#0c0f14ad;border:1px solid #ffffff24;border-radius:9px;padding:7px 14px;font:700 16px system-ui,sans-serif}#game-rt-messages{flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:24%;left:50%;transform:translate(-50%)}.game-rt-message{color:#fff;text-align:center;background:#0c0f14b8;border:1px solid #ffffff29;border-radius:10px;padding:10px 22px;font:600 17px system-ui,sans-serif;animation:.25s gameMsgIn}@keyframes gameMsgIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1}}#game-rt-end{pointer-events:auto;background:#080a0e8c;place-items:center;display:grid;position:absolute;inset:0}#game-rt-end[hidden]{display:none}#game-rt-end-card{background:var(--panel);border:1px solid var(--border-strong);text-align:center;color:var(--text);border-radius:14px;padding:28px 40px}#game-rt-end-card h2{font-family:var(--font-display);margin:0 0 8px;font-size:28px;font-weight:600}#game-rt-end-card p{color:var(--text-dim);margin:0 0 18px}#game-rt-end-card button{cursor:pointer;background:var(--panel-3);border:1px solid var(--border);color:var(--text);border-radius:8px;margin:0 6px;padding:9px 18px;font:600 14px system-ui,sans-serif}#game-rt-end-card button#game-rt-replay{color:#bfe8d6;background:#6fae9633;border-color:#3d6b53}.play-btn{color:#bfe8d6;background:#6fae9629;border-color:#3d6b53}.play-btn:hover{background:#6fae9642}body.play-mode #toolbar,body.play-mode #toolrail,body.play-mode #sidebar,body.play-mode #statusbar,body.play-mode #node-context-menu,body.play-mode .view-banner{display:none!important}body.play-mode #viewport{z-index:1;width:100vw;height:100vh;position:fixed;inset:0}body.play-mode{cursor:none}#play-hud{z-index:40;pointer-events:none;position:fixed;inset:0}#play-crosshair{background:#ffffffd9;border-radius:50%;width:8px;height:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #00000073}#play-hint{color:#dfe4ee;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0c0f149e;border:1px solid #ffffff1f;border-radius:999px;flex-wrap:wrap;justify-content:center;gap:18px;padding:9px 18px;font:13px/1 system-ui,sans-serif;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}#play-hint b{color:#9fd9bd;font-weight:700}#play-speed{color:#fff;letter-spacing:1px;background:#0c0f14b3;border:1px solid #ffffff29;border-radius:12px;padding:10px 20px;font:800 24px system-ui,sans-serif;position:absolute;bottom:26px;right:26px}#play-speed[hidden]{display:none}#play-quit{pointer-events:auto;cursor:pointer;color:#ffd7da;background:#501418bf;border:1px solid #b3434d;border-radius:8px;padding:8px 14px;font:600 13px system-ui,sans-serif;position:absolute;top:14px;right:16px}#play-quit:hover{background:#781c22e6}
