/* Забегаевские дачи — «Сутки на берегу» */

@font-face{font-family:"Bereg Serif";src:url("../fonts/bereg-serif-200.woff") format("woff");font-weight:200;font-display:swap}
@font-face{font-family:"Bereg Serif";src:url("../fonts/bereg-serif-300.woff") format("woff");font-weight:300;font-display:swap}
@font-face{font-family:"Bereg Serif";src:url("../fonts/bereg-serif-400.woff") format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"Bereg Sans";src:url("../fonts/bereg-sans-400.woff") format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"Bereg Sans";src:url("../fonts/bereg-sans-500.woff") format("woff");font-weight:500;font-display:swap}

/* ---------- Tokens ---------- */
:root{
  --serif:"Bereg Serif","Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"Bereg Sans","Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --lamp:#FFC977;
  --wrap:1360px;
  --gut:clamp(16px,4vw,48px);
  --header-h:68px;
  --r-xl:32px;--r-lg:24px;--r-md:18px;--r-sm:12px;
  --ease:cubic-bezier(.22,.7,.2,1);
  --ease-soft:cubic-bezier(.4,0,.2,1);
}
/* Each part of the day has its own light. html[data-time] sets the page, [data-theme] a single block. */
:root,html[data-time="day"],[data-theme="day"]{
  --bg:#EFEEE7;--bg-2:#E3E2D8;--ink:#182024;--ink-2:#4D585E;--acc:#2D5B45;
  --line:rgba(24,32,36,.14);--btn:#182024;--btn-ink:#EFEEE7;
  --glass:rgba(244,243,236,.76);--glass-line:rgba(255,255,255,.6);--shadow:rgba(46,56,40,.32);
  color-scheme:light;
}
html[data-time="morning"],[data-theme="morning"]{
  --bg:#DFE4E6;--bg-2:#D2D9DC;--ink:#1A2730;--ink-2:#4A5A64;--acc:#874B5A;
  --line:rgba(26,39,48,.15);--btn:#1A2730;--btn-ink:#DFE4E6;
  --glass:rgba(232,236,238,.74);--glass-line:rgba(255,255,255,.6);--shadow:rgba(36,56,72,.3);
  color-scheme:light;
}
html[data-time="evening"],[data-theme="evening"]{
  --bg:#241A14;--bg-2:#33261C;--ink:#F4E8D8;--ink-2:#CDB79C;--acc:#F0A54B;
  --line:rgba(244,232,216,.15);--btn:#F0A54B;--btn-ink:#241A14;
  --glass:rgba(36,26,20,.6);--glass-line:rgba(255,230,200,.12);--shadow:rgba(0,0,0,.55);
  color-scheme:dark;
}
html[data-time="night"],[data-theme="night"]{
  --bg:#0B1524;--bg-2:#14223A;--ink:#E4EBF3;--ink-2:#9DAEC3;--acc:#FFC977;
  --line:rgba(228,235,243,.13);--btn:#FFC977;--btn-ink:#0B1524;
  --glass:rgba(11,21,36,.58);--glass-line:rgba(200,220,255,.12);--shadow:rgba(0,0,0,.6);
  color-scheme:dark;
}
[data-theme]{background-color:var(--bg);color:var(--ink)}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 8px)}
body{margin:0;background-color:var(--live,var(--bg));color:var(--ink);font:400 1rem/1.5 var(--sans);overflow-x:clip;transition:background-color 1.2s var(--ease-soft),color .6s;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video,svg,picture{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
h1,h2,h3,h4,p,figure,dl,dd,blockquote{margin:0}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:12px;top:-60px;z-index:400;background:var(--btn);color:var(--btn-ink);padding:12px 16px;border-radius:999px;text-decoration:none}
.skip: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}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}

/* ---------- Type ---------- */
.t-h1{font:200 clamp(3rem,7.2vw,6.6rem)/.95 var(--serif);letter-spacing:-.035em}
.t-h2{font:300 clamp(2.15rem,4.6vw,3.9rem)/1.04 var(--serif);letter-spacing:-.025em;text-wrap:balance}
.t-h3{font:300 clamp(1.6rem,2.5vw,2.2rem)/1.1 var(--serif);letter-spacing:-.015em}
.t-lead{font:300 clamp(1.2rem,1.75vw,1.5rem)/1.5 var(--serif);text-wrap:pretty}
.t-body{font:400 1.125rem/1.68 var(--serif);text-wrap:pretty}
.t-ui{font:400 .9375rem/1.45 var(--sans)}
.t-small{font:400 .8125rem/1.45 var(--sans);color:var(--ink-2)}
.t-time{font:500 .9375rem/1 var(--sans);color:var(--acc);font-variant-numeric:tabular-nums}
.muted{color:var(--ink-2)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:48px;padding:0 1.45em;border-radius:999px;border:1px solid transparent;font:500 .9375rem/1 var(--sans);text-decoration:none;white-space:nowrap;transition:background-color .25s,color .25s,border-color .25s,transform .2s,box-shadow .25s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--btn);color:var(--btn-ink)}
.btn-primary:hover{box-shadow:0 10px 26px -10px var(--shadow)}
.btn-ghost{border-color:currentColor;background:transparent}
.btn-ghost:hover{background:color-mix(in srgb,currentColor 10%,transparent)}
.btn svg{width:18px;height:18px;flex:none}
.link{display:inline-flex;align-items:center;min-height:44px;font:500 .9375rem/1.4 var(--sans);text-decoration:underline;text-underline-offset:.3em}

