@font-face { font-family:'Cormorant Garamond'; font-style:italic; font-weight:400; font-display:swap; src:url(../fonts/cormorant-garamond-italic.woff2) format('woff2'); }
@font-face { font-family:'Cormorant Garamond'; font-style:normal; font-weight:400; font-display:swap; src:url(../fonts/cormorant-garamond-normal.woff2) format('woff2'); }
@font-face { font-family:'Inter'; font-style:normal; font-weight:300; font-display:swap; src:url(../fonts/inter.woff2) format('woff2'); }
@font-face { font-family:'Inter'; font-style:normal; font-weight:400; font-display:swap; src:url(../fonts/inter.woff2) format('woff2'); }

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
:root {
  --white:#f0ebe5; --black:#000000; --accent:#f0ebe5;
  --accent-dim:rgba(240,235,229,0.35); --text-muted:rgba(240,235,229,0.7);
  --text-dim:rgba(240,235,229,0.65);
  --font-serif:'Cormorant Garamond','Georgia',serif;
  --font-sans:'Inter','Helvetica Neue',sans-serif;
}
html { scroll-behavior:smooth; }
body::before,
body::after {
  content: '';
  position: fixed;
  top: 0;
  bottom: 0;
  width: 20px;
  background: var(--black);
  z-index: 9999;
  pointer-events: none;
}
body::before { left: 0; }
body::after  { right: 0; }
@media (max-width: 768px) {
  body::before, body::after { width: 10px; }
}
a, button { cursor: none; }
body { cursor: none; background:var(--black); color:var(--white); font-family:var(--font-sans); -webkit-font-smoothing:antialiased; }

.top-nav { position:fixed; top:0; left:0; right:0; z-index:100; height:48px; background:rgba(15,15,26,0.92); backdrop-filter:blur(12px); display:flex; align-items:center; justify-content:space-between; padding:0 48px; }
.breadcrumbs { font-size:13px; letter-spacing:1px; }
.breadcrumbs a { color:var(--text-muted); text-decoration:none; transition:color 0.3s; }
.breadcrumbs a:hover { color:var(--white); }
.breadcrumbs .sep { color:rgba(240,235,229,0.3); margin:0 10px; }
.breadcrumbs .current { color:var(--white); }
.nav-contact { font-family:var(--font-sans); font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--text-muted); text-decoration:none; transition:color 0.3s; white-space:nowrap; flex-shrink:0; }
.nav-contact:hover { color:var(--white); }
.nav-contact-icon { display:none; width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.5; }
.nav-contact-text { }
.top-nav-menu { display:flex; align-items:center; gap:16px; margin-left:auto; margin-right:20px; }
.top-nav-menu-btn { background:none; border:none; color:var(--text-muted); font-family:var(--font-sans); font-size:12px; letter-spacing:2px; text-transform:uppercase; cursor:pointer; padding:6px 0; transition:color 0.3s; }
.top-nav-menu-btn:hover { color:var(--white); }
.top-nav-dropdown { position:absolute; top:48px; right:0; background:rgba(15,15,26,0.97); backdrop-filter:blur(12px); min-width:280px; border-top:1px solid rgba(240,235,229,0.08); display:none; flex-direction:column; padding:8px 0; }
.top-nav-dropdown.open { display:flex; }
.top-nav-dropdown a { color:var(--text-muted); text-decoration:none; font-family:var(--font-sans); font-size:12px; letter-spacing:2px; text-transform:uppercase; padding:14px 28px; transition:color 0.3s, background 0.3s; }
.top-nav-dropdown a:hover { color:var(--white); background:rgba(240,235,229,0.04); }
.top-nav-dropdown a.current { color:var(--white); }
.nav-dd-label { font-family:var(--font-sans); font-size:10px; font-weight:400; letter-spacing:3px; text-transform:uppercase; color:rgba(201,169,110,0.75); padding:14px 28px 8px; }
.nav-dd-divider { border-top:1px solid rgba(240,235,229,0.08); margin-top:6px; padding-top:14px; }
.top-nav-dropdown .nav-page-item { display:flex !important; align-items:center; justify-content:space-between; gap:14px; }
.top-nav-dropdown .nav-page-item > span:first-child { flex:1; }
.top-nav-dropdown .nav-arrow { width:12px; height:12px; fill:none; stroke:rgba(201,169,110,0.6); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; transition:stroke 0.3s, transform 0.3s; }
.top-nav-dropdown .nav-page-item:hover .nav-arrow { stroke:var(--white); transform:translate(2px,-2px); }
.top-nav-dropdown .nav-anchor-item .nav-hash { color:rgba(201,169,110,0.5); margin-right:8px; font-weight:300; }
.top-nav-dropdown .nav-anchor-item:hover .nav-hash { color:var(--accent); }
@media (max-width:600px) {
  .top-nav-menu { margin-right:12px; }
  .top-nav-dropdown { min-width:220px; top:44px; }
  .top-nav-dropdown a { padding:12px 20px; font-size:11px; letter-spacing:1.5px; }
}

