@font-face{font-family:Cinzel Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/loremapper/assets/cinzel-latin-ext-wght-normal-CG36JvV6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/loremapper/assets/cinzel-latin-wght-normal-DMUuCU8H.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/loremapper/assets/eb-garamond-cyrillic-ext-wght-normal-Bt3rCdHq.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/loremapper/assets/eb-garamond-cyrillic-wght-normal-DBa2mnKT.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/loremapper/assets/eb-garamond-greek-ext-wght-normal-CW-BywWH.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/loremapper/assets/eb-garamond-greek-wght-normal-DCPER7xl.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/loremapper/assets/eb-garamond-vietnamese-wght-normal-DvUmmjCN.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/loremapper/assets/eb-garamond-latin-ext-wght-normal-B6IpcvL2.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/loremapper/assets/eb-garamond-latin-wght-normal-CRpggXlh.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:EB Garamond Variable;font-style:italic;font-display:swap;font-weight:400 800;src:url(/loremapper/assets/eb-garamond-cyrillic-ext-wght-italic-Ba0fXTjv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:EB Garamond Variable;font-style:italic;font-display:swap;font-weight:400 800;src:url(/loremapper/assets/eb-garamond-cyrillic-wght-italic-Cini1BOa.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:EB Garamond Variable;font-style:italic;font-display:swap;font-weight:400 800;src:url(/loremapper/assets/eb-garamond-greek-ext-wght-italic-nvsmRjVx.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:EB Garamond Variable;font-style:italic;font-display:swap;font-weight:400 800;src:url(/loremapper/assets/eb-garamond-greek-wght-italic-Dc0bJcw6.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:EB Garamond Variable;font-style:italic;font-display:swap;font-weight:400 800;src:url(/loremapper/assets/eb-garamond-vietnamese-wght-italic-2ii8blLS.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:EB Garamond Variable;font-style:italic;font-display:swap;font-weight:400 800;src:url(/loremapper/assets/eb-garamond-latin-ext-wght-italic-CYvIfuu9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:EB Garamond Variable;font-style:italic;font-display:swap;font-weight:400 800;src:url(/loremapper/assets/eb-garamond-latin-wght-italic-AvGrCMCN.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IM Fell English;font-style:normal;font-display:swap;font-weight:400;src:url(/loremapper/assets/im-fell-english-latin-400-normal-BhowGHCQ.woff2)format("woff2"),url(/loremapper/assets/im-fell-english-latin-400-normal-CxhBQSzl.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IM Fell English;font-style:italic;font-display:swap;font-weight:400;src:url(/loremapper/assets/im-fell-english-latin-400-italic-DD_ylKHZ.woff2)format("woff2"),url(/loremapper/assets/im-fell-english-latin-400-italic-hN89MLGX.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/loremapper/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/loremapper/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/loremapper/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/loremapper/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/loremapper/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/loremapper/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/loremapper/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#111317;--panel:#181b21;--panel-2:#1f232b;--panel-3:#282d37;--hover:#2d3340;--border:#2a2f3a;--border-2:#383e4b;--text:#e9ebf0;--muted:#9aa2b1;--dim:#687083;--accent:#e6a94f;--accent-2:#f3c987;--accent-ink:#1c1408;--accent-soft:#e6a94f24;--danger:#e8685b;--ok:#72c48a;--radius:8px;--radius-sm:6px;--shadow:0 12px 40px #00000073;--font:"Inter Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--display:"Cinzel Variable", "Trajan Pro", serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.4 var(--font);-webkit-font-smoothing:antialiased;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}kbd{font:600 10.5px/1 var(--font);background:var(--panel-3);border:1px solid var(--border-2);color:var(--muted);white-space:nowrap;border-bottom-width:2px;border-radius:4px;padding:2px 5px}code{background:var(--panel-3);border-radius:4px;padding:1px 5px}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.muted{color:var(--muted)}.spacer{flex:1}.app{grid-template-rows:50px 1fr 28px;height:100vh;display:grid}.workspace{min-height:0;display:flex}.stage{background:#0d0f12;flex:1;min-width:0;position:relative;overflow:hidden}.map-host{position:absolute;inset:0}.map-host canvas{outline:none;display:block}.vignette{pointer-events:none;position:absolute;inset:0}.map-chrome{pointer-events:none;color:#2c2216;position:absolute}.stage[data-style=atlas] .map-chrome,.stage[data-style=relief] .map-chrome{color:#f1ece2}.stage[data-style=political] .map-chrome{color:#2f3b48}.map-chrome.compass{filter:drop-shadow(0 1px 2px #ffffff40);opacity:.85;top:14px;right:18px}.map-chrome.scale{bottom:14px;left:16px}.scalebar{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);background:#111317b8;padding:8px 10px 6px;font-size:11px}.scale-ticks{border:1.5px solid var(--text);height:7px;display:flex}.scale-ticks i{flex:1}.scale-ticks i:nth-child(odd){background:var(--text)}.scale-label{font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:3px;font-weight:600;display:flex}.scalebar small{color:var(--muted);margin-top:2px;font-size:10px;display:block}.topbar{border-bottom:1px solid var(--border);background:linear-gradient(#1b1f26,#161920);align-items:center;gap:10px;min-width:0;padding:0 12px;display:flex}.brand{color:var(--accent-2);font:600 15px/1 var(--display);letter-spacing:.06em;white-space:nowrap;align-items:center;gap:8px;padding-right:6px;display:flex}.brand svg{color:var(--accent-2)}.project-name{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:2px;padding:2px 2px 2px 10px;display:flex}.project-name input{background:0 0;border:0;outline:none;width:170px;font-weight:600}.tb-group{border-left:1px solid var(--border);align-items:center;gap:6px;padding-left:10px;display:flex}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-2);background:var(--panel-3);height:30px;color:var(--text);white-space:nowrap;align-items:center;gap:6px;padding:0 11px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--hover);border-color:#4a5160}.btn.on{border-color:var(--accent);color:var(--accent-2)}.btn.primary{color:var(--accent-ink);background:linear-gradient(#f0b45b,#d9963b);border-color:#c98a33;font-weight:600}.btn.primary:hover{background:linear-gradient(#f5c072,#e0a14a)}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000;height:26px;padding:0 8px}.btn.ghost:hover{color:var(--text);background:var(--panel-3)}.btn.danger{color:#ffb1a8}.btn.danger:hover{border-color:var(--danger)}.btn.small{height:26px;padding:0 8px;font-size:12px}.btn:disabled{opacity:.45;cursor:default}.icon-btn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--muted);background:0 0;border:1px solid #0000;flex-shrink:0;place-items:center;transition:background .12s,color .12s;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--panel-3);color:var(--text)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.on{color:var(--accent-2);background:var(--accent-soft)}.icon-btn.small{width:24px;height:24px}.icon-btn.danger:hover:not(:disabled){color:var(--danger)}.chip{border:1px solid var(--border-2);height:26px;color:var(--muted);white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:0 10px;font-size:12px;display:inline-flex}.chip:hover{color:var(--text);border-color:#4a5160}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-2)}.chip.ghost{border-style:dashed}.chip-input{border:1px solid var(--accent);background:var(--panel-2);border-radius:999px;outline:none;width:130px;height:26px;padding:0 10px}.save-ind{color:var(--ok);white-space:nowrap;align-items:center;gap:5px;padding:0 6px;font-size:12px;display:inline-flex}.save-ind.saving{color:var(--muted)}.save-ind.error{color:var(--danger)}.popover-anchor{position:relative}.popover{z-index:50;background:var(--panel);border:1px solid var(--border-2);border-radius:var(--radius);box-shadow:var(--shadow);width:360px;max-height:calc(100vh - 90px);padding:12px;position:absolute;top:calc(100% + 8px);overflow-y:auto}.popover.left{left:0}.popover.right{right:0}.view-menu h4{text-transform:uppercase;letter-spacing:.08em;color:var(--dim);margin:12px 0 6px;font-size:11px}.view-menu h4:first-child{margin-top:0}.style-cards{grid-template-columns:1fr 1fr;gap:6px;display:grid}.style-card{text-align:left;border:1px solid var(--border-2);border-radius:var(--radius-sm);background:var(--panel-2);flex-direction:column;gap:3px;padding:8px;display:flex}.style-card:hover{border-color:#4a5160}.style-card.on{border-color:var(--accent);background:var(--accent-soft)}.style-card small{color:var(--muted);font-size:11px;line-height:1.3}.style-swatch{border-radius:4px;height:16px;margin-bottom:3px;display:flex;overflow:hidden}.style-swatch i{flex:1}.toolbar{background:var(--panel);border-right:1px solid var(--border);z-index:20;flex-direction:column;flex-shrink:0;align-items:center;gap:4px;width:54px;padding:8px 0;display:flex;overflow:visible auto}.tool-group{border-bottom:1px solid var(--border);flex-direction:column;gap:3px;padding:4px 0;display:flex}.tool-group:last-child{border-bottom:0}.tool-btn{border-radius:var(--radius);width:38px;height:38px;color:var(--muted);background:0 0;border:1px solid #0000;place-items:center;transition:background .12s,color .12s;display:grid;position:relative}.tool-btn:hover{background:var(--panel-3);color:var(--text)}.tool-btn.active{background:var(--accent-soft);color:var(--accent-2);border-color:#e6a94f8c}.tool-tip{border:1px solid var(--border-2);box-shadow:var(--shadow);border-radius:var(--radius-sm);text-align:left;z-index:100;pointer-events:none;background:#0e1014;flex-direction:column;gap:3px;width:240px;margin-top:0;padding:8px 10px;display:none;position:fixed;left:62px;transform:translateY(-50%)}.tool-tip b{color:var(--text);justify-content:space-between;display:flex}.tool-tip kbd{position:absolute;top:8px;right:10px}.tool-tip small{color:var(--muted);font-size:11.5px;line-height:1.35}.tool-btn:hover .tool-tip{display:flex}.right-panel{background:var(--panel);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:318px;min-height:0;display:flex}.right-scroll{flex:1;overflow-y:auto}.panel-section{border-bottom:1px solid var(--border)}.panel-section>header{background:var(--panel);z-index:2;align-items:center;height:38px;padding:0 8px 0 4px;display:flex;position:sticky;top:0}.section-toggle{color:var(--muted);text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:4px;padding:6px 4px;display:flex}.section-toggle h3{letter-spacing:.04em;text-transform:uppercase;color:var(--text);margin:0;font-size:12px;font-weight:600}.section-body{flex-direction:column;gap:10px;padding:4px 14px 14px;display:flex}.selection-section{background:linear-gradient(#e6a94f0f,#0000 120px)}.selection-section>header{background:#1d1d1e}.selection-section .section-toggle h3{color:var(--accent-2)}.hint{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.hint svg{vertical-align:-2px}.ctl{flex-direction:column;gap:5px;display:flex}.ctl>span,.ctl label span,.ctl.slider label{color:var(--muted);font-size:12px}.ctl.slider label{justify-content:space-between;display:flex}.ctl.slider output{color:var(--text);font-variant-numeric:tabular-nums;font-weight:500}input[type=range]{appearance:none;background:0 0;width:100%;height:18px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--accent) var(--fill,50%), var(--panel-3) var(--fill,50%));border-radius:4px;height:4px}input[type=range]::-moz-range-track{background:var(--panel-3);border-radius:4px;height:4px}input[type=range]::-moz-range-progress{background:var(--accent);border-radius:4px;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--accent);background:#f4f1ea;border-radius:50%;width:14px;height:14px;margin-top:-5px;box-shadow:0 1px 4px #00000080}input[type=range]::-moz-range-thumb{border:2px solid var(--accent);background:#f4f1ea;border-radius:50%;width:12px;height:12px}.ctl.text input,.ctl.text textarea,.ctl.number input,.ctl.select select,.meta-row input,.layer-rename,.tile-rename{background:var(--panel-2);border:1px solid var(--border-2);border-radius:var(--radius-sm);outline:none;width:100%;padding:6px 8px}.ctl.text textarea{resize:vertical;min-height:52px}.ctl.text input:focus,.ctl.text textarea:focus,.ctl.number input:focus,.ctl.select select:focus,.meta-row input:focus{border-color:var(--accent)}.number-wrap{position:relative}.number-wrap em{color:var(--dim);pointer-events:none;font-size:12px;font-style:normal;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.number-wrap input{padding-right:30px!important}.select-wrap{position:relative}.select-wrap select{appearance:none;padding-right:26px!important}.select-wrap svg{pointer-events:none;color:var(--muted);position:absolute;top:50%;right:8px;transform:translateY(-50%)}.ctl.toggle{cursor:pointer;flex-direction:row;justify-content:space-between;align-items:center;position:relative}.ctl.toggle>span{color:var(--text);font-size:12.5px}.ctl.toggle input{opacity:0;pointer-events:none;position:absolute}.ctl.toggle i{background:var(--panel-3);border:1px solid var(--border-2);border-radius:999px;flex-shrink:0;width:30px;height:17px;transition:background .15s;position:relative}.ctl.toggle i:after{content:"";background:var(--muted);border-radius:50%;width:11px;height:11px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.ctl.toggle input:checked+i{background:var(--accent-soft);border-color:var(--accent)}.ctl.toggle input:checked+i:after{background:var(--accent-2);transform:translate(13px)}.color-row{flex-wrap:wrap;gap:5px;display:flex}.swatch{border:2px solid #ffffff1f;border-radius:50%;width:22px;height:22px;padding:0}.swatch.on{box-shadow:0 0 0 2px var(--accent);border-color:#fff}.swatch.custom{cursor:pointer;border-style:dashed;border-color:#ffffff80;position:relative}.swatch.custom input{opacity:0;cursor:pointer;position:absolute;inset:0}.segmented{background:var(--panel-2);border:1px solid var(--border-2);border-radius:var(--radius-sm);flex-wrap:wrap;gap:2px;padding:2px;display:flex}.segmented button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:4px;flex:1;justify-content:center;align-items:center;gap:5px;padding:5px 8px;font-size:12px;display:inline-flex}.segmented button:hover{color:var(--text)}.segmented button.on{background:var(--panel-3);color:var(--accent-2);box-shadow:0 1px 2px #0006}.btn-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.btn-row.end{justify-content:flex-end}.grid2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.checks{flex-direction:column;gap:7px;display:flex}.kv{justify-content:space-between;gap:10px;font-size:12px;display:flex}.kv span{color:var(--muted)}.kv b{text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.z-ind{color:var(--dim);margin-left:auto;font-size:11px}.biome-grid{grid-template-columns:1fr 1fr;gap:5px;display:grid}.biome-swatch{border-radius:var(--radius-sm);border:1px solid var(--border-2);background:var(--panel-2);text-align:left;align-items:center;gap:7px;padding:5px 7px;font-size:12px;display:flex}.biome-swatch i{border:1px solid #0006;border-radius:4px;flex-shrink:0;width:16px;height:16px}.biome-swatch span{flex:1}.biome-swatch.on{border-color:var(--accent);background:var(--accent-soft)}.asset-current{border-radius:var(--radius-sm);background:var(--panel-2);border:1px solid var(--border);align-items:center;gap:10px;padding:8px;display:flex}.asset-current img,.asset-current .missing{object-fit:contain;background:radial-gradient(circle,#efe3c7 0%,#d9c9a4 100%);border-radius:6px;width:46px;height:46px;padding:3px}.asset-current .missing{color:#7a2a1a;place-items:center;font-weight:700;display:grid}.asset-current>div{flex-direction:column;flex:1;min-width:0;display:flex}.asset-current small{color:var(--muted)}.asset-current .empty{color:var(--muted);flex:1}.meta-editor{flex-direction:column;gap:5px;display:flex}.meta-head{color:var(--muted);justify-content:space-between;align-items:center;font-size:12px;display:flex}.meta-row{grid-template-columns:1fr 1.3fr auto;align-items:center;gap:4px;display:grid}.meta-row input{padding:4px 6px;font-size:12px}.layer-list,.sub-layers{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.sub-layers{border-left:1px solid var(--border-2);margin:2px 0 4px 18px;padding-left:8px}.layer-row{border-radius:var(--radius-sm);align-items:center;gap:2px;padding:1px 2px;display:flex}.layer-row:hover{background:var(--panel-2)}.layer-item.off .layer-name{color:var(--dim)}.layer-item.sub.active>.layer-row{background:var(--accent-soft)}.layer-item.sub.active .layer-name{color:var(--accent-2)}.layer-name{text-align:left;background:0 0;border:0;flex:1;justify-content:space-between;align-items:center;min-width:0;padding:5px 4px;font-size:12.5px;display:flex}.layer-name em{color:var(--dim);background:var(--panel-3);border-radius:999px;padding:0 6px;font-size:11px;font-style:normal}.layer-rename{flex:1;padding:3px 6px}.layer-detail{flex-direction:column;gap:2px;padding:4px 6px 8px 32px;display:flex}.layer-detail label{color:var(--muted);grid-template-columns:52px 1fr 36px;align-items:center;gap:6px;font-size:11.5px;display:grid}.layer-detail output{text-align:right;color:var(--text)}.layer-detail small{color:var(--dim);font-size:11px}.add-layer{margin:4px 0 2px}.asset-panel{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:304px;min-height:0;display:flex;position:relative}.asset-panel.drag-over:after{content:"Drop images to import";border:2px dashed var(--accent);border-radius:var(--radius);color:var(--accent-2);z-index:10;background:#111317d9;place-items:center;font-weight:600;display:grid;position:absolute;inset:8px}.panel-head{justify-content:space-between;align-items:center;padding:10px 10px 6px 14px;display:flex}.panel-head h2{font:600 14px/1 var(--display);letter-spacing:.06em;color:var(--accent-2);margin:0}.asset-search{background:var(--panel-2);border:1px solid var(--border-2);border-radius:var(--radius-sm);color:var(--muted);align-items:center;gap:6px;margin:0 12px 8px;padding:0 4px 0 9px;display:flex}.asset-search input{height:32px;color:var(--text);background:0 0;border:0;outline:none;flex:1}.cat-chips{flex-wrap:wrap;gap:4px;padding:0 12px 8px;display:flex}.cat-tools{gap:6px;padding:0 12px 8px;display:flex}.asset-scroll{flex:1;padding:0 12px 12px;overflow-y:auto}.asset-group h4{text-transform:uppercase;letter-spacing:.08em;color:var(--dim);margin:10px 0 6px;font-size:11px}.asset-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.asset-tile{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-2);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;gap:3px;padding:4px 4px 6px;display:flex;position:relative}.asset-tile:hover{border-color:#4a5160}.asset-tile.on{border-color:var(--accent);background:var(--accent-soft)}.asset-tile.hidden{opacity:.45}.asset-tile .thumb{aspect-ratio:1;background:radial-gradient(circle at 50% 45%,#f1e6cb 0%,#dccca6 100%);border-radius:5px;place-items:center;display:grid;position:relative;overflow:hidden}.asset-tile .thumb img{object-fit:contain;pointer-events:none;width:88%;height:88%}.badge{text-transform:uppercase;color:var(--accent-2);background:#111317cc;border-radius:3px;padding:1px 4px;font-size:9px;font-weight:700;position:absolute;top:3px;left:3px}.tile-name{color:var(--muted);text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.4em;font-size:11px;line-height:1.2;display:-webkit-box;overflow:hidden}.tile-rename{padding:2px 4px;font-size:11px}.tile-menu-btn{color:#fff;opacity:0;background:#111317bf;border:0;border-radius:4px;place-items:center;width:22px;height:22px;display:grid;position:absolute;top:4px;right:4px}.asset-tile:hover .tile-menu-btn{opacity:1}.tile-menu{z-index:60;border:1px solid var(--border-2);border-radius:var(--radius-sm);width:180px;box-shadow:var(--shadow);background:#0e1014;flex-direction:column;padding:4px;display:flex;position:fixed}.tile-menu button{text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:7px;padding:6px 8px;font-size:12px;display:flex}.tile-menu button:hover{background:var(--panel-3)}.tile-menu button.danger{color:#ffb1a8}.menu-select{color:var(--muted);flex-direction:column;gap:3px;padding:4px 8px 6px;font-size:11px;display:flex}.menu-select select{background:var(--panel-2);border:1px solid var(--border-2);border-radius:4px;padding:3px}.asset-foot{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.asset-foot small{color:var(--dim);font-size:11px}.mini-toggle{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.empty{color:var(--muted);text-align:center;padding:20px 0}.statusbar{background:var(--panel);border-top:1px solid var(--border);color:var(--muted);white-space:nowrap;align-items:center;gap:4px;padding:0 10px;font-size:11.5px;display:flex;overflow:hidden}.sb-item{border-right:1px solid var(--border);padding:0 8px}.sb-item:last-child{border-right:0}.sb-item.mono{font-variant-numeric:tabular-nums}.sb-item.land{color:#d9c38d}.sb-item.sea{color:#8fc1e6}.toast{border:1px solid var(--border-2);box-shadow:var(--shadow);z-index:30;background:#0e1014eb;border-radius:999px;max-width:80%;padding:8px 16px;animation:.18s ease-out toast-in;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.toast.error{border-color:var(--danger);color:#ffc7c0}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.busy{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40;background:#0a0c0f8c;justify-content:center;align-items:center;gap:10px;font-weight:600;display:flex;position:absolute;inset:0}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:200;background:#05060899;place-items:center;animation:.15s fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{background:var(--panel);border:1px solid var(--border-2);width:min(480px,100vw - 32px);max-height:calc(100vh - 60px);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;display:flex}.modal.wide{width:min(860px,100vw - 32px)}.modal>header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px 10px 20px;display:flex}.modal>header h2{font:600 17px/1 var(--display);letter-spacing:.05em;color:var(--accent-2);margin:0}.modal-body{flex-direction:column;gap:12px;padding:16px 20px 20px;display:flex;overflow-y:auto}.modal>footer{border-top:1px solid var(--border);padding:12px 20px}.projects-head{align-items:center;gap:8px;display:flex}.new-project{border:1px solid var(--accent);background:var(--accent-soft);border-radius:var(--radius);flex-direction:column;gap:10px;padding:14px;display:flex}.project-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.project-card{border:1px solid var(--border-2);border-radius:var(--radius);background:var(--panel-2);flex-direction:column;display:flex;overflow:hidden}.project-card.current{border-color:var(--accent)}.project-thumb{aspect-ratio:2;background:#0d0f12;border:0;padding:0;display:block}.project-thumb img,.thumb-empty{object-fit:cover;width:100%;height:100%;display:block}.thumb-empty{background:linear-gradient(135deg,#4f6f80,#2d4656)}.project-info{flex-direction:column;padding:8px 10px 0;display:flex}.project-info small{color:var(--muted);font-size:11px}.project-actions{justify-content:flex-end;gap:2px;padding:4px 6px 6px;display:flex}.export-tabs{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.export-tabs button{text-align:left;border-radius:var(--radius);border:1px solid var(--border-2);background:var(--panel-2);color:var(--muted);flex-direction:column;gap:4px;padding:12px;display:flex}.export-tabs button b{color:var(--text)}.export-tabs button small{font-size:11.5px;line-height:1.35}.export-tabs button.on{border-color:var(--accent);background:var(--accent-soft)}.export-tabs button.on svg{color:var(--accent-2)}.export-body{flex-direction:column;gap:12px;padding-top:4px;display:flex}.export-body p{margin:0}.seed-row{align-items:flex-end;gap:6px;display:flex}.seed-row .ctl{flex:1}.planet-stats{grid-template-columns:1fr 1fr;gap:8px;display:grid}.planet-stats div{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:2px;padding:8px 10px;display:flex}.planet-stats span{color:var(--muted);font-size:11px}.shortcuts{grid-template-columns:1fr 1.4fr;gap:24px;display:grid}.shortcuts h4{color:var(--accent-2);font-family:var(--display);margin:0 0 8px}.shortcuts dl{flex-direction:column;gap:6px;margin:0;display:flex}.shortcuts dl div{grid-template-columns:170px 1fr;align-items:center;gap:10px;display:grid}.shortcuts dd{color:var(--muted);margin:0}.shortcuts dt{text-align:right}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border:2px solid var(--panel);background:#2f3542;border-radius:10px}::-webkit-scrollbar-track{background:0 0}@media (width<=1200px){.topbar .chip,.brand span{display:none}}.panel-error{border:1px solid var(--danger);border-radius:var(--radius-sm);color:#ffc7c0;background:#e8685b14;flex-direction:column;gap:6px;max-width:318px;margin:8px;padding:12px;display:flex}.panel-error small{color:var(--muted)}.welcome{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-2);width:min(460px,100% - 40px);box-shadow:var(--shadow);z-index:25;background:#14161be6;border-radius:12px;padding:18px 20px;animation:.25s ease-out toast-in;position:absolute;top:18%;left:50%;transform:translate(-50%)}.welcome h3{font:600 17px/1.2 var(--display);letter-spacing:.05em;color:var(--accent-2);margin:0 0 6px}.welcome p{color:var(--muted);margin:0 0 12px;line-height:1.5}.welcome kbd{color:var(--accent-ink);background:#00000026;border-color:#00000040}.brand .beta{font:600 9.5px/1 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent);border-radius:4px;padding:3px 5px;font-style:normal}
