@font-face{font-family:Montserrat;font-style:normal;font-weight:200 700;font-display:swap;src:url(/assets/fonts/montserrat-cyr.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Montserrat;font-style:normal;font-weight:200 700;font-display:swap;src:url(/assets/fonts/montserrat-lat.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --bg:#07060d;--bg2:#0d0a18;
  --ink:#f3eefb;--mute:#b3a9c9;--dim:#7d7396;
  --violet:#a974ff;--violet2:#7c4dff;--blue:#3f7bff;--emerald:#35c99a;--amber:#ffb55a;
  --line:rgba(255,255,255,.09);--glass:rgba(255,255,255,.035);
  --ease:cubic-bezier(.22,.8,.24,1);
  --wrap:1120px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:300 17px/1.65 Montserrat,system-ui,-apple-system,"Segoe UI",sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,ol,ul{margin:0}
ol,ul{padding:0;list-style:none}
::selection{background:rgba(169,116,255,.45)}
:focus-visible{outline:2px solid var(--violet);outline-offset:3px;border-radius:4px}
@view-transition{navigation:auto}

/* ---------- фон: медленные цветные пятна, как свет сквозь стекло ---------- */
.sky{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:radial-gradient(120% 80% at 50% -10%,#150f2b 0%,var(--bg) 60%)}
.sky i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;will-change:transform}
.sky i:nth-child(1){width:46vmax;height:46vmax;left:-12vmax;top:-10vmax;background:radial-gradient(circle,#6a3df0 0%,transparent 65%);animation:drift1 38s ease-in-out infinite alternate}
.sky i:nth-child(2){width:40vmax;height:40vmax;right:-14vmax;top:18vh;background:radial-gradient(circle,#1e4fd6 0%,transparent 65%);opacity:.38;animation:drift2 46s ease-in-out infinite alternate}
.sky i:nth-child(3){width:34vmax;height:34vmax;left:18vw;bottom:-18vmax;background:radial-gradient(circle,#ff9a3d 0%,transparent 65%);opacity:.16;animation:drift3 52s ease-in-out infinite alternate}
.sky i:nth-child(4){width:26vmax;height:26vmax;right:12vw;bottom:-8vmax;background:radial-gradient(circle,#1fae84 0%,transparent 65%);opacity:.16;animation:drift1 60s ease-in-out infinite alternate-reverse}
@keyframes drift1{to{transform:translate3d(7vw,6vh,0) scale(1.12)}}
@keyframes drift2{to{transform:translate3d(-8vw,-5vh,0) scale(1.1)}}
@keyframes drift3{to{transform:translate3d(6vw,-7vh,0) scale(1.18)}}

.wrap{width:min(var(--wrap),100% - 40px);margin-inline:auto}

/* ---------- шапка ---------- */
.top{position:fixed;inset:0 0 auto 0;z-index:20;transition:background .5s var(--ease),border-color .5s var(--ease);border-bottom:1px solid transparent}
.top.stuck{background:rgba(7,6,13,.72);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);border-color:var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:16px}
.logo{font-weight:700;letter-spacing:.06em;font-size:15px;white-space:nowrap;text-shadow:0 0 18px rgba(255,120,160,.35)}
.logo span{font-weight:200;letter-spacing:.34em;margin-left:.5em}
.nav{display:flex;gap:clamp(14px,3vw,34px);font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:400}
.nav a{position:relative;padding:8px 0;color:var(--mute);transition:color .35s var(--ease)}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:linear-gradient(90deg,var(--violet),var(--amber));transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.nav a:hover,.nav a[aria-current]{color:var(--ink)}
.nav a:hover::after,.nav a[aria-current]::after{transform:scaleX(1)}

/* ---------- появление при прокрутке ---------- */
.js .rv{opacity:0;transform:translate3d(0,26px,0);transition:opacity 1s var(--ease),transform 1.1s var(--ease);transition-delay:calc(var(--d,0) * 90ms)}
.js .rv.in{opacity:1;transform:none}

/* ---------- hero ---------- */
.hero{min-height:100svh;display:grid;align-items:center;padding:96px 0 56px}
.hero .wrap{display:grid;grid-template-columns:1fr;gap:44px;align-items:center}
.eyebrow{font-size:12px;letter-spacing:.42em;text-transform:uppercase;color:var(--amber);font-weight:400}
.hero h1{font-size:clamp(30px,9.6vw,84px);line-height:1.02;font-weight:700;letter-spacing:-.01em;margin:.28em 0 .3em;background:linear-gradient(100deg,#fff 0%,#e3d1ff 38%,#a974ff 62%,#6aa3ff 100%);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.08em}
.hero .sub{font-size:clamp(16px,2.4vw,20px);color:var(--mute);max-width:30em}
.meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:22px;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);font-weight:400}
.meta span+span::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--violet);margin-right:22px;vertical-align:middle;box-shadow:0 0 10px var(--violet)}

.count{display:flex;gap:10px;margin-top:30px}
.count div{min-width:68px;padding:12px 8px 10px;text-align:center;border:1px solid var(--line);border-radius:14px;background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.count b{display:block;font-size:26px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.count small{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.count.out{font-size:15px;letter-spacing:.2em;text-transform:uppercase;color:var(--emerald)}

.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.btn{position:relative;display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:999px;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--line);background:var(--glass);overflow:hidden;transition:transform .5s var(--ease),border-color .5s var(--ease),box-shadow .5s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);transform:translateX(-120%);transition:transform .9s var(--ease)}
.btn:hover{transform:translateY(-2px);border-color:rgba(169,116,255,.6);box-shadow:0 10px 34px -12px rgba(169,116,255,.7)}
.btn:hover::before{transform:translateX(120%)}
.btn.pri{background:linear-gradient(120deg,var(--violet2),#4d6bff);border-color:transparent;box-shadow:0 10px 34px -14px rgba(124,77,255,.9)}
.btn svg{width:18px;height:18px;flex:none}

/* обложка */
.art{position:relative;width:min(78vw,480px);margin-inline:auto;aspect-ratio:1;perspective:1100px}
.art .rays{position:absolute;inset:-42%;border-radius:50%;background:repeating-conic-gradient(from 0deg,transparent 0deg 7deg,rgba(169,116,255,.20) 9deg,transparent 12deg 19deg,rgba(63,123,255,.16) 21deg,transparent 24deg 33deg,rgba(255,181,90,.12) 35deg,transparent 38deg 45deg);-webkit-mask:radial-gradient(circle,#000 22%,transparent 68%);mask:radial-gradient(circle,#000 22%,transparent 68%);animation:spin 160s linear infinite;will-change:transform}
.art .halo{position:absolute;inset:-14%;border-radius:50%;background:radial-gradient(circle,rgba(169,116,255,.75) 0%,rgba(124,77,255,.28) 38%,transparent 68%);filter:blur(34px);animation:breathe 7s ease-in-out infinite;will-change:transform,opacity}
.art .tilt{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));will-change:transform}
.art .frame{position:absolute;inset:0;border-radius:10px;overflow:hidden;box-shadow:0 40px 90px -30px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.08),0 0 70px -10px rgba(124,77,255,.55);animation:float 9s ease-in-out infinite;will-change:transform}
.art img{width:100%;height:100%;object-fit:cover}
.art .shine{position:absolute;inset:0;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.20) 50%,transparent 62%);mix-blend-mode:screen;transform:translateX(-130%);animation:shine 9s var(--ease) infinite 2s}
.art .core{position:absolute;left:50%;top:49%;width:34%;height:34%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(214,170,255,.55),transparent 70%);mix-blend-mode:screen;animation:breathe 7s ease-in-out infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes breathe{0%,100%{opacity:.55;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}}
.art .core{animation-name:breatheC}
@keyframes breatheC{0%,100%{opacity:.35;transform:translate(-50%,-50%) scale(.9)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1.15)}}
@keyframes float{0%,100%{transform:translate3d(0,-6px,0)}50%{transform:translate3d(0,6px,0)}}
@keyframes shine{0%,55%{transform:translateX(-130%)}85%,100%{transform:translateX(130%)}}

.scroll{position:absolute;left:50%;bottom:18px;width:1px;height:44px;background:linear-gradient(var(--violet),transparent);transform-origin:top;animation:scr 2.6s var(--ease) infinite;opacity:.7}
@keyframes scr{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1) translateY(44px);opacity:0}}
.hero{position:relative}

/* ---------- секции ---------- */
section{padding:clamp(64px,10vw,120px) 0}
.h2{font-size:clamp(28px,5.4vw,46px);font-weight:700;line-height:1.12;letter-spacing:-.005em}
.h2 em{font-style:normal;font-weight:200}
.lead{font-size:clamp(18px,2.6vw,23px);line-height:1.55;color:var(--ink);max-width:34em;margin-top:22px;font-weight:300}
.txt{color:var(--mute);max-width:38em;margin-top:18px}
.txt strong,.lead strong{font-weight:600;color:var(--ink)}

.cards{display:grid;gap:14px;margin-top:44px}
.card{position:relative;padding:28px 26px 30px;border-radius:18px;border:1px solid var(--line);background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.015));overflow:hidden;transition:transform .7s var(--ease),border-color .7s var(--ease)}
.card::before{content:"";position:absolute;width:220px;height:220px;right:-90px;top:-110px;border-radius:50%;background:var(--c,var(--violet));filter:blur(60px);opacity:.38;transition:opacity .7s var(--ease),transform .9s var(--ease)}
.card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.2)}
.card:hover::before{opacity:.6;transform:scale(1.2)}
.card small{font-size:11px;letter-spacing:.3em;color:var(--dim);font-weight:400}
.card h3{font-size:21px;font-weight:600;margin:10px 0 8px}
.card p{color:var(--mute);font-size:15.5px;position:relative}

/* треклист */
.tracks{margin-top:40px;column-gap:44px;counter-reset:t}
.tracks li{break-inside:avoid;counter-increment:t;border-bottom:1px solid var(--line)}
.tracks a{position:relative;display:flex;align-items:baseline;gap:18px;padding:17px 8px 17px 4px;transition:padding .5s var(--ease),color .4s}
.tracks a::before{content:counter(t,decimal-leading-zero);font-size:12px;font-weight:400;color:var(--dim);letter-spacing:.1em;font-variant-numeric:tabular-nums;transition:color .4s}
.tracks a::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:linear-gradient(90deg,var(--violet),var(--blue),var(--emerald),var(--amber));transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.tracks b{font-weight:400;font-size:17px;flex:1}
.tracks i{font-style:normal;color:var(--dim);transform:translateX(-8px);opacity:0;transition:transform .5s var(--ease),opacity .5s}
.tracks a:hover{padding-left:14px}
.tracks a:hover::before{color:var(--amber)}
.tracks a:hover::after{transform:scaleX(1)}
.tracks a:hover i{transform:none;opacity:1}
.note{margin-top:22px;font-size:14px;color:var(--dim)}

/* цитата */
.quote{text-align:center}
.quote blockquote{margin:0 auto;max-width:20em;font-size:clamp(24px,5vw,44px);line-height:1.28;font-weight:200}
.quote blockquote b{font-weight:600;background:linear-gradient(100deg,#e3d1ff,var(--violet),#6aa3ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.quote cite{display:block;margin-top:26px;font-style:normal;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--dim)}
.quote cite a{border-bottom:1px solid var(--line);padding-bottom:2px;transition:color .4s,border-color .4s}
.quote cite a:hover{color:var(--ink);border-color:var(--violet)}

/* автор (блок) */
.duo{display:grid;gap:40px;align-items:center}
.pic{position:relative;border-radius:18px;overflow:hidden;box-shadow:0 40px 90px -40px #000,0 0 0 1px var(--line);max-width:420px;width:100%;margin-inline:auto}
.pic img{width:100%;transform:scale(1.06) translate3d(0,var(--py,0px),0);will-change:transform}
.more{display:inline-flex;gap:10px;align-items:center;margin-top:26px;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--violet)}
.more span{transition:transform .5s var(--ease)}
.more:hover span{transform:translateX(6px)}

/* подписка */
.follow{text-align:center}
.follow .btns{justify-content:center}

/* ---------- внутренние страницы ---------- */
.page{padding:132px 0 40px}
.page h1{overflow-wrap:anywhere;font-size:clamp(30px,8vw,72px);font-weight:700;line-height:1.05;letter-spacing:-.01em}
.crumbs{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);margin-bottom:18px;font-weight:400}
.crumbs a{transition:color .4s}.crumbs a:hover{color:var(--ink)}

.grid{display:grid;gap:14px;margin-top:44px}
.song{position:relative;display:block;padding:24px 24px 26px;border-radius:18px;border:1px solid var(--line);background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.012));overflow:hidden;transition:transform .7s var(--ease),border-color .7s var(--ease),box-shadow .7s var(--ease)}
.song::before{content:"";position:absolute;inset:auto -30% -70% -30%;height:120%;background:radial-gradient(closest-side,var(--c,var(--violet)),transparent);opacity:0;transition:opacity .8s var(--ease)}
.song:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.22);box-shadow:0 26px 60px -34px var(--c,var(--violet))}
.song:hover::before{opacity:.22}
.song>*{position:relative}
.song small{font-size:12px;letter-spacing:.2em;color:var(--dim);font-weight:400}
.song h2{font-size:21px;font-weight:600;margin:8px 0 10px;line-height:1.25}
.song p{font-size:14.5px;color:var(--mute);line-height:1.6}

