:root{--bg: #1d1a16;--panel: #27231d;--panel-edge: #3a342b;--ink: #ece4d4;--ink-muted: #a1968a;--amber: #f2b23d;--amber-ink: #2a1d08;--field: #171410;--font: "Alegreya Sans", "Segoe UI", system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);font-size:17px;line-height:1.4;color:var(--ink);background:var(--bg)}.app{display:grid;grid-template-columns:340px 1fr;height:100%}.panel{background:var(--panel);border-right:1px solid var(--panel-edge);overflow-y:auto;padding:20px 20px 28px;display:flex;flex-direction:column;gap:22px}.masthead h1{font-size:30px;font-weight:700;letter-spacing:-.01em;margin:0;line-height:1.1}.masthead p{margin:4px 0 0;color:var(--ink-muted)}h2{font-size:15px;font-weight:500;color:var(--ink-muted);margin:0 0 8px}.seed-form{display:flex;flex-direction:column;gap:12px}.seed-label{font-size:15px;color:var(--ink-muted);margin-bottom:-6px}.seed-row{display:flex;gap:8px}#seed{flex:1;font:inherit;font-size:24px;font-weight:500;padding:8px 12px;border:1px solid var(--panel-edge);border-radius:6px;background:var(--field);color:var(--ink);min-width:0}#seed:focus-visible,select:focus-visible,button:focus-visible,input[type=checkbox]:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.grid2 label{display:flex;flex-direction:column;gap:4px;font-size:15px;color:var(--ink-muted)}select{font:inherit;font-size:16px;padding:6px 8px;background:var(--field);color:var(--ink);border:1px solid var(--panel-edge);border-radius:6px}.dlc-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;font-size:15px}.dlc-row label{display:inline-flex;gap:6px;align-items:center}.hint{color:var(--ink-muted);font-size:14px}button{font:inherit;font-size:16px;padding:7px 12px;border-radius:6px;border:1px solid var(--panel-edge);background:#332d25;color:var(--ink);cursor:pointer}button:hover{background:#3d362c}button.primary{background:var(--amber);color:var(--amber-ink);border-color:transparent;font-weight:700;font-size:18px;padding:10px 14px}button.primary:hover{background:#ffc24d}button:disabled{opacity:.6;cursor:progress}.progress{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--ink-muted)}.progress .bar{height:4px;background:var(--amber);width:0;border-radius:2px;transition:width .12s linear}.key .howto{margin:0 0 10px;font-size:15px}.key-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.key-list p{margin:2px 0 0 26px;font-size:14px;line-height:1.35;color:var(--ink-muted)}.key-toggle{display:flex;align-items:center;gap:8px;font-size:16px;cursor:pointer}.key-static .key-toggle{cursor:default}.key-spacer{width:13px;flex:none}.key-icon{width:28px;height:16px;flex:none}.key-name{color:var(--ink)}.key .hint{margin:10px 0 0}.tile dt[title]{cursor:help;text-decoration:underline dotted rgba(161,150,138,.6);text-underline-offset:3px}.tile dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:16px}.tile dt{color:var(--ink-muted)}.tile dd{margin:0;font-variant-numeric:tabular-nums}.tile .biome-name{font-size:22px;font-weight:500;grid-column:1 / -1;margin-bottom:4px}.tile .biome-desc{grid-column:1 / -1;color:var(--ink-muted);font-size:14px;line-height:1.35;margin-bottom:6px}.tile .tile-rule{grid-column:1 / -1;border-top:1px solid var(--panel-edge);margin:5px 0}.tile .empty{color:var(--ink-muted);margin:0}.legend ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:15px}.legend li{display:flex;align-items:center;gap:8px}.legend i{display:inline-block;width:14px;height:14px;border-radius:3px;flex:none}.about{margin-top:auto;font-size:14px;color:var(--ink-muted)}.about p{margin:0 0 8px}.map{position:relative;overflow:hidden;background:#15120f}#canvas{width:100%;height:100%;display:block;cursor:crosshair;touch-action:none}.map-tools{position:absolute;top:12px;right:12px;display:flex;gap:8px}.map-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--ink-muted);font-size:20px;pointer-events:none}.map-empty[hidden]{display:none}@media(max-width:760px){.app{grid-template-columns:1fr;grid-template-rows:55vh 1fr}.panel{order:2;border-right:0;border-top:1px solid var(--panel-edge);padding:16px;gap:16px}.map{order:1}.legend ul{grid-template-columns:1fr 1fr 1fr}}@media(prefers-reduced-motion:reduce){.progress .bar{transition:none}}.preview{position:absolute;right:12px;bottom:12px;width:420px;max-width:calc(100% - 24px);max-height:calc(100% - 70px);overflow:auto;background:var(--panel);border:1px solid var(--panel-edge);border-radius:8px;padding:12px 14px 14px;display:flex;flex-direction:column;gap:10px}.preview[hidden]{display:none}.preview header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.preview.large{top:12px;right:12px;bottom:12px;left:12px;width:auto;max-width:none;max-height:none;overflow:hidden}.preview.large .preview-canvas-wrap{flex:1;aspect-ratio:auto;min-height:0}.preview.large .preview-stats{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}#preview-canvas{touch-action:none}.timing{font-size:14px;color:var(--ink-muted)}.timing summary{cursor:pointer}.timing summary:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.timing-table{border-collapse:collapse;margin:4px 0 0 14px;font-variant-numeric:tabular-nums}.timing-table td{padding:1px 0}.timing-table td:last-child{text-align:right;padding-left:14px;color:var(--ink)}.goto-row{display:flex;gap:8px}.goto-row input{flex:1;min-width:0;font:inherit;font-size:16px;padding:6px 10px;border:1px solid var(--panel-edge);border-radius:6px;background:var(--field);color:var(--ink)}.goto-row input:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.goto .hint{margin:6px 0 0}.preview header h2{margin:0;flex:1 1 100%;color:var(--ink);font-size:17px}.preview header label{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--ink-muted)}.preview header select{font-size:14px;padding:3px 6px}.preview-toggle{display:flex;align-items:center;gap:5px;font-size:14px;color:var(--ink-muted)}.preview-canvas-wrap{position:relative;aspect-ratio:1 / 1;width:100%;background:#0f0d0a;border-radius:4px;overflow:hidden}#preview-canvas{width:100%;height:100%;image-rendering:pixelated;display:block;cursor:crosshair}.preview-progress{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#15120fcc;color:var(--ink-muted);font-size:15px}.preview-progress[hidden]{display:none}.preview-cell{margin:0;font-size:15px;min-height:1.4em}.preview-stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:3px 12px;font-size:14px}.preview-stats li{display:flex;align-items:center;gap:6px}.preview-stats i{display:inline-block;width:11px;height:11px;border-radius:2px;flex:none}.preview-stats b{font-weight:500;margin-left:auto;font-variant-numeric:tabular-nums}.preview-note{margin:0;font-size:13px;color:var(--ink-muted)}@media(max-width:760px){.preview{right:8px;bottom:8px;width:calc(100% - 16px);max-height:calc(100% - 16px)}}
