/* Shared typography: menu sans for reading, Jacquard for editorial titles. */
:root { --body-font: Arial, Helvetica, sans-serif; --title-font: Jacquard, serif; --copy-leading: 1.6; }
body, button, input, select, textarea { font-family: var(--body-font); }
body :is(p,figcaption,.eyebrow,.chapter-num,.card-meta,.gallery-heading,.detail-topline,.detail-top,.text-link,.site-header nav,.hero-top,.hero-bottom) { font-family:var(--body-font); font-weight:400; font-style:normal; }
body :is(.journey-stories p,.detail-story p,.process-grid p,.about-copy>p) { font-size:clamp(16px,1.25vw,19px); line-height:var(--copy-leading); letter-spacing:0; }
body :is(.eyebrow,.chapter-num,.card-meta,.gallery-heading) { font-size:12px; line-height:1.4; letter-spacing:.04em; }
body :is(.journey,.about,.work-by) :is(h1,h2,h3,h4,h5,h6) { font-family:var(--title-font)!important; font-weight:400!important; font-style:normal; letter-spacing:0!important; line-height:1.08; text-transform:none; text-wrap:balance; overflow-wrap:break-word; }
body :is(h1,h2,h3,h4,h5,h6) em { font:inherit; }
body .journey-stories h3 { font-size:clamp(36px,3.4vw,54px); margin:24px 0; }
body .journey-stories p { margin:0 0 24px; }
body .journey-stories .text-link { font-size:16px; line-height:1.4; font-weight:400; letter-spacing:0; }
body .project-card h3,body .process-grid h3 { font-size:clamp(30px,2.7vw,42px); }
/* Preserve model shading while making the clickable state unambiguous. */
.hero-exhibit .exhibit-item .hero-model { filter:brightness(.075); transition:filter 180ms ease-out; }
.hero-exhibit .exhibit-item:focus-visible .hero-model { filter:brightness(1); }
@media(hover:hover) { .hero-exhibit .exhibit-item:hover .hero-model { filter:brightness(1); } }
@media(prefers-reduced-motion:reduce) { .hero-exhibit .exhibit-item .hero-model { transition:none; } }

/* Detail and category pages use the menu family exclusively. */
body :is(.project-detail,.category-projects) :is(h1,h2,h3,h4,h5,h6,p,a,span,button,label,figcaption,strong,em,dt,dd) { font-family:var(--body-font)!important; font-style:normal; }
body :is(.project-detail,.category-projects) :is(h1,h2,h3,h4,h5,h6) { font-weight:400!important; }
body :is(.project-detail,.category-projects) strong { font-weight:700; }
.hero-exhibit .exhibit-item .hero-model { filter:brightness(.075)!important; }
.hero-exhibit .exhibit-item:focus-visible .hero-model { filter:brightness(1)!important; }
@media(hover:hover) { .hero-exhibit .exhibit-item:hover .hero-model { filter:brightness(1)!important; } }

/* Oversized signature fills the photo panel on desktop and mobile. */
body .work-by h2 { font-size:clamp(52px,12vw,230px); line-height:1.04; padding:0 2vw; }
body img { -webkit-user-drag:none; -webkit-touch-callout:none; user-select:none; }
.gallery-photo { width:100%; }
/* Journey section header: matching labels on opposing edges. */
body .journey-heading { display:flex; justify-content:space-between; align-items:baseline; gap:24px; margin-bottom:48px; }
body .journey-heading > .eyebrow,
body .journey-heading > h2 { font-family:var(--body-font)!important; font-size:12px!important; font-weight:400!important; line-height:1.4!important; letter-spacing:.04em!important; text-transform:uppercase; margin:0; }
body .journey-heading > .eyebrow { flex-shrink:0; }
body .journey-heading > h2 { text-align:right; max-width:none; min-width:0; text-wrap:wrap; }
body .journey-heading > h2 br { display:none; }
body .journey-heading > h2 em { font:inherit; }
@media(max-width:600px) { body .journey-heading { gap:20px; margin-bottom:32px; } }
/* Static labels use text ink; only actionable journey links use blue. */
body #percorso .journey-stories article > .chapter-num { color:var(--text)!important; }
body #percorso .journey-stories article a,
body #percorso .journey-stories article a span { color:var(--link)!important; }

/* Pixel entry cue: no metallic tile, visible on hover and keyboard focus. */
body .project-card .card-open { display:block; width:48px; height:48px; padding:0; right:18px; bottom:18px; background:none!important; border:0; box-shadow:none; color:var(--link)!important; opacity:0; transform:translate(-10px,10px); transition:opacity 160ms ease-out,transform 220ms cubic-bezier(.2,.8,.2,1); pointer-events:none; }
body .project-card .card-open svg { display:block; width:100%; height:100%; }
body .project-card:is(:hover,:focus-visible) .card-open { opacity:1; transform:translate(0,0); }
@media(hover:none) { body .project-card .card-open { opacity:1; transform:none; width:32px; height:32px; } }
@media(prefers-reduced-motion:reduce) { body .project-card .card-open { transition:none; transform:none; } }
/* About title uses the plain sans lettering requested for this heading. */
body #info .about-title h2,
body #info .about-title h2 em { font-family:var(--body-font)!important; font-weight:700!important; font-style:normal; letter-spacing:-.025em!important; line-height:1.08; }