.lyr{max-width:640px;margin-top:46px}
.lyr p{font-size:clamp(17px,2.5vw,20px);line-height:1.75;margin-bottom:1.7em;color:#e9e2f5;white-space:pre-line}
.lyr p.hook{color:#fff;font-weight:500;padding-left:18px;border-left:2px solid var(--violet)}
.credit{margin-top:8px;padding-top:26px;border-top:1px solid var(--line);font-size:14px;color:var(--dim);max-width:640px}
.credit b{color:var(--mute);font-weight:400}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:56px}
.pn a{padding:20px 22px;border:1px solid var(--line);border-radius:16px;background:var(--glass);transition:transform .6s var(--ease),border-color .6s var(--ease)}
.pn a:hover{transform:translateY(-3px);border-color:rgba(169,116,255,.5)}
.pn small{display:block;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);margin-bottom:6px}
.pn b{font-weight:500;font-size:16px}
.pn a:last-child{text-align:right}

.prose{max-width:38em}
.prose p{margin-top:1.15em;color:#d9d1e8}
.prose .big{font-size:clamp(19px,2.8vw,24px);line-height:1.5;color:var(--ink)}
.say{margin:44px 0 0;padding:6px 0 6px 24px;border-left:2px solid var(--violet);max-width:36em}
.say p{font-size:clamp(17px,2.4vw,20px);line-height:1.7;color:var(--ink);margin-top:1em}
.say p:first-child{margin-top:0}
.say footer{margin-top:18px;font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--dim)}

