/* Full-screen film extends behind the homepage sticky navigation. */
:root{--home-header-height:78px}
.home-film{position:relative;height:100vh;height:100svh;min-height:280px;overflow:hidden;background:#171c20}
.home-film video{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.home-film-scroll{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:12px;color:#fff;text-decoration:none;font:500 12px/1.2 var(--font-sans);letter-spacing:.2em;padding:16px 24px;border-radius:40px;background:rgba(0,0,0,.28);text-shadow:0 1px 4px #000}
.home-film-scroll svg{width:18px;height:24px;fill:none;stroke:currentColor;stroke-width:1.4}
.home-film-toggle{position:absolute;right:28px;bottom:32px;width:44px;height:44px;border:1px solid rgba(255,255,255,.8);border-radius:50%;background:rgba(0,0,0,.28);color:#fff;cursor:pointer;font-size:15px}
.home-film-toggle[hidden]{display:none}
.home-film a:focus-visible,.home-film button:focus-visible{outline:2px solid #fff;outline-offset:4px}
#home-intro{scroll-margin-top:var(--home-header-height)}
@media(max-width:1100px){:root{--home-header-height:64px}.home-film-scroll{bottom:24px}.home-film-toggle{right:18px;bottom:24px}}

/* Blur only the background layer so fixed navigation submenus keep their viewport positioning. */
body > header.home-film-header{margin-bottom:calc(-1 * var(--home-header-height));background:transparent}
.home-film-header::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:var(--page);-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);transition:background-color .28s ease,backdrop-filter .28s ease,-webkit-backdrop-filter .28s ease}
.home-film-header.is-over-film::before{background:rgba(255,255,255,.66);-webkit-backdrop-filter:blur(18px) saturate(1.15);backdrop-filter:blur(18px) saturate(1.15)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.home-film-header.is-over-film::before{background:rgba(255,255,255,.9)}}
@media(prefers-reduced-motion:reduce){.home-film-header::before{transition:none}}

/* Temporary city photograph: one gentle push in, with no looping jump. */
.home-film.is-still video{transform-origin:55% 48%;animation:home-city-push 14s cubic-bezier(.2,.3,.3,1) both}
.home-film.is-still.is-motion-paused video{animation-play-state:paused}
@keyframes home-city-push{from{transform:scale(1)}to{transform:scale(1.015)}}
@media(prefers-reduced-motion:reduce){.home-film.is-still video{animation:none}}

/* Keep the streetscape in its original colors. */
.home-film::after{content:none}
.home-film-scroll,.home-film-toggle{z-index:2}

/* Official-site composition and entrance timing, with this site's sans-serif family. */
.home-film-copy{position:absolute;z-index:2;left:24px;right:24px;top:50%;transform:translateY(-50%);color:#fff;text-shadow:0 2px 14px rgba(10,20,30,.35)}
.home-film-title{margin:0;font-family:var(--font-sans);font-size:clamp(24px,2.5vw,48px);font-weight:600;line-height:1.15;letter-spacing:-.025em}
.home-film-phrase{display:inline-block;white-space:nowrap}
.home-film-char{display:inline-block;animation:home-copy-character .5s cubic-bezier(.25,.1,.25,1) both;animation-delay:calc(.4s + var(--char-index)*.03s)}
.home-film-rule{display:block;width:48px;height:2px;margin:16px 0;background:rgba(255,255,255,.55);transform-origin:left;animation:home-copy-rule .5s ease-out .85s both}
.home-film-subtitle{max-width:clamp(360px,38vw,900px);margin:0;font-family:var(--font-sans);font-size:clamp(12px,.85vw,16px);font-weight:400;line-height:1.9;letter-spacing:.025em;color:rgba(255,255,255,.72);animation:home-copy-subtitle .6s cubic-bezier(.25,.1,.25,1) .75s both}
.home-film-subtitle span{display:inline-block;white-space:nowrap}
.home-film-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@keyframes home-copy-character{from{opacity:0;filter:blur(4px);transform:translateX(-22px)}to{opacity:1;filter:blur(0);transform:translateX(0)}}
@keyframes home-copy-subtitle{from{opacity:0;filter:blur(4px);transform:translateX(-22px)}to{opacity:1;filter:blur(0);transform:translateX(0)}}
@keyframes home-copy-rule{from{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}
@media(min-width:768px){.home-film-copy{left:40px;right:40px}}
@media(min-width:1024px){.home-film-copy{left:5%;right:5%}}
@media(max-width:600px){.home-film-phrase{display:block}.home-film-title{line-height:1.35}.home-film-subtitle span{display:block}}
@media(max-height:440px) and (min-width:601px){.home-film-scroll{bottom:12px;padding:10px 18px;gap:6px}}
@media(prefers-reduced-motion:reduce){.home-film-char,.home-film-rule,.home-film-subtitle{animation:none}}

/* The contact action is monochrome over the film, then returns to the shared gold style. */
html body header.home-film-header.is-over-film .btn.btn-primary.btn-nav{background:#fff!important;color:#1b1b1b!important;border-color:#fff!important;box-shadow:none!important}
html body header.home-film-header.is-over-film .btn.btn-primary.btn-nav:focus-visible{background:#1b1b1b!important;color:#fff!important;border-color:#1b1b1b!important;outline-color:#1b1b1b!important}
@media(hover:hover) and (pointer:fine){html body header.home-film-header.is-over-film .btn.btn-primary.btn-nav:hover{background:#1b1b1b!important;color:#fff!important;border-color:#1b1b1b!important}}
/* Expanded illustration: preserve the entire scene and leave room for the sticky header. */
.home-film.is-still{height:100vh;height:100svh;min-height:0;background:#e8e7e3}
.home-film.is-still video{position:absolute;top:var(--home-header-height);height:calc(100% - var(--home-header-height));object-fit:contain;transform-origin:center}
@media(max-aspect-ratio:1/1){

 .home-film.is-still .home-film-copy{top:25%}
}

/* Wide displays use extended streetscape instead of letterboxing. */
@media(min-aspect-ratio:3/2){.home-film.is-still video{object-fit:cover}}

/* The copy arrives first; its gold panel fades in after all text has settled. */
.home-film-copy{right:auto;width:max-content;max-width:calc(100% - 48px);padding:26px 32px;box-sizing:border-box;isolation:isolate;text-shadow:0 1px 5px rgba(50,36,16,.3)}
.home-film-copy::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--gold,#9a6827);border-radius:3px;pointer-events:none;animation:home-copy-panel .7s ease 1.55s both}
.home-film-subtitle{color:rgba(255,255,255,.9)}
@keyframes home-copy-panel{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@media(min-width:768px){.home-film-copy{right:auto;max-width:calc(100% - 80px)}}
@media(min-width:1024px){.home-film-copy{right:auto;max-width:90%}}
@media(max-width:600px){.home-film-copy{padding:20px 22px}.home-film-rule{margin:12px 0}}
@media(prefers-reduced-motion:reduce){.home-film-copy::before{animation:none;opacity:.92}}

/* Keep the desktop copy within the left-hand streetscape. */
@media(min-width:1024px){
 .home-film-copy{left:16px;width:504px;max-width:calc(100% - 32px);padding:28px 30px}
 .home-film-title{font-size:36px}
 .home-film-subtitle{font-size:14px}
}
/* Extend only the gold backing to the viewport edge; keep the copy aligned. */
.home-film-copy::before{left:-24px;opacity:.92;border-radius:0;animation-timing-function:cubic-bezier(.22,.61,.36,1)}
@media(min-width:768px){.home-film-copy::before{left:-40px}}
@media(min-width:1024px){.home-film-copy::before{left:-16px}}
/* Real text and vector leaders remain sharp over the clean illustration. */
.home-signage-labels{position:absolute;z-index:1;pointer-events:none;transform-origin:center;animation:home-city-push 14s cubic-bezier(.2,.3,.3,1) both}
.home-film:not(.is-still) .home-signage-labels{display:none}
.home-film.is-motion-paused .home-signage-labels{animation-play-state:paused}
.home-signage-leaders{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.home-signage-leaders path{fill:none;stroke:var(--gold);stroke-width:1.5;stroke-linecap:round}
.home-signage-leaders circle{fill:var(--gold);stroke:#fff;stroke-width:1}
.home-signage-label{pointer-events:auto;-webkit-user-select:text;user-select:text;cursor:text;position:absolute;transform:translateX(-50%);width:208px;box-sizing:border-box;padding:9px 11px;border:1.5px solid var(--gold);border-radius:5px;background:rgba(255,255,255,.97);color:#1b1b1b;font-family:var(--font-sans);box-shadow:0 2px 8px #2034490c}
.home-signage-label strong{display:block;font-size:14px;line-height:1.45;font-weight:600}
.home-signage-label span{display:block;margin-top:4px;font-size:12px;line-height:1.55}
@media(max-aspect-ratio:1/1){.home-signage-label{width:clamp(105px,32vw,180px);padding:6px 7px}.home-signage-label strong{font-size:11px}.home-signage-label span{display:none}}
@media(prefers-reduced-motion:reduce){.home-signage-labels{animation:none}}

/* Center the scroll cue in the space between product annotations. */
.home-film-scroll{left:50%;right:auto;transform:translateX(-50%)}



/* Measured stagger: each callout, copy and leader enter together in reading order. */
.home-signage-label{animation:home-label-reveal .65s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(.45s + var(--label-order,0)*.3s)}
.home-signage-leaders path,.home-signage-leaders circle{animation:home-leader-reveal .65s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(.45s + var(--label-order,0)*.3s)}
@keyframes home-label-reveal{from{opacity:0;transform:translate(-50%,5px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes home-leader-reveal{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.home-signage-label,.home-signage-leaders path,.home-signage-leaders circle{animation:none}}
@media(min-aspect-ratio:1/1) and (max-width:1600px){.home-signage-label:nth-last-child(-n+2){width:164px}}
/* Approved restaurant illustration: show the entire transparent artwork. */
.home-film.is-still.is-restaurant{background:#faf9f6}
.home-film.is-still.is-restaurant video{object-fit:contain}
.home-film.is-restaurant .home-signage-labels{display:none}

/* Give the restaurant artwork breathing room and lower the desktop message. */
.home-film.is-still.is-restaurant video{scale:.94}
@media(min-width:1024px) and (min-aspect-ratio:1/1){.home-film.is-still.is-restaurant .home-film-copy{top:72.5%}}

/* Restaurant annotations mapped to the reduced illustration. */
.home-film.is-restaurant .home-signage-labels{display:block}
.home-film.is-restaurant .home-signage-label{width:clamp(140px,10.8vw,208px);padding:9px 10px}
.home-film.is-restaurant .home-signage-label strong{font-size:clamp(12px,.74vw,14px)}
.home-film.is-restaurant .home-signage-label span{font-size:clamp(11px,.63vw,12px)}
@media(max-aspect-ratio:1/1){.home-film.is-restaurant .home-signage-label{width:105px;padding:6px}.home-film.is-restaurant .home-signage-label strong{font-size:10px}}

/* Quiet editorial labels: a short accent replaces the enclosing border. */
.home-film.is-restaurant .home-signage-label{border:0;border-radius:0;box-shadow:none;background:rgba(250,249,246,.94);padding:12px 12px 10px;width:clamp(154px,11.5vw,220px)}
.home-film.is-restaurant .home-signage-label::before{content:"";display:block;width:22px;height:2px;margin-bottom:8px;background:var(--gold);border-radius:2px}
.home-film.is-restaurant .home-signage-label strong{font-weight:600;line-height:1.55;letter-spacing:.015em}
.home-film.is-restaurant .home-signage-label span{margin-top:5px;line-height:1.65;color:#343434}
.home-film.is-restaurant .home-signage-leaders path{stroke-width:1;stroke-opacity:.75}
.home-film.is-restaurant .home-signage-leaders circle{stroke-width:1.5}
@media(max-aspect-ratio:1/1){.home-film.is-restaurant .home-signage-label{width:105px;padding:5px 6px}.home-film.is-restaurant .home-signage-label::before{width:16px;margin-bottom:4px;height:1.5px}}
/* Compact fixture note in the open margin. */
.home-film.is-restaurant .home-fixture-label{background:transparent;width:148px;padding:10px 8px}
@media(max-aspect-ratio:1/1){.home-film.is-restaurant .home-fixture-label{width:105px;padding:5px 6px}}

/* Keep the scroll cue clear of the central equipment. */
.home-film.is-restaurant .home-film-scroll{left:auto;right:28px;transform:none}
@media(max-width:600px){.home-film.is-restaurant .home-film-scroll{right:18px}}

.home-film.is-restaurant .home-signage-label:nth-of-type(7){background:transparent}

/* Move the illustration and its annotations together, independently of the headline. */
.home-film.is-still.is-restaurant video,.home-film.is-restaurant .home-signage-labels{translate:12px -12px}

.home-film.is-restaurant .home-outdoor-label{background:transparent}

/* Reveal the gold panel before bringing in the white copy. */
.home-film-copy::before{animation-delay:.15s;animation-duration:.65s}
.home-film-char{animation-delay:calc(.9s + var(--char-index)*.03s)}
.home-film-rule{animation-delay:1.25s}
.home-film-subtitle{animation-delay:1.4s}
