:root{--bg: #f6f3ea;--bg-strong: #efe7d7;--ink: #1a1a1a;--muted: #58524b;--accent: #d1495b;--accent-dark: #7a2b35;--gold: #f4c542;--surface: #fffaf0;--border: rgba(26, 26, 26, .15);--shadow: 0 24px 60px rgba(26, 26, 26, .12)}*{box-sizing:border-box}body{margin:0;font-family:Space Grotesk,sans-serif;color:var(--ink);background:radial-gradient(circle at top left,#f9f4e6,#efe7d7 45%,#f6f3ea);min-height:100vh}#root{min-height:100vh}.page{padding:32px clamp(16px,3vw,48px) 48px;position:relative;overflow:hidden}.page:before,.page:after{content:"";position:absolute;border-radius:999px;filter:blur(0px);z-index:0}.page:before{width:420px;height:420px;background:radial-gradient(circle,rgba(209,73,91,.25),transparent 70%);top:-120px;right:-80px}.page:after{width:520px;height:520px;background:radial-gradient(circle,rgba(244,197,66,.25),transparent 65%);bottom:-200px;left:-180px}.hero{display:grid;grid-template-columns:minmax(0,1fr);gap:32px;align-items:center;position:relative;z-index:1;animation:fadeUp .8s ease-out}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;color:var(--accent-dark);margin:0 0 8px}h1{font-family:Fraunces,serif;font-size:clamp(2.2rem,3vw,3.4rem);margin:0 0 12px}.subtitle{margin:0;color:var(--muted);max-width:none}.layout{margin-top:36px;display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:32px;position:relative;z-index:1}.panel{background:var(--surface);border-radius:24px;border:1px solid var(--border);padding:24px;box-shadow:var(--shadow)}.panel-head h2{font-family:Fraunces,serif;margin:0 0 8px}.panel-head p{margin:0 0 16px;color:var(--muted)}.mode-toggle{display:flex;gap:8px;padding:6px;border-radius:999px;border:1px solid var(--border);background:var(--bg-strong);margin-bottom:16px}.auto-run{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:16px;border:1px solid rgba(26,26,26,.1);background:#fffdf8;margin-bottom:16px}.auto-title{font-weight:600}.auto-desc{font-size:.85rem;color:var(--muted)}.switch{position:relative;display:inline-block;width:46px;height:26px;flex:none}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#d3c7b7;transition:background .2s ease;border-radius:999px;box-shadow:inset 0 0 0 1px #1a1a1a26}.slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;top:3px;background:#fff;transition:transform .2s ease;border-radius:999px;box-shadow:0 4px 10px #1a1a1a33}.switch input:checked+.slider{background:var(--accent)}.switch input:checked+.slider:before{transform:translate(20px)}.toggle-btn{flex:1;border:none;border-radius:999px;padding:8px 12px;font-family:inherit;font-weight:600;background:transparent;color:var(--muted);cursor:pointer;transition:all .2s ease}.toggle-btn.active{background:var(--ink);color:#fff;box-shadow:0 10px 20px #1a1a1a40}.param-list{display:grid;gap:16px}.param{border:1px solid rgba(26,26,26,.08);padding:12px;border-radius:16px;background:#fffdf8}.param-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.param-label{font-weight:600}.param-desc{font-size:.85rem;color:var(--muted)}.param-input{width:90px;padding:6px 8px;border:1px solid var(--border);border-radius:10px;background:#fff;font-family:inherit}.param-range{width:100%;margin-top:8px;accent-color:var(--accent)}.panel-actions{display:flex;gap:12px;margin-top:20px}.btn{border:none;border-radius:999px;padding:10px 18px;font-family:inherit;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 12px 24px #d1495b4d}.btn.primary:hover{transform:translateY(-1px)}.btn.primary:disabled{opacity:.7;cursor:default;box-shadow:none}.btn.ghost{background:transparent;border:1px solid var(--border);color:var(--ink)}.error{margin-top:16px;padding:12px;background:#d1495b1f;border-radius:12px;color:var(--accent-dark);font-size:.9rem}.tip{margin-top:16px;font-size:.85rem;color:var(--muted)}.plots{display:grid;gap:24px}.plot-card{background:#fffaf0b3;border-radius:24px;border:1px solid var(--border);padding:12px;min-height:360px;box-shadow:var(--shadow);animation:fadeUp .8s ease-out}.plot-placeholder,.plot-loading{min-height:320px;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:.95rem;padding:24px}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 980px){.hero,.layout{grid-template-columns:1fr}}@media (max-width: 640px){.page{padding:24px 16px 32px}.panel-actions{flex-direction:column}}
