/* Editorial Orbit v3: kinetic type and one transformable collection. */
:root{--pink:#dfe4e7;--wine:#282d34;--violet:#b93720;--paper:#f4f6f7;--line:#a0adb6}
body{overflow-x:clip}
.intro{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:0;min-height:0;padding:52px 0 0}
.intro-eyebrow{grid-column:1/-1;margin:0 0 32px}
.intro-copy{grid-column:1/-1;grid-row:1;align-self:start;min-width:0;pointer-events:none;z-index:3}
.hero-line{display:inline-block}
.hero-line>[data-type]{display:block}
.hero-work-layer{display:inline-flex;flex:none;pointer-events:auto}
.intro .editorial{font-size:calc(clamp(84px,11.6vw,180px)*var(--hero-scale));line-height:.88;letter-spacing:var(--display-tracking);padding-bottom:14px;white-space:nowrap}
.intro .editorial em{display:inline-block;width:100%;text-align:right;pointer-events:none;transition:none}
.hero-caption{display:flex;align-items:end;justify-content:space-between;max-width:540px;margin:36px 0 0 auto;gap:24px}
.intro-description{margin:0;font-size:15px;line-height:1.55}
.hero-caption .arrow-link{margin:0 0 4px;pointer-events:auto;white-space:nowrap}
.intro-foot{grid-column:1/-1;grid-row:2;margin:44px 0 0;padding:24px 0 20px;font-size:9px;align-items:center;flex-wrap:wrap}
.tools-button{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;min-height:44px;max-width:100%;padding:11px 18px;border:1px solid var(--wine);border-radius:999px;background:var(--paper);color:var(--wine);font:600 12px/1.5 var(--font-body);letter-spacing:0;text-transform:none;transition:background-color 180ms,color 180ms}
.tools-button>[aria-hidden]{font-size:18px;line-height:1;flex-shrink:0}
.tools-button:hover,.tools-button:focus-visible{background:var(--wine);color:var(--paper)}
.tools-button .roll-label{color:inherit}
.intro-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-left:auto}
.intro-actions .accent-button{background:var(--violet);border-color:var(--violet);color:var(--on-accent)}
.intro-actions .accent-button:hover,.intro-actions .accent-button:focus-visible{background:var(--wine);border-color:var(--wine);color:var(--paper)}
.work-heading{padding-top:48px;padding-bottom:27px;align-items:end}
.work-heading h2{font-size:calc(clamp(48px,6.8vw,104px)*var(--heading-scale))}
.work-kicker{font-size:9px;margin:0 0 17px!important}
.work-switch{position:relative;border:1px solid var(--line);padding:5px;gap:0}
.work-switch button{position:relative;z-index:1;min-width:88px;background:transparent!important;color:var(--wine);transition:color 320ms cubic-bezier(.4,0,.2,1)}
.work-switch button[aria-selected=true]{color:var(--pink)}
.work-switch-surface{position:absolute;left:5px;top:5px;height:44px;width:88px;border-radius:30px;background:var(--wine);pointer-events:none}
.work-layout{display:flow-root;position:relative}
#work[data-layout-transition="true"] .work-layout{overflow-anchor:none}
#work[data-layout-transition="true"] .work-layout .project-card{pointer-events:none!important}
@media(prefers-reduced-motion:reduce){.work-switch button{transition:none}}
#orbit-panel{padding-top:10px}
.gallery-track{height:auto}
/* Copy determines its own height. The stage reserves room for the cards rather
   than a missing counter; longer titles cannot collide with the controls. */