/* ---------- подвал ---------- */
.foot{border-top:1px solid var(--line);margin-top:60px;padding:40px 0 48px;font-size:13px;color:var(--dim)}
.foot .wrap{display:flex;flex-wrap:wrap;gap:18px 32px;justify-content:space-between;align-items:center}
.foot nav{display:flex;flex-wrap:wrap;gap:8px 24px}
.foot a{transition:color .4s}.foot a:hover{color:var(--ink)}

@media (min-width:640px){
  .cards{grid-template-columns:repeat(3,1fr)}
  .grid{grid-template-columns:repeat(2,1fr)}
  .tracks{columns:2}
}
@media (min-width:900px){
  .hero .wrap{grid-template-columns:1.05fr .95fr;gap:60px}
  .hero h1{font-size:clamp(38px,4.5vw,60px)}
  .hero .copy{order:0}.art{order:1;width:min(40vw,500px)}
  .duo{grid-template-columns:.8fr 1.2fr;gap:70px}
  .grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:899px){
  .hero{padding-top:92px}
  .art{order:-1;width:min(70vw,360px)}
  .hero .copy{text-align:center}
  .hero .sub{margin-inline:auto}
  .meta,.count,.btns{justify-content:center}
  .scroll{display:none}
}
@media (max-width:420px){
  .logo span{display:none}
  .nav{font-size:12px;letter-spacing:.1em}
  .count div{min-width:60px}
  .pn{grid-template-columns:1fr}.pn a:last-child{text-align:left}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .js .rv{opacity:1;transform:none}
  @view-transition{navigation:none}
}
