@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Inter:wght@300;400;500&display=swap');

:root {
  --color-bg: #F5F2EC;
  --color-bg-alt: #EDE9E0;
  --color-text: #2C2C2C;
  --color-text-muted: #6B6560;
  --color-text-subtle: #9B9590;
  --color-green: #4A6741;
  --color-brown: #8B7355;
  --color-earthy: #A89279;
  --color-cream: #FAF8F4;
  --color-border: rgba(44,44,44,0.08);
  --font-serif: 'Cormorant Garamond','Georgia',serif;
  --font-sans: 'Inter','Helvetica Neue',Arial,sans-serif;
  --space-xs: .5rem; --space-sm: 1rem; --space-md: 2rem; --space-lg: 4rem; --space-xl: 8rem; --space-2xl: 12rem;
  --max-width-text: 680px; --max-width-wide: 1100px; --max-width-full: 1400px;
  --ease-out: cubic-bezier(.25,.46,.45,.94);
  --ease-in-out: cubic-bezier(.42,0,.58,1);
  --duration-slow: 1.2s; --duration-normal: .6s; --duration-fast: .3s;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--font-sans);font-weight:300;color:var(--color-text);background:var(--color-bg);line-height:1.7;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}

h1,h2,h3,h4{font-family:var(--font-serif);font-weight:400;line-height:1.2;letter-spacing:-.01em}
h1{font-size:clamp(2.4rem,5vw,4.5rem);font-weight:300}
h2{font-size:clamp(1.8rem,3.5vw,3rem)}
p{font-size:clamp(.95rem,1.1vw,1.1rem);max-width:var(--max-width-text);line-height:1.85;color:var(--color-text-muted)}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:1.5rem 3rem;display:flex;justify-content:space-between;align-items:center;transition:background var(--duration-normal) var(--ease-out),padding var(--duration-normal) var(--ease-out)}
.nav.scrolled{background:rgba(245,242,236,.92);backdrop-filter:blur(20px);padding:1rem 3rem;box-shadow:0 1px 0 var(--color-border)}
.nav__logo{font-family:var(--font-serif);font-size:1.1rem;letter-spacing:.08em;text-transform:uppercase;opacity:0;transition:opacity var(--duration-normal) var(--ease-out)}
.nav.scrolled .nav__logo{opacity:1}
.nav__links{display:flex;align-items:center;gap:2.5rem;list-style:none}
.nav__link{font-size:.82rem;font-weight:400;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);transition:color var(--duration-fast);cursor:pointer}
.nav__link:hover{color:var(--color-text)}
.nav__lang{display:flex;align-items:center;gap:.4rem;margin-left:1rem;padding-left:1.5rem;border-left:1px solid var(--color-border)}
.nav__lang-btn{font-family:var(--font-sans);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-subtle);background:none;border:none;cursor:pointer;padding:.3rem .5rem;border-radius:3px;transition:color var(--duration-fast),background var(--duration-fast)}
.nav__lang-btn:hover{color:var(--color-text)}
.nav__lang-btn.active{color:var(--color-text);background:rgba(44,44,44,.06)}
.nav__hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:5px;z-index:1001}
.nav__hamburger span{display:block;width:24px;height:1.5px;background:var(--color-text);transition:transform var(--duration-fast),opacity var(--duration-fast)}
.nav__hamburger.open span:nth-child(1){transform:rotate(45deg) translate(4px,5px)}
.nav__hamburger.open span:nth-child(2){opacity:0}
.nav__hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(4px,-5px)}

/* HERO */
.hero{position:relative;height:100vh;min-height:600px;display:flex;align-items:flex-end;overflow:hidden}
.hero__image{position:absolute;inset:0;overflow:hidden}
.hero__image img{width:100%;height:100%;object-fit:cover;object-position:center 30%;will-change:transform}
.hero__image::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.2) 0%,rgba(0,0,0,.05) 40%,rgba(0,0,0,.02) 60%,rgba(0,0,0,.55) 100%);z-index:1}
.hero__content{position:relative;z-index:2;padding:0 3rem 4.5rem;max-width:800px}
.hero__title{color:#fff;font-size:clamp(2.8rem,6vw,5.5rem);font-weight:300;line-height:1.08;margin-bottom:1.2rem;text-shadow:0 2px 30px rgba(0,0,0,.3)}
.hero__subtitle{color:rgba(255,255,255,.85);font-family:var(--font-sans);font-size:clamp(.9rem,1.3vw,1.15rem);font-weight:300;line-height:1.6;max-width:520px}
.hero__scroll{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:.8rem;color:rgba(255,255,255,.5);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;animation:scrollPulse 2.5s var(--ease-in-out) infinite}
.hero__scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,rgba(255,255,255,.4),rgba(255,255,255,0))}
@keyframes scrollPulse{0%,100%{opacity:.5;transform:translateX(-50%) translateY(0)}50%{opacity:1;transform:translateX(-50%) translateY(5px)}}