.page-hero { position:relative; width:100%; height:80vh; min-height:500px; overflow:hidden; margin-top:48px; }
.page-hero img { width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.page-hero::after { content:''; position:absolute; top:0; left:0; right:0; bottom:0;
  background: linear-gradient(to top, rgba(0,0,0,0.25) 0%, transparent 50%); }
.page-hero-text { position:absolute; bottom:6vh; left:48px; z-index:2; max-width:720px; }
.page-hero-title { font-family:var(--font-serif); font-size:clamp(36px,5vw,64px); font-weight:400; letter-spacing:0.08em; text-transform:uppercase; color:var(--white); line-height:1.1; margin-bottom:0; text-shadow:0 2px 12px rgba(0,0,0,0.4); }
.page-hero-subtitle { font-family:var(--font-sans); font-size:13px; font-weight:300; letter-spacing:3px; text-transform:uppercase; color:#555; }

.section { max-width:900px; margin:0 auto; padding:80px 48px; }
.section-label { font-family:var(--font-sans); font-size:11px; font-weight:400; letter-spacing:4px; text-transform:uppercase; color:var(--text-dim); margin-bottom:24px; }
.section-heading { font-family:var(--font-serif); font-size:clamp(24px,3vw,36px); font-weight:400; letter-spacing:0.05em; color:var(--white); margin-bottom:24px; }
.section-text { font-family:var(--font-sans); font-size:14px; font-weight:300; line-height:1.8; color:var(--text-muted); margin-bottom:24px; }

.video-wrap { position:relative; padding-bottom:56.25%; height:0; overflow:hidden; border-radius:4px; margin-bottom:48px; }
.video-wrap iframe { position:absolute; top:0; left:0; width:100%; height:100%; border:none; }

/* STYLE - chess layout (matching main page) */
.style-chess { position:relative; width:100%; background:#000; overflow:hidden; display:block; }
.style-chess-photo { position:relative; width:100%; height:auto; z-index:0; }
.style-chess-photo img, .style-chess-photo picture, .style-chess-photo picture img {
  position:relative; width:100%; height:auto; max-height:none; object-fit:contain; object-position:center;
  display:block; animation: chess-alive-1 12s ease-in-out infinite alternate; transform-origin:center center;
}
.style-chess-photo::after { display:none; }
.style-chess-content {
  position:absolute; left:0; bottom:0; width:100%; height:auto; z-index:2;
  padding:clamp(140px,22vh,260px) 8% 56px; text-align:left;
  background:linear-gradient(to top, rgba(0,0,0,0.94) 0%, rgba(0,0,0,0.88) 25%, rgba(0,0,0,0.7) 55%, rgba(0,0,0,0.35) 82%, transparent 100%); color:#fff;
}
.style-chess-content .section-label { font-family:var(--font-serif); font-size:clamp(34px,3.4vw,52px); font-weight:400; font-style:italic; letter-spacing:0.01em; text-transform:none; color:#fff; margin-bottom:22px; line-height:1.08; display:block; }
.style-chess-content .section-label::after { content:""; display:block; width:64px; height:1px; background:rgba(255,255,255,0.6); margin-top:18px; }
.style-chess-content p { font-family:var(--font-sans); font-size:clamp(15px,1.05vw,17px); font-weight:400; line-height:1.7; color:rgba(255,255,255,0.94); letter-spacing:0.003em; margin-top:0; margin-bottom:14px; }
/* Десктоп: текст не широкой полосой внизу, а колонкой слева (как на svadby) */
@media (min-width:769px) {
  .style-chess-content {
    left:0; top:0; bottom:0; right:auto; width:42%; max-width:700px; height:auto;
    padding:56px 64px 88px;
    background:linear-gradient(to right, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.78) 60%, rgba(0,0,0,0.4) 90%, transparent 100%);
    display:flex; flex-direction:column; justify-content:flex-end;
  }
  .style-chess-content p { font-size:clamp(18px,1.4vw,22px); line-height:1.7; margin-bottom:16px; }
  .style-chess-content .section-label { font-size:clamp(40px,3.4vw,56px); margin-bottom:26px; }
}
@keyframes chess-alive-1 {
  0%   { transform:scale(1.0) translate(0,0) rotate(0deg); opacity:1; }
  30%  { transform:scale(1.04) translate(-1%,0.5%) rotate(0.3deg); opacity:0.97; }
  60%  { transform:scale(1.02) translate(0.5%,-0.5%) rotate(-0.2deg); opacity:0.95; }
  100% { transform:scale(1.06) translate(-0.5%,1%) rotate(0.4deg); opacity:0.98; }
}
@keyframes chess-light {
  0%   { transform:translate(0,0); opacity:0.3; }
  50%  { transform:translate(10%,15%); opacity:0.7; }
  100% { transform:translate(-5%,5%); opacity:0.4; }
}

/* GALLERY */
#video, #style, #gallery, #format { scroll-margin-top: 60px; }
.gallery-grid { display:flex; gap:6px; align-items:flex-start; }
.gallery-grid .gcol { flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:6px; }
.gallery-grid .gcol > picture { display:block; cursor:pointer; transition:transform 0.5s ease; }
.gallery-grid .gcol > picture:hover { transform:scale(1.02); }
.gallery-grid img { width:100%; height:auto; display:block; }
/* COLLAPSE GALLERY */
.gallery-wrap { position:relative; max-height:560px; overflow:hidden; }
.gallery-wrap.expanded { max-height:none; overflow:visible; }
.gallery-wrap::after { content:''; position:absolute; bottom:0; left:0; right:0; height:160px;
  background:linear-gradient(to bottom, transparent 0%, var(--black) 88%);
  pointer-events:none; transition:opacity 0.4s ease; }
.gallery-wrap.expanded::after { opacity:0; }
.gallery-toggle { display:block; margin:20px auto 0; background:none; border:1px solid rgba(201,169,110,0.4);
  font-family:var(--font-sans); font-size:11px; letter-spacing:3px; text-transform:uppercase;
  color:var(--accent); padding:13px 36px; cursor:pointer; transition:all 0.3s ease; }
.gallery-toggle:hover { background:rgba(201,169,110,0.08); border-color:var(--accent); }
.gallery-placeholder { text-align:center; padding:60px 24px; font-family:var(--font-serif); font-size:18px; font-style:italic; color:var(--text-dim); }

/* CTA */
.cta-block { text-align:center; padding:60px 24px; }
.cta-btn { display:inline-block; font-family:var(--font-sans); font-size:13px; font-weight:400; letter-spacing:3px; text-transform:uppercase; color:var(--accent); text-decoration:none; border:1px solid var(--accent-dim); padding:14px 40px; transition:all 0.4s ease; }
.cta-btn:hover { background:var(--accent); color:var(--black); border-color:var(--accent); }

footer { text-align:center; padding:32px 24px; font-size:12px; color:var(--text-dim); letter-spacing:1px; }
footer a { color:var(--text-muted); text-decoration:none; }

@media (max-width:768px) {
  .top-nav { padding:0 16px; height:44px; }
  .breadcrumbs { font-size:12px; letter-spacing:0.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin-right:12px; }
  .breadcrumbs .sep { margin:0 6px; }
  .nav-contact-text { display:none; }
  .nav-contact-icon { display:block; }
  .nav-contact { padding:8px; }
  .page-hero { height:60vh; min-height:400px; }
  .page-hero-text { left:16px; bottom:6vh; max-width:calc(100% - 32px); }
  .section { padding:60px 24px; }
  .style-chess-content { padding:36px 24px 44px; max-width:none; }
  .style-chess-content .section-label { font-size:30px; margin-bottom:18px; }
  .style-chess-content .section-label::after { margin-top:16px; }
  .style-chess-content p { font-size:15px; line-height:1.7; margin-bottom:12px; }
  .style-chess-content p:last-child { margin-bottom:0; }
  .gallery-grid { display:block; columns:2; column-gap:4px; gap:0; }
  .gallery-grid .gcol { display:contents; }
  .gallery-grid .gcol > picture { display:block; margin-bottom:4px; break-inside:avoid; width:100%; }
  .gallery-wrap { max-height:560px; }
  .gallery-wrap::after { height:120px; }
}
@media (max-width:480px) {
  .page-hero { height:50vh; }
}
body, body * { cursor:none !important; }
@media(pointer:coarse){ body, body * { cursor:auto !important; } }