/* Long scroll sequence: native scrolling passes through the model. */
body .product-lab.back-scroll { display:block; position:relative; height:320svh; padding:0; overflow:visible; }
.back-scroll .back-sticky { position:sticky; top:90px; height:calc(100svh - 90px); min-height:360px; overflow:hidden; }
body .back-scroll .product-lab-head { position:absolute; z-index:2; top:24px; left:24px; width:min(32%,360px); pointer-events:none; }
body .back-scroll .product-lab-head h2 { font-size:clamp(28px,3.5vw,54px); margin:0 0 16px; }
body .back-scroll .product-lab-head p { font-size:14px; line-height:1.5; }
body .back-scroll .product-viewport { position:absolute; inset:0 0 0 30%; width:70%; height:100%; min-height:0; touch-action:pan-y; }
body .back-scroll canvas { pointer-events:none; touch-action:pan-y; }
.back-scroll-hint { position:absolute; bottom:20px; left:24px; font:12px Arial,sans-serif; }
@media(max-width:700px){
 .back-scroll .back-sticky { top:110px; height:calc(100svh - 110px); }
 body .back-scroll .product-lab-head { top:18px; left:18px; width:calc(100% - 36px); }
 body .back-scroll .product-lab-head h2 { font-size:28px; }
 body .back-scroll .product-lab-head h2 br { display:none; }
 body .back-scroll .product-viewport { inset:115px 0 35px; width:100%; height:calc(100% - 150px); }
}
@media(prefers-reduced-motion:reduce){ body .product-lab.back-scroll{height:100svh;} }

body .product-lab.chair-scroll {height:480svh;}
@media(prefers-reduced-motion:reduce){body .product-lab.chair-scroll{height:100svh;}}

body .book-stage.book-scroll{height:340svh;min-height:0;position:relative;overflow:visible;}
.book-sticky{position:sticky;top:90px;height:calc(100svh - 90px);overflow:hidden;}
.book-scroll .hero-model{width:100%;height:100%;}
body .book-scroll canvas{pointer-events:none;touch-action:pan-y;}
@media(max-width:700px){.book-sticky{top:110px;height:calc(100svh - 110px);}}
@media(prefers-reduced-motion:reduce){body .book-stage.book-scroll{height:100svh;}}

.kaytranada-showcase{position:relative;width:100vw;margin-left:calc(50% - 50vw);margin-top:48px;margin-bottom:64px;}
body .kaytranada-showcase .kaytranada-process-video{display:block;width:100%;height:auto;max-height:none;margin:0;border-radius:0;object-fit:contain;background:#000;}
body .kaytranada-full-mockup{margin:0;background:#e9e9e7;padding:clamp(24px,5vw,90px);}
body .kaytranada-full-mockup img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;filter:none;mix-blend-mode:normal;}

.archive-video-panel{position:relative;width:100vw;margin:40px 0 64px calc(50% - 50vw);height:100svh;overflow:hidden;background:#080808;}
.archive-video-panel video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;}
body .project-detail .archive-video-panel h2{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;margin:0;padding:24px;font-family:Arial,Helvetica,sans-serif!important;font-size:clamp(48px,9vw,160px);font-weight:700;line-height:.98;letter-spacing:-.04em;text-transform:uppercase;color:rgba(255,255,255,.55);pointer-events:none;}
.archive-video-toggle{position:absolute;bottom:24px;right:24px;padding:10px 18px;border:1px solid #ffffff88;background:#0008;color:#fff;border-radius:0;font:12px Arial,sans-serif;cursor:pointer;}
@media(max-width:600px){body .project-detail .archive-video-panel h2{font-size:clamp(42px,12vw,72px);padding:16px;}}

.project-detail .bike-experience{display:block;overflow:visible;}
.project-detail .bike-experience .bike-intro{padding:32px 0;max-width:720px;}
.project-detail .bike-experience .photo-table{width:100vw;margin-left:calc(50% - 50vw);height:100svh;min-height:0;}
.project-detail .bike-experience .thrown-photo{width:100%;height:100%;}
.project-detail .bike-experience .thrown-photo img{width:100%;height:100%;max-height:none;object-fit:contain;}
@media(max-width:600px){
 body .hero-visual{height:1050px;height:max(900px,120svh);max-height:none;min-height:0;}
 body .hero-exhibit .exhibit-item{width:46%!important;height:30%!important;}
 body .hero-exhibit .exhibit-kaytranada{left:2%!important;top:2%!important;}
 body .hero-exhibit .exhibit-moka{left:52%!important;top:2%!important;}
 body .hero-exhibit .exhibit-hanger{left:2%!important;top:35%!important;}
 body .hero-exhibit .exhibit-chair{left:52%!important;top:35%!important;}
 body .hero-exhibit .exhibit-book{left:2%!important;top:68%!important;}
 body .hero-exhibit .exhibit-back{left:52%!important;top:68%!important;}
}
body .project-detail .archive-video-panel h2{font-size:clamp(48px,9vw,160px)!important;font-weight:700!important;text-transform:uppercase!important;line-height:.98!important;letter-spacing:-.04em!important;display:grid;align-content:center;}
@media(max-width:600px){body .project-detail .archive-video-panel h2{font-size:clamp(42px,12vw,72px)!important;}}

/* Keep the requested editorial motion active on touch devices. */
body .moving-index-track{animation:menu-travel 28s linear infinite!important;will-change:transform;}
@media(hover:none){body .moving-index:hover .moving-index-track,body .moving-index:focus-within .moving-index-track{animation-play-state:running!important;}}
@media(max-width:700px){body .work-by-images{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr;}body .work-by-images img{min-width:0;min-height:0;height:100%;}}
