.journey-header{position:fixed;inset:0 0 auto;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:24px 4.3%;background:linear-gradient(#0006,transparent);transition:background .25s}.journey-header.scrolled{background:#0a0a0bf2;backdrop-filter:blur(14px);padding-top:17px;padding-bottom:17px;border-bottom:1px solid #ffffff12}.identity{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:600;letter-spacing:1.5px;white-space:nowrap}.journey-header nav{display:flex;gap:32px;align-items:center;font-size:13px}.journey-header sup{font-size:10px;color:var(--muted);margin-left:3px}.journey-header a[aria-current=true]{color:var(--paper);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:9px}.header-contact{margin-left:22px}.opening{position:relative;height:100svh;min-height:720px;max-height:1300px;overflow:hidden;background:var(--panel);isolation:isolate}.opening-poster,.opening-video,.opening-shade{position:absolute;inset:0}.opening-poster{z-index:-3;background:var(--ink)}.opening-poster img{width:100%;height:100%;object-fit:cover;filter:brightness(.6);transform:scale(1.04)}.opening-video{z-index:-2;pointer-events:none}.opening-video+.opening-poster{opacity:1;transition:none}.opening-video.is-playing+.opening-poster{opacity:0;transition:opacity .4s cubic-bezier(.23,1,.32,1)}.opening-video iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max(100vw,178svh);height:max(100svh,56.25vw);border:0}.opening-shade{z-index:-1;background:linear-gradient(0deg,#0a0a0bf2,transparent 58%),linear-gradient(90deg,#0006,transparent 90%)}.opening-intro{position:absolute;top:25%;left:8%;right:8%}.opening-intro>.eyebrow{font-size:11px;letter-spacing:2.2px}.opening-intro h1{font-size:clamp(70px,8vw,145px);line-height:1.05;font-weight:400;letter-spacing:-.06em;margin:25px 0}.opening-intro h1 em{color:var(--paper);font-size:1.13em}.opening-intro p{font-size:16px;line-height:1.65;color:var(--paper)}.opening-foot{position:absolute;bottom:45px;left:8%;right:8%;display:flex;justify-content:space-between;gap:30px;align-items:end}.opening-foot .eyebrow{color:var(--titanium);font-size:11px}.opening-foot h2{font-size:34px;margin:9px 0 18px;letter-spacing:-1px}.watch-film{padding:0;background:transparent;display:flex;align-items:center;gap:14px;font-size:14px}.play-disc{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--titanium);border-radius:50%;font-size:24px;transition:background .25s,color .25s}.opening-actions{display:flex;flex-direction:column;gap:32px;align-items:end}#background-toggle{background:#151517b3;border:1px solid #ffffff50;padding:11px 14px;font-size:12px;backdrop-filter:blur(8px)}.continue-link{font-size:11px;letter-spacing:1.6px}
/* One persistent picture plane lets each chapter reveal the next. */
.story-sequence{position:relative;isolation:isolate;background:var(--ink);overflow:clip}
.sequence-screen{position:sticky;top:0;height:100svh;margin-bottom:-100svh;overflow:hidden;pointer-events:none;background:var(--ink);z-index:-1}
.sequence-screen .opening-poster,.sequence-screen .opening-video{z-index:auto}
.sequence-screen .opening-poster img{filter:none;transform:none}
.scene-image{position:absolute;inset:0;clip-path:inset(50%);visibility:hidden}
.scene-image img{width:100%;height:100%;object-fit:cover;display:block}
.scene-image-food img{object-position:65% 50%}
.sequence-shade{position:absolute;inset:0;background:linear-gradient(0deg,#0a0a0be8,transparent 65%),linear-gradient(90deg,#0a0a0b91,transparent 85%)}
.opening{background:none;isolation:auto;overflow:visible;max-height:none}
.opening-video iframe{transform:translate(-50%,-50%) scale(1.34)}
.film-story{height:115svh;min-height:760px;position:relative;padding:0 8%;display:flex;align-items:center;scroll-margin-top:0}
.chapter-anchor{position:absolute;top:0;scroll-margin-top:0}
.scene-copy{position:relative;padding-top:30px;max-width:1100px}
.scene-prelude{display:block;font:400 clamp(19px,2.1vw,31px) var(--display);color:var(--muted);margin-bottom:55px}
.scene-copy .eyebrow{color:var(--titanium);font-size:11px;letter-spacing:2px}
.scene-copy h2{font-size:clamp(52px,7.7vw,126px);font-weight:400;letter-spacing:-.052em;line-height:1.03;margin:25px 0}
.scene-copy h2 em{font-size:1.1em}
#holy-forever h2{font-size:clamp(47px,6.5vw,104px)}
.scene-copy>p{color:var(--paper);font-size:16px;line-height:1.7;max-width:430px;margin:0 0 30px}
.scene-copy .watch-film{min-height:48px}
.scene-next{display:flex;align-items:center;gap:28px;font-size:10px;letter-spacing:1.7px;position:relative;width:fit-content;min-height:44px;margin-top:58px}

.scene-number{position:absolute;right:8%;bottom:14%;font:400 110px var(--display);opacity:.26;line-height:1}
.food-frame{font:11px var(--sans);letter-spacing:1.5px;opacity:.75;bottom:9%}
.food-scene{height:100svh;min-height:740px}
.food-scene .scene-copy{max-width:760px}
.stills-chapter{background:var(--panel);color:var(--paper);padding:95px 6% 85px;scroll-margin-top:76px}
.selection-heading{max-width:1600px;margin:0 auto 55px;display:grid;grid-template-columns:1fr auto;column-gap:30px;align-items:end}
.selection-heading>.eyebrow{grid-column:1/-1;color:var(--titanium);font-size:10px;letter-spacing:1.8px;margin-bottom:25px}
.selection-heading h2{font-size:clamp(45px,5.5vw,85px);font-weight:400;letter-spacing:-.05em;margin:0;line-height:1.12}
.selection-heading p{margin:0 0 5px;font-size:14px;line-height:1.65;color:var(--muted)}
.stills-toolbar{max-width:1600px;margin:auto;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:20px 0;font-size:10px;letter-spacing:1.4px;color:var(--muted)}
.stills-grid{max-width:1600px;margin:auto;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:40px 24px}
.still-piece{grid-column:span 2;min-width:0;display:block;background:transparent;text-align:left;padding:0;color:inherit}
.still-piece:nth-child(-n+2){grid-column:span 3}
.still-image{aspect-ratio:3/2;overflow:hidden;background:var(--line)}
.still-image img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .6s cubic-bezier(.23,1,.32,1)}
.still-caption{display:flex;justify-content:space-between;gap:12px;margin-top:14px;font-size:11px;letter-spacing:.8px;color:var(--muted)}
.collection-invitation{max-width:1600px;margin:70px auto 0;padding-top:45px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:30px}
.collection-invitation p{font-size:clamp(25px,3vw,42px);letter-spacing:-.025em;line-height:1.25;margin:0}
.collection-button{border:1px solid var(--accent);background:var(--accent);color:var(--paper);padding:20px 25px;display:flex;align-items:center;gap:35px;font-size:13px;transition:background .25s,color .25s}

.closing-note{padding:100px 8%;display:grid;grid-template-columns:1.2fr 1fr;column-gap:12%;align-items:center;background:var(--ink);color:var(--paper);border-top:1px solid var(--line)}
.closing-note>.eyebrow{grid-column:1/-1;color:var(--titanium);margin-bottom:25px}
.closing-note h2{font-size:clamp(43px,4vw,66px);margin:0}
.closing-note>p{font-size:17px;line-height:1.8;color:var(--muted)}
.coming-next{grid-column:1/-1;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted);padding-top:45px;margin-top:45px;border-top:1px solid var(--line)}
.coming-next span:first-child{letter-spacing:1.3px;color:var(--titanium)}
.reading-progress{position:fixed;left:0;right:0;bottom:0;height:3px;z-index:12;pointer-events:none}
.reading-progress>div{height:100%;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}
.journey .contact{padding-left:8%;padding-right:8%}
.journey .site-footer{padding-bottom:45px}
.journey .gallery-stage{background:var(--ink)}
.journey .gallery-stage>img{height:min(59svh,740px)}
.journey .film-player{max-height:none}
.journey .film-player iframe{aspect-ratio:16/9;min-height:200px}
.journey .next-project{min-height:44px}
.journey .image-credit-original{font-size:13px;color:var(--muted)}
@media(hover:hover) and (pointer:fine){.still-piece:hover img{transform:scale(1.025)}.collection-button:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--paper)}.watch-film:hover .play-disc{background:var(--accent);border-color:var(--accent);color:var(--paper)}}
@media(max-width:900px){.journey-header nav{gap:20px}.header-contact{margin-left:0}.opening{min-height:680px}.opening-intro{top:24%;left:6%;right:6%}.opening-intro h1{font-size:10vw}.opening-foot{left:6%;right:6%}.film-story{padding:0 6%}.scene-copy h2{font-size:9vw}#holy-forever h2{font-size:7.8vw}.scene-number{right:6%;font-size:80px}.food-frame{font-size:11px}.stills-grid{gap:30px 18px}.closing-note{column-gap:7%}}
@media(max-width:600px){
.journey-header{padding:20px 6%}.identity{font-size:12px;letter-spacing:1px}.journey-header nav{gap:15px;font-size:11px}.journey-header nav sup,.journey-header .header-contact{display:none}
.opening{min-height:740px;height:100svh}.opening-intro{top:26%}.opening-intro>.eyebrow{font-size:10px;letter-spacing:1.6px}.opening-intro h1{font-size:15.2vw;line-height:1.06;margin:24px 0}.opening-intro p{font-size:14px}.opening-foot{bottom:32px;align-items:start}.opening-foot h2{font-size:29px}.opening-foot .eyebrow{font-size:10px}.watch-film{font-size:12px;gap:10px}.play-disc{width:38px;height:38px}.opening-actions{height:134px;justify-content:space-between;gap:25px}.continue-link{font-size:9px;line-height:1.5;letter-spacing:1px;max-width:110px;text-align:right}#background-toggle{font-size:10px;padding:9px 10px}
.film-story{height:110svh;min-height:740px}.scene-copy{padding-top:0;width:100%}.scene-prelude{font-size:22px;max-width:250px;margin-bottom:36px}.scene-copy .eyebrow{font-size:9px;letter-spacing:1.1px}.scene-copy h2{font-size:15vw;margin:23px 0}.scene-copy>p{font-size:14px;max-width:290px}.scene-next{margin-top:38px;font-size:9px;letter-spacing:1.1px;gap:20px}.scene-number{font-size:65px;bottom:11%}#holy-forever h2{font-size:11.7vw}.food-frame{font-size:10px;bottom:7%}.food-scene{height:100svh}.scene-image img{object-position:60% 50%}.scene-image-food img{object-position:62% 50%}
.stills-chapter{padding:65px 6% 55px}.selection-heading{display:block;margin-bottom:35px}.selection-heading>.eyebrow{display:block;font-size:9px;margin-bottom:23px}.selection-heading h2{font-size:45px}.selection-heading p{margin-top:20px;font-size:13px}.selection-heading p br{display:none}.stills-toolbar{font-size:9px;letter-spacing:.6px}.stills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:27px 15px}.still-piece,.still-piece:nth-child(-n+2){grid-column:span 1}.still-piece:first-child{grid-column:1/-1}.still-caption{font-size:9px;letter-spacing:.6px;margin-top:10px}.collection-invitation{display:block;margin-top:40px;padding-top:30px}.collection-invitation p{font-size:31px}.collection-button{margin-top:30px;padding:17px 20px;width:100%;justify-content:space-between;font-size:12px}
.closing-note{display:block;padding:65px 6%}.closing-note>.eyebrow{display:block}.closing-note h2{font-size:41px}.closing-note>p{font-size:16px;margin-top:25px}.coming-next{flex-direction:column;gap:12px;line-height:1.6;margin-top:30px;padding-top:30px}.journey .contact{padding-left:6%;padding-right:6%}.journey .gallery-stage>img{height:auto;min-height:230px}.journey .film-choice{min-height:74px}}
@media(prefers-reduced-motion:no-preference){.opening-intro{animation:rise-in .8s .15s both}.opening-foot{animation:rise-in .8s .35s both}}
/* Static panels keep all work available if animation or scripting is unavailable. */
.no-motion .sequence-screen{display:none}
.no-motion .opening,.no-motion .film-story{background-size:cover;background-position:center;height:auto;min-height:680px}
.no-motion .opening{height:100svh;min-height:740px;background-image:linear-gradient(0deg,#0a0a0be8,#0a0a0b55),url('/assets/films/brandon-kim-poster.jpg')}
.no-motion .film-story{padding-top:80px;padding-bottom:80px}
.no-motion #terry-taylor{background-image:linear-gradient(90deg,#0a0a0bdb,#0a0a0b50),url('https://i.ytimg.com/vi/jOgiZUP046Q/maxresdefault.jpg')}
.no-motion #music{background-image:linear-gradient(90deg,#0a0a0bdb,#0a0a0b50),url('https://i.ytimg.com/vi/Q5tP7fjMt1U/maxresdefault.jpg')}
.no-motion #holy-forever{background-image:linear-gradient(90deg,#0a0a0bdb,#0a0a0b50),url('https://i.ytimg.com/vi/eeqTkVFLCTk/maxresdefault.jpg')}
.no-motion #food-collection{background-image:linear-gradient(90deg,#0a0a0bdb,#0a0a0b40),url('assets/food-cinematic/07.jpg')}
@media(prefers-reduced-motion:reduce){.journey *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Functional controls share one monochrome SVG set; no text-glyph icons. */
.ui-icon{width:22px;height:22px;display:inline-block;vertical-align:middle;flex:none}
.play-disc .ui-icon{width:21px;height:21px}
.dialog-close .ui-icon{width:23px;height:23px}
.gallery-arrow{display:grid;place-items:center}
.gallery-arrow .ui-icon{width:25px;height:25px}
.film-choice-image>span{display:grid;place-items:center}
.film-choice-image .ui-icon{width:24px;height:24px}
.watch-film[data-gallery-open]{border-bottom:1px solid var(--titanium);padding-bottom:6px;width:fit-content}
.scene-next,.continue-link{text-decoration:underline;text-underline-offset:6px;text-decoration-color:#ffffff40}

/* The same aperture, diagonal wipe and iris follow scrolling on every screen. */
.mobile-motion .journey-header,.mobile-motion .journey-header.scrolled{backdrop-filter:none;-webkit-backdrop-filter:none}
.mobile-motion #background-toggle{backdrop-filter:none;-webkit-backdrop-filter:none;background:#151517e6}
:root{--chapter-inset:90px;--chapter-outset:0px;--compact-reveal:0}
.story-sequence{timeline-scope:--terry,--revival,--holy,--food}
#terry-taylor{view-timeline:--terry block;view-timeline-inset:var(--chapter-inset) var(--chapter-outset)}
#music{view-timeline:--revival block;view-timeline-inset:var(--chapter-inset) var(--chapter-outset)}
#holy-forever{view-timeline:--holy block;view-timeline-inset:var(--chapter-inset) var(--chapter-outset)}
#food-collection{view-timeline:--food block;view-timeline-inset:var(--chapter-inset) var(--chapter-outset)}
.scene-image{background:var(--ink)}
.scene-image.is-transitioning{will-change:clip-path}
.scene-image.is-transitioning>img{will-change:transform}
.native-scene-motion .scene-image{animation:scene-aperture linear both;animation-duration:auto;animation-range:entry 0% exit-crossing 0%}
.native-scene-motion .scene-image>img{animation:scene-zoom linear both;animation-duration:auto;animation-range:entry 0% exit-crossing 0%}
.native-scene-motion [data-scene-image="music"]{animation-name:scene-wipe}
.native-scene-motion [data-scene-image="food-collection"]{animation-name:scene-iris}
.native-scene-motion [data-scene-image="terry-taylor"],.native-scene-motion [data-scene-image="terry-taylor"]>img{animation-timeline:--terry}
.native-scene-motion [data-scene-image="music"],.native-scene-motion [data-scene-image="music"]>img{animation-timeline:--revival}
.native-scene-motion [data-scene-image="holy-forever"],.native-scene-motion [data-scene-image="holy-forever"]>img{animation-timeline:--holy}
.native-scene-motion [data-scene-image="food-collection"],.native-scene-motion [data-scene-image="food-collection"]>img{animation-timeline:--food}
.mobile-motion .scene-image>img{animation:none;transform:none;will-change:auto}
@keyframes scene-aperture{from{clip-path:inset(35% 50% round 12px)}to{clip-path:inset(0% 0% round 0px)}}
@keyframes scene-wipe{from{clip-path:polygon(112% 0,100% 0,100% 100%,100% 100%)}to{clip-path:polygon(0% 0,100% 0,100% 100%,-12% 100%)}}
@keyframes scene-iris{from{clip-path:circle(0% at 65% 48%)}to{clip-path:circle(100% at 65% 48%)}}
@keyframes scene-zoom{from{transform:scale(1.08)}to{transform:scale(1)}}

/* Brand palette: neutral surfaces, champagne details, restrained racing red. */
.contact-top .eyebrow{color:var(--titanium)}
.contact-top>span,.contact-bottom p{color:var(--muted)}
.contact h2 em{color:var(--titanium)}
.contact-top{border-top:2px solid var(--accent);padding-top:24px}
.contact-button:active,.collection-button:active{background:var(--accent-hover);color:var(--paper)}
.scene-next,.continue-link{text-decoration-color:var(--titanium)}
.dialog-close{border-color:var(--muted)}
.gallery-arrow{border-color:var(--muted)}
@media(hover:hover) and (pointer:fine){.journey-header a:hover,.info-dialog a:hover,.next-project:hover{color:var(--titanium)}}
