/* Закрытие сезона — первый экран, две концепции: A «Триптих» (closing-a.html), B «Дым» (closing-b.html).
   Шрифты — как на новом сайте (dd2026): Rubik Dirt — крупные заголовки, Rubik — остальное. */
@font-face{font-family:'Rubik Dirt';font-weight:100 900;font-display:swap;src:url(../fonts/RubikDirt-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Rubik Dirt';font-weight:100 900;font-display:swap;src:url(../fonts/RubikDirt-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:'Rubik';font-weight:300 900;font-display:swap;src:url(../fonts/Rubik-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Rubik';font-weight:300 900;font-display:swap;src:url(../fonts/Rubik-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}

.cz{
  --black:#070707; --white:#ece6da; --smoke:#eef2f3; --ash:#9aa0a4; --graphite:#1a1a1a;
  --f:'Rubik',system-ui,sans-serif; --dirt:'Rubik Dirt','Rubik',system-ui,sans-serif;
  --gut:clamp(16px,2.2vw,32px);
  background:var(--black);color:var(--white);font:400 16px/1.45 var(--f);-webkit-font-smoothing:antialiased;overflow-x:clip}
.cz,.cz *{box-sizing:border-box}
.cz :where(h1,h2,p,ol,ul,dl,dd,figure){margin:0;padding:0}
.cz :where(a){color:inherit;text-decoration:none}
.cz :focus-visible{outline:3px solid var(--white);outline-offset:4px}
.cz .fogged :focus-visible{outline-color:var(--black)}
.cz-top{position:absolute;z-index:10;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--gut) + 4px + env(safe-area-inset-top)) calc(var(--gut) + 8px)}
.cz-top img{height:22px;width:auto;display:block}
.cz-top a.cz-cta-s{font-weight:700;font-size:15px;padding:11px 18px;border-radius:999px;background:var(--white);color:var(--black)}

/* заголовок: Rubik Dirt, капс, плотно */
.cz-ttl{text-wrap:balance;font:400 1em/.86 var(--dirt);text-transform:uppercase;letter-spacing:-.01em;font-synthesis:none}
.cz-ttl .cz-w{display:inline-block;white-space:nowrap}
.cz-ttl .cz-ch{display:inline-block}

.cz-btn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 28px;border-radius:999px;font:700 17px/1 var(--f);
  background:var(--white);color:var(--black);transition:transform .15s,background-color .15s;touch-action:manipulation}
