/* SIM-CoT project page. Colours follow the paper's figure palette:
   implicit latents = blue, explicit steps / decoder = orange, question = teal, answer = pink. */

/* DM Sans and DM Serif Display, SIL Open Font License 1.1 (see ../fonts/OFL-*.txt). Self-hosted latin subsets. */
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/dm-sans-normal-latin.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/dm-sans-italic-latin.woff2) format('woff2')}
@font-face{font-family:'DM Serif Display';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/dm-serif-display-normal-latin.woff2) format('woff2')}
@font-face{font-family:'DM Serif Display';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/dm-serif-display-italic-latin.woff2) format('woff2')}

:root{
  /* surfaces & ink */
  --paper:#f6f8f8;--band:#edf2f2;--white:#ffffff;--surface:#f1f5f6;
  --ink:#1b2126;--ink-2:#39434b;--muted:#5c6872;--faint:#8a959d;
  --line:#d9e1e4;--line-soft:#e7edef;
  /* brand: SIM-CoT = implicit blue */
  --accent:#1f63c6;--accent-deep:#164a96;--accent-soft:#e4eefb;--accent-wash:#c9dcf6;
  /* paper figure palette (fills only — never as text colour) */
  --latent:#6fb3ea;--latent-soft:#daeff9;
  --question:#7fc2b2;--question-soft:#dff2ef;
  --llm:#bfe6e6;--llm-deep:#6fb1ea;
  --step:#f2a65a;--step-soft:#fdf0dc;--decoder-soft:#fdf1c9;
  --answer:#ee9fd0;--answer-soft:#fbe4f2;
  /* text-safe accents */
  --step-ink:#a8560c;--gain:#08703a;--gain-soft:#e1f2e8;
  /* chart marks (validated: dataviz six checks, white surface, all pairs) */
  --viz-simcot:#2a78d6;--viz-explicit:#eb6834;--viz-base:#8a959d;--viz-grid:#e7edef;--viz-axis:#c9d2d7;
  --serif:'DM Serif Display',Georgia,'Times New Roman',serif;
  --sans:'DM Sans',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;
  --math:'Times New Roman',Times,'Liberation Serif',serif;
  --radius:12px;--radius-sm:8px;
  --wrap:1200px;--gutter:32px;
  color-scheme:light;
}

*{box-sizing:border-box}
html{font-size:100%;scroll-behavior:smooth;scroll-padding-top:20px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:1.0625rem/1.7 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}
button,a,summary{-webkit-tap-highlight-color:transparent}
button,summary{cursor:pointer}
button{background:none;border:0;padding:0}
img{max-width:100%;height:auto;display:block}
svg{display:block}
h1,h2,h3,h4,p,figure,blockquote{margin-top:0}
figure{margin:0}
h2{font:2.75rem/1.14 var(--serif);font-weight:400;letter-spacing:-.6px;margin-bottom:18px;text-wrap:balance}
h3{font:1.875rem/1.2 var(--serif);font-weight:400;letter-spacing:-.2px;margin-bottom:12px}
h4{font-size:1.0625rem;font-weight:600;line-height:1.4;margin-bottom:6px}
p{margin-bottom:16px}
sup{font-size:.68em;line-height:0}
code,.mono{font-family:var(--mono);font-size:.9em}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:4px}
::selection{background:var(--accent-wash)}
.tnum{font-variant-numeric:tabular-nums}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;top:-100px;left:16px;padding:10px 14px;background:var(--white);border:1px solid var(--line);border-radius:6px;z-index:100}
.skip-link:focus{top:10px}

.wrap{max-width:calc(var(--wrap) + 2 * var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:96px}
.band{background:var(--band)}
.eyebrow{font-size:.8125rem;letter-spacing:1.8px;line-height:1.5;text-transform:uppercase;font-weight:600;color:var(--accent);margin-bottom:14px}
.lead{font-size:1.125rem;line-height:1.7;color:var(--ink-2)}
.muted{color:var(--muted)}
.small{font-size:.9375rem;line-height:1.65}
.inline-link{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent-wash);text-underline-offset:3px;text-decoration-thickness:1px}
.inline-link:hover{text-decoration-color:var(--accent)}

