html,body{margin:0}img{max-width:100%}[hidden]{display:none!important}
/* Layout: светлая «банная» сетка; цвет живёт в свечениях, плитке и логотипе, текст — чёрный PP Radio Grotesk, латиница — PP Editorial Old */
@font-face{font-family:"PP Editorial Old";src:url(../assets/fonts/PPEditorialOld-Regular.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"PP Editorial Old";src:url(../assets/fonts/PPEditorialOld-Italic.otf) format("opentype");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"PP Radio Grotesk";src:url(../assets/fonts/PPRadioGrotesk-Regular.otf) format("opentype");font-weight:400;font-display:swap}
@font-face{font-family:"PP Radio Grotesk";src:url(../assets/fonts/PPRadioGrotesk-Black.otf) format("opentype");font-weight:900;font-display:swap}
:root{
  --pink:#FF006A; --yel:#FFF773; --blue:#0E05EB; --blush:#FFD9EA; --olive:#658709; --lemon:#F5E740;
  --ink:#151214; --mute:#7C7378; --line:#E9E1E4; --paper:#FFFFFF; --soft:#FBF6F7;
  --ed:"PP Editorial Old", "Times New Roman", Georgia, serif;
  --rg:"PP Radio Grotesk", "Helvetica Neue", Arial, sans-serif;
  --g1:#FF8A1A; --g2:#FF006A; --g3:#FFF773; --g4:#E010C8;
  --gut:max(16px, env(safe-area-inset-left, 0px)); --gutR:max(16px, env(safe-area-inset-right, 0px));
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--rg);font-size:17px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--paper)}
a{color:inherit}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--pink);outline-offset:3px}
.wrap{padding-left:var(--gut);padding-right:var(--gutR);max-width:1440px;margin:0 auto}
@media(min-width:900px){.wrap{padding-left:max(48px,env(safe-area-inset-left,0px));padding-right:max(48px,env(safe-area-inset-right,0px))}}
h1,h2,h3{font-weight:400;margin:0;text-wrap:balance}
p{margin:0}
.lbl{font-size:13px;letter-spacing:.08em;text-transform:lowercase;color:var(--mute)}
.lat{font-family:var(--ed)}

/* логотип: две маски — обводка и заливка, цвета задаются переменными */
.logo{position:relative;display:inline-block;aspect-ratio:1430/622;width:var(--w,120px)}
.logo i{position:absolute;inset:0;-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat}
.logo .o{--m:url(../assets/img/logo_out.png);background:var(--lo,var(--yel))}
.logo .f{--m:url(../assets/img/logo_fill.png);background:var(--lf,var(--pink))}

