/* Controls Lab uses the portfolio's pale surfaces, cobalt controls and comparison traces. */
:root{--ink:#202d49;--muted:#576780;--blue:#345cd7;--line:#d6deee;--paper:#edf1fb;--mono:ui-monospace,SFMono-Regular,Consolas,monospace;--shadow:0 20px 50px -30px #293f7a66}
*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 10% 0,#e5ecff,transparent 50%),linear-gradient(150deg,#edf2fb,#f4f1fa);font:15px/1.65 Arial,Helvetica,sans-serif}a{color:var(--blue);text-underline-offset:4px}button,input,select{font:inherit}button,select,summary{cursor:pointer}button,.button{border:1px solid var(--line);border-radius:10px;padding:10px 14px;color:var(--ink);background:#fff;font-weight:600;min-height:42px;text-decoration:none}button:hover,.button:hover{border-color:var(--blue);background:#edf2ff}button:disabled{opacity:.5;cursor:default}.primary,.button{background:var(--blue);color:#fff;border-color:var(--blue)}.primary:hover,.button:hover{background:#244bbb;color:#fff}:focus-visible{outline:3px solid #c45d3c;outline-offset:3px}.skip{position:fixed;top:-90px;left:16px;padding:12px;background:white;z-index:10}.skip:focus{top:15px}.top{max-width:1370px;margin:20px auto 0;padding:18px 26px;display:flex;justify-content:space-between;align-items:center;background:#ffffffbd;border:1px solid white;border-radius:18px;box-shadow:var(--shadow);gap:20px}.brand{font-size:19px;font-weight:600;letter-spacing:-.5px;text-decoration:none;color:var(--ink)}.brand span{font:9px var(--mono);text-transform:uppercase;letter-spacing:2px;display:block}.top nav{display:flex;gap:24px;font-size:12px}.top nav a{text-decoration:none;color:var(--ink)}main{max-width:1370px;margin:auto;padding:0 20px}.intro{display:flex;justify-content:space-between;align-items:end;padding:55px 0 34px;gap:30px}.eyebrow{font:10px var(--mono);text-transform:uppercase;letter-spacing:1.7px;color:var(--blue);margin:0 0 14px}h1{font-size:clamp(46px,6vw,79px);line-height:1.07;letter-spacing:-4px;font-weight:550;margin:0 0 24px}.lede{font-size:19px;line-height:1.7;color:var(--muted);margin:0}.project-stamp{border-left:1px solid #becbe2;padding:8px 0 8px 24px;min-width:230px}.project-stamp span{font:21px var(--mono);color:var(--blue)}.project-stamp p{font-size:12px;color:var(--muted);margin-bottom:0}.lab{background:#ffffffc9;border:1px solid white;border-radius:24px;padding:20px;box-shadow:var(--shadow)}.lab-heading{display:flex;align-items:center;gap:25px;justify-content:space-between;margin-bottom:18px}.lab-heading p{font-size:12px;color:var(--muted);max-width:420px;margin:0}.mode-tabs{display:flex;gap:5px;padding:5px;border-radius:14px;background:#e9eef9}.mode-tabs button{border:0;background:transparent;white-space:nowrap;font-size:12px}.mode-tabs span{font:10px var(--mono);margin-right:7px;color:#8090ae}.mode-tabs [aria-pressed=true]{background:white;box-shadow:0 3px 12px #20305712;color:var(--blue)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:22px}.viewer{min-width:0;align-self:start;background:#f8faff;border:1px solid var(--line);border-radius:17px;overflow:hidden}.scene-bar{display:flex;align-items:center;gap:8px;padding:13px 17px;border-bottom:1px solid var(--line);font-size:12px}.scene-bar .units{margin-left:auto;font:10px var(--mono);color:var(--muted)}.live-dot{width:7px;height:7px;border-radius:50%;background:#12857b}.diagram{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;padding:23px 12px 15px;font:11px var(--mono)}.diagram>span{padding:9px 11px;border:1px solid #ccd8ee;background:#fff;border-radius:8px}.diagram i{font-style:normal;color:#8090ae}.diagram small{flex-basis:100%;text-align:center;font:10px Arial;color:var(--muted);margin-top:8px}.plot-card{background:#fff;margin:10px 15px;border:1px solid #e4e9f3;border-radius:12px;overflow:hidden}.plot-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:10px 16px 0}.plot-heading h2{font-size:12px;font-weight:600;margin:0}.plot-heading span{font:10px var(--mono);color:var(--muted)}.chart{width:100%;padding:4px 7px}.chart svg{display:block;width:100%;height:auto}.chart text{font:12px var(--mono);fill:#62718b}.transport{display:flex;align-items:center;gap:9px;padding:12px 16px;flex-wrap:wrap}.transport button{font-size:11px;min-height:36px;padding:6px 11px}.transport label{font-size:11px}.transport input{flex:1;min-width:100px;width:auto!important}.transport span{font:10px var(--mono);min-width:125px}.legend{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:3px 16px 10px}.legend button{font-size:11px;font-weight:400;padding:4px 9px;min-height:32px;border-color:transparent;background:transparent}.legend [aria-pressed=true]{background:#fff;border-color:var(--trace);font-weight:600}.legend i{display:inline-block;width:17px;height:3px;background:var(--trace);vertical-align:middle;margin-right:6px}.reference-key{font-size:11px;color:var(--muted)}.insight{font-size:12px;line-height:1.8;color:var(--muted);margin:0;padding:12px 18px;border-top:1px solid var(--line)}#status:empty{display:none}#status,.notice{background:#fff1dc;color:#785327;font-size:13px;padding:14px;margin:12px;border-radius:10px}.settings{padding:0 3px;font-size:12px;min-width:0}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.panel-title .eyebrow{margin:0}.panel-title button{font-size:11px;padding:4px 10px;min-height:30px}.settings label{display:block;margin:11px 0 5px;font-weight:600}.settings select,.settings input[type=text],.settings input[type=number]{width:100%;border:1px solid #c4cfe2;border-radius:8px;padding:9px;background:#fff;color:var(--ink);min-width:0}.settings fieldset{border:0;border-top:1px solid var(--line);margin:17px 0 0;padding:10px 0 0}.settings legend{font:10px var(--mono);text-transform:uppercase;color:var(--muted);padding-right:10px}.settings output{float:right;color:var(--blue);font:11px var(--mono)}input[type=range]{width:100%;height:23px;accent-color:var(--blue);margin:4px 0}.check{display:flex!important;align-items:center;gap:8px;font-weight:400!important;line-height:1.5}.check input{width:15px;height:15px;accent-color:var(--blue)}.help,.settings small{display:block;font-size:11px;line-height:1.7;color:var(--muted)}.settings>button{width:100%;margin-top:14px;font-size:12px}.settings .equation{font-size:10px;padding:15px}.result-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0 12px}.result-strip>div{background:#eef2fc;border-radius:12px;padding:17px}.result-strip span{display:block;font-size:10px;color:var(--muted);margin-bottom:6px}.result-strip strong{font:22px var(--mono);letter-spacing:-1px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;font-size:12px}caption{text-align:left;font-size:11px;color:var(--muted);padding:12px 16px}th,td{text-align:left;border-top:1px solid var(--line);padding:11px 16px;white-space:nowrap}td{font:12px var(--mono)}thead{background:#edf2fc}tbody th{font-weight:400}tr.selected{background:#eaf0ff}.reading,.research{display:grid;grid-template-columns:1fr 1fr;gap:65px;padding:65px 9px 30px}.reading h2,.research h2{font-size:40px;line-height:1.15;letter-spacing:-1.8px;font-weight:500;margin:10px 0 25px}.reading h3,.research h3{font-size:19px;letter-spacing:-.4px;margin-top:0}.reading p,.research p{color:var(--muted);line-height:1.9}.equation{font:13px/2 var(--mono);background:#e4ebfa;border:1px solid #cfdaf0;border-radius:12px;padding:22px;margin:20px 0;overflow-wrap:anywhere}.experiments{padding-left:23px;color:var(--muted)}.experiments li{padding-left:7px;margin-bottom:22px}.experiments strong{color:var(--ink)}details{border-top:1px solid var(--line);padding:18px 0;margin-top:20px}summary{font-weight:600;font-size:13px}details p{font-size:13px}.research{background:#fff9;border:1px solid white;box-shadow:var(--shadow);border-radius:24px;padding:36px;margin-top:35px;gap:50px}.actions{display:flex;flex-wrap:wrap;gap:18px;align-items:center;font-size:12px}.actions .button{display:inline-block}footer{max-width:1330px;margin:35px auto 0;padding:28px 0 35px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:25px;font-size:11px;color:var(--muted)}.embed>.top,.embed .intro,.embed .reading,.embed .research,.embed>footer{display:none}.embed main{padding:8px}.embed .lab{box-shadow:none}
@media(max-width:1100px){.top{margin:15px 20px 0}.project-stamp{display:none}.lab-heading{display:block}.lab-heading p{max-width:none;margin:12px 3px}.workspace{grid-template-columns:minmax(0,1fr) 250px;gap:15px}.diagram{font-size:10px;gap:5px}.diagram>span{padding:7px}.scene-bar{flex-wrap:wrap}.scene-bar .units{margin-left:15px}.reading{gap:35px}footer{margin-left:20px;margin-right:20px}}
@media(max-width:850px){.workspace{grid-template-columns:1fr}.settings{padding:10px;max-width:none}.settings fieldset{margin-top:15px}.settings>button{max-width:400px}.viewer{width:100%}.reading,.research{gap:30px}.result-strip strong{font-size:19px}}
@media(max-width:600px){main{padding:0 12px}.top{margin:10px 12px 0;padding:13px 16px}.brand{font-size:16px}.brand span{font-size:8px}.top nav{gap:12px}.top nav a:not(:last-child){display:none}.intro{padding:34px 5px 25px}h1{font-size:45px;letter-spacing:-2.2px}.lede{font-size:15px}.eyebrow{font-size:8px;letter-spacing:1px}.lab{padding:10px;border-radius:18px}.mode-tabs{width:100%;gap:0;padding:3px}.mode-tabs button{flex:1;padding:8px 5px;font-size:10px;white-space:normal}.mode-tabs span{display:block;margin:0 0 3px}.scene-bar{font-size:11px;padding:11px}.scene-bar .units{font-size:8px}.diagram{gap:4px;padding:17px 6px 8px;font-size:8px}.diagram>span{padding:6px 4px}.diagram small{font-size:8px}.plot-card{margin:8px 7px}.plot-heading{padding:10px 9px 0}.plot-heading h2{font-size:10px}.plot-heading span{font-size:8px}.chart{padding:0}.chart text{font-size:15px}.transport{padding:10px;gap:7px}.transport span{width:100%;font-size:10px}.legend{padding:3px 8px 9px;gap:3px}.legend button{font-size:10px;padding:4px 6px}.insight{padding:10px 12px;font-size:11px}.result-strip{grid-template-columns:1fr 1fr;gap:8px}.result-strip>div{padding:13px}.result-strip strong{font-size:19px}.result-strip span{font-size:9px}th,td{font-size:10px;padding:10px}.reading,.research{grid-template-columns:1fr;padding:35px 5px 10px;gap:25px}.reading h2,.research h2{font-size:34px}.research{padding:25px 20px;margin-top:25px}.reading p,.research p{font-size:14px}.equation{font-size:11px;padding:15px}footer{display:block;margin-top:25px}footer span{display:block;margin-top:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.plot-choice{font-size:10px;color:var(--muted);margin-left:auto}.plot-choice select{font-size:10px;border:1px solid var(--line);border-radius:6px;padding:4px;color:var(--ink);background:#fff}.project-scene{margin:0 16px 12px;padding:9px 12px;border:1px solid #d5dfef;border-radius:12px;background:#f8f5ed}.project-scene svg{display:block;width:100%;max-height:none}.scene-readout{display:flex;justify-content:space-between;gap:10px;font:10px var(--mono);color:var(--muted)}.scene-readout strong{font-weight:400;color:var(--blue)}.project-scene small{display:block;font-size:9px;color:var(--muted);text-align:center}@media(max-width:600px){.plot-heading{flex-wrap:wrap;gap:5px}.plot-choice{font-size:9px}.plot-choice select{font-size:9px}.scene-readout{font-size:8px;flex-wrap:wrap}}

/* Portfolio presentation: readable working surfaces; numerical models unchanged. */
:root { --paper:#f3f5f6; --ink:#172b3a; --muted:#475967; --line:#c5cfd5; --shadow:none; }
body { background:var(--paper); font:16px/1.65 'Segoe UI',Arial,sans-serif; }
.top { background:#fff; border:0; border-bottom:1px solid var(--line); border-radius:0; box-shadow:none; margin:0 auto; }
.top nav { font-size:14px; gap:22px; flex-wrap:wrap; }
.top nav a { display:inline-flex; min-height:44px; align-items:center; text-decoration:underline; }
.brand { font-size:20px; }
.brand span { font:12px/1.5 'Segoe UI',Arial,sans-serif; letter-spacing:0; }
.intro { padding:38px 0 28px; }
h1 { font-size:clamp(38px,4.2vw,58px); letter-spacing:-1.8px; }
.eyebrow { font:13px/1.5 'Segoe UI',Arial,sans-serif; letter-spacing:.3px; text-transform:none; }
.project-stamp { min-width:0; max-width:280px; }
.project-stamp p, .project-stamp span { font-size:13px; }
.lab,.research { background:#fff; border:1px solid var(--line); border-radius:4px; box-shadow:none; }
.viewer,.plot-card,.table-wrap,.equation,.project-scene { border-radius:3px; }
.viewer { background:#f7f9fa; }
.mode-tabs { border-radius:3px; background:#e8edf0; flex-wrap:wrap; }
.mode-tabs button { font-size:14px; min-height:44px; border-radius:2px; }
.mode-tabs [aria-pressed=true] { box-shadow:none; outline:1px solid var(--line); }
.mode-tabs span { display:none; }
.lab-heading p,.scene-bar,.scene-bar .units,.plot-heading h2,.plot-heading span,.insight,.reference-key { font-size:13px; }
.diagram { font-size:12px; }
.diagram small { font-size:12px; }
.diagram>span { border-radius:2px; }
.settings { font-size:14px; }
.settings legend,.settings output,.help,.settings small,.settings .equation,.scene-readout,.project-scene small { font-size:12px; }
.settings select,.settings input[type=text],.settings input[type=number] { font-size:16px; min-height:44px; border-radius:3px; }
input[type=range] { min-height:36px; }
.check { min-height:36px; }
.check input { width:20px; height:20px; flex-shrink:0; }
.transport button,.legend button,.panel-title button,.settings>button,.plot-choice select { font-size:13px; min-height:44px; border-radius:3px; }
.transport label,.transport span,.plot-choice { font-size:12px; }
.transport input { min-height:36px; }
.plot-choice select { padding:7px; }
.plot-heading { flex-wrap:wrap; }
.chart { overflow-x:auto; overscroll-behavior-x:contain; }
.chart svg { min-width:640px; }
.chart text { font-size:18px; }
.plot-scroll-note { margin:0 16px 10px; color:var(--muted); font-size:12px; }
.lab-jumps { display:flex; flex-wrap:wrap; gap:8px 22px; margin:0 0 16px; font-size:13px; }
.lab-jumps a { display:inline-flex; align-items:center; min-height:36px; }
.result-strip>div { border-radius:2px; background:#eef2f4; }
.result-strip span,caption { font-size:12px; }
.actions,footer { font-size:13px; }
button,.button { border-radius:3px; }
@media(max-width:850px) {
  .intro { display:block; }
  .project-stamp { display:block; border:0; padding:14px 0 0; max-width:none; }
  .project-stamp p { margin:4px 0 0; }
}
@media(max-width:600px) {
  .top { margin:0; padding:14px 18px 8px; display:block; }
  .top nav { gap:4px 20px; font-size:14px; margin-top:5px; }
  .top nav a:not(:last-child) { display:inline-flex; }
  .brand { font-size:19px; }
  .brand span { display:none; }
  main { padding:0 14px; }
  .intro { padding:28px 0 22px; }
  h1 { font-size:38px; }
  .lede { font-size:16px; }
  .lab { padding:12px; border-radius:3px; }
  .mode-tabs { align-items:stretch; }
  .mode-tabs button { min-width:85px; font-size:13px; padding:10px 6px; }
  .scene-bar { gap:7px; }
  .scene-bar .units { margin-left:0; width:100%; }
  .diagram { font-size:12px; gap:5px; padding:16px 8px; }
  .diagram>span { padding:7px; }
  .diagram small { font-size:12px; }
  .plot-heading h2,.plot-heading span,.plot-choice,.plot-choice select { font-size:12px; }
  .plot-choice { margin-left:0; }
  .plot-scroll-note { margin:0 10px 10px; }
  .legend { gap:5px; }
  .legend button { font-size:13px; }
  .transport { padding:10px; }
  .transport span { font-size:12px; }
  .insight { font-size:13px; }
  .scene-readout,.project-scene small { font-size:12px; }
  .result-strip span { font-size:12px; }
  th,td { font-size:12px; }
  .reading p,.research p { font-size:16px; }
}

#rover-viewport{margin:9px -12px 8px;overflow:hidden;border-top:1px solid #ddd9c8;border-bottom:1px solid #d4bc91}.project-scene{border-color:#d8d1bd}.project-scene small{max-width:720px;margin:0 auto;line-height:1.6}.scene-readout{flex-wrap:wrap}