/* ---------- buttons ---------- */
.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;border:1px solid var(--line);background:var(--white);border-radius:999px;padding:9px 20px;font-size:1rem;font-weight:500;line-height:1.4;color:var(--ink);transition:background .15s,border-color .15s,color .15s,transform .15s}
.button:hover{border-color:#b9c5cb;transform:translateY(-1px)}
.button.primary{background:var(--ink);border-color:var(--ink);color:#fff}
.button.primary:hover{background:var(--accent);border-color:var(--accent)}
.button svg,.button img{width:19px;height:19px;flex:none}

/* ---------- header ---------- */
.site-header{height:84px;display:flex;justify-content:space-between;align-items:center;gap:24px}
.brand{display:inline-flex;align-items:center;gap:11px;font:1.5rem/1 var(--serif);letter-spacing:-.2px;white-space:nowrap}
.brand-mark{width:30px;height:30px;flex:none}
.brand-accent{color:var(--accent)}
.site-nav{display:flex;gap:28px;font-size:.9688rem;color:var(--muted)}
.site-nav a{padding:8px 0;transition:color .15s}
.site-nav a:hover,.site-nav a[aria-current=true]{color:var(--accent)}

/* ---------- hero ---------- */
.hero{text-align:center;padding-top:40px;padding-bottom:8px}
.venue-pill{display:inline-flex;align-items:center;gap:8px;margin:0 0 22px;padding:5px 14px 5px 10px;border:1px solid var(--accent-wash);background:var(--accent-soft);color:var(--accent-deep);border-radius:999px;font-size:.8125rem;font-weight:600;letter-spacing:.6px}
.venue-pill::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--latent);box-shadow:11px 0 0 var(--step)}
.venue-pill span{margin-left:11px}
.hero h1{font:6rem/1 var(--serif);letter-spacing:-3px;margin:0 0 14px;font-weight:400}
.hero h1 .h1-accent{color:var(--accent)}
.hero-subtitle{font:2rem/1.3 var(--serif);letter-spacing:-.3px;color:var(--ink-2);margin:0 auto 26px;text-wrap:balance}
.authors{max-width:980px;margin:0 auto 8px;font-size:1rem;line-height:1.9;color:var(--ink-2)}
.authors .author{display:inline-block;white-space:nowrap}
.authors a{border-bottom:1px solid transparent;transition:color .15s,border-color .15s}
.authors a:hover{color:var(--accent);border-color:var(--accent-wash)}
.corr{display:inline-block;width:13px;height:13px;margin-left:3px;vertical-align:-1px;color:var(--accent)}
.affiliations{max-width:980px;margin:0 auto 6px;font-size:.875rem;line-height:1.8;color:var(--muted)}
.affiliations span{display:inline-block;margin:0 .55em}
.author-notes{margin:0 auto 30px;font-size:.8125rem;color:var(--muted);display:flex;justify-content:center;align-items:center;gap:6px}
.author-notes .corr{margin:0}
.hero-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 12px}

/* ---------- teaser ---------- */
.teaser{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:56px;align-items:center;padding-top:72px;padding-bottom:64px}
.teaser-copy h2{font-size:2.75rem;margin-bottom:16px}
.teaser-copy p{color:var(--ink-2)}
.teaser-copy .small{color:var(--muted)}
.demo{position:relative;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 1px 2px rgba(20,40,50,.04),0 12px 32px -18px rgba(20,40,50,.22);overflow:hidden;min-height:240px}
.demo-fallback{padding:18px}