.gallery-sticky{position:relative;top:auto;display:grid;grid-template-columns:minmax(0,25fr) minmax(0,69fr);grid-template-rows:minmax(clamp(300px,23vw,340px),auto) auto;gap:24px 6%;height:auto;min-height:0;max-height:none;padding:18px 0 22px;margin-top:0;overflow:visible;isolation:isolate}
.gallery-scene{position:relative;inset:auto;grid-column:2;grid-row:1/3;height:auto;min-height:0;margin:0;perspective:none;overflow:visible;touch-action:pan-y;cursor:grab}
.gallery-scene:focus-visible{outline-offset:-4px}
.gallery-planes{position:absolute;inset:0;transform:none;pointer-events:none}
/* The projected globe fits the open stage; each card turns edge-on at its rear arc. */
.gallery-plane{position:absolute;left:50%;top:46%;width:min(30%,260px);height:auto;aspect-ratio:4/5;padding:0;border:0;border-radius:10px;background:none;box-shadow:none;transition:none;transform-origin:50% 50%;pointer-events:auto;overflow:visible;cursor:pointer;user-select:none}
.gallery-plane .project-visual{aspect-ratio:auto;background:var(--cover-color)}
.gallery-plane img{aspect-ratio:auto;object-fit:contain;width:100%;height:100%;scale:var(--cover-scale,1.3);transition:none}
.gallery-plane>.mono{display:none}
.gallery-plane .project-caption{position:absolute;display:flex;left:20px;right:20px;bottom:20px;padding:0;border:0;color:var(--cover-ink);pointer-events:none}
.gallery-plane .project-caption h3{font-size:clamp(16px,1.7vw,22px);line-height:1.1;letter-spacing:-.025em;text-transform:none}
.gallery-plane .project-caption span{font-size:18px}
.gallery-plane .fan-number{display:block;position:absolute;top:18px;left:20px;font-size:12px;color:var(--cover-ink);pointer-events:none}
.index-collection .fan-number{display:none}
.gallery-coordinate{position:absolute;right:0;bottom:0;padding:6px 8px;border-radius:3px;background:var(--pink);color:var(--wine);font-size:9px;z-index:20;pointer-events:none}
.gallery-info{position:relative;inset:auto;grid-column:1;grid-row:1;width:auto;min-width:0;align-self:start;z-index:15;pointer-events:none;display:block;padding:0}
.gallery-info button{pointer-events:auto}
.gallery-counter{margin:0 0 28px;gap:9px}
.gallery-counter span:first-child{font-size:66px}
.gallery-category{max-width:200px;min-height:0;font-size:9px}
.gallery-info h3{font-size:calc(clamp(32px,3.2vw,54px)*var(--heading-scale));line-height:1;max-width:100%}
.gallery-summary{max-width:230px;min-height:0;font-size:11px;line-height:1.65;margin:18px 0 22px}
.gallery-controls{position:relative;inset:auto;grid-column:1;grid-row:2;align-self:end;width:100%;max-width:268px;gap:12px}
.gallery-controls button{border-radius:50%;background:transparent;font-size:20px;min-height:44px;flex-shrink:0}
.gallery-controls button:disabled{opacity:.3;cursor:default}
.gallery-controls .mono{max-width:180px;min-width:0;font-size:9px;text-align:center}
.gallery-side{display:grid!important;grid-template-columns:135px 1fr;margin:0 70px 0 48px;padding:18px 0 20px;border-top:1px solid var(--line);align-items:start;gap:25px}
.gallery-side>.mono{font-size:9px;margin:11px 0 0}
#gallery-jumps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0 20px}
.gallery-side button{position:relative;border:0;padding:10px 0;font-size:10px;min-height:36px;transition:color 180ms}
.gallery-side button[aria-current=true],.gallery-side button:hover{padding-left:0;color:var(--violet)}
.gallery-side button::after{content:'';position:absolute;bottom:5px;left:0;width:0;height:1px;background:currentColor;transition:width 220ms}
.gallery-side button[aria-current=true]::after{width:22px}
#work{padding-bottom:32px}
#index-panel{padding-bottom:5px}
.index-collection{margin:28px 70px 0 48px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(32px,4vw,56px) 32px;position:relative;transform:none!important}
.index-collection .project-card{position:relative;grid-column:span 7;min-width:0;width:100%;padding:0;background:none;border:0;aspect-ratio:auto;text-align:left;transform:none;visibility:visible;opacity:1;filter:none;box-shadow:none;overflow:visible;pointer-events:auto}
.index-collection .project-card:nth-child(4n+2),.index-collection .project-card:nth-child(4n+3){grid-column:span 5;padding:0 25px;margin:clamp(36px,5vw,72px) 0 0}
.index-collection .project-card:nth-child(4n+3){margin:0;padding:0 25px}
.index-collection .project-card:nth-child(4n+4){padding-top:25px}
.project-visual{position:relative;overflow:hidden;aspect-ratio:1.55;background:var(--paper);width:100%;height:100%}
.index-collection .project-visual{height:auto}
.index-collection .project-card:nth-child(4n+2) .project-visual,.index-collection .project-card:nth-child(4n+3) .project-visual{aspect-ratio:1.04}
.index-collection img{display:block;width:100%;height:100%;object-fit:cover}
.project-caption{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:1px solid var(--line);padding:17px 0 15px}
.project-caption h3{font:var(--display-weight) clamp(26px,2.9vw,44px)/1.1 var(--font-display);letter-spacing:var(--display-tracking);text-transform:var(--display-case)}
.project-caption span{font-size:22px}.project-card>.mono{font-size:9px;margin-top:10px}
.project-hover{position:absolute;right:18px;bottom:18px;padding:11px 16px;border-radius:30px;font:500 10px var(--font-body);background:var(--yellow);color:var(--highlight-ink);opacity:0;transform:translateY(10px);pointer-events:none}
.gallery-plane .project-hover{display:none}
.bio-section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px clamp(32px,5vw,72px);padding:48px 70px 56px 48px;border-top:1px solid var(--line);background:var(--paper)}
.bio-lead{grid-column:1/-1;min-width:0;text-align:left;overflow-wrap:break-word}
.bio-lead em{font-style:var(--display-em,italic);font-weight:inherit}
.bio-copy,.bio-manifesto{font-weight:400;font-size:1rem;line-height:1.75;min-width:0;align-self:start;border-top:1px solid var(--line);padding-top:20px;text-wrap:pretty}
.bio-copy{grid-column:1;max-width:64ch}
.bio-manifesto{grid-column:2;max-width:64ch}
.contact-section{padding-top:72px;padding-bottom:135px}
.contact-foot{margin-top:60px}
.bio-lead,.contact-section h2{font-family:var(--font-display);font-weight:var(--display-weight);font-size:calc(clamp(62px,10.3vw,160px)*var(--hero-scale));letter-spacing:var(--display-tracking);text-transform:var(--display-case);font-optical-sizing:auto;max-width:100%;line-height:.92;margin:0 0 40px}
.bio-lead{font-size:calc(clamp(62px,10.3vw,160px)*var(--hero-scale)*.4)}
.contact-link{font-size:clamp(20px,2.5vw,38px)}
.nav-panel{position:relative;overflow:hidden;transform-origin:25px 100%}
.nav-panel a{position:relative;z-index:1;transition:none}
.nav-panel a:hover>span{transform:none;color:inherit}
.nav-highlight{position:absolute;left:10px;right:10px;top:0;height:60px;border-radius:7px;background:var(--pink);pointer-events:none;opacity:0}
.nav-panel a>span{transition:none}
.practice-badge,.practice-badge:hover,.practice-badge[aria-expanded=true]{transition:background 180ms,color 180ms;transform:rotate(12deg)}
.nav-plus{transition:none}
.badge-note{transform-origin:85% 0}
.roll-label{position:relative;display:inline-grid;overflow:clip;vertical-align:bottom}
.roll-label>span{grid-area:1/1;display:block}.roll-label>span+span{transform:translateY(110%)}
.gallery-controls button:hover,.gallery-controls button:focus-visible{background:var(--yellow);color:var(--highlight-ink)}
.arrow-link>span,.contact-link>span,.contact-arrow{transition:none!important}
.editorial .type-line,.page-title .type-line,.bio-lead .type-line,.contact-section h2 .type-line{padding-bottom:.08em;margin-bottom:-.08em}
.text-link:focus-visible{outline-offset:6px}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:180ms}
@media(min-width:1500px){.gallery-side,.index-collection{max-width:1420px;margin-left:auto;margin-right:auto}}
@media(max-width:1050px){.intro .editorial{font-size:calc(11.1vw*var(--hero-scale))}.hero-caption{max-width:440px;gap:20px}.intro-description{font-size:13px}.hero-caption .arrow-link{font-size:11px;gap:15px}.gallery-info h3{font-size:37px}.gallery-summary{max-width:210px}.gallery-side{grid-template-columns:100px 1fr;gap:16px}#gallery-jumps{gap:0 10px}.index-collection{gap:40px 22px}.index-collection .project-card:nth-child(4n+2),.index-collection .project-card:nth-child(4n+3){padding:0 10px}}
@media(max-width:700px){
 .intro{padding-top:35px;display:grid;grid-template-columns:1fr;gap:0}.intro-eyebrow{grid-column:1;grid-row:auto;margin-bottom:25px;max-width:240px;font-size:8px}.intro-copy{grid-column:1;grid-row:auto;pointer-events:auto}.intro .editorial{font-size:calc(clamp(50px,14.6vw,96px)*var(--hero-scale));line-height:.91;padding:0}.hero-caption{display:block;max-width:none;margin-top:23px}.intro-description{font-size:13px}.hero-caption .arrow-link{margin-top:20px;font-size:12px;gap:25px}
 .intro-foot{grid-column:1;margin-top:32px;padding-top:20px;font-size:8px}.intro-foot>span:nth-child(2){width:auto}
 .work-heading{padding-top:42px;gap:25px}.work-heading h2{font-size:calc(clamp(42px,11vw,76px)*var(--heading-scale))}.work-heading .work-kicker{font-size:8px;margin-bottom:16px!important}.work-switch button{min-width:88px;font-size:11px}.gallery-side{margin:0 38px 0 26px;grid-template-columns:1fr;gap:6px;padding-top:16px}.gallery-side>.mono{font-size:8px;margin:0 0 5px}#gallery-jumps{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 17px}.gallery-side button{font-size:9px;min-height:38px}.gallery-side button::after{bottom:6px}#work{padding-bottom:28px}
 .index-collection{margin:28px 38px 0 26px;grid-template-columns:1fr;gap:30px}.index-collection .project-card,.index-collection .project-card:nth-child(4n+2),.index-collection .project-card:nth-child(4n+3),.index-collection .project-card:nth-child(4n+4){grid-column:1;padding:0;margin:0}.index-collection .project-card:nth-child(4n+2),.index-collection .project-card:nth-child(4n+3){width:85%;justify-self:end}.project-caption h3{font-size:28px}.project-card>.mono{font-size:8px}.project-caption{padding:12px 0}.project-hover{font-size:9px;padding:9px 12px;right:10px;bottom:10px}
 .contact-section{padding-top:60px;padding-bottom:145px}.contact-section h2{font-size:calc(clamp(46px,12.2vw,90px)*var(--hero-scale));line-height:.96}.contact-link{font-size:clamp(16px,4.6vw,24px)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gallery-plane{transition:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

@media(max-width:700px){#work{scroll-margin-top:110px}.work-heading{align-items:flex-start}.work-heading>div:first-child{width:100%;min-width:0}.work-heading h2{max-width:100%}}
/* Stack the gallery at tablet sizes, with copy and controls in normal flow. */
@media(max-width:900px){
 .gallery-sticky{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;gap:0;padding:0 0 22px}
 .gallery-scene{grid-column:1;grid-row:1;inset:auto;height:clamp(240px,75vw,360px);perspective:none;overflow:clip;order:initial}
 .gallery-plane{width:min(60%,240px);height:auto;aspect-ratio:4/5;left:50%;top:50%}
 .gallery-coordinate{bottom:0;right:0;font-size:8px}
 .gallery-info{grid-column:1;grid-row:2;inset:auto;width:100%;display:grid;grid-template-columns:minmax(0,1fr);padding:0;margin-top:20px;gap:0}
 .gallery-category{grid-column:1;min-height:0;font-size:8px;margin-bottom:10px;max-width:100%}
 .gallery-info .title-mask{grid-column:1;padding-bottom:4px}
 .gallery-info h3{font-size:clamp(30px,8.5vw,44px)}
 .gallery-summary{grid-column:1;max-width:none;min-height:0;font-size:11px;margin:13px 0 16px;line-height:1.6}
 .gallery-info>.text-link{grid-column:1;justify-self:start;font-size:11px;min-height:44px}
 .gallery-controls{grid-column:1;grid-row:3;inset:auto;width:100%;max-width:none;gap:12px;margin-top:20px}
 .gallery-controls .mono{font-size:8px}
 .gallery-plane .project-caption{left:12px;right:12px;bottom:15px}
 .gallery-plane .project-caption h3{font-size:clamp(14px,4vw,20px)}
 .gallery-plane .fan-number{left:12px;top:14px;font-size:10px}
}

/* The reel shares the same content edges as the hero and work heading. */
.reel-section{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;margin:0 70px 0 48px;padding:28px 0 8px;align-items:start}
.reel-title{font-family:var(--font-display);font-weight:var(--display-weight);font-size:calc(clamp(28px,3.1vw,44px)*var(--heading-scale));letter-spacing:var(--display-tracking);text-transform:var(--display-case);line-height:1.2}
.reel-film{position:relative;aspect-ratio:16/9;overflow:hidden;background:#141518;border:1px solid var(--line)}
.reel-film iframe{display:block;width:100%;height:100%;border:0}
.contact-social-links{display:flex;align-items:center;flex-wrap:wrap;gap:24px}
.contact-social-links a{display:inline-flex;align-items:center;min-height:32px}
@media(min-width:1500px){.reel-section{max-width:1420px;margin-inline:auto}}
@media(max-width:700px){.reel-section{gap:14px;margin-inline:26px 38px;padding:24px 0 0}.tools-button{font-size:11px;gap:16px}.intro-actions{width:100%;justify-content:flex-start;flex-wrap:wrap;margin-left:0;margin-top:8px;gap:8px}.contact-social-links{gap:18px}}
@media(prefers-reduced-motion:reduce){.tools-button{transition:none}}
@media(min-width:1500px){.bio-section{padding-inline:max(48px,calc((100vw - 1420px)/2)) max(70px,calc((100vw - 1420px)/2))}}
@media(max-width:700px){.bio-section{grid-template-columns:minmax(0,1fr);gap:22px;padding:34px 38px 40px 26px}.bio-lead,.bio-copy,.bio-manifesto{grid-column:1}.bio-copy,.bio-manifesto{font-size:.875rem;line-height:1.7}}