/* ---------- Header ---------- */
.header{position:fixed;inset:0 0 auto;z-index:60;height:var(--header-h);color:var(--ink);transition:background-color .4s,color .4s,box-shadow .4s,transform .4s var(--ease)}
.header.is-solid{background:color-mix(in srgb,var(--live,var(--bg)) 86%,transparent);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);box-shadow:0 1px 0 var(--line)}
.header.is-over{color:#F6F3EE}
.header.is-hidden{transform:translateY(-100%)}
.header .wrap{height:100%;display:flex;align-items:center;gap:20px;max-width:none}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto;min-height:44px}
.brand svg{width:34px;height:34px;flex:none}
.brand b{display:block;font:300 1.3rem/1 var(--serif);letter-spacing:-.01em}
.brand small{display:block;margin-top:3px;font:400 .75rem/1 var(--sans);opacity:.75}
.nav{display:flex;gap:2px}
.nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 13px;border-radius:999px;font:400 .9375rem/1 var(--sans);text-decoration:none;opacity:.9;transition:background-color .25s}
.nav a:hover{background:color-mix(in srgb,currentColor 10%,transparent);opacity:1}
.nav a[aria-current="page"]{opacity:1;text-decoration:underline;text-underline-offset:.35em}
.header .btn{min-height:44px}
.header.is-over .btn-primary{background:#F6F3EE;color:#172026}
.hdr-phone{display:none;width:44px;height:44px;align-items:center;justify-content:center;border-radius:50%;color:inherit}
.hdr-phone svg{width:22px;height:22px}
.burger{display:none;width:44px;height:44px;border:0;background:transparent;border-radius:50%;align-items:center;justify-content:center}
.burger span,.burger span::before,.burger span::after{display:block;width:22px;height:1.5px;background:currentColor;position:relative;transition:transform .3s,background-color .3s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0}
.burger span::before{top:-7px}.burger span::after{top:7px}
.menu-open .burger span{background:transparent}
.menu-open .burger span::before{transform:translateY(7px) rotate(45deg)}
.menu-open .burger span::after{transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;z-index:55;background:var(--bg);color:var(--ink);padding:calc(var(--header-h) + 20px) var(--gut) 32px;display:flex;flex-direction:column;gap:4px;overflow:auto;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.menu-open .mobile-menu{opacity:1;visibility:visible}
.menu-open .header{color:var(--ink);background:var(--bg)}
.mobile-menu a:not(.btn):not(.mm-time){font:300 2rem/1.25 var(--serif);text-decoration:none;padding:6px 0;min-height:44px}
.mobile-menu .btn{margin-top:20px;align-self:flex-start}
.mobile-menu p{margin-top:auto;padding-top:28px}
.mm-times{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}
.mm-time{position:relative;display:flex;align-items:flex-end;min-height:88px;padding:12px 14px;border-radius:var(--r-md);overflow:hidden;text-decoration:none;color:#fff;font:300 1.5rem/1 var(--serif);isolation:isolate}
.mm-time img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.mm-time::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(transparent 30%,rgba(0,0,0,.55))}
@media (max-width:1080px){.nav{display:none}.burger{display:inline-flex}.brand small{display:none}}
@media (max-width:640px){.header .wrap>.btn{display:none}.hdr-phone{display:inline-flex}.header .wrap{gap:6px}}
@media (max-width:420px){.brand b{font-size:1.12rem}}

/* ---------- Media: soft, rounded, melting into the page ---------- */
.ph{position:relative;overflow:hidden;border-radius:var(--r-lg);background:var(--bg-2);box-shadow:0 34px 70px -34px var(--shadow);isolation:isolate}
.ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.ph-img{position:relative;overflow:hidden;border-radius:var(--r-lg);background:var(--bg-2);box-shadow:0 30px 60px -32px var(--shadow)}
.ph-img img{width:100%;height:100%;object-fit:cover}
.ph[data-lightbox],.ph-wrap[data-lightbox]{cursor:zoom-in}
@media (hover:hover){.ph[data-lightbox]:hover img{transform:scale(1.03)}}
.ph figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 18px 14px;font:400 .8125rem/1.4 var(--sans);color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.42));opacity:0;transition:opacity .35s}
.ph:hover figcaption,.ph:focus-within figcaption{opacity:1}
.zoom{all:unset;position:absolute;inset:0;z-index:2;cursor:zoom-in;border-radius:inherit}
.zoom:focus-visible{outline:2px solid var(--acc);outline-offset:-4px}
.feather-top{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 var(--ft,14%));mask-image:linear-gradient(180deg,transparent 0,#000 var(--ft,14%))}
.feather{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 var(--ft,14%),#000 calc(100% - var(--fb,14%)),transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 var(--ft,14%),#000 calc(100% - var(--fb,14%)),transparent 100%)}
@media (max-width:700px){.ph,.ph-img{border-radius:var(--r-md)}}

/* ---------- Page change: the sky floods the screen with the next hour ---------- */
.veil{position:fixed;inset:0;z-index:300;pointer-events:none;opacity:0;transition:opacity .5s var(--ease-soft);background:#0B1524}
html[data-go="morning"] .veil{background:radial-gradient(120% 90% at 50% 110%,#F3D7C8 0,#DFE4E6 55%,#C9D2D8 100%)}
html[data-go="day"] .veil{background:radial-gradient(120% 90% at 50% -10%,#FFF6DA 0,#EFEEE7 50%,#DCE6EA 100%)}
html[data-go="evening"] .veil{background:radial-gradient(120% 90% at 50% 110%,#F2A64B 0,#7A3E24 45%,#241A14 100%)}
html[data-go="night"] .veil{background:radial-gradient(120% 90% at 50% -10%,#1B2C46 0,#0B1524 55%,#05090F 100%)}
html.is-leaving .veil,html.is-arriving .veil{opacity:1}
html.is-arriving .veil{transition:none}

/* ---------- Time bar: the main switch between the four pages ---------- */
.timebar{position:fixed;z-index:50;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:4px;padding:5px;border-radius:999px;background:rgba(12,18,28,.72);color:#F6F3EE;-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 18px 40px -12px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.12);transition:opacity .4s,transform .4s var(--ease)}
.timebar.is-wait:not(.is-on){opacity:0;pointer-events:none;transform:translate(-50%,24px)}
.timebar a{position:relative;display:flex;align-items:center;gap:8px;min-height:48px;padding:0 18px 0 14px;border-radius:999px;text-decoration:none;font:500 .9375rem/1 var(--sans);color:rgba(246,243,238,.82);transition:background-color .25s,color .25s}
.timebar a svg{width:22px;height:22px;flex:none}
.timebar a:hover{background:rgba(255,255,255,.1);color:#fff}
.timebar a[aria-current="page"]{background:#F6F3EE;color:#172026}
.timebar .tb-time{display:none;font:400 .8125rem/1 var(--sans);font-variant-numeric:tabular-nums;opacity:.7}
.timebar a[aria-current="page"] .tb-time{display:inline}
.timebar a.is-now:not([aria-current])::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--lamp);margin-left:-2px}
@media (max-width:640px){
  .timebar{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));transform:none;border-radius:20px;justify-content:space-between}
  .timebar.is-wait:not(.is-on){transform:translateY(24px)}
  .timebar a{flex:1;flex-direction:column;justify-content:center;gap:3px;min-height:58px;padding:6px 2px;border-radius:15px;font-size:.8125rem}
  .timebar .tb-time{font-size:.6875rem}
  .timebar a.is-now:not([aria-current])::after{position:absolute;top:9px;right:calc(50% - 18px);margin:0}
}

/* ---------- Index: hero with the whole day in fifteen seconds ---------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;color:#F6F3EE;overflow:hidden;background:#141a22}
.hero-media,.hero-media>*{position:absolute;inset:0;width:100%;height:100%}
.hero-media img,.hero-media video{object-fit:cover;transition:opacity 1.1s var(--ease)}
.hero-media .is-off{opacity:0}
.hero-shade{position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(180deg,rgba(8,12,20,.55) 0,rgba(8,12,20,.14) 22%,rgba(8,12,20,.18) 46%,rgba(8,12,20,.76) 100%),
  linear-gradient(90deg,rgba(8,12,20,.62) 0,rgba(8,12,20,.34) 40%,rgba(8,12,20,.06) 66%,rgba(8,12,20,0) 82%),
  radial-gradient(48% 46% at 20% 34%,rgba(8,12,20,.32),rgba(8,12,20,0) 100%)}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:120px;background:linear-gradient(transparent,var(--bg));pointer-events:none;z-index:1}
.hero-body{position:relative;z-index:2;padding-top:calc(var(--header-h) + 32px);padding-bottom:clamp(36px,6vh,64px);width:100%;display:flex;flex-direction:column;gap:clamp(28px,5vh,52px)}
.hero h1{max-width:9.5em;text-shadow:0 2px 40px rgba(0,0,0,.45),0 1px 3px rgba(0,0,0,.3)}
.hero-sub{margin-top:22px;max-width:30em;font:300 clamp(1.08rem,1.5vw,1.3rem)/1.5 var(--serif);color:#F6F3EE;text-shadow:0 1px 3px rgba(0,0,0,.45),0 2px 22px rgba(0,0,0,.45)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.hero .btn-primary{background:#F6F3EE;color:#172026}
.hero .btn-ghost{color:#F6F3EE;border-color:rgba(246,243,238,.6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.hero-now{margin-top:18px;font:400 .9375rem/1.5 var(--sans);color:rgba(246,243,238,.92);min-height:1.5em;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.hero-now b{font-weight:500;color:#fff}
.chooser-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px 24px;flex-wrap:wrap;margin-bottom:14px}
.chooser-title{font:300 clamp(1.5rem,2.4vw,2.1rem)/1.1 var(--serif);letter-spacing:-.01em}
.chooser-hint{font:400 .9375rem/1.4 var(--sans);color:rgba(246,243,238,.82)}
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.tile{position:relative;display:block;height:clamp(150px,21vh,210px);border-radius:var(--r-lg);overflow:hidden;text-decoration:none;color:#fff;isolation:isolate;box-shadow:0 24px 50px -24px rgba(0,0,0,.6),inset 0 0 0 1px rgba(255,255,255,.22);transition:transform .45s var(--ease),box-shadow .45s}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1s var(--ease)}
.tile::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,.04) 36%,rgba(0,0,0,.66))}
.tile:focus-visible,.tile.is-hover{transform:translateY(-5px);box-shadow:0 30px 60px -22px rgba(0,0,0,.7),inset 0 0 0 1.5px rgba(255,255,255,.85)}
.tile:focus-visible img,.tile.is-hover img{transform:scale(1.07)}
.tile.is-playing{box-shadow:0 24px 50px -24px rgba(0,0,0,.6),inset 0 0 0 1.5px rgba(255,255,255,.9)}
.tile-top{position:absolute;top:14px;left:16px;right:12px;display:flex;align-items:center;gap:8px;font:500 .8125rem/1 var(--sans)}
.tile-glyph svg{width:22px;height:22px}
.tile-now{margin-left:auto;padding:5px 10px;border-radius:999px;background:#F6F3EE;color:#172026;font:500 .75rem/1 var(--sans)}
.tile-in{position:absolute;left:18px;right:56px;bottom:16px}
.tile-in b{display:block;font:300 clamp(1.9rem,2.8vw,2.6rem)/1 var(--serif);letter-spacing:-.02em}
.tile-in small{display:block;margin-top:6px;font:400 .9375rem/1.3 var(--sans);opacity:.92}
.tile-arrow{position:absolute;right:14px;bottom:16px;width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.6);display:grid;place-items:center;transition:background-color .3s,color .3s}
.tile-arrow svg{width:16px;height:16px}
.tile:focus-visible .tile-arrow,.tile.is-hover .tile-arrow{background:#fff;color:#172026}
@media (max-width:900px){
  .hero-shade{background:linear-gradient(180deg,rgba(8,12,20,.5) 0,rgba(8,12,20,.08) 18%,rgba(8,12,20,.36) 40%,rgba(8,12,20,.84) 70%,rgba(8,12,20,.9) 100%)}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .tile{height:136px;border-radius:var(--r-md)}
  .tile-in{right:46px;left:14px;bottom:12px}
  .tile-in small{font-size:.8125rem}
  .tile-top{left:14px;top:12px}
  .tile-range{display:none}
  .tile-arrow{width:30px;height:30px;right:10px;bottom:12px}
}
@media (max-width:700px){
  .hero-sub,.hero-now{display:none}
  .hero-actions{margin-top:20px}
  .hero-actions .btn{min-height:44px;padding:0 1.1em;font-size:.875rem}
  .hero-body{gap:24px;padding-bottom:28px}
}

@media (hover:hover){.tile:hover{transform:translateY(-5px);box-shadow:0 30px 60px -22px rgba(0,0,0,.7),inset 0 0 0 1.5px rgba(255,255,255,.85)}.tile:hover img{transform:scale(1.07)}.tile:hover .tile-arrow{background:#fff;color:#172026}}

/* ---------- Generic sections ---------- */
.section{padding-block:clamp(72px,11vw,150px)}
.section-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;margin-bottom:clamp(36px,6vw,72px)}
.section-head>h2{grid-column:1/span 7}
.section-head>.section-intro{grid-column:8/span 5;align-self:end}
@media (max-width:900px){.section-head>h2,.section-head>.section-intro{grid-column:1/-1}}

/* story of the place */
.story{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.story-text{grid-column:1/span 6}
.story-text .t-h2{margin-bottom:28px}
.story-text p+p,.story-more p+p{margin-top:1em}
.story-facts{grid-column:8/span 5;align-self:end;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.story-facts div{padding:22px 0;border-bottom:1px solid var(--line)}
.story-facts div:nth-child(odd){padding-right:16px}
.story-facts dt{font:300 clamp(1.6rem,2.6vw,2.2rem)/1 var(--serif)}
.story-facts dd{margin-top:8px;font:400 .9375rem/1.4 var(--sans);color:var(--ink-2)}
.story-more{margin-top:28px}
.story-more summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;font:500 .9375rem/1 var(--sans);text-decoration:underline;text-underline-offset:.3em}
.story-more summary::-webkit-details-marker{display:none}
.story-more[open] summary{margin-bottom:12px}
.story-quote{margin-top:28px;padding-left:20px;border-left:2px solid var(--acc)}
.story-quote p{font:300 1.35rem/1.4 var(--serif)}
.story-quote small{display:block;margin-top:8px}
@media (max-width:900px){.story-text,.story-facts{grid-column:1/-1}}

/* four stories on the index: each part of the day in its own light */
.portals{padding-top:clamp(40px,6vw,80px)}
.portal{position:relative;padding-block:clamp(90px,12vw,170px);background:linear-gradient(180deg,var(--from) 0,var(--bg) 28%,var(--bg) 72%,var(--to) 100%)}
/* one continuous sky: each band hands its colour to the next, and night turns back to dawn */
.portal[data-theme="morning"]{--from:#EFEEE7;--to:#E6E8E5}
.portal[data-theme="day"]{--from:#E6E8E5;--to:#B98A62}
.portal[data-theme="evening"]{--from:#B98A62;--to:#17182A}
.portal[data-theme="night"]{--from:#17182A;--to:#EFEEE7;background:linear-gradient(180deg,var(--from) 0,var(--bg) 24%,var(--bg) 64%,#3C4866 82%,#D9C6C2 93%,var(--to) 100%)}
.portal-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:center}
.portal-media{grid-column:1/span 7;aspect-ratio:4/3;border-radius:var(--r-xl);overflow:hidden;position:relative;box-shadow:0 50px 90px -40px var(--shadow);background:var(--bg-2)}
.portal-media img,.portal-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),opacity .8s}
@media (hover:hover){.portal:hover .portal-media img,.portal:hover .portal-media video{transform:scale(1.03)}}
.portal-text{grid-column:9/span 4}
.portal.is-flip .portal-media{grid-column:6/span 7;grid-row:1}
.portal.is-flip .portal-text{grid-column:1/span 4;grid-row:1}
.portal-range{display:flex;align-items:center;gap:8px;font:500 .9375rem/1 var(--sans);color:var(--acc)}
.portal-range svg{width:22px;height:22px}
.portal-word{margin-top:14px;font:200 clamp(3.6rem,8vw,7rem)/.9 var(--serif);letter-spacing:-.04em}
.portal-izum{margin-top:18px;font:300 clamp(1.35rem,2vw,1.7rem)/1.2 var(--serif)}
.portal-text .t-body{margin-top:14px;color:var(--ink-2)}
.portal-go{margin-top:26px}
.portal-go svg,.next-go svg{width:18px;height:18px}
.portal-go::after{content:"";position:absolute;inset:0}
@media (max-width:900px){
  .portal-media,.portal-text,.portal.is-flip .portal-media,.portal.is-flip .portal-text{grid-column:1/-1;grid-row:auto}
  .portal-media{aspect-ratio:4/5;border-radius:var(--r-lg)}
}

/* houses */
.house-top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:start}
.house-media{grid-column:1/span 7;position:relative}
.house-info{grid-column:9/span 4;position:sticky;top:calc(var(--header-h) + 24px)}
.house.is-flip .house-media{grid-column:6/span 7;grid-row:1}
.house.is-flip .house-info{grid-column:1/span 4;grid-row:1}
.house-stage{position:relative;aspect-ratio:3/2;overflow:hidden;border-radius:var(--r-xl);background:var(--bg-2);box-shadow:0 50px 90px -42px var(--shadow)}
.house-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity 1s var(--ease)}
.house-stage img:not(.is-on){opacity:0}
.house-times{display:flex;gap:6px;margin-top:14px;flex-wrap:wrap}
.house-times button{min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line);background:transparent;font:400 .875rem/1 var(--sans)}
.house-times button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.house-info .t-time{display:block;margin-bottom:14px}
.house-info .t-h2{font-size:clamp(2rem,3.6vw,3.1rem)}
.house-info>p{margin-top:16px}
.facts{margin-top:26px;border-top:1px solid var(--line)}
.facts div{display:grid;grid-template-columns:7.5em 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font:400 .9375rem/1.45 var(--sans)}
.facts dt{color:var(--ink-2)}
.house-info .btn{margin-top:26px}
.strip{margin-top:clamp(36px,5vw,60px);position:relative}
.strip-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:40px;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);scroll-padding-inline:var(--gut)}
.strip-track::-webkit-scrollbar{display:none}
.strip .ph-wrap{flex:0 0 auto;width:clamp(240px,30vw,420px);scroll-snap-align:start;margin:0;position:relative}
.strip .ph-wrap figcaption,.masonry .ph-wrap figcaption{color:var(--ink-2);padding:10px 4px 0;font:400 .8125rem/1.4 var(--sans)}
.strip-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:16px}
.strip-nav{display:flex;gap:6px}
.strip-nav button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:transparent;display:grid;place-items:center}
.strip-nav button:disabled{opacity:.35;cursor:default}
.strip-nav svg{width:18px;height:18px}
@media (max-width:900px){
  .house-media,.house-info,.house.is-flip .house-media,.house.is-flip .house-info{grid-column:1/-1;grid-row:auto;position:static}
  .house-stage{border-radius:var(--r-lg)}
  .strip-nav{display:none}
}
.inside-band{position:relative;height:min(90svh,860px);margin-block:clamp(80px,11vw,150px);overflow:hidden;--ft:22%;--fb:22%}
.inside-band picture,.inside-band img,.inside-band video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.inside-band::after{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(70% 34% at 50% 72%,rgba(20,14,8,.5),rgba(20,14,8,0) 100%)}
.inside-band p{position:absolute;left:0;right:0;bottom:24%;z-index:2;color:#fff;text-align:center;font:300 clamp(1.6rem,3.4vw,3rem)/1.15 var(--serif);text-shadow:0 2px 30px rgba(0,0,0,.5);padding-inline:var(--gut)}

/* bath */
.bath{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:end}
.bath>.ph{grid-column:1/span 7}
.bath-text{grid-column:8/span 5;padding-bottom:8px}
.bath-text p+p{margin-top:1em}
.bath-text .t-h2{margin:14px 0 22px;font-size:clamp(2.15rem,4vw,3.5rem)}
.bath-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:24px}
@media (max-width:900px){.bath>*{grid-column:1/-1!important}.bath-row{grid-template-columns:1fr 1fr;gap:12px}.bath-row .ph:first-child{grid-column:1/-1}}

/* territory */
.map{border-radius:var(--r-xl);overflow:hidden;position:relative;box-shadow:0 50px 90px -42px var(--shadow);background:#EDE6D6}
.map img{width:100%}
.map-cap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:14px}
.places{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:44px 24px;margin-top:clamp(48px,7vw,88px)}
.place .ph{aspect-ratio:4/3;margin-bottom:18px}
.place h3{font:300 1.5rem/1.15 var(--serif)}
.place p{margin-top:8px;font:400 .9375rem/1.55 var(--sans);color:var(--ink-2)}
@media (max-width:1000px){.places{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.places{grid-template-columns:1fr}.map{border-radius:var(--r-lg)}}

/* seasons */
.seasons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}
.season{padding:28px 24px 8px 0}
.season+.season{padding-left:24px;border-left:1px solid var(--line)}
.season h3{font:300 2rem/1 var(--serif)}
.season .t-lead{font-size:1.15rem;margin-top:14px}
.season p.t-ui{margin-top:12px;color:var(--ink-2)}
@media (max-width:900px){.seasons{grid-template-columns:1fr 1fr}.season:nth-child(3){padding-left:0;border-left:0}.season:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:560px){.seasons{grid-template-columns:1fr}.season,.season+.season{padding-left:0;border-left:0;border-top:1px solid var(--line)}.season:first-child{border-top:0}}

/* people */
.people{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.people-text{grid-column:1/span 6}
.people-text .t-h2{margin-bottom:22px}
.people-cards{grid-column:8/span 5;border-top:1px solid var(--line);align-self:end}
.person{padding:22px 0;border-bottom:1px solid var(--line)}
.person h3{font:300 1.6rem/1.1 var(--serif)}
.person p{margin-top:8px;font:400 1rem/1.6 var(--sans);color:var(--ink-2)}
.for-whom{grid-column:1/-1;margin-top:clamp(56px,8vw,96px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:start}
.for-whom h3{grid-column:1/span 5;font:300 clamp(1.8rem,3vw,2.6rem)/1.1 var(--serif)}
.for-whom ul{grid-column:7/span 6;list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.for-whom li{padding:10px 18px;border:1px solid var(--line);border-radius:999px;font:400 .9375rem/1.2 var(--sans)}
.for-whom p{grid-column:7/span 6;color:var(--ink-2)}
@media (max-width:900px){.people-text,.people-cards,.for-whom h3,.for-whom ul,.for-whom p{grid-column:1/-1}}

/* terms */
.terms{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.terms-text{grid-column:1/span 5}
.terms-text .t-h2{margin-bottom:22px}
.terms-text p+p{margin-top:1em}
.terms-text .btn{margin-top:28px}
.faq{grid-column:7/span 6;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;min-height:64px;padding:16px 0;font:300 1.3rem/1.25 var(--serif)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:14px;height:14px;background:linear-gradient(currentColor,currentColor) center/14px 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 14px no-repeat;transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 20px;font:400 1rem/1.6 var(--sans);color:var(--ink-2);max-width:36em}
@media (max-width:900px){.terms-text,.faq{grid-column:1/-1}}

/* road */
.road{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:end}
.road-text{grid-column:1/span 6}
.road-text .t-h2{margin:14px 0 22px}
.road-text p+p{margin-top:1em}
.road-dist{grid-column:8/span 5;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.road-dist div{padding:20px 0;border-bottom:1px solid var(--line)}
.road-dist dt{font:400 .9375rem/1 var(--sans);color:var(--ink-2)}
.road-dist dd{margin-top:10px;font:300 clamp(2rem,3.4vw,2.8rem)/1 var(--serif)}
.road-text .link{margin-top:20px}
@media (max-width:900px){.road-text,.road-dist{grid-column:1/-1}}

/* ---------- Time-of-day page ---------- */
.tp-hero{position:relative;height:100svh;min-height:600px;overflow:hidden;color:#F6F3EE;background:var(--bg)}
.tp-hero .hero-media::after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(6,10,16,.5) 0,rgba(6,10,16,0) 24%),
  linear-gradient(180deg,rgba(6,10,16,0) 38%,rgba(6,10,16,.42) 72%,rgba(6,10,16,.2) 86%,rgba(6,10,16,0) 100%),
  radial-gradient(60% 40% at 18% 76%,rgba(6,10,16,.35),rgba(6,10,16,0) 70%)}
.tp-fade{position:absolute;left:0;right:0;bottom:-1px;height:18%;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--bg) 60%,transparent) 50%,var(--bg) 96%);pointer-events:none;z-index:1}
.tp-meta{position:absolute;z-index:2;left:0;right:0;top:calc(var(--header-h) + 14px);display:flex;justify-content:space-between;gap:16px;font:400 .9375rem/1.4 var(--sans);text-shadow:0 1px 12px rgba(0,0,0,.4)}
.tp-meta b{font-weight:500}
.tp-title{position:absolute;z-index:2;left:0;right:0;bottom:calc(16% + 8px)}
.tp-word{display:block;font:200 clamp(6rem,19vw,17.5rem)/.86 var(--serif);letter-spacing:-.05em;color:#fff;text-shadow:0 4px 60px rgba(0,0,0,.3);margin-left:-.04em}
.tp-row{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-top:clamp(30px,5.5vh,56px)}
.tp-tagline{max-width:24em;font:300 clamp(1.2rem,2vw,1.75rem)/1.35 var(--serif);color:#fff;text-shadow:0 1px 24px rgba(0,0,0,.45)}
.tp-arc{width:min(30vw,300px);flex:none;color:#fff;filter:drop-shadow(0 1px 8px rgba(0,0,0,.35))}
.tp-arc svg{width:100%;height:auto;overflow:visible}
.sp-horizon{stroke:currentColor;stroke-width:1;opacity:.55}
.sp-day{fill:none;stroke:currentColor;stroke-width:1.25;opacity:.7}
.sp-night{fill:none;stroke:currentColor;stroke-width:1.25;stroke-dasharray:2 4;opacity:.5}
.sp-span{fill:none;stroke:#FFC977;stroke-width:3;stroke-linecap:round}
.sp-sun{fill:#FFC977;filter:drop-shadow(0 0 8px rgba(255,190,100,.9))}
.sp-moon-dark{fill:#1b2536}
.scroll-cue{position:absolute;z-index:2;left:50%;bottom:10px;width:1px;height:34px;background:linear-gradient(transparent,currentColor);color:var(--ink);opacity:.5;transform:translateX(-50%)}
@media (max-width:700px){
  .tp-row{flex-direction:column;align-items:flex-start;gap:14px}
  .tp-arc{display:none}
  .tp-meta{flex-direction:column;gap:2px}
  .tp-title{bottom:calc(90px + env(safe-area-inset-bottom))}
  .tp-fade{height:12%}
  .tp-hero .hero-media::after{background:linear-gradient(180deg,rgba(6,10,16,.5) 0,rgba(6,10,16,0) 22%),linear-gradient(180deg,rgba(6,10,16,0) 34%,rgba(6,10,16,.55) 70%,rgba(6,10,16,.35) 92%,rgba(6,10,16,.1) 100%)}
  .scroll-cue{display:none}
}

.prologue{padding-block:clamp(80px,11vw,160px) clamp(90px,12vw,170px)}
.prologue p{max-width:26em;font:300 clamp(1.45rem,2.7vw,2.3rem)/1.42 var(--serif);letter-spacing:-.012em;text-wrap:pretty}
.prologue p+p{margin-top:1.1em;color:var(--ink-2)}

/* Scenes: the photo stays on screen while the story passes over it */
.scene{position:relative}
.scene.is-joined{margin-top:-42svh}
.scene.is-joined .scene-pin{--ft:30%}
.scene-pin{position:sticky;top:0;height:100svh;overflow:hidden;--ft:16%;--fb:16%}
.scene-media{position:absolute;inset:0}
.scene-media img{width:100%;height:100%;object-fit:cover;transform:scale(var(--z,1.06));will-change:transform}
.scene-flow{position:relative;z-index:2;margin-top:-100svh;pointer-events:none}
.scene-card{pointer-events:auto}
.scene-flow::before{content:"";display:block;height:64svh}
.scene-flow::after{content:"";display:block;height:64svh}
.scene-flow .wrap{display:flex;flex-direction:column}
.scene-card{width:min(100%,500px);padding:clamp(24px,2.8vw,38px);border-radius:var(--r-lg);background:var(--glass);-webkit-backdrop-filter:blur(24px) saturate(1.35);backdrop-filter:blur(24px) saturate(1.35);box-shadow:0 40px 90px -36px var(--shadow),inset 0 0 0 1px var(--glass-line);color:var(--ink)}
.scene.is-right .scene-card{align-self:flex-end}
.scene-time{display:block;font:200 clamp(3.4rem,5.6vw,5rem)/.9 var(--serif);letter-spacing:-.045em;color:var(--acc);font-variant-numeric:tabular-nums}
.scene-card h2{margin:16px 0 16px;font:300 clamp(1.75rem,2.6vw,2.35rem)/1.1 var(--serif);letter-spacing:-.015em;text-wrap:balance}
.scene-card p{font:400 clamp(1.03rem,1.15vw,1.12rem)/1.7 var(--serif);text-wrap:pretty}
.scene-card p+p{margin-top:.9em}
/* the one moment each part of the day is remembered for */
.scene.is-izum .scene-flow .wrap{align-items:center}
.scene.is-izum .scene-card{width:min(100%,680px);text-align:center;padding:clamp(28px,3.6vw,52px)}
.izum-label{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:color-mix(in srgb,var(--acc) 16%,transparent);color:var(--acc);font:500 .875rem/1 var(--sans)}
.izum-label svg{width:20px;height:20px}
.scene.is-izum .scene-card h2{font-size:clamp(2.3rem,4.6vw,4rem);line-height:1.04;margin:20px 0 0}
.scene.is-izum .scene-time{font:500 1rem/1.4 var(--sans);letter-spacing:0;margin:12px 0 20px;color:var(--ink-2)}
.scene.is-izum .scene-card p{font-size:clamp(1.08rem,1.3vw,1.22rem)}
@media (max-width:700px){
  .scene-flow::before{height:74svh}
  .scene-flow::after{height:50svh}
  .scene-card{padding:22px 22px 24px;border-radius:var(--r-md)}
  .scene-time{font-size:3rem}
  .scene-pin{--ft:12%;--fb:12%}
}

/* a few more photos inside the scene card */
.scene-thumbs{display:flex;gap:8px;height:clamp(92px,9vw,128px);margin-top:22px}
.thumb{position:relative;flex:0 1 auto;width:calc(var(--a) * clamp(92px,9vw,128px));min-width:0;height:100%;margin:0;border-radius:var(--r-sm);overflow:hidden;background:var(--bg-2);box-shadow:0 10px 24px -14px var(--shadow);cursor:zoom-in}
.thumb img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
@media (hover:hover){.thumb:hover img{transform:scale(1.06)}}
.scene.is-izum .scene-thumbs{justify-content:center}

/* details after a scene: a few more photos, rising out of the fade */
.details{position:relative;z-index:3;display:flex;gap:16px;align-items:flex-start;margin-top:-10svh;padding-bottom:clamp(40px,6vw,80px)}
.details>.ph{flex:var(--a) 1 0%;min-width:0}
.details.n-1>.ph{flex:0 1 auto;width:min(100%,780px);margin-inline:auto}
.details>.ph:nth-child(2){margin-top:clamp(24px,5vw,80px)}
.details>.ph:nth-child(3){margin-top:clamp(8px,2vw,30px)}
@media (max-width:700px){
  .details{flex-wrap:wrap;gap:10px;margin-top:-6svh}
  .details>.ph{flex-basis:calc(50% - 5px);margin-top:0!important}
  .details>.ph:first-child:not(.is-portrait),.details.n-1>.ph,.details.n-3>.ph:first-child{flex-basis:100%}
  .details>.ph.is-portrait{max-height:64svh}
}

.closing{padding-block:clamp(90px,13vw,190px)}
.closing p{max-width:16em;font:200 clamp(2.3rem,5.4vw,4.8rem)/1.06 var(--serif);letter-spacing:-.03em;text-wrap:balance}

.todo{padding-bottom:clamp(90px,12vw,170px)}
.todo .t-h2{max-width:14em;margin-bottom:clamp(28px,4vw,48px)}
.todo ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px;border-top:1px solid var(--line)}
.todo li{padding:22px 0;border-bottom:1px solid var(--line)}
.todo h3{font:300 1.45rem/1.15 var(--serif)}
.todo p{margin-top:8px;font:400 .9375rem/1.5 var(--sans);color:var(--ink-2)}
@media (max-width:900px){.todo ul{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.todo ul{grid-template-columns:1fr}}

/* the next part of the day */
.next{position:relative;display:block;height:min(100svh,940px);min-height:560px;overflow:hidden;color:#F6F3EE;text-decoration:none;isolation:isolate;--ft:22%;--fb:18%}
.next-media{position:absolute;inset:0;z-index:-1}
.next-media picture,.next-media img,.next-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease)}
.next-media::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 52% at 50% 55%,rgba(0,0,0,.55),rgba(0,0,0,0) 72%)}
@media (hover:hover){.next:hover .next-media img,.next:hover .next-media video{transform:scale(1.03)}}
.next-in{position:absolute;left:0;right:0;top:50%;transform:translateY(-46%);display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.next-kicker{display:flex;align-items:center;gap:8px;font:500 1rem/1 var(--sans);text-shadow:0 1px 14px rgba(0,0,0,.4)}
.next-kicker svg{width:24px;height:24px}
.next-word{font:200 clamp(4.8rem,15vw,13rem)/1 var(--serif);letter-spacing:-.045em;margin:.06em 0 .26em;text-shadow:0 4px 50px rgba(0,0,0,.35)}
.next-line{max-width:24em;font:300 clamp(1.15rem,1.8vw,1.5rem)/1.4 var(--serif);text-shadow:0 1px 18px rgba(0,0,0,.45)}
.next-go{margin-top:16px;display:inline-flex;align-items:center;gap:10px;min-height:50px;padding:0 24px;border-radius:999px;background:#F6F3EE;color:#172026;font:500 .9375rem/1 var(--sans);box-shadow:0 14px 30px -12px rgba(0,0,0,.5)}

/* night sky */
.sky{position:absolute;inset:0;pointer-events:none;z-index:0}
.sky-fixed{position:fixed}
.page-time main,.page-time .footer{position:relative;z-index:1}

/* ---------- Contact ---------- */
.contact{position:relative;overflow:hidden;padding-top:clamp(40px,6vw,90px)}
.page-time .contact{padding-top:clamp(80px,10vw,150px)}
.contact .wrap{position:relative;z-index:1}
.contact-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.contact-text{grid-column:1/span 5}
.contact-text .t-h1{font-size:clamp(2.8rem,6vw,5.4rem)}
.contact-text>p{margin-top:22px}
.channels{margin-top:36px;border-top:1px solid var(--line)}
.channels a{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none;min-height:56px}
.channels a span{font:400 .9375rem/1.3 var(--sans);color:var(--ink-2)}
.channels a b{font:300 1.35rem/1.2 var(--serif)}
.channels a:hover b{text-decoration:underline;text-underline-offset:.2em}
.lanterns{display:flex;gap:clamp(18px,3vw,36px);margin-top:44px}
.lanterns i{display:block;width:6px;height:6px;border-radius:50%;background:var(--lamp);box-shadow:0 0 10px 3px rgba(255,201,119,.55),0 0 34px 8px rgba(255,201,119,.18)}
.form{grid-column:7/span 6;background:var(--bg-2);border-radius:var(--r-xl);padding:clamp(22px,3vw,40px);box-shadow:0 40px 90px -50px var(--shadow)}
.form h3{font:300 1.75rem/1.15 var(--serif)}
.form>p{margin-top:8px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}
.field{display:flex;flex-direction:column;gap:6px}
.field.wide{grid-column:1/-1}
.field label,.field legend{font:400 .875rem/1.3 var(--sans);color:var(--ink-2)}
.field input,.field select,.field textarea{width:100%;min-height:50px;padding:12px 16px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--bg);color:var(--ink);font:400 1rem/1.3 var(--sans)}
.field textarea{min-height:100px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--acc);outline-offset:0;border-color:transparent}
fieldset.field{border:0;padding:0;margin:0}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg label{position:relative}
.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.seg span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--line);font:400 .9375rem/1 var(--sans);color:var(--ink)}
.seg input:checked+span{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.seg input:focus-visible+span{outline:2px solid var(--acc);outline-offset:2px}
.stepper{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);min-height:50px}
.stepper button{width:46px;height:48px;border:0;background:transparent;font-size:1.25rem;line-height:1}
.stepper output{flex:1;text-align:center;font:500 1rem/1 var(--sans)}
.form-hint{grid-column:1/-1;min-height:1.4em;font:400 .875rem/1.4 var(--sans);color:var(--acc)}
.form-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.form-note{margin-top:16px}
.toast{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));z-index:120;transform:translate(-50%,20px);opacity:0;background:#E4EBF3;color:#0B1524;padding:14px 20px;border-radius:16px;font:400 .9375rem/1.4 var(--sans);max-width:min(92vw,460px);box-shadow:0 14px 34px rgba(0,0,0,.25);transition:opacity .3s,transform .3s var(--ease);pointer-events:none}
.toast.is-on{opacity:1;transform:translate(-50%,0)}
@media (max-width:900px){.contact-text,.form{grid-column:1/-1}.form{border-radius:var(--r-lg)}}
@media (max-width:520px){.form-grid{grid-template-columns:1fr}}

/* ---------- Footer ---------- */
.footer{padding:40px 0 calc(104px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}
.footer .wrap{display:flex;flex-wrap:wrap;gap:16px 32px;justify-content:space-between;align-items:center}
.footer nav{display:flex;flex-wrap:wrap;gap:4px 20px}
.footer nav a{display:inline-flex;align-items:center;min-height:44px;font:400 .875rem/1 var(--sans);color:var(--ink-2)}

/* ---------- Dialogs ---------- */
dialog{border:0;padding:0;max-width:none;max-height:none;background:transparent;color:#F6F3EE}
dialog:not([open]){display:none}
dialog::backdrop{background:rgba(6,9,14,.94)}
.film{width:100vw;height:100svh;margin:0;place-items:center}
.film[open]{display:grid}
.film video{width:min(100vw,calc(100svh * 16 / 9));max-height:100svh;background:#000;border-radius:var(--r-md)}
.dlg-close{position:fixed;top:12px;right:12px;z-index:3;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.35);color:#fff;display:grid;place-items:center}
.dlg-close svg{width:20px;height:20px}
.lightbox{width:100vw;height:100svh;margin:0}
.lb-stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:56px 12px 76px;touch-action:pan-y}
.lb-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:var(--r-md);transition:opacity .25s}
.lb-cap{position:absolute;left:0;right:0;bottom:0;padding:16px 72px calc(20px + env(safe-area-inset-bottom));text-align:center;font:400 .9375rem/1.4 var(--sans);color:rgba(246,243,238,.85)}
.lb-cap span{opacity:.6;margin-left:10px;font-variant-numeric:tabular-nums}
.lb-prev,.lb-next{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.3);color:#fff;display:grid;place-items:center;z-index:2}
.lb-prev{left:12px}.lb-next{right:12px}
.lb-prev svg,.lb-next svg{width:20px;height:20px}
@media (pointer:coarse){.lb-prev,.lb-next{top:auto;bottom:calc(10px + env(safe-area-inset-bottom));transform:none;width:48px;height:48px}}

/* ---------- Gallery ---------- */
.gallery-head{padding-top:calc(var(--header-h) + clamp(40px,7vw,96px));padding-bottom:28px}
.gallery-head .t-h1{font-size:clamp(2.8rem,7vw,6rem)}
.gallery-head p{margin-top:18px;max-width:34em}
.filters{position:sticky;top:var(--header-h);z-index:30;background:color-mix(in srgb,var(--bg) 90%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding-block:12px}
.filters .wrap{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.filters .wrap::-webkit-scrollbar{display:none}
.filters button{flex:none;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line);background:transparent;font:400 .9375rem/1 var(--sans)}
.filters button small{margin-left:6px;color:var(--ink-2);font-size:.8125rem}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.filters button[aria-pressed="true"] small{color:inherit;opacity:.7}
.masonry{columns:3 320px;column-gap:16px;padding-block:24px 96px}
.masonry .ph-wrap{break-inside:avoid;margin:0 0 20px;display:block;position:relative}
.masonry .ph-wrap[hidden]{display:none}

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .scene-media img{transform:none!important}
}
@media (scripting:none){.timebar.is-wait{opacity:1!important;pointer-events:auto!important;transform:translateX(-50%)!important}}