/* ---------- stats ---------- */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:0}
.stat{padding:30px 26px 28px;border-left:1px solid var(--line)}
.stat:first-child{border-left:0;padding-left:4px}
.stat-value{font:600 2.75rem/1 var(--sans);letter-spacing:-1.2px;margin:0 0 12px;color:var(--ink)}
.stat-value .unit{font-size:.5em;font-weight:500;letter-spacing:0;margin-left:3px;color:var(--muted)}
.stat-value.is-up{color:var(--accent)}
.stat-label{font-size:1rem;line-height:1.45;font-weight:500;margin:0 0 4px}
.stat-note{font-size:.875rem;line-height:1.5;color:var(--muted);margin:0}

/* ---------- section heads ---------- */
.section-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start;margin-bottom:44px}
.section-head h2{margin-bottom:0}
.section-head .lead{margin:6px 0 0}
.section-head .lead p:last-child{margin-bottom:0}
.section-head.stacked{display:block;max-width:820px}
.section-head.stacked h2{margin-bottom:14px}
.subhead{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start;margin:76px 0 28px}
.subhead h3{margin:0}
.subhead p{margin:4px 0 0;color:var(--ink-2)}

.abstract-text{font-size:1rem;line-height:1.8;color:var(--ink-2);margin:0;max-width:68ch}

/* ---------- cards & figures ---------- */
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}
.paper-figure{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:18px 18px 14px;min-width:0}
.paper-figure img{width:100%;height:auto;margin-inline:auto}
.paper-figure figcaption{margin-top:12px;font-size:.8125rem;line-height:1.55;color:var(--muted)}
.paper-figure figcaption b{color:var(--ink-2);font-weight:600}
.paper-figure.is-narrow{max-width:760px;margin-inline:auto}
.zoom{position:relative;display:block;cursor:zoom-in;border-radius:6px}
.zoom::after{content:"";position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:8px;background:rgba(27,33,38,.78) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E") center/16px no-repeat;opacity:0;transform:scale(.92);transition:opacity .15s,transform .15s}
.zoom:hover::after,.zoom:focus-visible::after{opacity:1;transform:none}
@media (hover:none){.zoom::after{opacity:.85;transform:none}}

.figure-split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;align-items:center}
.figure-split.is-reversed{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.figure-split.is-reversed>.paper-figure{order:2}

.lightbox{padding:0;border:0;background:transparent;max-width:min(1600px,96vw);max-height:94vh;overflow:visible}
.lightbox::backdrop{background:rgba(14,20,24,.78)}
.lightbox img{display:block;max-width:min(1600px,96vw);max-height:90vh;width:auto;height:auto;border-radius:10px;background:#fff;box-shadow:0 30px 80px -20px rgba(0,0,0,.6)}
.lightbox-close{position:absolute;top:-14px;right:-14px;width:40px;height:40px;border-radius:50%;background:var(--white);color:var(--ink);display:grid;place-items:center;box-shadow:0 6px 20px -6px rgba(0,0,0,.5)}
.lightbox-close svg{width:18px;height:18px}

.findings{display:grid;grid-template-columns:1fr;gap:0}
.finding{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:16px;padding:18px 0;border-top:1px solid var(--line)}
.finding:first-child{border-top:0;padding-top:0}
.finding:last-child{padding-bottom:0}
.finding .tag{grid-row:1/span 2}
.finding .tag{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--accent-soft);font-size:.875rem;font-weight:600;color:var(--accent-deep);margin:1px 0 0}
.finding h4{font-size:1.0625rem;margin-bottom:4px}
.finding p{font-size:.9375rem;line-height:1.6;color:var(--muted);margin:0}

/* method */
.granularity{display:grid;grid-template-columns:1fr;gap:12px}
.gran{display:grid;grid-template-columns:120px minmax(0,1fr);column-gap:20px;align-items:start;padding:18px 20px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);position:relative}
.gran-head{display:flex;flex-direction:column;gap:8px}
.gran .gran-level{font-size:.6875rem;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin:0}
.gran h4{font:1.375rem/1.15 var(--serif);font-weight:400;margin:0}
.gran p{font-size:.9375rem;line-height:1.6;color:var(--muted);margin:0}
.gran.is-ours{border-color:var(--accent-wash);background:linear-gradient(180deg,var(--accent-soft),var(--white) 70%)}
.gran.is-ours .gran-level{color:var(--accent)}
.gran-bar{display:flex;gap:3px;margin:0;height:8px;width:100%}
.gran-bar i{flex:1;border-radius:3px;background:var(--line-soft)}
.gran-bar i.on{background:var(--latent)}
.gran-bar i.ans{background:var(--answer)}
.gran-bar i.traj{background:var(--step)}

