/* Photographic sequences drawn from the VAP presentation. */
header .identity{white-space:nowrap;flex-shrink:0;padding-top:0}
header .identity span{margin-top:-8px}

/* Pointer-opened lightboxes keep focus without leaving a keyboard outline on the photo. */
.image-open.pointer-restored:focus{outline:none;box-shadow:none}

/* The photograph travels between its page position and a full-viewport viewer. */
html{scrollbar-gutter:stable}
dialog.photo-viewer{position:fixed;inset:0;display:none;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border:0;padding:64px clamp(16px,4vw,64px) 76px;background:transparent;overflow:hidden;animation:none}
dialog.photo-viewer[open]{display:flex;align-items:center;justify-content:center}
dialog.photo-viewer::backdrop{background:rgba(255,255,255,.96);opacity:0;transition:opacity 480ms ease}
dialog.photo-viewer.photo-ready::backdrop{opacity:1}
dialog.photo-viewer.photo-closing::backdrop{opacity:0;transition-duration:620ms}
dialog.photo-viewer img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 140px);object-fit:contain;flex:none;transform-origin:0 0;will-change:transform}
dialog.photo-viewer p{position:absolute;bottom:22px;left:6vw;right:6vw;margin:0;font-size:12px;line-height:1.5;text-align:center;opacity:0;transform:translateY(8px);transition:opacity 320ms ease,transform 420ms ease;transition-delay:260ms}
dialog.photo-viewer.photo-ready p{opacity:1;transform:none}
dialog.photo-viewer.photo-closing p{opacity:0;transform:translateY(8px);transition-delay:0ms}
dialog.photo-viewer .lightbox-close{position:fixed;top:18px;right:clamp(16px,4vw,64px);background:transparent;opacity:0;transition:opacity 180ms ease;transition-delay:140ms;z-index:2}
dialog.photo-viewer.photo-ready .lightbox-close{opacity:1}
dialog.photo-viewer.photo-closing .lightbox-close{opacity:0;transition-delay:0ms}
dialog.photo-viewer:not(.pointer-open)::backdrop,dialog.photo-viewer:not(.pointer-open) p,dialog.photo-viewer:not(.pointer-open) .lightbox-close{transition:none}
.lightbox-source{visibility:hidden}
.transition-chapter,.pixel-arrival{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6vw;opacity:0;color:#141414;z-index:1;text-align:center;pointer-events:none}
.transition-chapter p,.pixel-arrival p{margin:0 0 18px;font-size:12px;line-height:1.4}
.transition-chapter h2,.pixel-arrival h2{margin:0;font-size:clamp(36px,6vw,88px);font-weight:400;line-height:1.04;letter-spacing:-.055em}
.pixel-arrival{display:none;position:fixed;background:#fff;opacity:1;z-index:2147483647}
html.pt-loading .pixel-arrival{display:flex}
html.pt-loading::after{z-index:2147483645}
@media(max-width:650px){dialog.photo-viewer{padding-top:64px;padding-bottom:92px}dialog.photo-viewer img{max-height:calc(100dvh - 156px)}dialog.photo-viewer p{bottom:24px;font-size:11px}.transition-chapter h2,.pixel-arrival h2{font-size:clamp(34px,9vw,56px)}}
@media(prefers-reduced-motion:reduce){dialog.photo-viewer::backdrop,dialog.photo-viewer p,dialog.photo-viewer .lightbox-close{transition:none}.transition-chapter{display:none}}

/* A shared clipped surface makes the profile and press behave like the CV rows. */
.cv-stage,.press-stage{position:relative}
.cv-stage .cv-highlight,.press-stage .press-highlight{position:absolute;inset:0;background:#111;color:#fff;pointer-events:none;clip-path:polygon(0 0,100% 0,100% 0,0 0);transition:clip-path .6s cubic-bezier(.445,.05,.55,.95)}
.resume-profile:focus-visible{outline:2px solid #141414;outline-offset:-2px}
.press-content .press-link{padding-inline:clamp(16px,2.5vw,32px)}
.press-highlight .press-link,.press-highlight .press-link>span:first-child{color:#fff}

/* Space separates chapters; borders remain only where they explain a control. */
.story-section,.research-preview,.atelier-project,.availability,.system-method,.thesis-bridge,.desire-grid article,.press-section,.press-link,.rebiaa-links,.chapter-next,footer,.footer-bottom,.compact-footer .footer-bottom{border-top:0;border-bottom:0}
.cv-section{border-top:0}
.atelier-gifts{background:#fff;padding:0;margin:80px 0 96px}
.atelier-gifts .gift-triptych{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,34px)}
.atelier-gifts .triptych-photo:nth-child(n){padding-top:0}
.atelier-gifts .image-open{height:clamp(220px,28vw,430px);aspect-ratio:auto}
.atelier-gifts .image-open img{height:100%;object-fit:contain;object-position:center}
.atelier-gifts figcaption{color:#656565}
.system-node[data-node=purpose],.system-example{border-bottom:0}
.system-example{border-top:0}
.chapter-map a:not([aria-current]){border-top-color:transparent}

/* Complete images share a frame height, including rows mixing portrait and landscape. */
.editorial-row{--row-photo-height:clamp(220px,28vw,430px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;column-gap:clamp(16px,2.4vw,34px);row-gap:12px;margin:44px 0 0}
.editorial-row.row-2{--row-photo-height:clamp(260px,33vw,520px);grid-template-columns:repeat(2,minmax(0,1fr))}
.editorial-row.row-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.editorial-row.row-4{--row-photo-height:clamp(180px,22vw,340px);grid-template-columns:repeat(4,minmax(0,1fr))}
.editorial-row .row-photo{margin:0;min-width:0;padding:0}
.editorial-row .image-open{width:100%;height:var(--row-photo-height);aspect-ratio:auto;background:transparent;overflow:hidden}
.editorial-row .row-photo img{display:block;width:100%;height:var(--row-photo-height);object-fit:contain;object-position:center;transform:none}
.editorial-row .image-open img{height:100%;transform:none}
.editorial-row .image-open:hover img{transform:none}
.editorial-row figcaption{font-size:12px;line-height:1.5;color:#656565;margin-top:12px;overflow-wrap:break-word}
.editorial-row .row-caption{grid-column:1/-1;font-size:12px;line-height:1.5;color:#656565;margin:0;max-width:760px}
.story-section>.editorial-row,.story-section>.inspiration-gallery{grid-column:1/-1;margin-top:0}
.story-section:has(>.editorial-row),.story-section:has(>.inspiration-gallery){row-gap:42px}
.atelier-craft .story-heading{display:flex;gap:30px}
.atelier-craft .prose{padding-top:0}
.craft-images{--row-photo-height:clamp(240px,32vw,470px)}
.estate-images{--row-photo-height:clamp(210px,26vw,420px)}
.career-images{--row-photo-height:clamp(260px,34vw,500px)}
.editorial-row.row-4.career-images{--row-photo-height:clamp(220px,30vw,470px)}
.usage-images{--row-photo-height:clamp(240px,32vw,460px)}
.story-section>.mill-sequence{grid-column:1/-1;width:100%;margin-top:8px}
.atelier-rebiaa .story-section>.mill-sequence{max-width:none;gap:clamp(16px,2.4vw,34px);padding:0}
.atelier-rebiaa .story-section>.mill-sequence figure:nth-child(n){padding-top:0}
.story-section>.photo-source{grid-column:1/-1;margin:0;font-size:12px}

/* The result replaces the repeated heading, within its original story. */
.story-stat{align-items:start}
.story-stat .story-heading{display:grid;grid-template-columns:22px minmax(0,1fr);gap:24px}
.story-stat .index{padding-top:10px}
.story-stat .big-stat{display:block;padding:0}
.story-stat .big-stat>span{display:block;font-size:clamp(100px,11.5vw,170px);line-height:.95;letter-spacing:-.08em;margin:0 0 20px}
.story-stat .big-stat h2{font-size:clamp(25px,2.6vw,40px);font-weight:400;line-height:1.13;letter-spacing:-.04em;max-width:360px;margin:0}

/* Institutional marks stay beside the relevant education, without becoming badges. */
.academic-marks{display:flex;align-items:start;flex-wrap:wrap;gap:24px;margin-top:30px}
.story-heading:has(>.academic-marks){display:grid;grid-template-columns:22px minmax(0,1fr);gap:26px 24px;align-content:start}
.story-heading:has(>.academic-marks)>h2,.story-heading:has(>.academic-marks)>.academic-marks{grid-column:2}
.story-heading:has(>.academic-marks)>.academic-marks{margin-top:0}
.academic-marks figure{max-width:190px;min-width:0}
.academic-marks img{width:auto;max-width:160px;height:70px;object-fit:contain;object-position:left center}
.academic-marks figcaption{font-size:11px;line-height:1.4;color:#656565;margin-top:12px;max-width:190px}
.home-admission{display:flex;align-items:center;gap:18px;margin:0 0 10px}
.home-admission img{display:block;width:74px;height:auto;max-height:64px;object-fit:contain;flex-shrink:0}
.atelier-intro .home-admission p{font-size:13px;line-height:1.5;margin:0;max-width:300px}

/* A single, manually browsed rail for the two sources of family inspiration. */
.inspiration-gallery{min-width:0;margin:32px 0 0}
.inspiration-gallery .gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}
.inspiration-gallery h3{font-size:clamp(22px,2vw,30px);font-weight:400;line-height:1.2;letter-spacing:-.03em;margin:0}
.inspiration-gallery .gallery-controls{display:flex;align-items:center;gap:12px;flex:none}
.inspiration-gallery .gallery-controls button{display:grid;place-items:center;min-width:44px;min-height:44px;padding:8px;border:0;background:transparent;cursor:pointer}
.inspiration-gallery .gallery-controls button:disabled{color:#767676;opacity:.4;cursor:default}
.inspiration-gallery .gallery-controls .gallery-label,.inspiration-gallery .gallery-controls>span{font-size:12px;line-height:1.3;color:#656565}
.inspiration-track{--gallery-gap:26px;--gallery-photo-height:clamp(250px,32vw,440px);display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2*var(--gallery-gap))/3);gap:var(--gallery-gap);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:0;overscroll-behavior-x:contain;padding:8px 0 16px;scrollbar-width:thin;scrollbar-color:#141414 transparent}
.inspiration-track:focus-visible{outline:2px solid #141414;outline-offset:5px}
.inspiration-track .row-photo{margin:0;min-width:0;scroll-snap-align:start}
.inspiration-track .image-open{height:var(--gallery-photo-height);aspect-ratio:auto;background:transparent}
.inspiration-track .row-photo img{width:100%;height:var(--gallery-photo-height);object-fit:contain;object-position:center;transform:none}
.inspiration-track .image-open img,.inspiration-track .image-open:hover img{height:100%;transform:none}
.inspiration-track figcaption{font-size:12px;line-height:1.5;color:#656565;margin-top:12px;overflow-wrap:break-word}
.inspiration-track figcaption .eyebrow{display:block;font-size:11px;line-height:1.4;color:#141414;margin:0 0 4px;max-width:none}

/* SVG arrows use the same drawn shapes across platforms and viewport sizes. */
.icon-arrow{display:inline-block;width:1.35em;height:1.35em;flex-shrink:0;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.icon-arrow path,.icon-arrow line,.icon-arrow polyline{vector-effect:non-scaling-stroke}
.text-link .icon-arrow{width:24px;height:24px}
.reading-bar .icon-arrow,.footer-bottom .icon-arrow,.photo-source .icon-arrow{width:17px;height:17px}
.next-arrow .icon-arrow,.icon-arrow.next-arrow{display:block;width:clamp(42px,6vw,90px);height:clamp(42px,6vw,90px);stroke-width:2}
.system-next .icon-arrow{width:34px;height:34px}
.system-example-link .icon-arrow{width:20px;height:20px}
.research-preview h2 .icon-arrow{width:.72em;height:.72em}
.contact-mail .icon-arrow{width:1em;height:1em}
.cv-section summary .icon-arrow{width:20px;height:20px}
.cv-section details[open] summary span{transform:rotate(180deg)}
.gallery-controls .icon-arrow{width:24px;height:24px}

@media(min-width:768px) and (max-width:900px){
 header{gap:16px}
 header .identity{font-size:17px;letter-spacing:-.6px}
 header nav{gap:12px}
}
@media(max-width:900px){
 .inspiration-track{--gallery-gap:20px;grid-auto-columns:calc((100% - var(--gallery-gap))/2.3)}
 .story-stat .story-heading{gap:20px}
 .academic-marks{gap:20px}
 .academic-marks img{height:65px;max-width:135px}
}
@media(max-width:650px){
 .atelier-gifts .gift-triptych{gap:12px}
 .atelier-gifts .image-open{height:clamp(125px,36vw,230px)}
 .atelier-gifts figcaption{font-size:11px;margin-top:12px;overflow-wrap:break-word}
 header .identity{font-size:17px;letter-spacing:-.7px}
 .atelier-gifts{padding:0;margin:56px 0}
 .editorial-row{--row-photo-height:clamp(125px,36vw,230px);column-gap:12px;row-gap:10px;margin-top:28px}
 .editorial-row.row-2{--row-photo-height:clamp(180px,55vw,320px)}
 .editorial-row.row-4{--row-photo-height:clamp(104px,30vw,190px);column-gap:10px}
 .editorial-row.row-4.career-images{--row-photo-height:clamp(104px,30vw,190px)}
 .editorial-row figcaption{font-size:10px;margin-top:8px;line-height:1.45}
 .editorial-row .row-caption{font-size:11px;line-height:1.45}
 .story-section:has(>.editorial-row),.story-section:has(>.inspiration-gallery){row-gap:28px}
 .atelier-craft .story-heading{gap:20px}
 .story-stat .story-heading{grid-template-columns:18px minmax(0,1fr);gap:20px}
 .story-stat .big-stat>span{font-size:108px;margin-bottom:14px}
 .story-stat .big-stat h2{font-size:29px;max-width:330px}
 .story-stat .index{padding-top:8px}
 .academic-marks{margin-top:24px;gap:20px}
 .story-heading:has(>.academic-marks){grid-template-columns:18px minmax(0,1fr);gap:22px 20px}
 .academic-marks img{height:60px;max-width:130px}
 .academic-marks figcaption{font-size:10px;max-width:135px}
 .home-admission{gap:14px;margin-bottom:10px}
 .home-admission img{width:64px;max-height:58px}
 .atelier-intro .home-admission p{font-size:12px}
 .inspiration-gallery .gallery-heading{gap:16px;align-items:flex-end;flex-wrap:wrap}
 .inspiration-gallery h3{font-size:24px;max-width:330px}
 .inspiration-gallery .gallery-controls{gap:8px;margin-left:auto}
 .inspiration-track{--gallery-gap:18px;--gallery-photo-height:clamp(270px,81vw,420px);grid-auto-columns:77%;padding-bottom:12px}
 .inspiration-track figcaption{font-size:11px;margin-top:10px}
 .next-arrow .icon-arrow,.icon-arrow.next-arrow{width:44px;height:44px}
 .system-next .icon-arrow{width:28px;height:28px}
}
@media(max-width:360px){
 header{gap:6px}
 header .identity{font-size:14px;letter-spacing:-.45px}
 header .identity span{font-size:9px;margin-top:-8px}
 header .menu{min-width:56px;padding:0;gap:5px;font-size:11px}
 header .languages{font-size:10px}
}
@media(prefers-reduced-motion:reduce){.inspiration-track{scroll-behavior:auto;scroll-snap-type:none}.cv-stage .cv-highlight,.press-stage .press-highlight{transition:none!important}}

/* One bitmap paints the cross-document wave without hundreds of opacity layers. */
.pixel-surface{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}

/* The original text and its inverse keep identical widths; the dark band bleeds out. */
.cv-panel{overflow:visible}
.cv-stage .cv-highlight,.press-stage .press-highlight{background:transparent;z-index:2;transition:clip-path 280ms cubic-bezier(.22,1,.36,1)}
.row-highlight-band{position:absolute;top:0;bottom:0;background:#111;z-index:1;pointer-events:none;clip-path:polygon(0 0,100% 0,100% 0,0 0);transition:clip-path 280ms cubic-bezier(.22,1,.36,1)}
.image-open{position:relative}
/* Leeroy motion and thin bands; equal text spacing per the annotated review. */
@media(min-width:768px){
 header nav{position:relative;gap:0;padding-top:0;align-items:stretch;margin-top:max(0px,calc((44px - max(13px,1300vw / 1440) - 900vw / 1440) / 2))}
 header nav a{display:block;position:relative;z-index:1;min-height:0;min-width:0;padding:calc(500vw / 1440) clamp(7px,calc(2.1vw - 9px),24px) calc(400vw / 1440);font-size:max(12px,1200vw / 1440);line-height:max(13px,1300vw / 1440);text-align:center;white-space:nowrap;border:0;transition:color .8s cubic-bezier(.333333,.666667,.666667,1)}
 header nav a.nav-highlighted{color:#fff}
 header .languages{padding-top:0;margin-left:clamp(8px,1.2vw,20px);line-height:calc(max(13px,1300vw / 1440) + 900vw / 1440)}
 .navigation-hover{position:absolute;display:block;top:0;left:0;width:0;height:100%;background:#141414;pointer-events:none;transition:left .5s cubic-bezier(.333333,.666667,.666667,1),width .5s cubic-bezier(.333333,.666667,.666667,1);will-change:left,width}
 .navigation-hover.instant,header nav.nav-instant a{transition:none}
}
@media(max-width:767px){.navigation-hover{display:none}}
@media(prefers-reduced-motion:reduce){.row-highlight-band,header nav a,.navigation-hover{transition:none!important}}

@media(max-width:650px){html.pt-loading .pixel-arrival h2{font-size:clamp(34px,9vw,56px)}}
/* Photo controls should not turn into native image/text selections during a gesture. */
.image-open{user-select:none;-webkit-user-select:none}
.image-open img{-webkit-user-drag:none}

/* Primary header lines share one 44px row; the subtitle sits just beneath the name. */
header .identity-name{display:flex;align-items:center;min-height:44px;font:inherit}
/* Captions stay in document flow, with a distinct title and secondary information. */
.home-atlas figcaption{font-size:13px;line-height:1.45;color:#141414;margin-top:12px}
.home-atlas figcaption span{display:block;font-size:11px;line-height:1.5;color:#656565;margin-top:4px}
.inspiration-track figcaption .eyebrow{font-size:13px;line-height:1.45;margin-bottom:5px}
/* Visual Business: a continuous, closely spaced rail with a partial next card. */
.inspiration-track{--gallery-gap:12px;grid-auto-columns:calc((100% - 2*var(--gallery-gap))/3.15);scrollbar-width:none}
.inspiration-track::-webkit-scrollbar{display:none}
.inspiration-track.gallery-driven{overflow-x:hidden;scroll-snap-type:none;cursor:grab;touch-action:pan-y pinch-zoom}
.inspiration-track.is-dragging,.inspiration-track.is-dragging .image-open{cursor:grabbing}
.inspiration-track .image-open{height:auto;aspect-ratio:2/3}
.inspiration-track .row-photo img,.inspiration-track .image-open img{height:100%;object-fit:contain}
@media(max-width:900px){.inspiration-track{grid-auto-columns:44%}}
@media(max-width:650px){.inspiration-track{--gallery-gap:12px;grid-auto-columns:77%}.inspiration-track figcaption .eyebrow{font-size:12px}}
/* Kononenko's compact columns: full-width images, their natural proportions, 20px gutters. */
.editorial-row:is(.gift-collection-intro,.career-images,.craft-images,.mill-images,.usage-images,.hospitality-images,.prototype-images,.gift-detail-images,.product-details,.estate-images,.estate-harvest-image,.farida-images,.chalk-images){column-gap:20px;row-gap:12px;scroll-margin-top:70px}
.editorial-row:is(.gift-collection-intro,.career-images,.craft-images,.mill-images,.usage-images,.hospitality-images,.prototype-images,.gift-detail-images,.product-details,.estate-images,.estate-harvest-image,.farida-images,.chalk-images) .image-open{height:auto;aspect-ratio:auto}
.editorial-row:is(.gift-collection-intro,.career-images,.craft-images,.mill-images,.usage-images,.hospitality-images,.prototype-images,.gift-detail-images,.product-details,.estate-images,.estate-harvest-image,.farida-images,.chalk-images) .image-open img{width:100%;height:auto;aspect-ratio:var(--photo-ratio,auto);object-fit:contain}
.editorial-row.row-1.estate-harvest-image{grid-template-columns:minmax(0,1fr);margin-top:20px}
.story-section:has(>.editorial-row),.story-section:has(>.inspiration-gallery){row-gap:32px}
/* Separate prose from its first gallery, while keeping successive image rows compact. */
.story-section>.prose+:is(.editorial-row,.inspiration-gallery){margin-top:32px}
@media(max-width:650px){.editorial-row:is(.gift-collection-intro,.career-images,.craft-images,.mill-images,.usage-images,.hospitality-images,.prototype-images,.gift-detail-images,.product-details,.estate-images,.estate-harvest-image,.farida-images,.chalk-images){column-gap:12px}.editorial-row.row-1.estate-harvest-image{margin-top:12px}.story-section:has(>.editorial-row),.story-section:has(>.inspiration-gallery){row-gap:24px}.story-section>.prose+:is(.editorial-row,.inspiration-gallery){margin-top:20px}}

/* Natural 3:2 + 2:3 images share one height without cropping. */
.editorial-row.chalk-images{grid-template-columns:2.25fr 1fr}

/* The four gift boxes introduce their story across the full editorial width. */
.editorial-row.row-1.gift-collection-intro{grid-template-columns:minmax(0,1fr);margin:0}
