:root {
  color-scheme: light;
  --paper: #eeece6;
  --ink: #1e211d;
  --muted: #73766f;
  --line: rgba(30, 33, 29, .17);
  --lime: #c8e66a;
  --orange: #dd693d;
  --mono: "DM Mono", monospace;
  --sans: "DM Sans", sans-serif;
  --display: "Manrope", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
.skip-link { position: fixed; z-index: 20; top: 10px; left: 10px; padding: 12px 16px; transform: translateY(-150%); background: var(--ink); color: white; }
.skip-link:focus { transform: translateY(0); }

.site-header { height: 82px; position: fixed; z-index: 10; inset: 0 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 0 6.1vw; border-bottom: 1px solid rgba(30, 33, 29, .08); background: rgba(238, 236, 230, .84); backdrop-filter: blur(18px); }
.wordmark { display: flex; align-items: center; gap: 11px; text-decoration: none; }
.wordmark-mark { font-family: "Dancing Script", cursive; font-size: 35px; font-style: italic; font-weight: 700; letter-spacing: -.09em; line-height: 1; }
.wordmark-mark span { display: inline-block; margin-left: -.07em; color: var(--orange); }
.wordmark-name { font: 500 10px var(--mono); letter-spacing: .12em; }
.navigation { display: flex; align-items: center; gap: clamp(22px, 4vw, 58px); font: 11px var(--mono); letter-spacing: .03em; }
.navigation a { text-decoration: none; transition: color .2s ease; }
.navigation a:hover, .text-link:hover { color: var(--orange); }
.navigation .nav-contact { padding: 12px 17px; border: 1px solid var(--ink); border-radius: 30px; }
.navigation .nav-contact span { padding-left: 7px; font-size: 14px; }
.reading-track { height: 2px; position: fixed; z-index: 11; top: 82px; left: 0; right: 0; background: transparent; }
.reading-track span { display: block; width: 0; height: 100%; background: var(--orange); transform-origin: left; }

.story-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(380px, .92fr); max-width: 1680px; margin: 0 auto; padding: 0 6.1vw; }
.story { min-width: 0; }
.chapter { min-height: 100svh; position: relative; display: flex; align-items: center; padding: 124px 7.4% 90px 0; border-bottom: 1px solid var(--line); }
.chapter-content { width: 100%; max-width: 650px; position: relative; z-index: 1; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 28px; font: 500 10px var(--mono); letter-spacing: .13em; color: #555a50; }
.status-dot { width: 8px; height: 8px; display: inline-block; border-radius: 50%; background: #8aab2d; box-shadow: 0 0 0 4px rgba(138, 171, 45, .13); flex: 0 0 auto; }
h1, h2 { margin: 0; font-family: var(--display); font-weight: 600; letter-spacing: -.077em; }
h1 { font-size: clamp(64px, 7.45vw, 116px); line-height: .97; }
h2 { font-size: clamp(48px, 5.2vw, 78px); line-height: 1.02; }
h1 em, h2 em { color: var(--orange); font-style: normal; }
.intro-copy { max-width: 390px; margin: 29px 0 0; color: #595c54; font-size: 17px; line-height: 1.65; }
.intro-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 26px; margin-top: 32px; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 29px; min-height: 50px; padding: 0 18px; border-radius: 3px; text-decoration: none; font-size: 12px; font-weight: 600; transition: transform .2s ease, box-shadow .2s ease; }
.button:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(30, 33, 29, .15); }
.button-dark { background: var(--ink); color: #fff; }
.button-dark span, .button-lime span { font-size: 17px; }
.text-link { font: 11px var(--mono); text-decoration: none; transition: color .2s ease; }
.text-link span { padding-left: 4px; font-size: 15px; }
.scroll-note { position: absolute; top: calc(100svh - 175px); display: flex; align-items: center; gap: 12px; color: var(--muted); font: 9px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.scroll-line { width: 40px; height: 1px; background: var(--orange); }
.chapter-number { display: flex; align-items: center; gap: 9px; position: absolute; bottom: 32px; left: 0; color: var(--muted); font: 9px var(--mono); letter-spacing: .1em; }
.chapter-number i { width: 46px; height: 1px; display: block; background: var(--line); }

.about h2, .work h2, .next h2, .contact h2 { margin-bottom: 27px; }
.body-copy { max-width: 475px; margin: 0; color: #5f625a; font-size: 15px; line-height: 1.8; }
.about-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; max-width: 520px; margin-top: 31px; padding: 20px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.about-facts div { display: grid; gap: 8px; }
.fact-label { font: 9px var(--mono); letter-spacing: .1em; color: var(--muted); }
.about-facts strong { font-size: 12px; font-weight: 600; }
.interest-row { max-width: 520px; display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-top: 21px; }
.interest-row span { flex-basis: 100%; margin-bottom: 3px; color: var(--muted); font: 9px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.interest-row b, .project-tags span { padding: 7px 10px; border: 1px solid var(--line); border-radius: 20px; font-size: 10px; font-weight: 500; }

.work { width: calc(100vw - 12.2vw); min-height: 100svh; position: relative; z-index: 3; padding: 112px 0 84px; background: var(--paper); }
.work.scroll-driven-gallery { display: block; min-height: 0; padding: 0; }
.work .chapter-content { max-width: none; }
.work.scroll-driven-gallery .chapter-content { position: sticky; top: 82px; }
.work-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; }
.work-heading .eyebrow { margin-bottom: 20px; }
.work-heading h2 { margin: 0; font-size: clamp(51px, 5.4vw, 82px); }
.gallery-controls { display: flex; align-items: center; gap: 9px; padding-bottom: 5px; }
.gallery-controls > span { margin-right: 9px; color: var(--muted); font: 9px var(--mono); letter-spacing: .08em; white-space: nowrap; }
.gallery-controls button { width: 39px; height: 39px; display: grid; place-items: center; border: 1px solid rgba(30, 33, 29, .25); border-radius: 50%; background: transparent; color: var(--ink); font-size: 17px; cursor: pointer; transition: background .2s, color .2s, opacity .2s; }
.gallery-controls button:hover:not(:disabled) { background: var(--ink); color: var(--paper); }
.gallery-controls button:disabled { opacity: .35; cursor: default; }
.project-track { display: flex; gap: clamp(17px, 2.3vw, 34px); overflow-x: auto; margin-top: 31px; padding: 2px 2px 13px; scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain; scrollbar-width: none; perspective: 1500px; perspective-origin: 50% 45%; }
.scroll-driven-gallery .project-track { scroll-snap-type: none; }
.project-track::-webkit-scrollbar { display: none; }
.work-card { flex: 0 0 min(64vw, 840px); min-width: 0; display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(30, 33, 29, .16); background: #e6e3da; color: var(--ink); text-decoration: none; scroll-snap-align: start; opacity: var(--card-opacity, 1); transform: perspective(1500px) rotateY(var(--card-rotate, 0deg)) translateY(var(--card-lift, 0px)) scale(var(--card-scale, 1)); transform-origin: center center; backface-visibility: hidden; transition: box-shadow .28s ease, transform .16s linear, opacity .16s linear; }
.work-card:hover { box-shadow: 10px 12px 0 rgba(30, 33, 29, .08); }
.work-card:focus-visible, .gallery-controls button:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; }
.work-card-image { aspect-ratio: 2.2 / 1; position: relative; overflow: hidden; background: #d8d7d0; }
.work-card-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(19, 22, 20, .3), transparent 24%, transparent 72%, rgba(19, 22, 20, .16)); pointer-events: none; }
.work-card-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .6s cubic-bezier(.2,.65,.25,1); }
.work-card:hover .work-card-image img { transform: scale(1.025); }
.image-kind, .image-count { position: absolute; z-index: 1; top: 14px; color: #fff; font: 8px var(--mono); letter-spacing: .1em; text-shadow: 0 1px 5px rgba(0,0,0,.45); }
.image-kind { left: 16px; }
.image-count { right: 16px; }
.image-open { width: 35px; height: 35px; position: absolute; right: 14px; bottom: 14px; z-index: 1; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; color: white; font-size: 17px; transition: background .2s, color .2s; }
.work-card:hover .image-open { background: var(--lime); border-color: var(--lime); color: var(--ink); }
.work-card-info { min-height: 139px; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 20px 23px 22px; }
.work-card-info h3 { margin: 7px 0 6px; font: 650 clamp(23px, 2.2vw, 34px)/1.05 var(--display); letter-spacing: -.055em; }
.work-kicker { margin: 0; color: #777970; font: 8px var(--mono); letter-spacing: .1em; }
.work-card-info p:not(.work-kicker) { max-width: 560px; margin: 0; color: #62645d; font-size: 11px; line-height: 1.6; }
.work-card-arrow { width: 36px; height: 36px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid rgba(30, 33, 29, .3); border-radius: 50%; font-size: 17px; transition: transform .2s ease; }
.work-card:hover .work-card-arrow { transform: translate(2px, -2px); }
.gallery-footer { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-top: 7px; color: var(--muted); font: 8px var(--mono); letter-spacing: .1em; }
.gallery-footer > span:first-child { display: flex; align-items: center; gap: 9px; }
.gallery-dot { width: 6px; height: 6px; display: inline-block; border-radius: 50%; background: var(--orange); }
.gallery-progress { width: 146px; height: 2px; display: block; background: rgba(30, 33, 29, .15); }
.gallery-progress i { width: 25%; height: 100%; display: block; background: var(--orange); transition: width .2s ease; }
.work-footnote { max-width: 410px; margin: 25px 0 0; color: var(--muted); font: 10px/1.7 var(--mono); }
.gallery-active .portrait-sticky, .contact-active .portrait-sticky { opacity: 0; pointer-events: none; }
.portrait-sticky { transition: opacity .45s ease; }

.next { min-height: 92svh; }
.study-source { display: inline-block; margin-top: 23px; color: var(--muted); font: 8px var(--mono); letter-spacing: .1em; text-decoration: none; transition: color .2s ease; }
.study-source:hover { color: var(--orange); }
.study-map { max-width: 610px; position: relative; margin-top: 16px; }
.study-path-track { position: absolute; top: 0; left: 101px; z-index: 0; width: 2px; height: 0; background: rgba(30,33,29,.13); pointer-events: none; }
.study-path-fill { width: 100%; height: 100%; display: block; background: var(--orange); box-shadow: 0 0 9px rgba(221,105,61,.2); transform: scaleY(0); transform-origin: top; transition: transform .28s ease-out; }
.study-stop { display: grid; grid-template-columns: 82px 20px minmax(0, 1fr); gap: 10px; position: relative; padding-bottom: 13px; }
.study-date { grid-column: 1; grid-row: 1; z-index: 1; padding-top: 17px; color: var(--muted); font: 8px/1.55 var(--mono); letter-spacing: .05em; text-align: right; white-space: nowrap; }
.study-node { width: 13px; height: 13px; grid-column: 2; grid-row: 1; z-index: 2; margin: 19px auto 0; border: 1px solid var(--orange); border-radius: 50%; background: var(--paper); box-shadow: 0 0 0 4px var(--paper); transition: box-shadow .32s ease, background-color .32s ease; }
.study-current .study-node { background: var(--orange); animation: current-school-blink 1.25s ease-in-out infinite; }
.study-entry { grid-column: 3; grid-row: 1; z-index: 1; min-width: 0; padding: 13px 15px 12px; border: 1px solid var(--line); background: rgba(255,255,255,.2); transition: border-color .25s ease, box-shadow .25s ease; }
.study-stop:hover .study-entry { border-color: rgba(221,105,61,.4); box-shadow: 0 8px 22px rgba(30,33,29,.07); }
.study-current .study-entry { border-color: rgba(221,105,61,.48); background: rgba(221,105,61,.055); }
.study-stop.is-focused .study-entry { border-color: rgba(221,105,61,.56); box-shadow: 0 9px 26px rgba(30,33,29,.08); }
.study-stop.is-focused .study-node { background: var(--orange); box-shadow: 0 0 0 4px var(--paper), 0 0 0 8px rgba(221,105,61,.17); }
@keyframes current-school-blink { 0%, 100% { box-shadow: 0 0 0 4px var(--paper), 0 0 0 6px rgba(221,105,61,.12); } 50% { box-shadow: 0 0 0 4px var(--paper), 0 0 0 10px rgba(221,105,61,.32); } }
.study-type { color: var(--muted); font: 7px var(--mono); letter-spacing: .1em; }
.study-entry h3 { margin: 5px 0 4px; font: 650 clamp(15px, 1.35vw, 19px)/1.15 var(--display); letter-spacing: -.04em; }
.study-entry p { margin: 0; color: #62645d; font-size: 10px; line-height: 1.45; }
.study-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.study-tags span { padding: 4px 7px; border: 1px solid rgba(30,33,29,.14); border-radius: 20px; color: #5f625a; font: 7px var(--mono); }
.next-line { display: flex; align-items: center; gap: 14px; margin-top: 30px; color: #5b5e57; font-size: 12px; line-height: 1.5; }
.next-icon { width: 37px; height: 37px; display: grid; place-items: center; border: 1px solid var(--orange); border-radius: 50%; color: var(--orange); font-size: 18px; }
.contact { width: calc(100vw - 12.2vw); min-height: 90svh; position: relative; z-index: 3; overflow: hidden; border-bottom: 0; }
.contact .chapter-content { position: relative; z-index: 2; }
.contact-character { width: min(42vw, 550px, 59.6svh); aspect-ratio: 550 / 720; position: absolute; right: 0; bottom: 0; z-index: 0; overflow: visible; transform: perspective(1000px) translate3d(var(--pal-x, 0px), var(--pal-y, 0px), 0) rotateX(var(--pal-rx, 0deg)) rotateY(var(--pal-ry, 0deg)) rotateZ(var(--pal-rz, 0deg)); transform-origin: 48% 22%; transition: transform .34s cubic-bezier(.2,.7,.2,1); will-change: transform; pointer-events: none; }
.contact-character img { width: 100%; height: 100%; display: block; object-fit: contain; object-position: center; user-select: none; }
.cursor-eye { width: 8.4%; height: 5%; position: absolute; top: 15.7%; overflow: hidden; background: #f0efeb; clip-path: polygon(0 49%, 12% 23%, 34% 7%, 63% 3%, 88% 18%, 100% 48%, 88% 78%, 63% 96%, 34% 93%, 12% 75%); }
.cursor-eye::before { content: ""; position: absolute; inset: 0; border-top: 1.5px solid #18191a; border-radius: 50% 50% 46% 46% / 72% 72% 42% 42%; pointer-events: none; }
.cursor-eye-left { left: 36.9%; }
.cursor-eye-right { left: 48.6%; }
.cursor-pupil { width: 56%; height: 78%; position: absolute; top: 11%; left: 22%; border-radius: 50%; background: radial-gradient(circle at 50% 54%, #121416 0 30%, #4b4e51 35% 60%, #24272a 69% 100%); transform: translate3d(var(--gaze-x, 0px), var(--gaze-y, 0px), 0); transition: transform .12s ease-out; }
.cursor-pupil::after { content: ""; width: 19%; aspect-ratio: 1; position: absolute; top: 15%; left: 19%; border-radius: 50%; background: rgba(255,255,255,.9); }
.contact .body-copy { margin-bottom: 28px; }
.button-lime { background: var(--lime); color: var(--ink); }
.cv-download { max-width:560px; display:flex; align-items:end; justify-content:space-between; gap:22px; margin-top:38px; padding:22px 0 20px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.cv-copy .eyebrow { margin-bottom:10px; font-size:8px; }
.cv-copy h3 { margin:0 0 7px; font:650 clamp(21px,2.3vw,30px)/1.1 var(--display); letter-spacing:-.05em; }
.cv-copy > p:last-child { max-width:300px; margin:0; color:#62645d; font-size:11px; line-height:1.55; }
.cv-unavailable { flex:0 0 auto; margin:0 0 5px; color:var(--muted); font:8px var(--mono); letter-spacing:.02em; }
.cv-download .button { flex:0 0 auto; }
.footer-rule { height: 1px; margin-top: 80px; background: var(--line); }
.footer-bottom { display: flex; justify-content: space-between; gap: 12px; margin-top: 17px; color: var(--muted); font: 8px var(--mono); letter-spacing: .05em; }
.footer-bottom a { text-decoration: none; }

.portrait-rail { min-width: 0; position: relative; }
.portrait-sticky { height: 100svh; min-height: 620px; position: sticky; top: 0; display: grid; align-content: center; justify-items: center; overflow: hidden; }
.portrait-stage { width: min(100%, 650px); height: min(780px, 88svh); min-height: 530px; position: relative; display: grid; place-items: center; perspective: 1200px; isolation: isolate; }
.portrait-stage::before { content: ""; width: 62%; aspect-ratio: 1; position: absolute; top: 17%; right: 2%; z-index: -2; border-radius: 50%; background: radial-gradient(circle at 35% 35%, rgba(217, 106, 62, .18), rgba(217, 106, 62, 0) 69%); filter: blur(3px); }
.portrait-stage::after { content: ""; position: absolute; inset: 8% 1% 8% 11%; z-index: -3; background-image: radial-gradient(rgba(30, 33, 29, .18) .75px, transparent .75px); background-size: 18px 18px; opacity: .25; mask-image: linear-gradient(90deg, transparent, #000 38%, #000 78%, transparent); }
.portrait-object { width: min(70%, 390px); position: relative; transform-style: preserve-3d; will-change: transform; transition: transform .8s cubic-bezier(.2,.65,.25,1); }
.portrait-back { position: absolute; inset: 0; z-index: -1; transform: translate3d(21px, 22px, -29px) rotate(3deg); border: 1px solid var(--ink); background: var(--orange); box-shadow: 14px 18px 0 rgba(30, 33, 29, .08); }
.portrait-card { height: auto; position: relative; margin: 0; padding: 8px 8px 0; background: #d6d1c5; box-shadow: 0 23px 50px rgba(30, 33, 29, .2); transform: translateZ(34px); transform-style: preserve-3d; }
.portrait-card img { width: 100%; aspect-ratio: 4 / 5.25; display: block; object-fit: cover; object-position: 50% 43%; filter: saturate(.82) contrast(1.035); }
.portrait-card figcaption { height: 40px; display: flex; justify-content: space-between; align-items: center; padding: 0 5px; font: 8px var(--mono); letter-spacing: .09em; }
.portrait-card figcaption span:last-child { display: flex; align-items: center; gap: 6px; color: #65675f; }
.portrait-card figcaption i { width: 6px; height: 6px; border-radius: 50%; background: var(--orange); }
.portrait-edge { position: absolute; inset: 6px -5px -5px 6px; z-index: -2; border: 1px solid rgba(30, 33, 29, .36); transform: translateZ(15px); pointer-events: none; }
.floating-stamp { width: 86px; height: 86px; position: absolute; z-index: 2; display: grid; place-items: center; align-content: center; border: 1px solid rgba(30, 33, 29, .23); border-radius: 50%; background: var(--paper); box-shadow: 0 8px 22px rgba(30, 33, 29, .08); transform: translateZ(100px); }
.stamp-top { top: 19%; right: 8%; transform: translateZ(100px) rotate(9deg); }
.floating-stamp span { font: 700 20px var(--display); }
.floating-stamp small { margin-top: 3px; font: 6px/1.4 var(--mono); letter-spacing: .06em; text-align: center; }
.location-tag { position: absolute; bottom: 12%; right: 2%; display: flex; align-items: center; gap: 11px; color: #53564e; font: 8px/1.6 var(--mono); letter-spacing: .08em; }
.location-tag .status-dot { width: 6px; height: 6px; }
.stage-index { position: absolute; top: 8%; right: 3%; color: var(--muted); font: 9px var(--mono); letter-spacing: .1em; }
.portrait-caption { position: absolute; bottom: 4%; margin: 0; color: #777970; font: 9px var(--mono); letter-spacing: .07em; }

.reveal { opacity: 0; transform: translateY(25px); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.study-stop .study-date, .study-stop .study-node, .study-stop .study-entry { opacity: 0; }
.study-stop.is-visible .study-date { animation: study-date-arrive .5s cubic-bezier(.2,.7,.2,1) .04s both; }
.study-stop.is-visible .study-node { animation: study-node-arrive .55s cubic-bezier(.2,.7,.2,1) .12s both; }
.study-stop.is-visible .study-entry { animation: study-entry-arrive .62s cubic-bezier(.2,.7,.2,1) .18s both; }
@keyframes study-date-arrive { from { opacity: 0; transform: translateX(-12px); } to { opacity: 1; transform: translateX(0); } }
@keyframes study-node-arrive { 0% { opacity: 0; transform: scale(.35); } 72% { opacity: 1; transform: scale(1.18); } 100% { opacity: 1; transform: scale(1); } }
@keyframes study-entry-arrive { from { opacity: 0; transform: translate3d(0, 16px, 0) scale(.985); } to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); } }
.custom-cursor { position:fixed; top:0; left:0; z-index:30; width:0; height:0; opacity:0; pointer-events:none; transform:translate3d(var(--cursor-x,-100px),var(--cursor-y,-100px),0); transition:opacity .18s ease; }
.custom-cursor.is-visible { opacity:1; }
.custom-cursor-ring { width:34px; height:34px; position:absolute; top:-17px; left:-17px; display:grid; place-items:center; border:1px solid rgba(30,33,29,.76); border-radius:50%; background:rgba(238,236,230,.12); transition:width .22s ease,height .22s ease,top .22s ease,left .22s ease,background .22s ease,border-color .22s ease; }
.custom-cursor-core { width:5px; height:5px; position:absolute; top:-2.5px; left:-2.5px; border-radius:50%; background:var(--orange); }
.custom-cursor-label { color:var(--ink); font:6px var(--mono); letter-spacing:.03em; opacity:0; transition:opacity .18s ease; }
.custom-cursor.is-hovering .custom-cursor-ring { width:58px; height:58px; top:-29px; left:-29px; border-color:var(--orange); background:rgba(238,236,230,.48); }
.custom-cursor.is-hovering .custom-cursor-label { opacity:1; }
.has-custom-cursor,.has-custom-cursor a,.has-custom-cursor button { cursor:none !important; }

@media (min-width: 1500px) {
  .story-layout { grid-template-columns: 1fr 1fr; }
  h1 { font-size: clamp(108px, 7vw, 132px); }
}
@media (max-width: 980px) {
  .story-layout { grid-template-columns: minmax(0, 1fr) minmax(315px, .86fr); padding: 0 4.5vw; }
  .chapter { padding-right: 4%; }
  h1 { font-size: clamp(58px, 8.4vw, 83px); }
  h2 { font-size: clamp(44px, 6vw, 60px); }
  .portrait-object { width: min(75%, 360px); }
  .floating-stamp { width: 70px; height: 70px; }
  .stamp-top { right: 2%; }
  .work-card { flex-basis: min(64vw, 780px); }
  .work-card-info { padding-inline: 18px; }
}
@media (max-width: 700px) {
  html { scroll-padding-top: 72px; }
  .site-header { height: 68px; padding: 0 6vw; }
  .reading-track { top: 68px; }
  .wordmark-name { font-size: 9px; }
  .navigation { gap: 18px; font-size: 9px; }
  .navigation .nav-contact { padding: 10px 12px; }
  .story-layout { display: flex; flex-direction: column; padding: 0 6vw; }
  .portrait-rail { order: -1; height: 69svh; min-height: 460px; margin: 65px -6vw 0; }
  .portrait-sticky { height: 69svh; min-height: 460px; }
  .portrait-stage { width: 100%; height: 100%; min-height: 0; }
  .portrait-object { width: min(60%, 285px); }
  .portrait-card { padding: 6px 6px 0; }
  .portrait-card figcaption { height: 32px; font-size: 7px; }
  .floating-stamp { width: 62px; height: 62px; }
  .floating-stamp span { font-size: 17px; }
  .floating-stamp small { font-size: 5px; }
  .stamp-top { top: 13%; right: 13%; }
  .location-tag { bottom: 7%; right: 10%; font-size: 7px; }
  .stage-index { top: 7%; right: 9%; }
  .portrait-caption { bottom: 1.5%; font-size: 8px; }
  .chapter { min-height: auto; padding: 84px 0 88px; }
  .intro { min-height: 80svh; padding-top: 42px; }
  .about { min-height: 90svh; }
  .work { width: calc(100vw - 12vw); min-height: 0; padding: 82px 0 77px; }
  .next { min-height: 80svh; }
  .contact { min-height: 84svh; }
  .contact { width: calc(100vw - 12vw); min-height: 0; display: flex; flex-direction: column; align-items: stretch; padding: 48px 0 88px; }
  .contact-character { width: min(100%, 380px); position: relative; right: auto; bottom: auto; align-self: center; margin: 0 auto -28px; }
  .contact .chapter-content { width: 100%; max-width: none; }
  .eyebrow { margin-bottom: 22px; font-size: 9px; }
  h1 { font-size: clamp(60px, 15vw, 88px); }
  h2 { font-size: clamp(47px, 12vw, 67px); }
  .intro-copy { max-width: 350px; margin-top: 23px; font-size: 15px; }
  .scroll-note { top: auto; bottom: 28px; }
  .chapter-number { bottom: 24px; }
  .body-copy { font-size: 14px; }
  .work-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
  .work-heading .eyebrow { margin-bottom: 14px; font-size: 8px; }
  .work-heading h2 { font-size: clamp(43px, 10.5vw, 61px); }
  .gallery-controls { align-self: flex-end; gap: 6px; padding-bottom: 1px; }
  .gallery-controls > span { margin-right: 3px; font-size: 8px; }
  .gallery-controls button { width: 32px; height: 32px; font-size: 15px; }
  .project-track { gap: 15px; margin-top: 22px; padding-bottom: 10px; }
  .work-card { flex-basis: 84vw; }
  .work-card-image { aspect-ratio: 1.82 / 1; }
  .image-kind, .image-count { top: 10px; font-size: 7px; }
  .image-kind { left: 11px; }
  .image-count { right: 11px; }
  .image-open { width: 31px; height: 31px; right: 10px; bottom: 10px; }
  .work-card-info { min-height: 137px; align-items: center; gap: 12px; padding: 15px 15px 17px; }
  .work-card-info h3 { margin: 6px 0 5px; font-size: 25px; }
  .work-kicker { font-size: 7px; }
  .work-card-info p:not(.work-kicker) { font-size: 10px; }
  .work-card-arrow { width: 32px; height: 32px; font-size: 15px; }
  .gallery-footer { margin-top: 6px; font-size: 7px; }
  .gallery-progress { width: 82px; }
  .work-footnote { margin-top: 18px; }
  .study-source { margin-top: 18px; }
  .study-map { margin-top: 12px; }
  .study-stop { grid-template-columns: 62px 18px minmax(0, 1fr); gap: 8px; padding-bottom: 10px; }
  .study-path-track { left: 78px; }
  .study-date { padding-top: 15px; font-size: 7px; }
  .study-node { width: 11px; height: 11px; margin-top: 17px; }
  .study-entry { padding: 11px 12px 10px; }
  .study-type { font-size: 6px; }
  .study-entry h3 { font-size: 16px; }
  .study-entry p { font-size: 9px; }
  .study-tags { gap: 4px; margin-top: 7px; }
  .study-tags span { padding: 3px 6px; font-size: 6px; }
  .footer-rule { margin-top: 58px; }
  .footer-bottom { flex-wrap: wrap; font-size: 7px; }
  .cv-download { align-items:flex-start; flex-direction:column; gap:16px; margin-top:31px; }
  .cv-unavailable { margin:0; }
}
@media (max-width: 380px) {
  .navigation { gap: 12px; }
  .navigation .nav-contact { padding: 9px 10px; }
  .about-facts { grid-template-columns: 1fr; }
  .intro-actions { gap: 18px; }
}
@media (max-height: 820px) and (min-width: 701px) {
  .work.scroll-driven-gallery .work-footnote { display: none; }
  .work.scroll-driven-gallery .work-card-image { aspect-ratio: 2.3 / 1; }
  .work.scroll-driven-gallery .work-card-info { min-height: 116px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .reveal { opacity: 1; transform: none; }
  .custom-cursor-ring { transition:none; }
}
