:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f2f7fc;color:#16365b;font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:14px}button,input,select{font:inherit}button,a{transition:background .2s,border-color .2s,transform .15s}button{cursor:pointer}a{text-decoration:none;color:inherit}.topbar{display:flex;justify-content:space-between;align-items:center;background:#fff;border-bottom:1px solid #dae5f2;padding:15px 23px;gap:15px}.brand{display:flex;align-items:center;gap:12px}.brand strong{display:block;font-size:16px}.brand small{display:block;font-size:10px;letter-spacing:2px;color:#80a0ca;margin-top:4px;font-weight:800}.logo{background:linear-gradient(135deg,#235a9b,#538fda);padding:13px;border-radius:12px;color:#fff;font-weight:900;box-shadow:0 6px 14px #235a9b33}.topbar nav{display:flex;align-items:center;gap:10px}.topbar nav a,.soft{background:#fff;border:1px solid #d5e2f1;border-radius:9px;padding:11px 14px;color:#245a9c;font-size:12px;font-weight:700}.topbar nav a:hover,.soft:hover{background:#edf5ff}.local{font-size:10px;letter-spacing:1.3px;color:#29a780;font-weight:800;margin-right:10px}.intro{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(118deg,#e8f2fd,#f5f9ff);padding:30px 24px;border-bottom:1px solid #d7e5f5}.intro h1{font-size:30px;letter-spacing:-1.4px;line-height:1.15;margin:10px 0}.intro h1 em{font-style:normal;color:#2e70c3}.intro p{color:#6884a6;font-size:13px;max-width:740px;line-height:1.8}.eyebrow{font-size:10px;letter-spacing:2px;color:#719ac9;font-weight:800}.pill{border:1px solid #d9e7f3;color:#258e70;background:#fff;border-radius:12px;padding:12px 16px;font-size:12px;font-weight:750}.pill.muted{color:#6c88a6}.layout{display:grid;grid-template-columns:290px minmax(0,1fr);min-height:calc(100vh - 190px)}.sidebar{background:#fff;border-right:1px solid #d9e5f2;padding:24px 17px}.sidebar h2,.content h2{font-size:20px;letter-spacing:-.7px;margin:10px 0 20px}.experiment-list{display:grid;gap:9px}.experiment{display:grid;text-align:left;border:1px solid #dbe8f7;border-radius:10px;background:#fff;padding:14px 13px;gap:6px;color:#20436c}.experiment strong{font-size:13px}.experiment small{font-size:11px;color:#7c9aba}.experiment.selected{background:#eaf3ff;border-color:#6395d6;box-shadow:inset 3px 0 #2e6cb8}.experiment:hover{border-color:#5d91ca}.separator{height:1px;background:#e2edf8;margin:25px 0}.desc{font-size:12px;line-height:1.75;color:#6e8ba8}.field{display:grid;gap:8px;margin:16px 0;color:#24466a;font-size:12px;font-weight:700}.field input,.field select{width:100%;border:1px solid #d4e2f1;background:#f6f9fd;color:#1b3d65;border-radius:9px;padding:12px;min-height:42px;outline:none}.field input:focus,.field select:focus{border-color:#4c90d9;box-shadow:0 0 0 3px #4c90d921}.field small{font-size:11px;color:#8198ad;font-weight:400;line-height:1.6}.primary{border:none;background:#245ba0;color:#fff;font-weight:800;border-radius:9px;padding:14px}.primary:hover{background:#164783}.primary:disabled{opacity:.55;cursor:not-allowed}.full{width:100%}.message{font-size:12px;line-height:1.7;color:#218067;margin-top:10px}.message.error{color:#bf4040}.safety{color:#8d9baa;line-height:1.7;font-size:11px;margin-top:24px}.content{padding:25px;min-width:0}.section-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.section-row h2{margin:8px 0 0}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions button{white-space:nowrap}.viewer{position:relative;height:min(56vh,550px);min-height:350px;overflow:hidden;border:1px solid #d6e5f3;border-radius:15px;background:#ecf4fc}.viewer canvas{display:block;width:100%;height:100%}.viewer:fullscreen{height:100vh;border-radius:0}.viewer-hint{position:absolute;left:15px;bottom:13px;color:#7e9fbc;font-size:11px;pointer-events:none}.placeholder{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#7c9aba}.placeholder[hidden]{display:none}.panel{background:#fff;border:1px solid #d9e5f2;border-radius:14px;padding:22px;margin-top:17px}.results{margin-top:18px}.result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.metric{border:1px solid #e0ebf6;border-radius:10px;padding:16px 14px;background:#f8fbff;min-height:90px;display:flex;flex-direction:column;gap:10px}.metric small{font-size:11px;color:#718ca8}.metric strong{color:#245eaa;font-size:22px}.formula{border-left:3px solid #5ca6d7;background:#f2f8ff;border-radius:8px;padding:15px;margin-top:16px}.formula strong{font-size:12px}.formula p{color:#345d8a;font-size:13px;margin:9px 0}.formula small{color:#708fae;font-size:11px;line-height:1.6}.empty{padding:24px;color:#8ba3bb;border:1px dashed #d7e6f5;border-radius:10px;font-size:12px}.history-list{display:grid;gap:8px}.history-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border:1px solid #e3edf8;border-radius:9px}.history-item strong{display:block;font-size:12px;margin-bottom:5px}.history-item small{color:#8ba3bb}.history-item .soft{display:inline-flex;font-size:11px;padding:9px 10px}.footer-panel{color:#56789c;line-height:1.7}.footer-panel p{font-size:13px}.footer-panel .soft{display:inline-block;margin-right:10px;margin-top:7px}@media(max-width:1040px){.layout{grid-template-columns:255px minmax(0,1fr)}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.intro h1{font-size:25px}.viewer{min-height:330px}.topbar nav{flex-wrap:wrap}}@media(max-width:720px){.topbar{align-items:flex-start}.topbar nav{gap:5px}.local{display:none}.intro{display:block;padding:25px 17px}.intro .pill{display:inline-block;margin-top:12px}.layout{display:block}.sidebar{border-right:none;border-bottom:1px solid #dce7f2}.content{padding:15px}.section-row{align-items:flex-start;flex-wrap:wrap}.viewer{height:370px}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.history-item{align-items:flex-start;flex-wrap:wrap}}.viewer{background:linear-gradient(145deg,#e8f1fa,#f8fbff);height:min(65vh,640px);min-height:450px}.viewer-stats{position:absolute;left:18px;top:18px;display:flex;align-items:center;gap:9px;padding:11px 13px;background:#ffffffe0;border:1px solid #d8e5f2;box-shadow:0 8px 25px #154a7d14;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);border-radius:11px;color:#1a527f;font-size:12px;font-weight:750;pointer-events:none}.status-dot{background:#2ac098;width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 4px #27c0981f}.parameter-duo{display:grid;gap:10px}.parameter-duo input[type=range]{padding:0;min-height:14px;height:14px;border:none;background:transparent;accent-color:#2778c6;cursor:pointer}.preview-notice{font-size:11px;line-height:1.6;color:#8a6a23;min-height:0;margin:8px 0}.chart-panel{overflow:hidden}.chart-caption{margin:0 0 10px;color:#5a7ea4;font-size:12px}#comparison-chart{width:100%;height:220px;display:block;border:1px solid #e1ebf6;border-radius:12px;background:linear-gradient(180deg,#fbfdff,#f4f9ff);cursor:crosshair}.chart-pill{color:#266e9c;background:#eaf5ff;border:1px solid #d7e9fa;border-radius:10px;font-size:11px;padding:9px 11px}.chart-explain{color:#7890ab;font-size:11px;line-height:1.7}@media(max-width:720px){.viewer{min-height:360px;height:420px}.viewer-stats{font-size:11px;left:10px;top:10px}.chart-pill{display:none}}.physics-legend{position:absolute;right:16px;bottom:16px;background:#ffffffe6;border:1px solid #d8e6f4;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:10px;display:flex;gap:12px;align-items:center;padding:10px 12px;font-size:11px;color:#456585;pointer-events:none}.physics-legend span{display:inline-flex;gap:6px;align-items:center}.dot-force{display:inline-block;width:9px;height:9px;border-radius:50%}.dot-force.effort{background:#1eab87}.dot-force.gravity{background:#da5d50}.dot-force.other{background:#367ed1}.section-row .actions .soft[aria-pressed=false]{background:#e8f2fc;border-color:#a8c9e9}.section-row .actions .soft:focus-visible{outline:3px solid #67aaf0;outline-offset:2px}@media(max-width:850px){.physics-legend{left:10px;right:auto;bottom:37px;padding:7px;font-size:10px;gap:7px;flex-wrap:wrap;max-width:95%}}