/* шапка */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--paper) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s}
header.sc{border-bottom-color:var(--line)}
.hd{display:flex;align-items:center;gap:28px;height:68px}
.hd nav{display:flex;gap:22px;margin-left:auto;font-size:15px}
.hd nav a{text-decoration:none;position:relative;padding:4px 0}
.hd nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:var(--pink);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.hd nav a:hover::after{transform:scaleX(1)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:12px 22px;background:var(--ink);color:#fff;cursor:pointer;text-decoration:none;font-size:15px;transition:transform .2s,background .2s;white-space:nowrap}
.btn:hover{transform:translateY(-1px);background:var(--pink)}
.btn.pk{background:var(--pink)}.btn.pk:hover{background:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.mine{background:transparent;border:0;cursor:pointer;font-size:15px;padding:6px 0;display:flex;gap:6px;align-items:center}
.mine b{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:11px;background:var(--pink);color:#fff;font-size:12px;font-weight:400;padding:0 6px}
.menu{display:none;background:none;border:0;font-size:15px;cursor:pointer;padding:8px 0}
@media(max-width:900px){.hd nav{display:none}.menu{display:block;margin-left:auto}.hd{gap:16px}.hd nav.open{display:flex;position:absolute;top:68px;left:0;right:0;flex-direction:column;gap:0;background:var(--paper);border-bottom:1px solid var(--line);padding:8px var(--gutR) 16px var(--gut)}.hd nav.open a{padding:12px 0;border-bottom:1px solid var(--line)}}
@media(max-width:520px){.hd .btn{display:none}}

/* hero */
.hero{position:relative;overflow:hidden;color:#fff;isolation:isolate}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.grain{position:absolute;inset:-50%;background:url(../assets/img/noise.png);opacity:.16;mix-blend-mode:overlay;z-index:-1;pointer-events:none;animation:grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
.hero .wrap{position:relative;padding-block:56px 44px;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:end;min-height:min(760px,86vh)}
.hero h1{font-family:var(--ed);font-size:clamp(108px,19vw,300px);line-height:.8;letter-spacing:-.03em}
.hero h1 span{display:inline-block;animation:rise 1.1s cubic-bezier(.2,.8,.2,1) both}
.hero h1 span:nth-child(2){animation-delay:.06s}.hero h1 span:nth-child(3){animation-delay:.12s}.hero h1 span:nth-child(4){animation-delay:.18s}.hero h1 span:nth-child(5){animation-delay:.24s}
@keyframes rise{from{transform:translateY(.25em);filter:blur(10px)}to{transform:none;filter:none}}
.hero .kick{font-size:14px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:clamp(36px,4vw,56px);display:flex;gap:18px;flex-wrap:wrap}
.hero h1,.hero .lead,.hero .kick{text-shadow:0 2px 24px rgba(90,0,40,.18)}
.hero .lead{font-size:clamp(20px,2vw,26px);line-height:1.28;max-width:30ch;margin-top:28px}
.picker{background:color-mix(in srgb,#2A0418 22%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid color-mix(in srgb,#fff 40%,transparent);border-radius:28px;padding:24px;display:grid;gap:16px;min-width:0}
.picker h2{font-size:24px;line-height:1.15}
.states{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.st{border:1.5px solid color-mix(in srgb,#fff 60%,transparent);background:transparent;color:#fff;border-radius:16px;padding:14px 14px 12px;text-align:left;cursor:pointer;display:grid;gap:2px;transition:background .3s,color .3s,transform .2s}
.st:hover{transform:translateY(-2px)}
.st small{opacity:.8;font-size:13px}
.st[aria-pressed="true"]{background:#fff;color:var(--ink)}
.rec{display:grid;gap:10px;border-top:1px solid color-mix(in srgb,#fff 40%,transparent);padding-top:16px}
.rec .nm{font-size:22px}
.rec .meta{display:flex;gap:14px;flex-wrap:wrap;font-size:14px;opacity:.92}
.rec .btn{justify-self:start;background:#fff;color:var(--ink)}
.rec .btn:hover{background:var(--ink);color:#fff}
.float{position:absolute;pointer-events:none;z-index:-1;filter:drop-shadow(0 20px 40px rgba(120,0,60,.15));animation:bob 7s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-16px) rotate(var(--r2,4deg))}}
@media(max-width:900px){.hero .wrap{grid-template-columns:1fr;min-height:0;padding-block:40px 28px}.float{opacity:.6}.hero .badge{display:none}}

/* бегущая строка */
.marq{overflow:hidden;border-block:1px solid var(--line);background:var(--paper)}
.marq div{display:flex;align-items:center;gap:40px;white-space:nowrap;padding-block:18px;font-family:var(--ed);font-style:italic;font-size:clamp(28px,4vw,52px);animation:mq 38s linear infinite;width:max-content}
.marq span{display:inline-flex;align-items:center;gap:48px}
.marq .logo{--w:1.9em;transform:rotate(-8deg)}.marq .logo:nth-of-type(2n){transform:rotate(6deg);--lo:var(--blush);--lf:var(--blue)}.marq .logo:nth-of-type(3n){--lo:var(--pink);--lf:var(--yel)}
@keyframes mq{to{transform:translateX(-50%)}}

section{padding-block:clamp(72px,10vw,140px)}
.sh{display:grid;grid-template-columns:1fr 1.2fr;gap:32px;align-items:end;margin-bottom:48px}
.sh h2{font-size:clamp(44px,6.4vw,96px);line-height:.95;letter-spacing:-.035em}
.sh p{font-size:19px;max-width:52ch;color:#3E373B}
@media(max-width:800px){.sh{grid-template-columns:1fr}}

/* фильтр */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.chip{border:1.5px solid var(--line);background:var(--paper);border-radius:999px;padding:9px 16px;cursor:pointer;font-size:15px;transition:all .25s}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}

/* карточки пара */
.steams{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.card{position:relative;border-radius:28px;overflow:hidden;background:var(--soft);display:grid;grid-template-rows:auto 1fr;min-width:0;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.card:hover{transform:translateY(-6px)}
.card .vis{position:relative;aspect-ratio:5/4;overflow:hidden;isolation:isolate}
.card .vis .bg{position:absolute;inset:-20%;background:radial-gradient(40% 42% at 50% 45%,var(--c3) 0%,var(--c2) 42%,transparent 70%),radial-gradient(60% 60% at 80% 90%,var(--c4) 0%,transparent 70%),linear-gradient(160deg,var(--c1),var(--c2));filter:blur(18px);animation:breathe 9s ease-in-out infinite}
.card:nth-child(2n) .vis .bg{animation-delay:-3s}.card:nth-child(3n) .vis .bg{animation-delay:-6s}
@keyframes breathe{50%{transform:scale(1.12) translate(3%,-2%)}}
.card .vis img:not(.stm){position:absolute;left:50%;top:52%;width:46%;transform:translate(-50%,-50%);transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.card:hover .vis img:not(.stm){transform:translate(-50%,-56%) rotate(-4deg) scale(1.05)}
.card .vis .tg{position:absolute;left:16px;top:16px;background:#fff;color:var(--ink);border-radius:999px;padding:6px 12px;font-size:13px}
.card .vis .gn{position:absolute;inset:0;background:url(../assets/img/noise.png);opacity:.14;mix-blend-mode:overlay}
.card .bd{padding:22px 22px 24px;display:grid;gap:14px;align-content:start}
.card h3{font-size:30px;line-height:1;letter-spacing:-.02em}
.card .room{color:var(--mute);font-size:14px}
.meter{display:grid;grid-template-columns:96px 1fr 58px;gap:10px;align-items:center;font-size:14px;font-variant-numeric:tabular-nums}
.meter .bar{height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.meter .bar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--yel),var(--g1),var(--pink));transform-origin:left;transform:scaleX(var(--v));transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.meter.h .bar i{background:linear-gradient(90deg,var(--blush),#B79CFF,var(--blue))}
.meter span:last-child{text-align:right}
.herbs{display:flex;gap:6px;flex-wrap:wrap}
.herbs span{font-size:13px;background:#fff;border-radius:999px;padding:5px 10px}
.card .ft{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;font-variant-numeric:tabular-nums}
.card .ft b{font-weight:400;font-size:20px}
.card .ft .btn{padding:10px 18px}
.card[hidden]{display:none}

/* бани */
.rooms{display:grid;gap:20px}
.room-c{display:grid;grid-template-columns:1.1fr 1fr;border-radius:32px;overflow:hidden;background:var(--soft);min-height:420px;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.room-c:hover{transform:rotate(-.4deg) scale(1.005)}
.room-c:nth-child(2){grid-template-columns:1fr 1.1fr}.room-c:nth-child(2) .ph{order:2}
.room-c .ph{position:relative;overflow:hidden;min-height:300px}
.room-c .ph img:not(.stk){position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.6s cubic-bezier(.2,.8,.2,1)}
.room-c .ph::after{content:"";position:absolute;inset:0;background:url(../assets/img/noise.png);opacity:.12;mix-blend-mode:overlay;pointer-events:none}
.room-c .ph .stk{position:absolute;right:22px;top:22px;width:clamp(70px,8vw,110px);z-index:1;animation:bob 6s ease-in-out infinite;filter:drop-shadow(0 10px 20px rgba(80,0,40,.25))}
.room-c:hover .ph img:not(.stk){transform:scale(1.05)}
.room-c .ph .nm{position:absolute;left:28px;bottom:24px;color:#fff;font-size:clamp(48px,6vw,84px);line-height:.9;letter-spacing:-.03em;text-shadow:0 4px 30px rgba(0,0,0,.3)}
.room-c .tx{padding:clamp(24px,4vw,48px);display:grid;gap:22px;align-content:center}
.room-c .tx h3{font-size:clamp(26px,2.6vw,36px);line-height:1.08;letter-spacing:-.02em}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;font-variant-numeric:tabular-nums}
.facts div{border-top:1.5px solid var(--ink);padding-top:10px}
.facts b{display:block;font-weight:400;font-size:24px}
.room-c .tx p{color:#3E373B;max-width:48ch}
@media(max-width:800px){.room-c,.room-c:nth-child(2){grid-template-columns:1fr}.room-c:nth-child(2) .ph{order:0}}

/* маршрут */
.route{color:#fff;position:relative;overflow:hidden;isolation:isolate;border-radius:36px;margin-inline:var(--gut) var(--gutR)}
.route canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.route .sh p{color:#fff;opacity:.92}
.steps{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;counter-reset:s}
.step{position:relative;border-top:1.5px solid color-mix(in srgb,#fff 40%,transparent);padding-top:18px;display:grid;gap:8px;min-width:0}
.step::before{content:"";position:absolute;left:0;top:-1.5px;height:1.5px;width:100%;background:#fff;transform:scaleX(0);transform-origin:left}
.step.on::before{animation:fill 3.2s linear forwards}
.step.done::before{transform:scaleX(1)}
@keyframes fill{to{transform:scaleX(1)}}
.step .n{font-size:13px;color:#fff;opacity:.8;letter-spacing:.08em}
.step h3{font-size:22px;line-height:1.1}
.step p{font-size:14px;color:#fff;opacity:.85}
.step .t{font-size:13px;color:#fff;opacity:.7;font-variant-numeric:tabular-nums}
.step.on h3{color:var(--yel);text-shadow:0 0 24px rgba(255,247,115,.6)}
.step.on{transform:translateY(-4px)}.step{transition:transform .5s}
.route .orb{position:absolute;right:6%;top:12%;width:clamp(120px,16vw,220px);z-index:-1;animation:bob 6s ease-in-out infinite}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr;row-gap:28px}}

/* бронирование */
.book{display:grid;grid-template-columns:1.25fr .75fr;gap:24px;align-items:start}
.panel{border-radius:28px;background:var(--soft);padding:clamp(20px,3vw,36px);display:grid;gap:28px;min-width:0}
.fld{display:grid;gap:12px}
.fld>.lbl{display:flex;justify-content:space-between}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.opt{border:1.5px solid var(--line);background:#fff;border-radius:16px;padding:12px 14px;cursor:pointer;text-align:left;transition:all .2s;display:grid;gap:2px}
.opt small{color:var(--mute);font-size:13px}
.opt:hover{border-color:var(--ink)}
.opt[aria-pressed="true"]{border-color:var(--pink);background:var(--blush)}
.opt[aria-pressed="true"] small{color:var(--ink)}
.prog{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.days{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
.day{flex:0 0 72px;border:1.5px solid var(--line);background:#fff;border-radius:16px;padding:10px 0;text-align:center;cursor:pointer;display:grid;gap:0;transition:all .2s}
.day small{font-size:12px;color:var(--mute)}
.day b{font-weight:400;font-size:24px;font-variant-numeric:tabular-nums}
.day[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}.day[aria-pressed="true"] small{color:#CFC6CB}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.slot{border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:10px 8px;cursor:pointer;display:grid;gap:0;text-align:center;font-variant-numeric:tabular-nums;transition:all .2s}
.slot small{font-size:12px;color:var(--mute)}
.slot:disabled{cursor:not-allowed;opacity:.42;text-decoration:line-through}
.slot[aria-pressed="true"]{border-color:var(--pink);background:var(--pink);color:#fff}.slot[aria-pressed="true"] small{color:#FFE0EE}
.stepper{display:flex;align-items:center;gap:14px}
.stepper button{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--ink);background:#fff;cursor:pointer;font-size:20px}
.stepper button:disabled{opacity:.3;cursor:not-allowed}
.stepper output{font-size:28px;min-width:2ch;text-align:center;font-variant-numeric:tabular-nums}
.adds{display:grid;gap:8px}
.add{display:flex;align-items:center;gap:12px;border:1.5px solid var(--line);background:#fff;border-radius:16px;padding:12px 14px;cursor:pointer}
.add input{width:20px;height:20px;accent-color:var(--pink)}
.add span{flex:1}
.add em{font-style:normal;color:var(--mute);font-variant-numeric:tabular-nums}
.inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.inputs label{display:grid;gap:6px}
.inputs input{border:1.5px solid var(--line);border-radius:14px;padding:13px 14px;background:#fff;width:100%;min-width:0}
.inputs input:focus{outline:none;border-color:var(--pink)}
.inputs .err{color:var(--pink);font-size:13px;min-height:1em}
@media(max-width:600px){.inputs{grid-template-columns:1fr}}
.sum{position:sticky;top:calc(env(safe-area-inset-top,0px) + 88px);border-radius:28px;overflow:hidden;color:#fff;isolation:isolate;min-width:0}
.sum .bgc{position:absolute;inset:-30%;z-index:-2;background:radial-gradient(50% 45% at 30% 25%,var(--g3),transparent 70%),radial-gradient(60% 60% at 80% 85%,var(--g4),transparent 70%),linear-gradient(160deg,var(--g1),var(--g2));filter:blur(10px);transition:background 1s;animation:breathe 10s ease-in-out infinite}
.sum .gn{position:absolute;inset:0;background:url(../assets/img/noise.png);opacity:.16;mix-blend-mode:overlay;z-index:-1}
.sum .in{padding:28px;display:grid;gap:18px}
.sum h3{font-size:34px;line-height:1}
.sum dl{margin:0;display:grid;gap:10px}
.sum dl div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid color-mix(in srgb,#fff 35%,transparent);padding-bottom:10px;font-variant-numeric:tabular-nums}
.sum dt{opacity:.85}.sum dd{margin:0;text-align:right}
.sum .tot{display:flex;justify-content:space-between;align-items:baseline;font-variant-numeric:tabular-nums}
.sum .tot b{font-weight:400;font-size:44px;letter-spacing:-.02em}
.sum .btn{width:100%;background:#fff;color:var(--ink);padding:16px}
.sum .btn:hover{background:var(--ink);color:#fff}
.sum .note{font-size:13px;opacity:.85}
.ok{display:grid;gap:12px;background:#fff;color:var(--ink);border-radius:20px;padding:20px;animation:pop .5s cubic-bezier(.2,.8,.2,1.3)}
.ok .code{font-size:28px;letter-spacing:.04em;font-variant-numeric:tabular-nums}
@keyframes pop{from{transform:scale(.92)}to{transform:none}}
@media(max-width:980px){.book{grid-template-columns:1fr}.sum{position:relative;top:0}}

/* мои сеансы */
.drawer{position:fixed;inset:0;z-index:80;display:grid;justify-items:end;background:rgba(21,18,20,.35);backdrop-filter:blur(4px)}
.drawer[hidden]{display:none!important}
.drawer .dw{width:min(440px,100%);height:100%;background:var(--paper);padding:calc(24px + env(safe-area-inset-top,0px)) max(24px,env(safe-area-inset-right,0px)) 24px 24px;overflow:auto;display:grid;gap:16px;align-content:start;animation:slide .4s cubic-bezier(.2,.8,.2,1)}
@keyframes slide{from{transform:translateX(40px)}}
.dw .top{display:flex;justify-content:space-between;align-items:center}
.dw h3{font-size:32px}
.bk{border-radius:20px;background:var(--soft);padding:18px;display:grid;gap:6px}
.bk .r{display:flex;justify-content:space-between;gap:10px;font-variant-numeric:tabular-nums}
.bk button{justify-self:start;background:none;border:0;padding:4px 0;color:var(--pink);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.x{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--ink);background:none;cursor:pointer;font-size:18px}

/* вещи комплекса */
.goods{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:16px 4px 20px;scrollbar-width:thin}
.good{flex:0 0 min(78vw,400px);scroll-snap-align:start;border-radius:28px;overflow:hidden;background:var(--soft);display:grid;min-width:0;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.good:nth-child(odd){transform:rotate(-1.2deg)}.good:nth-child(even){transform:rotate(1.2deg)}.good:hover{transform:rotate(0) translateY(-8px)}
.good .im{position:relative}.good .im::after{content:"";position:absolute;inset:0;background:url(../assets/img/noise.png);opacity:.1;mix-blend-mode:overlay}
.good .im{aspect-ratio:4/5;overflow:hidden}
.good img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.good:hover img{transform:scale(1.06)}
.good .cp{padding:18px 20px 22px;display:grid;gap:4px}
.good .cp b{font-weight:400;font-size:22px}
.good .cp span{color:var(--mute);font-size:15px}

/* контакты */
.contact{position:relative;overflow:hidden;color:#fff;isolation:isolate;border-radius:36px;margin-inline:var(--gut) var(--gutR)}
.contact canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.contact .grain{z-index:-1}
.contact .in{padding:clamp(32px,6vw,80px);display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:end}
.contact h2{font-size:clamp(44px,7vw,112px);line-height:.92;letter-spacing:-.035em}
.ig{display:grid;gap:14px;background:color-mix(in srgb,#fff 16%,transparent);border:1px solid color-mix(in srgb,#fff 45%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:24px;padding:24px;min-width:0}
.ig .who{display:flex;gap:14px;align-items:center}
.ig .av{width:56px;height:56px;border-radius:50%;background:#fff;display:grid;place-items:center}
.ig .hdl{font-size:28px;letter-spacing:-.01em;word-break:break-all}
.ig .row{display:flex;gap:10px;flex-wrap:wrap}
.ig .btn{background:#fff;color:var(--ink)}.ig .btn:hover{background:var(--ink);color:#fff}
.ig .btn.ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px #fff}.ig .btn.ghost:hover{background:#fff;color:var(--ink)}
.where{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}
.where div{border-top:1.5px solid color-mix(in srgb,#fff 60%,transparent);padding-top:12px;display:grid;gap:4px}
@media(max-width:860px){.contact .in{grid-template-columns:1fr}.where{grid-template-columns:1fr}}

footer{padding-block:72px 40px}
.ft{display:grid;gap:40px}
.biglogo{width:100%;--w:100%;max-width:1100px}
.biglogo i{transition:background .8s}
.fl{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:var(--mute);font-size:14px;border-top:1px solid var(--line);padding-top:20px}

.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:999px;padding:12px 20px;z-index:90;font-size:15px;transition:opacity .3s,transform .3s}
.toast[hidden]{display:none!important}

.blob{position:fixed;left:0;top:0;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;pointer-events:none;z-index:100;background:radial-gradient(circle at 40% 35%,var(--yel),var(--g1) 45%,var(--pink) 75%);filter:blur(1px);mix-blend-mode:multiply;transition:width .3s,height .3s,margin .3s,opacity .3s;opacity:.85}
.blob.big{width:76px;height:76px;margin:-38px 0 0 -38px;opacity:.55}
@media (hover:none),(pointer:coarse){.blob{display:none}}
.burst{position:fixed;left:0;top:0;width:54px;pointer-events:none;z-index:95}
.badge{position:absolute;width:clamp(110px,11vw,150px);aspect-ratio:1;animation:spin 18s linear infinite;pointer-events:none}
.badge text{font-family:var(--ed);font-style:italic;font-size:15.5px;letter-spacing:.06em}
@keyframes spin{to{transform:rotate(360deg)}}
.ticket{position:relative;display:grid;gap:10px;background:#fff;color:var(--ink);border-radius:22px;padding:22px 22px 20px;transform:rotate(-2.5deg);box-shadow:0 24px 50px -20px rgba(80,0,40,.45);animation:drop .7s cubic-bezier(.2,.8,.2,1.25)}
.ticket::before,.ticket::after{content:"";position:absolute;top:58%;width:22px;height:22px;border-radius:50%;background:var(--g1)}
.ticket::before{left:-11px}.ticket::after{right:-11px}
.ticket .perf{border-top:2px dashed var(--line);margin:6px 0}
.ticket .code{font-family:var(--ed);font-size:40px;line-height:1;letter-spacing:.02em}
@keyframes drop{from{transform:translateY(-30px) rotate(-12deg)}to{transform:rotate(-2.5deg)}}
.card .vis .stm{position:absolute;left:50%;top:18%;width:18%;transform:translateX(-50%);opacity:0;transition:opacity .4s}
.card:hover .vis .stm{opacity:.9;animation:steam 2.4s ease-out infinite}
@keyframes steam{from{transform:translate(-50%,10px) scale(.9)}to{transform:translate(-50%,-26px) scale(1.15);opacity:0}}
.logo.wig{animation:wig 3.2s ease-in-out infinite}
@keyframes wig{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(3deg) scale(1.03)}}
.sh h2 em{font-family:var(--ed);font-style:italic;color:var(--pink);font-size:.62em;margin-left:.25em;letter-spacing:0;vertical-align:.35em}

/* ===== единый фон: одно живое свечение под всей страницей ===== */
body{background:var(--g2)}
.bgfix{position:fixed;inset:0;z-index:-5;overflow:hidden;pointer-events:none}
.bgfix canvas{position:absolute;inset:0;width:100%;height:100%}
.bgfix .grain{z-index:1}
:root{--glass:color-mix(in srgb,#fff 80%,transparent);--glass2:color-mix(in srgb,#fff 16%,transparent);--gline:color-mix(in srgb,#fff 45%,transparent)}
header{background:color-mix(in srgb,#fff 72%,transparent)}
header.sc{border-bottom-color:transparent;box-shadow:0 8px 30px -18px rgba(80,0,40,.35)}
.hero{background:transparent}
.marq{background:transparent;border-block:1px solid var(--gline);color:#fff}
section{color:#fff}
.sh h2,.sh p{color:#fff}
.sh p{opacity:.94;text-shadow:0 1px 18px rgba(90,0,40,.12)}
.sh h2 em{color:var(--yel)}
.chip{background:var(--glass2);border-color:var(--gline);color:#fff;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.chip:hover{border-color:#fff}
.chip[aria-pressed="true"]{background:#fff;color:var(--ink);border-color:#fff}
.card,.room-c,.good,.panel{background:var(--glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:var(--ink);box-shadow:0 20px 50px -30px rgba(80,0,40,.45)}
.herbs span{background:var(--blush)}
.route{background:transparent;border-radius:0;margin-inline:0}
.contact{background:transparent;border-radius:0;margin-inline:0}
footer{color:#fff}
.fl{color:#fff;border-top-color:var(--gline)}
.fl a{color:#fff}
.sum .bgc{opacity:.0}
.sum{background:color-mix(in srgb,#2A0418 20%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--gline)}
.ticket::before,.ticket::after{background:color-mix(in srgb,#9a2a6a 60%,#fff)}
.blob{mix-blend-mode:screen;background:radial-gradient(circle at 40% 35%,#fff,var(--yel) 40%,transparent 72%)}
.drawer .dw{background:var(--paper);color:var(--ink)}

/* ===== чище ===== */
.blob,.hero .badge,.sum .badge,.room-c .ph .stk,.route .orb,img.float[data-el="0"],img.float[data-el="2"]{display:none!important}
.grain{opacity:.08}
.good:nth-child(odd),.good:nth-child(even){transform:none}.good:hover{transform:translateY(-6px)}
.card,.room-c,.good,.panel{background:color-mix(in srgb,#fff 88%,transparent);box-shadow:0 12px 40px -28px rgba(80,0,40,.35)}
.room-c:hover{transform:none}
.logo.wig{animation:none}
.marq{border-block-color:color-mix(in srgb,#fff 30%,transparent)}
.marq .logo{display:none}
.marq span:not(.logo)::after{content:"";display:inline-block;width:.28em;height:.28em;border-radius:50%;background:#fff;opacity:.7;margin-left:40px;vertical-align:middle}
.marq div{font-size:clamp(24px,3vw,40px);padding-block:14px}
.hero .kick span:last-child{display:none}
.card .vis .tg{background:color-mix(in srgb,#fff 90%,transparent)}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
