/* =========================================================
   ECSTATIC DANCE URAL — dark glass edition
   Deep forest-charcoal base, aurora gradient atmosphere,
   glass panels, warm cream + spring green accents.
========================================================= */
:root{
  --bg:        #101511;
  --bg-2:      #151C16;
  --ink:       #F2EFE7;
  --ink-soft:  rgba(242,239,231,.68);
  --stone:     rgba(242,239,231,.42);
  --line:      rgba(242,239,231,.12);
  --green:     #7BE3A5;
  --green-2:   #3E7D5C;
  --clay:      #E9A96F;
  --clay-soft: #E9C7A9;
  --violet:    #B69CD6;

  --glass:        rgba(255,255,255,.055);
  --glass-strong: rgba(22,28,23,.82);
  --glass-border: rgba(255,255,255,.12);

  --serif: 'Fraunces', 'Iowan Old Style', Georgia, serif;
  --sans:  'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --container: 1180px;
  --gutter: clamp(20px, 5vw, 64px);
  --radius: 20px;
  --ease: cubic-bezier(.16,.84,.32,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:400; margin:0; color:var(--ink); }
p{ margin:0; }
button{ font-family:var(--sans); cursor:pointer; }

.eyebrow{
  font-size:12.5px; font-weight:800; letter-spacing:.16em; text-transform:uppercase;
  color:var(--green); margin-bottom:14px;
}
.grad-text{
  font-style:italic;
  background:linear-gradient(100deg, var(--green) 10%, var(--clay-soft) 90%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* =========================================================
   Aurora atmosphere + grain (fixed behind everything)
========================================================= */
.aurora{ position:fixed; inset:0; z-index:-2; overflow:hidden; background:radial-gradient(120% 90% at 50% 0%, #15201A 0%, var(--bg) 55%); }
.aurora__blob{
  position:absolute; border-radius:50%; filter:blur(90px); opacity:.5;
  will-change:transform;
}
.aurora__blob--1{
  width:55vw; height:55vw; left:-12vw; top:-16vw;
  background:radial-gradient(circle, rgba(62,125,92,.75), transparent 65%);
  animation:blob1 26s ease-in-out infinite alternate;
}
.aurora__blob--2{
  width:44vw; height:44vw; right:-14vw; top:22vh;
  background:radial-gradient(circle, rgba(233,169,111,.4), transparent 65%);
  animation:blob2 32s ease-in-out infinite alternate;
}
.aurora__blob--3{
  width:50vw; height:50vw; left:22vw; bottom:-24vw;
  background:radial-gradient(circle, rgba(123,111,214,.32), transparent 65%);
  animation:blob3 38s ease-in-out infinite alternate;
}
@keyframes blob1{ to{ transform:translate(10vw, 8vh) scale(1.15); } }
@keyframes blob2{ to{ transform:translate(-8vw, 12vh) scale(.92); } }
@keyframes blob3{ to{ transform:translate(-10vw, -8vh) scale(1.1); } }

.grain{
  position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.5; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E");
}

/* =========================================================
   Glass primitives
========================================================= */
.glass-panel{
  background:var(--glass);
  border:1px solid var(--glass-border);
  border-radius:var(--radius);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.glass-strong{
  background:var(--glass-strong);
  border:1px solid var(--glass-border);
  border-radius:22px;
  backdrop-filter:blur(26px);
  -webkit-backdrop-filter:blur(26px);
}
.glass-card{
  padding:32px 28px;
  background:var(--glass);
  border:1px solid var(--glass-border);
  border-radius:var(--radius);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  transition:border-color .4s, background .4s, transform .5s var(--ease), box-shadow .5s var(--ease);
}
.glass-card:hover{ border-color:rgba(123,227,165,.35); background:rgba(255,255,255,.08); }

/* 3D tilt (JS sets --rx/--ry) */
.tilt{
  transform:perspective(900px) rotateX(calc(var(--rx,0)*1deg)) rotateY(calc(var(--ry,0)*1deg)) translateZ(0);
  transition:transform .25s ease-out;
}

/* =========================================================
   Preloader
========================================================= */
.preloader{
  position:fixed; inset:0; z-index:1000; background:var(--bg);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px;
  transition:opacity .7s var(--ease), visibility .7s var(--ease);
}
.preloader__wave{ width:220px; }
.preloader__wave path{ stroke-dasharray:600; stroke-dashoffset:600; animation:drawWave 1.6s var(--ease) forwards; }
@keyframes drawWave{ to{ stroke-dashoffset:0; } }
.preloader p{ font-size:12px; letter-spacing:.32em; text-transform:uppercase; color:var(--stone); }
.preloader.is-hidden{ opacity:0; visibility:hidden; pointer-events:none; }
body.is-loading{ overflow:hidden; }

/* =========================================================
   Scroll progress + cursor
========================================================= */
.progress{
  position:fixed; top:0; left:0; height:2.5px; width:0%; z-index:300;
  background:linear-gradient(90deg, var(--green), var(--clay-soft));
  border-radius:0 3px 3px 0;
}
.cursor-glow{
  position:fixed; z-index:999; top:0; left:0;
  width:34px; height:34px; margin:-17px 0 0 -17px; border-radius:50%;
  border:1.3px solid rgba(123,227,165,.8);
  pointer-events:none; transform:translate(-100px,-100px); opacity:0;
  transition:width .3s var(--ease), height .3s var(--ease), margin .3s var(--ease), background .3s, opacity .3s;
}
.cursor-glow.is-active{ opacity:1; }
.cursor-glow.is-hover{ width:64px; height:64px; margin:-32px 0 0 -32px; background:rgba(123,227,165,.12); }
@media (hover:none),(pointer:coarse){ .cursor-glow{ display:none; } }

/* =========================================================
   Reveals
========================================================= */
.reveal{
  opacity:0; transform:translateY(28px);
  transition:opacity .9s var(--ease), transform .9s var(--ease);
  transition-delay:calc(var(--d,0)*90ms);
}
.reveal.is-visible{ opacity:1; transform:translateY(0); }
.mask-reveal{ display:block; overflow:hidden; }
.mask-reveal > span{
  display:block; transform:translateY(112%);
  transition:transform 1s var(--ease);
  transition-delay:calc(var(--d,0)*110ms);
}
.mask-reveal.is-visible > span{ transform:translateY(0); }
.reveal-clip{ clip-path:inset(0 0 100% 0); transition:clip-path 1.1s var(--ease); }
.reveal-clip.is-visible{ clip-path:inset(0 0 0% 0); }

/* =========================================================
   Nav (glass)
========================================================= */
.nav{
  position:fixed; top:14px; left:50%; transform:translateX(-50%);
  width:min(calc(100% - 32px), 1240px); z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 22px;
  border-radius:999px;
  background:rgba(16,21,17,.4);
  border:1px solid var(--glass-border);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  transition:background .4s, box-shadow .4s;
}
.nav.is-scrolled{ background:rgba(16,21,17,.75); box-shadow:0 12px 40px rgba(0,0,0,.35); }
.nav__logo{ display:flex; align-items:center; gap:10px; font-family:var(--serif); font-size:18px; }
.nav__logo span{ color:var(--green); font-style:italic; }
.nav__wave{ width:28px; height:17px; color:var(--clay-soft); }
.nav__links{ display:flex; align-items:center; gap:28px; font-size:14px; font-weight:600; }
.nav__links a{ color:var(--ink-soft); transition:color .25s; }
.nav__links a:hover{ color:var(--green); }
.nav__burger{ display:none; background:none; border:none; width:30px; height:20px; position:relative; padding:0; }
.nav__burger span{ position:absolute; left:0; right:0; height:2px; background:var(--ink); border-radius:2px; transition:.3s; }
.nav__burger span:nth-child(1){ top:0; } .nav__burger span:nth-child(2){ top:9px; } .nav__burger span:nth-child(3){ top:18px; }

/* =========================================================
   Hero
========================================================= */
.hero{
  position:relative; min-height:100vh;
  display:flex; align-items:flex-end;
  overflow:hidden; padding:0;
}
.hero__photo{
  position:absolute; right:0; top:0; bottom:0; width:58%;
  will-change:transform;
}
.hero__photo::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg, var(--bg) 2%, rgba(16,21,17,.25) 45%, rgba(16,21,17,.05) 100%),
             linear-gradient(0deg, var(--bg) 4%, transparent 40%);
}
.hero__photo img{
  width:100%; height:100%; object-fit:cover; object-position:center 20%;
  animation:kenBurns 24s ease-in-out infinite alternate;
}
@keyframes kenBurns{ 0%{ transform:scale(1.02); } 100%{ transform:scale(1.12) translateX(-1.5%); } }
.hero__veil{
  position:absolute; inset:0;
  background:radial-gradient(70% 60% at 24% 60%, rgba(16,21,17,.55), transparent 70%);
  pointer-events:none;
}
.hero__content{
  position:relative; z-index:2;
  padding:0 var(--gutter) 110px;
  max-width:760px;
}
.hero__title{
  font-size:clamp(44px, 8vw, 92px);
  line-height:1.02; letter-spacing:-.015em;
  display:flex; flex-direction:column;
}
.hero__title-italic{ font-style:italic; color:var(--clay-soft); }
.hero__subtitle{
  margin-top:26px; max-width:480px;
  font-size:17.5px; line-height:1.68; color:var(--ink-soft);
}
.hero__actions{ margin-top:38px; display:flex; gap:14px; flex-wrap:wrap; }
.btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  padding:15px 30px; border-radius:999px;
  font-size:14.5px; font-weight:700; letter-spacing:.02em;
  transition:transform .3s var(--ease), background .3s, color .3s, border-color .3s, box-shadow .3s;
}
.btn--solid{
  background:linear-gradient(100deg, var(--green), #5BC98B);
  color:#0D130E;
  box-shadow:0 8px 30px rgba(123,227,165,.25);
}
.btn--solid:hover{ box-shadow:0 12px 40px rgba(123,227,165,.4); }
.btn--glass{
  border:1px solid var(--glass-border); color:var(--ink);
  background:var(--glass);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
}
.btn--glass:hover{ border-color:rgba(123,227,165,.5); }
.magnetic{ translate:calc(var(--mx,0)*1px) calc(var(--my,0)*1px); }

.hero__scroll{
  position:absolute; z-index:2; bottom:32px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:8px;
  color:var(--stone); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
}
.hero__scroll span{ width:1px; height:38px; background:var(--line); position:relative; overflow:hidden; }
.hero__scroll span::after{
  content:''; position:absolute; left:0; top:-100%; width:100%; height:100%;
  background:var(--green); animation:scrollLine 1.8s ease-in-out infinite;
}
@keyframes scrollLine{ 0%{ top:-100%; } 60%{ top:100%; } 100%{ top:100%; } }

/* =========================================================
   Marquee
========================================================= */
.marquee{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  overflow:hidden; padding:20px 0; white-space:nowrap;
  background:rgba(255,255,255,.02);
}
.marquee__track{
  display:inline-flex; gap:30px; align-items:center; width:max-content;
  font-family:var(--serif); font-style:italic; font-size:21px; color:var(--clay-soft);
  animation:marqueeScroll 34s linear infinite;
}
.marquee__track i{ font-style:normal; font-size:14px; color:var(--green); opacity:.7; }
@keyframes marqueeScroll{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

/* =========================================================
   Sections shared
========================================================= */
.section-head{ max-width:640px; margin:0 auto 56px; padding:0 var(--gutter); text-align:center; }
.section-head h2{ font-size:clamp(30px,4.4vw,46px); line-height:1.12; }
.section-head__note{ margin-top:14px; color:var(--stone); font-size:14px; }

/* =========================================================
   About
========================================================= */
.about{ padding:110px 0 90px; }
.about__lead{ max-width:720px; margin:0 auto 56px; padding:0 var(--gutter); text-align:center; }
.about__lead p{ font-size:19px; line-height:1.75; color:var(--ink-soft); }
.about__cards{
  max-width:var(--container); margin:0 auto 56px; padding:0 var(--gutter);
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
}
.glass-card__icon{ width:42px; height:42px; color:var(--green); margin-bottom:20px; }
.glass-card__icon svg{ width:100%; height:100%; }
.glass-card h3{ font-size:20px; margin-bottom:10px; }
.glass-card p{ color:var(--ink-soft); font-size:14.5px; line-height:1.6; }
.about__rules{
  max-width:720px; margin:0 auto; padding:0 var(--gutter);
  display:flex; flex-direction:column; gap:16px;
}
.about__rules li{
  position:relative; padding-left:30px; font-size:16px; line-height:1.6; color:var(--ink);
}
.about__rules li::before{
  content:''; position:absolute; left:0; top:11px; width:14px; height:1.5px;
  background:linear-gradient(90deg, var(--green), var(--clay-soft));
}

/* =========================================================
   Stats
========================================================= */
.stats{ padding:20px var(--gutter) 110px; max-width:var(--container); margin:0 auto; }
.stats__grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:12px;
  padding:44px 30px; text-align:center;
}
.stats__num, .stats__suffix{ font-family:var(--serif); color:var(--green); }
.stats__num{ font-size:clamp(38px,4.6vw,56px); }
.stats__suffix{ font-size:clamp(26px,3.2vw,36px); }
.stats__item p{ margin-top:6px; color:var(--stone); font-size:13.5px; }

/* =========================================================
   Feed
========================================================= */
.feed{ padding:20px var(--gutter) 120px; max-width:var(--container); margin:0 auto; }
.feed__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.feed-card{
  overflow:hidden; cursor:pointer; display:flex; flex-direction:column; padding:0;
}
.feed-card:hover{ box-shadow:0 24px 60px rgba(0,0,0,.35); }
.feed-card__media{ aspect-ratio:4/3; overflow:hidden; }
.feed-card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.feed-card:hover .feed-card__media img{ transform:scale(1.06); }
.feed-card__symbol{
  aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;
  font-size:52px; color:var(--clay-soft);
  background:radial-gradient(80% 80% at 50% 30%, rgba(123,227,165,.14), transparent);
}
.feed-card__body{ padding:22px 24px 26px; display:flex; flex-direction:column; gap:10px; flex:1; }
.tag{
  align-self:flex-start; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  padding:5px 12px; border-radius:999px; border:1px solid transparent;
}
.tag--clay{ color:var(--clay); border-color:rgba(233,169,111,.4); background:rgba(233,169,111,.1); }
.tag--green{ color:var(--green); border-color:rgba(123,227,165,.4); background:rgba(123,227,165,.08); }
.tag--violet{ color:var(--violet); border-color:rgba(182,156,214,.4); background:rgba(182,156,214,.1); }
.tag--ink{ color:var(--ink); border-color:var(--glass-border); background:var(--glass); }
.tag--stone{ color:var(--stone); border-color:var(--glass-border); background:var(--glass); }
.feed-card__body h3{ font-size:20px; line-height:1.3; }
.feed-card__body p{ color:var(--ink-soft); font-size:14px; line-height:1.6; flex:1; }
.feed-card__more{ font-size:13px; font-weight:700; color:var(--green); }

/* =========================================================
   Post modal
========================================================= */
.post-modal{
  position:fixed; inset:0; z-index:600;
  background:rgba(8,10,8,.7);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  display:flex; align-items:flex-start; justify-content:center;
  padding:5vh 20px;
  opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility .4s;
}
.post-modal.is-open{ opacity:1; visibility:visible; }
.post-modal__inner{
  max-width:720px; width:100%; max-height:90vh; position:relative;
  box-shadow:0 40px 120px rgba(0,0,0,.6);
  transform:translateY(24px); transition:transform .4s var(--ease);
}
.post-modal.is-open .post-modal__inner{ transform:translateY(0); }
.post-modal__scroll{ max-height:90vh; overflow-y:auto; padding:56px 44px 50px; }
.post-modal__close{
  position:absolute; top:16px; right:16px; z-index:2;
  width:40px; height:40px; border-radius:50%;
  border:1px solid var(--glass-border); background:var(--glass);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  font-size:15px; color:var(--ink);
}
.post-modal__scroll h2{ font-size:clamp(24px,3.4vw,32px); line-height:1.25; margin:14px 0 6px; }
.post-modal__meta{ color:var(--stone); font-size:13.5px; margin-bottom:22px; }
.post-modal__cover{ width:100%; border-radius:14px; margin-bottom:24px; aspect-ratio:16/10; object-fit:cover; }
.post-modal__scroll p{ color:var(--ink-soft); font-size:15.5px; line-height:1.75; margin-bottom:18px; }
.post-modal__gallery{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:8px; }
.post-modal__gallery img{ width:100%; border-radius:12px; aspect-ratio:1/1; object-fit:cover; }
.post-modal__scroll blockquote{
  margin:0 0 20px; padding:18px 22px;
  border-left:2px solid var(--green);
  background:var(--glass); border-radius:0 14px 14px 0;
  font-family:var(--serif); font-style:italic; font-size:15.5px; line-height:1.6;
}
.post-modal__scroll blockquote footer{ margin-top:10px; font-family:var(--sans); font-style:normal; font-size:12px; color:var(--stone); }
.post-modal__list{
  list-style:none; counter-reset:agreement; margin:0 0 18px; padding:0;
  display:flex; flex-direction:column; gap:14px;
}
.post-modal__list li{
  counter-increment:agreement;
  position:relative; padding-left:44px;
  color:var(--ink-soft); font-size:15.5px; line-height:1.65;
}
.post-modal__list li::before{
  content:counter(agreement);
  position:absolute; left:0; top:2px;
  width:28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:14px; color:var(--green);
  border:1px solid rgba(123,227,165,.4); background:rgba(123,227,165,.08);
}
.post-modal__list strong{ color:var(--ink); font-weight:700; }
body.modal-open{ overflow:hidden; }

/* =========================================================
   Afishas
========================================================= */
.afishas{ padding:20px var(--gutter) 120px; max-width:var(--container); margin:0 auto; }
.afishas__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.afisha-card{
  position:relative; border-radius:var(--radius); overflow:hidden; aspect-ratio:3/4;
  border:1px solid var(--glass-border);
  transition:box-shadow .4s var(--ease), border-color .4s;
}
.afisha-card:hover{ box-shadow:0 24px 60px rgba(0,0,0,.4); border-color:rgba(123,227,165,.3); }
.afisha-card img{ width:100%; height:100%; object-fit:cover; }
.afisha-card__label{
  position:absolute; left:0; right:0; bottom:0; padding:20px;
  background:linear-gradient(180deg, transparent, rgba(8,10,8,.9));
  display:flex; justify-content:space-between; align-items:flex-end;
}
.afisha-card__label h3{ font-size:19px; }
.afisha-card__label span{ font-size:13px; font-weight:700; color:var(--clay-soft); }
.afisha-card--text{
  display:flex; flex-direction:column; justify-content:flex-end; padding:26px;
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
}
.afisha-card--text h3{ font-size:26px; margin:10px 0 8px; }
.afisha-card--text p{ color:var(--ink-soft); font-size:13.5px; line-height:1.55; margin-bottom:16px; }
.afisha-card--text span{ font-weight:800; font-size:14px; color:var(--clay-soft); }
.afisha-card__type{ font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--stone); font-weight:800; }
.afisha-card--text[data-tone="clay"]{ background:linear-gradient(160deg, rgba(233,169,111,.28), rgba(233,169,111,.05)); }
.afisha-card--text[data-tone="green"]{ background:linear-gradient(160deg, rgba(123,227,165,.22), rgba(123,227,165,.04)); }
.afisha-card--text[data-tone="violet"]{ background:linear-gradient(160deg, rgba(182,156,214,.24), rgba(182,156,214,.05)); }
.afisha-card--text[data-tone="light"]{ background:linear-gradient(160deg, rgba(242,239,231,.16), rgba(242,239,231,.03)); }
.afisha-card--text[data-tone="glass"]{ background:var(--glass); }

/* =========================================================
   Gallery / albums
========================================================= */
.gallery{ padding:20px var(--gutter) 120px; max-width:var(--container); margin:0 auto; }
.gallery__filters{ display:flex; justify-content:center; gap:10px; margin-bottom:42px; flex-wrap:wrap; }
.filter-btn{
  border:1px solid var(--glass-border); background:var(--glass); color:var(--ink-soft);
  padding:10px 22px; border-radius:999px; font-size:13.5px; font-weight:700;
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  transition:.3s var(--ease);
}
.filter-btn:hover{ border-color:rgba(123,227,165,.5); color:var(--ink); }
.filter-btn.is-active{ background:var(--green); border-color:var(--green); color:#0D130E; }
.gallery__grid{ columns:4 260px; column-gap:16px; }
.gallery__item{
  break-inside:avoid; margin-bottom:16px; border-radius:16px; overflow:hidden;
  position:relative; cursor:pointer;
  border:1px solid var(--glass-border);
}
.gallery__item.is-hidden{ display:none; }
.gallery__item img{ width:100%; display:block; transition:transform .7s var(--ease), filter .5s; filter:saturate(.96); }
.gallery__item:hover img{ transform:scale(1.06); filter:saturate(1.1); }
.gallery__item::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 55%, rgba(8,10,8,.4) 100%);
  opacity:0; transition:opacity .4s;
}
.gallery__item:hover::after{ opacity:1; }

.vk-albums{ margin-top:48px; text-align:center; }
.vk-albums__note{ color:var(--stone); font-size:14px; margin-bottom:22px; }
.vk-albums__links{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; }
.vk-album{
  display:inline-flex; align-items:center; gap:8px;
  padding:11px 20px; border-radius:999px;
  border:1px solid var(--glass-border); background:var(--glass);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  font-size:13.5px; font-weight:600; color:var(--ink-soft);
  transition:border-color .3s, background .3s, color .3s;
}
.vk-album span{ font-size:11.5px; font-weight:700; color:var(--clay-soft); }
.vk-album:hover{ border-color:rgba(123,227,165,.5); background:rgba(123,227,165,.06); color:var(--ink); }
.vk-album--all{ color:var(--green); font-weight:700; }

/* Lightbox */
.lightbox{
  position:fixed; inset:0; z-index:500;
  background:rgba(6,8,6,.94);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility .4s;
}
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox img{ max-width:88vw; max-height:84vh; border-radius:10px; box-shadow:0 30px 90px rgba(0,0,0,.6); }
.lightbox__close{
  position:absolute; top:26px; right:32px; background:none; border:none; color:var(--ink);
  font-size:24px; opacity:.75; transition:opacity .25s;
}
.lightbox__close:hover{ opacity:1; }
.lightbox__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  background:var(--glass); border:1px solid var(--glass-border); color:var(--ink);
  width:50px; height:50px; border-radius:50%; font-size:24px;
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  display:flex; align-items:center; justify-content:center; transition:background .25s;
}
.lightbox__nav:hover{ background:rgba(123,227,165,.2); }
.lightbox__nav--prev{ left:22px; } .lightbox__nav--next{ right:22px; }

/* =========================================================
   Bio
========================================================= */
.bio{
  max-width:var(--container); margin:0 auto; padding:20px var(--gutter) 120px;
  display:grid; grid-template-columns:.85fr 1.15fr; gap:44px; align-items:center;
}
.bio__media{ border-radius:var(--radius); overflow:hidden; aspect-ratio:3/4; border:1px solid var(--glass-border); }
.bio__media img{ width:100%; height:100%; object-fit:cover; }
.bio__content{ padding:44px 42px; }
.bio__content h2{ font-size:clamp(26px,3.4vw,38px); line-height:1.2; margin-bottom:20px; }
.bio__content p{ color:var(--ink-soft); font-size:16px; line-height:1.7; margin-bottom:16px; max-width:460px; }
.bio__actions{ margin-top:8px; display:flex; gap:12px; flex-wrap:wrap; }

/* =========================================================
   Contacts
========================================================= */
.contacts{ padding:20px var(--gutter) 120px; max-width:900px; margin:0 auto; }
.contacts__inner{ padding:70px 50px; text-align:center; }
.contacts h2{ font-size:clamp(30px,4.6vw,48px); margin-bottom:18px; }
.contacts__text{ color:var(--ink-soft); font-size:15.5px; margin-bottom:40px; }
.contacts__links{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.contact-link{
  display:flex; align-items:center; gap:10px;
  padding:15px 26px; border-radius:999px;
  border:1px solid var(--glass-border); background:var(--glass);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  font-size:14.5px; font-weight:600;
  transition:border-color .3s, background .3s;
}
.contact-link span{ font-weight:800; color:var(--green); }
.contact-link:hover{ border-color:rgba(123,227,165,.5); background:rgba(123,227,165,.06); }
.contact-link--muted{ opacity:.5; cursor:default; }

/* =========================================================
   Footer
========================================================= */
.footer{
  padding:52px var(--gutter) 44px; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:14px;
  color:var(--stone); font-size:13px;
  border-top:1px solid var(--line);
}
.footer__wave{ width:56px; height:22px; color:var(--clay-soft); }
.footer__origin{ color:var(--ink-soft); }
.footer__origin a{ color:var(--green); font-weight:700; text-decoration:underline; text-underline-offset:3px; }

/* =========================================================
   Responsive
========================================================= */
@media (max-width:980px){
  .hero__photo{ width:100%; opacity:.5; }
  .hero__photo::after{
    background:linear-gradient(180deg, rgba(16,21,17,.35) 0%, rgba(16,21,17,.75) 75%, var(--bg) 100%);
  }
  .about__cards{ grid-template-columns:1fr; }
  .feed__grid{ grid-template-columns:repeat(2,1fr); }
  .afishas__grid{ grid-template-columns:repeat(2,1fr); }
  .bio{ grid-template-columns:1fr; gap:28px; }
  .bio__media{ aspect-ratio:16/10; }
  .gallery__grid{ columns:3 200px; }
  .stats__grid{ grid-template-columns:repeat(2,1fr); row-gap:30px; }
}
@media (max-width:720px){
  .nav__links{
    position:fixed; top:0; right:0; height:100vh; width:min(80vw,320px);
    background:rgba(14,18,14,.92);
    backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
    flex-direction:column; justify-content:center; align-items:flex-start;
    gap:26px; padding:40px 34px;
    transform:translateX(105%); transition:transform .45s var(--ease);
    border-left:1px solid var(--glass-border); border-radius:0;
  }
  .nav__links.is-open{ transform:translateX(0); }
  .nav__links a{ font-size:18px; color:var(--ink); }
  .nav__burger{ display:block; z-index:200; }
  .nav__burger.is-open span:nth-child(1){ transform:translateY(9px) rotate(45deg); }
  .nav__burger.is-open span:nth-child(2){ opacity:0; }
  .nav__burger.is-open span:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }

  .hero__content{ padding-bottom:80px; }
  .marquee__track{ font-size:16px; }
  .feed__grid{ grid-template-columns:1fr; }
  .afishas__grid{ grid-template-columns:1fr; }
  .afisha-card{ aspect-ratio:4/3; }
  .post-modal{ padding:0; }
  .post-modal__inner{ max-width:100%; height:100%; max-height:100%; border-radius:0; }
  .post-modal__scroll{ max-height:100vh; padding:64px 22px 40px; }
  .gallery__grid{ columns:2 150px; column-gap:12px; }
  .gallery__item{ margin-bottom:12px; }
  .bio__content{ padding:32px 26px; }
  .contacts__inner{ padding:48px 26px; }
  .lightbox__nav{ width:42px; height:42px; font-size:20px; }
  .lightbox__nav--prev{ left:10px; } .lightbox__nav--next{ right:10px; }
}

/* =========================================================
   NEW STRUCTURE (2026-07) — лендинг-точка входа,
   посадочные страницы, виджет регистрации.
   Старые классы выше не трогаются (их использует archive/journal.html).
========================================================= */

/* ---- CTA-акценты и состояния ---- */
.nav__cta{
  padding:9px 18px; border-radius:999px;
  border:1px solid rgba(123,227,165,.45); background:rgba(123,227,165,.1);
  color:var(--green) !important; font-weight:700;
}
.nav__cta:hover{ background:rgba(123,227,165,.18); }
.btn--lg{ padding:18px 34px; font-size:15.5px; }
/* «скоро» — приглушённая заглушка для ещё-не-готовой ссылки (Telegram) */
.is-soon{ opacity:.6; cursor:default; }
.is-soon:hover{ box-shadow:none; border-color:var(--glass-border); }
.soon-tag{
  margin-left:8px; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  padding:2px 8px; border-radius:999px; background:rgba(242,239,231,.12); color:var(--stone);
}
.hero__secondary{
  display:inline-block; margin-top:22px;
  font-size:14px; font-weight:700; color:var(--green);
  border-bottom:1px solid transparent; transition:border-color .25s;
}
.hero__secondary:hover{ border-color:rgba(123,227,165,.5); }

/* ---- Practice (мирроринг about) ---- */
.practice{ padding:100px 0 40px; }
.practice__lead{ max-width:760px; margin:0 auto 56px; padding:0 var(--gutter); text-align:center; }
.practice__lead p{ font-size:18.5px; line-height:1.75; color:var(--ink-soft); }
.practice__cards{
  max-width:var(--container); margin:0 auto 64px; padding:0 var(--gutter);
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
}

/* ---- Flow: как проходит встреча ---- */
.flow{ max-width:var(--container); margin:0 auto; padding:0 var(--gutter); }
.flow__title{ font-size:clamp(24px,3.2vw,32px); text-align:center; margin-bottom:38px; }
.flow__steps{
  display:grid; grid-template-columns:repeat(4,1fr); gap:18px;
  counter-reset:flow;
}
.flow__steps li{
  display:flex; flex-direction:column; gap:14px;
  padding:26px 22px; border-radius:var(--radius);
  background:var(--glass); border:1px solid var(--glass-border);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
}
.flow__num{
  width:38px; height:38px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:18px; color:var(--green);
  border:1px solid rgba(123,227,165,.4); background:rgba(123,227,165,.08);
}
.flow__steps b{ font-size:16.5px; color:var(--ink); display:block; margin-bottom:6px; }
.flow__steps p{ color:var(--ink-soft); font-size:14px; line-height:1.55; }

/* ---- Formats: карточки-входы на посадочные ---- */
.formats{ padding:100px var(--gutter) 40px; max-width:var(--container); margin:0 auto; }
.entry-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.entry-card{
  display:flex; flex-direction:column; overflow:hidden; border-radius:var(--radius);
  background:var(--glass); border:1px solid var(--glass-border);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  transition:transform .5s var(--ease), border-color .4s, box-shadow .5s var(--ease);
}
.entry-card:hover{ border-color:rgba(123,227,165,.4); box-shadow:0 24px 60px rgba(0,0,0,.35); }
.entry-card__media{ aspect-ratio:4/3; overflow:hidden; }
.entry-card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.entry-card:hover .entry-card__media img{ transform:scale(1.06); }
.entry-card__body{ padding:22px 24px 26px; display:flex; flex-direction:column; gap:10px; flex:1; }
.entry-card__body h3{ font-size:22px; line-height:1.25; }
.entry-card__body p{ color:var(--ink-soft); font-size:14.5px; line-height:1.6; flex:1; }
.entry-card__more{ font-size:13.5px; font-weight:700; color:var(--green); margin-top:4px; }

/* ---- Photos: компактная полоса + альбомы ВК ---- */
.photos{ padding:100px var(--gutter) 40px; max-width:var(--container); margin:0 auto; }
.photo-strip{
  display:grid; grid-auto-flow:column; grid-auto-columns:minmax(220px,1fr);
  gap:14px; overflow-x:auto; padding-bottom:10px;
  scroll-snap-type:x mandatory; scrollbar-width:thin;
}
.photo-strip img{
  width:100%; aspect-ratio:3/4; object-fit:cover; border-radius:16px;
  border:1px solid var(--glass-border); scroll-snap-align:start; filter:saturate(.96);
}
.photos__cta{ margin-top:34px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:18px; }
.photos__cta p{ color:var(--stone); font-size:14.5px; }

/* ---- Contacts final CTA ---- */
.contacts__actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-bottom:34px; }

