:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.45;font-weight:400;color:#e5e2de;background-color:#1b1c1f}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 15% 0%,#ffffff14,#fff0 35%),radial-gradient(circle at 85% 100%,#ffffff0d,#fff0 30%),linear-gradient(180deg,#2a2b2f,#1b1c1f);color:#e5e2de}h1,h2,h3,p{margin:0}button,input{font:inherit}input[type=text],input[type=number],select{width:100%;margin-top:.35rem;background:#f5f3ee24;color:#ece9e4;border:1px solid rgba(255,255,255,.22);border-radius:9px;padding:.42rem .55rem}select option{background:#2d2f33;color:#ece9e4}button{background:#f0eeeb29;color:#f1efec;border:1px solid rgba(255,255,255,.24);border-radius:10px;padding:.5rem .88rem;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}button:hover:not(:disabled){background:#f0eeeb3d;border-color:#ffffff61;transform:translateY(-1px)}button:disabled{cursor:not-allowed;background:#8c8c912e;border-color:#c8c8ce33;opacity:.7}input[type=range]{width:100%;margin-top:.4rem}.app-shell{max-width:1220px;margin:0 auto;padding:1.2rem 1.5rem 1.5rem;display:grid;gap:1.1rem}.subtle{color:#b7b4af}.card{border:1px solid rgba(255,255,255,.16);border-radius:14px;background:#f7f5f214;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:1rem}.modal{margin-top:1rem;display:grid;gap:1rem}.modal-head{display:flex;justify-content:space-between;gap:.8rem;align-items:center}.empty-state{margin-top:1rem;display:grid;gap:.4rem}.applet-selector{display:flex;flex-wrap:wrap;gap:.5rem}.selector-pill{background:#f2efeb24;border:1px solid rgba(255,255,255,.2)}.selector-pill.active{background:#ffffff47;border-color:#ffffff6b;color:#fff}.gravity-layout{display:grid;grid-template-columns:320px 1fr;gap:1rem}.gravity-scenario-note{margin:0;font-size:.8rem;line-height:1.35;color:#b7b4af}.gravity-distance-hints{display:block;margin-top:.25rem;font-size:.75rem;color:#9ea8b8}.gravity-selection{border:1px solid rgba(255,220,140,.28);border-radius:10px;background:#ffdc8c14;padding:.65rem .75rem;display:grid;gap:.35rem}.gravity-selection-title{font-weight:650;color:#fff1c8}.gravity-selection-meta{display:flex;flex-wrap:wrap;gap:.65rem 1rem;font-size:.82rem;color:#d7d2c8}.gravity-selection p{font-size:.8rem;color:#c9c4ba;line-height:1.35}.gravity-body-list{display:flex;flex-wrap:wrap;gap:.35rem}.gravity-body-chip{font-size:.75rem;padding:.28rem .55rem;border-radius:999px}.gravity-body-chip.is-selected{background:#ffdc8c47;border-color:#ffdc8c8c;color:#fff6d8}.gravity-pitch-presets{display:grid;gap:.4rem}.gravity-pitch-preset{text-align:left;font-size:.82rem;padding:.45rem .65rem;border-radius:10px;line-height:1.25}.gravity-pitch-preset.is-selected{background:#78c8ff38;border-color:#8cd2ff8c;color:#e8f6ff}.drake-layout .drake-n-panel{border:1px solid rgba(120,220,160,.28);border-radius:12px;background:#28503c2e;padding:.7rem .8rem}.drake-n-label{font-size:.78rem;color:#b7c4b8;letter-spacing:.02em}.drake-n-value{font-size:1.85rem;font-weight:700;color:#e9ffe8;margin-top:.15rem}.drake-n-sub{margin-top:.25rem;font-size:.82rem;color:#c5d5c8}.drake-presets{display:flex;flex-wrap:wrap;gap:.35rem}.drake-preset{font-size:.75rem;padding:.32rem .55rem;border-radius:999px}.drake-counts{font-size:.78rem;line-height:1.35;color:#b9c0ca}.drake-detect-counts{margin-top:.35rem;color:#9fc4e8}.drake-visual-column{display:grid;gap:.75rem;align-content:start;min-width:0}.drake-detect-plot canvas{display:block;max-width:100%;height:auto}.drake-detect-plot-caption{margin:0 0 .55rem;font-size:.8rem;line-height:1.35;color:#aeb8c8}.gravity-layout .galaxy-outflow-visual-column{display:grid;gap:.75rem;align-content:start;min-width:0}.gravity-layout .galaxy-outflow-density-plot canvas{display:block;max-width:100%}.gravity-layout .galaxy-outflow-pdf-snapshots{display:flex;flex-wrap:wrap;gap:.65rem;align-items:flex-start}.gravity-layout .galaxy-outflow-pdf-snapshots .pdf-snapshot-card{max-width:min(100%,280px);border:1px solid rgba(255,255,255,.14);border-radius:6px;padding:.4rem .45rem .5rem;background:#080a128c}.gravity-layout .galaxy-outflow-pdf-snapshots .pdf-snapshot-card img{display:block;width:100%;height:auto;border-radius:4px}.gravity-layout .galaxy-outflow-pdf-snapshots .pdf-snapshot-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem}.gravity-layout .galaxy-outflow-pdf-snapshots .pdf-snapshot-actions button{font-size:.75rem;padding:.15rem .45rem}.panel{display:grid;gap:.9rem;align-content:start}.panel label{display:grid}.slider-label{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem .8rem}.control-span-2{grid-column:1 / -1}.control-section{border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:.7rem;background:#ffffff0a}.gravity-layout details.control-section>summary{cursor:pointer;font-size:.9rem;font-weight:600;letter-spacing:.02em;color:#d3cdc5;list-style:none}.gravity-layout details.control-section>summary::-webkit-details-marker{display:none}.section-title{margin:0 0 .5rem;font-size:.9rem;letter-spacing:.02em;color:#d3cdc5}.cooling-warning{font-size:.82rem}.once-done-box>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.45rem}.once-done-box>summary:before{content:"▸";color:#d3cdc5;font-size:.95rem;line-height:1;transform:translateY(-1px);transition:transform .16s ease}.once-done-box[open]>summary:before{transform:rotate(90deg) translate(1px)}.once-done-box>summary::-webkit-details-marker{display:none}.once-done-body{display:grid;gap:.6rem;margin-top:.5rem}.compare-target-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.compare-target-card{border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:.5rem;background:#ffffff08;display:grid;gap:.45rem;position:relative;overflow:visible}.compare-reference-image{width:100%;border-radius:8px;border:1px solid rgba(255,255,255,.16);transition:transform .21s ease,box-shadow .21s ease,border-color .21s ease;transform-origin:center;position:relative;z-index:0}.compare-reference-image:hover{transform:scale(1.5);z-index:20;border-color:#ffffff80;box-shadow:0 18px 36px #00000080}.hover-help-tooltip{position:fixed;z-index:2000;max-width:min(340px,70vw);pointer-events:none;opacity:0;transform:translateY(2px);transition:opacity 90ms ease,transform 90ms ease;background:#101218f2;color:#efe9df;border:1px solid rgba(255,255,255,.24);border-radius:8px;padding:.45rem .6rem;font-size:.84rem;line-height:1.35;box-shadow:0 10px 22px #00000073;white-space:pre-wrap}.hover-help-tooltip.visible{opacity:1;transform:translateY(0)}.schwarzschild-panel .schwarzschild-section{margin-top:1rem;padding-top:.4rem;border-top:1px solid rgba(255,255,255,.07)}.schwarzschild-panel .schwarzschild-section:first-of-type{margin-top:0;padding-top:0;border-top:none}.schwarzschild-preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.schwarzschild-preset-grid button{font-size:.8rem;padding:.38rem .5rem}.schwarzschild-guided-hint{min-height:1.35em;font-size:.8rem;color:#c9c4bc;line-height:1.4}.schwarzschild-hints-body{margin:.35rem 0 0;padding-left:1.1rem;font-size:.82rem;line-height:1.45;color:#c9c4bc}.field-inline{display:grid!important;grid-template-columns:minmax(145px,.95fr) minmax(0,1.05fr);align-items:center;column-gap:.7rem}.field-inline>span{color:#ddd7cf}.field-inline>input,.field-inline>select{margin-top:0}.checkbox{display:flex!important;align-items:center;gap:.6rem}.button-row{display:flex;gap:.6rem;flex-wrap:wrap}.stats{display:grid;gap:.3rem;font-size:.95rem;color:#d8d3cd}.spectrum-description{text-align:justify}.canvas-shell{display:grid;gap:.85rem;align-content:start}.gravity-canvas-shell{position:relative}.gravity-canvas-frame{position:relative;width:100%;max-width:900px}.gravity-canvas-frame canvas{width:100%;max-width:900px;height:auto;display:block}.gravity-canvas-toolbar{position:absolute;left:.65rem;right:.65rem;bottom:.65rem;display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;padding:.45rem;border-radius:12px;background:#0a0e16b8;border:1px solid rgba(255,255,255,.18);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;z-index:2}.gravity-canvas-toolbar button{font-size:.82rem;padding:.38rem .7rem;min-width:4.4rem}.gravity-canvas-toolbar button:disabled{opacity:.45}canvas{width:100%;max-width:900px;height:auto;display:block;border-radius:10px;border:1px solid rgba(255,255,255,.2)}.run-captures{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.run-capture-card{margin:0;padding:.55rem;position:relative;border-radius:10px;border:1px solid rgba(255,255,255,.16);background:#ffffff0a;display:grid;gap:.45rem}.run-capture-card-wide{grid-column:1 / -1}.run-capture-delete{position:absolute;top:.35rem;right:.35rem;z-index:12;width:1.35rem;height:1.35rem;border-radius:999px;border:1px solid rgba(255,255,255,.42);background:#12141ab3;color:#f3ede5;font-size:.78rem;line-height:1;padding:0;display:grid;place-items:center}.run-capture-delete:hover:not(:disabled){background:#301414d9;border-color:#ffb4b4cc}.run-capture-card img{width:100%;border-radius:8px;border:1px solid rgba(255,255,255,.15)}.run-capture-visuals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;overflow:visible}.run-capture-visuals img{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;transform-origin:center;position:relative;z-index:0}.run-capture-visuals img:hover{transform:scale(1.35);z-index:4;border-color:#ffffff73;box-shadow:0 14px 28px #00000073}.run-capture-card figcaption{color:#ddd7cf;font-size:.9rem}@media (max-width: 1080px){.gravity-layout{grid-template-columns:1fr}.run-captures{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.control-grid{grid-template-columns:1fr}.field-inline{grid-template-columns:1fr;row-gap:.35rem}.run-captures,.run-capture-visuals,.compare-target-grid{grid-template-columns:1fr}}.ssp-composite-layout{display:flex;flex-direction:column;gap:1rem;max-width:980px}.ssp-composite-header h2{font-size:1.25rem;margin-bottom:.35rem}.ssp-composite-plot-wrap{border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.12)}.ssp-composite-canvas{display:block;width:100%;height:auto;max-width:100%}.ssp-composite-toggles{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.ssp-composite-toggles label{display:inline-flex;align-items:center;gap:.45rem;cursor:pointer}.ssp-rows{display:flex;flex-direction:column;gap:.65rem;margin-bottom:.75rem}.ssp-row{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:.65rem 1rem;padding:.65rem .75rem}.ssp-row-label{flex:0 0 auto;align-self:end;font-size:.85rem;font-weight:600;color:#d3cdc5;padding-bottom:.25rem}.ssp-row .ssp-mass-block{flex:0 1 auto;min-width:0;margin-right:auto}.ssp-row-right{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:flex-end;gap:.65rem 1rem;flex:0 1 auto;min-width:0;margin-inline-end:calc(10px + 5%)}.ssp-row .ssp-field-age,.ssp-row .ssp-field-z{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;min-width:0;width:min(100%,9.5rem)}.ssp-row .ssp-field-age span,.ssp-row .ssp-field-z span{text-align:right;width:100%}.ssp-row .ssp-remove{flex:0 0 auto;align-self:end;white-space:nowrap}@media (max-width: 900px){.ssp-row .ssp-mass-block{margin-right:0;flex:1 1 100%}.ssp-row-right{flex:1 1 100%;flex-wrap:wrap;justify-content:flex-end}.ssp-row .ssp-field-age,.ssp-row .ssp-field-z{flex:1 1 calc(50% - .5rem);align-items:stretch;width:auto;min-width:min(100%,12rem)}.ssp-row .ssp-field-age span,.ssp-row .ssp-field-z span{text-align:left}.ssp-row .ssp-remove{flex:0 0 auto;align-self:end}}@media (max-width: 720px){.ssp-row .ssp-field-age,.ssp-row .ssp-field-z{flex:1 1 100%}}.ssp-field span{display:block;font-size:.78rem;color:#b8b2a8}.ssp-row .ssp-field-age select,.ssp-row .ssp-field-z select{width:100%;box-sizing:border-box}.ssp-presets{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.85rem}.ssp-presets-label{font-size:.78rem;color:#b8b2a8}.ssp-presets-buttons{display:flex;flex-wrap:wrap;gap:.4rem}.ssp-presets-buttons button{padding:.35rem .65rem;font-size:.82rem}.ssp-field-title{display:block;font-size:.78rem;color:#b8b2a8;margin-bottom:.25rem}.ssp-mass-block{min-width:0}.ssp-mass-row{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:.2rem .35rem;min-width:0}.ssp-mass-row>span{display:inline;margin:0}.ssp-mass-inline-label{flex:0 0 auto;font-size:.72rem;color:#b8b2a8;white-space:nowrap}.ssp-mass-row .ssp-mantissa{width:6.6ch!important;max-width:6.6ch!important;min-width:6.6ch!important;flex:0 0 6.6ch!important;padding-left:.08rem;padding-right:.08rem;font-size:.7rem;text-align:center;margin-top:0!important}.ssp-mul{flex:0 0 auto;font-size:.78rem;color:#d3cdc5;-webkit-user-select:none;user-select:none;white-space:nowrap}.ssp-mass-row .ssp-exp{width:5.8ch!important;max-width:5.8ch!important;min-width:5.8ch!important;flex:0 0 5.8ch!important;padding-left:.06rem;padding-right:.06rem;font-size:.7rem;text-align:center;margin-top:0!important}.ssp-mantissa::-webkit-outer-spin-button,.ssp-mantissa::-webkit-inner-spin-button,.ssp-exp::-webkit-outer-spin-button,.ssp-exp::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ssp-mantissa,.ssp-exp{-moz-appearance:textfield}.ssp-mass-readout{flex:1 1 auto;min-width:0;margin:0;margin-left:.15rem;font-size:.65rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#9aa6b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ssp-remove{align-self:end}.ssp-add{margin-top:.25rem}.ssp-footnote{font-size:.82rem;line-height:1.4}.subtle-border{border:1px solid rgba(255,255,255,.1);border-radius:10px;background:#ffffff08}.ssp-y-axis-oneline,.ssp-x-axis-oneline{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:.75rem 1rem;font-size:.82rem;line-height:1.35;overflow-x:auto;padding:.5rem .65rem;max-width:100%}.ssp-y-oneline-lead{flex:1 1 auto;min-width:12rem;color:#d5d0c8}.ssp-y-oneline-lead strong{color:#eae6e0}.ssp-y-inline-range{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:.35rem;flex:0 0 auto;white-space:nowrap}.ssp-y-inline-range>span:first-of-type{color:#b8b2a8;font-size:.78rem}.ssp-y-inline-range input[type=range]{width:6.5rem;min-width:4rem;margin-top:0!important}.ssp-y-slider-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#c8d4e8;min-width:1.5rem;text-align:right}
