/* The shared portfolio grid contains the author's original Giallo Napoli artwork. */
.project-gn{--gn-blue:#212b55;--gn-yellow:#ffdf5d;--gn-paper:#f5f1e6}
.project-gn .project-title{font-size:clamp(64px,11vw,176px);letter-spacing:-.065em;line-height:.98;max-width:90%}
.gn-intro-info{display:grid;grid-template-columns:1fr 1fr;gap:var(--project-gap);padding:64px 0 60px}.gn-intro-info .project-summary{margin:0;max-width:36ch}
.gn-facts{display:flex;gap:40px;flex-wrap:wrap;align-content:start;font-size:11px;line-height:1.6}.gn-facts dt{color:#666;margin-bottom:8px}.gn-facts dd{margin:0}
.gn-cover{width:100%;max-width:1180px;margin-left:auto}.gn-film{position:relative;aspect-ratio:5/4;background:#eee9df}.gn-film .orbit-media{position:absolute;inset:0}.gn-film img,.gn-film video{object-fit:contain!important}
.gn-video-control{position:absolute;z-index:2;right:20px;bottom:20px;min-height:44px;padding:12px 18px;background:#fff;color:#111;border:0;font-size:11px;cursor:pointer}
.gn-gallery{gap:24px}.gn-chapter{padding-top:clamp(85px,10vw,160px);padding-bottom:25px}.gn-chapter .project-copy h2{max-width:22ch;letter-spacing:-.045em}.gn-chapter .project-copy p{max-width:48ch}
.gn-photo{background:#fff}.gn-photo>img{display:block;width:100%;height:auto}.gn-type-comparison{padding:clamp(20px,4vw,70px) 0}.gn-morph{background:var(--gn-blue);color:var(--gn-paper)}
.gn-morph-stage{position:relative;aspect-ratio:3/2}.gn-morph-stage>img,.gn-morph-stage>canvas{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.gn-morph-stage>canvas{visibility:hidden}.gn-morph.is-ready .gn-morph-stage>canvas{visibility:visible}.gn-morph.is-ready .gn-morph-stage>img{visibility:hidden}
.gn-motion-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 26px;font-size:10px;gap:20px}.gn-motion-bar button{border:0;color:inherit;background:transparent;font:inherit;padding:14px 10px;cursor:pointer;min-height:44px}.gn-motion-bar button:focus-visible,.gn-video-control:focus-visible{outline:2px solid currentColor;outline-offset:-4px}
.gn-pattern-composition{display:flex;flex-direction:column;justify-content:space-between;align-items:center;background:#fff}.gn-pattern-composition .gn-symbol{width:38%;height:55%;object-fit:contain;margin-top:5%}.gn-pattern-composition .gn-pattern{width:100%;height:auto}
.gn-palette{margin-top:0}.gn-bookmarks{padding:clamp(12px,3vw,50px);background:#fff}.gn-finale{grid-column:1/-1;background:var(--gn-blue);color:var(--gn-paper);padding:30px;margin-top:60px}.gn-finale .mono{font-size:11px}.gn-finale>img{display:block;width:70%;margin:0 auto;max-height:650px;object-fit:contain}
.gn-credits{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:75px 0 100px}.gn-credits>.mono{font-size:11px}.gn-credits p{font-size:14px;line-height:1.6;max-width:65ch}.gn-credits p+p{margin-top:18px;color:#666}
.work-image.gn-sequence-cover,.project-next-preview.gn-next-cover{aspect-ratio:5/4!important;background:#212b55;position:relative}.gn-sequence-cover .orbit-media,.gn-next-cover .orbit-media{position:absolute;inset:0}.gn-sequence-cover .orbit-media>img,.gn-sequence-cover .orbit-media>video,.gn-next-cover .orbit-media>img,.gn-next-cover .orbit-media>video{object-fit:contain}
@media(max-width:800px){.project-gn .project-title{font-size:clamp(55px,12vw,96px)}.gn-intro-info{grid-template-columns:1fr;padding:35px 0;gap:32px}.gn-facts{order:2;font-size:10px;gap:22px}.gn-intro-info .project-summary{max-width:none;font-size:22px}.project-gn .project-topline>.mono{font-size:9px}.gn-gallery{gap:16px}.gn-chapter{grid-template-columns:1fr;gap:20px;padding:65px 0 20px}.gn-chapter .project-copy h2{font-size:34px;max-width:none}.gn-chapter .project-copy p{font-size:18px;max-width:none}.gn-motion-bar{padding:4px 12px;font-size:8px;gap:8px}.gn-morph-stage{aspect-ratio:5/4}.gn-video-control{right:10px;bottom:10px;font-size:10px;padding:10px 12px}.gn-finale{padding:20px;margin-top:30px}.gn-finale>img{width:100%}.gn-credits{grid-template-columns:1fr;padding:50px 0 65px}}
@media(prefers-reduced-motion:reduce){.gn-motion-bar button{display:none}.gn-video-control{display:none}.gn-morph-stage>canvas{display:none}.gn-morph.is-ready .gn-morph-stage>img{visibility:visible}}

.gn-home-card{position:relative}.gn-work-link{display:block}.gn-home-card>.gn-video-control{right:16px;bottom:16px;z-index:5}.gn-home-card .work-view{display:none}

.project-gn .all-projects{flex-shrink:0;white-space:nowrap}.project-gn .all-projects .roll-text{white-space:nowrap}@media(max-width:800px){.project-gn .all-projects{font-size:10px}.project-gn .project-topline{gap:18px}.project-gn .project-topline>.mono{text-align:right;font-size:8px}}

.gn-color-palette{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,1fr);min-height:180px}.gn-color-palette>div{display:flex;flex-direction:column;justify-content:space-between;gap:56px;padding:24px;font-size:11px}.gn-event-caption{grid-column:1/-1;font-size:11px;line-height:1.6;margin:-8px 0 0;color:#666}
@media(max-width:800px){.gn-color-palette{grid-template-columns:repeat(2,1fr)}.gn-color-palette>div{padding:20px;gap:42px;font-size:10px}.gn-color-palette>div:last-child{grid-column:1/-1}.gn-event-caption{font-size:10px}}

/* R07: six original panels, reordered only on mobile. */
.gn-identity{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;background:#fff}
.gn-identity-tile{position:relative;overflow:hidden;aspect-ratio:600/580}
.gn-identity-tile>img{position:absolute;width:300%;height:201.207%;max-width:none;display:block}
.gn-identity-white{order:0}.gn-identity-yellow{order:1}.gn-identity-blue{order:2}.gn-identity-eye{order:3}.gn-identity-pattern{order:4}.gn-identity-grey{order:5}
.gn-finale{position:relative;height:clamp(220px,28vw,360px);padding:24px;overflow:hidden}
.gn-finale .mono{position:relative;z-index:1}
.gn-finale>img{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:65%;height:calc(100% - 34px);max-height:none;margin:0;object-fit:contain}
@media(max-width:800px){
 .gn-identity{grid-template-columns:repeat(2,minmax(0,1fr))}
 .gn-identity-yellow{order:0}.gn-identity-blue{order:1}.gn-identity-white{order:2}.gn-identity-grey{order:3}.gn-identity-eye{order:4}.gn-identity-pattern{order:5}
 .gn-finale{height:190px;padding:18px}
 .gn-finale .mono{font-size:9px}
 .gn-finale>img{width:80%;height:160px}
}




/* R10: horizontal Carousel 18 study — alternate tilt, equal scale, Flow rhythm. */
.gn-carousel{grid-column:1/-1;min-width:0;background:#fff}
.gn-carousel-viewport{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:30px;overflow:hidden;touch-action:pan-y;user-select:none}
.gn-carousel-card{min-width:0;transform-origin:center;box-shadow:1px 4px 8px -5px #202c5433}
.gn-carousel-card img{display:block;width:100%;height:auto;pointer-events:none}
.gn-carousel.is-carousel .gn-carousel-viewport{display:block;height:clamp(624px,65vw,884px);padding:0;cursor:grab}
.gn-carousel.is-carousel .gn-carousel-card{position:absolute;top:50%;left:50%;height:76%;width:auto;aspect-ratio:420/1600;will-change:transform}
.gn-carousel.is-carousel .gn-carousel-card img{width:100%;height:100%;object-fit:contain;max-width:none}
.gn-carousel.is-dragging .gn-carousel-viewport{cursor:grabbing}
.gn-carousel-bar{display:none;align-items:center;justify-content:space-between;gap:16px;padding:8px 0;font-size:10px;line-height:1.4;border-top:1px solid #ddd}
.gn-carousel.is-carousel .gn-carousel-bar{display:flex}
.gn-carousel-controls{display:flex;align-items:center;gap:8px}
.gn-carousel-controls button{border:0;background:transparent;color:#202c54;font:inherit;min-width:44px;min-height:44px;padding:10px;cursor:pointer}
.gn-carousel-controls [data-carousel-play]{min-width:78px}
.gn-carousel button:focus-visible,.gn-carousel-viewport:focus-visible{outline:2px solid #202c54;outline-offset:-3px}
@media(max-width:800px){
 .gn-carousel-viewport{grid-template-columns:repeat(2,1fr)}
 .gn-carousel.is-carousel .gn-carousel-viewport{height:clamp(598px,162.5vw,754px)}
 .gn-carousel.is-carousel .gn-carousel-card{height:76%}
 .gn-carousel-bar{font-size:9px;gap:6px}
 .gn-carousel-controls{gap:0}
 .gn-carousel-controls [data-carousel-play]{min-width:62px}
}
@media(prefers-reduced-motion:reduce){.gn-carousel.is-carousel .gn-carousel-card{will-change:auto}.gn-carousel [data-carousel-play]{display:none}}

/* Full-bleed GN covers: shared 2px bleed for poster and film avoids light seams
   at fractional card sizes and during the handoff from the poster to video. */
.gn-sequence-cover .orbit-media,.gn-next-cover .orbit-media,.gn-cover .orbit-media{background:#212b55}
.gn-sequence-cover .orbit-media>img,.gn-sequence-cover .orbit-media>video,
.gn-next-cover .orbit-media>img,.gn-next-cover .orbit-media>video,
.gn-cover .orbit-media>img,.gn-cover .orbit-media>video{
 inset:-2px;width:calc(100% + 4px);height:calc(100% + 4px);max-width:none;
 object-fit:cover!important;object-position:center;
}
