:root { --blue:#3273dc; --ink:#222; --muted:#555; --light:#f5f5f5; --border:#dedede; --green:#218739; --red:#e35f6f; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font:16px/1.6 Arial,"Helvetica Neue",sans-serif; }
img { display:block; max-width:100%; }
a { color:var(--blue); }
.container { width:min(calc(100% - 40px),1000px); margin:0 auto; }
.container.narrow { max-width:960px; }
.container.text-width { max-width:800px; }
.container.wide { max-width:1120px; }
.centered { text-align:center; }
.skip-link { position:fixed; z-index:10; top:10px; left:10px; padding:8px 12px; color:#fff; background:#222; transform:translateY(-150%); }
.skip-link:focus { transform:none; }

.publication-header { padding:68px 0 32px; }
.publication-header h1 { max-width:930px; margin:0 auto 22px; font:700 clamp(35px,5vw,53px)/1.12 Arial,"Helvetica Neue",sans-serif; letter-spacing:-.025em; }
.authors { display:flex; flex-wrap:wrap; justify-content:center; gap:2px 16px; font-size:20px; }
.authors a { text-decoration:none; }
.authors a:hover { text-decoration:underline; }
.authors sup,.affiliations sup { margin-left:2px; color:var(--ink); font-size:.62em; }
.affiliations { margin-top:8px; color:#444; font-size:17px; }
.affiliations p { margin:0; }
.conference { margin:10px 0 0; font-size:18px; font-weight:700; }
.institution-logos { min-height:90px; margin:23px auto 20px; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:25px; }
.spacer-logo { width:76px; height:76px; border-radius:50%; object-fit:cover; }
.ice2thrust-panel { width:250px; padding:9px 13px; display:flex; align-items:center; border-radius:4px; background:#061b3c; }
.ice2thrust-panel img { width:100%; }
.corl-logo { width:125px; height:63px; object-fit:contain; }
.publication-links { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; }
.resource-button { min-width:108px; min-height:43px; padding:9px 17px; border:0; border-radius:999px; display:inline-flex; justify-content:center; align-items:center; gap:8px; color:#fff; background:#363636; font:500 15px Arial,"Helvetica Neue",sans-serif; text-decoration:none; cursor:pointer; }
.resource-button:hover { color:#fff; background:#1f1f1f; }
.button-icon { font-size:19px; line-height:1; }
.code-icon { font:700 13px monospace; }

.teaser { padding:24px 0 46px; }
.trajectory-figure { max-width:780px; margin:0 auto; padding:12px 13px 7px; border:1px solid var(--border); border-radius:5px; background:#fff; }
.trajectory-heading { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:0 4px 5px; color:#666; font-size:12px; }
.trajectory-heading button { padding:4px 9px; border:1px solid #bbb; border-radius:4px; color:#555; background:#fff; font:12px Arial,"Helvetica Neue",sans-serif; cursor:pointer; }
#trajectory-canvas { width:100%; height:auto; }
.teaser-caption { max-width:890px; margin:17px auto 0; color:#444; font-size:18px; text-align:center; }

.section { padding:64px 0 72px; }
.section.light { background:var(--light); }
.section h2 { margin:0 0 24px; font:700 34px/1.2 Arial,"Helvetica Neue",sans-serif; text-align:center; }
.section h3 { margin:0 0 10px; font-size:22px; }
.justified { text-align:justify; }
.justified p { margin:0 0 15px; }
.section-intro { max-width:810px; margin:-8px auto 34px; color:#444; font-size:18px; text-align:center; }
.core-summary { max-width:850px; }
.collapse-figure { max-width:820px; margin:36px auto 0; padding:15px 18px; border:1px solid var(--border); border-radius:5px; background:#fff; }
.collapse-figure svg { display:block; width:100%; height:auto; }
.panel-divider { stroke:#dedede; stroke-width:1; }
.active-region { fill:rgba(227,95,111,.06); stroke:rgba(227,95,111,.55); stroke-width:1.5; stroke-dasharray:7 6; }
.goal-region { fill:rgba(33,135,57,.07); stroke:#8abd95; stroke-width:1.5; }
.goal-body { fill:#fff; stroke:#174f24; stroke-width:2; }
.goal-heading { stroke:#177a31; stroke-width:2; }
.svg-grey { fill:#777; }
.svg-red { fill:var(--red); }
.svg-green { fill:#177a31; }
.approach-path { stroke:#777; stroke-width:2.5; }
.blocked-path { stroke:var(--red); stroke-width:2.5; stroke-dasharray:6 5; }
.arrowhead-red { stroke:#fff; stroke-width:1.5; stroke-linejoin:round; }
.success-path-underlay { stroke:#fff; stroke-width:8; }
.success-path { stroke:#177a31; stroke-width:3.5; }
.arrowhead-green { stroke:#fff; stroke-width:1.5; stroke-linejoin:round; }
.blocked-x-halo { fill:none; stroke:#fff; stroke-width:8; stroke-linecap:round; }
.blocked-x { fill:none; stroke:var(--red); stroke-width:3.5; stroke-linecap:round; }
.hover-node { fill:#fff; stroke:#333; stroke-width:2.5; }
.collapse-figure text { font-family:Arial,"Helvetica Neue",sans-serif; }
.region-label { fill:#a84855; font-size:13px; text-anchor:middle; }
.case-title { font-size:18px; font-weight:700; }
.cat-label { fill:#555; }
.scocat-label { fill:var(--green); }
.state-caption { fill:#444; font-size:13px; text-anchor:middle; }
.goal-caption { fill:#174f24; font-weight:700; }
.case-result { font-size:13px; font-weight:700; text-anchor:middle; }
.failure-result { fill:#a84855; }
.success-result { fill:var(--green); }

.paper-figure { margin:0; text-align:center; }
.paper-figure img { width:100%; height:auto; margin:auto; object-fit:contain; }
.paper-figure figcaption { max-width:890px; margin:12px auto 0; color:#4a4a4a; font-size:15px; }
.large-figure img { max-width:660px; }
.figure-columns { max-width:760px; margin:38px auto 0; display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start; }
.figure-columns .paper-figure img { height:235px; }
.hardware-figure img { max-width:660px; border-radius:3px; }
.bibtex-wrap { position:relative; }
.bibtex-wrap pre { margin:0; padding:23px 65px 23px 25px; overflow-x:auto; border-radius:4px; color:#222; background:var(--light); font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace; text-align:left; }
.bibtex-wrap button { position:absolute; top:12px; right:12px; padding:5px 10px; border:1px solid #bbb; border-radius:4px; background:#fff; cursor:pointer; }
footer { padding:35px 0; color:#777; background:#fafafa; font-size:13px; text-align:center; }
footer p { margin:2px 0; }
.toast { position:fixed; right:20px; bottom:20px; padding:9px 13px; border-radius:4px; color:#fff; background:#363636; font-size:13px; opacity:0; transform:translateY(8px); pointer-events:none; transition:.15s ease; }
.toast.visible { opacity:1; transform:none; }

@media (max-width:850px) {
  .figure-columns { grid-template-columns:1fr; }
  .figure-columns .paper-figure img { height:auto; max-height:520px; }
}
@media (max-width:600px) {
  .publication-header { padding-top:44px; }
  .publication-header h1 { font-size:34px; }
  .authors { gap:3px 11px; font-size:17px; }
  .affiliations,.conference { font-size:15px; }
  .institution-logos { gap:14px; }
  .spacer-logo { width:62px; height:62px; }
  .ice2thrust-panel { width:205px; }
  .corl-logo { width:105px; }
  .teaser-caption,.section-intro { font-size:16px; }
  .section { padding:52px 0 58px; }
  .section h2 { font-size:29px; }
  .justified { text-align:left; }
  .collapse-figure { padding:8px; }
  .trajectory-figure { padding:10px 9px 6px; }
  .trajectory-heading span { max-width:250px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms !important; } }
