.sim{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);grid-template:"stage panel""readouts panel"1fr"below below"/minmax(0,1fr) 340px;gap:18px;padding:clamp(12px,2vw,20px);display:grid}.sim>*,.sim-below>*{min-width:0}.sim--no-panel{grid-template:"stage""readouts""below"/minmax(0,1fr)}.sim-stage-wrap{flex-direction:column;grid-area:stage;gap:12px;min-width:0;display:flex}.sim-stage{aspect-ratio:var(--stage-aspect,16 / 10);border-radius:var(--radius);border:1px solid var(--border);background:var(--sim-bg);position:relative;overflow:hidden}.sim-canvas{cursor:crosshair;width:100%;height:100%}.sim-overlay{text-align:center;pointer-events:none;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.sim-overlay-card{border-radius:var(--radius);background:color-mix(in srgb, var(--bg-elev) 90%, transparent);border:1px solid var(--border);max-width:360px;box-shadow:var(--shadow-lg);pointer-events:auto;animation:sim-pop .4s var(--ease);padding:16px 20px}.sim-overlay-card p{margin:0 0 10px}.sim-overlay-card p:last-child{margin:0}.sim-overlay-card strong{font-family:var(--font-display);margin-bottom:4px;font-size:1.15rem;display:block}@keyframes sim-pop{0%{opacity:0;transform:scale(.96)}}.sim-hint{background:color-mix(in srgb, var(--bg-elev) 85%, transparent);border:1px solid var(--border);color:var(--text-muted);pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.78rem;display:flex;position:absolute;bottom:12px;left:12px}.sim-badge{font-family:var(--font-mono);background:color-mix(in srgb, var(--bg-elev) 88%, transparent);border:1px solid var(--border);pointer-events:none;border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:600;position:absolute;top:12px;right:12px}.sim-tooltip{z-index:5;background:var(--bg-elev);border:1px solid var(--border-strong);max-width:260px;box-shadow:var(--shadow-lg);pointer-events:none;animation:sim-pop .2s var(--ease);border-radius:12px;padding:12px 14px;font-size:.88rem;line-height:1.5;position:absolute}.sim-tooltip strong{font-family:var(--font-display);color:var(--accent);margin-bottom:2px;display:block}.sim-error{z-index:8;text-align:center;background:var(--surface-2);place-items:center;padding:24px;display:grid;position:absolute;inset:0}.sim-loading{z-index:6;background:var(--sim-bg);color:var(--text-muted);justify-content:center;align-items:center;gap:12px;font-size:.95rem;display:flex;position:absolute;inset:0}.spinner{border:3px solid var(--surface-3);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s!important;animation-iteration-count:infinite!important}}.sim-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sim-toolbar .spacer{flex:1}.sim-time{font-family:var(--font-mono);color:var(--text-muted);font-size:.85rem}[data-play] .i-play{display:none}[data-play][aria-pressed=false] .i-play{display:block}[data-play][aria-pressed=false] .i-pause{display:none}.sim-panel{border-radius:var(--radius);background:var(--bg-elev);border:1px solid var(--border);flex-direction:column;grid-area:panel;align-self:start;gap:20px;min-width:0;padding:18px;display:flex}.sim-panel h3{font-size:.78rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text-faint);margin:0 0 8px;font-weight:500}.ctrl{gap:4px;display:grid}.ctrl-row{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.ctrl-row label,.ctrl-label{font-size:.93rem;font-weight:600}.ctrl output{font-family:var(--font-mono);color:var(--accent);white-space:nowrap;font-size:.85rem}.ctrl-help{color:var(--text-faint);margin:0;font-size:.82rem;line-height:1.45}.ctrl-scale{color:var(--text-faint);font-size:.72rem;font-family:var(--font-mono);justify-content:space-between;display:flex}.segmented-full{border-radius:16px;flex-wrap:wrap;width:100%;display:flex}.segmented-full label{text-align:center;flex:1}.segmented-full span{border-radius:12px;place-items:center;height:100%;padding:8px 6px;font-size:.85rem;line-height:1.25;display:grid}.preset-row{flex-wrap:wrap;gap:6px;display:flex}.preset{border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:border-color var(--dur) var(--ease), background-color var(--dur) var(--ease), transform var(--dur) var(--ease);border-radius:999px;padding:6px 10px;font-size:.8rem;font-weight:600}.preset:hover{border-color:var(--accent);transform:translateY(-1px)}.preset:active{transform:scale(.96)}.preset[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.toggle{cursor:pointer;align-items:center;gap:10px;font-size:.92rem;display:flex}.toggle input{width:18px;height:18px;accent-color:var(--accent)}.sim-readouts{grid-area:readouts;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-self:start;gap:10px;margin:0;display:grid}.readout{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.readout dt{color:var(--text-faint);font-size:.75rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em}.readout dd{font-family:var(--font-display);font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:1.1rem;font-weight:650}.readout.is-key dd{color:var(--accent)}.tone-ok{color:var(--success)!important}.tone-warn{color:var(--warning)!important}.tone-bad{color:var(--danger)!important}.sim-below{grid-area:below;gap:18px;min-width:0;display:grid}.sim-graph,.sim-table{border-radius:var(--radius);background:var(--bg-elev);border:1px solid var(--border);min-width:0;padding:14px}.sim-graph-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.sim-graph-head h3{align-items:center;gap:8px;margin:0;font-size:1rem;display:flex}.sim-graph canvas{width:100%;height:220px}.graph-legend{color:var(--text-muted);flex-wrap:wrap;gap:6px 16px;margin:8px 0 0;padding:0;font-size:.82rem;list-style:none;display:flex}.graph-legend li{align-items:center;gap:6px;display:flex}.graph-legend .swatch{border-radius:2px;width:16px;height:3px}.graph-legend .swatch.dot{border-radius:50%;width:8px;height:8px}.sim-table .table-wrap{max-height:280px;margin:0;overflow:auto}.sim-table table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9rem}.sim-table th,.sim-table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 12px}.sim-table th{background:var(--surface-2);font-family:var(--font-display);position:sticky;top:0}.sim-table .empty-row td{color:var(--text-faint);text-align:center;padding:18px}.sim-table tr.is-new{animation:row-in .9s var(--ease)}@keyframes row-in{0%{background:var(--accent-soft)}}.sim-key{color:var(--text-muted);gap:8px;margin:0;padding:0;font-size:.85rem;list-style:none;display:grid}.sim-key li{align-items:center;gap:8px;display:flex}.key-swatch{background:var(--c);border-radius:50%;flex:none;width:12px;height:12px}.key-ring{border:3px solid var(--c);background:0 0}.key-square{border:3px solid var(--c);background:0 0;border-radius:3px}.key-line{border-radius:2px;width:16px;height:3px}.sim-3d{position:absolute;inset:0}.sim-3d canvas{cursor:grab;outline:none;display:block;width:100%!important;height:100%!important}.sim-3d canvas:active{cursor:grabbing}.sim-3d canvas:focus-visible{box-shadow:inset 0 0 0 3px var(--accent)}.sim-3d-activate{z-index:4;background:color-mix(in srgb, var(--sim-bg) 35%, transparent);color:var(--text);font:inherit;cursor:pointer;border:0;place-items:center;display:grid;position:absolute;inset:0}.sim-3d-activate span{background:var(--bg-elev);border:1px solid var(--border-strong);box-shadow:var(--shadow);border-radius:999px;padding:10px 16px;font-size:.9rem;font-weight:600}.sim-3d-tools{z-index:5;gap:6px;display:flex;position:absolute;top:12px;left:12px}.sim-3d-tools button{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-elev) 90%, transparent);min-width:36px;height:36px;color:var(--text);cursor:pointer;border-radius:10px;place-items:center;padding:0 10px;font-size:.85rem;font-weight:700;display:grid}.sim-3d-tools button:hover{border-color:var(--accent)}@media (width<=980px){.sim{grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-template-areas:"stage""panel""readouts""below"}.sim--no-panel{grid-template-areas:"stage""readouts""below"}.sim-panel{align-self:stretch}}@media (width<=560px){.sim-stage{aspect-ratio:var(--stage-aspect-mobile,1 / 1)}.sim-graph canvas{height:180px}}.earth-labels{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:hidden}.earth-labels span{background:color-mix(in srgb, var(--bg-elev) 85%, transparent);border:1px solid var(--border);color:var(--text);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:600;position:absolute;top:0;left:0}