/* =========================================================
   Посадочные страницы (event pages)
========================================================= */
.ev-nav__back{ font-size:13px; font-weight:700; color:var(--ink-soft); }
.ev-nav__back:hover{ color:var(--green); }

.ev-hero{
  position:relative; padding:150px var(--gutter) 70px; max-width:var(--container); margin:0 auto;
}
.ev-hero__badge{
  display:inline-block; margin-bottom:20px;
  font-size:11.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  padding:6px 14px; border-radius:999px;
  color:var(--green); border:1px solid rgba(123,227,165,.4); background:rgba(123,227,165,.08);
}
.ev-hero h1{ font-size:clamp(38px,6.5vw,68px); line-height:1.04; letter-spacing:-.015em; max-width:12ch; }
.ev-hero__lead{ margin-top:24px; max-width:560px; font-size:18px; line-height:1.7; color:var(--ink-soft); }
.ev-hero__actions{ margin-top:36px; display:flex; gap:14px; flex-wrap:wrap; }

/* Мета-чипы: дата / время / место / цена (из конфига) */
.ev-meta{
  margin-top:40px; display:flex; flex-wrap:wrap; gap:12px;
}
.ev-meta__chip{
  display:flex; flex-direction:column; gap:4px;
  padding:16px 22px; border-radius:16px;
  background:var(--glass); border:1px solid var(--glass-border);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  min-width:150px;
}
.ev-meta__label{ font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); }
.ev-meta__val{ font-size:17px; font-weight:700; color:var(--ink); font-family:var(--serif); }
.is-pending{ color:var(--stone); font-style:italic; font-weight:400; }

