/* Components adapted from the user-supplied Text2Sim snapshot. Shared shell: academic.css. */
.text2sim-project { --ink: var(--text); --green: var(--link); --light: #edf2eb; --warm: #a06f42; }
html { scroll-behavior:smooth;scroll-padding-top:90px }
.text2sim-project a { color:var(--green);text-decoration:none;text-underline-offset:4px }
.text2sim-project a:hover { text-decoration:underline }
.text2sim-project button, .text2sim-project input { font:inherit }
.text2sim-project button { cursor:pointer }
.text2sim-project button:disabled { cursor:default }
.text2sim-project button:focus-visible, .text2sim-project a:focus-visible, .text2sim-project summary:focus-visible, .text2sim-project input:focus-visible { outline:3px solid #a67b42;outline-offset:5px }
.text2sim-project button { color:inherit }
.text2sim-project img { display:block;width:100%;height:auto }
.text2sim-project p+p { margin-top:16px }
.text2sim-project small, .text2sim-project .small { font-size:16px;color:var(--muted) }
.text2sim-project .lang { background:transparent;border:1px solid var(--line);border-radius:3px;padding:3px 11px;font-size:16px;white-space:nowrap }
.text2sim-project .lang:hover { background:var(--light) }
.text2sim-project .layout { max-width:1320px;padding:0 42px;margin:auto;display:grid;grid-template-columns:150px minmax(0,1fr);gap:46px }
.text2sim-project .toc { position:sticky;top:30px;align-self:start;padding-top:48px;font-size:15px }
.text2sim-project .toc summary { display:none }
.text2sim-project .toc-label { font-size:14px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-bottom:20px }
.text2sim-project .toc a { display:flex;gap:12px;color:var(--muted);line-height:1.4;padding:10px 0;border-right:2px solid transparent }
.text2sim-project .toc a.active { color:var(--green);border-color:var(--green);font-weight:600 }
.text2sim-project .toc a em { font-size:14px;font-style:normal;opacity:.65;min-width:15px;padding-top:2px }
.text2sim-project .toc-foot { border-top:1px solid var(--line);padding-top:20px;margin-top:24px;color:var(--muted);font-size:14px;line-height:1.7 }
.text2sim-project .main { min-width:0 }
.text2sim-project .hero { padding:46px 0 0 }
.text2sim-project .back { font-size:15px }
.text2sim-project .eyebrow { font-size:14px;letter-spacing:.16em;text-transform:uppercase;color:var(--green);font-weight:600;margin-bottom:14px;display:block }
.text2sim-project .hero .eyebrow { margin-top:32px }
.text2sim-project .title-line { display:flex;align-items:center;gap:20px;flex-wrap:wrap }
.text2sim-project .version { font:14px/1.4 var(--sans);color:var(--green);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);border-radius:30px;padding:5px 10px;margin-top:15px }
.text2sim-project .hero-subtitle { font:clamp(24px,3vw,37px)/1.28 var(--serif);margin:18px 0;color:#566253;max-width:700px;letter-spacing:-.02em }
.text2sim-project .hero-intro { max-width:690px;color:var(--muted);font-size:18px;margin:20px 0 25px;line-height:1.85 }
.text2sim-project .hero-actions { display:flex;gap:26px;align-items:center;margin:25px 0 32px;font-size:16px }
.text2sim-project .button-link { display:inline-flex;gap:20px;align-items:center;padding:10px 18px;background:var(--green);color:#fff;border-radius:3px }
.text2sim-project .button-link:hover { background:#254f3d;text-decoration:none }
.text2sim-project .hero-figure { position:relative;overflow:hidden;border-radius:5px }
.text2sim-project .hero-figure img { aspect-ratio:16/9;object-fit:cover;object-position:center 48% }
.text2sim-project .figure-label { position:absolute;left:17px;bottom:15px;background:rgba(24,37,29,.88);color:#f4f7ef;padding:5px 11px;font-size:14px;letter-spacing:.06em;border-radius:2px }
.text2sim-project .caption { display:flex;justify-content:space-between;gap:18px;align-items:flex-start;font-size:14px;line-height:1.6;color:var(--muted);padding:12px 0 }
.text2sim-project .caption strong { font-weight:500;color:var(--green) }
.text2sim-project .stats { display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin:17px 0 0;gap:15px }
.text2sim-project .stat { border-left:1px solid var(--line);padding-left:24px }
.text2sim-project .stat:first-child { border:0;padding:0 }
.text2sim-project .stat b { font:35px/1.2 var(--serif);display:block }
.text2sim-project .stat span { display:block;font-size:14px;color:var(--muted);margin-top:7px }
.text2sim-project .section { padding:70px 0;border-bottom:1px solid var(--line) }
.text2sim-project .section-heading { margin-bottom:26px }
.text2sim-project .section-intro { max-width:735px;font-size:18px;color:var(--muted);margin-top:18px }
.text2sim-project .section-number { font-size:14px;letter-spacing:.15em;color:var(--green);margin-bottom:13px }
.text2sim-project .section-number b { font-weight:500;margin-right:10px;opacity:.65 }
.text2sim-project .split { display:grid;grid-template-columns:1fr 1fr;gap:36px }
.text2sim-project .prose { font-size:17px;line-height:1.85 }
.text2sim-project .prose p { color:var(--muted) }
.text2sim-project .prose h3 { margin-bottom:15px }
.text2sim-project .pipeline { display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);margin:34px 0 24px;padding-top:20px;gap:16px }
.text2sim-project .pipeline-step { position:relative }
.text2sim-project .pipeline-step:not(:last-child):after { content:"→";position:absolute;right:3px;top:0;color:#a2afa3 }
.text2sim-project .step-no { font:italic 20px var(--serif);color:#82957c }
.text2sim-project .pipeline h3 { font:600 15px/1.4 var(--sans);margin:14px 0 9px }
.text2sim-project .pipeline p { font-size:14px;line-height:1.65;color:var(--muted) }
.text2sim-project .note { background:#f0f3ed;border-left:2px solid #708f62;padding:15px 18px;font-size:15px;line-height:1.85;color:#5f6b5c }
.text2sim-project .note strong { color:var(--ink) }
.text2sim-project .note a { text-decoration:underline }
.text2sim-project .pill-row { display:flex;gap:6px;flex-wrap:wrap }
.text2sim-project .pill { font-size:14px;border:1px solid var(--line);padding:2px 8px;border-radius:3px;color:var(--muted) }
.text2sim-project .filters { display:flex;gap:7px;flex-wrap:wrap;margin-bottom:21px }
.text2sim-project .filter, .text2sim-project .view-button, .text2sim-project .sensor-button { background:transparent;border:1px solid var(--line);border-radius:3px;font-size:15px;padding:7px 16px;line-height:1.5 }
.text2sim-project .filter[aria-pressed=true], .text2sim-project .view-button[aria-pressed=true], .text2sim-project .sensor-button[aria-pressed=true] { background:var(--green);color:white;border-color:var(--green) }
.text2sim-project .filter:hover, .text2sim-project .view-button:hover, .text2sim-project .sensor-button:hover { border-color:var(--green) }
.text2sim-project .explorer { display:grid;grid-template-columns:minmax(0,1.85fr) minmax(190px,1fr);border:1px solid var(--line);border-radius:4px;overflow:hidden }
.text2sim-project .scene-display { background:#edf0e9;position:relative;align-self:start }
.text2sim-project .zoom { padding:0;border:0;background:none;display:block;width:100%;text-align:left;position:relative }
.text2sim-project .zoom:after { content:"↗";position:absolute;bottom:12px;right:13px;background:rgba(253,253,252,.92);color:var(--green);width:30px;height:30px;line-height:30px;text-align:center;border-radius:50%;font-size:20px }
.text2sim-project .scene-display img { aspect-ratio:4/3;object-fit:contain }
.text2sim-project .scene-info { padding:22px;background:#f7f8f4;min-width:0 }
.text2sim-project .scene-info h3 { font-size:27px;margin:7px 0 15px }
.text2sim-project .scene-info dl { display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:14px;line-height:1.5;margin:14px 0 }
.text2sim-project .scene-info dt { color:var(--muted) }
.text2sim-project .scene-info dd { margin:3px 0 0;font-size:16px }
.text2sim-project .scene-blurb { font-size:15px;line-height:1.75;color:var(--muted);margin-bottom:16px }
.text2sim-project .views { display:flex;gap:6px;flex-wrap:wrap;margin-top:16px }
.text2sim-project .view-button { font-size:14px;padding:4px 8px }
.text2sim-project .scene-strip { display:grid;grid-template-columns:repeat(9,1fr);gap:8px;margin-top:14px }
.text2sim-project .thumb { border:2px solid transparent;background:none;padding:3px;border-radius:3px;min-width:0 }
.text2sim-project .thumb img { aspect-ratio:4/3;object-fit:cover;border-radius:1px }
.text2sim-project .thumb span { font-size:13px;display:block;margin-top:4px;color:var(--muted) }
.text2sim-project .thumb[aria-pressed=true] { border-color:var(--green) }
.text2sim-project .thumb[hidden] { display:none }
.text2sim-project .scene-strip.filtered { grid-template-columns:repeat(3,minmax(0,1fr));max-width:400px }
.text2sim-project details { border-top:1px solid var(--line);margin-top:22px;padding-top:15px }
.text2sim-project summary { font-size:15px;color:var(--green);cursor:pointer }
.text2sim-project details p { margin-top:14px;color:var(--muted);font-size:15px;line-height:1.8 }
.text2sim-project .original-prompt { font:16px/1.9 var(--sans);white-space:pre-wrap;padding:18px;background:#f4f6f0;margin-top:13px;max-height:240px;overflow:auto }
.text2sim-project .compare { position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:4px;background:var(--light);--reveal:50% }
.text2sim-project .compare img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover }
.text2sim-project .compare .top-image { clip-path:inset(0 calc(100% - var(--reveal)) 0 0) }
.text2sim-project .compare-line { position:absolute;top:0;bottom:0;left:var(--reveal);width:2px;background:#fff;pointer-events:none }
.text2sim-project .compare-line:after { content:"↔";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--paper);border-radius:50%;color:var(--green);width:36px;height:36px;display:grid;place-items:center;box-shadow:0 2px 12px #0003 }
.text2sim-project .compare-tag { position:absolute;top:12px;background:#20372ee6;color:#fff;font-size:14px;padding:3px 8px;border-radius:2px }
.text2sim-project .compare-tag.left { left:12px }
.text2sim-project .compare-tag.right { right:12px }
.text2sim-project .compare-control { display:flex;align-items:center;gap:15px;margin:12px 0 0;font-size:14px;color:var(--muted) }
.text2sim-project input[type=range] { width:100%;accent-color:var(--green) }
.text2sim-project .engineering-list { display:grid;gap:21px }
.text2sim-project .engineering-item { border-top:1px solid var(--line);padding-top:14px;display:grid;grid-template-columns:30px 1fr;gap:12px }
.text2sim-project .engineering-item:first-child { border:0;padding-top:0 }
.text2sim-project .engineering-item b { font:italic 21px var(--serif);color:#8ca080 }
.text2sim-project .engineering-item h3 { font:600 16px/1.6 var(--sans);margin-bottom:6px }
.text2sim-project .engineering-item p { font-size:15px;color:var(--muted);line-height:1.85 }
.text2sim-project .sensor-layout { display:grid;grid-template-columns:minmax(0,1.5fr) minmax(210px,1fr);gap:30px }
.text2sim-project .sensor-buttons { display:flex;gap:6px;flex-wrap:wrap;margin-bottom:15px }
.text2sim-project .sensor-button { font-size:14px;padding:6px 12px }
.text2sim-project .sensor-image { border-radius:4px;overflow:hidden;background:#e7ece4 }
.text2sim-project .sensor-image img { aspect-ratio:4/3;object-fit:contain }
.text2sim-project .sensor-copy { padding-top:10px }
.text2sim-project .sensor-copy h3 { font-size:28px;margin-bottom:15px }
.text2sim-project .sensor-copy p { font-size:16px;color:var(--muted) }
.text2sim-project .legend { display:flex;flex-wrap:wrap;gap:10px;font-size:14px;margin-top:15px }
.text2sim-project .legend i { display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px }
.text2sim-project .depth-scale { height:10px;border-radius:2px;background:linear-gradient(90deg,#23204f,#355982,#279b9b,#7cc974,#f7e072);margin-top:18px }
.text2sim-project .scale-labels { display:flex;justify-content:space-between;font-size:14px;margin-top:5px;color:var(--muted) }
.text2sim-project .code { font:14px/1.8 Consolas,monospace;background:#f0f3ed;padding:20px;overflow:auto;max-height:330px;border-radius:3px;white-space:pre }
.text2sim-project .annotation-facts { display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px }
.text2sim-project .annotation-facts div { border-top:1px solid var(--line);padding-top:15px }
.text2sim-project .annotation-facts strong { display:block;font:26px var(--serif) }
.text2sim-project .annotation-facts span { display:block;font-size:14px;color:var(--muted);line-height:1.7;margin-top:8px }
.text2sim-project .asset-top { display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:center }
.text2sim-project .asset-big { display:flex;gap:35px;margin-bottom:20px }
.text2sim-project .asset-big strong { font:50px var(--serif);display:block }
.text2sim-project .asset-big span { font-size:15px;color:var(--muted) }
.text2sim-project .asset-gallery { display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:30px 0 15px }
.text2sim-project .asset-tile { min-width:0 }
.text2sim-project .asset-tile img { aspect-ratio:1;object-fit:contain;border-radius:3px;background:#edf0e9 }
.text2sim-project .asset-tile figcaption { font-size:14px;text-align:center;padding-top:8px;color:var(--muted) }
.text2sim-project .enriched-gallery { display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:28px }
.text2sim-project .enriched-gallery img { aspect-ratio:4/3;object-fit:cover;border-radius:3px }
.text2sim-project .enriched-gallery figcaption { font-size:14px;margin-top:7px }
.text2sim-project .categories { display:grid;grid-template-columns:repeat(3,1fr);gap:7px 25px;padding-top:20px }
.text2sim-project .category { font-size:14px;display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:4px 0 }
.text2sim-project .category b { font-weight:500;color:var(--green) }
.text2sim-project .experiment-overview { display:grid;grid-template-columns:1fr 1.4fr;gap:35px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0;margin-bottom:28px }
.text2sim-project .experiment-score { font:58px/1.1 var(--serif);color:var(--green) }
.text2sim-project .experiment-score span { font-size:26px }
.text2sim-project .experiment-label { font-size:15px;color:var(--muted);margin-top:10px }
.text2sim-project .experiment-note { font-size:16px;color:var(--muted) }
.text2sim-project .retrieval-formula { font:italic 19px var(--serif);color:var(--green);margin-bottom:14px }
.text2sim-project .metric-tabs { display:flex;gap:7px;flex-wrap:wrap;margin:20px 0 }
.text2sim-project .metric-title { font:500 16px var(--sans);margin:20px 0 14px }
.text2sim-project .bar-row { display:grid;grid-template-columns:138px 1fr 62px;gap:12px;align-items:center;font-size:15px;margin:14px 0 }
.text2sim-project .bar-track { height:15px;background:#eef1ea;border-radius:2px;overflow:hidden }
.text2sim-project .bar { height:100%;background:#b0bbaa;border-radius:2px;width:0;transition:width .4s }
.text2sim-project .bar.crop { background:var(--green) }
.text2sim-project .bar-value { text-align:right;font-variant-numeric:tabular-nums }
.text2sim-project .metric-explanation { font-size:15px;color:var(--muted);margin:18px 0 22px;min-height:44px }
.text2sim-project .table-wrap { overflow:auto;margin-top:20px }
.text2sim-project table { width:100%;border-collapse:collapse;font-size:14px;line-height:1.6;text-align:left }
.text2sim-project th { color:var(--green);font-weight:600 }
.text2sim-project th, .text2sim-project td { padding:12px 10px;border-bottom:1px solid var(--line) }
.text2sim-project td:first-child, .text2sim-project th:first-child { padding-left:0 }
.text2sim-project th:not(:first-child), .text2sim-project td:not(:first-child) { text-align:right;white-space:nowrap }
.text2sim-project .crop-figure { margin:22px 0 0 }
.text2sim-project .crop-figure img { max-height:530px;object-fit:contain;background:#16242d;border-radius:4px }
.text2sim-project .roadmap { margin-top:30px }
.text2sim-project .milestone { display:grid;grid-template-columns:130px 1fr;gap:27px;padding:20px 0;border-top:1px solid var(--line) }
.text2sim-project .milestone-date { font-size:14px;color:var(--muted) }
.text2sim-project .milestone h3 { font:500 18px/1.5 var(--sans);margin-bottom:8px }
.text2sim-project .milestone p { font-size:15px;color:var(--muted) }
.text2sim-project .next-grid { display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:30px }
.text2sim-project .next-grid h3 { font-size:23px;margin-bottom:13px }
.text2sim-project .next-grid p { font-size:15px;color:var(--muted) }
.text2sim-project .credit-list { display:grid;grid-template-columns:1fr 1fr;gap:8px 25px;list-style:none;padding:0;font-size:14px;line-height:1.6;overflow-wrap:anywhere }
.text2sim-project .credit-list a { display:block }
.text2sim-project .credits p { font-size:15px;color:var(--muted) }
.text2sim-project .footer-links { display:flex;gap:20px }
.text2sim-project .end-link { display:inline-flex;gap:20px;margin-top:27px;font-size:16px }
.text2sim-project .lightbox { border:none;border-radius:6px;padding:16px;background:var(--paper);color:var(--ink);max-width:min(1280px,94vw);width:94vw;max-height:94vh;overflow:auto }
.text2sim-project .lightbox::backdrop { background:#17251ee8 }
.text2sim-project .lightbox img { width:auto;max-width:100%;max-height:77vh;margin:auto;object-fit:contain }
.text2sim-project .lightbox-head { display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:15px;margin-bottom:13px }
.text2sim-project .close-lightbox { padding:3px 13px;border:1px solid var(--line);background:none;border-radius:3px }
.text2sim-project .lightbox-caption { font-size:15px;color:var(--muted);margin-top:12px }
.text2sim-project .nojs { padding:12px;background:var(--light);font-size:16px }
.text2sim-project .divider-label { font-size:14px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);margin-top:28px }
@media (min-width:1450px) {
.text2sim-project .layout { gap:58px }
.text2sim-project .hero { padding-top:50px }
.text2sim-project .section { padding:78px 0 }
}
@media (max-width:1050px) {
.text2sim-project .layout { grid-template-columns:120px minmax(0,1fr);gap:28px;padding:0 28px }
.text2sim-project .explorer { grid-template-columns:1.6fr 1fr }
.text2sim-project .scene-info { padding:16px }
.text2sim-project .scene-info h3 { font-size:24px }
.text2sim-project .split { gap:25px }
.text2sim-project .pipeline { gap:10px }
.text2sim-project .pipeline-step:not(:last-child):after { right:0 }
.text2sim-project .sensor-layout { gap:22px }
.text2sim-project .hero-subtitle { font-size:30px }
.text2sim-project .asset-gallery { grid-template-columns:repeat(3,1fr) }
.text2sim-project .asset-tile img { max-height:170px }
.text2sim-project .bar-row { grid-template-columns:115px 1fr 60px }
}
@media (max-width:760px) {
html { scroll-padding-top:65px }
.text2sim-project .layout { display:block;padding:0 22px }
.text2sim-project .toc { position:sticky;top:0;padding:0;margin:0 -22px;z-index:20;background:rgba(253,253,252,.97);border-bottom:1px solid var(--line) }
.text2sim-project .toc details { margin:0;padding:0;border:0 }
.text2sim-project .toc summary { display:flex;justify-content:space-between;padding:12px 22px;font-size:15px }
.text2sim-project .toc summary:after { content:"+" }
.text2sim-project .toc details[open] summary:after { content:"−" }
.text2sim-project .toc-label, .text2sim-project .toc-foot { display:none }
.text2sim-project .toc-nav { padding:0 22px 15px;display:grid;grid-template-columns:1fr 1fr;gap:0 18px }
.text2sim-project .toc a { padding:8px 0;border:0 }
.text2sim-project .hero { padding-top:30px }
.text2sim-project .hero .eyebrow { margin-top:25px;font-size:13px }
.text2sim-project .hero-subtitle { font-size:29px }
.text2sim-project .hero-intro { font-size:17px }
.text2sim-project .hero-figure img { aspect-ratio:4/3 }
.text2sim-project .caption { font-size:14px }
.text2sim-project .stats { padding:19px 0;gap:10px }
.text2sim-project .stat { padding-left:13px }
.text2sim-project .stat b { font-size:29px }
.text2sim-project .stat span { font-size:14px }
.text2sim-project .section { padding:49px 0 }
.text2sim-project .section-intro { font-size:17px }
.text2sim-project .pipeline { grid-template-columns:repeat(3,1fr);gap:24px 18px }
.text2sim-project .pipeline-step:not(:last-child):after { display:none }
.text2sim-project .split, .text2sim-project .sensor-layout { grid-template-columns:1fr;gap:25px }
.text2sim-project .explorer { grid-template-columns:1.5fr 1fr }
.text2sim-project .scene-info h3 { font-size:25px }
.text2sim-project .scene-info dl { gap:6px }
.text2sim-project .scene-blurb { font-size:14px }
.text2sim-project .scene-strip { gap:4px }
.text2sim-project .thumb { padding:1px }
.text2sim-project .thumb span { font-size:13px }
.text2sim-project .sensor-copy { padding-top:0 }
.text2sim-project .engineering-list { gap:18px }
.text2sim-project .asset-top { grid-template-columns:1fr }
.text2sim-project .asset-big { margin:0 }
.text2sim-project .experiment-overview { gap:22px }
.text2sim-project .next-grid { gap:22px }
.text2sim-project .figure-label { font-size:13px;left:10px;bottom:10px }
}
@media (max-width:460px) {
.text2sim-project .lang { margin-left:auto }
.text2sim-project .layout { padding:0 18px }
.text2sim-project .toc { margin:0 -18px }
.text2sim-project .toc summary { padding:12px 18px }
.text2sim-project .toc-nav { padding-left:18px;padding-right:18px }
.text2sim-project .title-line { gap:8px }
.text2sim-project .version { font-size:13px;margin-top:11px }
.text2sim-project .hero-subtitle { font-size:27px }
.text2sim-project .hero-actions { gap:19px;font-size:15px;flex-wrap:wrap }
.text2sim-project .button-link { padding:9px 13px }
.text2sim-project .stats { grid-template-columns:repeat(2,1fr);gap:20px }
.text2sim-project .stat:nth-child(3) { border:0;padding:0 }
.text2sim-project .stat b { font-size:33px }
.text2sim-project .stat span { font-size:14px }
.text2sim-project .caption { display:block }
.text2sim-project .caption>span { display:block }
.text2sim-project .caption>span+span { margin-top:5px }
.text2sim-project .pipeline { grid-template-columns:1fr 1fr }
.text2sim-project .explorer { grid-template-columns:1fr }
.text2sim-project .scene-info { padding:18px }
.text2sim-project .scene-info h3 { font-size:26px }
.text2sim-project .scene-info dl { grid-template-columns:1fr 1fr 1fr }
.text2sim-project .scene-blurb { font-size:15px }
.text2sim-project .scene-strip { grid-template-columns:repeat(3,1fr);gap:8px }
.text2sim-project .thumb span { font-size:14px }
.text2sim-project .scene-strip.filtered { max-width:none }
.text2sim-project .annotation-facts { gap:10px }
.text2sim-project .annotation-facts strong { font-size:24px }
.text2sim-project .annotation-facts span { font-size:14px }
.text2sim-project .asset-gallery { gap:12px }
.text2sim-project .asset-tile figcaption { font-size:14px }
.text2sim-project .enriched-gallery { grid-template-columns:1fr;gap:23px }
.text2sim-project .enriched-gallery img { aspect-ratio:16/10 }
.text2sim-project .categories { grid-template-columns:1fr 1fr }
.text2sim-project .experiment-overview { grid-template-columns:1fr;gap:18px }
.text2sim-project .metric-tabs .filter { font-size:14px;padding:6px 10px }
.text2sim-project .bar-row { grid-template-columns:100px 1fr 55px;gap:8px;font-size:14px }
.text2sim-project .milestone { grid-template-columns:80px 1fr;gap:15px }
.text2sim-project .next-grid { grid-template-columns:1fr }
.text2sim-project .credit-list { grid-template-columns:1fr }
.text2sim-project .footer-links { margin-top:14px;flex-wrap:wrap;gap:14px }
.text2sim-project .lightbox { padding:10px }
.text2sim-project .lightbox-head { font-size:14px }
}
@media (prefers-reduced-motion:reduce) {
html { scroll-behavior:auto }
.text2sim-project .bar { transition:none }
}
@media print {
.text2sim-project .toc, .text2sim-project .hero-actions, .text2sim-project .filters, .text2sim-project .views, .text2sim-project .sensor-buttons, .text2sim-project .metric-tabs, .text2sim-project .zoom:after { display:none }
.text2sim-project .layout { display:block;padding:0 }
.text2sim-project .main { max-width:100% }
.text2sim-project .section { break-inside:avoid;padding:25px 0 }
.text2sim-project .hero { padding-top:20px }
.text2sim-project .hero-figure img { max-height:350px;object-fit:contain }
.text2sim-project .lightbox { display:none }
.text2sim-project .stats { margin-top:5px }
.text2sim-project a { color:inherit }
}
.text2sim-project .room-highlights { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:28px }
.text2sim-project .room-highlights img { aspect-ratio:4/3;object-fit:cover;border-radius:3px }
.text2sim-project .room-highlights figcaption { font:18px var(--serif);margin-top:10px;color:var(--green) }
.text2sim-project .collection-tabs { display:flex;border-bottom:1px solid var(--line);gap:28px;flex-wrap:wrap }
.text2sim-project .collection-button { background:none;border:0;border-bottom:2px solid transparent;padding:12px 0;text-align:left;font-size:17px;color:var(--muted) }
.text2sim-project .collection-button span { display:block;font-size:14px;margin-top:4px;letter-spacing:.04em }
.text2sim-project .collection-button[aria-pressed=true] { color:var(--green);border-color:var(--green) }
.text2sim-project .collection-note { font-size:14px;color:var(--muted);margin:13px 0 22px }
.text2sim-project .scene-strip { grid-template-columns:repeat(5,minmax(0,1fr));gap:10px }
.text2sim-project .thumb span { font-size:14px;line-height:1.5;min-height:30px }
.text2sim-project .scene-info .eyebrow { font-size:13px;letter-spacing:.08em;overflow-wrap:anywhere }
.text2sim-project .scene-info dl { grid-template-columns:1fr 1fr }
.text2sim-project .view-button[hidden], .text2sim-project .filter[hidden] { display:none }
.text2sim-project .original-prompt { overflow-wrap:anywhere;font-size:15px }
.text2sim-project .baseline-stats { margin-bottom:12px }
.text2sim-project .baseline-note { font-size:14px;margin-bottom:26px }
.text2sim-project .chair-figure { margin-top:27px }
.text2sim-project .chair-figure img { border-radius:4px }
.text2sim-project .table-contact { margin-top:17px }
.text2sim-project .table-contact img { max-height:740px;object-fit:contain;background:#f2f4ee }
.text2sim-project .evaluation-scope { font-size:14px;margin-bottom:20px }
.text2sim-project .latest-milestone { border-left:2px solid var(--green);padding-left:15px;background:linear-gradient(90deg,#eff3eb,transparent) }
@media (max-width:760px) {
.text2sim-project .scene-strip { grid-template-columns:repeat(3,minmax(0,1fr));gap:7px }
.text2sim-project .thumb span { font-size:13px }
.text2sim-project .collection-tabs { gap:22px }
.text2sim-project .collection-button { font-size:16px }
.text2sim-project .room-highlights { gap:10px }
.text2sim-project .room-highlights .zoom:after { width:23px;height:23px;line-height:23px;font-size:17px;right:6px;bottom:6px }
.text2sim-project .room-highlights figcaption { font-size:16px }
}
@media (max-width:460px) {
.text2sim-project .collection-tabs { gap:18px }
.text2sim-project .collection-button { font-size:15px }
.text2sim-project .collection-button span { font-size:13px }
.text2sim-project .scene-info dl { grid-template-columns:1fr 1fr 1fr }
.text2sim-project .thumb span { font-size:13px }
.text2sim-project .room-highlights figcaption { font-size:15px }
.text2sim-project .room-highlights { gap:8px }
.text2sim-project .room-highlights .zoom:after { display:none }
.text2sim-project .latest-milestone { padding-left:10px;gap:12px;grid-template-columns:72px 1fr }
}
@media print {
.text2sim-project .collection-tabs { display:none }
}
.text2sim-project .layout { grid-template-columns:170px minmax(0,1fr);gap:36px }
.text2sim-project .toc { font-size:15px }
.text2sim-project .toc a { padding:11px 0;line-height:1.5 }
.text2sim-project .hero-intro, .text2sim-project .section-intro { max-width:790px }
.text2sim-project .scene-blurb, .text2sim-project .sensor-copy p, .text2sim-project .engineering-item p, .text2sim-project .note { line-height:1.85 }
.text2sim-project .scene-info { padding:24px }
.text2sim-project .scene-info dl { gap:14px }
.text2sim-project .scene-info dd { font-size:17px }
.text2sim-project .scene-strip { grid-template-columns:repeat(4,minmax(0,1fr)) }
.text2sim-project .thumb span { min-height:42px;line-height:1.5 }
.text2sim-project .sensor-button, .text2sim-project .filter, .text2sim-project .collection-button { min-height:44px }
.text2sim-project .sensor-copy h3 { font-size:30px;line-height:1.25 }
.text2sim-project .sensor-buttons { gap:9px }
.text2sim-project .legend { gap:12px 18px;line-height:1.6 }
.text2sim-project .legend i { width:11px;height:11px;margin-right:7px }
.text2sim-project .pose-controls { display:flex;align-items:center;gap:10px;width:fit-content;min-height:44px;margin-top:18px;cursor:pointer;font-size:16px;color:var(--green) }
.text2sim-project .pose-controls[hidden] { display:none }
.text2sim-project .pose-controls input { width:20px;height:20px;accent-color:var(--green);cursor:pointer }
.text2sim-project .view-button { min-width:40px;min-height:38px }
.text2sim-project .small, .text2sim-project figcaption { line-height:1.7 }
.text2sim-project .original-prompt { max-height:320px }
.text2sim-project .code { line-height:1.7 }
.text2sim-project .pill { padding:4px 10px }
.text2sim-project .bar-row { grid-template-columns:145px 1fr 76px }
.text2sim-project .scene-status { overflow-wrap:anywhere }
@media (max-width:1050px) {
.text2sim-project .layout { grid-template-columns:145px minmax(0,1fr);gap:28px }
.text2sim-project .scene-info { padding:18px }
.text2sim-project .scene-info dl { grid-template-columns:1fr }
.text2sim-project .scene-strip { grid-template-columns:repeat(3,minmax(0,1fr)) }
}
@media (max-width:900px) {
.text2sim-project .explorer { grid-template-columns:1fr }
.text2sim-project .scene-info dl { grid-template-columns:repeat(3,minmax(0,1fr)) }
.text2sim-project .sensor-layout { grid-template-columns:1fr }
.text2sim-project .sensor-copy { padding-top:0 }
.text2sim-project .scene-strip { grid-template-columns:repeat(3,minmax(0,1fr)) }
.text2sim-project .pipeline { grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 18px }
.text2sim-project .pipeline-step:not(:last-child):after { display:none }
}
@media (max-width:760px) {
.text2sim-project .layout { display:block }
.text2sim-project .toc { font-size:15px }
.text2sim-project .hero-intro, .text2sim-project .section-intro, .text2sim-project .prose { font-size:17px }
.text2sim-project .scene-info dl { gap:12px }
.text2sim-project .scene-blurb, .text2sim-project .sensor-copy p { font-size:17px }
.text2sim-project .scene-info .eyebrow { font-size:13px }
.text2sim-project .scene-strip { gap:10px }
.text2sim-project .thumb span { font-size:13px }
.text2sim-project .room-highlights figcaption { font-size:16px }
.text2sim-project .collection-button { font-size:16px }
.text2sim-project .collection-button span { font-size:14px }
.text2sim-project .collection-tabs { gap:20px }
.text2sim-project .bar-row { grid-template-columns:128px 1fr 70px }
}
@media (max-width:460px) {
.text2sim-project .lang { font-size:15px;padding:5px 10px }
.text2sim-project .scene-strip { grid-template-columns:repeat(2,minmax(0,1fr)) }
.text2sim-project .scene-info dl { grid-template-columns:1fr 1fr }
.text2sim-project .filters { gap:8px }
.text2sim-project .filter { padding:9px 13px;font-size:15px }
.text2sim-project .collection-tabs { gap:16px;justify-content:space-between }
.text2sim-project .collection-button { font-size:15px }
.text2sim-project .collection-button span { font-size:13px }
.text2sim-project .collection-note { font-size:14px }
.text2sim-project .pipeline { grid-template-columns:1fr 1fr }
.text2sim-project .annotation-facts { grid-template-columns:1fr;gap:20px }
.text2sim-project .annotation-facts span { font-size:15px }
.text2sim-project .asset-gallery { grid-template-columns:repeat(2,minmax(0,1fr)) }
.text2sim-project .room-highlights { grid-template-columns:1fr;gap:22px }
.text2sim-project .room-highlights img { aspect-ratio:16/10 }
.text2sim-project .room-highlights figcaption { font-size:18px }
.text2sim-project .room-highlights .zoom:after { display:block }
.text2sim-project .bar-row { grid-template-columns:100px minmax(0,1fr) 63px;font-size:14px;gap:7px }
.text2sim-project .milestone, .text2sim-project .latest-milestone { grid-template-columns:1fr;gap:8px }
.text2sim-project .milestone-date br { display:none }
.text2sim-project .milestone-date { display:flex;gap:12px }
.text2sim-project .lightbox-head { font-size:14px }
.text2sim-project .lightbox-caption { font-size:15px;overflow-wrap:anywhere }
.text2sim-project .close-lightbox { padding:6px 12px;white-space:nowrap }
.text2sim-project .scene-info .eyebrow { letter-spacing:.04em }
.text2sim-project #scene-status { overflow-wrap:anywhere }
.text2sim-project .stat b { font-size:36px }
.text2sim-project .stat span { font-size:14px }
}
.text2sim-project .annotation-facts strong span { display:inline;font:inherit;color:inherit;margin:0 }
.text2sim-project .credits details p { overflow-wrap:anywhere }
.text2sim-project .g1-demo { scroll-margin-top:28px }
.text2sim-project .g1-video-frame { position:relative;border-radius:5px;overflow:hidden;background:#17251e }
.text2sim-project .g1-video-frame video { display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain }
.text2sim-project .video-badge { position:absolute;top:16px;left:16px;max-width:calc(100% - 32px);padding:5px 10px;background:#17251edb;color:#fdfdfc;font-size:13px;letter-spacing:.04em;pointer-events:none }
.text2sim-project .video-actions { display:flex;gap:20px 25px;align-items:center;flex-wrap:wrap;margin:10px 0 30px;font-size:16px }
.text2sim-project .video-actions button { border:0;font-size:16px;min-height:44px }
.text2sim-project .video-actions a { cursor:pointer }
.text2sim-project .video-actions .small { display:block;font-size:13px }
.text2sim-project .video-error { margin:12px 0;color:#8b3e29 }
.text2sim-project .video-error[hidden] { display:none }
.text2sim-project .robot-facts { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:23px 0;margin:28px 0 }
.text2sim-project .robot-facts strong { display:block;font:38px/1.2 var(--serif) }
.text2sim-project .robot-facts strong small { font:22px var(--serif);color:inherit }
.text2sim-project .robot-facts span { display:block;font-size:15px;color:var(--muted);margin-top:9px }
.text2sim-project .robot-gallery { display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:22px }
.text2sim-project .robot-gallery img { aspect-ratio:4/3;object-fit:contain;border-radius:4px }
.text2sim-project .robot-gallery .caption { font-size:15px }
.text2sim-project .robot-source { margin-top:20px;font-size:15px }
.text2sim-project .robot-source a { display:inline-block;margin-top:8px }
@media (max-width:760px) {
.text2sim-project .video-actions { gap:16px;font-size:15px }
.text2sim-project .video-badge { top:10px;left:10px;font-size:12px;max-width:calc(100% - 20px) }
.text2sim-project .robot-gallery { grid-template-columns:1fr;gap:20px }
.text2sim-project .robot-facts { gap:15px }
.text2sim-project .robot-facts strong { font-size:32px }
.text2sim-project .robot-facts span { font-size:14px }
}
@media (max-width:460px) {
.text2sim-project .video-badge { font-size:11px;padding:4px 7px;letter-spacing:0 }
.text2sim-project .video-actions { align-items:flex-start }
.text2sim-project .video-actions button { font-size:15px }
.text2sim-project .video-actions .small { font-size:13px }
.text2sim-project .robot-facts { grid-template-columns:1fr;gap:20px }
.text2sim-project .robot-facts>div { display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:center }
.text2sim-project .robot-facts span { margin:0;font-size:15px }
.text2sim-project .robot-facts strong { font-size:34px }
.text2sim-project .robot-source { font-size:15px }
}
@media print {
.text2sim-project .video-actions { display:none }
}
.text2sim-project .g1-video-frame video { max-height:72vh }

/* Match the portfolio's reading width, type scale and G1 contents layout. */
html { scroll-behavior: auto; }
.text2sim-project .site-header, .text2sim-project .site-footer, .text2sim-project .layout { width: min(1172px, calc(100% - 64px)); max-width: none; margin-inline: auto; }
.text2sim-project .site-name { color: var(--text); }
.text2sim-project .site-nav a { color: var(--muted); }
.text2sim-project .site-nav a:hover { color: var(--link); }
.text2sim-project .layout { grid-template-columns: 180px minmax(0, 1fr); gap: 32px; padding: 0; }
.text2sim-project .main { min-width: 0; }
.text2sim-project .main p, .text2sim-project .main figure { margin-bottom: 0; }
.text2sim-project .main figure { margin-inline: 0; }
.text2sim-project .main p + p { margin-top: 16px; }
.text2sim-project .hero { padding-top: 43px; }
.text2sim-project .hero .back { display: inline-flex; align-items: center; min-height: 36px; margin-bottom: 20px; }
.text2sim-project .hero .eyebrow { font-size: 12px; letter-spacing: .1em; margin-top: 6px; }
.text2sim-project .title-line { gap: 16px; }
.text2sim-project .title-line h1 { font-size: 36px; letter-spacing: -.035em; margin: 0; }
.text2sim-project .version { font-size: 12px; margin: 0; border-radius: 3px; }
.text2sim-project .hero-subtitle { font-size: 24px; line-height: 1.45; margin-top: 16px; }
.text2sim-project .hero-intro { max-width: 880px; font-size: 18px; }
.text2sim-project .hero-actions { margin-block: 24px; }
.text2sim-project .section { padding: 36px 0 40px; scroll-margin-top: 24px; }
.text2sim-project .section-heading { display: block; margin-bottom: 24px; }
.text2sim-project .section-heading h2 { font-size: 29px; line-height: 1.35; margin-bottom: 16px; }
.text2sim-project .section-number { font-size: 12px; letter-spacing: .1em; margin-bottom: 7px; }
.text2sim-project .section-intro, .text2sim-project .prose { font-size: 18px; }
.text2sim-project .split > *, .text2sim-project .asset-top > *, .text2sim-project .experiment-overview > *, .text2sim-project .sensor-layout > * { min-width: 0; }
.text2sim-project .caption, .text2sim-project .scene-blurb, .text2sim-project .note, .text2sim-project .engineering-item p, .text2sim-project details p, .text2sim-project .credits p, .text2sim-project .milestone p, .text2sim-project .next-grid p, .text2sim-project .collection-note, .text2sim-project .evaluation-scope, .text2sim-project .metric-explanation { font-size: 16px; }
.text2sim-project summary { min-height: 40px; font-size: 16px; }
.text2sim-project .scene-info .eyebrow { margin-bottom: 10px; }
.text2sim-project .scene-info dl, .text2sim-project .pipeline p, .text2sim-project .stat span, .text2sim-project .annotation-facts span, .text2sim-project .robot-facts span { font-size: 15px; }
.text2sim-project .scene-info h3, .text2sim-project .sensor-copy h3 { font-size: 24px; line-height: 1.35; }
.text2sim-project .table-wrap { max-width: 100%; }
.text2sim-project table { font-size: 16px; }
.text2sim-project .toc { top: 28px; padding-top: 0; margin: 43px 0 0; }
.text2sim-project .toc details { margin: 0; padding: 0; border: 0; }
.text2sim-project .toc summary { display: block; font-size: 14px; font-weight: 600; padding: 6px 8px 12px; color: var(--text); }
.text2sim-project .toc summary > span:last-child, .text2sim-project .toc-label { display: none; }
.text2sim-project .toc-nav { display: grid; grid-template-columns: 1fr; gap: 2px; padding: 4px 6px; max-height: calc(100dvh - 270px); overflow-y: auto; overscroll-behavior: contain; }
.text2sim-project .toc a { align-items: baseline; gap: 6px; border-right: 0; border-left: 2px solid transparent; min-height: 42px; padding: 8px 6px; font-size: 15px; line-height: 1.55; }
.text2sim-project .toc a em { font-size: 12px; min-width: 20px; padding-top: 0; }
.text2sim-project .toc a.active { background: #f0f4ed; border-left-color: var(--link); font-weight: 400; }
.text2sim-project .toc a:hover { background: #f5f7f3; color: var(--link); text-decoration: none; }
.text2sim-project .toc-foot { padding: 14px 8px 0; margin-top: 14px; font-size: 13px; }
.text2sim-project .site-footer { margin-top: 0; }
.text2sim-project .lightbox { color: var(--text); }
@media (max-width: 1199px) {
  .text2sim-project .site-header, .text2sim-project .site-footer, .text2sim-project .layout { width: min(960px, calc(100% - 64px)); }
  .text2sim-project .layout { display: block; padding: 0; }
  .text2sim-project .toc { top: 0; margin: 0; padding: 0; z-index: 5; background: var(--paper); border-bottom: 1px solid var(--line); }
  .text2sim-project .toc summary { display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 12px 8px; font-size: 15px; }
  .text2sim-project .toc summary > span:last-child { display: inline; color: var(--muted); font-weight: 400; }
  .text2sim-project .toc summary::after { display: none; }
  .text2sim-project .toc-nav { max-height: calc(100dvh - 100px); padding-bottom: 10px; grid-template-columns: 1fr; }
  .text2sim-project .toc-foot { display: none; }
  .text2sim-project .section, .text2sim-project .g1-demo { scroll-margin-top: 72px; }
}
@media (max-width: 800px) {
  .text2sim-project .site-header, .text2sim-project .site-footer, .text2sim-project .layout { width: calc(100% - 44px); }
}
@media (max-width: 720px) {
  .text2sim-project .hero { padding-top: 28px; }
  .text2sim-project .hero-intro, .text2sim-project .section-intro, .text2sim-project .prose { font-size: 17px; }
  .text2sim-project .section { padding-block: 28px 32px; }
  .text2sim-project .section-heading h2 { font-size: 27px; }
  .text2sim-project .split, .text2sim-project .asset-top, .text2sim-project .sensor-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
@media (max-width: 570px) {
  .text2sim-project .site-header, .text2sim-project .site-footer, .text2sim-project .layout { width: calc(100% - 36px); }
  .text2sim-project .site-nav { gap: 0 17px; }
  .text2sim-project .lang { margin-left: 0; font-size: 15px; min-height: 36px; }
  .text2sim-project .pipeline { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .text2sim-project .pipeline-step { padding-left: 14px; border-left: 2px solid var(--line); }
  .text2sim-project .pipeline h3 { font-size: 16px; margin-block: 6px; }
  .text2sim-project .pipeline p { font-size: 16px; }
  .text2sim-project .asset-big { flex-wrap: wrap; gap: 20px; }
  .text2sim-project .site-footer { display: block; }
  .text2sim-project .footer-links { margin-top: 10px; }
}
@media print {
  .text2sim-project .layout { display: block; width: 100%; }
  .text2sim-project .site-header, .text2sim-project .site-footer { width: 100%; }
  .text2sim-project .section { break-inside: auto; }
}
