/*
  Spectrum homepage / Design 5: APERTURE
  The group portrait is the fixed opening rule. Everything after it behaves
  like a living research atlas: fields, coordinates, lenses, and evidence.
*/

body[data-page="home"] {
  --ax-paper: var(--theme-paper,#f3f1e8);
  --ax-white: var(--theme-surface,#fbfaf5);
  --ax-ink: var(--theme-ink,#111713);
  --ax-green: var(--theme-primary,#18453b);
  --ax-deep: var(--theme-deep,#082c24);
  --ax-acid: var(--theme-accent,#bdd4c4);
  --ax-fog: var(--theme-fog,#dce4dd);
  --ax-muted: var(--theme-muted,#667169);
  --ax-line: var(--theme-line,rgba(24,69,59,.25));
  --ax-gutter: clamp(20px,3.6vw,62px);
  background: var(--ax-paper);
  color: var(--ax-ink);
  font-family: var(--theme-body-font,"IBM Plex Sans",Arial,sans-serif);
  font-size: var(--theme-base-size,17px);
}

.ax-main { overflow: clip; background: var(--ax-paper); }
.ax-pad { padding-inline: var(--ax-gutter); }

body[data-page="home"] .topbar {
  position: sticky;
  inset: 0 0 auto;
  z-index: 300;
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--ax-line);
  background: var(--theme-paper-glass,rgba(243,241,232,.96));
  box-shadow: none;
  backdrop-filter: blur(16px);
}
body[data-page="home"] .topbar-inner { width: 100%; max-width: var(--theme-content-width,1280px); height: 88px; margin-inline: auto; padding-inline: var(--ax-gutter); }
body[data-page="home"] .brand { color: var(--ax-ink); }
body[data-page="home"] .brand img { width: auto; height: 64px; max-width: min(260px,52vw); object-fit: contain; }
body[data-page="home"] .brand b { color: var(--ax-ink); font-size: .68rem; font-weight: 600; letter-spacing: .16em; }
body[data-page="home"] .brand b span { color: var(--ax-muted); font-weight: 400; }
body[data-page="home"] .nav { gap: 3px; }
body[data-page="home"] .nav a { min-height: 38px; display: inline-flex; align-items: center; border: 0; padding: 0 12px; color: var(--theme-text-soft,#344139); font-size: .68rem; font-weight: 500; letter-spacing: .08em; }
body[data-page="home"] .nav a::after { display: none; }
body[data-page="home"] .nav a:hover,body[data-page="home"] .nav a.active { color: var(--ax-green); background: var(--theme-primary-soft,rgba(24,69,59,.07)); }
body[data-page="home"] .nav .cta-link,body[data-page="home"] .nav .cta-link:hover { border: 1px solid var(--ax-green); background: transparent; color: var(--ax-green); padding-inline: 18px; }
body[data-page="home"] .nav-toggle { color: var(--ax-ink); }
body[data-page="home"] .bars,body[data-page="home"] .bars::before,body[data-page="home"] .bars::after { background: var(--ax-green); }

.ax-reveal { opacity: 0; transform: translateY(42px); transition: opacity .85s cubic-bezier(.2,.75,.2,1),transform .85s cubic-bezier(.2,.75,.2,1); }
.ax-reveal.is-visible { opacity: 1; transform: none; }

/* The portrait keeps its natural ratio; the firm name is its only overlay. */
.ax-mast { background: var(--ax-paper); }
.ax-mast-photo { position: relative; width: 100%; height: auto; aspect-ratio: 2/1; margin: 0; overflow: hidden; background: var(--ax-fog); }
.ax-mast-photo::after { content: ""; position: absolute; z-index: 1; inset: 0; background: color-mix(in srgb,var(--theme-deep,#082c24) 46%,transparent); pointer-events: none; }
.ax-mast-photo img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 88%; }
.ax-mast-name { position: absolute; z-index: 2; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: var(--ax-gutter); color: var(--theme-on-dark,#ffffff); text-align: center; }
.ax-mast-name h1 { width: 100%; display: flex; align-items: baseline; justify-content: center; gap: .2em; margin: 0; color: var(--theme-on-dark,#ffffff); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(2.2rem,3.8vw,3.55rem); font-weight: 400; letter-spacing: -.03em; line-height: 1; text-align: center; text-shadow: 0 2px 16px rgba(0,0,0,.3); }
.ax-mast-name h1 span { white-space: nowrap; opacity: 0; transform: translateY(40px); animation: axNameIn .9s .15s cubic-bezier(.2,.75,.2,1) forwards; }
.ax-mast-name h1 span:last-child { color: var(--theme-on-dark,#ffffff); animation-delay: .28s; }
.ax-mast-name p { margin-top: 12px; color: var(--theme-on-dark,#ffffff); font-size: clamp(1rem,1.55vw,1.45rem); font-weight: 400; line-height: 1.25; text-shadow: 0 2px 12px rgba(0,0,0,.35); }
@keyframes axNameIn { to { opacity: 1; transform: none; } }
.ax-mast-index { min-height: 58px; display: grid; grid-template-columns: repeat(4,1fr); align-items: center; border-bottom: 1px solid var(--ax-line); color: var(--ax-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .55rem; letter-spacing: .08em; text-transform: uppercase; }
.ax-mast-index span { height: 100%; display: flex; align-items: center; justify-content: center; border-right: 1px solid var(--ax-line); padding-inline: 12px; text-align: center; }
.ax-mast-index span:last-child { border-right: 0; }

/* Thesis / moving model */
.ax-thesis { position: relative; min-height: 0; display: grid; grid-template-columns: 9% minmax(0,1.15fr) minmax(360px,.85fr); align-items: center; padding-top: calc(clamp(58px,6vw,88px) * var(--theme-section-space,1)); padding-bottom: calc(clamp(58px,6vw,88px) * var(--theme-section-space,1)); background: var(--ax-paper); }
.ax-scroll-tag { grid-column: 1; align-self: start; color: var(--ax-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .52rem; letter-spacing: .1em; line-height: 1.4; text-transform: uppercase; }
.ax-thesis-copy { grid-column: 2; display: block; padding-right: clamp(34px,5vw,82px); }
.ax-thesis-copy > p,.ax-section-head > span,.ax-method-title > span,.ax-firm-copy > span,.ax-contact-main > p { color: var(--ax-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .58rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.ax-thesis-copy h2 { max-width: 820px; margin: 24px 0 0; padding-bottom: .08em; font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(4.2rem,6.1vw,7rem); font-weight: 300; letter-spacing: -.055em; line-height: .92; }
.ax-thesis-copy h2 em { color: var(--ax-green); font-weight: 300; }
.ax-thesis-model { grid-column: 3; display: grid; justify-items: center; gap: 22px; }
.ax-orbit { --ax-ox: 0; --ax-oy: 0; position: relative; width: min(28vw,380px); aspect-ratio: 1; margin: 0; border: 1px solid var(--ax-line); border-radius: 50%; transform: translate3d(calc(var(--ax-ox) * 8px),calc(var(--ax-oy) * 8px),0); transition: transform .35s ease-out; }
.ax-orbit-ring { position: absolute; border: 1px solid var(--ax-line); border-radius: 50%; }
.ax-orbit-ring-one { inset: 13%; animation: axOrbit 22s linear infinite; }
.ax-orbit-ring-two { inset: 31%; border-style: dashed; animation: axOrbit 14s linear infinite reverse; }
@keyframes axOrbit { to { transform: rotate(360deg); } }
.ax-orbit-cross::before,.ax-orbit-cross::after { content: ""; position: absolute; background: var(--ax-line); }
.ax-orbit-cross::before { top: 50%; right: 0; left: 0; height: 1px; }
.ax-orbit-cross::after { top: 0; bottom: 0; left: 50%; width: 1px; }
.ax-orbit strong { position: absolute; z-index: 3; inset: 32%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border-radius: 50%; background: var(--ax-green); color: var(--theme-on-dark,#ffffff); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(1rem,1.45vw,1.55rem); font-weight: 300; line-height: 1; text-align: center; }
.ax-orbit strong span { display: block; max-width: 100%; white-space: nowrap; }
.ax-orbit strong i { display: block; color: var(--ax-acid); font-family: var(--theme-body-font,"IBM Plex Sans",sans-serif); font-size: .68rem; font-style: normal; line-height: 1; }
.ax-orbit-node { position: absolute; z-index: 4; display: flex; align-items: center; gap: 8px; color: var(--ax-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .55rem; letter-spacing: .08em; text-transform: uppercase; }
.ax-orbit-node::before { content: ""; width: 9px; height: 9px; border: 1px solid var(--ax-green); border-radius: 50%; background: var(--ax-paper); }
.ax-node-a { top: 8%; left: 30%; }.ax-node-b { top: 34%; right: -3%; }.ax-node-c { right: 12%; bottom: 12%; }.ax-node-d { bottom: 18%; left: 1%; }
.ax-thesis-note { width: 100%; max-width: 38ch; margin: 0; color: var(--theme-text-soft,#4f5d55); font-size: .9rem; line-height: 1.65; }

/* Four fields */
.ax-capabilities { background: var(--ax-white); }
.ax-section-head { min-height: 0; display: grid; grid-template-columns: 1.2fr 5fr 2fr; gap: 42px; align-items: start; border-top: 1px solid var(--ax-line); padding-top: clamp(70px,6.5vw,96px); padding-bottom: clamp(46px,4.5vw,66px); }
.ax-section-head h2 { margin: 0; padding-bottom: .08em; font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(4rem,6.2vw,7.2rem); font-weight: 300; letter-spacing: -.05em; line-height: .94; }
.ax-section-head > p { max-width: 400px; color: var(--ax-muted); font-size: .9rem; line-height: 1.7; }
.ax-cap-grid { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid var(--ax-line); }
.ax-cap { position: relative; min-width: 0; min-height: min(350px,33vw); display: flex; flex-direction: column; border-right: 1px solid var(--ax-line); border-bottom: 1px solid var(--ax-line); padding: clamp(24px,2.7vw,42px) var(--ax-gutter); overflow: hidden; color: var(--ax-ink); transition: color .35s ease; }
.ax-cap:nth-child(2),.ax-cap:nth-child(3) { background: color-mix(in srgb,var(--theme-primary,#18453b) 2.5%,transparent); }
.ax-cap::before { content: ""; position: absolute; inset: 0; background: var(--ax-green); clip-path: circle(0 at var(--ax-cx,50%) var(--ax-cy,50%)); transition: clip-path .7s cubic-bezier(.2,.8,.2,1); }
.ax-cap:hover::before { clip-path: circle(80% at var(--ax-cx,50%) var(--ax-cy,50%)); }
.ax-cap > * { position: relative; z-index: 2; }
.ax-cap > span { color: var(--ax-muted); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .56rem; }
.ax-cap small { position: absolute; top: clamp(24px,2.7vw,42px); right: var(--ax-gutter); color: var(--ax-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; }
.ax-cap h3 { max-width: 100%; margin: auto 0 0; padding-bottom: .1em; font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(4rem,6.2vw,7.2rem); font-weight: 300; letter-spacing: -.055em; line-height: .92; overflow-wrap: anywhere; }
.ax-cap p { width: calc(100% - 88px); max-width: 36ch; margin-top: 20px; color: var(--ax-muted); font-size: .82rem; line-height: 1.6; }
.ax-cap > b { position: absolute; right: var(--ax-gutter); bottom: clamp(24px,2.7vw,42px); color: var(--ax-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .56rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.ax-cap:hover,.ax-cap:hover small,.ax-cap:hover p,.ax-cap:hover > b,.ax-cap:hover > span { color: var(--theme-on-dark,#ffffff); }

/* Evidence room */
.ax-observatory { padding-top: 0; background: var(--ax-deep); color: var(--theme-on-dark,#ffffff); }
.ax-section-head-light { border-top: 0; padding-top: clamp(82px,8vw,118px); padding-bottom: clamp(54px,5vw,76px); }
.ax-section-head-light > span { color: var(--ax-acid); }
.ax-section-head-light h2 { color: var(--theme-on-dark,#ffffff); }
.ax-section-head-light > p { color: color-mix(in srgb,var(--theme-on-dark,#ffffff) 64%,transparent); }
.ax-case-stage { display: grid; grid-template-columns: 58% 42%; margin-top: 0; border-top: 1px solid color-mix(in srgb,var(--theme-on-dark,#ffffff) 28%,transparent); }
.ax-case-media { position: sticky; top: 68px; height: auto; aspect-ratio: 3/2; overflow: hidden; background: color-mix(in srgb,var(--ax-green) 72%,var(--ax-deep)); }
.ax-case-media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.035); transition: opacity .55s ease,transform 1s cubic-bezier(.2,.75,.2,1); }
.ax-case-media > img.is-active { opacity: 1; transform: scale(1); }
.ax-case-label { min-height: 88px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--theme-line-dark,rgba(255,255,255,.2)); padding: 0 var(--ax-gutter); color: var(--ax-acid); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .56rem; letter-spacing: .09em; text-transform: uppercase; }
.ax-case-label b { color: var(--theme-on-dark,#ffffff); font-weight: 400; }.ax-case-label i { color: var(--ax-acid); font-style: normal; }
.ax-case-index button { position: relative; width: 100%; min-height: clamp(162px,calc((38.666vw - 68px)/3),225px); display: flex; flex-direction: column; justify-content: center; border: 0; border-bottom: 1px solid var(--theme-line-dark,rgba(255,255,255,.2)); padding: 22px calc(var(--ax-gutter) + 48px) 22px var(--ax-gutter); background: transparent; color: var(--theme-on-dark,#ffffff); text-align: left; cursor: pointer; transition: background .3s ease,padding .3s ease; }
.ax-case-index button:hover,.ax-case-index button.is-active { padding-left: calc(var(--ax-gutter) + 24px); background: color-mix(in srgb,var(--theme-on-dark,#ffffff) 5.5%,transparent); }
.ax-case-index button > span { color: var(--ax-acid); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .56rem; letter-spacing: .09em; text-transform: uppercase; }
.ax-case-index h3 { max-width: 760px; margin-top: 12px; padding-bottom: .08em; color: var(--theme-on-dark,#ffffff); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(2.4rem,3.4vw,4.2rem); font-weight: 300; letter-spacing: -.05em; line-height: .93; }
.ax-case-index p { max-width: 540px; margin-top: 9px; color: var(--theme-on-dark-muted,rgba(255,255,255,.62)); font-size: .78rem; line-height: 1.5; }
.ax-case-index button > b { position: absolute; top: 50%; right: var(--ax-gutter); color: color-mix(in srgb,var(--theme-on-dark,#ffffff) 25%,transparent); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: 2.5rem; font-weight: 300; transform: translateY(-50%); }
.ax-case-index button.is-active > b { color: var(--ax-acid); }
.ax-case-index button.is-active > span,.ax-case-index button.is-active h3,.ax-case-index button.is-active p { animation: axCaseSettle .48s cubic-bezier(.2,.75,.2,1) both; }
.ax-case-index button.is-active h3 { animation-delay: .035s; }
.ax-case-index button.is-active p { animation-delay: .07s; }
.ax-case-index button.is-active > b { animation: axCaseNumberSettle .48s cubic-bezier(.2,.75,.2,1) both; }
@keyframes axCaseSettle { from { opacity: .35; transform: translateY(7px); } to { opacity: 1; transform: none; } }
@keyframes axCaseNumberSettle { from { opacity: .25; transform: translateY(calc(-50% + 7px)); } to { opacity: 1; transform: translateY(-50%); } }

/* Route */
.ax-method { padding: calc(clamp(85px,9vw,145px) * var(--theme-section-space,1)) 0; background: var(--ax-fog); }
.ax-method-title { display: grid; grid-template-columns: 1.2fr 7fr; gap: 48px; }
.ax-method-title h2 { margin: 0; padding-bottom: .08em; font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(4.6rem,7vw,8.2rem); font-weight: 300; letter-spacing: -.054em; line-height: .92; }
.ax-route { position: relative; display: grid; grid-template-columns: repeat(5,1fr); margin: clamp(70px,7vw,105px) 0 0; padding: 0 var(--ax-gutter); list-style: none; }
.ax-route::before { content: ""; position: absolute; top: 60px; right: calc(var(--ax-gutter) + 30px); left: calc(var(--ax-gutter) + 30px); height: 2px; background: var(--ax-green); }
.ax-route li { position: relative; min-height: 235px; border-right: 1px solid var(--ax-line); padding: 0 30px; }
.ax-route li > span { color: var(--ax-muted); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .54rem; }
.ax-route li > i { position: absolute; z-index: 2; top: 54px; left: 30px; width: 14px; height: 14px; border: 2px solid var(--ax-green); border-radius: 50%; background: var(--ax-fog); transition: transform .3s ease,background .3s ease; }
.ax-route li:hover > i { background: var(--ax-green); transform: scale(1.5); }
.ax-route small { display: block; margin-top: 100px; color: var(--ax-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; }
.ax-route h3 { max-width: 230px; margin-top: 25px; font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(2rem,2.8vw,3.2rem); font-weight: 300; letter-spacing: -.045em; line-height: .92; }

/* Firm */
.ax-firm { min-height: 0; display: grid; grid-template-columns: 42% 58%; align-items: start; overflow: hidden; background: var(--ax-white); }
.ax-firm > figure { grid-column: 2; grid-row: 1; width: 100%; min-height: 0; aspect-ratio: 3/2; align-self: start; margin: 0; overflow: hidden; }
.ax-firm > figure img { width: 100%; height: auto; display: block; }
.ax-firm-copy { grid-column: 1; grid-row: 1; width: 100%; padding-top: clamp(50px,5vw,78px); padding-right: clamp(30px,4vw,65px); background: var(--ax-white); }
.ax-firm-copy h2 { max-width: 680px; margin-top: 28px; padding-bottom: .08em; font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(3.6rem,5vw,6rem); font-weight: 300; letter-spacing: -.056em; line-height: .9; }
.ax-firm-bottom { display: grid; grid-template-columns: 1fr 1.7fr; gap: 24px; align-items: end; margin-top: 32px; border-top: 1px solid var(--ax-green); padding-top: 20px; }
.ax-firm-bottom strong { color: var(--ax-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .58rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }.ax-firm-bottom strong b { display: block; padding-block: .04em .1em; font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: 5rem; font-weight: 300; letter-spacing: -.05em; line-height: .95; }
.ax-firm-bottom p { color: var(--ax-muted); font-size: .87rem; line-height: 1.68; }.ax-firm-bottom a { grid-column: 2; color: var(--ax-green); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; }

/* Contact */
.ax-contact { overflow: clip; background: var(--ax-green); color: var(--theme-on-dark,#ffffff); }
.ax-contact-main { min-height: 0; display: flex; flex-direction: column; justify-content: center; padding-block: calc(clamp(80px,8vw,125px) * var(--theme-section-space,1)); }
.ax-contact-main > p { color: var(--ax-acid); }
.ax-contact-main h2 { max-width: 12ch; margin-top: 30px; padding-block: .05em .12em; color: var(--theme-on-dark,#ffffff); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(5.5rem,9.5vw,11.5rem); font-weight: 300; letter-spacing: -.058em; line-height: .92; }
.ax-contact-main > a { width: 100%; display: flex; justify-content: space-between; align-items: center; border-top: 1px solid color-mix(in srgb,var(--theme-on-dark,#ffffff) 65%,transparent); margin-top: 58px; padding-top: 20px; color: var(--theme-on-dark,#ffffff); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .58rem; letter-spacing: .08em; text-transform: uppercase; }
body[data-page="home"] .foot { position: relative; border-top: 0; background: var(--ax-deep); color: var(--theme-on-dark-soft,#b8c7c0); box-shadow: inset 0 5px 0 var(--ax-acid); }
body[data-page="home"] .foot .wrap { width: 100%; max-width: none; margin-inline: auto; padding-inline: var(--ax-gutter); }
body[data-page="home"] .foot-inner { position: relative; grid-template-columns: minmax(0,1.5fr) minmax(250px,.8fr) minmax(280px,1fr); gap: clamp(45px,6vw,100px); padding-top: 104px; padding-bottom: 58px; }
body[data-page="home"] .foot-inner::before { content: none; }
body[data-page="home"] .foot-brand { gap: 15px; margin-bottom: 30px; }
body[data-page="home"] .foot-brand img { width: 230px; max-width: 100%; height: auto; object-fit: contain; }
body[data-page="home"] .foot-brand b { color: var(--theme-on-dark,#ffffff); font-family: var(--theme-display-font,"Newsreader",Georgia,serif); font-size: clamp(1.55rem,2.2vw,2.5rem); font-weight: 300; letter-spacing: -.025em; line-height: 1; text-transform: none; }
body[data-page="home"] .foot-brand b span { color: var(--ax-acid); font-weight: 300; }
body[data-page="home"] .foot p { max-width: 46ch; color: var(--theme-on-dark-muted,rgba(255,255,255,.62)); font-size: .9rem; line-height: 1.75; }
body[data-page="home"] .foot h4 { margin-bottom: 24px; color: var(--ax-acid); font-family: var(--theme-mono-font,"IBM Plex Mono",monospace); font-size: .56rem; font-weight: 500; letter-spacing: .12em; }
body[data-page="home"] .foot ul { gap: 14px; }
body[data-page="home"] .foot li,body[data-page="home"] .foot a { color: var(--theme-on-dark-soft,#b8c7c0); font-size: .84rem; line-height: 1.65; }
body[data-page="home"] .foot-contact a { color: var(--theme-on-dark,#ffffff); overflow-wrap: anywhere; }
body[data-page="home"] .foot-grid-nav { grid-template-columns: 1fr 1fr; gap: 16px 32px; }
body[data-page="home"] .foot-grid-nav a { color: var(--theme-on-dark-soft,#d6e0db); font-size: .58rem; letter-spacing: .1em; }
body[data-page="home"] .foot-bottom { min-height: 92px; align-items: center; border-top: 1px solid color-mix(in srgb,var(--theme-on-dark,#ffffff) 18%,transparent); padding-block: 20px; }
body[data-page="home"] .foot-bottom span { color: var(--theme-on-dark-muted,#80928a); font-size: .54rem; letter-spacing: .12em; }

.ax-thesis,.ax-cap-grid,.ax-case-stage,.ax-method-title,.ax-route,.ax-contact-main {
  width: 100%;
  max-width: var(--theme-content-width,1280px);
  margin-inline: auto;
}

/* Match the approved full-width People section below the masthead.
   Keep the existing edge gutters, text measures, and mobile layouts. */
.ax-thesis,.ax-method-title,.ax-route,.ax-contact-main { max-width: none; }

@media (max-width: 1050px) {
  .ax-thesis { grid-template-columns: 7% minmax(0,1.12fr) minmax(330px,.88fr); }.ax-thesis-copy { padding-right: 38px; }.ax-section-head { grid-template-columns: 1fr 4fr; }.ax-section-head > p { grid-column: 2; }.ax-cap { min-height: 360px; }.ax-case-stage { grid-template-columns: 1fr; }.ax-case-media { position: relative; top: auto; height: auto; aspect-ratio: 3/2; }.ax-case-index button { min-height: 180px; }.ax-route { grid-template-columns: repeat(3,1fr); row-gap: 42px; }.ax-route::before { display: none; }.ax-route li { min-height: 210px; border-top: 2px solid var(--ax-green); padding-top: 20px; }.ax-route li > i { top: -8px; }.ax-route small { margin-top: 48px; }
  body[data-page="home"] .foot-inner { grid-template-columns: 1fr; gap: 48px; }
}

@media (max-width: 820px) {
  body[data-page="home"] .topbar-inner { height: 78px; }body[data-page="home"] .nav { top: 78px; border-bottom: 1px solid var(--ax-line); background: var(--theme-paper-solid,rgba(243,241,232,.99)); }body[data-page="home"] .nav a { color: var(--ax-ink); }
  .ax-mast-photo { height: auto; aspect-ratio: auto; }.ax-mast-photo img { height: auto; object-fit: contain; object-position: center; }
  .ax-mast-name { padding: 24px; }.ax-mast-name h1 { flex-wrap: wrap; gap: 4px 14px; font-size: clamp(2rem,6.6vw,3rem); }.ax-mast-name h1 span { white-space: normal; }.ax-mast-name p { max-width: 32ch; font-size: 1rem; }.ax-mast-index { grid-template-columns: 1fr 1fr; }.ax-mast-index span { min-height: 58px; border-bottom: 1px solid var(--ax-line); }
  .ax-thesis { min-height: auto; grid-template-columns: 1fr; padding-top: 62px; }.ax-scroll-tag { display: none; }.ax-thesis-copy { grid-column: 1; padding-right: 0; }.ax-thesis-model { grid-column: 1; grid-template-columns: minmax(0,1fr) minmax(240px,.72fr); align-items: center; gap: 30px; margin-top: 38px; }.ax-orbit { width: min(48vw,350px); margin: 0 auto; }.ax-thesis-note { width: 100%; margin: 0; }
  .ax-section-head { grid-template-columns: 1fr; gap: 20px; padding-top: 58px; padding-bottom: 44px; }.ax-section-head-light { padding-top: 72px; padding-bottom: 50px; }.ax-section-head > p { grid-column: 1; }.ax-cap { min-height: 380px; }.ax-case-stage { grid-template-columns: 1fr; }.ax-case-media { position: relative; top: auto; height: auto; aspect-ratio: 3/2; }.ax-case-index button { min-height: 190px; }
  .ax-method-title { grid-template-columns: 1fr; }.ax-route { grid-template-columns: 1fr 1fr; }.ax-firm { min-height: 0; grid-template-columns: 1fr; }.ax-firm > figure { grid-column: 1; grid-row: 1; min-height: 0; aspect-ratio: 3/2; }.ax-firm-copy { grid-column: 1; grid-row: 2; padding-top: 60px; padding-bottom: 68px; padding-right: var(--ax-gutter); }.ax-firm-bottom { grid-template-columns: 1fr 2fr; }.ax-firm-bottom a { grid-column: 2; }
}

@media (max-width: 560px) {
  .ax-mast-name { padding: 20px; }.ax-mast-name h1 { display: block; font-size: clamp(1.65rem,7.2vw,2.35rem); line-height: 1.02; }.ax-mast-name h1 span { display: block; }.ax-mast-name h1 span:last-child { margin-top: 5px; }.ax-mast-name p { max-width: 28ch; margin-top: 10px; font-size: .82rem; }.ax-mast-index { grid-template-columns: 1fr; }.ax-mast-index span { min-height: 44px; border-right: 0; padding-inline: 20px; }.ax-mast-index span:nth-child(2),.ax-mast-index span:nth-child(3) { display: none; }
  .ax-thesis { padding-top: 48px; padding-bottom: 54px; }.ax-thesis-copy h2 { margin-top: 18px; font-size: 3.45rem; }.ax-thesis-model { grid-template-columns: 1fr; gap: 22px; margin-top: 30px; }.ax-orbit { width: min(72vw,320px); margin: 0 auto; }.ax-thesis-note { width: 100%; margin: 0; }
  .ax-section-head { padding-top: 50px; padding-bottom: 38px; }.ax-section-head-light { padding-top: 62px; padding-bottom: 44px; }.ax-section-head h2 { font-size: 3.6rem; }.ax-cap-grid { grid-template-columns: 1fr; }.ax-cap { min-height: 340px; }.ax-cap h3 { font-size: 3.8rem; }
  .ax-observatory { padding-top: 0; }.ax-case-stage { margin-top: 0; }.ax-case-media { height: auto; aspect-ratio: 3/2; }.ax-case-index button { min-height: 175px; padding-right: 55px; }.ax-case-index h3 { font-size: 2.65rem; }
  .ax-method { padding: 75px 0; }.ax-method-title h2 { font-size: 3.9rem; }.ax-route { grid-template-columns: 1fr; row-gap: 30px; }.ax-route li { min-height: 165px; }.ax-route small { margin-top: 34px; }
  .ax-firm > figure { min-height: 0; aspect-ratio: 3/2; }.ax-firm-copy { padding-top: 52px; padding-bottom: 58px; }.ax-firm-copy h2 { font-size: 3.6rem; line-height: .94; }.ax-firm-bottom { grid-template-columns: 1fr; margin-top: 32px; }.ax-firm-bottom a { grid-column: 1; }.ax-contact-main { min-height: 0; padding-block: 72px; }.ax-contact-main h2 { max-width: none; font-size: clamp(3.7rem,14vw,4.4rem); line-height: .92; }.ax-contact-main > a { align-items: flex-start; flex-direction: column; gap: 16px; margin-top: 40px; }
  body[data-page="home"] .foot-inner { grid-template-columns: 1fr; gap: 38px; padding-top: 88px; padding-bottom: 46px; }
  body[data-page="home"] .foot-inner::before { content: none; }
  body[data-page="home"] .foot-brand b { font-size: 1.45rem; }
  body[data-page="home"] .foot-grid-nav { grid-template-columns: 1fr 1fr; }
  body[data-page="home"] .foot-bottom { min-height: 110px; align-items: flex-start; flex-direction: column; justify-content: center; gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .ax-main *,.ax-main *::before,.ax-main *::after { animation: none !important; transition: none !important; }
  .ax-reveal,.ax-mast-name h1 span { opacity: 1; transform: none; }
}