/* Что это даёт */
.benefits{ padding:60px var(--gutter); max-width:var(--container); margin:0 auto; }
.benefits__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:12px; }
.benefit{
  padding:28px 26px; border-radius:var(--radius);
  background:var(--glass); border:1px solid var(--glass-border);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
}
.benefit h3{ font-size:19px; margin-bottom:10px; }
.benefit p{ color:var(--ink-soft); font-size:14.5px; line-height:1.6; }

/* Программа / детали (переиспользует .flow) */
.program{ padding:60px var(--gutter) 40px; max-width:var(--container); margin:0 auto; }

/* Регистрация / виджет */
.reg{ padding:70px var(--gutter); max-width:820px; margin:0 auto; }
.reg__head{ text-align:center; margin-bottom:34px; }
.reg__head h2{ font-size:clamp(28px,4vw,40px); }
.reg__head p{ margin-top:12px; color:var(--ink-soft); font-size:15px; }
.reg-widget{
  border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--glass-border); background:var(--glass-strong);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
}
.reg-widget__frame{ width:100%; border:0; display:block; background:transparent; }
/* Заглушка, пока внешнего URL нет */
.reg-widget__placeholder{ padding:52px 34px; text-align:center; }
.reg-widget__placeholder h3{ font-size:24px; margin-bottom:12px; }
.reg-widget__placeholder p{ color:var(--ink-soft); font-size:15px; line-height:1.65; max-width:440px; margin:0 auto 26px; }
.reg-widget__pulse{
  width:56px; height:56px; margin:0 auto 24px; border-radius:50%;
  background:radial-gradient(circle, rgba(123,227,165,.5), transparent 70%);
  animation:regPulse 2.2s ease-in-out infinite;
}
@keyframes regPulse{ 0%,100%{ transform:scale(.85); opacity:.55; } 50%{ transform:scale(1.15); opacity:1; } }
.reg-widget__skeleton{ max-width:360px; margin:0 auto 28px; display:flex; flex-direction:column; gap:12px; }
.reg-widget__skeleton span{
  height:46px; border-radius:12px; background:linear-gradient(100deg, rgba(255,255,255,.04), rgba(255,255,255,.09), rgba(255,255,255,.04));
  background-size:200% 100%; animation:regShimmer 1.6s linear infinite;
}
.reg-widget__skeleton-btn{ height:50px !important; border-radius:999px !important; }
@keyframes regShimmer{ from{ background-position:200% 0; } to{ background-position:-200% 0; } }
.reg-widget__cta{ margin-top:4px; }
@media (prefers-reduced-motion: reduce){
  .reg-widget__pulse, .reg-widget__skeleton span{ animation:none; }
}

