/* Model-page visual direction + Science REPL. The opening state is useful without animation;
   JavaScript only advances the live conversation and inspector. */
.science-model .sc-hero {
  background:
    linear-gradient(90deg,rgba(5,16,27,.98) 0,rgba(5,21,34,.93) 47%,rgba(3,58,77,.73) 100%),
    radial-gradient(circle at 79% 42%,#0d718b 0,transparent 36%),#06131f;
}
.science-model .sc-hero-grid { min-height:620px; }
.science-model .sc-hero-copy>p { max-width:660px; color:#b8d0d9; }
.science-model .sc-actions .sc-primary { box-shadow:0 10px 35px #21d5e33d; }
.science-model .sc-scene { height:430px; }
.science-model .sc-orbit { border-color:#3fe4f133; }
.sv-model-lab { width:1px; height:1px; }
.sv-model-cube { position:absolute; width:155px; height:155px; margin:-78px; transform:rotateX(58deg) rotateZ(45deg); transform-style:preserve-3d; }
.sv-model-cube i { position:absolute; inset:0; border:1px solid #61e9f3aa; background:linear-gradient(135deg,#2dd9e955,#09688744); box-shadow:0 0 35px #16c9df44,inset 0 0 35px #64eaf744; }
.sv-model-cube i:nth-child(1) { transform:translateZ(-45px); opacity:.32; }.sv-model-cube i:nth-child(2) { transform:translateZ(0); opacity:.55; }.sv-model-cube i:nth-child(3) { transform:translateZ(45px); }
.sv-model-cube span { position:absolute; inset:0; display:grid; place-items:center; transform:translateZ(65px) rotateZ(-45deg) rotateX(-58deg); color:#c6fbff; font-size:48px; text-shadow:0 0 28px #74f3ff; }
.sv-model-card { position:absolute; width:108px; height:78px; display:grid; place-items:center; gap:5px; padding:10px; color:#bcecf3; border:1px solid #3a8394; border-radius:10px; background:linear-gradient(145deg,#123b4bd9,#071925e8); box-shadow:7px 9px 0 #04111a,0 0 28px #20d8e52b; }
.sv-model-card svg { width:26px; height:26px; fill:none; stroke:#50e0ed; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }.sv-model-card b { font-size:11px; }
.sv-model-card.c1 { left:-235px; top:-153px; }.sv-model-card.c2 { left:126px; top:-153px; }.sv-model-card.c3 { left:-235px; top:68px; }.sv-model-card.c4 { left:126px; top:68px; }
.sv-model-message { position:absolute; width:310px; left:-155px; top:142px; color:#61d9e5; font:750 10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.12em; text-align:center; }
.science-model .sx-model { padding:clamp(75px,9vw,125px) 0; background:radial-gradient(circle at 58% 26%,#d9f9fc,#f7fcfd 47%,#fff 73%); }
.science-model .sx-model .sx-head { max-width:900px; }
.science-model .sx-versus article { min-height:310px; }
.science-model .sx-versus article.on { box-shadow:0 25px 70px #0a32413b,0 0 0 1px #4ee3f11c; }
.science-model .sc-jump { border-top:1px solid #d7e6eb; }
.science-model .sc-explore { max-width:1400px; }
.science-model .sc-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.science-model .sc-card { min-height:275px; }
.sm-capabilities { padding:clamp(72px,8vw,112px) 0; background:linear-gradient(145deg,#f8fcfd,#edf7fa); }
.sm-capabilities-head { max-width:810px; margin-bottom:35px; }
.science-brand .sm-capabilities-head h2 { margin:0 0 14px; color:#102530; font-size:clamp(32px,4vw,55px); line-height:1.04; }.sm-capabilities-head p { margin:0; color:#607985; font-size:16px; line-height:1.65; }
.sm-capability-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.sm-capability-grid article { display:grid; grid-template-columns:42px minmax(0,1fr); gap:14px; min-height:125px; padding:22px; border:1px solid #d6e7ec; border-radius:10px; background:#fff; box-shadow:0 10px 28px #16485a0a; }
.sm-capability-grid article>span { display:grid; place-items:center; width:40px; height:40px; color:#0ea7bd; border:1px solid #94dbe4; border-radius:10px; background:#eafbfd; font-size:20px; }
.science-brand .sm-capability-grid h3 { margin:3px 0 7px; color:#17313c; font-size:16px; }.sm-capability-grid p { margin:0; color:#6a818b; font-size:12px; line-height:1.5; }
.sc-repl {
  --sr-bg:#071119;
  --sr-panel:#0b1821;
  --sr-panel-2:#0e202b;
  --sr-line:#213844;
  --sr-line-strong:#315462;
  --sr-cyan:#29d4e9;
  --sr-cyan-soft:#a9f3fb;
  --sr-text:#e9f5f8;
  --sr-muted:#8aa4af;
  --sr-dim:#607b87;
  padding:clamp(68px,8vw,112px) 0;
  color:var(--sr-text);
  background:
    radial-gradient(circle at 82% 0,#164555 0,transparent 31%),
    linear-gradient(155deg,#08131b,#061018 68%);
}
.sr-intro { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:50px; margin-bottom:32px; }
.sr-intro>div:first-child { max-width:780px; }
.sr-intro .sc-eyebrow { color:#74a7b6; }
.science-brand .sr-intro h2 { margin:0 0 16px; color:#f0fbfd; font-size:clamp(31px,3.8vw,54px); line-height:1.03; text-wrap:balance; }
.sr-intro p { margin:0; max-width:760px; color:#a2bac4; font-size:16px; line-height:1.72; }
.sr-try { display:flex; justify-content:flex-end; align-items:center; flex-wrap:wrap; gap:8px; max-width:520px; }
.sr-try>span { flex-basis:100%; color:#648895; font-size:12px; font-weight:750; letter-spacing:.14em; text-align:right; }
.sr-try button { min-height:36px; padding:8px 12px; color:#a8c4ce; border:1px solid #31505d; border-radius:7px; background:#0a1a23; font:600 13px/1.2 inherit; cursor:pointer; }
.sr-try button:hover,.sr-try button:focus-visible { color:#e6fbff; border-color:#2bbdd0; background:#102a35; }
.sr-shell { overflow:hidden; min-height:720px; border:1px solid #34515d; border-radius:14px; background:var(--sr-bg); box-shadow:0 36px 95px #0007,0 8px 0 #0f2b36; }
.sr-chrome { height:46px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 17px; color:#6d8a96; border-bottom:1px solid var(--sr-line); background:#091720; font:700 12px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; letter-spacing:.1em; }
.sr-chrome>strong { color:#8ba9b4; font-size:11px; }
.sr-dots { display:flex; gap:7px; }
.sr-dots i { width:9px; height:9px; border-radius:50%; background:#2e606e; }
.sr-dots i:nth-child(2) { background:#2b8594; }.sr-dots i:nth-child(3) { background:#28b9ca; }
.sr-session { justify-self:end; display:flex; align-items:center; gap:7px; color:#82a1ad; font-size:10px; }
.sr-session i { width:7px; height:7px; border-radius:50%; background:#33d6b0; box-shadow:0 0 11px #33d6b0; }
.sr-grid { display:grid; grid-template-columns:190px minmax(0,1fr); min-height:674px; }
.sr-rail { display:flex; flex-direction:column; padding:20px 12px; border-right:1px solid var(--sr-line); background:#08141c; }
.sr-brand { display:grid; grid-template-columns:auto 1fr; align-items:baseline; gap:5px; padding:5px 10px 22px; }
.sr-brand b { color:#f0f8fa; font-size:16px; }.sr-brand>span { color:var(--sr-cyan); font-size:16px; font-style:italic; }
.sr-brand small { grid-column:1/-1; margin-top:6px; color:#587680; font:11px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace; }
.sr-rail button { position:relative; width:100%; display:grid; grid-template-columns:24px 1fr auto; align-items:center; gap:8px; min-height:43px; padding:9px 10px; color:#819ba6; border:0; border-radius:7px; background:transparent; font:600 13px/1.2 inherit; text-align:left; cursor:pointer; }
.sr-rail button:hover,.sr-rail button:focus-visible { color:#d7edf2; background:#10232d; }
.sr-rail button.on { color:#effcff; background:#142c37; box-shadow:inset 2px 0 var(--sr-cyan); }
.sr-rail button.on svg { color:var(--sr-cyan); }
.sr-rail .sr-new { margin-bottom:11px; color:#a9c0c9; border-bottom:1px solid #172b35; border-radius:0; }
.sr-rail button em { min-width:22px; padding:3px 5px; color:#70ddea; border:1px solid #2a5966; border-radius:10px; font:700 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace; text-align:center; }
.sr-rail-foot { display:flex; flex-direction:column; gap:7px; margin:auto 10px 4px; color:#385660; font:700 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.15em; }
.sr-main { min-width:0; display:flex; flex-direction:column; }
.sr-progress { min-height:61px; display:flex; align-items:center; gap:24px; padding:10px 20px; border-bottom:1px solid var(--sr-line); background:#09161f; }
.sr-run-state { display:flex; align-items:center; gap:7px; flex:0 0 auto; min-width:78px; color:#b9d2da; font:700 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace; }
.sr-run-state i { width:8px; height:8px; border-radius:50%; background:#34d4af; box-shadow:0 0 9px #34d4af; }
.sr-progress.running .sr-run-state i { background:#f3b650; box-shadow:0 0 9px #f3b650; animation:sr-pulse 1s ease-in-out infinite; }
.sr-progress ol { min-width:0; width:100%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin:0; padding:0; list-style:none; }
.sr-progress li { position:relative; display:flex; align-items:center; gap:8px; min-width:0; color:#516d79; font:600 11px/1.25 ui-monospace,SFMono-Regular,Menlo,monospace; }
.sr-progress li::after { content:""; position:absolute; left:24px; right:2px; bottom:-8px; height:2px; border-radius:2px; background:#19313b; }
.sr-progress li span { display:grid; place-items:center; flex:0 0 22px; width:22px; height:22px; border:1px solid #29434e; border-radius:50%; color:#597681; font-size:9px; }
.sr-progress li.active,.sr-progress li.done { color:#b8d3db; }
.sr-progress li.active span { color:#071119; border-color:var(--sr-cyan); background:var(--sr-cyan); box-shadow:0 0 12px #28d4e955; }
.sr-progress li.done span { color:#7be8f3; border-color:#257988; background:#0e313c; }
.sr-progress li.active::after,.sr-progress li.done::after { background:linear-gradient(90deg,#22cde2,#287c8a); }
.sr-workspace { min-height:612px; display:grid; grid-template-columns:minmax(360px,.92fr) minmax(430px,1.08fr); }
.sr-conversation { min-width:0; display:flex; flex-direction:column; border-right:1px solid var(--sr-line); background:linear-gradient(180deg,#08141d,#071119); }
.sr-panel-head,.sr-inspect-head { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:18px 20px; border-bottom:1px solid var(--sr-line); }
.sr-panel-head>div,.sr-inspect-head>div { display:flex; flex-direction:column; gap:4px; }
.sr-panel-head span,.sr-inspect-head span { color:#52727f; font:750 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.13em; }
.sr-panel-head strong,.sr-inspect-head strong { color:#bdd4dc; font-size:14px; }.sr-panel-head strong b { color:var(--sr-cyan); font-weight:650; }
.sr-panel-head .sr-retained { padding:5px 8px; color:#68c7d2; border:1px solid #28545f; border-radius:5px; font-size:9px; }
.sr-transcript { min-height:420px; max-height:465px; overflow:auto; flex:1; padding:22px 20px 10px; scroll-behavior:smooth; }
.sr-turn { display:grid; grid-template-columns:36px minmax(0,1fr); gap:12px; margin-bottom:21px; }
.sr-avatar { display:grid; place-items:center; width:34px; height:34px; color:#a9c3cb; border:1px solid #34515d; border-radius:9px; background:#0c202a; font:800 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace; }
.sr-turn.lois .sr-avatar { color:#062229; border-color:#2ad6e9; background:linear-gradient(145deg,#8bf3fa,#20bed4); box-shadow:0 0 24px #23cee52b; font-size:14px; }
.sr-turn small { display:block; margin:1px 0 7px; color:#597985; font:600 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace; }
.sr-turn p { margin:0; color:#d2e4e9; font-size:15px; line-height:1.65; white-space:pre-wrap; }
.sr-turn.user p { color:#9db4bd; }
.sr-turn-meta { display:inline-block; margin-top:11px; padding:5px 8px; color:#6aa8b4; border:1px solid #244651; border-radius:5px; background:#0b1c25; font:600 10px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace; }
.sr-turn.thinking p { color:#7c98a3; }
.sr-turn.thinking p::after { content:""; display:inline-block; width:18px; height:3px; margin-left:7px; background:linear-gradient(90deg,var(--sr-cyan) 33%,transparent 33% 45%,var(--sr-cyan) 45% 66%,transparent 66% 78%,var(--sr-cyan) 78%); animation:sr-blink .9s steps(2,end) infinite; vertical-align:middle; }
.sr-prompt { display:grid; grid-template-columns:30px minmax(0,1fr) 42px; align-items:center; gap:7px; margin:13px 18px 7px; border:1px solid #345460; border-radius:9px; background:#0c2029; box-shadow:inset 0 1px #ffffff08,0 0 0 3px #061017; }
.sr-prompt:focus-within { border-color:#28bbce; box-shadow:0 0 0 3px #27cce51a; }
.sr-prompt-mark { color:var(--sr-cyan); font:800 18px/1 ui-monospace,SFMono-Regular,Menlo,monospace; text-align:right; }
.sr-prompt input { width:100%; min-width:0; height:51px; color:#edf9fb; border:0; outline:0; background:transparent; font:500 14px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace; }
.sr-prompt input::placeholder { color:#58717c; }
.sr-prompt button { display:grid; place-items:center; width:34px; height:34px; color:#06252c; border:0; border-radius:7px; background:var(--sr-cyan); cursor:pointer; }
.sr-prompt button:hover,.sr-prompt button:focus-visible { background:#8bf3fb; }
.sr-prompt button:disabled,.sr-prompt input:disabled { opacity:.58; cursor:wait; }
.sr-hint { margin:0 20px 16px; color:#486773; font:10px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; }
.sr-hint kbd,.sr-hint code { color:#769ba7; font:inherit; }
.sr-inspector { min-width:0; max-height:612px; overflow:auto; background:#0a1720; scroll-behavior:smooth; }
.sr-inspect-section { scroll-margin-top:0; border-bottom:1px solid var(--sr-line); }
.sr-inspect-head { padding:16px 18px; }
.sr-inspect-head>b { display:grid; place-items:center; min-width:28px; min-height:25px; padding:4px 7px; color:#53d9e7; border:1px solid #27525e; border-radius:13px; background:#0d2832; font:750 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace; }
.sr-source-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:12px 16px 18px; }
.sr-source { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:10px; min-height:58px; padding:10px; color:#a9c1ca; border:1px solid #203b46; border-radius:8px; background:#0d202a; font:inherit; text-align:left; cursor:pointer; }
.sr-source:hover,.sr-source:focus-visible,.sr-source.on { color:#e7f8fb; border-color:#2c8493; background:#102a35; }
.sr-source-icon { display:grid; place-items:center; width:32px; height:32px; color:#44d8e9; border:1px solid #285663; border-radius:8px; background:#0d2c37; }
.sr-source strong { display:block; overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }.sr-source small { display:block; margin-top:4px; overflow:hidden; color:#627f8a; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.sr-source b { color:#4bd4e3; font:700 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace; }
.sr-evidence-tabs { display:flex; gap:6px; overflow:auto; padding:11px 16px 3px; }
.sr-evidence-tabs button { flex:0 0 auto; padding:6px 9px; color:#698792; border:0; border-radius:5px; background:transparent; font:650 11px/1 inherit; cursor:pointer; }
.sr-evidence-tabs button:hover,.sr-evidence-tabs button:focus-visible,.sr-evidence-tabs button.on { color:#55dfed; background:#11303a; }
.sr-records { padding:8px 16px 4px; }
.sr-record { display:grid; grid-template-columns:30px minmax(0,1fr) auto; gap:10px; padding:12px 0; border-top:1px solid #1c333d; }
.sr-record:first-child { border-top:0; }
.sr-record-icon { display:grid; place-items:center; width:30px; height:30px; color:#43d7e7; border:1px solid #28515d; border-radius:8px; background:#0c2832; }
.sr-record strong { display:block; color:#c8dce2; font-size:12px; line-height:1.35; }.sr-record p { margin:3px 0 6px; color:#6e8a95; font-size:11px; line-height:1.45; }
.sr-record-tags { display:flex; flex-wrap:wrap; gap:5px; }.sr-record-tags span { padding:3px 6px; color:#52cbd7; border-radius:4px; background:#103039; font:650 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace; }.sr-record-tags span+span { color:#7e98a2; background:#14252e; }
.sr-record a { align-self:start; color:#4bd9e8; font-size:10px; font-weight:700; text-decoration:none; white-space:nowrap; }.sr-record a:hover { text-decoration:underline; }
.sr-show-all { display:block; margin:6px auto 17px; padding:8px 12px; color:#81dbe4; border:1px solid #285765; border-radius:6px; background:#0c2530; font:650 11px/1 inherit; cursor:pointer; }
.sr-show-all[hidden] { display:none; }
.sr-state { padding-bottom:18px; }
.sr-inspect-head .sr-state-ok { width:auto; color:#5fe0bd; border-color:#285b50; background:#0d2b28; font-size:9px; letter-spacing:.08em; }
.sr-state-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px; margin:12px 16px; overflow:hidden; border:1px solid #203b45; border-radius:8px; background:#203b45; }
.sr-state-grid>div { min-width:0; padding:13px; background:#0d2029; }
.sr-state-grid span,.sr-boundary small { display:block; color:#577783; font:750 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.12em; }
.sr-state-grid strong { display:block; overflow:hidden; margin:8px 0 3px; color:#d3e8ed; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }.sr-state-grid small { color:#78929d; font-size:10px; }
.sr-boundary { display:grid; grid-template-columns:43px minmax(0,1fr); gap:12px; margin:0 16px 16px; padding:14px; border:1px solid #3c5360; border-left:3px solid #f0b858; border-radius:8px; background:linear-gradient(120deg,#14242b,#0c1b24); }
.sr-boundary-icon { display:grid; place-items:center; width:42px; height:42px; color:#ffd27d; border:1px solid #705f3f; border-radius:50%; background:#30291d; font-size:22px; }
.sr-boundary strong { display:block; margin:6px 0 4px; color:#f0e1c1; font-size:13px; }.sr-boundary p { margin:0; color:#8fa4aa; font-size:11px; line-height:1.45; }
.sr-loop { display:grid; grid-template-columns:auto 1fr auto 1fr auto 1fr auto 1fr auto; align-items:center; gap:7px; margin:0 16px; }
.sr-loop span { padding:6px 7px; color:#617d87; border:1px solid #27424c; border-radius:5px; background:#0c1d25; font:650 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace; text-align:center; white-space:nowrap; }
.sr-loop span.on { color:#82e9f2; border-color:#247987; background:#0e3039; }.sr-loop i { height:1px; background:#2a4d58; }
.sr-disclosure { max-width:980px; margin:25px auto 0; color:#6f8e99; font-size:12px; line-height:1.65; text-align:center; }
.sr-noscript { margin:20px; color:#adc2ca; }.sr-noscript a { color:#54dbe9; }
@keyframes sr-pulse { 50% { opacity:.35; } }
@keyframes sr-blink { 50% { opacity:.2; } }
@media(max-width:1120px) {
  .sr-intro { grid-template-columns:1fr; gap:25px; }.sr-try { justify-content:flex-start; max-width:none; }.sr-try>span { text-align:left; }
  .sr-grid { grid-template-columns:164px minmax(0,1fr); }.sr-workspace { grid-template-columns:1fr; }.sr-conversation { border-right:0; border-bottom:1px solid var(--sr-line); }.sr-inspector { max-height:620px; }.sr-shell { min-height:0; }
  .science-model .sc-grid,.sm-capability-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
  .sc-repl { padding:55px 0; }.sr-shell { border-radius:10px; }
  .sr-chrome { grid-template-columns:1fr 1fr; }.sr-chrome>strong { display:none; }
  .sr-grid { display:block; }.sr-rail { display:grid; grid-template-columns:repeat(4,1fr); gap:5px; padding:9px; border-right:0; border-bottom:1px solid var(--sr-line); }
  .sr-brand,.sr-rail .sr-new,.sr-rail-foot { display:none; }.sr-rail button { display:flex; justify-content:center; min-height:46px; padding:8px; text-align:center; }.sr-rail button span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }.sr-rail button em { position:absolute; top:2px; right:8px; min-width:17px; }
  .sr-progress { display:block; padding:13px; }.sr-run-state { margin-bottom:12px; }.sr-progress ol { grid-template-columns:repeat(2,1fr); gap:14px 7px; }
  .sr-workspace { min-height:0; }.sr-transcript { min-height:360px; max-height:460px; padding:18px 14px; }.sr-panel-head { padding:15px 14px; }.sr-retained { display:none; }
  .sr-prompt { margin-left:12px; margin-right:12px; }.sr-hint { margin-left:14px; }.sr-inspector { max-height:none; }
  .sr-source-list { grid-template-columns:1fr; }.sr-loop { grid-template-columns:1fr; }.sr-loop i { width:1px; height:9px; margin:auto; }
  .science-model .sc-scene { height:360px; }.sv-model-lab { transform:scale(.76); }.science-model .sc-grid,.sm-capability-grid { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) {
  .sr-transcript,.sr-inspector { scroll-behavior:auto; }.sr-progress.running .sr-run-state i,.sr-turn.thinking p::after { animation:none; }
}
