@font-face {
  font-family: "Outfit";
  src: url("/fonts/outfit-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
}

@font-face {
  font-family: "IBM Plex Mono";
  src: url("/fonts/ibm-plex-mono-regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --paper: #eef1f3;
  --paper-clear: #f8fafb;
  --paper-deep: #e3e8eb;
  --ink: #171b1f;
  --ink-soft: #4f596d;
  --muted: #687279;
  --line: #cdd4d8;
  --line-dark: #adb7bd;
  --accent: #ad2945;
  --accent-dark: #8e2038;
  --radius: 3px;
  --page: min(1440px, calc(100vw - 64px));
  color: var(--ink);
  background: var(--paper);
  font-family: "Outfit", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
html { min-width: 320px; scroll-behavior: smooth; background: var(--paper); }
body { margin: 0; overflow-x: hidden; background: var(--paper); color: var(--ink); -webkit-font-smoothing: antialiased; }
body::before { content: ""; position: fixed; inset: 0; z-index: 20; pointer-events: none; opacity: .15; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E"); mix-blend-mode: multiply; }
a { color: inherit; }
button, input { font: inherit; }
button { color: inherit; }
img, svg { display: block; max-width: 100%; }
::selection { background: var(--accent); color: white; }
:focus-visible { outline: 3px solid rgba(173, 41, 69, .25); outline-offset: 4px; }
.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; }

.site-header { position: fixed; top: 0; left: 50%; z-index: 15; width: var(--page); height: 78px; display: flex; align-items: center; border-bottom: 1px solid rgba(173,183,189,.72); transform: translateX(-50%); backdrop-filter: blur(18px) saturate(1.1); }
.site-header::before { content: ""; position: fixed; z-index: -1; inset: 0 calc((100vw - var(--page)) / -2); background: rgba(238,241,243,.83); }
.brand-lockup { display: inline-flex; align-items: center; gap: 12px; color: var(--ink); text-decoration: none; }
.brand-lockup img { width: 38px; height: 38px; box-shadow: 0 9px 24px rgba(25,32,36,.13); }
.brand-lockup span { display: grid; gap: 1px; }
.brand-lockup strong { font-size: 18px; font-weight: 620; letter-spacing: -.03em; }
.brand-lockup small { color: #7a858b; font-family: "IBM Plex Mono", monospace; font-size: 7px; letter-spacing: .17em; text-transform: uppercase; }
.site-nav { margin-left: auto; display: flex; align-items: center; gap: 34px; }
.site-nav > a { position: relative; color: #4f5960; font-size: 12px; font-weight: 520; text-decoration: none; }
.site-nav > a:not(.nav-workspace)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 1px; background: var(--accent); transition: right .24s cubic-bezier(.2,.8,.2,1); }
.site-nav > a:not(.nav-workspace):hover::after { right: 0; }
.nav-workspace { min-height: 40px; display: inline-flex; align-items: center; gap: 14px; padding: 0 15px 0 17px; border: 1px solid var(--ink); background: var(--ink); color: white !important; transition: background .2s ease, color .2s ease, transform .2s ease; }
.nav-workspace span { color: #dce1e4; transition: transform .2s ease; }
.nav-workspace:hover { background: var(--accent); border-color: var(--accent); transform: translateY(-2px); }
.nav-workspace:hover span { transform: translate(2px,-2px); }
.nav-workspace:active { transform: translateY(0) scale(.985); }
.menu-toggle { display: none; width: 42px; height: 42px; margin-left: auto; padding: 12px 9px; border: 1px solid var(--line-dark); background: transparent; }
.menu-toggle > span:not(.sr-only) { display: block; height: 1px; margin: 4px 0; background: var(--ink); transition: transform .2s ease, opacity .2s ease; }

main { position: relative; }
.hero-section { min-height: 100dvh; width: var(--page); margin: 0 auto; display: grid; grid-template-columns: minmax(0,.92fr) minmax(540px,1.08fr); gap: clamp(42px,6vw,108px); align-items: center; padding: 126px 0 58px; }
.hero-copy { position: relative; z-index: 2; padding-bottom: 18px; }
.hero-eyebrow, .capability-heading > p, .method-eyebrow, .closing-copy > p { margin: 0 0 25px; color: var(--accent); font-family: "IBM Plex Mono", monospace; font-size: 9px; line-height: 1; letter-spacing: .18em; text-transform: uppercase; }
.hero-copy h1 { max-width: 680px; margin: 0; font-size: clamp(56px,6.7vw,104px); line-height: .88; letter-spacing: -.067em; font-weight: 540; }
.hero-copy h1 span { display: block; color: var(--accent); font-weight: 360; }
.hero-summary { max-width: 580px; margin: 34px 0 0; color: #566168; font-size: clamp(16px,1.45vw,20px); line-height: 1.55; letter-spacing: -.02em; }
.hero-actions { display: flex; align-items: center; gap: 27px; margin-top: 38px; }
.hero-primary { position: relative; min-height: 54px; display: inline-flex; align-items: center; gap: 28px; padding: 0 15px 0 21px; overflow: hidden; border: 1px solid var(--accent); background: var(--accent); color: white; font-size: 12px; font-weight: 630; text-decoration: none; box-shadow: 0 14px 36px rgba(116,31,49,.17); transition: transform .2s ease, box-shadow .2s ease; }
.hero-primary::before { content: ""; position: absolute; inset: 0; background: var(--ink); transform: translateX(-101%); transition: transform .28s cubic-bezier(.2,.8,.2,1); }
.hero-primary span, .hero-primary i { position: relative; z-index: 1; }
.hero-primary i { width: 29px; height: 29px; display: grid; place-items: center; background: white; color: var(--ink); font-style: normal; transition: transform .22s ease; }
.hero-primary:hover { transform: translateY(-3px); box-shadow: 0 18px 44px rgba(116,31,49,.23); }
.hero-primary:hover::before { transform: translateX(0); }
.hero-primary:hover i { transform: translate(2px,-2px); }
.hero-primary:active { transform: translateY(0) scale(.985); }
.hero-secondary { position: relative; padding: 8px 0; color: #39434a; font-size: 12px; font-weight: 600; text-decoration: none; }
.hero-secondary::after { content: ""; position: absolute; left: 0; right: 0; bottom: 3px; height: 1px; background: var(--ink); transform-origin: right; transition: transform .22s ease; }
.hero-secondary:hover::after { transform: scaleX(.38); }
.hero-secondary span { display: inline-block; margin-left: 8px; transition: transform .22s ease; }
.hero-secondary:hover span { transform: translateY(3px); }

.lens-stage { --pointer-x: 0; --pointer-y: 0; --scroll-rotation: 0deg; position: relative; min-height: min(680px,72vh); overflow: hidden; border: 1px solid var(--line-dark); background: var(--paper-clear); box-shadow: 0 34px 90px rgba(35,44,50,.13), 0 1px 0 rgba(255,255,255,.95) inset; transform: perspective(1200px) rotateX(calc(var(--pointer-y) * -1.4deg)) rotateY(calc(var(--pointer-x) * 1.7deg)); transform-style: preserve-3d; transition: transform .18s ease-out; }
.lens-grid { position: absolute; inset: 0; opacity: .56; background-image: linear-gradient(rgba(85,99,107,.09) 1px, transparent 1px), linear-gradient(90deg, rgba(85,99,107,.09) 1px, transparent 1px); background-size: 46px 46px; mask-image: radial-gradient(circle at 54% 42%, black, transparent 76%); }
.lens-stage::before { content: ""; position: absolute; top: 0; left: 0; width: 4px; height: 31%; background: var(--accent); transition: height .45s cubic-bezier(.2,.8,.2,1), top .45s cubic-bezier(.2,.8,.2,1); }
.lens-stage[data-mode="separate"]::before { top: 23%; height: 28%; }
.lens-stage[data-mode="decide"]::before { top: 49%; height: 27%; }
.lens-stage[data-mode="learn"]::before { top: 73%; height: 27%; }
.lens-geometry { position: absolute; left: 50%; top: 43%; width: min(500px,78%); aspect-ratio: 1; transform: translate(-50%,-50%) rotate(var(--scroll-rotation)) translateZ(34px); transform-style: preserve-3d; transition: transform .2s ease-out; }
.lens-ring { position: absolute; left: 50%; top: 50%; border: 1px solid #aeb9bf; border-radius: 50%; transform: translate(-50%,-50%); transition: border-color .35s ease, transform .45s cubic-bezier(.2,.8,.2,1); }
.lens-ring::after { content: ""; position: absolute; left: 50%; top: -4px; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); transform: translateX(-50%); }
.lens-ring-one { width: 100%; height: 100%; }
.lens-ring-two { width: 70%; height: 70%; transform: translate(-50%,-50%) rotate(35deg); }
.lens-ring-three { width: 39%; height: 39%; transform: translate(-50%,-50%) rotate(-28deg); }
.lens-axis { position: absolute; left: 50%; top: 50%; background: #cfd6da; transform-origin: center; }
.lens-axis-x { width: 112%; height: 1px; transform: translate(-50%,-50%) rotate(19deg); }
.lens-axis-y { width: 1px; height: 112%; transform: translate(-50%,-50%) rotate(19deg); }
.lens-node { position: absolute; width: 13px; height: 13px; border: 3px solid var(--paper-clear); border-radius: 50%; background: #7c8990; box-shadow: 0 0 0 1px #7c8990; transition: transform .4s cubic-bezier(.2,.8,.2,1), background .3s ease, box-shadow .3s ease; }
.lens-node-one { left: 10%; top: 28%; }
.lens-node-two { right: 7%; top: 45%; }
.lens-node-three { left: 34%; bottom: 4%; }
.lens-node-four { right: 31%; top: 10%; }
.lens-core { position: absolute; left: 50%; top: 50%; width: 82px; height: 82px; display: grid; place-items: center; border-radius: 50%; background: var(--ink); color: white; transform: translate(-50%,-50%) rotate(calc(var(--scroll-rotation) * -1)) translateZ(48px); box-shadow: 0 18px 45px rgba(23,27,31,.24); }
.lens-core b { font-size: 26px; font-weight: 570; }
.lens-core i { position: absolute; right: 8px; bottom: 13px; width: 14px; height: 3px; background: var(--accent); }
.lens-stage[data-mode="separate"] .lens-ring-two { border-color: var(--accent); transform: translate(-50%,-50%) rotate(78deg) scale(1.04); }
.lens-stage[data-mode="separate"] .lens-node-two, .lens-stage[data-mode="decide"] .lens-node-three, .lens-stage[data-mode="learn"] .lens-node-four { background: var(--accent); box-shadow: 0 0 0 1px var(--accent), 0 0 0 8px rgba(173,41,69,.09); transform: scale(1.2); }
.lens-stage[data-mode="decide"] .lens-ring-three { border-color: var(--accent); transform: translate(-50%,-50%) rotate(45deg) scale(.91); }
.lens-stage[data-mode="learn"] .lens-ring-one { border-color: var(--accent); transform: translate(-50%,-50%) rotate(-25deg) scale(.96); }
.lens-readout { position: absolute; left: 25px; bottom: 88px; width: min(310px,calc(100% - 50px)); padding: 17px 18px; border-left: 2px solid var(--accent); background: rgba(248,250,251,.87); backdrop-filter: blur(12px); }
.lens-readout > span { color: #727e84; font-family: "IBM Plex Mono", monospace; font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.lens-readout h2 { margin: 9px 0 0; font-size: 19px; line-height: 1.05; letter-spacing: -.035em; font-weight: 570; }
.lens-readout p { min-height: 45px; margin: 9px 0 0; color: #606b72; font-size: 11px; line-height: 1.42; }
.lens-controls { position: absolute; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); background: rgba(238,241,243,.92); }
.lens-controls button { min-height: 55px; border: 0; border-right: 1px solid var(--line); background: transparent; color: #727c82; font-family: "IBM Plex Mono", monospace; font-size: 8px; letter-spacing: .09em; text-transform: uppercase; cursor: pointer; transition: background .2s ease, color .2s ease; }
.lens-controls button:last-child { border-right: 0; }
.lens-controls button:hover { background: #e4e9ec; color: var(--ink); }
.lens-controls button.is-active { background: var(--ink); color: white; }

.source-register { width: 100%; min-height: 124px; display: grid; grid-template-columns: minmax(220px,.65fr) minmax(0,2.35fr); align-items: center; gap: 50px; padding: 0 max(32px,calc((100vw - 1440px) / 2)); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); background: var(--paper-deep); }
.source-register > p { margin: 0; color: #737e84; font-family: "IBM Plex Mono", monospace; font-size: 8px; letter-spacing: .13em; text-transform: uppercase; }
.source-track { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 22px; overflow: hidden; }
.source-track span { position: relative; color: #3e484e; font-size: 11px; font-weight: 580; white-space: nowrap; }
.source-track span + span::before { content: "/"; position: absolute; left: -18px; color: #abb4b9; font-family: "IBM Plex Mono", monospace; }

.thesis-section { width: var(--page); margin: 0 auto; display: grid; grid-template-columns: minmax(0,.82fr) minmax(600px,1.18fr); gap: clamp(60px,9vw,150px); align-items: center; padding: 150px 0; }
.thesis-copy h2, .capability-heading h2, .method-intro h2, .privacy-statement h2, .closing-copy h2 { margin: 0; font-size: clamp(42px,5.2vw,76px); line-height: .98; letter-spacing: -.057em; font-weight: 500; }
.thesis-copy p { max-width: 510px; margin: 31px 0 0; color: #5e6970; font-size: 16px; line-height: 1.65; }
.evidence-ledger { border-top: 1px solid var(--ink); }
.ledger-head, .ledger-row { display: grid; grid-template-columns: .65fr 1fr 1.25fr; gap: 18px; align-items: center; padding: 0 11px; border-bottom: 1px solid var(--line-dark); }
.ledger-head { min-height: 50px; color: #7b858b; font-family: "IBM Plex Mono", monospace; font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.ledger-row { min-height: 78px; transition: background .2s ease, padding .2s ease; }
.ledger-row:hover { padding-left: 18px; background: rgba(248,250,251,.7); }
.ledger-row strong { font-size: 14px; font-weight: 620; }
.ledger-row span { color: #465158; font-size: 13px; }
.ledger-row small { color: #788288; font-size: 11px; line-height: 1.35; }

.capability-section { padding: 145px max(32px,calc((100vw - 1440px) / 2)); border-top: 1px solid var(--line-dark); background: var(--paper-clear); }
.capability-heading { max-width: 810px; }
.capability-heading > p { margin-bottom: 24px; }
.capability-index { margin-top: 85px; border-top: 1px solid var(--ink); }
.capability-row { min-height: 190px; display: grid; grid-template-columns: minmax(250px,.75fr) minmax(380px,1.25fr) 170px; gap: 50px; align-items: center; padding: 0 18px; border-bottom: 1px solid var(--line-dark); transition: background .22s ease, padding .22s ease; }
.capability-row:hover { padding-left: 28px; background: var(--paper); }
.capability-row-offset .capability-word { padding-left: 46px; }
.capability-word { color: var(--ink); font-size: clamp(39px,4.8vw,70px); line-height: 1; letter-spacing: -.055em; font-weight: 420; }
.capability-row > p { max-width: 650px; margin: 0; color: #59646b; font-size: 15px; line-height: 1.62; }
.capability-mark { position: relative; justify-self: end; width: 130px; height: 74px; }
.capability-mark span { position: absolute; left: 0; top: 50%; width: 100%; height: 1px; background: var(--line-dark); transform-origin: center; }
.capability-mark span:nth-child(1) { transform: rotate(-18deg); }
.capability-mark span:nth-child(2) { transform: rotate(18deg); }
.capability-mark span:nth-child(3) { left: auto; right: 5px; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); transform: translateY(-50%); }
.capability-mark-target { border: 1px solid var(--line-dark); border-radius: 50%; }
.capability-mark-target::before, .capability-mark-target::after { content: ""; position: absolute; left: 50%; top: 50%; border: 1px solid var(--line-dark); border-radius: 50%; transform: translate(-50%,-50%); }
.capability-mark-target::before { width: 72%; height: 72%; }
.capability-mark-target::after { width: 36%; height: 36%; border-color: var(--accent); }
.capability-mark-target span { display: none; }
.capability-mark-route span:nth-child(1) { transform: rotate(0); }
.capability-mark-route span:nth-child(2) { left: 34%; top: 26%; width: 65%; transform: rotate(-29deg); }
.capability-mark-loop { border: 1px solid var(--line-dark); border-radius: 50%; }
.capability-mark-loop span:nth-child(1) { width: 76%; left: 12%; transform: rotate(0); }
.capability-mark-loop span:nth-child(2) { width: 55%; left: 22%; transform: rotate(90deg); }

.method-section { width: var(--page); margin: 0 auto; display: grid; grid-template-columns: minmax(320px,.72fr) minmax(560px,1.28fr); gap: clamp(70px,10vw,170px); align-items: start; padding: 155px 0; }
.method-intro { position: sticky; top: 135px; }
.method-intro > p:last-child { max-width: 510px; margin: 30px 0 0; color: #626d74; font-size: 15px; line-height: 1.65; }
.method-stack { border-top: 1px solid var(--ink); }
.method-plate { min-height: 255px; padding: 31px 13px 35px; border-bottom: 1px solid var(--line-dark); }
.method-plate > span { color: var(--accent); font-family: "IBM Plex Mono", monospace; font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.method-plate h3 { max-width: 640px; margin: 38px 0 0; font-size: clamp(30px,3.6vw,51px); line-height: 1.02; letter-spacing: -.05em; font-weight: 470; }
.method-plate p { max-width: 590px; margin: 24px 0 0 auto; color: #657077; font-size: 14px; line-height: 1.6; }

.privacy-section { width: var(--page); margin: 0 auto 150px; display: grid; grid-template-columns: 1fr 1fr; gap: 90px; padding: 73px; border: 1px solid var(--line-dark); background: #e7ecef; }
.privacy-rule { display: block; width: 72px; height: 4px; margin-bottom: 44px; background: var(--accent); }
.privacy-register { border-top: 1px solid var(--ink); }
.privacy-register > div { display: grid; grid-template-columns: 110px minmax(0,1fr); gap: 28px; min-height: 84px; align-items: center; border-bottom: 1px solid var(--line-dark); }
.privacy-register strong { font-size: 12px; font-weight: 630; }
.privacy-register span { color: #606b72; font-size: 12px; line-height: 1.45; }

.closing-section { min-height: 570px; display: grid; grid-template-columns: minmax(0,1.6fr) minmax(330px,.4fr); align-items: center; gap: 70px; padding: 100px max(32px,calc((100vw - 1440px) / 2)); border-top: 1px solid var(--line-dark); background: var(--paper-clear); }
.closing-copy { max-width: 940px; }
.closing-copy h2 { font-size: clamp(53px,7vw,106px); }
.closing-entry { justify-self: end; width: 280px; aspect-ratio: 1; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; padding: 26px; border: 1px solid var(--accent); background: var(--accent); color: white; font-size: 14px; font-weight: 620; text-decoration: none; box-shadow: 0 24px 58px rgba(116,31,49,.18); transition: background .25s ease, border-color .25s ease, transform .25s ease; }
.closing-entry i { align-self: flex-end; font-size: 28px; font-style: normal; transition: transform .25s ease; }
.closing-entry:hover { border-color: var(--ink); background: var(--ink); transform: rotate(-2deg) translateY(-4px); }
.closing-entry:hover i { transform: translate(5px,-5px); }
.closing-entry:active { transform: rotate(0) scale(.985); }

.site-footer { width: var(--page); min-height: 115px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr auto; gap: 30px; align-items: center; border-top: 1px solid var(--line-dark); }
.footer-brand { display: inline-flex; align-items: center; gap: 10px; width: fit-content; font-size: 15px; font-weight: 620; text-decoration: none; }
.site-footer > p { margin: 0; color: #6e797f; font-size: 11px; }
.site-footer > div { display: flex; align-items: center; gap: 26px; color: #727d83; font-family: "IBM Plex Mono", monospace; font-size: 8px; }
.site-footer > div a { text-decoration: none; }
.site-footer > div a:hover { color: var(--accent); }

[data-reveal] { transform: translateY(var(--reveal-distance,0)); transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.js [data-reveal] { --reveal-distance: 18px; }
.js [data-reveal].is-revealed { --reveal-distance: 0px; }

.not-found-page { min-height: 100dvh; display: grid; place-items: center; }
.not-found-page main { width: min(900px,calc(100vw - 44px)); }
.not-found-page main > div { margin-top: 100px; padding-top: 45px; border-top: 1px solid var(--ink); }
.not-found-page main p { color: var(--accent); font-family: "IBM Plex Mono", monospace; font-size: 11px; }
.not-found-page h1 { max-width: 780px; margin: 20px 0 40px; font-size: clamp(48px,8vw,100px); line-height: .9; letter-spacing: -.06em; font-weight: 500; }
.not-found-page main > div > a { display: inline-flex; gap: 14px; padding-bottom: 5px; border-bottom: 1px solid var(--ink); font-size: 13px; text-decoration: none; }

@media (max-width: 1180px) {
  :root { --page: min(100% - 44px,1080px); }
  .hero-section { grid-template-columns: minmax(0,.84fr) minmax(470px,1.16fr); gap: 42px; }
  .hero-copy h1 { font-size: clamp(54px,7vw,79px); }
  .lens-stage { min-height: 610px; }
  .source-register { padding-inline: 22px; }
  .source-track { overflow-x: auto; justify-content: flex-start; padding: 16px 0; scrollbar-width: none; }
  .thesis-section { grid-template-columns: .75fr 1.25fr; gap: 55px; }
  .capability-section, .closing-section { padding-inline: 22px; }
  .capability-row { grid-template-columns: minmax(210px,.7fr) minmax(330px,1.3fr) 120px; gap: 34px; }
  .capability-mark { width: 105px; }
  .method-section { gap: 65px; }
  .privacy-section { padding: 55px; gap: 55px; }
}

@media (max-width: 900px) {
  :root { --page: min(100% - 36px,760px); }
  .site-nav { gap: 20px; }
  .site-nav > a:not(.nav-workspace) { display: none; }
  .hero-section { min-height: 0; grid-template-columns: 1fr; padding-top: 150px; }
  .hero-copy { max-width: 700px; }
  .hero-copy h1 { font-size: clamp(60px,11vw,89px); }
  .lens-stage { min-height: 650px; }
  .source-register { grid-template-columns: 1fr; gap: 0; padding-block: 28px; }
  .thesis-section { grid-template-columns: 1fr; padding: 110px 0; }
  .evidence-ledger { margin-top: 20px; }
  .capability-section { padding-block: 110px; }
  .capability-index { margin-top: 60px; }
  .capability-row { grid-template-columns: minmax(190px,.7fr) minmax(0,1.3fr); min-height: 170px; }
  .capability-mark { display: none; }
  .method-section { grid-template-columns: 1fr; padding: 110px 0; }
  .method-intro { position: static; }
  .method-stack { margin-top: 25px; }
  .privacy-section { grid-template-columns: 1fr; margin-bottom: 110px; }
  .closing-section { min-height: 650px; grid-template-columns: 1fr; }
  .closing-entry { justify-self: start; width: 230px; }
  .site-footer { grid-template-columns: 1fr auto; padding: 28px 0; }
  .site-footer > p { display: none; }
}

@media (max-width: 620px) {
  :root { --page: calc(100% - 28px); }
  .site-header { height: 68px; }
  .brand-lockup, .footer-brand { min-height: 44px; }
  .site-nav { position: fixed; top: 68px; left: 14px; right: 14px; display: grid; gap: 0; padding: 10px; border: 1px solid var(--line-dark); background: rgba(248,250,251,.98); box-shadow: 0 22px 52px rgba(29,36,41,.17); transform: translateY(-135%); transition: transform .28s cubic-bezier(.2,.8,.2,1); }
  .site-nav.is-open { transform: translateY(0); }
  .site-nav > a:not(.nav-workspace) { min-height: 46px; display: flex; align-items: center; padding: 0 11px; border-bottom: 1px solid var(--line); }
  .site-nav .nav-workspace { min-height: 44px; margin-top: 10px; justify-content: space-between; }
  .menu-toggle { width: 44px; height: 44px; display: block; }
  .menu-toggle[aria-expanded="true"] > span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] > span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }
  .hero-section { gap: 52px; padding: 125px 0 35px; }
  .hero-eyebrow { margin-bottom: 20px; }
  .hero-copy h1 { font-size: clamp(55px,17vw,79px); line-height: .9; }
  .hero-summary { margin-top: 27px; font-size: 16px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 17px; }
  .hero-secondary { min-height: 44px; display: inline-flex; align-items: center; }
  .lens-stage { min-height: 580px; }
  .lens-geometry { top: 38%; width: 92%; }
  .lens-readout { bottom: 98px; }
  .lens-controls { grid-template-columns: repeat(2,1fr); }
  .lens-controls button { min-height: 47px; border-bottom: 1px solid var(--line); }
  .source-register { min-height: 150px; }
  .thesis-copy h2, .capability-heading h2, .method-intro h2, .privacy-statement h2 { font-size: clamp(41px,12vw,59px); }
  .thesis-section { gap: 38px; padding: 90px 0; }
  .ledger-head { display: none; }
  .ledger-row { grid-template-columns: 1fr 1.4fr; min-height: 100px; gap: 10px; padding: 12px 3px; }
  .ledger-row small { grid-column: 2; }
  .capability-section { padding-block: 90px; }
  .capability-index { margin-top: 52px; }
  .capability-row { min-height: 0; grid-template-columns: 1fr; gap: 22px; padding: 35px 2px; }
  .capability-row:hover { padding-left: 2px; }
  .capability-row-offset .capability-word { padding-left: 0; }
  .capability-word { font-size: 52px; }
  .method-section { padding: 90px 0; }
  .method-plate { min-height: 230px; padding-inline: 2px; }
  .method-plate p { margin-left: 0; }
  .privacy-section { width: 100%; padding: 68px 22px; border-left: 0; border-right: 0; }
  .privacy-register > div { grid-template-columns: 1fr; gap: 7px; padding: 18px 0; }
  .closing-section { min-height: 600px; padding: 75px 14px; }
  .closing-copy h2 { font-size: clamp(51px,15vw,76px); }
  .closing-entry { width: 190px; }
  .site-footer { grid-template-columns: 1fr; }
  .site-footer > div { flex-wrap: wrap; gap: 13px 20px; }
  .site-footer > div a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .lens-stage, .lens-geometry { transform: none !important; }
  .js [data-reveal] { --reveal-distance: 0px; }
}