.equations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:40px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}
.eq{padding:22px 24px;min-width:0}
.eq+.eq{border-left:1px solid var(--line)}
.eq-label{font-size:.75rem;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.math{font-family:var(--math);font-size:1.25rem;line-height:1.5;color:var(--ink);white-space:nowrap;overflow-x:auto;overflow-y:hidden;padding-bottom:2px}
.math i{font-style:italic}
.math sub,.math sup{font-size:.68em}
.math sub{vertical-align:-.3em;line-height:0}
.math .op{padding:0 .22em}
.math .big{font-size:1.35em;vertical-align:-.12em;padding-right:.08em}
.eq-note{font-size:.875rem;line-height:1.55;color:var(--muted);margin:10px 0 0}
.callout{display:flex;gap:16px;align-items:flex-start;margin-top:16px;padding:18px 22px;border-radius:var(--radius);background:var(--white);border:1px solid var(--line)}
.callout-icon{width:34px;height:34px;flex:none;border-radius:9px;background:var(--step-soft);display:grid;place-items:center;color:var(--step-ink)}
.callout p{margin:0;color:var(--ink-2);font-size:.9688rem;line-height:1.65}
.callout b{font-weight:600;color:var(--ink)}

/* ---------- shared controls (used by results.js / cases.js) ---------- */
.controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-bottom:18px}
.seg{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;background:var(--white);border:1px solid var(--line);border-radius:10px}
.seg button{min-height:36px;padding:6px 14px;border-radius:7px;font-size:.9375rem;font-weight:500;color:var(--muted);transition:background .15s,color .15s}
.seg button:hover{color:var(--ink)}
.seg button[aria-selected=true],.seg button[aria-pressed=true]{background:var(--ink);color:#fff}
.control-label{font-size:.8125rem;font-weight:600;letter-spacing:1.1px;text-transform:uppercase;color:var(--muted)}

/* data tables */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius);background:var(--white)}
.data-table{width:100%;border-collapse:collapse;font-size:.9375rem;line-height:1.4;font-variant-numeric:tabular-nums}
.data-table caption{caption-side:top;text-align:left;padding:14px 18px 0;font-size:.875rem;color:var(--muted)}
.data-table th,.data-table td{padding:11px 14px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line-soft)}
.data-table th:first-child,.data-table td:first-child{text-align:left}
.data-table thead th{font-size:.8125rem;font-weight:600;color:var(--muted);background:var(--white);vertical-align:bottom}
.data-table thead tr.group th{font-size:.75rem;letter-spacing:1.1px;text-transform:uppercase;color:var(--faint);border-bottom:0;padding-bottom:0}
.data-table tbody tr:last-child td{border-bottom:0}
.data-table tr.is-ours>*{background:var(--latent-soft)}
.data-table tr.is-ref>*{background:#f3f6f7}
.data-table td.best{font-weight:700}
.data-table .gain{display:inline-block;margin-left:6px;font-size:.8125rem;font-weight:600;color:var(--gain)}
.data-table .neg{color:var(--muted)}

/* main results tables (Tables 1-3) */
.results-tabs .controls{margin-bottom:16px}
.tab-panel[hidden]{display:none}
.results-table th[scope=row]{font-weight:500;color:var(--ink)}
.results-table tbody+tbody tr:first-child>*{border-top:1px solid var(--line)}
.results-table td.tok{color:var(--muted)}
.results-table thead tr:last-child th{border-bottom:1px solid var(--line)}
.results-table thead tr.group th{text-align:center}
.results-table thead tr.group th:first-child{text-align:left}
.results-table th[scope=colgroup]{font-weight:600}
.results-table .plus{padding-left:14px;color:var(--accent-deep);font-weight:600}
.results-table .row-tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--step-soft);color:var(--step-ink);font-size:.6875rem;font-weight:600;letter-spacing:.3px;vertical-align:1px}
.results-table .ckpt{display:inline-grid;place-items:center;width:24px;height:24px;margin-left:4px;border-radius:6px;vertical-align:-6px;transition:background .15s}
.results-table .ckpt:hover{background:rgba(255,255,255,.75)}
.results-table .ckpt img{width:16px;height:16px}
.results-table td{min-width:64px}
.results-chart:empty{display:none}

