:root {
  --paper:#f4f0e8; --ivory:#faf8f3; --forest:#152c26; --dark:#11231e;
  --bronze:#ad966c; --ink:#23372f; --muted:#64675f; --rule:#d6d2c7;
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'DM Sans',Arial,sans-serif;
  --gutter:clamp(22px,4.45vw,76px); --content:1392px;
  --inquire-bar-height:calc(58px + env(safe-area-inset-bottom,0px));
  --publisher-height:80px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:112px; }
body { margin:0; background:var(--paper); color:var(--ink); font:15px/1.7 var(--sans); -webkit-font-smoothing:antialiased; }
body.dialog-open { overflow:hidden; }
[hidden] { display:none !important; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-decoration:none; }
button { min-height:44px; min-width:44px; color:inherit; cursor:pointer; border-radius:0; background:none; }
a,button { touch-action:manipulation; }
button:disabled { cursor:not-allowed; opacity:.42; }
img,video { display:block; max-width:100%; }
img { height:auto; }
picture { display:block; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; line-height:1.01; letter-spacing:-.035em; }
h2 { font-size:clamp(44px,4.8vw,74px); }
h3 { font-size:34px; }
p+p { margin-top:1em; }
strong { font-weight:600; }
::selection { background:#c9b590; color:var(--dark); }
:focus-visible { outline:2px solid var(--bronze); outline-offset:5px; }
section[id] { scroll-margin-top:0; }
.section-wrap { width:min(calc(100% - var(--gutter)*2),var(--content)); margin-inline:auto; }
.eyebrow { display:block; font-size:11px; line-height:1.5; text-transform:uppercase; letter-spacing:.16em; font-weight:500; margin-bottom:21px; }
.text-link,.light-link { display:inline-flex; align-items:center; gap:24px; min-height:44px; padding:10px 0; border-bottom:1px solid currentColor; font-size:12px; font-weight:500; line-height:1.5; }
.text-link span:last-child,.light-link span { font-size:20px; line-height:1; }
.button { display:inline-flex; min-height:50px; padding:14px 24px; align-items:center; justify-content:center; gap:30px; border:1px solid var(--forest); background:var(--forest); color:var(--ivory); font-size:13px; font-weight:500; line-height:1.5; transition:background .25s,color .25s,transform .25s; }
.button:hover { background:#284439; transform:translateY(-1px); }
.button span { font-size:19px; }
.skip-link { position:fixed; left:16px; top:-80px; z-index:1000; background:var(--forest); color:white; padding:12px 20px; }
.skip-link:focus { top:12px; }
.sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* A quiet masthead lets the architecture establish the first impression. */
.site-header { position:absolute; inset:0 0 auto; z-index:30; padding:25px var(--gutter); min-height:100px; display:flex; align-items:center; justify-content:space-between; gap:32px; color:var(--ivory); border-bottom:1px solid #ffffff40; transition:background .25s,color .25s,border-color .25s; }
.brand { display:flex; flex-direction:column; flex:none; }
.brand-name { font-family:var(--serif); font-size:32px; line-height:1; letter-spacing:.065em; }
.brand-dot { color:#c7b68e; }
.brand-caption { font-size:9px; letter-spacing:.17em; margin-top:8px; line-height:1.5; }
.main-nav { display:flex; align-items:center; gap:32px; font-size:12px; letter-spacing:.025em; }
.main-nav>a { display:inline-flex; align-items:center; min-height:44px; padding:9px 0; white-space:nowrap; }
.main-nav>a:not(.nav-inquire) { border-bottom:1px solid transparent; }
.main-nav>a:hover { border-bottom-color:currentColor; }
.main-nav .nav-inquire { border:1px solid #ffffff80; padding:11px 20px; margin-left:10px; gap:28px; }
.nav-inquire span { font-size:20px; line-height:1; }
.site-header.scrolled { position:fixed; min-height:82px; padding-block:16px; background:var(--ivory); color:var(--forest); border-color:var(--rule); box-shadow:0 2px 12px #11231e08; }
.site-header.scrolled .nav-inquire { border-color:#b8c0b3; }

.hero { position:relative; display:flex; flex-direction:column; min-height:clamp(700px,calc(92svh - var(--publisher-height)),900px); isolation:isolate; color:var(--ivory); background:var(--forest); overflow:hidden; }
.hero-picture { position:absolute; inset:0; z-index:-4; }
.hero-picture img,.hero-image { width:100%; height:100%; object-fit:cover; object-position:center 48%; }
.hero-motion-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; z-index:-3; background:transparent; opacity:0; transition:opacity .7s ease; }
.hero.motion-loaded .hero-motion-video { opacity:1; }
.hero::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#0a211ac7 0%,#10251d78 34%,#10251d14 75%,transparent); z-index:-2; pointer-events:none; }
.hero::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,#07140d4a 0%,transparent 27%,transparent 64%,#091b13a8 100%); z-index:-1; pointer-events:none; }
.hero-shade { pointer-events:none; }
.hero-content { position:relative; flex:1; width:min(calc(100% - var(--gutter)*2),var(--content)); margin-inline:auto; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:148px 0 36px; }
.hero .eyebrow { color:#eee7d8; margin-bottom:20px; font-size:11px; line-height:1.6; letter-spacing:.15em; }
.hero-eyebrow { display:flex; align-items:center; gap:14px; }
.tiny-rule { display:inline-block; width:27px; height:1px; background:var(--bronze); }
.hero h1 { width:min(100%,1000px); font-size:clamp(76px,7.4vw,110px); line-height:.96; text-wrap:balance; }
.hero-headline-line { display:block; }
.hero h1 em { color:#e6d8b7; font-weight:400; }
.hero h1 .hero-city { color:#e9c985; text-shadow:0 2px 18px #071a1459; }
.hero-tagline { max-width:640px; font-size:clamp(18px,1.75vw,23px); line-height:1.45; font-weight:500; letter-spacing:-.015em; color:var(--ivory); margin-top:22px; text-wrap:pretty; }
.hero-description { max-width:590px; font-size:15px; line-height:1.75; color:#faf8f3f2; margin-top:12px; text-wrap:pretty; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:27px; margin-top:24px; }
.hero-primary { min-height:52px; padding:15px 27px; background:var(--ivory); color:var(--forest); border-color:var(--ivory); font-size:14px; }
.hero-primary:hover { background:#fff; border-color:#fff; }
.hero-link { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:48px; padding:10px 0; border:0; border-bottom:1px solid #ffffff8a; background:transparent; color:var(--ivory); font-size:13px; font-weight:500; line-height:1.6; }
.hero-secondary:hover { border-bottom-color:#fff; }
.hero-link span { font-size:11px; line-height:1; }
.hero-bottom { position:relative; flex:none; width:min(calc(100% - var(--gutter)*2),var(--content)); min-height:88px; margin-inline:auto; display:flex; align-items:center; justify-content:space-between; gap:25px; padding:16px 0 25px; border-top:1px solid #ffffff45; }
#hero-scene-caption { max-width:420px; color:#f4f0e8ed; font-size:12px; line-height:1.6; letter-spacing:0; }
#hero-scene-caption span { display:block; color:#d6ddcbbc; font-size:12px; margin-top:3px; }
.hero-motion-toggle { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:44px; min-width:44px; padding:10px 13px; border:1px solid #ffffff65; background:#10251d2e; color:var(--ivory); font-size:12px; line-height:1.6; }
.hero-motion-toggle:hover { background:#10251d80; border-color:#ffffffa6; }
.motion-state-icon { display:inline-block; width:13px; font-size:13px; line-height:1; text-align:center; }
.play-icon { display:flex; align-items:center; justify-content:center; border:1px solid currentColor; border-radius:50%; width:54px; height:54px; flex:none; font-size:0; line-height:0; }
.play-icon::before { content:''; width:0; height:0; border-top:5px solid transparent; border-bottom:5px solid transparent; border-left:8px solid currentColor; margin-left:3px; }

.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:36px; margin-bottom:28px; }
.section-heading h2 { font-size:clamp(44px,4.25vw,66px); }
.section-heading .eyebrow { margin-bottom:13px; }
.section-heading>p { font-size:14px; line-height:1.8; max-width:290px; color:var(--muted); }
.films { padding-block:0 56px; }
.film-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; width:min(100%,1200px); margin-inline:auto; align-items:stretch; }
.film-card { display:flex; min-width:0; }
.film-card-trigger { display:flex; flex-direction:column; justify-content:flex-start; align-items:stretch; width:100%; height:auto; padding:0; border:0; text-align:left; background:transparent; color:var(--forest); }
.film-card-trigger:focus-visible { outline:2px solid var(--bronze); outline-offset:7px; }
.film-poster { display:block; flex:none; width:100%; aspect-ratio:3/4; position:relative; overflow:hidden; text-align:left; color:var(--paper); background:var(--forest); }
.film-poster picture,.film-poster img { width:100%; height:100%; }
.film-poster img { object-fit:cover; object-position:center; transition:transform .65s cubic-bezier(.2,.7,.2,1); }
.film-card-trigger:hover .film-poster img { transform:scale(1.025); }
.film-poster::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,#081a1360,transparent 27%,transparent 54%,#081a13bc); pointer-events:none; }
.film-number,.film-duration { position:absolute; top:20px; z-index:1; font-size:12px; line-height:1.5; letter-spacing:.07em; text-shadow:0 1px 7px #06170f; }
.film-number { left:23px; }
.film-duration { right:23px; }
.film-poster .play-icon { position:absolute; left:23px; bottom:24px; z-index:1; transition:background .25s,color .25s; }
.film-card-trigger:hover .play-icon { background:var(--paper); color:var(--forest); border-color:var(--paper); }
.poster-label { position:absolute; left:92px; right:18px; bottom:39px; z-index:1; font-size:12px; line-height:1.5; letter-spacing:.06em; }
.film-info { display:flex; flex-direction:column; flex:1; padding:19px 0 16px; border-bottom:1px solid var(--rule); }
.film-title { display:block; min-height:2.1em; font-family:var(--serif); font-size:clamp(26px,2.7vw,35px); font-weight:400; line-height:1.05; letter-spacing:-.025em; text-decoration-color:transparent; text-underline-offset:5px; }
.film-card-trigger:hover .film-title { text-decoration:underline; text-decoration-thickness:1px; }
.film-description { display:block; min-height:3.6em; font-size:13px; color:var(--muted); line-height:1.8; margin-top:12px; max-width:320px; }
.film-watch-status { display:block; margin-top:auto; padding-top:14px; color:#6c7a61; font-size:12px; line-height:1.7; }
.film-progress { display:block; height:2px; width:100%; background:#deded1; overflow:hidden; margin-top:12px; }
.film-progress>span { display:block; height:100%; width:0; background:var(--forest); transition:width .3s; }
.films-footnote { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding-top:16px; font-size:12px; color:var(--muted); }
.films-footnote>span { max-width:650px; line-height:1.8; }
.films-footnote .text-link { color:var(--forest); white-space:nowrap; }
.film-rail-controls { display:none; }

/* Wide photographs keep the connection between interior and Jerusalem intact. */
.residence { position:relative; display:grid; grid-template-columns:65% 35%; align-items:center; padding:0 var(--gutter) 0 0; margin-bottom:96px; }
.residence-image { grid-column:1; grid-row:1; width:100%; aspect-ratio:1.78; position:relative; overflow:hidden; margin:0; }
.residence-image picture,.residence-image img { width:100%; height:100%; }
.residence-image img { object-fit:cover; object-position:center; }
.residence-image::after { content:''; position:absolute; inset:78% 0 0; background:linear-gradient(transparent,#13291e80); pointer-events:none; }
.image-caption { position:absolute; left:var(--gutter); bottom:20px; max-width:70%; font-size:12px; line-height:1.6; letter-spacing:.06em; text-transform:uppercase; color:#fff; z-index:1; }
.residence-copy { grid-column:2; grid-row:1; background:var(--forest); color:var(--paper); padding:43px 42px; margin:88px 0 0 -38px; position:relative; z-index:1; min-width:0; box-shadow:0 20px 60px #11231e09; }
.residence-copy .eyebrow { color:#cbb892; }
.residence-copy h2 { font-size:clamp(41px,3.8vw,61px); margin-bottom:25px; }
.residence-copy h2 em { color:#d4c2a0; }
.residence-copy p { font-size:14px; line-height:1.9; color:#e7e5dade; }
.detail-list { display:flex; flex-direction:column; margin-top:25px; }
.detail-list>span { border-top:1px solid #ffffff30; font-size:12px; padding:11px 0; color:#e4e9d9e3; }
.detail-list>span:last-child { border-bottom:1px solid #ffffff30; }
.light-link { display:flex; justify-content:space-between; margin-top:23px; color:var(--paper); }

.gallery-section { padding-bottom:64px; }
.gallery-intro { max-width:310px; font-size:14px; line-height:1.9; color:var(--muted); }
.gallery-intro .text-link { margin-top:9px; color:var(--forest); }
.photo-count-label { display:block; font-size:12px; line-height:1.7; letter-spacing:.06em; margin-top:19px; color:#6b745e; }
.gallery-filters { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:18px; }
.gallery-filters button { min-height:44px; padding:10px 19px; border:1px solid #adb7a7; font-size:12px; line-height:1.4; color:var(--forest); transition:background .2s,color .2s; }
.gallery-filters button[aria-pressed=true],.gallery-filters button.active { background:var(--forest); border-color:var(--forest); color:var(--paper); }
.gallery-filters button:hover { border-color:var(--forest); }
.gallery-photo { border:0; padding:0; width:100%; display:block; position:relative; aspect-ratio:2.1; overflow:hidden; background:#e7e5da; }
.gallery-photo picture,.gallery-photo img { width:100%; height:100%; }
.gallery-photo img { object-fit:contain; transition:transform .7s; }
.gallery-photo:hover img { transform:scale(1.012); }
.gallery-expand { position:absolute; bottom:20px; right:20px; background:#faf8f3ee; min-width:44px; min-height:44px; padding:9px 14px; display:flex; align-items:center; justify-content:center; gap:10px; color:var(--forest); font-size:12px; line-height:1.6; }
.gallery-expand>span { font-size:24px; line-height:1; }
.gallery-toolbar { display:flex; align-items:flex-start; justify-content:space-between; gap:32px; margin-top:22px; padding-bottom:22px; border-bottom:1px solid var(--rule); }
.gallery-toolbar>div:first-child { min-width:0; }
.photo-category { display:block; color:#6b745e; font-size:11px; line-height:1.6; letter-spacing:.1em; text-transform:uppercase; margin-bottom:7px; }
.photo-category span { display:inline-block; margin-left:19px; color:#7b856f; font-size:11px; font-variant-numeric:tabular-nums; }
#gallery-caption { font-family:var(--serif); font-size:34px; font-weight:400; line-height:1.1; letter-spacing:-.025em; }
#gallery-description { max-width:750px; font-size:13px; line-height:1.8; color:var(--muted); margin-top:10px; }
#gallery-credit { display:inline-flex; align-items:center; min-height:44px; font-size:12px; line-height:1.6; color:var(--muted); text-decoration:underline; text-underline-offset:3px; padding-block:8px; }
.gallery-counter { display:block; font-size:12px; color:var(--muted); letter-spacing:.07em; white-space:nowrap; }
.gallery-arrows { display:flex; align-items:center; flex:none; gap:9px; }
.gallery-arrows button { display:flex; align-items:center; justify-content:center; width:46px; height:46px; padding:0; border:1px solid #aeb9a5; border-radius:50%; color:var(--forest); font-size:22px; line-height:1; transition:background .2s,color .2s; }
.gallery-arrows button:hover { background:var(--forest); color:var(--paper); }
.gallery-thumbs { display:flex; gap:12px; margin-top:17px; overflow-x:auto; scrollbar-width:thin; padding:4px 2px 13px; scroll-snap-type:x proximity; }
.gallery-thumbs>button { padding:0; border:2px solid transparent; width:112px; flex:0 0 112px; height:76px; opacity:.6; position:relative; transition:opacity .2s,border-color .2s; scroll-snap-align:start; }
.gallery-thumbs>button img,.gallery-thumbs>button picture { width:100%; height:100%; object-fit:cover; }
.gallery-thumbs>button:hover,.gallery-thumbs>button.active,.gallery-thumbs>button[aria-pressed=true] { opacity:1; }
.gallery-thumbs>button.active,.gallery-thumbs>button[aria-pressed=true] { border-color:var(--forest); outline:1px solid var(--paper); outline-offset:-4px; }
.gallery-note { font-size:12px; line-height:1.8; color:var(--muted); margin-top:13px; max-width:850px; }
.gallery-mosaic { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; height:clamp(370px,40vw,560px); }
.gallery-mosaic.has-companions { grid-template-columns:minmax(0,1.85fr) minmax(0,1fr); }
.gallery-mosaic .gallery-photo { aspect-ratio:auto; min-height:0; height:100%; }
.gallery-mosaic .gallery-photo img { object-fit:cover; }
.gallery-companions { display:grid; grid-template-rows:repeat(2,minmax(0,1fr)); gap:14px; min-width:0; }
.gallery-companion { display:block; position:relative; overflow:hidden; min-width:0; border:0; padding:0; text-align:left; color:var(--ivory); background:var(--forest); }
.gallery-companion picture,.gallery-companion img { display:block; width:100%; height:100%; }
.gallery-companion img { object-fit:cover; transition:transform .6s ease; }
.gallery-companion:hover img { transform:scale(1.025); }
.gallery-companion-caption { position:absolute; inset:auto 0 0; display:grid; gap:5px; padding:34px 19px 17px; background:linear-gradient(transparent,#071a13ce); }
.gallery-companion-caption>span:first-child { font-size:9px; letter-spacing:.13em; line-height:1.6; }
.gallery-companion-caption>span:last-child { font-family:var(--serif); font-size:25px; line-height:1.05; }
.gallery-load-status:empty { display:none; }
.gallery-load-status { padding-block:10px; font-size:12px; line-height:1.7; color:var(--forest); }
@media(max-width:900px) { .gallery-companion-caption { padding-inline:14px; } .gallery-companion-caption>span:last-child { font-size:23px; } }
@media(max-width:700px) {
  .gallery-mosaic { height:auto; }
  .gallery-mosaic.has-companions { grid-template-columns:1fr; gap:10px; }
  .gallery-mosaic .gallery-photo { height:auto; aspect-ratio:1.45; }
  .gallery-companions { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto; gap:10px; }
  .gallery-companion { aspect-ratio:1.2; }
  .gallery-companion-caption { padding:27px 11px 12px; }
  .gallery-companion-caption>span:first-child { font-size:8px; }
  .gallery-companion-caption>span:last-child { font-size:23px; }
}
@media(prefers-reduced-motion:reduce) { .gallery-companion img { transition:none; } .gallery-companion:hover img { transform:none; } }

.neighborhood { display:grid; grid-template-columns:1fr 1fr; grid-template-areas:'photo heading' 'photo choices' 'photo details'; column-gap:7.5%; padding:77px var(--gutter); align-items:start; background:#e7e5da; border-block:1px solid #d7d8cb; }
.neighborhood-image { grid-area:photo; position:relative; min-width:0; width:100%; margin:0; align-self:center; }
.place-photo-stage { position:relative; height:650px; overflow:hidden; background:#d5d8ca; }
.neighborhood-image picture,.neighborhood-image img { display:block; width:100%; height:100%; }
.neighborhood-image img { object-fit:cover; object-position:center; }
.place-photo-stage::after { content:''; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,#10251de0); pointer-events:none; }
.neighborhood-image-caption { position:absolute; bottom:25px; left:27px; right:25px; display:grid; gap:9px; font-size:13px; line-height:1.6; color:#fff; z-index:1; }
.place-photo-number { font-size:11px; letter-spacing:.14em; }
.neighborhood-image-caption strong { font-family:var(--serif); font-size:36px; font-weight:400; line-height:1.05; }
.place-photo-credit { margin:10px 0 0; min-height:34px; font-size:11px; line-height:1.55; color:#53644a; }
.place-photo-credit a { text-underline-offset:3px; text-decoration-thickness:1px; }
.place-photo-message { position:absolute; inset:0; z-index:2; padding:25px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:15px; text-align:center; color:var(--forest); background:#e7e5dae8; }
.place-photo-message[hidden] { display:none; }
.place-photo-message p { max-width:250px; line-height:1.6; }
.place-photo-message .text-link { font-size:13px; }
.neighborhood-image.is-loading .neighborhood-image-caption,.neighborhood-image.is-error .neighborhood-image-caption { visibility:hidden; }
.neighborhood-image.is-loading .place-photo-credit,.neighborhood-image.is-error .place-photo-credit { visibility:hidden; }
.place-photo-stage>picture { animation:place-photo-in .28s ease; }
@keyframes place-photo-in { from { opacity:.55; } to { opacity:1; } }
@media(prefers-reduced-motion:reduce) { .place-photo-stage>picture { animation:none; } }
.neighborhood-heading { grid-area:heading; max-width:570px; }
.neighborhood-heading h2 { font-size:clamp(46px,4.6vw,70px); margin-bottom:25px; }
.neighborhood-heading>p:not(.eyebrow) { max-width:430px; font-size:14px; line-height:1.9; }
.neighborhood-heading>.place-instruction { margin-top:12px; font-size:12px; color:#53644a; }
.places { grid-area:choices; margin-top:25px; border-top:1px solid #b9c1b0; }
.place-tab { display:flex; align-items:center; gap:16px; width:100%; min-height:64px; padding:17px 0; border:0; border-bottom:1px solid #b9c1b0; text-align:left; font-family:var(--serif); font-size:28px; line-height:1.1; color:#53644a; transition:color .2s,padding .2s; }
.place-tab>span:first-child { font-family:var(--sans); font-size:11px; color:#53644a; width:23px; flex:none; }
.place-tab>span:last-child:not(:first-child) { margin-left:auto; font-family:var(--sans); font-size:20px; color:#849575; }
.place-tab.active,.place-tab:hover { color:var(--forest); padding-left:7px; }
.place-tab.active { background:#d5d8ca66; }
.place-tab.active::after { content:''; width:6px; height:6px; flex:none; margin-left:auto; margin-right:13px; border-radius:50%; background:#9c814b; }
.place-tab.active>span:last-child { color:var(--forest); }
.place-panel { grid-area:details; padding-top:19px; min-height:155px; font-size:13px; color:#53644a; line-height:1.9; }
.place-panel p { min-height:71px; }
.place-panel .text-link { margin-top:9px; }
.place-source { margin-left:22px; }

.contact.section-wrap { width:100%; max-width:none; margin:0; padding:94px max(var(--gutter),calc((100vw - var(--content))/2)); display:grid; grid-template-columns:.9fr 1.1fr; gap:9%; align-items:start; background:var(--dark); color:var(--paper); }
.contact-copy { padding-top:10px; }
.contact-copy .eyebrow { color:#c1ad84; }
.contact-copy h2 { font-size:clamp(50px,4.9vw,76px); margin-bottom:27px; }
.contact-copy>p { font-size:14px; line-height:1.9; max-width:360px; color:#c8d0c0; }
.contact-email { display:flex; align-items:center; justify-content:space-between; min-height:44px; font-size:15px; margin-top:32px; padding-block:10px; border-bottom:1px solid #ffffff50; max-width:340px; }
.contact-email span { font-size:22px; }
.contact-address { display:block; font-size:13px; color:#c0c7ba; margin-top:11px; overflow-wrap:anywhere; }
.contact-small { font-size:12px; line-height:1.9; color:#aab8a6; margin-top:29px; }
.inquiry-form { min-width:0; background:var(--paper); color:var(--forest); padding:40px; }
.inquiry-form h3 { font-size:37px; margin-bottom:12px; }
.form-intro { font-size:13px; line-height:1.8; color:var(--muted); margin-bottom:26px; max-width:410px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:21px; }
.field { margin-bottom:21px; }
.field label { display:block; font-size:12px; font-weight:500; margin-bottom:7px; }
.field label span { color:#757d6f; font-weight:400; }
.field input,.field textarea,.field select { width:100%; min-width:0; min-height:44px; appearance:none; -webkit-appearance:none; border:0; border-bottom:1px solid #adb9a6; padding:9px 0; background:transparent; color:var(--forest); font-size:16px; outline-offset:3px; border-radius:0; line-height:1.6; }
.field select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 10 8'%3E%3Cpath d='m1 2 4 4 4-4' fill='none' stroke='%23152c26'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px; padding-right:21px; }
.field input::placeholder,.field textarea::placeholder { color:#7f8a77; }
.field textarea { resize:vertical; min-height:100px; }
.field input:focus,.field textarea:focus,.field select:focus { border-bottom-color:var(--forest); }
.form-note { font-size:12px; line-height:1.8; color:#68775f; margin-top:17px; }
.inquiry-form .button { margin-top:5px; }
.draft-ready { padding-top:22px; border-top:1px solid var(--rule); margin-top:25px; font-size:13px; line-height:1.8; }
.draft-ready .button { margin-block:16px 22px; }
.draft-ready summary { min-height:44px; display:list-item; padding-block:11px; font-size:13px; cursor:pointer; }
.draft-ready textarea { font:13px/1.8 var(--sans); resize:vertical; border:1px solid #c5cbbd; background:#e7e9dd; color:var(--forest); width:100%; padding:13px; margin-top:12px; }

.site-footer.section-wrap { width:100%; max-width:none; padding:42px max(var(--gutter),calc((100vw - var(--content))/2)) 27px; background:var(--paper); color:var(--forest); }
.footer-top { display:flex; align-items:flex-start; justify-content:space-between; gap:35px; }
.footer-brand { font-family:var(--serif); font-size:31px; letter-spacing:.04em; line-height:1; }
.footer-brand span { color:var(--bronze); }
.footer-brand small { display:block; font-family:var(--sans); font-size:10px; letter-spacing:.17em; margin-top:10px; text-transform:uppercase; }
.footer-editorial { margin-left:auto; margin-right:35px; }
.footer-editorial .eyebrow { font-size:10px; margin-bottom:10px; color:#738267; }
.footer-editorial p { font-size:13px; color:#5c6b52; }
.footer-top>.text-link { margin-top:0; padding-top:0; }
.footer-bottom { margin-top:31px; border-top:1px solid var(--rule); padding-top:20px; display:flex; justify-content:space-between; gap:30px; color:#67785b; font-size:12px; line-height:1.8; }
.footer-bottom>p { max-width:640px; }
.footer-bottom>div { display:flex; gap:22px; flex:none; align-items:flex-start; }
.footer-bottom>div a { display:inline-flex; align-items:center; min-height:44px; font-size:12px; white-space:nowrap; }
.mobile-inquire { display:none; }

/* Native dialogs: accessible controls remain visible while the media breathes. */
dialog { border:0; padding:0; max-width:calc(100vw - 32px); color:var(--paper); background:var(--dark); }
dialog:not([open]) { display:none; }
dialog::backdrop { background:#08140fe8; backdrop-filter:blur(7px); }
.film-dialog { width:min(1130px,calc(100vw - 42px)); max-height:calc(100dvh - 30px); overflow:auto; }
.dialog-heading { position:sticky; top:0; z-index:5; display:flex; align-items:center; justify-content:space-between; gap:25px; padding:20px 25px; border-bottom:1px solid #ffffff30; background:var(--dark); }
.dialog-heading .eyebrow { margin:0 0 7px; font-size:11px; color:#c7b38b; }
.dialog-heading h2 { font-size:33px; line-height:1.06; letter-spacing:-.025em; }
.dialog-close { display:flex; align-items:center; justify-content:center; width:44px; height:44px; flex:none; padding:0; border:1px solid #ffffff70; background:transparent; color:white; font-size:23px; line-height:1; }
.dialog-close:hover { background:#ffffff15; }
.film-stage { display:grid; grid-template-columns:minmax(0,1fr) 340px; align-items:stretch; background:#050e09; }
.video-wrap { min-width:0; position:relative; display:flex; align-items:center; justify-content:center; background:#050c08; }
#film-video { width:auto; max-width:100%; height:min(66dvh,740px); background:#050c08; object-fit:contain; margin:auto; }
#film-video::cue { font-family:var(--sans); color:#fff; background:#0b1a14ed; }
.film-guide { min-width:0; max-height:min(66dvh,740px); overflow:auto; border-left:1px solid #ffffff24; background:#1b3027; font-size:13px; line-height:1.8; }
.film-guide>summary { padding:17px 22px; min-height:58px; cursor:pointer; font-size:15px; font-weight:500; border-bottom:1px solid #ffffff20; color:#e7d9be; }
.film-guide>summary>span { float:right; font-size:20px; line-height:1.3; }
.film-guide[open]>summary>span { transform:rotate(45deg); }
.film-guide>*:not(summary) { margin-inline:22px; }
.film-guide p { font-size:13px; line-height:1.8; color:#d4decc; margin-block:18px; }
.film-guide h3 { font-size:26px; line-height:1.12; margin-top:21px; }
.film-guide h4 { font:500 11px/1.5 var(--sans); text-transform:uppercase; letter-spacing:.1em; color:#c7b38b; margin-block:22px 9px; }
.film-guide ul,.film-guide ol { padding-left:0; list-style:none; }
#film-chapters { display:flex; flex-direction:column; gap:0; margin-block:14px 22px; list-style:none; padding:0; }
#film-chapters button { width:100%; display:flex; align-items:baseline; gap:13px; text-align:left; padding:12px 0; border:0; border-bottom:1px solid #ffffff25; font-size:13px; line-height:1.7; color:var(--paper); }
#film-chapters button:hover,#film-chapters button[aria-current=true] { color:#e8ce9d; }
#film-chapters button time,#film-chapters button>span:first-child { font-size:11px; color:#c7b38b; font-variant-numeric:tabular-nums; flex:none; }
#film-transcript { border-top:1px solid #ffffff25; margin-block:18px 22px; }
#film-transcript>summary { min-height:48px; padding-block:12px; cursor:pointer; font-size:13px; color:#e7d9be; }
#film-transcript button { width:100%; display:block; text-align:left; padding:11px 0; border:0; border-bottom:1px solid #ffffff15; font-size:13px; line-height:1.8; color:#d4decc; }
#film-transcript button time,#film-transcript button>span:first-child { color:#c7b38b; font-size:11px; font-variant-numeric:tabular-nums; margin-right:10px; }
#film-transcript button:hover { color:#fff; }
#film-transcript button.active { background:#ffffff0a; color:#fff; border-left:2px solid #c7b38b; padding-inline:10px; }
.film-tools { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:13px 20px; border-top:1px solid #ffffff25; background:var(--dark); }
.film-tools button,.film-tools a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:9px 15px; border:1px solid #ffffff40; color:var(--paper); font-size:12px; line-height:1.5; }
.film-tools button:hover,.film-tools a:hover,.film-tools button[aria-pressed=true] { background:#ffffff12; border-color:#c7b38b; }
.film-tools p,.film-tools .film-tool-status { font-size:12px; line-height:1.6; color:#c4d0b9; }
.film-guide .guide-eyebrow { font-size:10px; line-height:1.6; letter-spacing:.11em; color:#c7b38b; margin-top:23px; margin-bottom:8px; }
.film-guide .film-tools { display:grid; grid-template-columns:1fr; gap:8px; padding:15px 0 0; background:none; }
.film-guide .film-tools button { justify-content:flex-start; gap:11px; text-align:left; padding:10px 13px; }
.film-quality-control { display:grid; gap:6px; min-width:0; margin-top:16px; color:#c7b38b; font-size:11px; line-height:1.6; }
.film-quality-control label { display:block; color:#e7d9be; font-size:11px; line-height:1.6; }
.film-guide #film-quality-status { margin:0; color:#c4d0b9; font-size:11px; line-height:1.7; }
.film-tools select,#film-quality { width:100%; min-height:44px; padding:9px 12px; border:1px solid #ffffff40; border-radius:0; color:var(--paper); background:var(--dark); font:12px/1.6 var(--sans); }
.film-tools select:hover,#film-quality:hover { border-color:#c7b38b; }
.film-tools select option,#film-quality option { color:var(--paper); background:var(--dark); }
.film-guide .film-tool-status { font-size:12px; line-height:1.8; color:#d1d9c5; margin-block:12px; }
.film-guide .film-context { font-size:12px; line-height:1.8; color:#acbda2; margin-bottom:23px; }
.film-ended { position:absolute; inset:0; z-index:3; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:19px; padding:35px; text-align:center; background:#0b2019e8; }
.film-ended h3 { font-size:38px; line-height:1.1; }
.film-ended p { max-width:330px; font-size:14px; line-height:1.8; color:#d3dec9; }
.film-ended button,.film-retry button { min-height:46px; padding:11px 20px; border:1px solid #d5c4a1; color:var(--paper); font-size:13px; }
.film-retry { position:absolute; inset:0; z-index:4; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; padding:30px; text-align:center; background:#0b2019ed; font-size:14px; line-height:1.8; }
.film-dialog-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:14px 25px; border-top:1px solid #ffffff25; background:var(--dark); }
.film-dialog-footer .text-link { min-height:44px; border-bottom:0; color:var(--paper); font-size:12px; }
.film-inquire { display:inline-flex; align-items:center; min-height:44px; font-size:12px; line-height:1.5; color:#d0ddc3; text-decoration:underline; text-underline-offset:5px; }

.image-dialog { width:min(1350px,calc(100vw - 38px)); max-height:calc(100dvh - 26px); overflow:auto; }
.lightbox-header { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:18px 24px; border-bottom:1px solid #ffffff25; }
.lightbox-header h2,.lightbox-header #image-dialog-caption { font-family:var(--serif); font-size:31px; line-height:1.1; letter-spacing:-.02em; }
.lightbox-category { display:block; font-size:11px; line-height:1.6; color:#c7b38b; letter-spacing:.1em; text-transform:uppercase; margin-bottom:6px; }
.lightbox-header .photo-category { color:#c7b38b; margin-bottom:7px; }
.lightbox-header p,.lightbox-header .lightbox-count { font-size:12px; color:#c4d0b9; }
.lightbox-media { display:flex; align-items:center; justify-content:center; position:relative; height:min(68dvh,850px); overflow:auto; background:#07130c; }
.lightbox-media img,#lightbox-image { width:100%; height:100%; object-fit:contain; margin:auto; }
.lightbox-media.zoomed,.lightbox-media.is-zoomed { display:block; cursor:zoom-out; }
.lightbox-media.zoomed img,.lightbox-media.is-zoomed img { width:180%; max-width:none; height:auto; min-height:100%; object-fit:contain; }
.lightbox-toolbar { padding:13px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid #ffffff25; }
.lightbox-toolbar button { min-height:44px; min-width:44px; padding:9px 15px; color:var(--paper); border:1px solid #ffffff60; font-size:13px; line-height:1.5; flex:none; }
.lightbox-toolbar button:hover,.lightbox-toolbar button[aria-pressed=true] { background:#ffffff15; border-color:#c7b38b; }
.lightbox-toolbar p,.lightbox-toolbar span { font-size:12px; line-height:1.7; color:#c8d2bd; text-align:center; }
.lightbox-description { padding:0 24px 21px; font-size:13px; line-height:1.8; color:#c5d2ba; }
.motion-ready .reveal { opacity:0; transform:translateY(16px); transition:opacity .65s ease,transform .65s cubic-bezier(.2,.8,.2,1); }
.motion-ready .reveal.is-visible { opacity:1; transform:none; }
.motion-ready .reveal:nth-child(2) { transition-delay:70ms; }
.motion-ready .reveal:nth-child(3) { transition-delay:140ms; }

@media (max-width:1100px) {
  .main-nav { gap:23px; }
  .main-nav .nav-inquire { margin-left:0; gap:20px; }
  #hero-scene-caption { max-width:290px; }
  .film-grid { gap:24px; }
  .poster-label { font-size:12px; left:83px; bottom:36px; }
  .film-poster .play-icon { width:48px; height:48px; left:20px; }
  .residence { grid-template-columns:63% 37%; }
  .residence-copy { padding:34px 29px; margin-left:-28px; }
  .residence-copy h2 { font-size:47px; }
  .residence-copy p { font-size:13px; }
  .neighborhood { gap:6%; }
  .place-photo-stage { height:630px; }
  .contact.section-wrap { gap:6%; }
  .inquiry-form { padding:33px; }
  .film-stage { grid-template-columns:minmax(0,1fr) 310px; }
  .footer-bottom { flex-wrap:wrap; gap:12px; }
}
@media (max-width:800px) {
  :root { --gutter:28px; }
  .site-header { min-height:94px; padding-block:22px; }
  .brand-name { font-size:29px; }
  .brand-caption { font-size:8px; }
  .main-nav { gap:20px; font-size:11px; }
  .main-nav>a:nth-child(3) { display:none; }
  .main-nav .nav-inquire { gap:14px; padding-inline:15px; }
  .hero { min-height:clamp(700px,calc(90svh - var(--publisher-height)),820px); }
  .hero-content { justify-content:center; padding:138px 0 30px; }
  .hero h1 { font-size:clamp(62px,9.8vw,78px); }
  .hero-tagline { font-size:18px; }
  .hero-bottom { align-items:center; gap:18px; }
  #hero-scene-caption { max-width:none; }
  .film-number,.film-duration { top:16px; font-size:12px; }
  .film-number { left:15px; }
  .film-duration { right:15px; }
  .film-poster .play-icon { left:15px; bottom:18px; width:44px; height:44px; }
  .poster-label { font-size:12px; left:71px; right:10px; bottom:27px; }
  .film-description { font-size:12px; }
  .residence { display:block; padding-right:var(--gutter); margin-bottom:75px; }
  .residence-image { aspect-ratio:1.8; }
  .residence-copy { width:82%; margin:-40px 0 0 auto; padding:36px; }
  .residence-copy h2 { font-size:55px; }
  .residence-copy p { font-size:14px; }
  .image-caption { bottom:17px; max-width:65%; }
  .gallery-section { padding-bottom:58px; }
  .gallery-intro { max-width:270px; font-size:13px; }
  .gallery-photo { aspect-ratio:1.7; }
  #gallery-caption { font-size:31px; }
  .neighborhood { grid-template-columns:1fr; grid-template-areas:'heading' 'choices' 'photo' 'details'; gap:24px; padding-block:64px; }
  .place-photo-stage { height:auto; aspect-ratio:4/3; }
  .neighborhood-heading { max-width:650px; }
  .neighborhood-heading h2 { font-size:60px; }
  .neighborhood-heading>p:not(.eyebrow) { max-width:560px; }
  .places { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:0; border-top:0; }
  .place-tab { position:relative; min-width:0; min-height:76px; border:1px solid #b9c1b0; padding:13px 15px; font-size:25px; }
  .place-tab.active,.place-tab:hover { padding-left:15px; border-color:#9c814b; }
  .place-tab.active::after { position:absolute; top:8px; right:8px; margin:0; }
  .place-panel { min-height:0; max-width:600px; padding-top:0; }
  .place-panel p { min-height:0; }
  .contact.section-wrap { grid-template-columns:1fr; gap:38px; padding-block:66px; }
  .contact-copy h2 { font-size:64px; }
  .contact-copy>p { max-width:500px; }
  .contact-email { max-width:400px; }
  .footer-editorial { margin-right:0; }
  .film-stage { grid-template-columns:minmax(0,1fr) 285px; }
  .film-guide>*:not(summary) { margin-inline:17px; }
  .film-guide>summary { padding-inline:17px; }
  .film-dialog { width:calc(100vw - 28px); }
  .dialog-heading h2 { font-size:30px; }
  .film-tools { padding-inline:17px; }
}
@media (max-width:650px) {
  html { scroll-padding-top:131px; }
  .film-stage { display:block; }
  #film-video { height:min(63dvh,670px); }
  .film-guide { max-height:none; border-left:0; border-top:1px solid #ffffff25; }
  .film-guide>summary { min-height:53px; padding:15px 18px; }
  .film-guide>*:not(summary) { margin-inline:19px; }
  .film-guide[open] { max-height:65dvh; }
  .film-guide p { font-size:13px; }
  .film-tools { padding:12px 16px; }
  .film-tools button,.film-tools a { flex:1 1 auto; padding-inline:11px; }
  .image-dialog { width:calc(100vw - 20px); max-width:calc(100vw - 20px); }
  .lightbox-media { height:min(64dvh,720px); }
  .lightbox-header { padding:15px 17px; gap:16px; }
  .lightbox-header h2,.lightbox-header #image-dialog-caption { font-size:27px; }
  .lightbox-toolbar { padding:12px 16px; gap:10px; flex-wrap:wrap; }
}
@media (max-width:560px) {
  :root { --gutter:22px; }
  body { font-size:14px; }
  .site-header { padding:18px var(--gutter) 0; min-height:124px; flex-wrap:wrap; gap:0; }
  .brand-name { font-size:29px; }
  .brand-caption { font-size:8px; letter-spacing:.14em; margin-top:7px; }
  .main-nav { width:100%; flex-basis:100%; display:flex; justify-content:space-between; gap:12px; margin-top:14px; border-top:1px solid #ffffff35; font-size:11px; }
  .main-nav>a { min-height:44px; padding-block:10px; }
  .main-nav>a:nth-child(3) { display:inline-flex; }
  .main-nav .nav-inquire { border:0; margin-left:auto; padding:10px 0; gap:10px; font-size:11px; }
  .nav-inquire span { font-size:18px; }
  .site-header.scrolled { padding-top:13px; padding-bottom:0; min-height:114px; }
  .scrolled .main-nav { border-top-color:var(--rule); margin-top:10px; }
  .hero { min-height:calc(100svh - var(--inquire-bar-height) - var(--publisher-height)); }
  .hero-content { padding-top:154px; padding-bottom:28px; justify-content:flex-start; }
  .hero h1 { font-size:clamp(52px,15.4vw,76px); line-height:.94; }
  .hero h1 em { color:#eadbb9; }
  .hero .eyebrow { font-size:10px; letter-spacing:.12em; margin-bottom:18px; }
  .hero-tagline { font-size:18px; line-height:1.45; margin-top:18px; }
  .hero-description { font-size:14px; line-height:1.7; margin-top:12px; }
  .hero-link { font-size:13px; }
  .hero::before { background:linear-gradient(90deg,#0b211abf 0%,#10251d7a 48%,#10251d20); }
  .hero::after { background:linear-gradient(180deg,#07140d38,transparent 24%,transparent 51%,#091b13cc); }
  .hero-actions { gap:12px 22px; margin-top:22px; }
  .hero-actions .button { min-height:51px; padding-inline:21px; font-size:13px; }
  .hero-actions .hero-link { margin:0; }
  .hero-bottom { padding:16px 0 22px; gap:16px; }
  .hero-bottom>span { font-size:10px; }
  #hero-scene-caption { font-size:12px; line-height:1.6; max-width:360px; }
  .section-heading { display:block; margin-bottom:23px; }
  .section-heading h2 { font-size:47px; }
  .section-heading>p { font-size:14px; margin-top:16px; max-width:340px; }
  .section-heading .eyebrow { margin-bottom:12px; }
  .films { padding-bottom:44px; }
  .film-grid { display:flex; width:auto; max-width:none; align-items:stretch; gap:18px; margin-left:0; margin-right:calc(var(--gutter)*-1); overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; padding:0 22px 15px 0; }
  .film-card { flex:0 0 82%; min-width:0; scroll-snap-align:start; }
  .film-card-trigger:focus-visible { outline-offset:-3px; }

  .film-poster { aspect-ratio:3/4; }
  .film-number,.film-duration { top:21px; font-size:12px; }
  .film-number { left:20px; }
  .film-duration { right:20px; }
  .film-poster .play-icon { width:50px; height:50px; left:20px; bottom:23px; }
  .poster-label { font-size:12px; left:85px; bottom:37px; }
  .film-info { padding-top:18px; }
  .film-title { font-size:33px; }
  .film-description { font-size:13px; max-width:none; }
  .film-rail-controls { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:9px; }
  .film-rail-controls button { width:44px; height:44px; padding:0; border:1px solid #aeb9a5; border-radius:50%; font-size:21px; }
  .film-rail-controls span,.film-rail-controls p { font-size:12px; color:var(--muted); }
  .film-rail-controls .rail-hint { margin-right:auto; margin-left:7px; color:#79866e; }
  .films-footnote { display:block; padding-top:17px; font-size:12px; }
  .films-footnote .text-link { margin-top:9px; }
  .residence { padding:0; margin-bottom:65px; }
  .residence-image { aspect-ratio:4/3; }
  .residence-image img { object-position:57% center; }
  .image-caption { left:22px; bottom:17px; font-size:12px; line-height:1.6; letter-spacing:.04em; max-width:78%; }
  .residence-copy { width:calc(100% - 44px); margin:0 auto; padding:34px 27px; }
  .residence-copy h2 { font-size:47px; margin-bottom:23px; }
  .residence-copy p { font-size:14px; }
  .detail-list { margin-top:23px; }
  .detail-list>span { font-size:12px; padding-block:12px; }
  .light-link { font-size:12px; margin-top:21px; }
  .gallery-intro { margin-top:23px; max-width:360px; font-size:14px; }
  .gallery-intro .text-link { font-size:12px; margin-top:8px; }
  .gallery-section { padding-bottom:48px; }
  .gallery-filters { gap:8px; margin-bottom:18px; }
  .gallery-filters button { flex:1; padding-inline:11px; font-size:12px; }
  .gallery-photo { aspect-ratio:1.45; }
  .gallery-expand { right:14px; bottom:14px; }
  .gallery-toolbar { position:relative; display:block; margin-top:19px; padding-bottom:21px; }
  .photo-category { font-size:11px; min-height:23px; }
  #gallery-caption { font-size:31px; }
  #gallery-description { margin-top:11px; font-size:13px; }
  #gallery-credit { font-size:12px; }
  .gallery-arrows { margin-top:16px; justify-content:flex-end; }
  .gallery-counter { margin-right:auto; }
  .gallery-arrows button { width:44px; height:44px; }
  .gallery-thumbs { gap:9px; margin-top:14px; padding-bottom:10px; }
  .gallery-thumbs>button { width:90px; flex-basis:90px; height:63px; }
  .gallery-note { font-size:12px; line-height:1.8; margin-top:11px; }
  .neighborhood { padding:55px 22px; gap:21px; }
  .neighborhood-image-caption { font-size:12px; left:20px; right:20px; bottom:20px; }
  .neighborhood-heading h2 { font-size:49px; }
  .neighborhood-heading>p:not(.eyebrow) { font-size:14px; }
  .neighborhood-heading>.place-instruction { font-size:12px; }
  .place-tab { font-size:21px; gap:9px; padding:13px 10px; }
  .place-tab.active,.place-tab:hover { padding-left:10px; }
  .place-tab>span:first-child { font-size:10px; width:17px; }
  .place-tab>span:last-child:not(:first-child) { font-size:18px; }
  .place-panel { font-size:13px; padding-top:0; }
  .place-panel .text-link { font-size:12px; margin-top:9px; }
  .place-source { margin-left:15px; }
  .contact.section-wrap { padding:56px 22px 60px; gap:31px; }
  .contact-copy h2 { font-size:56px; max-width:370px; margin-bottom:24px; }
  .contact-copy>p { font-size:14px; }
  .contact-email { font-size:14px; margin-top:25px; max-width:none; }
  .contact-address { font-size:13px; margin-top:10px; }
  .contact-small { font-size:12px; margin-top:22px; }
  .inquiry-form { padding:29px 24px; }
  .inquiry-form h3 { font-size:34px; }
  .form-intro { font-size:13px; margin-bottom:24px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .field { margin-bottom:22px; }
  .field label { font-size:12px; }
  .form-note { font-size:12px; }
  .inquiry-form .button { width:100%; }
  .draft-ready { font-size:13px; margin-top:23px; }
  .draft-ready summary,.draft-ready textarea { font-size:13px; }
  .site-footer.section-wrap { padding:35px 22px 96px; }
  .footer-top { display:grid; grid-template-columns:1fr 1fr; gap:29px 16px; }
  .footer-brand { font-size:28px; }
  .footer-editorial { margin:0; text-align:right; padding-top:3px; }
  .footer-editorial .eyebrow { font-size:10px; margin-bottom:8px; }
  .footer-editorial p { font-size:12px; }
  .footer-top>.text-link { grid-column:1/-1; width:max-content; font-size:12px; }
  .footer-bottom { margin-top:25px; padding-top:19px; display:block; font-size:12px; }
  .footer-bottom>div { margin-top:14px; gap:19px; flex-wrap:wrap; }
  .footer-bottom>div a { font-size:12px; }
  .mobile-inquire { display:flex; align-items:center; gap:15px; justify-content:space-between; position:fixed; bottom:0; left:0; right:0; z-index:25; min-height:var(--inquire-bar-height); padding:14px 22px calc(14px + env(safe-area-inset-bottom)); background:var(--forest); color:var(--paper); border-top:1px solid #ffffff40; font-size:13px; box-shadow:0 -3px 20px #11231e0c; }
  .mobile-inquire>span:first-child { font-size:10px; letter-spacing:.09em; color:#c8d0bd; margin-right:auto; }
  .mobile-inquire>span:last-child:not(:first-child) { font-size:22px; line-height:1; }
  .film-dialog { width:calc(100vw - 18px); max-width:calc(100vw - 18px); max-height:calc(100dvh - 18px); }
  .dialog-heading { padding:15px 16px; gap:14px; }
  .dialog-heading .eyebrow { font-size:10px; margin-bottom:7px; }
  .dialog-heading h2 { font-size:29px; }
  .film-dialog-footer { padding:10px 14px; gap:10px; }
  .film-dialog-footer .text-link,.film-inquire { font-size:12px; line-height:1.6; text-align:center; }
  .film-ended { padding:25px; }
  .film-ended h3 { font-size:35px; }
  .lightbox-header h2,.lightbox-header #image-dialog-caption { font-size:26px; }
  .lightbox-category { font-size:10px; }
  .lightbox-media { height:min(61dvh,680px); }
  .lightbox-toolbar button { min-width:44px; font-size:12px; padding-inline:11px; }
  .lightbox-toolbar p,.lightbox-toolbar span { font-size:12px; }
  .lightbox-description { padding:0 17px 18px; font-size:12px; }
}
@media (min-width:801px) and (max-height:800px) {
  .hero { min-height:max(660px,calc(92svh - var(--publisher-height))); }
  .hero-content { padding-top:124px; padding-bottom:30px; }
  .hero h1 { font-size:clamp(72px,11svh,96px); }
  .hero .eyebrow { margin-bottom:18px; }
  .hero-actions { margin-top:21px; }
  .hero-bottom { padding-bottom:22px; }
}
@media (min-width:561px) and (max-width:800px) and (max-height:500px) {
  .hero-content { justify-content:flex-start; padding-top:118px; padding-bottom:28px; }
  .hero-tagline { margin-top:16px; }
}
@media (max-width:365px) {
  .hero-actions { gap:10px 19px; }
  .hero-actions .hero-primary { padding-inline:18px; }
  .hero-motion-toggle { padding-inline:10px; gap:7px; }
  .hero-motion-toggle .motion-state-label { font-size:11px; }
  #hero-scene-caption { max-width:150px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; }
  .motion-ready .reveal { opacity:1; transform:none; }
  .film-card-trigger:hover .film-poster img,.gallery-photo:hover img,.button:hover { transform:none; }
}
/* Final media interaction states. */
.hero-image{transition:opacity .3s ease}.hero-image.is-changing{opacity:.72}
.gallery-photo.is-loading img{opacity:.65}.gallery-photo img{transition:opacity .25s ease,transform .6s ease}
.gallery-photo.is-portrait img{object-fit:contain}
.film-dialog-footer button.text-link{border:0;padding:8px 12px;background:transparent}
.film-dialog-footer button.text-link:hover{background:#ffffff10}
.film-guide>summary{list-style:none}.film-guide>summary::-webkit-details-marker{display:none}
.film-guide>summary::marker{content:''}
#film-video::cue{font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.4;color:#fff;background:#07140de8}
.lightbox-media{touch-action:pan-y pinch-zoom;scrollbar-width:thin}
.gallery-photo{touch-action:pan-y pinch-zoom}
#lightbox-media:focus-visible{outline-offset:-4px}
@media(prefers-reduced-motion:reduce){.hero-image,.gallery-photo img{transition:none}}
.lightbox-media.is-zoomed{touch-action:pan-x pan-y pinch-zoom}
.lightbox-media.is-zoomed #lightbox-image{width:min(var(--photo-natural-width,1920px),180vw);max-width:none;height:auto;min-height:100%;margin:0;object-fit:contain}
.films-footnote>span{display:block}
.film-poster::after{background:linear-gradient(180deg,#081a1370,transparent 28%,transparent 52%,#081a13c4)}
@media(max-width:560px){.films-footnote .text-link{display:flex;width:max-content;margin-top:12px}}
.dialog-heading,.lightbox-header{position:sticky;top:0;z-index:6;background:var(--dark)}
body.dialog-open .mobile-inquire{visibility:hidden}
/* Requested films use a memory-only Blob so Safari can seek on static hosting. */
.film-loading,.film-play-required { position:absolute; inset:0; z-index:3; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:24px; color:#f5f1e7; background:linear-gradient(#10271dcc,#0c2018e8); text-align:center; }
.film-loading p { font-size:14px; letter-spacing:.02em; }
#film-loading-percent { min-height:18px; font-size:12px; font-variant-numeric:tabular-nums; color:#dedbc8; }
.film-loading-spinner { width:28px; height:28px; border:1px solid #d3d8c45c; border-top-color:#e4e3d2; border-radius:50%; animation:film-loading-spin 1s linear infinite; }
.film-loading-bar { height:2px; width:min(180px,70%); overflow:hidden; background:#f5f1e72e; }
.film-loading-bar>span { display:block; height:100%; width:0; background:#e4e3d2; transition:width .15s linear; }
.film-loading-bar.is-indeterminate>span { animation:film-loading-progress 1.2s ease-in-out infinite alternate; }
.film-play-required { background:#10271d88; }
.film-play-required .button { color:var(--forest); background:var(--paper); border-color:var(--paper); gap:12px; }
@keyframes film-loading-spin { to { transform:rotate(360deg); } }
@keyframes film-loading-progress { to { transform:translateX(230%); } }
@media(prefers-reduced-motion:reduce) { .film-loading-spinner,.film-loading-bar.is-indeterminate>span { animation:none; } .film-loading-bar>span { transition:none; } }

/* Short phones keep the complete offer and controls in flow, with natural scrolling. */
@media (max-width:560px) and (max-height:700px) {
  .hero-content { padding-top:142px; padding-bottom:24px; }
  .hero .hero-eyebrow { display:block; max-width:100%; font-size:9px; line-height:1.6; letter-spacing:.1em; margin-bottom:14px; }
  .hero-eyebrow .tiny-rule { display:none; }
  .hero h1 { font-size:clamp(48px,14.7vw,60px); }
  .hero-tagline { font-size:17px; margin-top:16px; }
  .hero-description { font-size:14px; line-height:1.65; }
  .hero-actions { width:100%; gap:10px 18px; margin-top:20px; }
  .hero-actions .hero-primary { min-height:46px; padding:11px 16px; font-size:12px; line-height:1.6; }
  .hero-actions .hero-secondary { min-height:46px; padding-block:10px; gap:9px; font-size:12px; line-height:1.6; }
  .hero-secondary>span { font-size:10px; }
  .hero-bottom { min-height:76px; padding:12px 0 20px; gap:14px; }
  #hero-scene-caption { max-width:150px; font-size:12px; line-height:1.6; }
  #hero-scene-caption>span { display:none; }
  .hero-motion-toggle { min-height:44px; padding:9px 10px; gap:7px; flex:none; }
  .hero-motion-toggle .motion-state-label { font-size:11px; }
}

/* The three-film collection stays a swipe rail on compact tablets too. */
@media (min-width:561px) and (max-width:700px) {
  .film-grid { display:flex; width:auto; max-width:none; align-items:stretch; gap:18px; margin-left:0; margin-right:calc(var(--gutter)*-1); overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; padding:0 22px 15px 0; }
  .film-card { flex:0 0 82%; min-width:0; scroll-snap-align:start; }
  .film-title { font-size:33px; }
  .film-rail-controls { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:9px; }
  .film-rail-controls button { width:44px; height:44px; padding:0; border:1px solid #aeb9a5; border-radius:50%; font-size:21px; }
  .film-rail-controls span { font-size:12px; color:var(--muted); }
  .film-rail-controls .rail-hint { margin-right:auto; margin-left:7px; color:#79866e; }
}