/* FAQ */
.faq{ padding:60px var(--gutter) 40px; max-width:760px; margin:0 auto; }
.faq__list{ margin-top:12px; display:flex; flex-direction:column; gap:12px; }
.faq__item{
  border-radius:16px; overflow:hidden;
  background:var(--glass); border:1px solid var(--glass-border);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
}
.faq__q{
  width:100%; text-align:left; background:none; border:0; color:var(--ink);
  padding:22px 24px; font-size:16.5px; font-weight:700; font-family:var(--serif);
  display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.faq__q::after{ content:'+'; font-size:22px; color:var(--green); transition:transform .3s var(--ease); }
.faq__item.is-open .faq__q::after{ transform:rotate(45deg); }
.faq__a{
  max-height:0; overflow:hidden; transition:max-height .4s var(--ease);
  color:var(--ink-soft); font-size:15px; line-height:1.65;
}
.faq__item.is-open .faq__a{ max-height:320px; }
.faq__a p{ padding:0 24px 22px; }

/* Финальный CTA посадочной */
.ev-cta{ padding:40px var(--gutter) 110px; max-width:760px; margin:0 auto; }
.ev-cta__inner{ padding:56px 40px; text-align:center; }
.ev-cta__inner h2{ font-size:clamp(26px,4vw,40px); margin-bottom:16px; }
.ev-cta__inner p{ color:var(--ink-soft); font-size:15px; margin-bottom:32px; }
.ev-cta__actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }

/* =========================================================
   Responsive — новые блоки
========================================================= */
@media (max-width:980px){
  .practice__cards{ grid-template-columns:1fr; }
  .flow__steps{ grid-template-columns:repeat(2,1fr); }
  .entry-grid{ grid-template-columns:1fr; }
  .benefits__grid{ grid-template-columns:1fr; }
}
@media (max-width:720px){
  .practice{ padding:70px 0 20px; }
  .formats, .photos{ padding:70px var(--gutter) 20px; }
  .flow__steps{ grid-template-columns:1fr; }
  .hero__actions .btn--lg{ width:100%; }
  .contacts__actions .btn--lg{ width:100%; }
  .ev-hero{ padding:120px var(--gutter) 50px; }
  .ev-hero__actions .btn{ width:100%; }
  .ev-meta__chip{ flex:1 1 100%; }
  .reg-widget__placeholder{ padding:40px 22px; }
}

/* Шапка посадочных страниц на узком мобиле: логотип уже ведёт домой,
   поэтому прячем текстовую ссылку «На главную» и даём место CTA-пилюле. */
@media (max-width:620px){
  .ev-nav__back{ display:none; }
  .nav__actions .nav__cta{ white-space:nowrap; }
}