/* static (no-JS) content: Figure 7 case cards, Table 4(b) */
.static-cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.static-case{display:flex;flex-direction:column;gap:14px;padding:18px 18px 16px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);min-width:0}
.static-q{margin:0;font-size:.9375rem;line-height:1.65;color:var(--ink-2)}
.static-q .ev{border-radius:3px;padding:1px 2px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.ev.s1{background:rgba(36,144,135,.13);box-shadow:inset 0 -2px 0 #249087}
.ev.s2{background:rgba(46,84,161,.11);box-shadow:inset 0 -2px 0 #2e54a1}
.ev.s3{background:rgba(198,95,16,.11);box-shadow:inset 0 -2px 0 #c65f10}
.ev.s4{background:rgba(184,174,235,.26);box-shadow:inset 0 -2px 0 #9a8ee0}
.static-chain{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}
.static-chain li{display:flex;flex-direction:column;gap:3px;padding:7px 10px 8px;border-radius:8px;background:var(--surface);border-top:3px solid var(--line);min-width:0}
.static-chain li.s1{border-top-color:#249087}.static-chain li.s2{border-top-color:#2e54a1}.static-chain li.s3{border-top-color:#c65f10}.static-chain li.s4{border-top-color:#9a8ee0}
.static-chain .lab{font-size:.6875rem;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.static-chain code{font-size:.875rem;color:var(--ink);white-space:nowrap}
.static-ans{margin:0;font-size:.875rem;color:var(--muted)}
.static-ans b{font-size:1rem;color:var(--ink);margin-left:4px}
.static-geometry{max-width:640px}
.static-geometry tr.is-fail>*{color:var(--muted)}
@media (max-width:1100px){.static-cases{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.static-cases{grid-template-columns:minmax(0,1fr)}}

/* chart chrome */
.viz{position:relative}
.viz svg{overflow:visible}
.viz text{font-family:var(--sans);fill:var(--muted);font-size:12px}
.viz .tick text{font-variant-numeric:tabular-nums}
.viz-tooltip{position:absolute;z-index:5;pointer-events:none;min-width:150px;padding:10px 12px;background:var(--white);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px -10px rgba(20,40,50,.3);font-size:.8125rem;line-height:1.45;color:var(--ink-2);opacity:0;transform:translateY(4px);transition:opacity .12s,transform .12s}
.viz-tooltip.is-on{opacity:1;transform:none}
.viz-tooltip .tt-title{font-weight:600;color:var(--ink);margin-bottom:4px}
.viz-tooltip .tt-row{display:flex;align-items:center;gap:8px}
.viz-tooltip .tt-row b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.viz-tooltip .tt-key{width:14px;height:2px;border-radius:2px;flex:none}
.legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.875rem;color:var(--ink-2)}
.legend .key{display:inline-flex;align-items:center;gap:8px}
.legend .key-line{width:18px;height:2px;border-radius:2px}
.legend .key-dot{width:10px;height:10px;border-radius:50%}
.legend .key-rect{width:12px;height:12px;border-radius:3px}

/* expanders */
.more{border-top:1px solid var(--line)}
.more:last-of-type{border-bottom:1px solid var(--line)}
.more>summary{list-style:none;display:flex;align-items:baseline;gap:16px;padding:20px 40px 20px 0;position:relative;font-weight:600;font-size:1.0625rem}
.more>summary::-webkit-details-marker{display:none}
.more>summary::after{content:"";position:absolute;right:6px;top:50%;width:14px;height:14px;margin-top:-7px;background:linear-gradient(currentColor,currentColor) center/14px 1.6px no-repeat,linear-gradient(currentColor,currentColor) center/1.6px 14px no-repeat;transition:transform .2s}
.more[open]>summary::after{transform:rotate(45deg)}
.more>summary .hint{font-weight:400;font-size:.9375rem;color:var(--muted)}
.more>summary:hover{color:var(--accent)}
.more-body{padding:0 0 30px}
.expanders{margin-top:40px}

/* ---------- citation ---------- */
.bibtex{position:relative;background:var(--ink);color:#e9eef1;border-radius:var(--radius);padding:24px 26px;overflow-x:auto}
.bibtex pre{margin:0;font:0.9375rem/1.7 var(--mono);white-space:pre}
.copy-btn{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:6px 12px;border:1px solid rgba(255,255,255,.22);border-radius:8px;font-size:.875rem;color:#fff;background:rgba(255,255,255,.06);transition:background .15s}
.copy-btn:hover{background:rgba(255,255,255,.14)}
.copy-btn svg{width:16px;height:16px}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line);padding-block:30px 40px}
.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.footer-links{display:flex;gap:22px;font-size:.9375rem;color:var(--muted)}
.footer-links a:hover{color:var(--accent)}
.footer-note{font-size:.875rem;color:var(--muted);margin:0}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .hero h1{font-size:5rem}
  .teaser{grid-template-columns:1fr;gap:28px;padding-top:56px}
  .teaser-copy{max-width:640px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat:nth-child(3){border-left:0;padding-left:4px}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
  .figure-split,.figure-split.is-reversed{grid-template-columns:1fr;gap:28px}
  .figure-split>.paper-figure{max-width:780px;width:100%;margin-inline:auto}
  .figure-split.is-reversed>.paper-figure{order:0}
  .findings{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}
  .finding,.finding:first-child{padding:18px 0;border-top:1px solid var(--line)}
  .equations{grid-template-columns:minmax(0,1fr)}
  .eq+.eq{border-left:0;border-top:1px solid var(--line)}
}
@media (max-width:860px){
  :root{--gutter:24px}
  .section{padding-block:72px}
  h2,.teaser-copy h2{font-size:2.25rem}
  h3{font-size:1.625rem}
  .site-nav{display:none}
  .section-head,.subhead{grid-template-columns:1fr;gap:14px}
  .hero-subtitle{font-size:1.625rem}
}
@media (max-width:600px){
  :root{--gutter:16px}
  body{font-size:1rem}
  .site-header{height:68px}
  .hero{padding-top:24px}
  .hero h1{font-size:3.75rem;letter-spacing:-2px}
  .hero-subtitle{font-size:1.375rem}
  .authors{font-size:.9375rem}
  .affiliations span{display:block;margin:0}
  .button{padding:8px 16px;font-size:.9375rem}
  .stat{padding:22px 14px 20px}
  .stat:first-child,.stat:nth-child(3){padding-left:0}
  .stat-value{font-size:2.125rem}
  .findings{grid-template-columns:1fr}
  .gran{grid-template-columns:1fr;row-gap:10px}
  .lightbox-close{top:8px;right:8px}
  .paper-figure{padding:12px 12px 10px}
  .bibtex{padding:52px 16px 18px}
  .bibtex pre{font-size:.8125rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
@media print{
  .site-header,.hero-actions,.copy-btn{display:none}
  .band{background:none}
}
