/* Brand-preserving refinement. Native CSS, not an imitation of a named design system.
   DESIGN_VARIANCE: 5 / MOTION_INTENSITY: 5 / VISUAL_DENSITY: 4.
   Layer order: base fonts, brand layout, interaction motion, editorial refinement. */
:root {
  --header-height:76px;
  --layer-header:50;
  --layer-return:40;
  --layer-skip:100;
}
.site-header { height:var(--header-height); z-index:var(--layer-header); }
.back-to-top { z-index:var(--layer-return); }
.skip-link { z-index:var(--layer-skip); }
.hero { padding-top:0; }
.hero-grid { padding-top:48px; padding-bottom:54px; align-items:start; }
.hero-copy { padding-top:21px; }
.hero h1 { line-height:1.1; }
.hero h1 em { display:inline-block; line-height:1.1; padding-bottom:4px; }
.hero-one-liner { margin-top:19px; }
.hero-actions { margin-top:25px; }
.stage-note { font-size:11px; color:var(--muted); }
.section-heading { display:block; margin-bottom:38px; }
.section-heading>p { max-width:630px; margin-top:23px; font-size:14px; line-height:1.8; }
.section-heading h2 { max-width:850px; }
.section-heading h2 em, .problem-section h2 em, .measurement-copy h2 em,
.study-panel h2 em, .contact-section h2 em { display:inline-block; line-height:1.15; padding-bottom:3px; }
.method-stage-hint { justify-content:flex-end; }
.method-stage-track { background:transparent; }
.method-experience .method-flow h3>button { font-size:18px; }
.problem-section, .measurement-section, .contact-section { padding-block:80px; }
.problem-copy>p:first-child { font-size:20px; }
.team-grid { gap:45px; }
.team-initial { height:70px; }
.team-grid article>p { font-size:13px; }
.publication-grid { grid-template-columns:1.15fr 1fr; gap:30px 44px; }
.publication-card { min-width:0; }
.publication-card:first-child { grid-row:1 / span 2; }
.publication-art { margin-bottom:20px; height:auto; aspect-ratio:16 / 9; border:0; background:#141416; border-radius:8px; }
.publication-art img { display:block; width:100%; height:100%; object-fit:cover; filter:saturate(.35) brightness(.85); transition:transform var(--motion-scene) var(--ease-out), filter var(--motion-state); }
.publication-card:hover .publication-art img { transform:scale(1.025); filter:saturate(.5) brightness(.95); }
.publication-card:first-child .publication-art { aspect-ratio:1.25; }
.publication-card:first-child h3 { font-size:34px; }
.publication-card:not(:first-child) { display:grid; grid-template-columns:140px 1fr; gap:11px 21px; align-content:start; padding-bottom:23px; border-bottom:1px solid var(--rule); }
.publication-card:not(:first-child) .publication-art { grid-row:1 / span 4; aspect-ratio:1; align-self:start; margin:0; }
.publication-card:not(:first-child) .publication-meta { grid-column:2; flex-direction:column; gap:7px; }
.publication-card:not(:first-child) h3 { grid-column:2; font-size:24px; margin-top:2px; }
.publication-card:not(:first-child) p { grid-column:2; margin:0; font-size:12px; }
.publication-card:not(:first-child) .publication-read { grid-column:2; margin-top:0; border-top:0; padding-top:7px; }
.publication-card:first-child .publication-meta { flex-direction:row; }
.milestone-section { border-radius:12px; }
.method-stage-caption:focus { outline-offset:4px; }
/* Scroll markers are observers' reference geometry, not visible decoration. */
.motion-sentinel, .method-scroll-marker { position:absolute; left:0; width:1px; pointer-events:none; visibility:hidden; }
.method-scroll-marker { width:100%; }
@keyframes page-reading { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@supports (animation-timeline:scroll()) {
  #reading-progress { animation:page-reading linear both; animation-timeline:scroll(root block); }
}
@media(max-width:1150px) {
  .publication-grid { gap:30px; }
  .publication-card:not(:first-child) { grid-template-columns:105px 1fr; gap:11px 17px; }
  .publication-card:not(:first-child) h3 { font-size:21px; }
  .hero-grid { padding-top:40px; }
  .hero-copy { padding-top:20px; }
}
@media(max-width:860px) {
  .hero h1 { font-size:44px; }
  .publication-card:not(:first-child) { grid-template-columns:1fr; }
  .publication-card:not(:first-child) .publication-art { grid-row:auto; grid-column:1; aspect-ratio:16 / 9; }
  .publication-card:not(:first-child) h3, .publication-card:not(:first-child) .publication-meta,
  .publication-card:not(:first-child) p, .publication-card:not(:first-child) .publication-read { grid-column:1; }
}
@media(max-width:720px) {
  :root { --header-height:72px; }
  .site-header nav { top:71px; }
  .hero-grid { padding-top:32px; padding-bottom:39px; }
  .hero-copy { padding-top:0; }
  .hero h1 { font-size:clamp(39px,8.2vw,55px); }
  .hero h1 em { font-size:1.12em; }
  .hero-one-liner { margin-top:17px; }
  .stage-note { font-size:10px; }
  .hero-description { font-size:13px; }
  .section-heading>p { font-size:13px; margin-top:19px; }
  .problem-section, .measurement-section, .contact-section { padding-block:52px; }
  .problem-copy>p:first-child { font-size:18px; }
  .publication-grid { grid-template-columns:1fr; gap:32px; }
  .publication-card:first-child { grid-row:auto; }
  .publication-card:first-child .publication-art { aspect-ratio:16 / 10; }
  .publication-card:first-child h3 { font-size:29px; }
  .publication-card:not(:first-child) { grid-template-columns:94px 1fr; gap:9px 18px; padding-bottom:26px; }
  .publication-card:not(:first-child) .publication-art { grid-row:1 / span 3; grid-column:1; aspect-ratio:1; }
  .publication-card:not(:first-child) h3, .publication-card:not(:first-child) .publication-meta,
  .publication-card:not(:first-child) p, .publication-card:not(:first-child) .publication-read { grid-column:2; }
  .publication-card:not(:first-child) h3 { font-size:21px; }
  .publication-card:not(:first-child) .publication-meta { font-size:7px; }
  .publication-card:not(:first-child) p { font-size:11px; }
  .team-grid { gap:35px; }
  .method-experience .method-flow h3>button { font-size:17px; }
}
@media(prefers-reduced-motion:reduce) {
  #reading-progress { animation:none; }
}
.reduce-motion #reading-progress { animation:none; }
.brand-mark img { border-radius:50%; }
#reason-form textarea::placeholder { color:var(--muted); opacity:1; }
.method-stage-hint { gap:12px; }
.is-scroll-driven .method-sticky { top:clamp(112px, calc((100svh - 550px + var(--header-height))/2), 272px); }
.resource-lab { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:25px 0; border-top:1px solid var(--rule); margin-top:-30px; margin-bottom:64px; }
.resource-lab h3 { font-size:22px; }
.resource-lab p { font-size:13px; color:var(--muted); margin-top:9px; }
.resource-lab .text-link { flex-shrink:0; }
@media(max-width:860px) {
  .menu-toggle { display:flex; align-items:center; gap:18px; background:transparent; border:1px solid var(--rule); padding:10px 12px; border-radius:4px; font-size:11px; }
  .menu-toggle>span { font-size:17px; line-height:1; }
  .site-header nav { display:none; position:absolute; top:calc(var(--header-height) - 1px); left:0; right:0; padding:20px; background:var(--paper); border-bottom:1px solid var(--rule); flex-direction:column; align-items:stretch; gap:4px; font-size:14px; }
  .site-header nav.is-open { display:flex; }
  .site-header nav>a { padding:12px; }
  .site-header nav .nav-cta { margin-top:8px; padding:13px; }
  .site-header nav .nav-cta>span { float:right; }
  .resource-lab { align-items:start; flex-direction:column; gap:20px; margin-top:-15px; margin-bottom:50px; }
}