/* HERO CREDIT */
.hero__credit{position:absolute;bottom:1rem;right:1.5rem;z-index:2;font-size:.7rem;font-weight:300;color:rgba(255,255,255,.55);letter-spacing:.02em;font-style:italic}

/* SECTIONS */
.section{padding:var(--space-xl) 3rem}
.section--intro{padding-top:var(--space-2xl);padding-bottom:var(--space-2xl);display:flex;flex-direction:column;align-items:center;text-align:center}
.section--intro h2{margin-bottom:var(--space-lg);font-style:italic;font-weight:300;color:var(--color-brown)}
.section--intro p{margin:0 auto var(--space-md)}

/* EMBLEMS */
.emblems{display:flex;align-items:center;justify-content:center;gap:2.5rem;flex-wrap:wrap;margin-top:var(--space-lg);padding:0 1rem}
.emblems img{height:80px;width:auto;object-fit:contain;opacity:.75;transition:opacity var(--duration-fast);filter:grayscale(20%)}
.emblems img:hover{opacity:1;filter:grayscale(0%)}
.emblems a{display:inline-block;transition:transform var(--duration-fast)}
.emblems a:hover{transform:scale(1.05)}
.emblems--ack{margin-top:var(--space-md)}
.emblems--ack img{height:55px}

/* GALLERY SECTION (heading only) */
.section--gallery{padding:var(--space-xl) 0 var(--space-md);background:var(--color-cream)}
.gallery__heading{text-align:center;margin-bottom:0;padding:0 3rem}
.gallery__heading h2{font-size:clamp(1.8rem,3vw,2.8rem);letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--color-text-muted)}

/* SCROLL GALLERY / CAROUSEL — Light theme with thin borders + shadows */
.scroll-gallery{position:relative;width:100%;overflow:hidden;background:var(--color-cream);padding:var(--space-md) 0 var(--space-lg)}
.scroll-gallery__caption{text-align:center;font-family:var(--font-serif);font-size:clamp(1.3rem,2.5vw,2rem);font-weight:400;font-style:italic;color:var(--color-text);margin-bottom:var(--space-md);padding:0 2rem}
.scroll-gallery__track{display:flex;gap:1.5rem;width:max-content;animation:scrollLeft 50s linear infinite}
.scroll-gallery--reverse .scroll-gallery__track{animation:scrollRight 50s linear infinite}
.scroll-gallery__slide{flex-shrink:0;height:400px;overflow:hidden;border-radius:6px;cursor:pointer;position:relative;border:1px solid rgba(44,44,44,.1);box-shadow:4px 6px 20px rgba(44,44,44,.1)}
.scroll-gallery__slide img{height:100%;width:auto;object-fit:cover;display:block;transition:transform 1.2s var(--ease-out),filter .6s var(--ease-out)}
.scroll-gallery__slide:hover img{transform:scale(1.015);filter:brightness(1.03)}
.scroll-gallery__credit{display:block;text-align:center;margin-top:var(--space-sm);font-size:.78rem;font-weight:400;color:var(--color-text-muted);letter-spacing:.02em}
.scroll-gallery:hover .scroll-gallery__track{animation-play-state:paused}

/* Carousel speed overrides */
#scroll-gallery-spring .scroll-gallery__track{animation-duration:65s}
#scroll-gallery-summer .scroll-gallery__track{animation-duration:30s}
#scroll-gallery-autumn .scroll-gallery__track{animation-duration:60s}
#scroll-gallery-winter .scroll-gallery__track{animation-duration:35s}

@keyframes scrollLeft{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes scrollRight{0%{transform:translateX(-50%)}100%{transform:translateX(0)}}

/* MEASUREMENT PHOTOS */
.section--measurements{padding:var(--space-lg) 3rem;background:var(--color-cream);text-align:center}
.measurements__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);max-width:var(--max-width-wide);margin:0 auto}
.measurements__photo{width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:6px;border:1px solid rgba(44,44,44,.1);box-shadow:4px 6px 20px rgba(44,44,44,.1)}
.measurements__photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease-out)}
.measurements__photo:hover img{transform:scale(1.015)}
.measurements__credit{display:block;margin-top:var(--space-sm);font-size:.78rem;font-weight:400;color:var(--color-text-muted);letter-spacing:.02em}

/* EXTRA PHOTOS (non-seasonal) */
.section--extra-photos{padding:var(--space-lg) 3rem;background:var(--color-cream)}
.extra-photos__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md);max-width:var(--max-width-wide);margin:0 auto}
.extra-photos__photo{width:100%;aspect-ratio:3/2;overflow:hidden;border-radius:6px;border:1px solid rgba(44,44,44,.1);box-shadow:4px 6px 20px rgba(44,44,44,.1)}
.extra-photos__photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease-out)}
.extra-photos__photo:hover img{transform:scale(1.015)}

