:root{--bg:#050d14;--surface:#0b1a25;--surface-2:#10232f;--surface-3:#15303e;--line:#94c5d424;--text:#e6f1f5;--muted:#8aa4b0;--accent:#5eead4;--accent-ink:#032420;--lime:#a3e635;--amber:#fbbf24;--coral:#fb7185;--radius:12px;--shadow:0 10px 30px #00000059;--font:"Inter", system-ui, -apple-system, "Segoe UI", "Noto Sans KR", "Noto Sans JP", "Noto Sans SC", "Noto Sans Thai", sans-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:14px/1.45 var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior:none}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:12px}.warn{color:var(--amber)}.ok{color:var(--lime)}.num{font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.row{align-items:center;display:flex}.gap{gap:8px}.between{justify-content:space-between}.end{justify-content:flex-end}.grow{flex:1;min-width:0}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dot{vertical-align:middle;border-radius:50%;width:9px;height:9px;margin-right:4px;display:inline-block}.chip{background:var(--surface-3);color:var(--muted);border:0;border-radius:999px;margin:2px 2px 0 0;padding:1px 8px;font-size:11px;display:inline-block}.chip.link{cursor:pointer;color:var(--text)}.chip.link:disabled{opacity:.5;cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;color:var(--text);white-space:nowrap;border-radius:9px;align-items:center;gap:6px;padding:7px 12px;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-3)}.btn.sm{padding:5px 9px;font-size:13px}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:600}.btn.primary:hover{filter:brightness(1.08)}.btn.primary:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{background:0 0}.btn.on{border-color:var(--amber);color:var(--amber)}.icon-btn{cursor:pointer;width:36px;height:36px;color:var(--text);background:0 0;border:1px solid #0000;border-radius:10px;place-items:center;list-style:none;display:inline-grid}.icon-btn:hover{background:var(--surface-3)}.icon-btn.on{background:var(--accent);color:var(--accent-ink)}.icon-btn:disabled{opacity:.4}.icon-btn.primary{background:var(--accent);color:var(--accent-ink)}.link{cursor:pointer;color:var(--text);text-align:left;background:0 0;border:0;padding:0;font-size:16px;font-weight:600}input[type=number],input:not([type]),select,textarea,.note-input{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:6px 8px}input[type=range]{width:100%;accent-color:var(--accent)}.app{grid-template:"top"52px"stage"1fr"dock"/1fr;height:100dvh;display:grid}.app.panel-open{grid-template-columns:1fr 340px;grid-template-areas:"top top""stage panel""dock panel"}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5;background:#0b1a25eb;grid-area:top;align-items:center;gap:10px;min-width:0;padding:0 10px;display:flex}.brand{color:var(--text);letter-spacing:.2px;align-items:center;gap:8px;font-weight:700;text-decoration:none;display:flex}.world-title{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;min-width:0;max-width:300px;padding:4px 8px;display:flex}.world-title:hover{border-color:var(--line)}.transport{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:4px;margin-left:auto;padding:3px;display:flex}.transport select{background:0 0;border:0}.top-actions{align-items:center;gap:6px;display:flex}.save-state{text-align:right;min-width:60px}.menu-wrap{position:relative}.menu{background:var(--surface-2);border:1px solid var(--line);box-shadow:var(--shadow);z-index:20;border-radius:12px;min-width:210px;padding:6px;display:grid;position:absolute;top:42px;right:0}.menu>button,.menu>a,.menu-lang{text-align:left;cursor:pointer;color:var(--text);background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;text-decoration:none;display:flex}.menu>button:hover,.menu>a:hover{background:var(--surface-3)}.menu-lang select{flex:1}.stage{background-image:radial-gradient(#94c5d414 1px,#0000 1px);background-size:22px 22px;grid-area:stage;min-height:0;position:relative;overflow:hidden}.world-canvas{touch-action:none;cursor:default;width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.world-canvas.tool-pan{cursor:grab}.world-canvas.tool-food,.world-canvas.tool-erase-food,.world-canvas.tool-place,.world-canvas.tool-remove{cursor:crosshair}.tool-rail{border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:3;background:#0b1a25e6;border-radius:14px;flex-direction:column;gap:4px;padding:6px;display:flex;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.tool-rail hr{border:0;border-top:1px solid var(--line);width:auto;margin:2px 4px}.overlay-pop{position:relative}.overlay-pop summary::-webkit-details-marker{display:none}.overlay-pop .pop{background:var(--surface-2);border:1px solid var(--line);min-width:200px;box-shadow:var(--shadow);border-radius:12px;gap:6px;padding:10px 12px;display:grid;position:absolute;top:-60px;left:46px}.hud{border:1px solid var(--line);z-index:2;white-space:nowrap;background:#0b1a25d9;border-radius:999px;gap:12px;padding:6px 12px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.toggle-buttons{z-index:2;gap:6px;display:flex;position:absolute;bottom:12px;right:12px}.side-panel{border-left:1px solid var(--line);background:var(--surface);flex-direction:column;grid-area:panel;min-height:0;display:flex}.tabs{border-bottom:1px solid var(--line);grid-template-columns:repeat(5,1fr);display:grid}.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:12px 4px;font-size:13px;font-weight:600}.tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.panel-body{flex:1;min-height:0;padding:14px;overflow:auto}.dock{border-top:1px solid var(--line);background:var(--surface);grid-area:dock;max-height:42vh;overflow:auto}.empty{text-align:center;color:var(--muted);padding:30px 10px}.empty img{opacity:.9;border-radius:16px}.insp-head{align-items:center;gap:12px;margin-bottom:10px;display:flex}.portrait{border-radius:12px}.meter{margin:8px 0}.meter-top{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.meter-bar{background:var(--surface-3);border-radius:4px;height:6px;overflow:hidden}.meter-bar i{height:100%;display:block}.kv{grid-template-columns:auto 1fr;gap:4px 12px;margin:10px 0;font-size:13px;display:grid}.kv dt{color:var(--muted)}.kv dd{text-align:right;margin:0}h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:16px 0 6px;font-size:12px}.genes{gap:4px;margin:0;padding:0;list-style:none;display:grid}.genes li{grid-template-columns:96px 1fr 60px;align-items:center;gap:8px;font-size:12px;display:grid}.genes .bar{background:var(--surface-3);border-radius:4px;height:6px;overflow:hidden}.genes .bar i{background:var(--accent);height:100%;display:block}.genes .num{text-align:right;color:var(--muted)}.lineage>div{margin:4px 0}.note{background:var(--surface-2);color:var(--muted);border-radius:10px;margin-top:12px;padding:10px;font-size:12px}.param{margin:10px 0;display:block}.param-top{justify-content:space-between;font-size:13px;font-weight:600;display:flex}.param output.warn{color:var(--amber)}.help{color:var(--muted);font-size:11.5px;display:block}.toggles{gap:8px;margin:14px 0;display:grid}.switch{cursor:pointer;align-items:center;gap:8px;display:flex}.select{gap:4px;font-size:13px;font-weight:600;display:grid}.disasters{border:1px solid #fb923c59;border-radius:12px;margin-top:14px;padding:10px 12px}.disasters legend{padding:0 6px;font-weight:600}.disaster-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.rec-dot{background:var(--coral);border-radius:50%;width:9px;height:9px;animation:1s infinite pulse;display:inline-block}@keyframes pulse{50%{opacity:.3}}.restart{border:1px dashed var(--line);border-radius:12px;margin-top:14px;padding:10px 12px}.restart legend{padding:0 6px;font-weight:600}.species-list,.extinct-list,.event-list,.legend,.save-list,.share-targets,.scenario-grid{margin:0;padding:0;list-style:none}.species-list li{margin-bottom:8px}.species-list li.on .species-card{border-color:var(--amber)}.species-card{text-align:left;border:1px solid var(--line);background:var(--surface-2);cursor:pointer;border-radius:12px;gap:10px;width:100%;padding:8px;display:flex}.species-card img{border-radius:10px}.mini-genes{align-items:flex-end;gap:2px;height:24px;margin-top:4px;display:flex}.mini-genes i{background:var(--accent);opacity:.7;border-radius:2px;width:6px}.note-input{width:100%;margin-top:4px;font-size:12px}.extinct-list li{padding:3px 0;font-size:13px}.event-list li{border-bottom:1px solid var(--line);grid-template-columns:18px 52px 1fr;gap:6px;padding:5px 0;font-size:12.5px;display:grid}.event-list li.major .ev-text{color:var(--text)}.event-list li:not(.major),.ev-tick{color:var(--muted)}.ev-species-extinct .ev-icon,.ev-ecosystem-collapse .ev-icon{color:var(--coral)}.ev-species-emerged .ev-icon{color:var(--lime)}.stats-dock{padding:10px 14px 14px}.kpis{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:8px;display:grid}.kpi{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:6px 10px;display:grid}.kpi strong{font-size:18px}.charts{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.charts section{min-width:0}h5{color:var(--muted);margin:4px 0;font-size:12px;font-weight:600}h5 select{padding:2px 4px;font-size:12px}.chart{width:100%;display:block}.legend{color:var(--muted);flex-wrap:wrap;gap:4px 10px;font-size:11px;display:flex}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#02080ca8;place-items:center;padding:16px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:var(--surface);border:1px solid var(--line);width:min(560px,100%);max-height:calc(100dvh - 32px);box-shadow:var(--shadow);border-radius:18px;overflow:auto}.modal.wide{width:min(1040px,100%)}.modal-head{border-bottom:1px solid var(--line);background:var(--surface);z-index:1;justify-content:space-between;align-items:center;padding:14px 18px;display:flex;position:sticky;top:0}.modal-head h2{margin:0;font-size:18px}.modal-body{gap:12px;padding:16px 18px;display:grid}.scenario-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.scenario-card{text-align:left;border:1px solid var(--line);background:var(--surface-2);cursor:pointer;border-radius:14px;width:100%;padding:0;transition:transform .12s,border-color .12s;display:block;overflow:hidden}.scenario-card:hover{border-color:var(--accent);transform:translateY(-2px)}.scenario-card img{object-fit:cover;width:100%;height:130px;display:block}.sc-body{padding:10px 12px}.sc-body p{color:var(--muted);margin:4px 0 0}.diff{color:var(--amber);letter-spacing:2px;font-size:11px}.insight{color:var(--lime)!important}.seed-row input{width:140px}.onboard{text-align:center}.onboard img{border-radius:20px;max-width:100%;height:auto}.onboard h3{margin:10px 0 4px}.dots{justify-content:center;gap:6px;margin:10px 0;display:flex}.dots i{background:var(--surface-3);border-radius:50%;width:8px;height:8px}.dots i.on{background:var(--accent)}.save-list li{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 0;display:flex}.share-targets{flex-wrap:wrap;gap:6px;display:flex}.ai-text p{margin:0 0 8px}.toasts{z-index:60;gap:6px;display:grid;position:fixed;top:62px;right:14px}.toast{background:var(--surface-3);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;max-width:360px;padding:8px 14px}.toast.err{border-color:var(--coral)}@media (max-width:1200px){.charts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.app,.app.panel-open{grid-template:"top"52px"stage"1fr"panel""dock"/1fr}.side-panel{border-left:0;border-top:1px solid var(--line);max-height:46vh}.hide-sm,.save-state,.world-title .muted{display:none}.world-title{max-width:110px}.brand span{display:none}.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.charts{grid-template-columns:1fr}.tool-rail{flex-direction:row;max-width:calc(100% - 20px);top:10px;left:50%;overflow-x:auto;transform:translate(-50%)}.tool-rail hr{border-top:0;border-left:1px solid var(--line);margin:4px 2px}.overlay-pop .pop{top:44px;left:auto;right:-40px}.hud{gap:8px;font-size:11px;bottom:54px}.toggle-buttons{left:50%;right:auto;transform:translate(-50%)}}@media (max-width:560px){.topbar{gap:6px;padding:0 6px}.world-title,.transport .step-btn{display:none}.transport{gap:2px;margin-left:auto;padding:2px}.transport .icon-btn,.top-actions .icon-btn{width:32px;height:32px}.top-actions{gap:4px}.top-actions .btn.sm{padding:6px 7px}.transport select{padding:4px 2px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.daily-card{background:linear-gradient(135deg,#5eead41f,#a3e6350f);border:1px solid #5eead459;border-radius:14px;gap:6px;padding:12px;display:grid}.daily-card p{margin:0}.mission-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.mission-list li{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;gap:10px;padding:8px 10px;display:flex}.mission-list li.done{border-color:#fbbf2480}.mission-list li.done .m-icon{color:var(--amber)}.m-icon{color:var(--muted);font-size:18px}.tier{color:var(--amber);letter-spacing:1px;font-size:10px}.meter-bar.thin{height:4px;margin-top:4px}.toast.mission{border-color:var(--amber)}.site-foot{color:var(--muted);border-top:1px solid var(--line);padding:12px 16px 16px;font-size:11.5px;line-height:1.6}.site-foot a{color:var(--muted)}.presence{align-items:center;gap:12px;display:inline-flex}.live-dot{background:var(--lime);border-radius:50%;width:7px;height:7px;margin-right:4px;display:inline-block}
