:root{color-scheme:dark;--background:#10241a;--panel:#121b1e;--canvas:#080e10;--border:#2a393d;--line:#233136;--text:#edf4f2;--muted:#9bafb0;--accent:#9df2bb;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*,:after,:before{box-sizing:border-box}body{min-width:300px;background:var(--background);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased}body,h1,p{margin:0}button,input,textarea{font:inherit}button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:8px;padding:0 14px;border:1px solid var(--border);border-radius:8px;background:#192427;color:var(--text);font-size:.875rem;font-weight:600;white-space:nowrap;cursor:pointer}button:hover:not(:disabled){border-color:#4b6668;background:#243538}button:disabled{opacity:.45;cursor:default}button svg{width:16px;height:16px;flex:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app-shell{width:min(100%,1440px);margin-inline:auto;padding:clamp(24px,3.4vw,55px) clamp(16px,4vw,56px) 24px}.app-header{margin-bottom:clamp(22px,2.6vw,36px)}h1{font-size:clamp(1.45rem,2.8vw,2.1rem);font-weight:650;letter-spacing:-.045em;line-height:1.03;text-wrap:balance}.workspace{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(292px,1fr);align-items:stretch;gap:clamp(14px,2vw,24px)}.pattern-panel,.simulation-panel{display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:16px;background:var(--panel);box-shadow:0 18px 60px #0003,inset 0 1px #ffffff08}.panel-header{padding:16px clamp(14px,2vw,22px)}.stats{display:flex;gap:clamp(10px,2vw,24px);margin:0}.stat,.stats{min-width:0}.stat+.stat{padding-left:clamp(9px,1.55vw,20px);border-left:1px solid var(--border)}.stat-label{display:block;color:var(--muted);font:600 .68rem/1.45 var(--mono);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}.stat-value{display:block;margin:3px 0 0;color:var(--accent);font:600 clamp(.95rem,1.5vw,1.22rem)/1.2 var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.canvas-shell{position:relative;height:clamp(310px,51svh,560px);margin-inline:clamp(12px,1.5vw,18px);isolation:isolate;overflow:hidden;border-radius:11px;background:var(--canvas);box-shadow:0 0 0 1px var(--line)}.canvas-shell canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none;cursor:grab}.canvas-shell[data-dragging=true] canvas{cursor:grabbing}.canvas-shell canvas:focus-visible{outline-offset:-3px}.canvas-tools{position:absolute;top:12px;right:12px;display:flex;gap:2px;padding:3px;border:1px solid #364a4d;border-radius:9px;background:#152024;box-shadow:0 5px 18px #0005}.canvas-tools button{min-width:36px;min-height:34px;padding-inline:8px;border-color:transparent;border-radius:5px;background:transparent}.canvas-status{position:absolute;bottom:12px;left:12px;padding:5px 8px;border:1px solid #283e41;border-radius:5px;background:#101b1de8;color:#b5c6c7;font:.69rem/1.4 var(--mono);pointer-events:none}.canvas-status[data-state=empty]{top:50%;right:20px;bottom:auto;left:20px;width:fit-content;max-width:calc(100% - 40px);margin-inline:auto;padding:10px 14px;transform:translateY(-50%);text-align:center}.transport{display:flex;min-height:72px;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;padding:13px clamp(14px,2vw,22px)}.editor-actions,.transport-buttons{display:flex;flex-wrap:wrap;gap:8px}.play-button,.primary-button{border-color:var(--accent);background:var(--accent);color:#102219;font-weight:700}.play-button:hover:not(:disabled),.primary-button:hover:not(:disabled){border-color:#c3ffd6;background:#c3ffd6}.play-button{min-width:92px}.speed-control{display:flex;min-width:0;align-items:center;gap:9px;color:var(--muted);font-size:.8rem}.speed-control input{width:clamp(74px,10vw,132px);min-height:32px;margin:0;accent-color:var(--accent);cursor:pointer}.speed-control output{min-width:7ch;color:var(--text);font:.75rem/1.3 var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.panel-footer{padding:11px clamp(14px,2vw,22px) 13px;border-top:1px solid var(--line);color:var(--muted);font-size:.75rem;line-height:1.5}.tabs{display:flex;gap:4px;margin:16px clamp(14px,2vw,22px) 0;padding:3px;border:1px solid var(--line);border-radius:9px;background:#0e171a}.tabs button{min-width:0;min-height:34px;flex:1 1;padding-inline:7px;border-color:transparent;border-radius:6px;background:transparent;color:var(--muted);white-space:normal}.tabs button[aria-selected=true]{border-color:#344b4d;background:#203032;color:var(--text)}.editor-body{display:flex;min-height:310px;flex:1 1;flex-direction:column;gap:11px;padding:16px clamp(14px,2vw,22px)}.field-label{display:block;color:var(--muted);font-size:.8rem;font-weight:550}.life-editor{display:block;width:100%;min-height:188px;flex:1 1;padding:14px 12px;border:1px solid var(--border);border-radius:9px;background:#0c1416;color:#e0eee8;font:.83rem/1.7 var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;resize:vertical}.life-editor::placeholder{color:var(--muted);opacity:1}.life-editor:focus-visible{border-color:#6da98a;outline-offset:1px}.message{color:#c1d8cc;font-size:.78rem;line-height:1.45;overflow-wrap:anywhere}.message:empty{display:none}.message[role=alert]{color:#ffb5ac}.editor-actions button{flex:1 1}@media (max-width:880px){.workspace{grid-template-columns:minmax(0,1fr)}.life-editor{min-height:220px}}@media (max-width:530px){.canvas-shell{height:clamp(270px,48svh,420px)}.transport{align-items:flex-start}.speed-control{width:100%}.speed-control input{width:auto;flex:1 1}}@media (max-width:365px){.stat-label{font-size:.62rem;letter-spacing:0}.transport-buttons button{gap:5px;padding-inline:7px;font-size:.8rem}.play-button{min-width:0}}