/* LANDSCAPE */
.section--landscape{padding:var(--space-2xl) 3rem;background:var(--color-bg)}
.landscape__text{max-width:var(--max-width-text);margin:0 auto var(--space-xl);text-align:center}
.landscape__text h2{margin-bottom:var(--space-lg)}
.landscape__text p{margin:0 auto var(--space-md)}
.landscape__photo-wrap{max-width:var(--max-width-wide);margin:0 auto}
.landscape__photo{width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:6px;border:1px solid rgba(44,44,44,.1);box-shadow:4px 6px 20px rgba(44,44,44,.1)}
.landscape__photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease-out)}
.landscape__photo:hover img{transform:scale(1.015)}

/* CHUBYNSKYI */
.section--chubynskyi{padding:var(--space-2xl) 3rem;background:var(--color-bg-alt)}
.chubynskyi__inner{max-width:var(--max-width-wide);margin:0 auto;display:grid;grid-template-columns:1fr 1.4fr;gap:var(--space-xl);align-items:center}
.chubynskyi__photo{width:100%;aspect-ratio:3/4;overflow:hidden;position:relative;border-radius:4px;box-shadow:0 20px 60px rgba(0,0,0,.12)}
.chubynskyi__photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease-out)}
.chubynskyi__photo:hover img{transform:scale(1.015)}
.chubynskyi__text h2{margin-bottom:var(--space-lg)}
.chubynskyi__text p{margin-bottom:var(--space-md)}
.chubynskyi__khutir{max-width:850px;margin:var(--space-xl) auto 0}
.chubynskyi__khutir-photo{width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:6px;border:1px solid rgba(44,44,44,.1);box-shadow:4px 6px 20px rgba(44,44,44,.1)}
.chubynskyi__khutir-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease-out)}
.chubynskyi__khutir-photo:hover img{transform:scale(1.015)}
.chubynskyi__khutir-source{margin-top:.6rem;font-size:.75rem;color:var(--color-text-subtle);text-align:center}
.chubynskyi__khutir-source a{color:var(--color-brown);text-decoration:underline;text-underline-offset:2px;transition:color var(--duration-fast)}
.chubynskyi__khutir-source a:hover{color:var(--color-green)}

/* ACKNOWLEDGEMENTS */
.section--ack{padding:var(--space-2xl) 3rem;background:var(--color-bg);text-align:center}
.section--ack h2{margin-bottom:var(--space-lg);font-weight:300;font-style:italic;color:var(--color-brown)}
.section--ack p{margin:0 auto var(--space-sm)}

/* FOOTER */
.footer{padding:var(--space-lg) 3rem;background:var(--color-text);color:rgba(245,242,236,.5);text-align:center}
.footer__inner{max-width:var(--max-width-wide);margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.footer__line{font-size:.78rem;font-weight:300;letter-spacing:.04em}
.footer__line--title{font-family:var(--font-serif);font-size:1.3rem;color:rgba(245,242,236,.75);margin-bottom:.2rem}
.footer__line--subtitle{font-size:.85rem;color:rgba(245,242,236,.5);font-style:italic;margin-bottom:.5rem}
.footer__line--institution{font-family:var(--font-serif);font-size:.95rem;color:rgba(245,242,236,.65)}
.footer__line--location{color:rgba(245,242,236,.4);font-style:italic;margin-bottom:.2rem}
.footer__line--label{color:rgba(245,242,236,.55);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;margin-top:.3rem}
.footer__line--photo{color:rgba(245,242,236,.45);font-style:italic}
.footer__divider{width:40px;height:1px;background:rgba(245,242,236,.12);margin:.8rem 0}
.footer__line--authentic{font-size:.72rem;font-style:italic;color:rgba(245,242,236,.4);margin-top:.5rem;max-width:400px;line-height:1.5}

/* Compact footer groups — tighter line spacing */
.footer__compact{display:flex;flex-direction:column;align-items:center;gap:.15rem}
.footer__compact .footer__line{margin:0}
.footer__compact .footer__line--label{margin-bottom:.2rem}

/* LIGHTBOX */
.lightbox{position:fixed;inset:0;z-index:9999;background:rgba(215,205,195,.96);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .4s var(--ease-out),visibility .4s;backdrop-filter:blur(8px)}
.lightbox.active{opacity:1;visibility:visible}
.lightbox__content{max-width:92vw;max-height:90vh;display:flex;align-items:center;justify-content:center}
.lightbox__img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:3px;opacity:0;transform:scale(.96);transition:opacity .4s var(--ease-out),transform .4s var(--ease-out);box-shadow:0 8px 40px rgba(0,0,0,.15)}
.lightbox.active .lightbox__img{opacity:1;transform:scale(1)}
.lightbox__close,.lightbox__prev,.lightbox__next{position:absolute;background:none;border:none;color:rgba(80,70,60,.5);font-size:2.5rem;cursor:pointer;z-index:10000;transition:color .4s var(--ease-out);padding:.5rem 1rem;line-height:1}
.lightbox__close:hover,.lightbox__prev:hover,.lightbox__next:hover{color:rgba(60,50,40,.85)}
.lightbox__close{top:1.5rem;right:1.5rem;font-size:2.8rem}
.lightbox__prev{left:1.5rem;top:50%;transform:translateY(-50%);font-size:3.5rem}
.lightbox__next{right:1.5rem;top:50%;transform:translateY(-50%);font-size:3.5rem}