.cz-btn:hover{transform:scale(1.03);background:#fff}
.cz-top a.cz-cta-s:hover{background:#fff}
.cz-ca-col,.cz-ttl .cz-ch{will-change:transform}
/* пауза видео (правило: автодвижение дольше 5 с — с паузой) */
.cz-vctl{position:absolute;z-index:11;right:calc(var(--gut) + 8px);top:calc(var(--gut) + 74px + env(safe-area-inset-top));min-height:44px;padding:0 16px;border-radius:999px;border:1px solid rgba(236,230,218,.5);background:rgba(7,7,7,.45);color:var(--white);font:500 15px/1 var(--f);cursor:pointer;touch-action:manipulation}
.cz-vctl:hover{background:rgba(7,7,7,.75)}
.cz-btn:active{transform:scale(.97)}

/* ================= A — ТРИПТИХ ================= */
.cz-ca{position:relative;height:100vh;height:100svh;min-height:600px;padding:var(--gut);overflow:hidden}
.cz-ca-cols{position:absolute;inset:var(--gut);display:grid;grid-template-columns:1fr 1.18fr 1fr;gap:6px}
.cz-ca-col{position:relative;overflow:hidden;background:var(--graphite);transform-origin:50% 100%}
.cz-ca-col video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cz-ca-col::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35),transparent 22%,transparent 50%,rgba(0,0,0,.78))}
.cz-ca-title{position:absolute;left:calc(var(--gut) + 20px);right:calc(var(--gut) + 20px);bottom:calc(var(--gut) + 150px);font-size:clamp(64px,15.4vw,260px);text-align:center;pointer-events:none}
.cz-ca-title .cz-w{display:block}
.cz-ca-low{position:absolute;left:calc(var(--gut) + 20px);right:calc(var(--gut) + 20px);bottom:calc(var(--gut) + 28px);display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.cz-ca-dj b{display:block;font:900 clamp(26px,2.6vw,40px)/1 var(--f)}
.cz-ca-dj span{display:block;margin-top:6px;font-size:17px;color:#d9dcde}
.cz-ca-when{margin-left:auto;text-align:right;font:500 17px/1.3 var(--f)}
.cz-ca-when b{display:block;font:900 clamp(22px,2vw,30px)/1.05 var(--f)}

@media (max-width:760px){
  .cz-ca{padding:0 16px 24px;display:flex;flex-direction:column;justify-content:flex-end}
  .cz-ca-cols{inset:0;grid-template-columns:1fr;gap:0}
  .cz-ca-col:nth-child(n+2){display:none}
  .cz-ca-title{position:relative;left:auto;right:auto;bottom:auto;font-size:13.4vw}
  .cz-ca-low{position:relative;left:auto;right:auto;bottom:auto;margin-top:22px;flex-wrap:wrap;gap:16px 24px}
  .cz-ca-when{margin-left:0;text-align:center;order:-1;width:100%}
  .cz-ca-dj{width:100%;text-align:center;text-wrap:balance}
  .cz-ca-low .cz-btn{width:100%}
  .cz-top{padding:18px 16px}
  .cz-top img{height:18px}
  .cz-vctl{right:16px;top:calc(72px + env(safe-area-inset-top))}
}

/* дым криопушек: один раз накрывает первый экран при загрузке и сам рассеивается */
#czFog{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.cz-ca-title,.cz-ca-low,.cz-vctl{z-index:2}
.cz-ca-title,.cz-ca-dj b,.cz-ca-dj span,.cz-ca-when{transition:color .6s}
.cz.fogged .cz-ca-title,.cz.fogged .cz-ca-dj b,.cz.fogged .cz-ca-dj span,.cz.fogged .cz-ca-when{color:var(--black)}
.cz.fogged .cz-btn{background:var(--black);color:var(--white)}
.cz-ca .cz-btn{transition:transform .15s,background-color .6s,color .6s}
.cz.fogged .cz-vctl{color:var(--black);border-color:rgba(7,7,7,.4);background:rgba(255,255,255,.4)}
.cz.fogged .cz-top img{filter:invert(1)}

@media (prefers-reduced-motion:reduce){
  .cz-btn:hover{transform:none}
}

/* ================= ЭКРАН 2 — ВХОД (общий для A и B) =================
   Главная деталь — стартовый номер: форма регистрации и есть номер, имя печатается на нём вживую. */
.cz-door{--paper:#ece6da;--ink:#070707;--soft:#c9c3b7;position:relative;padding:clamp(64px,10vh,120px) max(var(--gut),env(safe-area-inset-right)) clamp(56px,8vh,96px) max(var(--gut),env(safe-area-inset-left));scroll-margin-top:0}
.cz-door-in{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,6vw,96px);align-items:start}
.cz-door-t{font-size:clamp(48px,6.4vw,104px)}
.cz-door-lead{margin-top:20px;max-width:34ch;font:400 clamp(18px,1.5vw,21px)/1.45 var(--f);color:var(--soft)}

.cz-prog{list-style:none;margin-top:clamp(32px,5vh,52px);border-top:1px solid #2a2824}
.cz-prog li{display:grid;grid-template-columns:4.6em minmax(0,1fr);gap:20px;align-items:baseline;padding:18px 0;border-bottom:1px solid #2a2824}
.cz-prog time{font:700 22px/1.2 var(--f);font-variant-numeric:tabular-nums;color:var(--white)}
.cz-prog b{display:block;font:700 21px/1.25 var(--f);color:var(--white)}
.cz-prog b:not(:last-child){margin-bottom:4px}
.cz-prog div{font-size:17px;color:var(--soft);min-width:0}

/* лайнап — как на клубной афише: время и имя крупно; все имена одного размера */
.cz-lineup{list-style:none;margin-top:clamp(36px,6vh,60px);display:grid;gap:clamp(28px,4vh,40px);min-width:0;container-type:inline-size}
.cz-dj{display:flex;flex-direction:column;gap:8px;min-width:0}
.cz-dj time{font:700 20px/1.2 var(--f);font-variant-numeric:tabular-nums}
.cz-dj b{font-size:min(11cqi,96px)}
.cz-where{margin-top:32px;font:700 21px/1.35 var(--f)}

/* стартовый номер */
.cz-bib{position:relative;background:var(--paper);color:var(--ink);border-radius:10px;transform:rotate(-1.6deg);
  box-shadow:0 30px 60px rgba(0,0,0,.55);transform-origin:50% 0;will-change:transform}
.cz-bib::before,.cz-bib::after{content:"";position:absolute;top:18px;width:14px;height:14px;border-radius:50%;background:var(--ink);box-shadow:inset 0 2px 3px rgba(255,255,255,.15)}
.cz-bib::before{left:16px}.cz-bib::after{right:16px}
.cz-bib-top,.cz-bib-foot{display:flex;justify-content:space-between;gap:12px;padding:16px 46px;font:700 16px/1.2 var(--f)}
.cz-bib-top{border-bottom:2px solid var(--ink);padding-top:18px}
.cz-bib-partners{display:block;text-align:center;white-space:nowrap;font-size:min(3.9cqi,16px);letter-spacing:.03em;font-weight:800;padding-inline:36px!important}
.cz-bib-partners i{font-style:normal;font-weight:400;padding:0 .3em}
.cz-bib-foot{border-top:2px solid var(--ink);position:relative}
.cz-bib-foot::before,.cz-bib-foot::after{content:"";position:absolute;bottom:14px;width:14px;height:14px;border-radius:50%;background:var(--ink)}
.cz-bib-foot::before{left:16px}.cz-bib-foot::after{right:16px}
.cz-bib-num{text-align:center;padding:10px 20px 0;font:400 clamp(120px,14vw,200px)/.9 var(--dirt);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.cz-bib-name{text-align:center;font:700 min(5.6cqi,28px)/1.2 var(--f);text-transform:uppercase;letter-spacing:.02em;text-wrap:balance;padding:0 16px 18px;min-height:1.2em;overflow-wrap:break-word}
.cz-bib{container-type:inline-size}
.cz-bib-date{font-size:min(24cqi,180px);padding-bottom:22px}
.cz-bib-date + .cz-bib-name{margin-top:-8px}
.cz-bib-fields{display:grid;gap:14px;padding:22px clamp(20px,3vw,40px) 26px;border-top:2px dashed rgba(7,7,7,.35)}
.cz-f{display:grid;gap:6px}
.cz-f span{font:500 15px/1.2 var(--f);color:#4a463f}
.cz-f input{width:100%;min-height:48px;font:500 18px/1.2 var(--f);color:var(--ink);background:transparent;border:0;border-bottom:2px solid var(--ink);border-radius:0;padding:8px 0;outline:0}
.cz-f input::placeholder{color:#8f897e}
.cz-f input:focus-visible{border-bottom-color:#000;box-shadow:0 2px 0 0 #000}
.cz-f .cz-err{display:none;font:500 15px/1.3 var(--f);font-style:normal;color:#b3261e}
.cz-f.bad input{border-bottom-color:#b3261e}
.cz-f.bad .cz-err{display:block}
.cz-ok{display:flex;gap:12px;align-items:flex-start;font:400 16px/1.4 var(--f);cursor:pointer;padding:6px 0}
.cz-ok input{width:22px;height:22px;flex:none;margin-top:1px;accent-color:var(--ink)}
.cz-ok.bad span{color:#b3261e}
.cz-go{min-height:58px;border:0;border-radius:999px;background:var(--ink);color:var(--paper);font:700 18px/1 var(--f);cursor:pointer;touch-action:manipulation;transition:transform .15s,background-color .15s}
.cz-go:hover{background:#000;transform:scale(1.02)}
.cz-go:active{transform:scale(.98)}
.cz-bib :focus-visible{outline-color:var(--ink)}
.cz-bib-note{font:400 16px/1.4 var(--f);color:#4a463f;text-align:center}
.cz-bib-done{padding:26px clamp(20px,3vw,40px);border-top:2px dashed rgba(7,7,7,.35);font:400 18px/1.45 var(--f)}
.cz-bib-done b{display:block;font:400 clamp(36px,3.6vw,52px)/1 var(--dirt);text-transform:uppercase;margin-bottom:8px}

@media (max-width:900px){
  .cz-door-in{grid-template-columns:1fr}
  .cz-bib{order:-1;transform:rotate(-1deg)}
  .cz-door-info{display:contents}
  .cz-door-t{order:-3}.cz-door-lead{order:-2}
  .cz-lineup,.cz-prog,.cz-where{order:1}
  .cz-prog li{gap:14px}
}
@media (max-width:420px){ .cz-bib-top,.cz-bib-foot{padding-inline:40px} }
.cz-bib [hidden]{display:none!important}
.cz-bib-price{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.cz-bib-price span{font:500 17px/1.2 var(--f);color:#4a463f}
.cz-bib-price b{font:400 clamp(34px,3.4vw,48px)/1 var(--dirt);text-transform:uppercase}
a.cz-go{display:flex;align-items:center;justify-content:center;text-decoration:none}
.cz-site .cz-vctl{top:calc(var(--top,78px) + 8px)}

/* ================= White Snow Party (05.11): дресс-код «всё в белом» =================
   Первый экран — видео и белый дым как были; над заголовком — плашка-браслет. Второй экран — белый, как снег: всё тёмным по белому. */
.cz-kick{display:flex;width:max-content;max-width:100%;margin:0 auto clamp(14px,2vh,24px);align-items:center;gap:.6em;padding:.5em 1.1em .55em;border-radius:999px;
  background:#fff;color:var(--black);font:900 clamp(17px,1.7vw,26px)/1 var(--f);text-transform:none;letter-spacing:0;box-shadow:0 10px 30px rgba(0,0,0,.25);transition:box-shadow .6s}
.cz-kick i{font-style:normal;font-weight:500;opacity:.7}
.cz.fogged .cz-kick{box-shadow:0 0 0 2px var(--black)}
@media (max-width:760px){ .cz-kick{font-size:16px} }

.cz-door{--white:#070707;--soft:#4a463f;--paper:#fff;background:#f7f6f2;color:var(--black)}
.cz-door .cz-prog,.cz-door .cz-prog li{border-color:#dcd8cf}
.cz-door .cz-bib{box-shadow:0 26px 60px rgba(7,7,7,.16),0 0 0 1px rgba(7,7,7,.08)}
.cz-door :focus-visible{outline-color:var(--black)}
.cz-dress{margin-top:clamp(28px,4.5vh,44px);padding:clamp(20px,2.6vw,30px);border-radius:10px;background:#fff;box-shadow:0 0 0 1px #e4e0d7;max-width:40rem}
.cz-dress b{display:block;font-size:clamp(34px,3.6vw,56px)}
.cz-dress p{margin-top:12px;font:400 clamp(17px,1.35vw,19px)/1.45 var(--f);color:var(--soft)}
@media (max-width:900px){ .cz-dress{order:-2} }

/* плашка «Регистрация откроется через…» — до открытия продаж */
.cz-soon{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(7,7,7,.72)}
.cz-soon[hidden]{display:none}
.cz-soon-card{box-sizing:border-box;width:min(100%,460px);background:#fff;color:#070707;border-radius:14px;padding:clamp(24px,4vw,36px);text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.cz-soon-t{font:700 clamp(19px,2vw,22px)/1.3 var(--f)}
.cz-soon-cd{margin-top:14px;font-size:clamp(40px,12vw,64px);line-height:1.05;font-variant-numeric:tabular-nums;white-space:pre-line}
.cz-soon-when{margin-top:16px;font:400 17px/1.45 var(--f);color:#4a463f}
.cz-soon-x{margin-top:22px;min-height:52px;padding:0 32px;border:0;border-radius:999px;background:#070707;color:#fff;font:700 17px/1 var(--f);cursor:pointer}
.cz-soon-x:focus-visible{outline:3px solid #070707;outline-offset:3px}
.cz-bib-promo{margin-top:-4px;font:500 15px/1.4 var(--f);color:#4a463f;text-align:right}
.cz-soon-promo{margin-top:6px;font:500 15px/1.4 var(--f);color:#4a463f}