/* SNAIL SECTION */
.section--snail{padding:var(--space-lg) 3rem;background:var(--color-bg);text-align:center}
.snail__wrap{max-width:500px;margin:0 auto}
.snail__photo{width:100%;overflow:hidden;border-radius:6px;border:1px solid rgba(44,44,44,.1);box-shadow:4px 6px 20px rgba(44,44,44,.1)}
.snail__photo img{width:100%;height:auto;object-fit:contain;display:block;transition:transform 1.2s var(--ease-out)}
.snail__photo:hover img{transform:scale(1.015)}
.snail__caption{font-family:var(--font-serif);font-size:clamp(1.1rem,2vw,1.5rem);font-weight:300;font-style:italic;color:var(--color-brown);margin-top:var(--space-sm)}

/* REVEAL */
.reveal{opacity:0;transform:translateY(30px);transition:opacity var(--duration-slow) var(--ease-out),transform var(--duration-slow) var(--ease-out)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.15s}
.reveal-delay-2{transition-delay:.3s}
.reveal-delay-3{transition-delay:.45s}

/* RESPONSIVE */
@media(max-width:900px){
  .nav{padding:1.2rem 1.5rem}.nav.scrolled{padding:.8rem 1.5rem}
  .nav__links{display:none;position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100vh;background:#F5F2EC;flex-direction:column;justify-content:center;align-items:center;gap:2rem;z-index:9998;overflow-y:auto}
  .nav__links.open{display:flex}
  .nav__link{font-size:1.1rem}
  .nav__lang{margin-left:0;padding-left:0;border-left:none;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}
  .nav__hamburger{display:flex;z-index:9999}
  .section{padding:var(--space-lg) 1.5rem}
  .section--intro{padding-top:var(--space-xl);padding-bottom:var(--space-xl)}
  .section--gallery{padding:var(--space-lg) 0 var(--space-sm)}
  .gallery__heading{padding:0 5%}
  .hero__content{padding:0 1.5rem 5rem}
  .hero__subtitle{font-size:.85rem;max-width:85vw}
  .hero__scroll{display:none}
  .hero__credit{bottom:.6rem;right:1rem;font-size:.6rem;max-width:60vw;text-align:right}
  .chubynskyi__inner{grid-template-columns:1fr;gap:var(--space-lg)}
  .chubynskyi__khutir{padding:0 5%}
  .section--landscape,.section--chubynskyi,.section--ack{padding:var(--space-xl) 1.5rem}
  .footer{padding:var(--space-lg) 1.5rem}
  .scroll-gallery__slide{height:280px}
  .scroll-gallery{padding:var(--space-sm) 0 var(--space-md)}
  .lightbox__prev{left:.5rem;font-size:2.5rem}
  .lightbox__next{right:.5rem;font-size:2.5rem}
  .lightbox__close{top:.8rem;right:.8rem;font-size:2.5rem;color:rgba(80,70,60,.7)}
  .measurements__grid{grid-template-columns:1fr;gap:var(--space-sm)}
  .extra-photos__grid{grid-template-columns:1fr;gap:var(--space-sm)}
  .section--measurements,.section--extra-photos{padding:var(--space-md) 1.5rem}
  .emblems{gap:1.5rem}
  .emblems img{height:55px}
  .chubynskyi__text h2{text-align:center}
  .section--snail{padding:var(--space-md) 1.5rem}
  .snail__wrap{max-width:350px}
}
@media(max-width:600px){
  .hero__title{font-size:clamp(2rem,8vw,3rem)}
  .hero__subtitle{font-size:.9rem}
  h2{font-size:clamp(1.5rem,5vw,2rem)}
  .scroll-gallery__slide{height:200px}
  .scroll-gallery__track{gap:.8rem}
  .emblems img{height:45px}
  .emblems{gap:1rem}
  .gallery__heading h2{font-size:clamp(1.5rem,5vw,2.2rem);font-weight:500}
}
