/* eRoot Store — premium editorial system */
:root {
  color-scheme: dark;
  --bg:#07070a; --bg-2:#0d0c12; --surface:#111018; --surface-2:#17151f;
  --text:#f6f3fb; --text-dim:#b8b1c2; --text-mute:#817a8d;
  --line:rgba(255,255,255,.13); --line-soft:rgba(255,255,255,.075);
  --violet:#8b5cf6; --violet-deep:#6d28d9; --violet-soft:#a78bfa; --pink:#e879b9; --blue:#76c8f6;
  --accent:var(--violet); --accent-hard:var(--violet); --accent-soft:rgba(228,178,219,.12);
  --glass:rgba(17,16,24,.74); --glass-strong:rgba(17,16,24,.94); --card-highlight:rgba(255,255,255,.07);
  --shadow:0 30px 90px rgba(0,0,0,.36); --radius:18px; --radius-lg:28px; --radius-xl:40px;
  --maxw:1480px; --gutter:clamp(18px,4vw,64px); --header-h:72px; --tap:44px;
  --f-display:Inter,Arial,Helvetica,sans-serif; --f-sans:Inter,Arial,Helvetica,sans-serif; --f-mono:"Courier New",monospace;
  --ease:cubic-bezier(.22,1,.36,1); --ease-snappy:cubic-bezier(.2,.8,.2,1);
}
:root[data-theme="light"] {
  color-scheme: light;
  --bg:#f3f0f6; --bg-2:#ebe6ef; --surface:#fff; --surface-2:#f7f3fa;
  --text:#17131c; --text-dim:#554f5c; --text-mute:#7c7484;
  --line:rgba(23,19,28,.16); --line-soft:rgba(23,19,28,.09);
  --glass:rgba(255,255,255,.74); --glass-strong:rgba(255,255,255,.94); --card-highlight:rgba(255,255,255,.82);
  --accent:#a428a8; --accent-hard:#93279d; --accent-soft:rgba(164,40,168,.09); --shadow:0 28px 80px rgba(22,23,28,.13);
}
*{box-sizing:border-box} html{scroll-behavior:smooth;overflow-x:clip;scrollbar-gutter:stable;-webkit-text-size-adjust:100%} html,body{margin:0;padding:0} body{min-height:100vh;background:var(--bg);color:var(--text);font:16px/1.55 var(--f-sans);-webkit-font-smoothing:antialiased;overflow-x:clip;transition:background .35s,color .35s} a{color:inherit;text-decoration:none} button,input,select{font:inherit} img{display:block;max-width:100%} ::selection{background:color-mix(in srgb,var(--pink) 45%,var(--violet-soft));color:#17091d} p{margin:0 0 16px;color:var(--text-dim)} h1,h2,h3,h4{margin:0} p,li{overflow-wrap:break-word;word-break:normal;hyphens:none} h1,h2,h3,h4,.btn,.label,.index,.price,.card__title,.tile h3,.tier-column__head h3,.catalog-statement b{word-break:keep-all;overflow-wrap:normal;hyphens:none}h2,h3,h4,.lede,.quote,.empty__title,.tile h3,.card__title{text-wrap:balance}
#dotfield{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.72} #site-header,main,#site-footer,#site-marquee,.toasts{position:relative;z-index:1}.container{width:100%;max-width:var(--maxw);margin:auto;padding-inline:var(--gutter)}.section{padding:clamp(72px,9vw,144px) 0}.section--tight{padding:clamp(56px,7vw,112px) 0}.section--why{border-top:1px solid var(--line)}
.label,.index{font:600 10px/1.2 var(--f-mono);letter-spacing:.17em;text-transform:uppercase;color:var(--text-mute)}.label--accent,.accent{color:var(--accent)}.muted{color:var(--text-mute)}.small{font-size:13px}.lede{max-width:54ch;font-size:clamp(16px,1.7vw,23px);line-height:1.48}.price{font:700 clamp(20px,2vw,28px)/1 var(--f-display);letter-spacing:-.04em}.mono{font-family:var(--f-mono)}
h1{font:800 clamp(54px,10.4vw,158px)/.78 var(--f-display);letter-spacing:-.07em;text-transform:uppercase}h2{font:800 clamp(42px,7vw,104px)/.86 var(--f-display);letter-spacing:-.06em;text-transform:uppercase}h3{font:750 20px/1 var(--f-display);letter-spacing:-.035em}.head{display:grid;gap:22px;margin-bottom:clamp(36px,6vw,78px)}.head__top{display:flex;align-items:center;gap:18px;padding-bottom:12px;border-bottom:1px solid var(--line)}.head__top .label{flex:1}.head h2{max-width:12ch}.head--compact{margin-top:80px;margin-bottom:26px}.quote{margin:0;max-width:18ch;font:750 clamp(34px,5.5vw,82px)/.96 var(--f-display);letter-spacing:-.055em}
.nav-close{display:none}.header{position:sticky;top:0;z-index:80;height:var(--header-h);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 75%,transparent);backdrop-filter:blur(18px) saturate(125%)}.header__inner{height:100%;display:flex;align-items:center;gap:20px}.logo{display:flex;align-items:center;gap:10px;flex:none}.logo__mark{width:34px;height:34px;position:relative}.logo__mark img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.logo__text{font:800 17px/1 var(--f-display);letter-spacing:-.04em;text-transform:uppercase}.brand-mark--light{display:none}:root[data-theme="light"] .brand-mark--dark{display:none}:root[data-theme="light"] .brand-mark--light{display:block}.nav{display:flex;align-items:center;gap:3px;flex:1}.nav a{position:relative;padding:9px 12px;font:600 10px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-mute);white-space:nowrap;transition:color .25s}.nav a:hover,.nav a.is-active{color:var(--text)}.nav a::after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.nav a:hover::after,.nav a.is-active::after{transform:scaleX(1)}.header__actions,.lang{display:flex;align-items:center}.header__actions{margin-left:auto;gap:4px}.lang button,.theme-toggle,.burger{min-width:var(--tap);height:var(--tap);border:0;background:none;color:var(--text);cursor:pointer}.lang button{min-width:32px;padding:0;font:600 10px var(--f-mono);color:var(--text-mute)}.lang button.is-active{color:var(--accent)}.theme-toggle{display:grid;place-items:center}.theme-toggle__disc{width:15px;height:15px;border-radius:50%;background:var(--text);box-shadow:inset 0 0 0 0 var(--bg)}:root[data-theme="light"] .theme-toggle__disc{box-shadow:inset -5px -1px 0 0 var(--bg);background:var(--accent-hard)}.cart-btn{display:flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border:1px solid transparent;border-radius:99px;background:color-mix(in srgb,var(--tone,var(--text)) 7%,transparent);font:600 10px var(--f-mono);letter-spacing:.1em;text-transform:uppercase}.cart-btn__count{color:var(--accent)}.burger{display:none;place-items:center;position:relative}.burger span,.burger span::before{display:block;width:21px;height:2px;border-radius:2px;background:currentColor;transition:transform .35s var(--ease),top .35s var(--ease)}.burger span{position:relative;transform:translateY(-3.5px)}.burger span::before{content:"";position:absolute;left:0;top:7px}.burger.is-open span{transform:rotate(45deg)}.burger.is-open span::before{top:0;transform:rotate(-90deg)}
.hero{min-height:calc(100vh - var(--header-h));min-height:calc(100svh - var(--header-h));display:flex;align-items:center;padding:clamp(72px,10vw,150px) 0}.hero__kicker{display:flex;align-items:center;gap:14px;margin-bottom:clamp(28px,5vw,60px)}.rule-x{height:1px;flex:1;background:var(--line)}.hero h1{position:relative;z-index:1;max-width:11ch}.hero h1 .line{display:block}.hero h1 .line:first-child{color:var(--violet)}.hero h1 .line--stroke{color:var(--text);-webkit-text-stroke:0}.hero h1 .accent{font-size:.38em;line-height:1.3;letter-spacing:-.04em;margin-top:24px;color:var(--text)}.hero__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:end;margin-top:clamp(42px,7vw,92px);padding-top:24px;border-top:1px solid var(--line)}.hero__mark{justify-self:end;width:clamp(132px,18vw,270px);filter:none}.hero__mark img{width:100%;border-radius:50%}.btn-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.hero__support{margin-top:22px}.support-link{display:inline-block;border-bottom:1px solid var(--line)}
.purchase-dots{position:absolute;inset:0;z-index:4;overflow:visible;border-radius:inherit;pointer-events:none;--dot-ink:#fff}.purchase-dots i{position:absolute;left:50%;top:50%;width:var(--dot-size,1.5px);height:var(--dot-size,1.5px);margin:-.75px;border-radius:50%;background:var(--dot-ink);box-shadow:none;animation:purchase-dot 950ms cubic-bezier(.15,.75,.3,1) var(--dot-delay) both}:root[data-theme="light"] .purchase-dots{--dot-ink:#111}@keyframes purchase-dot{0%{opacity:1;transform:translate(0,0) scale(1)}70%{opacity:.9}100%{opacity:0;transform:translate(var(--dot-dx),var(--dot-dy)) scale(.25)}}.is-dot-pulse{animation:purchase-button 620ms var(--ease)}.cart-btn.is-bumped{animation:cart-bump 620ms var(--ease)}@keyframes purchase-button{40%{transform:translateY(-2px) scale(1.025);border-color:var(--accent)}}@keyframes cart-bump{45%{transform:scale(1.12);border-color:var(--accent);box-shadow:none}}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--tap);padding:11px 18px;border:1px solid transparent;border-radius:99px;background:transparent;color:var(--text);font:650 10px/1 var(--f-mono);letter-spacing:.11em;text-transform:uppercase;cursor:pointer;overflow:hidden;transition:transform .25s var(--ease),border-color .25s,background .25s,color .25s}.btn:hover,.btn:focus-visible{transform:translateY(-2px);border-color:var(--accent);background:var(--accent-soft)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.btn--solid{background:var(--text);border-color:var(--text);color:var(--bg)}.btn--solid:hover{background:var(--accent-hard);border-color:var(--accent-hard);color:white}.btn--sm{min-height:38px;padding:9px 14px;font-size:9px}.btn--block{width:100%}.btn[disabled]{opacity:.38;cursor:not-allowed;transform:none}.link-danger{padding:0;border:0;background:none;color:#ef8a9f;cursor:pointer;font:600 10px var(--f-mono);text-transform:uppercase;letter-spacing:.08em}
.marquee{overflow:hidden;border-block:1px solid var(--line);padding:14px 0;background:var(--bg-2)}.marquee__track{display:flex;width:max-content;animation:marquee 38s linear infinite;will-change:transform}.marquee__group{display:flex;align-items:center;gap:46px;flex:none;padding-right:46px}.marquee span{white-space:nowrap;font:600 10px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--text-mute)}.marquee span b{color:var(--accent);font-weight:600}@keyframes marquee{to{transform:translate3d(-25%,0,0)}}
/* stable cinematic poster until a single combined film is available */
.story{height:auto;padding:clamp(22px,4vw,56px) 0;background:#040406}.story__stage{position:relative;width:min(calc(100% - 2*var(--gutter)),1480px);height:clamp(600px,82svh,900px);margin:auto;overflow:hidden;isolation:isolate;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-xl);background:#000;box-shadow:var(--shadow)}.story__stage::after{display:none}.story__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;opacity:0;filter:none;image-rendering:auto}.story__video:first-child{opacity:1}.story__video:not(:first-child){display:none}.story__shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(2,2,5,.9),rgba(2,2,5,.45) 46%,rgba(2,2,5,.08)),linear-gradient(0deg,rgba(2,2,5,.72),transparent 55%)}.story__content{position:relative;z-index:2;height:100%;display:flex;align-items:flex-end;padding-top:60px;padding-bottom:60px;color:white}.story__counter,.story__progress{display:none}.story__copy{display:none;max-width:800px}.story__copy:first-of-type{display:block}.story__copy h2{max-width:11ch;margin:12px 0 22px;color:white;font-size:clamp(54px,8vw,118px)}.story__copy p{max-width:44ch;color:rgba(255,255,255,.72);font-size:clamp(15px,1.5vw,20px)}.story__cta{display:inline-flex;align-items:center;gap:14px;min-height:46px;margin-top:20px;padding:0 18px;border:1px solid rgba(255,255,255,.32);border-radius:99px;background:rgba(6,6,9,.35);backdrop-filter:blur(10px);font:600 10px var(--f-mono);letter-spacing:.1em;text-transform:uppercase}.story__cta i{font-style:normal;font-size:18px}
.dot-glyph{position:absolute;z-index:2;inset:0;width:auto;height:auto;opacity:.62;pointer-events:none}.dot-glyph i{position:absolute;left:var(--sx);top:var(--sy);width:2.5px;height:2.5px;border-radius:50%;background:color-mix(in srgb,var(--art,var(--violet)) 84%,white);box-shadow:none;transform:translate(-50%,-50%) scale(var(--s,1));transition:left 1.25s cubic-bezier(.16,1,.3,1),top 1.25s cubic-bezier(.16,1,.3,1),opacity .7s,transform .8s;transition-delay:var(--delay)}.card:hover .dot-glyph i,.card:focus-within .dot-glyph i,.tier-column:hover .dot-glyph i,.tier-column:focus-within .dot-glyph i,.card.is-touching .dot-glyph i{left:var(--tx);top:var(--ty);transform:translate(-50%,-50%) scale(calc(var(--s,1)*1.12))}.card:hover .dot-glyph,.card:focus-within .dot-glyph,.tier-column:hover .dot-glyph,.tier-column:focus-within .dot-glyph{opacity:.72}.dot-glyph--tier{right:0;top:0;width:auto;height:auto;transform:none;--art:var(--tier-accent);opacity:.52}.dot-glyph--tier i{width:2.8px;height:2.8px;box-shadow:none}.product-projection{min-height:clamp(360px,42vw,600px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--glass);backdrop-filter:blur(22px) saturate(165%);-webkit-backdrop-filter:blur(22px) saturate(165%);box-shadow:inset 0 1px 0 var(--card-highlight)}.product-projection__item{position:relative;min-height:0;border-radius:22px;background:radial-gradient(circle at 50% 45%,var(--accent-soft),transparent 68%);overflow:hidden}.dot-glyph--projection{left:0;top:0;width:auto;height:auto;transform:none;opacity:.9}.dot-glyph--projection i{width:clamp(2.6px,.34vw,4px);height:clamp(2.6px,.34vw,4px);background:var(--accent);box-shadow:none}:root[data-theme="light"] .dot-glyph--projection i{background:#4c1d95;box-shadow:none}.product-projection__item:hover .dot-glyph--projection i,.product-projection__item:focus-within .dot-glyph--projection i{left:var(--tx);top:var(--ty);transform:translate(-50%,-50%) scale(calc(var(--s,1)*1.08))}.product-projection__item small{position:absolute;left:16px;bottom:13px;font:600 9px var(--f-mono);letter-spacing:.15em;color:var(--text-mute)}
.constellation-section{border-block:1px solid var(--line);background:var(--bg-2);overflow:hidden}.constellation-section__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,7vw,110px);align-items:center}.constellation-section h2{max-width:8ch;margin-top:16px}.constellation{position:relative;isolation:isolate;overflow:hidden}.constellation i{position:absolute;left:var(--sx);top:var(--sy);width:4px;height:4px;border-radius:50%;background:var(--accent);box-shadow:none;transform:translate(-50%,-50%);transition:left 1.15s cubic-bezier(.16,1,.3,1),top 1.15s cubic-bezier(.16,1,.3,1),transform .75s var(--ease),opacity .6s;transition-delay:var(--delay)}.constellation--hero{min-height:clamp(330px,38vw,560px);border-radius:var(--radius-xl);background:radial-gradient(circle at 50% 50%,var(--accent-soft),transparent 58%),var(--bg)}.constellation--hero.is-formed i,.constellation--hero:hover i{left:var(--tx);top:var(--ty);transform:translate(-50%,-50%) scale(1.25)}.constellation--card{position:absolute;z-index:3;right:12px;top:12px;width:96px;height:76px;border-radius:18px;background:rgba(5,5,8,.3);backdrop-filter:blur(8px);pointer-events:none}.constellation--card i{width:2.5px;height:2.5px;background:#fff;box-shadow:none;opacity:.46;transition-duration:.9s}.card:hover .constellation--card i,.card:focus-within .constellation--card i{left:var(--tx);top:var(--ty);opacity:1;transform:translate(-50%,-50%) scale(1.2)}
.grid{display:grid;gap:16px}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid--5{grid-template-columns:repeat(5,minmax(0,1fr))}.tile,.card,.notice,.custom-amount,.form-block,.summary,.tier-column{border:1px solid var(--line);background:var(--glass);box-shadow:inset 0 1px 0 var(--card-highlight);backdrop-filter:blur(16px)}.tile,.card{position:relative;overflow:hidden;border-radius:var(--radius-lg);transform:translate3d(0,0,0);transition:transform 1.15s cubic-bezier(.16,1,.3,1),border-color .8s ease,background .8s ease,box-shadow 1.15s cubic-bezier(.16,1,.3,1)}.tile:hover,.card:hover,.card:focus-within{transform:translate3d(0,-5px,0) scale(1.006);border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:var(--glass-strong);box-shadow:0 28px 70px rgba(0,0,0,.18),inset 0 1px 0 var(--card-highlight)}.tile{min-height:clamp(300px,34vw,520px);padding:clamp(24px,4vw,54px);display:flex;flex-direction:column}.tile h3{max-width:9ch;margin:auto 0 12px;font-size:clamp(36px,5vw,78px);line-height:.88;text-transform:uppercase}.tile p{max-width:34ch}.tile__index{position:absolute;right:24px;top:24px}.tile__go{margin-top:20px;font:600 10px var(--f-mono);text-transform:uppercase;letter-spacing:.14em}.tile__glow{position:absolute;width:65%;aspect-ratio:1;border-radius:50%;right:-20%;top:-20%;filter:blur(28px);opacity:.25;pointer-events:none}.tile--giftcards .tile__glow{background:var(--violet)}.tile--subscriptions .tile__glow{background:var(--violet)}.tile--stars .tile__glow{background:var(--blue)}.tile--premium .tile__glow{background:var(--pink)}.tile--cart{grid-column:1/-1;min-height:260px}.why-grid .card{min-height:230px}.card{padding:18px;display:flex;flex-direction:column;min-width:0}.card__head{display:flex;align-items:flex-start;gap:14px;margin:14px 0}.card__title{flex:1;font-size:19px;line-height:1.05}.card__desc{font-size:13.5px;line-height:1.48}.card__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:18px}.card__foot--meta{margin-top:14px}.card__note{font:600 9px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-mute)}.card__note--link:hover{color:var(--accent)}
.product-art{position:relative;isolation:isolate;min-height:185px;margin:-18px -18px 8px;padding:20px;overflow:hidden;background:linear-gradient(145deg,#111018,color-mix(in srgb,var(--art,var(--violet)) 52%,#17121f));color:white;transform:scale(1.001);transition:transform 1.45s cubic-bezier(.16,1,.3,1),filter 1.25s cubic-bezier(.16,1,.3,1)}.card:hover .product-art,.card:focus-within .product-art{transform:scale(1.025);filter:brightness(1.06)}.product-art--giftcard{--art:var(--violet)}.product-art--subscription{--art:var(--violet)}.product-art--stars{--art:var(--blue)}.product-art--premium{--art:var(--pink)}.product-art__eyebrow,.product-art__serial{position:absolute;font:600 9px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.65)}.product-art__eyebrow{top:18px;left:18px}.product-art__serial{bottom:16px;left:18px}.product-art__glyph,.product-art__orb{display:none}.product-art__value{position:absolute;right:18px;bottom:14px;font:800 clamp(28px,3vw,52px)/.9 var(--f-display);letter-spacing:-.055em;text-align:right}.product-art__orb{position:absolute;width:180px;height:180px;border:1px solid rgba(255,255,255,.18);border-radius:50%;right:-60px;bottom:-85px}.cover{position:relative;aspect-ratio:3/4;margin:-18px -18px 8px;overflow:hidden;background:var(--surface-2)}.cover img{width:100%;height:100%;object-fit:cover;transition:transform 1.55s cubic-bezier(.16,1,.3,1),filter 1.3s cubic-bezier(.16,1,.3,1)}.card:hover .cover img,.card:focus-within .cover img{transform:scale(1.035);filter:brightness(1.04)}.cover__badge{position:absolute;left:12px;bottom:12px;padding:7px 10px;border-radius:99px;background:rgba(7,7,10,.65);color:white;font:600 9px var(--f-mono);text-transform:uppercase;letter-spacing:.1em}
.catalog-hero{position:relative;isolation:isolate}.catalog-hero::before{content:"";position:absolute;z-index:-1;top:0;right:-10vw;width:55vw;height:55vw;border-radius:50%;filter:blur(30px);opacity:.13;background:var(--page-accent,var(--violet));pointer-events:none}.catalog-hero--wallet{--page-accent:var(--violet)}.catalog-hero--plus{--page-accent:var(--violet)}.catalog-hero--stars{--page-accent:var(--blue)}.catalog-hero--premium{--page-accent:var(--pink)}.catalog-hero--cart{--page-accent:var(--violet)}
.notice{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;margin-bottom:32px;padding:16px 18px;border-radius:var(--radius);font-size:13px}.notice strong{font:700 10px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.notice a{color:var(--accent);border-bottom:1px solid currentColor}.catalog-statement{position:relative;isolation:isolate;min-height:clamp(250px,27vw,410px);margin:0 0 34px;padding:clamp(28px,5vw,70px);overflow:hidden;display:grid;grid-template-columns:auto 1fr auto;align-items:center;border:1px solid var(--line);border-radius:var(--radius-xl);background-color:var(--surface);background-image:var(--banner-photo);background-size:cover;background-position:center 42%;image-rendering:auto;box-shadow:var(--shadow);color:white}.catalog-statement::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,rgba(5,5,9,.92) 0%,rgba(5,5,9,.72) 43%,rgba(5,5,9,.28) 100%),linear-gradient(0deg,color-mix(in srgb,var(--banner,var(--violet)) 30%,transparent),transparent 62%)}.catalog-statement::after{content:"";position:absolute;inset:1px;z-index:-1;border-radius:inherit;pointer-events:none}.catalog-statement--wallet{--banner:var(--violet);--banner-photo:url("../assets/banners/giftcards.jpg")}.catalog-statement--stars{--banner:var(--blue);--banner-photo:url("../assets/banners/stars-digital.jpg")}.catalog-statement--premium{--banner:var(--pink);--banner-photo:url("../assets/banners/premium.jpg")}.catalog-statement b{justify-self:center;font:800 clamp(72px,13vw,190px)/.72 var(--f-display);letter-spacing:-.06em;color:white;text-shadow:0 16px 60px rgba(0,0,0,.45);white-space:nowrap}.catalog-statement__eyebrow,.catalog-statement__caption{font:600 10px var(--f-mono);letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.7)}.catalog-statement__caption{text-align:right}.catalog-statement__icon{font-size:clamp(54px,8vw,110px);color:var(--blue)}
.tier-showcase{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.tier-column{overflow:hidden;border-radius:var(--radius-lg);--tier-accent:var(--violet);transform:translate3d(0,0,0);transition:transform 1.25s cubic-bezier(.16,1,.3,1),box-shadow 1.25s cubic-bezier(.16,1,.3,1),border-color .9s ease}.tier-column:hover,.tier-column:focus-within{transform:translate3d(0,-7px,0);border-color:color-mix(in srgb,var(--tier-accent) 55%,var(--line));box-shadow:0 34px 90px rgba(0,0,0,.26)}.tier-column__visual{transition:filter 1.8s cubic-bezier(.16,1,.3,1)}.tier-column:hover .tier-column__visual,.tier-column:focus-within .tier-column__visual{filter:none}.tier-column__symbol{display:none}.tier-column--extra{--tier-accent:#7f8cff}.tier-column--deluxe{--tier-accent:var(--pink)}.tier-column__visual{position:relative;isolation:isolate;min-height:260px;padding:22px;overflow:hidden;background:#111018;color:white}.tier-column__photo{position:absolute;z-index:-1;inset:-2%;background-image:linear-gradient(120deg,rgba(6,6,10,.9),rgba(6,6,10,.18)),var(--tier-photo);background-size:cover;background-position:center;transform:scale(1.015);will-change:transform,filter;transition:transform 2.2s cubic-bezier(.16,1,.3,1),filter 1.8s cubic-bezier(.16,1,.3,1)}.tier-column:hover .tier-column__photo,.tier-column:focus-within .tier-column__photo{transform:scale(1.07);filter:brightness(1.08)}.tier-column--essential{--tier-photo:url("../assets/banners/essential.jpg")}.tier-column--extra{--tier-photo:url("../assets/banners/extra.jpg")}.tier-column--deluxe{--tier-photo:url("../assets/banners/deluxe.jpg")}.tier-column__number{font:600 9px var(--f-mono);letter-spacing:.15em;color:rgba(255,255,255,.55)}.tier-column__symbol{position:absolute;right:18px;bottom:-18px;font:800 clamp(130px,15vw,220px)/.8 var(--f-display);color:var(--tier-accent);letter-spacing:0}.tier-column__head{padding:26px 22px 20px}.tier-column__head h3{margin:8px 0 12px;font-size:clamp(34px,3.4vw,52px);text-transform:uppercase}.tier-column__head p{font-size:13px}.tier-column__options{padding:0 22px 22px}.tier-option{padding:18px 0}.tier-option:last-child{padding-bottom:2px}.tier-option__meta{display:flex;justify-content:space-between;gap:12px}.tier-option__duration{font:750 20px var(--f-display);text-transform:uppercase}.tier-option__price{font:650 12px var(--f-mono);color:var(--accent)}.tier-option p{font-size:12.5px;margin:8px 0 14px}
.custom-amount,.form-block,.summary{padding:clamp(22px,4vw,42px);border-radius:var(--radius-lg)}.custom-amount{margin-bottom:64px}.custom-amount__head{display:flex;justify-content:space-between;gap:18px}.custom-amount__controls{display:grid;grid-template-columns:minmax(200px,320px) 1fr;gap:24px;align-items:end;margin-top:28px}.custom-amount__readout{display:grid;justify-items:end;text-align:right}.custom-amount__price{font:800 clamp(34px,5vw,70px)/1 var(--f-display);letter-spacing:-.06em}.custom-amount__steps{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.custom-amount__foot{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:18px}.chip{min-height:36px;padding:0 12px;border:1px solid transparent;border-radius:99px;background:transparent;color:var(--text);cursor:pointer}.chip:hover{border-color:var(--accent);background:var(--accent-soft)}.field{display:grid;gap:8px;margin-bottom:18px}.field label{font:600 10px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-mute)}.input,.select{width:100%;min-height:48px;padding:0 14px;border:1px solid transparent;border-radius:12px;background:var(--surface);color:var(--text);outline:0}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.range{width:100%;accent-color:var(--blue)}
.cart-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:22px}.cart-item{display:grid;grid-template-columns:46px 1fr auto auto;gap:16px;align-items:center;padding:20px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--glass);margin-bottom:12px}.cart-item__ico{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.cart-item__body{min-width:0}.cart-item__name{font:650 14px/1.35 var(--f-sans)}.cart-item__meta{font:400 12.5px/1.5 var(--f-sans);color:var(--text-mute)}.cart-item>.price{font:650 15px/1 var(--f-sans);letter-spacing:0;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:9ch;text-align:right}.qty{display:flex;align-items:center;gap:10px}.qty span{font:650 13px var(--f-sans);font-variant-numeric:tabular-nums;min-width:2ch;text-align:center}.qty button{width:32px;height:32px;border:1px solid transparent;border-radius:50%;background:color-mix(in srgb,var(--tone,var(--text)) 7%,transparent);color:var(--text);cursor:pointer;transition:background .25s,color .25s,border-color .25s}.summary{position:sticky;top:calc(var(--header-h) + 20px);align-self:start}.summary__row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;font-size:13px;font-variant-numeric:tabular-nums}.summary__row--total{padding-top:18px;font:750 20px var(--f-display);font-variant-numeric:tabular-nums}.empty{padding:32px}.empty__title{font-size:30px;margin:10px 0}.quote{margin:0;font-size:28px;max-width:28ch}
.footer{padding:40px 0 26px;margin-top:32px;border-top:1px solid var(--line-soft)}.footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:24px}.footer h4{font-size:13px;color:var(--text-mute)}.footer ul{list-style:none;padding:0;margin:8px 0}.footer li a{display:inline-block;padding:8px 0;font-size:13px;color:var(--text-dim)}.footer__mail{display:inline-block;font-size:18px;margin:10px 0;overflow-wrap:anywhere}.footer__bottom{margin-top:26px;padding-top:18px;border-top:1px solid var(--line-soft);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:11px;color:var(--text-mute)}
.modal-backdrop{position:fixed;inset:0;z-index:500;padding:20px;display:grid;place-items:center;background:rgba(3,3,5,.7);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);opacity:0;transition:opacity .25s}.modal-backdrop.is-open{opacity:1}.modal{width:min(540px,100%);max-height:85dvh;overflow:auto;padding:28px;background:var(--glass-strong);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.modal h3{font-size:26px;margin:12px 0}.modal__actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:20px}.modal__box .row{display:flex;justify-content:space-between;gap:12px;padding:12px 0}
.toasts{position:fixed;z-index:600;bottom:calc(18px + env(safe-area-inset-bottom,0px));right:18px;width:min(380px,calc(100% - 36px));display:grid;gap:8px;pointer-events:none}.toast{padding:14px 18px;background:var(--glass-strong);border:1px solid var(--line);border-radius:18px;font-size:13px;box-shadow:var(--shadow);overflow-wrap:anywhere}.toast .label{display:block;margin-bottom:4px}
.typewriter-pending{min-height:1.5em}.is-typing::after{content:"";display:inline-block;width:2px;height:1.05em;margin-left:4px;vertical-align:-.15em;border-radius:2px;background:linear-gradient(180deg,var(--violet),var(--pink),var(--violet-soft),var(--violet));box-shadow:none;animation:type-caret .72s steps(1,end) infinite}.is-typed::after{content:"";display:inline-block;width:2px;height:1em;margin-left:4px;vertical-align:-.15em;background:linear-gradient(180deg,var(--violet),var(--pink),var(--violet));opacity:0;transition:opacity .5s}@keyframes type-caret{50%{opacity:0}}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.is-in{opacity:1;transform:none}.grid.is-in>.card,.grid.is-in>.tile{animation:card-in .7s var(--ease) both;animation-delay:calc(var(--reveal-order,0)*55ms)}@keyframes card-in{from{opacity:0;transform:translateY(18px)}}
html.has-intro body{overflow:hidden}
.intro{position:fixed;inset:0;z-index:1000;display:grid;place-content:center;justify-items:center;gap:22px;padding:24px;background:rgba(7,7,10,.55);background:color-mix(in srgb,var(--bg) 62%,transparent);-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);color:var(--text);animation:intro-in .4s ease both}.intro.is-leaving{animation:intro-out .42s ease both;pointer-events:none}.intro__brand{display:flex;align-items:center;gap:.16em;line-height:1;font-family:var(--f-display);font-weight:800;letter-spacing:-.025em;font-size:clamp(44px,8.5vw,88px);color:var(--text)}.intro__brand b{font-weight:inherit;animation:intro-word .8s var(--ease) .1s both}.intro__logo{width:clamp(54px,10.5vw,100px);height:auto;flex:none;filter:drop-shadow(0 18px 46px rgba(0,0,0,.35));animation:intro-logo .95s var(--spring) both}.intro__bar{width:min(180px,44vw);height:2px;border-radius:99px;overflow:hidden;background:color-mix(in srgb,var(--tone,var(--text)) 16%,transparent)}.intro__bar span{display:block;height:100%;border-radius:inherit;background:var(--accent);transform-origin:left;transform:scaleX(0);animation:intro-bar 1.15s cubic-bezier(.65,.05,.25,1) .12s forwards}.intro__tag{font:600 10px/1 var(--f-mono);letter-spacing:.32em;text-transform:uppercase;color:var(--text)}@keyframes intro-in{from{opacity:0}to{opacity:1}}@keyframes intro-out{to{opacity:0;visibility:hidden}}@keyframes intro-bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:1100px){.nav a{padding-inline:8px;font-size:9px}.grid--5{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}.tier-showcase{grid-template-columns:1fr}.tier-column__visual{min-height:220px}.cart-layout{grid-template-columns:1fr}.summary{position:relative;top:auto}}
@media(max-width:899px){:root{--header-h:62px;--gutter:clamp(16px,4.5vw,26px)}.constellation-section__grid{grid-template-columns:1fr}.constellation--hero{min-height:380px}.nav-close{display:none}.logo__text{font-size:15px}.lang button{min-width:29px}.cart-btn{width:40px;padding:0;justify-content:center}.cart-btn>span:first-child{display:none}.burger{display:grid;z-index:405}.nav{position:fixed;z-index:390;display:block;top:calc(var(--header-h) + env(safe-area-inset-top, 0px) + 10px);left:14px;right:14px;bottom:auto;height:auto;max-height:calc(100dvh - 92px);padding:28px 18px 22px;border:1px solid rgba(255,255,255,.12);border-radius:30px;background:rgba(12,11,17,.5);box-shadow:0 30px 100px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.12);backdrop-filter:blur(28px) saturate(145%);-webkit-backdrop-filter:blur(28px) saturate(145%);overflow:auto;transform:translate3d(0,-18px,0) scale(.97);transform-origin:top center;opacity:0;visibility:hidden;pointer-events:none;transition:transform .52s cubic-bezier(.16,1,.3,1),opacity .36s ease,visibility .52s}.nav.is-open{transform:translate3d(0,0,0) scale(1);opacity:1;visibility:visible;pointer-events:auto}.nav a{display:block;padding:18px 4px;font:750 clamp(22px,6vw,31px)/1 var(--f-display);letter-spacing:-.03em;color:white}.nav a::after{bottom:10px;left:4px;right:4px;width:auto;transform-origin:left}.nav a.is-active{color:var(--accent)}.header__actions{position:relative;z-index:410;gap:4px}body.nav-open{overflow:hidden;touch-action:none}.hero{min-height:auto;padding:80px 0}.hero h1{font-size:clamp(50px,13vw,96px)}.hero h1 .accent{font-size:.42em}.hero__grid{grid-template-columns:1fr}.hero__mark{justify-self:start}.story__stage{width:calc(100% - 24px);height:74svh;min-height:590px;border-radius:26px}.story__stage::after{width:118px;height:46px}.story__video{object-fit:contain;object-position:center top}.story__shade{background:linear-gradient(0deg,rgba(2,2,5,.9) 0%,rgba(2,2,5,.52) 35%,rgba(2,2,5,.05) 65%)}.story__content{padding-inline:22px;padding-bottom:30px;align-items:flex-end}.story__copy{max-width:92%;padding:16px;border-radius:20px;background:rgba(3,3,6,.34);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.story__copy h2{font-size:clamp(38px,10.5vw,54px);max-width:9ch;margin-bottom:12px}.story__copy p{font-size:13px;max-width:28ch}.story__cta{margin-top:10px}.grid--3{grid-template-columns:1fr}.grid--5{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-statement{grid-template-columns:1fr auto;align-content:space-between;min-height:270px}.catalog-statement b{grid-column:1/-1;grid-row:2;justify-self:start;font-size:clamp(62px,20vw,100px)}.catalog-statement__caption{grid-column:2;grid-row:1}.notice{grid-template-columns:1fr}.notice a{width:fit-content}}
@media(max-width:619px){h2{font-size:clamp(34px,10.5vw,58px)}.head h2{max-width:none}.section{padding:72px 0}.product-projection{grid-template-columns:1fr;min-height:720px}.dot-glyph--projection{width:100%;height:100%}.hero__kicker .label:last-child{max-width:18ch;text-align:right}.btn-row{display:grid}.btn-row .btn{width:100%}.tile{min-height:330px}.grid--2,.grid--3,.grid--4,.grid--5{grid-template-columns:1fr}.tile--cart{grid-column:auto}.card{padding:16px}.product-art{margin:-16px -16px 8px;min-height:170px}.card__foot{flex-wrap:wrap}.card__foot .btn{flex:1}.catalog-statement{padding:24px;border-radius:26px}.catalog-statement b{font-size:clamp(54px,17vw,82px);letter-spacing:-.03em}.catalog-statement--premium b{font-size:clamp(40px,12vw,56px)}.tier-column__visual{min-height:190px}.tier-column__symbol{font-size:155px}.custom-amount__controls{grid-template-columns:1fr}.custom-amount__readout{justify-items:start;text-align:left}.custom-amount__foot{align-items:stretch;flex-direction:column}.cart-item{grid-template-columns:40px 1fr auto;grid-template-areas:"ico body price" "ico qty qty"}.cart-item__ico{grid-area:ico}.cart-item__body{grid-area:body}.cart-item>.price{grid-area:price}.qty{grid-area:qty}.footer__grid{grid-template-columns:1fr}.footer__bottom{display:grid}.modal-backdrop{align-items:end;padding:0}.modal{width:100%;border-radius:26px 26px 0 0;padding:24px}.toasts{left:12px;right:12px;bottom:12px;width:auto}.intro__tag{font-size:9px;letter-spacing:.24em}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.intro{display:none!important}.marquee__track{animation:none}.reveal{opacity:1;transform:none}.grid.is-in>.card,.grid.is-in>.tile{animation:none}.tile:hover,.card:hover,.card:focus-within,.tier-column:hover,.tier-column:focus-within,.btn:hover{transform:none}.cover img{transform:none!important}.constellation i{left:var(--tx);top:var(--ty);transition:none}}
@media(prefers-reduced-motion:reduce){.story__video{display:none}.story__stage{background:#000 url("../assets/banners/controller-clean.jpg") center/cover no-repeat}}

/* ==== erootstars overrides ==== */
/* Баннер Premium: без фото — самолётик Telegram из точек */
.catalog-statement--premium{--banner-photo:none;background-image:none}
.catalog-statement--premium::before{background:linear-gradient(105deg,rgba(5,5,9,.95) 0%,rgba(5,5,9,.85) 45%,rgba(233,64,175,.22) 100%)}
.banner-dots{position:absolute;top:50%;right:3%;transform:translateY(-50%);width:clamp(140px,24vw,340px);aspect-ratio:20/14;z-index:0;opacity:.9}
@media (max-width:640px){.banner-dots{position:absolute;right:8px;top:10px;bottom:auto;transform:none;width:110px;opacity:.85;pointer-events:none}
  .catalog-statement{grid-template-columns:1fr;min-height:auto;gap:8px}
  .catalog-statement b{font-size:clamp(56px,16vw,96px)}
  .catalog-statement__eyebrow{text-align:center}
  .catalog-statement__caption{text-align:center}}
.statement-particles{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}

/* ==== аккаунт на сайте ==== */
.account-btn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 10px;border:1px solid transparent;border-radius:999px;background:color-mix(in srgb,var(--tone,var(--text)) 6%,transparent);color:var(--text);font:600 12px var(--f-mono);letter-spacing:.08em;cursor:pointer;transition:background .3s,transform .3s}
.account-btn:hover{border-color:var(--accent);transform:translateY(-1px)}
.refs-list{display:grid;gap:12px;margin:24px 0}
.refs-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border:1px solid transparent;border-radius:var(--radius);background:color-mix(in srgb,var(--glass) 72%,transparent)}
.refs-item a{color:var(--accent);border-bottom:1px solid currentColor}
.admin-table{width:100%;border-collapse:collapse;font-size:13px;margin:16px 0}
.admin-table td,.admin-table th{border:1px solid var(--line);padding:8px 10px;text-align:left}
.admin-btn{min-height:40px;padding:8px 14px;margin:4px;border:1px solid transparent;border-radius:8px;background:color-mix(in srgb,var(--tone,var(--text)) 5%,transparent);color:var(--text);cursor:pointer;font:600 12px var(--f-mono)}
.admin-btn--ok{background:rgba(62,207,142,.14);color:#3ecf8e}
.admin-btn--no{background:rgba(229,72,77,.14);color:#e5484d}
.admin-btn--accent{color:var(--accent);background:var(--accent-soft)}
.admin-block{border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:14px 0;overflow:auto}

.account-btn__icon{display:inline-flex;align-items:center;color:var(--text)}
.account-btn.is-auth{color:var(--accent);background:var(--accent-soft)}
.account-btn.is-auth .account-btn__icon{font:600 11px var(--f-mono);letter-spacing:.05em;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ==== фикс выравнивания подписей полей ==== */
.field label{display:block;margin:0 0 8px;line-height:1.4}
.field code.input{width:100%}
.refs-item span{min-width:0}

/* ==== мобильная оптимизация ==== */
@media (max-width: 899px) {
  .header__actions{gap:8px}
  .account-btn{min-width:40px;height:40px;padding:0 8px}
  .cart-btn{padding:0 12px}
  .lang button{padding:4px 8px}
}
@media (max-width: 640px) {
  .header__inner{flex-wrap:nowrap}
  .lang{display:none}
  .catalog-statement{grid-template-columns:1fr;justify-items:center;text-align:center;gap:10px;min-height:auto;padding:26px 18px 30px}
  .catalog-statement__eyebrow{order:1}
  .catalog-statement b{order:2;font-size:clamp(52px,15vw,88px)}
  .catalog-statement__caption{order:3;text-align:center}
}

/* ==== мобильное меню: без наложений на кнопки шапки ==== */
@media (max-width: 899px) {
  .header__inner{gap:8px}
  .header__actions{gap:5px;flex-shrink:0}
  .cart-btn{padding:0 10px}
  .theme-toggle{min-width:38px;height:38px}
  .account-btn{min-width:38px;height:38px;padding:0 7px}
  .nav{top:calc(var(--header-h) + env(safe-area-inset-top, 0px) + 10px);
       max-height:calc(100vh - var(--header-h) - env(safe-area-inset-top, 0px) - 30px);
       max-height:calc(100dvh - var(--header-h) - env(safe-area-inset-top, 0px) - 30px)}
  .nav a{padding:13px 4px;font-size:14px}
}

/* ==== v10: мелкие починки кнопок, тем и адаптива ==== */
/* цвет точки фона подстраивается под тему (dots.js читает --dot) */
:root{--dot:139,92,246;--dot-accent:201,184,255}
:root[data-theme="light"]{--dot:164,40,168;--dot-accent:168,96,192}

/* ссылка на админку в навигации (добавляется для залогиненного админа) */
.nav .nav-admin{color:var(--accent)}
.nav .nav-admin::after{background:var(--accent);transform:scaleX(1)}
.nav .nav-admin:hover{color:var(--accent)}

/* ссылка на партнёрку в навигации (для партнёров) */
.nav .nav-partner{color:var(--accent)}
.nav .nav-partner::after{background:var(--accent);transform:scaleX(1)}

/* блок кнопок-разделов админки */
.admin-actions{display:flex;flex-wrap:wrap;gap:2px;margin:0 0 6px;padding:0}
.admin-btn{min-height:40px}

/* кликабельность: без задержки и двойного тапа-зума на мобильных */
.btn,.chip,.admin-btn,.qty button,.lang button,.theme-toggle,.burger,.account-btn,
.cart-btn,.tile,.link-danger{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.qty button{width:38px;height:38px}
.chip{min-height:40px}
.link-danger{min-height:32px;display:inline-block}

/* вьюпорт-высота: vh-фолбэк для старых Safari/WebView */
@supports not (height:100svh){.hero{min-height:calc(100vh - var(--header-h))}}

/* шапка в старых WebView без color-mix: непрозрачный фолбэк в том же правиле,
   современный браузер возьмёт второе (валидное) объявление */
.header{background:rgba(7,7,10,.82);background:color-mix(in srgb,var(--bg) 75%,transparent)}
:root[data-theme="light"] .header{background:rgba(243,240,246,.85);background:color-mix(in srgb,var(--bg) 75%,transparent)}

/* затемнение-вуаль смены темы (theme.js задаёт остальное инлайном) */
.theme-veil{will-change:transform}

/* таблицы админки на телефоне — горизонтальный скролл внутри блока */
.admin-block{-webkit-overflow-scrolling:touch}
@media (max-width:619px){
  .admin-table{font-size:12px}
  .admin-table td,.admin-table th{padding:7px 8px}
  .form-block{padding:20px 16px}
}

/* ==== отзывчивость: на телефонах стекло дешевле, но живое ==== */
@media (max-width:899px){
  .tile,.card,.notice,.custom-amount,.form-block,.summary,.tier-column{
    backdrop-filter:blur(12px) saturate(140%);
    -webkit-backdrop-filter:blur(12px) saturate(140%)}
}

/* ==== v22/v26: атомы-буквы и живой фон ==== */
/* лёгкий дрейф каждой точки (только у глифов в кадре) */
.dot-glyph.is-live i{animation:glyph-drift 5.5s ease-in-out infinite alternate;animation-delay:var(--delay)}
@keyframes glyph-drift{
  from{transform:translate(-50%,-50%) translate(0,0)}
  to{transform:translate(-50%,-50%) translate(var(--fx),var(--fy))}}

/* ==== v12: премиум-стекло (iOS-style) и живые витрины ==== */
:root{--glass:rgba(20,18,30,.42);--glass-strong:rgba(22,20,34,.68);
      --glass-hi:rgba(255,255,255,.09);--radius-lg:24px}
:root[data-theme="light"]{--glass:rgba(255,255,255,.52);--glass-strong:rgba(255,255,255,.76);
      --glass-hi:rgba(255,255,255,.85)}
.tile,.card,.notice,.custom-amount,.form-block,.summary,.tier-column{
  background:var(--glass);
  backdrop-filter:blur(22px) saturate(165%);-webkit-backdrop-filter:blur(22px) saturate(165%);
  box-shadow:inset 0 1px 0 var(--glass-hi),inset 0 -1px 0 rgba(255,255,255,.03),0 18px 50px rgba(0,0,0,.22)}
:root[data-theme="light"] .tile,:root[data-theme="light"] .card,
:root[data-theme="light"] .notice,:root[data-theme="light"] .custom-amount,
:root[data-theme="light"] .form-block,:root[data-theme="light"] .summary,
:root[data-theme="light"] .tier-column{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 18px 50px rgba(22,23,28,.12)}
.header{backdrop-filter:blur(24px) saturate(170%);-webkit-backdrop-filter:blur(24px) saturate(170%)}
.modal,.toast{backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%)}
.input,.select{background:color-mix(in srgb,var(--surface) 55%,transparent)}

/* карточки: мягкий подъём и акцентное свечение */
.card{transition:transform .5s var(--ease),border-color .4s ease,box-shadow .5s var(--ease),background .4s ease}
.card:hover,.card:focus-within{
  transform:translate3d(0,-6px,0);
  border-color:color-mix(in srgb,var(--accent) 55%,var(--line));
  box-shadow:0 30px 80px rgba(0,0,0,.3),0 0 0 1px rgba(0,0,0,.22),inset 0 1px 0 var(--glass-hi)}

/* витрина товара: дышащая орбита + градиентная цена */
.product-art__orb{animation:orb-float 9s ease-in-out infinite}
@keyframes orb-float{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-10px,-12px,0) scale(1.06)}}
/* дыхание глифа — только в кадре (is-live из IntersectionObserver) и
   только opacity: filter:brightness на ~1300 точках витрины звёзд
   перерисовывал страницу каждый кадр и тормозил даже десктоп */
.dot-glyph.is-live{animation:glyph-breathe 8s ease-in-out infinite}
@keyframes glyph-breathe{0%,100%{opacity:.55}50%{opacity:.78}}
/* витрина звёзд: 18 карточек × 72 точки — дрейф каждой выключаем,
   дышит весь глиф целиком, точки собираются только по hover */
body[data-page="stars"] .card .dot-glyph.is-live i{animation:none}
.card .price{color:var(--text);color:var(--text)}
:root[data-theme="light"] .card .price{color:var(--text);}

/* баннер каталога: лёгкое параллакс-дыхание фото */
.catalog-statement{transition:transform .8s var(--ease)}
.catalog-statement__icon{filter:drop-shadow(0 8px 30px color-mix(in srgb,var(--blue) 55%,transparent))}

/* кнопки: стеклянная тонкость */
.btn:not(.btn--solid){background:color-mix(in srgb,var(--glass) 70%,transparent)}
.chip{background:color-mix(in srgb,var(--glass) 60%,transparent)}
@media (prefers-reduced-motion:reduce){
  .product-art__orb,.dot-glyph,.dot-glyph.is-live{animation:none}
}

/* ==== v31: мелкие контролы без рамок — мягкие подложки вместо обводки ==== */
.qty button:hover{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}
.cart-btn:hover{background:color-mix(in srgb,var(--tone,var(--text)) 10%,transparent)}

/* ==== v32: жидкое стекло + пружинные покачивания ====
   Apple Liquid Glass официально существует только на платформах Apple —
   это честная веб-аппроксимация: многослойный backdrop-filter, спекулярные
   кромки (двойная внутренняя подсветка).
   --spring даёт «желейное» покачивание: карточка тянется за курсором
   (--px/--py из ui.js) и возвращается с лёгким перелётом. */
:root{--spring:cubic-bezier(.34,1.56,.64,1);
      --glass:rgba(20,18,30,.34);--glass-strong:rgba(24,22,36,.6)}
:root[data-theme="light"]{--glass:rgba(255,255,255,.46);--glass-strong:rgba(255,255,255,.72)}

/* стекло глубже: сильнее блюр/сатурация, двойная внутренняя кромка */
.tile,.card,.notice,.custom-amount,.form-block,.summary,.tier-column{
  backdrop-filter:blur(28px) saturate(185%);-webkit-backdrop-filter:blur(28px) saturate(185%);
  box-shadow:inset 0 1px 0 var(--glass-hi),inset 0 -1px 0 rgba(255,255,255,.04),
             inset 1px 0 0 rgba(255,255,255,.04),0 22px 60px rgba(0,0,0,.24)}
:root[data-theme="light"] .tile,:root[data-theme="light"] .card,
:root[data-theme="light"] .notice,:root[data-theme="light"] .custom-amount,
:root[data-theme="light"] .form-block,:root[data-theme="light"] .summary,
:root[data-theme="light"] .tier-column{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(109,40,217,.05),
             0 22px 60px rgba(22,23,28,.13)}
.header{backdrop-filter:blur(30px) saturate(190%);-webkit-backdrop-filter:blur(30px) saturate(190%);
  background:rgba(7,7,10,.55);background:color-mix(in srgb,var(--bg) 55%,transparent)}
:root[data-theme="light"] .header{background:rgba(243,240,246,.6);background:color-mix(in srgb,var(--bg) 58%,transparent)}
.modal,.toast{backdrop-filter:blur(30px) saturate(170%);-webkit-backdrop-filter:blur(30px) saturate(170%)}

/* покачивание карточек: наклон тянется за курсором/пальцем, инерция свайпа
   качает наклон сильнее (--sway-x/y из ui.js), оседает пружиной */
.tile,.card{transition:transform .62s var(--spring),border-color .4s ease,
  box-shadow .5s var(--ease),background .4s ease}
.card:hover,.card:focus-within,.card.is-touching{
  transform:perspective(950px) rotateX(calc((50 - var(--py,50))*.045deg + var(--sway-y,0deg)))
    rotateY(calc((var(--px,50) - 50)*.045deg + var(--sway-x,0deg))) translate3d(0,-6px,0)}
.tile:hover,.tile:focus-within,.tile.is-touching{
  transform:perspective(950px) rotateX(calc((50 - var(--py,50))*.04deg + var(--sway-y,0deg)))
    rotateY(calc((var(--px,50) - 50)*.04deg + var(--sway-x,0deg))) translate3d(0,-5px,0) scale(1.006)}
.tier-column{position:relative;transition:transform .7s var(--spring),box-shadow .7s var(--spring),border-color .9s ease}
.tier-column:hover,.tier-column:focus-within,.tier-column.is-touching{
  transform:perspective(1100px) rotateX(calc((50 - var(--py,50))*.03deg + var(--sway-y,0deg)))
    rotateY(calc((var(--px,50) - 50)*.03deg + var(--sway-x,0deg))) translate3d(0,-7px,0)}
.card:hover,.card.is-touching,.tile:hover,.tile.is-touching,.card:focus-within,.tile:focus-within,.tier-column:hover,.tier-column.is-touching{will-change:transform}

/* кнопки: пружинный ход и стеклянный глянец */
.btn{transition:transform .5s var(--spring),border-color .3s ease,
  background .3s ease,color .3s ease,box-shadow .5s var(--ease)}
.btn:hover,.btn:focus-visible{transform:translateY(-2px) scale(1.015)}
.btn:active{transform:translateY(0) scale(.965)}
.btn[disabled]{transform:none}
.btn--solid{
  background-image:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,.05) 46%,rgba(0,0,0,.08));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),inset 0 -1px 0 rgba(0,0,0,.14),0 14px 34px rgba(0,0,0,.28)}
.btn--solid:hover{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),
    0 18px 44px rgba(0,0,0,.22)}

/* мелкие контролы: упругое нажатие */
.chip{transition:transform .45s var(--spring),border-color .3s,background .3s,color .3s}
.chip:hover{transform:translateY(-1px)}
.chip:active{transform:scale(.96)}
.qty button{transition:transform .45s var(--spring),background .25s,color .25s,border-color .25s}
.qty button:hover{transform:scale(1.1)}
.qty button:active{transform:scale(.88)}
.account-btn{transition:background .3s,transform .45s var(--spring),border-color .3s}
.account-btn:active{transform:scale(.94)}
.cart-btn{transition:background .3s,transform .45s var(--spring),border-color .3s}
.cart-btn:hover{transform:translateY(-1px)}
.cart-btn:active{transform:scale(.95)}
.admin-btn{transition:transform .45s var(--spring),background .25s,color .25s}
.admin-btn:active{transform:scale(.96)}
.theme-toggle{transition:transform .6s var(--spring)}
.theme-toggle:hover{transform:rotate(35deg)}
.burger{transition:transform .55s var(--spring)}
/* v37.3: бургер не уезжает вбок — полоски тянутся за курсором (--bx/--by из ui.js) */
.burger span{transform:translateY(-3.5px) translate3d(var(--bx,0px),var(--by,0px),0)}
.burger span::before{transform:translate3d(calc(var(--bx,0px)*.6),calc(var(--by,0px)*.6),0)}
.burger.is-open span,.burger.is-open span::before{transform:none}
.burger.is-open span{transform:rotate(45deg)}
.burger.is-open span::before{top:0;transform:rotate(-90deg)}
.nav a{transition:color .25s,transform .5s var(--spring)}
.nav a:hover{transform:translateY(-1px)}

/* модалка и тосты: пружинный въезд */
.modal-backdrop.is-open .modal{animation:modal-pop .55s var(--spring) both}
@keyframes modal-pop{from{opacity:0;transform:translateY(18px) scale(.95)}to{opacity:1;transform:none}}
.toast{animation:toast-in .5s var(--spring)}
@keyframes toast-in{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}

/* мобильный drawer — пружиннее */
@media (max-width:899px){
  .nav{transition:transform .55s var(--spring),opacity .32s ease,visibility .55s}
}

/* на телефоне стекло дешевле, наклон не нужен: палец не «парит» над карточкой */
@media (max-width:899px){
  .tile,.card,.notice,.custom-amount,.form-block,.summary,.tier-column{
    backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%)}
  .header{backdrop-filter:blur(20px) saturate(165%);-webkit-backdrop-filter:blur(20px) saturate(165%)}
  .card:hover,.card:focus-within,.tile:hover,.tile:focus-within,
  .tier-column:hover,.tier-column:focus-within{transform:translate3d(0,-4px,0)}
}

/* а11е: без анимаций — без покачиваний и бликов; без прозрачности — плотная заливка */
@media (prefers-reduced-motion:reduce){
  .tile,.card,.tier-column{transform:none!important}
  .modal-backdrop.is-open .modal,.toast{animation:none}
}
@media (prefers-reduced-transparency:reduce){
  .tile,.card,.notice,.custom-amount,.form-block,.summary,.tier-column,.header,.modal,.toast{
    background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}
}

/* ==== v33: направленные покачивания + разбавленная палитра ====
   Изучены Motion AI Kit (motion.dev/ai-kit) и доки Motion «Spring
   transitions»: пружина с перелётом выражается чистым CSS — либо
   cubic-bezier с y>1, либо linear() с реальным затуханием (AI Kit
   генерирует именно linear()-кривые). Отсюда:
   1) --spring-fast — тугая короткая пружина для нажатий;
   2) @supports linear() подменяет обе пружины честной физикой;
   3) покачивание по направлению: нажатие продавливает плашку
      в сторону пальца (--press-x/y), быстрый свайп качает наклон
      (--sway-x/y — инерция движения из ui.js), отпускание
      возвращает всё пружиной с перелётом. */
:root{--spring-fast:cubic-bezier(.3,1.35,.45,1)}
@supports (transition-timing-function: linear(0,1)){
  :root{--spring:linear(0,.46 17%,.78 33%,.94 45%,1.04 57%,1.07 69%,1.04 81%,1.01 90%,1);
        --spring-fast:linear(0,.55 30%,.9 55%,1.03 75%,1.01 88%,1)}
}

/* сплэш: лого из асетов + слово «eroot» */
@keyframes intro-word{from{opacity:0;letter-spacing:.06em}}
@keyframes intro-logo{from{opacity:0;transform:scale(.6) translateY(12px) rotate(-7deg)}}

/* CTA: наведение НЕ заливает всё фиолетовым — кнопка остаётся чернильной,
   вместо заливки кромка и двойное свечение лаванда+розовый */
.btn--solid:hover,.btn--solid:focus-visible{
  background:var(--text);border-color:color-mix(in srgb,var(--pink) 42%,var(--text));
  color:var(--bg);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -1px 0 rgba(0,0,0,.12),
    0 16px 42px rgba(0,0,0,.22),
    0 8px 26px rgba(0,0,0,.22)}
:root[data-theme="light"] .btn--solid:hover,
:root[data-theme="light"] .btn--solid:focus-visible{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),
    0 14px 38px rgba(0,0,0,.22),
    0 8px 24px rgba(0,0,0,.22)}

/* касание пальцем: та же стеклянная подсветка, что и hover */
.card.is-touching,.tile.is-touching,.tier-column.is-touching{
  border-color:color-mix(in srgb,var(--accent) 42%,var(--line));
  background:var(--glass-strong)}

/* нажатие: плашка продавливается в сторону пальца/курсора и тащится
   за свайпом, отпускание возвращает её пружиной с перелётом */
.card.is-pressing,.tile.is-pressing,.tier-column.is-pressing{
  transition-duration:.26s;
  border-color:color-mix(in srgb,var(--pink) 48%,var(--line))}
.card.is-pressing{
  transform:perspective(950px) rotateX(calc((50 - var(--py,50))*.06deg))
    rotateY(calc((var(--px,50) - 50)*.06deg))
    translate3d(var(--press-x,0px),calc(var(--press-y,0px) - 4px),0) scale(.978)}
.tile.is-pressing{
  transform:perspective(950px) rotateX(calc((50 - var(--py,50))*.055deg))
    rotateY(calc((var(--px,50) - 50)*.055deg))
    translate3d(var(--press-x,0px),calc(var(--press-y,0px) - 4px),0) scale(.978)}
.tier-column.is-pressing{
  transform:perspective(1100px) rotateX(calc((50 - var(--py,50))*.04deg))
    rotateY(calc((var(--px,50) - 50)*.04deg))
    translate3d(var(--press-x,0px),calc(var(--press-y,0px) - 5px),0) scale(.975)}

/* телефон: без перспективы — касание приподнимает, нажатие сдвигает
   плашку в сторону пальца */
@media (max-width:899px){
  .card.is-touching,.tile.is-touching,.tier-column.is-touching{
    transform:translate3d(0,-3px,0)}
  .card.is-pressing,.tile.is-pressing,.tier-column.is-pressing{
    transform:translate3d(var(--press-x,0px),var(--press-y,0px),0) scale(.97)}
}

/* ==== v34: движение без телепорта, живая мобилка, чип героя ==== */

/* transform управляемых объектов считает JS-движок (ui.js): rAF +
   кадронезависимый lerp пишут один и тот же список функций каждый
   кадр. CSS-переход transform у них выключается классом motion-tilt —
   иначе каждое движение курсора перезапускало бы переход и плашка
   «прыгала-догоняла». Кромки, заливка и тени остаются на мягких
   CSS-переходах. */
html.motion-tilt .tile,html.motion-tilt .card,html.motion-tilt .tier-column,
html.motion-tilt .notice,html.motion-tilt .custom-amount,html.motion-tilt .summary,
html.motion-tilt .form-block,html.motion-tilt .product-projection__item{
  transition:border-color .4s ease,background .4s ease,box-shadow .5s var(--ease)}
html.motion-tilt .tile:hover,html.motion-tilt .card:hover,html.motion-tilt .card:focus-within,
html.motion-tilt .tile:focus-within,html.motion-tilt .tier-column:hover,
html.motion-tilt .tier-column:focus-within,html.motion-tilt .notice:hover,
html.motion-tilt .custom-amount:hover,html.motion-tilt .summary:hover,
html.motion-tilt .form-block:hover,html.motion-tilt .product-projection__item:hover,
html.motion-tilt .card.is-touching,html.motion-tilt .tile.is-touching,
html.motion-tilt .tier-column.is-touching,html.motion-tilt .card.is-pressing,
html.motion-tilt .tile.is-pressing,html.motion-tilt .tier-column.is-pressing{
  transform:none}
@media (max-width:899px){
  html.motion-tilt .card:hover,html.motion-tilt .tile:hover,
  html.motion-tilt .card:focus-within,html.motion-tilt .tile:focus-within,
  html.motion-tilt .tier-column:hover,html.motion-tilt .tier-column:focus-within,
  html.motion-tilt .card.is-touching,html.motion-tilt .tile.is-touching,
  html.motion-tilt .tier-column.is-touching,html.motion-tilt .card.is-pressing,
  html.motion-tilt .tile.is-pressing,html.motion-tilt .tier-column.is-pressing{
    transform:none}
}
/* большие панели: подсветка при касании — как у карточек */
html.motion-tilt .notice.is-touching,html.motion-tilt .custom-amount.is-touching,
html.motion-tilt .summary.is-touching,html.motion-tilt .form-block.is-touching{
  border-color:color-mix(in srgb,var(--accent) 42%,var(--line));
  background:var(--glass-strong)}

/* параллакс скролла: переменные ставит ui.js (renderScrollMotion);
   логотипом ещё и играет магнит движка, пока курсор в hero */
.hero__mark{position:relative;transform:translate3d(0,var(--scroll-shift,0px),0)}
.hero h1{transform:translate3d(0,var(--scroll-shift,0px),0)}
.hero__mark::after{content:"";position:absolute;inset:-12%;border-radius:50%;
  border:1px solid color-mix(in srgb,var(--violet-soft) 30%,transparent);
  box-shadow:none;
  pointer-events:none;animation:mark-ring 8s ease-in-out infinite}
@keyframes mark-ring{0%,100%{transform:scale(1);opacity:.45}50%{transform:scale(1.045);opacity:.8}}

/* мобильный hero: вместо плашки на пол-экрана — компактный стеклянный
   чип с логотипом над заголовком (десктоп показывает большую плашку) */
.hero__chip{display:none;align-items:center;gap:12px;width:fit-content;
  margin-bottom:24px;padding:8px 18px 8px 9px;border:1px solid var(--line);
  border-radius:999px;background:var(--glass);
  backdrop-filter:blur(16px) saturate(175%);-webkit-backdrop-filter:blur(16px) saturate(175%);
  box-shadow:inset 0 1px 0 var(--glass-hi),0 12px 34px rgba(0,0,0,.22)}
.hero__chip-logo{position:relative;width:38px;height:38px;flex:none;
  animation:chip-float 5.5s ease-in-out infinite}
@keyframes chip-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.hero__chip-logo img{position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;border-radius:50%}
.hero__chip-text{font:800 15px/1 var(--f-display);letter-spacing:-.04em;text-transform:uppercase}
.hero__chip-text b{font-weight:inherit;color:var(--accent)}
@media (max-width:899px){
  .hero__mark{display:none}
  .hero__chip{display:inline-flex}
}

/* ещё жидкого стекла: вторичные кнопки и чипы сумм */
.btn:not(.btn--solid){backdrop-filter:blur(14px) saturate(165%);
  -webkit-backdrop-filter:blur(14px) saturate(165%)}
.chip{backdrop-filter:blur(12px) saturate(160%);-webkit-backdrop-filter:blur(12px) saturate(160%);
  box-shadow:inset 0 1px 0 var(--glass-hi)}

/* а11е: без анимаций кольцо и чип не дышат; без прозрачности — плотная заливка */
@media (prefers-reduced-motion:reduce){
  .hero__mark::after,.hero__chip-logo{animation:none}
}
@media (prefers-reduced-transparency:reduce){
  .hero__chip,.chip,.btn:not(.btn--solid){background:var(--surface);
    backdrop-filter:none;-webkit-backdrop-filter:none}
}

/* ==== v35: aurora-фон, градиентные CTA, витрина без «рамок в рамках» ====
   Референсы: Telegram Stars Shop-концепт — градиентные hero и пилюли CTA,
   ценовые бейджи, aurora-пятна. Внутри стеклянных панелей — только
   тонированные подложки, никаких вложенных границ. */

/* aurora: два медленных пятна за всем контентом. Никакого filter:blur —
   только radial-gradient и transform: слой композитится и не перерисовывает
   страницу (фон body уходит на канвас, ::before/-1 ложится поверх него
   и под атомы #dotfield) */
body::before,body::after{content:"";position:fixed;z-index:-1;pointer-events:none;
  border-radius:50%;will-change:transform}
body::before{left:-22vw;top:-30vh;width:74vw;height:74vw;opacity:.5;
  background:radial-gradient(circle at 50% 50%,rgba(0,0,0,.22) 0%,transparent 62%);
  animation:aurora-a 34s ease-in-out infinite alternate}
body::after{right:-26vw;bottom:-32vh;width:80vw;height:80vw;opacity:.4;
  background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--pink) 24%,transparent) 0%,transparent 62%);
  animation:aurora-b 41s ease-in-out infinite alternate}
@keyframes aurora-a{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(9vw,7vh,0) scale(1.16)}}
@keyframes aurora-b{from{transform:translate3d(0,0,0) scale(1.08)}to{transform:translate3d(-11vw,-6vh,0) scale(1)}}
:root[data-theme="light"] body::before{opacity:.34}
:root[data-theme="light"] body::after{opacity:.26}

/* главный CTA: градиентная пилюля с глянцевым пробегом */
.btn.btn--grad{border-color:transparent;color:#fff;
  background:linear-gradient(104deg,#6d28d9 0%,#8b5cf6 34%,#c084fc 55%,#e879b9 100%);
  background-size:160% 100%;background-position:0% 50%;
  text-shadow:0 1px 2px rgba(23,9,29,.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.38),
    0 12px 34px rgba(0,0,0,.22),
    0 6px 18px rgba(0,0,0,.22)}
.btn.btn--grad:hover,.btn.btn--grad:focus-visible{
  background-position:100% 50%;border-color:transparent;color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),
    0 18px 48px rgba(0,0,0,.22),
    0 8px 24px rgba(0,0,0,.22)}
.btn.btn--grad::before{content:"";position:absolute;top:0;bottom:0;left:-60%;width:45%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.34),transparent);
  transform:skewX(-18deg) translateX(0);transition:transform .7s var(--ease);pointer-events:none}
.btn.btn--grad:hover::before,.btn.btn--grad:focus-visible::before{transform:skewX(-18deg) translateX(340%)}
.btn.btn--grad:active{transform:translateY(0) scale(.97)}
.btn.btn--grad[disabled]{color:#fff;opacity:.45}

/* бейдж витрины звёзд: честная метка объёма, а не украшение */
.badge{position:absolute;z-index:3;top:14px;right:14px;padding:7px 11px;
  border-radius:99px;border:1px solid rgba(255,255,255,.16);
  background:rgba(7,7,10,.5);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  color:#fff;font:650 9px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;
  box-shadow:0 6px 18px rgba(0,0,0,.28);
  animation:badge-in .55s var(--spring) .35s both}
.badge--best{border-color:rgba(255,255,255,.3);
  background:linear-gradient(104deg,#6d28d9,#8b5cf6 45%,#e879b9);
  text-shadow:0 1px 2px rgba(23,9,29,.35);
  box-shadow:0 8px 24px rgba(0,0,0,.22)}
@keyframes badge-in{from{opacity:0;transform:translateY(-8px) scale(.7)}}

/* сегментный переключатель «Себе / Другу»: бегунок-пилюля без рамок */
.segmented{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:4px;
  padding:4px;margin-bottom:18px;border-radius:14px;
  background:color-mix(in srgb,var(--tone,var(--text)) 7%,transparent);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.16)}
.seg-thumb{position:absolute;z-index:0;top:4px;left:4px;
  width:calc(50% - 6px);height:calc(100% - 8px);border-radius:10px;
  background:var(--surface);box-shadow:0 3px 10px rgba(0,0,0,.22),inset 0 1px 0 var(--glass-hi);
  transition:transform .45s var(--spring)}
.segmented[data-active="friend"] .seg-thumb{transform:translateX(calc(100% + 4px))}
.segment{position:relative;z-index:1;min-height:42px;border:0;border-radius:10px;
  background:transparent;color:var(--text-mute);cursor:pointer;
  font:600 11px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;
  transition:color .3s ease,transform .4s var(--spring)}
.segment.is-active{color:var(--text)}
.segment:active{transform:scale(.96)}
.segment:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ==== блок оплаты: подложки вместо рамок, статусы цветом ==== */
.form-block h3{margin:0 0 14px}
.pay-box{animation:pay-fade .5s ease both}
@keyframes pay-fade{from{opacity:0}}
.pay-free{display:inline-block;vertical-align:2px;margin-left:10px;padding:5px 9px;
  border-radius:99px;background:rgba(62,207,142,.14);color:#3ecf8e;
  font:600 9px/1 var(--f-mono);font-style:normal;letter-spacing:.1em;text-transform:uppercase}
.pay-steps{margin:0 0 14px;padding:0;list-style:none;counter-reset:step}
.pay-steps li{position:relative;counter-increment:step;padding:5px 0 5px 34px;
  font-size:13.5px;line-height:1.5;color:var(--text-dim)}
.pay-steps li::before{content:counter(step);position:absolute;left:0;top:5px;
  width:22px;height:22px;display:grid;place-items:center;border-radius:50%;
  background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);
  font:650 10px/1 var(--f-mono)}
.pay-steps b{color:var(--text);font-weight:650}
.pay-addr{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:12px 14px;border-radius:12px;margin-bottom:12px;
  background:color-mix(in srgb,var(--tone,var(--text)) 6%,transparent)}
.pay-addr__code{flex:1;min-width:12ch;font:600 12.5px/1.4 var(--f-mono);
  color:var(--text);word-break:break-all}
.pay-copy{min-height:36px;padding:0 12px;border:0;border-radius:99px;
  background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);
  font:600 9.5px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;
  transition:transform .4s var(--spring),background .25s,color .25s}
.pay-copy:hover{background:color-mix(in srgb,var(--accent) 30%,transparent);transform:translateY(-1px)}
.pay-copy:active{transform:scale(.94)}
.pay-copy:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pay-multi{margin:10px 0 0}
.pay-cards{display:grid;gap:10px}
.pay-card{padding:14px 16px;border-radius:14px;
  background:color-mix(in srgb,var(--tone,var(--text)) 5%,transparent);
  transition:background .35s ease,transform .5s var(--spring);
  animation:pay-card-in .55s var(--spring) both}
@keyframes pay-card-in{from{opacity:0;transform:translateY(10px) scale(.97)}}
.pay-card:hover{background:color-mix(in srgb,var(--tone,var(--text)) 8%,transparent)}
.pay-card__head{display:flex;align-items:baseline;justify-content:space-between;
  gap:12px;margin-bottom:10px}
.pay-card__title{font:650 13.5px/1.3 var(--f-sans);min-width:0}
.pay-card__title i{margin-right:8px;color:var(--text-mute);
  font:600 10px/1 var(--f-mono);font-style:normal}
.pay-card__sum{text-align:right;white-space:nowrap}
.pay-card__sum b{display:block;font:700 15px/1.1 var(--f-display);
  letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pay-card__sum i{font:400 11px/1.4 var(--f-sans);color:var(--text-mute);font-style:normal}
.pay-card__code{display:block;padding:10px 12px;border-radius:10px;
  background:rgba(0,0,0,.22);
  font:600 12px/1.4 var(--f-mono);color:var(--violet-soft);cursor:pointer;word-break:break-all;
  transition:background .25s ease,color .25s ease}
.pay-card__code:hover{background:rgba(0,0,0,.22)}
:root[data-theme="light"] .pay-card__code{color:var(--accent-hard)}
.pay-card__status{margin:10px 0 0;font:600 10px/1.5 var(--f-mono);letter-spacing:.06em;
  text-transform:uppercase;color:var(--text-mute)}
.pay-card.is-delivered{background:color-mix(in srgb,#3ecf8e 8%,transparent)}
.pay-card.is-delivered .pay-card__status{color:#3ecf8e}
.pay-card.is-bad{background:color-mix(in srgb,#ef8a9f 7%,transparent)}
.pay-card.is-bad .pay-card__status{color:#ef8a9f}
.pay-card__status.is-bad b{color:#ef8a9f}
.pay-total{display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  flex-wrap:wrap;margin-top:16px;padding:14px 16px;border-radius:14px;
  background:linear-gradient(120deg,rgba(0,0,0,.22),
    color-mix(in srgb,var(--pink) 12%,transparent))}
.pay-total span{font:600 10px/1 var(--f-mono);letter-spacing:.12em;
  text-transform:uppercase;color:var(--text-dim)}
.pay-total b{font:800 clamp(20px,2.4vw,30px)/1 var(--f-display);letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;
  color:var(--text);}
:root[data-theme="light"] .pay-total b{color:var(--text);}
.pay-total i{font:400 12px/1 var(--f-sans);color:var(--text-mute);font-style:normal}

/* шапка партнёрки: ник градиентом, айди моно-подписью */
.partner-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:18px 0 4px}
.partner-head__name{font:800 clamp(30px,5vw,54px)/1 var(--f-display);letter-spacing:-.045em;
  color:var(--text);}
:root[data-theme="light"] .partner-head__name{
  color:var(--text);}
.partner-head__id{font:600 11px/1 var(--f-mono);letter-spacing:.1em;color:var(--text-mute)}

/* админка: пилюли, мягкие линии, стеклянные блоки */
.admin-btn{border-radius:99px;min-height:38px;padding:8px 16px;
  background:color-mix(in srgb,var(--glass) 55%,transparent);
  box-shadow:inset 0 1px 0 var(--glass-hi)}
.admin-btn:hover{background:var(--accent-soft);color:var(--accent);
  border-color:color-mix(in srgb,var(--accent) 38%,transparent)}
.admin-btn--ok:hover{background:rgba(62,207,142,.2);color:#3ecf8e;
  border-color:color-mix(in srgb,#3ecf8e 40%,transparent)}
.admin-btn--no:hover{background:rgba(229,72,77,.2);color:#e5484d;
  border-color:color-mix(in srgb,#e5484d 40%,transparent)}
.admin-btn--accent:hover{color:var(--accent)}
.admin-table td,.admin-table th{border-color:var(--line-soft)}
.admin-table tr:hover td{background:color-mix(in srgb,var(--tone,var(--text)) 4%,transparent)}
.admin-block{border-color:var(--line-soft);border-radius:var(--radius-lg);
  background:var(--glass);backdrop-filter:blur(22px) saturate(165%);
  -webkit-backdrop-filter:blur(22px) saturate(165%);
  box-shadow:inset 0 1px 0 var(--glass-hi)}
.refs-item{border-radius:14px;box-shadow:inset 0 1px 0 var(--glass-hi);
  transition:transform .45s var(--spring),background .3s ease}
.refs-item:hover{transform:translateX(4px);
  background:color-mix(in srgb,var(--tone,var(--text)) 8%,transparent)}

/* «как это работает»: шаги с градиентными номерами */
.how-steps{margin:0;padding:0;list-style:none;counter-reset:how;display:grid;gap:10px}
.how-steps li{position:relative;counter-increment:how;
  padding:16px 16px 16px 58px;border-radius:14px;
  background:color-mix(in srgb,var(--tone,var(--text)) 5%,transparent);
  transition:transform .5s var(--spring),background .3s ease}
.how-steps li:hover{background:color-mix(in srgb,var(--tone,var(--text)) 8%,transparent);
  transform:translateX(4px)}
.how-steps li::before{content:counter(how);position:absolute;left:16px;top:50%;
  transform:translateY(-50%);width:28px;height:28px;display:grid;place-items:center;
  border-radius:50%;background:linear-gradient(135deg,var(--violet),var(--pink));
  color:#fff;font:650 12px/1 var(--f-mono);
  box-shadow:0 6px 16px rgba(0,0,0,.22)}
.how-steps b{display:block;margin-bottom:4px;font:750 16px/1.25 var(--f-display);
  letter-spacing:-.02em;color:var(--text)}
.how-steps span{font-size:14px;line-height:1.5;color:var(--text-dim)}
@media (min-width:900px){.how-steps{grid-template-columns:1fr 1fr;gap:12px}}

/* FAQ: стеклянные аккордеоны, маркер + → × */
.faq{display:grid;gap:10px;max-width:760px}
.faq__item{border:1px solid var(--line);border-radius:var(--radius);
  background:var(--glass);backdrop-filter:blur(22px) saturate(165%);
  -webkit-backdrop-filter:blur(22px) saturate(165%);
  box-shadow:inset 0 1px 0 var(--glass-hi);
  transition:border-color .35s ease,background .35s ease}
.faq__item[open]{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));
  background:var(--glass-strong)}
.faq__item summary{display:flex;align-items:center;gap:14px;min-height:56px;
  padding:16px 20px;cursor:pointer;list-style:none;
  font:650 15px/1.3 var(--f-sans);color:var(--text)}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:"+";margin-left:auto;flex:none;width:30px;height:30px;
  display:grid;place-items:center;border-radius:50%;
  background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);
  font:650 16px/1 var(--f-mono);transition:transform .45s var(--spring),background .3s ease}
.faq__item[open] summary::after{transform:rotate(45deg)}
.faq__item summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.faq__item p{padding:0 20px 18px 64px;margin:0;max-width:56ch}

/* мобильность и а11е для всего v35 */
@media (max-width:899px){
  body::before{opacity:.34}
  body::after{opacity:.28}
  .admin-block,.faq__item{backdrop-filter:blur(14px) saturate(150%);
    -webkit-backdrop-filter:blur(14px) saturate(150%)}
  .badge{top:10px;right:10px;padding:6px 9px}
  .how-steps li{padding:14px 14px 14px 52px}
  .how-steps li::before{left:14px;width:24px;height:24px;font-size:11px}
  .faq__item p{padding:0 20px 16px}
  .partner-head__name{font-size:clamp(26px,8vw,38px)}
}
@media (prefers-reduced-motion:reduce){
  body::before,body::after{animation:none}
  .badge,.pay-box,.pay-card,.btn.btn--grad::before{animation:none}
  .seg-thumb,.pay-card,.refs-item,.how-steps li,.faq__item summary::after{transition:none}
  .how-steps li:hover,.refs-item:hover{transform:none}
}
@media (prefers-reduced-transparency:reduce){
  body::before,body::after{display:none}
  .admin-block,.faq__item{background:var(--surface);
    backdrop-filter:none;-webkit-backdrop-filter:none}
}

/* =========================================================================
   v36 — «жидкое стекло»: постоянная прозрачность, мягкий лиловый кант,
   свет за курсором, летающие баннеры в hero, графики, статичные глифы,
   магнитные кнопки и мобильная сетка «две в ряд».
   Слой дописывается в конец — старые правила не правятся.
   ========================================================================= */

/* 1. стекло постоянно: ховер/касание не «замутняет» плашки */
.tile:hover,.card:hover,.card:focus-within,.tile.is-touching,.card.is-touching,
.tier-column.is-touching,.tier-column:hover,.tier-column:focus-within,
.faq__item[open],.product-projection__item.is-touching{
  background:var(--glass)}
html.motion-tilt .notice.is-touching,html.motion-tilt .custom-amount.is-touching,
html.motion-tilt .summary.is-touching,html.motion-tilt .form-block.is-touching{
  background:var(--glass)}

/* 2. кант мягче: лиловая обводка ~26% вместо 40—55% */
.tile:hover,.card:hover,.card:focus-within,.tile.is-touching,.card.is-touching,
.tier-column.is-touching,.faq__item[open]{
  border-color:color-mix(in srgb,var(--accent) 26%,var(--line))}
html.motion-tilt .notice.is-touching,html.motion-tilt .custom-amount.is-touching,
html.motion-tilt .summary.is-touching,html.motion-tilt .form-block.is-touching{
  border-color:color-mix(in srgb,var(--accent) 24%,var(--line))}
.tier-column:hover,.tier-column:focus-within{
  border-color:color-mix(in srgb,var(--tier-accent) 28%,var(--line))}

/* 3. свет за курсором: блик следует за --lx/--ly (координаты пишет ui.js) */
.card::after,.tile::after,.tier-column::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(240px 180px at var(--lx,50%) var(--ly,42%),
    color-mix(in srgb,var(--accent) 15%,transparent),transparent 72%);
  opacity:0;transition:opacity .5s ease}
.card:hover::after,.card:focus-within::after,.card.is-touching::after,
.tile:hover::after,.tile:focus-within::after,.tile.is-touching::after,
.tier-column:hover::after,.tier-column:focus-within::after,.tier-column.is-touching::after{
  opacity:1}

/* 4. арты: тёмное стекло с двумя мягкими световыми пятнами цвета товара —
      вместо сплошной фиолетовой заливки */
.product-art{
  background:
    radial-gradient(120% 90% at 16% 12%,
      color-mix(in srgb,var(--art,var(--violet)) 30%,transparent) 0%,transparent 56%),
    radial-gradient(90% 75% at 86% 90%,
      color-mix(in srgb,var(--art,var(--violet)) 16%,transparent) 0%,transparent 60%),
    linear-gradient(160deg,#191424 0%,#0f0d17 52%,#161223 100%)}
.product-art::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(65% 42% at 22% 6%,rgba(255,255,255,.10) 0%,transparent 70%),
    linear-gradient(202deg,transparent 58%,rgba(255,255,255,.045) 92%)}

/* 5. hero: летящие полупрозрачные баннеры товаров вместо большой буквы */
.hero__flight{position:relative;justify-self:end;align-self:center;
  display:grid;gap:13px;width:100%;max-width:440px;
  transform:translate3d(0,var(--scroll-shift,0px),0)}
.hero__flight-item{
  position:relative;display:flex;align-items:center;gap:14px;
  min-height:78px;padding:14px 18px;border-radius:20px;
  border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));
  background:var(--glass);
  backdrop-filter:blur(24px) saturate(175%);
  -webkit-backdrop-filter:blur(24px) saturate(175%);
  box-shadow:inset 0 1px 0 var(--glass-hi),0 18px 44px rgba(0,0,0,.16);
  opacity:.88;
  animation:hero-flight 7.5s ease-in-out infinite;
  transition:opacity .4s ease,border-color .4s ease}
.hero__flight-item:nth-child(2){animation-duration:8.6s;animation-delay:-2.1s;margin-left:7%}
.hero__flight-item:nth-child(3){animation-duration:9.4s;animation-delay:-4.3s;margin-left:3%}
.hero__flight-item:nth-child(4){animation-duration:8.2s;animation-delay:-6s;margin-left:10%}
.hero__flight-item:hover{opacity:1;
  border-color:color-mix(in srgb,var(--accent) 34%,var(--line))}
@keyframes hero-flight{
  0%,100%{transform:translate3d(0,0,0) rotate(-.5deg)}
  50%{transform:translate3d(7px,-11px,0) rotate(.7deg)}}
.hero__flight-item .dot-glyph{position:relative;flex:none;inset:auto;
  width:56px;height:40px;opacity:.95}
.hero__flight-item b{font:750 15px/1.1 var(--f-display);letter-spacing:-.01em;color:var(--text)}
.hero__flight-item small{display:block;margin-top:4px;font:600 9px/1.1 var(--f-mono);
  letter-spacing:.14em;text-transform:uppercase;color:var(--text-mute)}

/* 6. графики: столбики и линия «рисуются» при входе в кадр */
.charts{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.chart{position:relative;overflow:hidden;padding:22px;border-radius:var(--radius);
  border:1px solid var(--line);background:var(--glass);
  backdrop-filter:blur(22px) saturate(165%);-webkit-backdrop-filter:blur(22px) saturate(165%);
  box-shadow:inset 0 1px 0 var(--glass-hi)}
.chart__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px}
.chart__title{font:750 15px/1.2 var(--f-display);letter-spacing:-.02em;color:var(--text)}
.chart__note{font:600 9.5px/1.3 var(--f-mono);letter-spacing:.08em;
  text-transform:uppercase;color:var(--text-mute);text-align:right}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart-bar{transform:scaleY(.02);transform-origin:bottom;
  transition:transform 1.15s cubic-bezier(.16,1,.3,1);
  transition-delay:calc(var(--i,0)*110ms)}
.chart.is-live .chart-bar{transform:scaleY(1)}
.chart-grid line{stroke:color-mix(in srgb,var(--tone,var(--text)) 10%,transparent);stroke-width:1}
.chart-label{fill:var(--text-dim);font:600 10px var(--f-mono)}
.chart-value{fill:var(--text);font:700 11px var(--f-mono);opacity:0;
  transition:opacity .7s ease;transition-delay:calc(var(--i,0)*110ms + .55s)}
.chart.is-live .chart-value{opacity:1}
.chart-line__path{fill:none;stroke:var(--accent);stroke-width:2.5;
  stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:var(--len,600);stroke-dashoffset:var(--len,600);
  transition:stroke-dashoffset 2s cubic-bezier(.22,1,.36,1) .2s}
.chart.is-live .chart-line__path{stroke-dashoffset:0}
.chart-line__area{fill:color-mix(in srgb,var(--accent) 16%,transparent);
  opacity:0;transition:opacity 1.1s ease 1s}
.chart.is-live .chart-line__area{opacity:1}
.chart-line__dot{fill:var(--bg);stroke:var(--accent);stroke-width:2.5;
  opacity:0;transform:scale(.3);transform-box:fill-box;transform-origin:center;
  transition:opacity .5s ease,transform .7s var(--spring);
  transition-delay:calc(var(--i,0)*300ms + .8s)}
.chart.is-live .chart-line__dot{opacity:1;transform:scale(1)}
@media (max-width:899px){.charts{grid-template-columns:1fr}}

/* 7. статичные глифы: иконки корзины, чипы hero, плитки-категории */
.dot-glyph--static i{left:var(--tx);top:var(--ty)}
.dot-glyph--static{opacity:.9}
.dot-glyph--mini i{width:2.2px;height:2.2px;
  box-shadow:none}
.dot-glyph--cat i{width:clamp(2.6px,.32vw,3.6px);height:clamp(2.6px,.32vw,3.6px)}
:root[data-theme="light"] .dot-glyph--static i{
  background:color-mix(in srgb,var(--art,var(--accent)) 76%,#1c1220);
  box-shadow:none}
.cart-item__ico{position:relative;overflow:hidden}
.cart-item__ico .dot-glyph{position:absolute;inset:0;width:auto;height:auto;opacity:.95}
.cart-item__ico .dot-glyph i{width:2.4px;height:2.4px}
.cart-item__ico--stars{--art:var(--blue)}
.cart-item__ico--premium{--art:var(--pink)}
.cart-item__ico--subscription{--art:var(--violet)}
.cart-item__ico--giftcard{--art:var(--violet)}

/* 8. плитки-категории на главной: Telegram / PlayStation / FAQ */
.tile--cat{min-height:clamp(250px,26vw,360px);gap:4px;--art:var(--violet-soft)}
.tile--cat .tile__visual{position:relative;display:block;
  height:clamp(72px,8.5vw,112px);margin:10px 0 4px}
.tile--cat .dot-glyph{position:absolute;inset:0;opacity:.92}
.tile--cat h3{margin:0 0 10px;font-size:clamp(26px,3.2vw,44px)}
.tile--cat p{margin-bottom:0}
.tile--cat .tile__go{margin-top:auto;padding-top:18px}
.tile--cat-telegram{--art:var(--blue)}
.tile--cat-playstation{--art:#5d8dff}
.tile--cat-faq{--art:var(--violet-soft)}
.tile--cat-telegram .tile__glow{background:var(--blue)}
.tile--cat-playstation .tile__glow{background:#5d8dff}
.tile--cat-faq .tile__glow{background:var(--violet)}

/* 9. магнитные кнопки: transform ведёт JS-движок (motion-tilt),
      CSS-переход transform выключаем, чтобы не было «догоняющей» смазки */
html.motion-tilt .btn,html.motion-tilt .cart-btn,html.motion-tilt .theme-toggle,
html.motion-tilt .account-btn{
  transition:background .3s ease,color .3s ease,border-color .3s ease,
    box-shadow .35s ease}
html.motion-tilt .btn:hover,html.motion-tilt .btn:focus-visible,
html.motion-tilt .cart-btn:hover,html.motion-tilt .account-btn:hover{
  transform:none}

/* 10. мобиль: минимум две карточки в ряд */
@media (max-width:899px){
  .grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:619px){
  .grid--2,.grid--3,.grid--4,.grid--5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tile{min-height:230px}
  .tile--cart{grid-column:1/-1}
  .card{padding:14px}
  .card__desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .product-art{margin:-14px -14px 8px;min-height:130px}
  .product-projection{grid-template-columns:repeat(2,minmax(0,1fr));min-height:auto}
  .product-projection__item{min-height:150px}
  .hero__flight{max-width:none;grid-template-columns:1fr 1fr;gap:10px}
  .hero__flight-item,.hero__flight-item:nth-child(n){margin-left:0;min-height:0;padding:11px 12px}
  .hero__flight-item .dot-glyph{width:40px;height:30px}
  .hero__flight-item b{font-size:12px}
  .hero__flight-item small{font-size:8px;letter-spacing:.1em}
  .charts{grid-template-columns:1fr}
  .chart{padding:16px}
}

/* 11. цвет вспышки «добавлено в корзину» — по типу товара */
.purchase-dots--stars{--dot-ink:#7db4ff}
.purchase-dots--premium{--dot-ink:#f47bd6}
.purchase-dots--subscription{--dot-ink:#a78bfa}
.purchase-dots--giftcard{--dot-ink:#a78bfa}
:root[data-theme="light"] .purchase-dots--stars{--dot-ink:#2563eb}
:root[data-theme="light"] .purchase-dots--premium{--dot-ink:#c026b5}
:root[data-theme="light"] .purchase-dots--subscription{--dot-ink:#6d28d9}
:root[data-theme="light"] .purchase-dots--giftcard{--dot-ink:#7c3aed}

/* 12. страница FAQ: карточки-доки и видео-плейсхолдеры */
.faq-videos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.faq-video{position:relative;overflow:hidden;border:1px solid var(--line);
  border-radius:var(--radius);background:var(--glass);
  backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);
  box-shadow:inset 0 1px 0 var(--glass-hi);
  aspect-ratio:16/10;padding:16px;display:flex;flex-direction:column;
  justify-content:flex-end;gap:8px;--art:var(--violet-soft)}
.faq-video__glyph{position:absolute;inset:0;pointer-events:none;opacity:.45}
.faq-video b{position:relative;font:750 14px/1.25 var(--f-display);color:var(--text)}
.faq-video span{position:relative;font:600 9px/1.3 var(--f-mono);letter-spacing:.12em;
  text-transform:uppercase;color:var(--text-mute)}
.faq-video__soon{position:absolute;right:12px;top:12px;z-index:2;padding:5px 9px;
  border-radius:99px;background:color-mix(in srgb,var(--accent) 18%,transparent);
  color:var(--accent);font:650 9px var(--f-mono);letter-spacing:.1em;text-transform:uppercase}
@media (max-width:899px){.faq-videos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:619px){.faq-videos{grid-template-columns:1fr 1fr;gap:10px}
  .faq-video{padding:12px}}

/* 13. страница PlayStation: переключатель регионов */
.ps-seg{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 26px}
.ps-seg button{min-height:42px;padding:0 22px;border:1px solid var(--line);
  border-radius:99px;background:var(--glass);color:var(--text);
  font:650 10px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;
  cursor:pointer;backdrop-filter:blur(16px) saturate(155%);
  -webkit-backdrop-filter:blur(16px) saturate(155%);
  transition:border-color .3s ease,color .3s ease,background .3s ease}
.ps-seg button.is-active{
  border-color:color-mix(in srgb,var(--accent) 50%,var(--line));
  color:var(--accent);background:var(--accent-soft)}
.ps-seg button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.catalog-hero--playstation{--page-accent:#5d8dff}
.product-art--ps{--art:#5d8dff}
:root[data-theme="light"] .product-art--ps{--art:#3b63d8}
/* PlayStation-заявление: логотип из точек вместо фото-баннера */
.catalog-statement--playstation{--banner:#5d8dff;--banner-photo:none;background-image:none}
.catalog-statement--playstation::before{background:linear-gradient(105deg,rgba(5,5,9,.96) 0%,rgba(5,5,9,.84) 45%,rgba(93,141,255,.26) 100%)}
.ps-hero__glyph{position:relative;width:clamp(120px,15vw,210px);aspect-ratio:11/8;justify-self:center;opacity:.95}
.ps-hero__glyph i{width:clamp(3px,.42vw,5.6px);height:clamp(3px,.42vw,5.6px);
  background:color-mix(in srgb,#5d8dff 82%,white);
  box-shadow:none}
:root[data-theme="light"] .ps-hero__glyph i{background:#3b63d8;box-shadow:none}

/* 14. доступность: новые анимации уважают reduced-motion */
@media (prefers-reduced-motion:reduce){
  .hero__flight-item{animation:none}
  .chart-bar,.chart-line__path,.chart-line__dot,.chart-line__area,.chart-value{transition:none}
  .chart-bar{transform:scaleY(1)}
  .chart-value{opacity:1}
  .chart-line__path{stroke-dasharray:none;stroke-dashoffset:0}
  .chart-line__dot{opacity:1;transform:scale(1)}
  .chart-line__area{opacity:1}
}

/* 15. графики: столбик растёт от собственной базовой линии
       (transform-box по своей коробке, а не по viewBox) */
.chart-bar{transform-box:fill-box}

/* 16. v37: шапка каталога, категории-группы, FAQ-CTA, настройки графиков */

/* шапка «Что можно купить»: текст слева, компактные проекции справа */
.products-head{display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:center}
.products-head .product-projection{min-height:0;padding:10px;gap:10px}
.products-head .product-projection__item{min-height:clamp(112px,12vw,164px)}
.products-head .product-projection__item small{left:12px;bottom:10px}

/* категория-группа: шапка целиком кнопка, стрелка внизу раскрывает подпункты */
.tile--group .tile__head{position:relative;display:flex;flex-direction:column;
  flex:1 0 auto;width:100%;margin:0;padding:0;border:0;background:none;
  color:inherit;font:inherit;text-align:left;cursor:pointer;appearance:none}
.tile--group .tile__head:focus-visible{
  outline:2px solid color-mix(in srgb,var(--art) 70%,transparent);
  outline-offset:4px;border-radius:10px}
.tile__arrow{position:absolute;right:0;bottom:0;width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);color:var(--text-mute);background:var(--glass);
  transition:transform .5s var(--spring),border-color .3s ease,color .3s ease}
.tile__arrow::before{content:"";display:block;width:7px;height:7px;margin-top:-3px;
  border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;
  transform:rotate(45deg)}
.tile--group.is-open .tile__arrow{transform:rotate(180deg);
  border-color:color-mix(in srgb,var(--art) 60%,transparent);color:var(--art)}
.tile__sub{display:flex;flex-direction:column;gap:8px;max-height:0;overflow:hidden;
  opacity:0;visibility:hidden;
  transition:max-height .55s var(--spring),opacity .35s ease,
    margin-top .55s var(--spring),visibility 0s linear .55s}
.tile--group.is-open .tile__sub{max-height:280px;opacity:1;visibility:visible;
  margin-top:16px;transition:visibility 0s}
.tile__sub a{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  padding:12px 14px;border-radius:var(--radius);
  border:1px solid var(--line);background:color-mix(in srgb,var(--art) 6%,var(--glass));
  text-decoration:none;color:var(--text);
  transition:transform .35s var(--spring),border-color .3s ease,background .3s ease}
.tile__sub a b{flex:0 0 auto;font:750 11px var(--f-mono);letter-spacing:.12em;
  text-transform:uppercase;color:var(--art)}
.tile__sub a span{flex:1;min-width:0;font:500 12px/1.4 var(--f-body);color:var(--text-dim)}
.tile__sub a:hover{transform:translateX(5px);
  border-color:color-mix(in srgb,var(--art) 55%,transparent);
  background:color-mix(in srgb,var(--art) 12%,var(--glass))}

/* FAQ-CTA: панель внизу секции вопросов, ведёт в полный FAQ */
.faq-cta{display:flex;align-items:center;gap:20px;margin-top:14px;max-width:760px;
  padding:18px 22px;border-radius:var(--radius-lg);
  border:1px solid var(--line);background:var(--glass);
  text-decoration:none;color:var(--text);
  transition:transform .45s var(--spring),border-color .3s ease,background .3s ease}
.faq-cta:hover{transform:translateY(-3px);
  border-color:color-mix(in srgb,var(--accent) 50%,transparent);
  background:var(--glass-strong)}
.faq-cta__mark{position:relative;display:block;flex:0 0 64px;height:54px}
.faq-cta__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.faq-cta__body b{font:750 16px/1.2 var(--f-display);letter-spacing:-.02em;color:var(--text)}
.faq-cta__body span{font:500 12.5px/1.45 var(--f-body);color:var(--text-dim)}
.faq-cta .tile__go{margin:0;flex:0 0 auto;color:var(--text-mute);transition:color .3s ease}
.faq-cta:hover .tile__go{color:var(--accent)}

/* настройки графиков: сегмент периода + два переключателя */
.charts-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 18px}
.charts-tools__group{display:flex;gap:3px;padding:3px;border-radius:12px;
  border:1px solid var(--line);background:var(--glass)}
.charts-tools__group button,.charts-tools__toggle{
  font:650 10px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;
  color:var(--text-dim);background:none;border:0;border-radius:9px;
  padding:8px 12px;cursor:pointer;
  transition:color .25s ease,background .25s ease,box-shadow .25s ease}
.charts-tools__group button:hover,.charts-tools__toggle:hover{color:var(--text)}
.charts-tools__group button.is-active,.charts-tools__toggle.is-active{
  color:var(--bg);background:var(--accent);
  box-shadow:0 3px 14px rgba(0,0,0,.22)}
.charts-tools__toggle{border:1px solid var(--line);border-radius:12px;padding:7px 13px}
.charts-tools__toggle.is-active{border-color:transparent}
.charts--4{grid-template-columns:repeat(2,minmax(0,1fr))}
.chart__legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 10px;
  font:600 9.5px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;
  color:var(--text-dim)}

/* курсор у линейных графиков: линия + точка + подпись ходят за мышью */
.chart-cursor{opacity:0;transition:opacity .22s ease;pointer-events:none}
.chart-cursor line{stroke:color-mix(in srgb,var(--tone,var(--text)) 30%,transparent);
  stroke-width:1;stroke-dasharray:3 4}
.chart-cursor circle{fill:var(--bg);stroke:var(--accent);stroke-width:2.5}
.chart-cursor__val{fill:var(--text);font:700 10.5px var(--f-mono)}
.chart.is-hover .chart-cursor{opacity:1}

/* настройки: скрыть подписи значений / отключить анимацию */
.charts.no-values .chart-value{display:none}
.charts.no-anim .chart-bar,.charts.no-anim .chart-line__path,
.charts.no-anim .chart-line__area,.charts.no-anim .chart-line__dot,
.charts.no-anim .chart-value{transition:none!important}

/* адаптив v37 */
@media (max-width:899px){
  .products-head{grid-template-columns:1fr;gap:8px}
  .charts--4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:619px){
  .products-head .product-projection{grid-template-columns:1fr 1fr;min-height:0;gap:8px;padding:8px}
  .products-head .product-projection__item{min-height:96px}
  .products-head .product-projection__item small{left:10px;bottom:8px}
  .tile__arrow{width:30px;height:30px}
  .tile--group.is-open .tile__sub{max-height:340px}
  .tile__sub a{padding:10px 12px}
  .faq-cta{padding:16px;gap:14px}
  .faq-cta__mark{flex-basis:50px;height:42px}
  .charts--4{grid-template-columns:1fr}
}


/* ==== v37.2: жидкое стекло — кнопки без градиентной заливки, свет под стеклом, marquee-ссылки ==== */

/* стекло на панелях видно и без курсора: фон светлее, под ним дышит акцентный свет */
:root{--glass:rgba(20,18,30,.28);--glass-strong:rgba(22,20,34,.56)}
:root[data-theme="light"]{--glass:rgba(255,255,255,.44);--glass-strong:rgba(255,255,255,.72)}
.tile__glow{width:78%;opacity:.5;filter:blur(34px)}
.notice,.custom-amount,.form-block,.summary{background-image:
  radial-gradient(120% 90% at 14% -12%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 60%)}
.chart{background-image:
  radial-gradient(120% 90% at 50% -18%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 58%)}

/* главный CTA и «Оформить заказ»: стекло + спрятанные под ним источники света */
.btn.btn--grad{border-color:rgba(0,0,0,.22);color:var(--text);
  background:rgba(0,0,0,.22);
  backdrop-filter:blur(18px) saturate(170%);-webkit-backdrop-filter:blur(18px) saturate(170%);
  text-shadow:none;
  box-shadow:inset 0 1px 0 var(--glass-hi),
    inset 0 -12px 24px rgba(0,0,0,.22),
    0 14px 40px rgba(0,0,0,.22);
  transition:transform .5s var(--spring),border-color .3s ease,background .3s ease,box-shadow .45s ease}
.btn.btn--grad::before{content:"";position:absolute;inset:-45% -25%;pointer-events:none;transform:none;
  background:
    radial-gradient(20% 46% at 16% 32%,rgba(0,0,0,.22) 0%,transparent 100%),
    radial-gradient(18% 42% at 84% 74%,color-mix(in srgb,var(--pink) 52%,transparent) 0%,transparent 100%);
  filter:blur(16px);opacity:.55;
  transition:opacity .5s ease,transform .9s var(--ease)}
.btn.btn--grad::after{content:"";position:absolute;inset:1px;pointer-events:none;border-radius:inherit;
  background:linear-gradient(180deg,rgba(255,255,255,.14),transparent 34%)}
.btn.btn--grad:hover,.btn.btn--grad:focus-visible{
  border-color:color-mix(in srgb,var(--pink) 50%,transparent);
  background:rgba(0,0,0,.22);
  box-shadow:inset 0 1px 0 var(--glass-hi),
    0 20px 54px rgba(0,0,0,.22)}
.btn.btn--grad:hover::before,.btn.btn--grad:focus-visible::before{opacity:.95;transform:translate3d(4%,-3%,0) scale(1.07)}
.btn.btn--grad:active{transform:translateY(0) scale(.965)}
.btn.btn--grad[disabled]{color:var(--text);opacity:.45}
.btn.btn--grad[disabled]::before{opacity:.15}
:root[data-theme="light"] .btn.btn--grad{color:#17131c}

/* бейдж «выгодно»: то же стекло вместо заливки */
.badge--best{border-color:rgba(255,255,255,.3);
  background:rgba(0,0,0,.22);
  backdrop-filter:blur(12px) saturate(160%);-webkit-backdrop-filter:blur(12px) saturate(160%);
  text-shadow:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 24px rgba(0,0,0,.22)}

/* номера шагов «как это работает»: один строгий цвет */
.how-steps li::before{background:var(--accent);box-shadow:0 6px 16px rgba(0,0,0,.22)}

/* marquee: пауза под курсором, слова — ссылки на главные страницы */
.marquee:hover .marquee__track,.marquee:focus-within .marquee__track{animation-play-state:paused}
.marquee a{white-space:nowrap;font:600 10px var(--f-mono);letter-spacing:.2em;text-transform:uppercase;
  color:var(--text-mute);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:1px;
  transition:color .25s ease,border-color .25s ease}
.marquee a b{color:var(--accent);font-weight:600}
.marquee a:hover,.marquee a:focus-visible{color:var(--accent);border-bottom-color:currentColor}

/* v37.2: баннеры Premium / PlayStation — эмблема из точек + стеклянные чипы */
.catalog-statement--v2{display:flex;flex-direction:column;justify-content:flex-end;
  gap:14px;padding:clamp(26px,4.5vw,58px)}
.catalog-statement--v2::after{background:radial-gradient(58% 90% at 82% 50%,
  color-mix(in srgb,var(--banner,#5d8dff) 20%,transparent),transparent 72%)}
.catalog-statement--premium.catalog-statement--v2::after{--banner:var(--pink)}
.statement-star{position:absolute;left:auto;bottom:auto;
  right:clamp(18px,8vw,120px);top:50%;transform:translateY(-50%);
  width:clamp(120px,17vw,230px);aspect-ratio:13/11;z-index:1;pointer-events:none;opacity:.95}
.statement-star--ps{width:clamp(120px,15vw,205px);aspect-ratio:11/8}
.statement-star i{background:var(--art,var(--pink));
  box-shadow:none;
  animation:glyph-pop .8s var(--spring) both;animation-delay:var(--delay)}
.statement-star i{width:clamp(3px,.5vw,6px);height:clamp(3px,.5vw,6px)}
.statement-star--ps i{width:clamp(3.2px,.55vw,7px);height:clamp(3.2px,.55vw,7px);
  box-shadow:none}
.statement-body{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;
  gap:14px;max-width:60%}
.statement-chips{display:flex;flex-wrap:wrap;gap:10px}
.statement-chip{display:inline-flex;align-items:baseline;gap:7px;min-height:38px;padding:9px 17px;
  border-radius:99px;border:1px solid rgba(255,255,255,.28);
  background:color-mix(in srgb,var(--banner,#5d8dff) 15%,transparent);
  backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);
  color:#fff;font:700 clamp(13px,1.7vw,20px)/1 var(--f-display);letter-spacing:.02em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 10px 28px color-mix(in srgb,var(--banner,#5d8dff) 22%,transparent);
  animation:chip-in .65s var(--spring) both;animation-delay:.12s}
.catalog-statement--premium .statement-chip{--banner:var(--pink)}
.statement-chip:nth-child(2){animation-delay:.24s}
.statement-chip:nth-child(3){animation-delay:.36s}
.statement-chip i{font:600 9px var(--f-mono);letter-spacing:.14em;opacity:.72;font-style:normal}
.statement-chip--link{text-decoration:none;transition:transform .5s var(--spring),border-color .3s ease,background .3s ease}
.statement-chip--link:hover,.statement-chip--link:focus-visible{transform:translateY(-2px);
  border-color:rgba(255,255,255,.55);background:color-mix(in srgb,var(--banner,#5d8dff) 24%,transparent)}
.statement-chip--link:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:3px}
@keyframes glyph-pop{from{opacity:0}}
@keyframes chip-in{from{opacity:0;transform:translateY(10px) scale(.86)}}
@media(max-width:899px){
  .catalog-statement--v2{min-height:230px}
  .statement-star{left:auto;bottom:auto;right:14px;top:24px;transform:none;width:clamp(84px,22vw,120px)}
  .statement-star--ps{width:clamp(80px,20vw,110px)}
  .statement-body{max-width:100%;gap:10px}
}
@media(max-width:619px){
  .statement-chip{min-height:34px;padding:7px 14px}
}

/* == 19 · v37.3: меню-группы (десктоп: дропдауны, мобайл: аккордеон),
   бургер за курсором, блюр меню мягче, пружинные въезды пунктов == */

.nav__group{position:relative}
.nav__label{position:relative;display:flex;align-items:center;gap:7px;padding:9px 12px;border:0;background:none;cursor:pointer;font:600 10px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-mute);white-space:nowrap;transition:color .25s}
.nav__label span{display:block}
.nav__label i{display:block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-1.5px);transition:transform .45s var(--spring)}
.nav__label::after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav__label:hover,.nav__label.is-active,.nav__group.is-open .nav__label{color:var(--text)}
.nav__label:hover::after,.nav__label.is-active::after{transform:scaleX(1)}
.nav__group:hover .nav__label i,.nav__group.is-open .nav__label i,.nav__group:focus-within .nav__label i{transform:rotate(225deg) translateY(-1.5px)}

.nav__drop{position:absolute;top:calc(100% + 12px);left:-8px;min-width:236px;padding:10px;border:1px solid color-mix(in srgb,var(--tone,var(--text)) 13%,transparent);border-radius:20px;background:color-mix(in srgb,var(--bg) 84%,transparent);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);box-shadow:0 26px 70px color-mix(in srgb,#000021 46%,transparent),inset 0 1px 0 var(--glass-hi);opacity:0;visibility:hidden;transform:translate3d(0,-8px,0) scale(.97);transform-origin:top left;transition:transform .5s var(--spring),opacity .3s ease,visibility .5s}
.nav__group:hover .nav__drop,.nav__group:focus-within .nav__drop,.nav__group.is-open .nav__drop{opacity:1;visibility:visible;transform:translate3d(0,0,0) scale(1)}
.nav__drop a{display:block;padding:12px 14px;border-radius:12px;font:650 11px/1.3 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-mute);transition:color .25s,background .25s,transform .45s var(--spring)}
.nav__drop a::before{content:"";display:inline-block;width:5px;height:5px;margin-right:10px;border-radius:2px;background:var(--accent);opacity:0;transform:scale(.4);vertical-align:2px;transition:opacity .3s,transform .4s var(--spring)}
.nav__drop a:hover,.nav__drop a.is-active{color:var(--text);background:color-mix(in srgb,var(--accent) 9%,transparent);transform:translateX(3px)}
.nav__drop a:hover::before,.nav__drop a.is-active::before{opacity:1;transform:scale(1)}

/* футер: строка телеграм-поддержки */
.footer__tg{display:inline-flex;align-items:center;gap:8px;margin:4px 0 2px;font:700 12px/1 var(--f-mono);letter-spacing:.04em;color:var(--text-mute);text-decoration:none;transition:color .25s}
.footer__tg::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:none}
.footer__tg:hover{color:var(--text)}

@media (max-width:899px){
  /* мягче блюр + чуть плотнее фон, чтобы читался текст */
  .nav{background:rgba(12,11,17,.66);backdrop-filter:blur(14px) saturate(130%);-webkit-backdrop-filter:blur(14px) saturate(130%);transition:transform .62s var(--spring),opacity .34s ease,visibility .62s}
  .nav__group{display:block}
  .nav__label{width:100%;justify-content:space-between;padding:18px 4px;font:750 clamp(22px,6vw,31px)/1 var(--f-display);letter-spacing:-.03em;text-transform:none;color:#fff;border-radius:0}
  .nav__label span{font:inherit}
  .nav__label i{width:11px;height:11px;border-width:2px;transform:rotate(45deg)}
  .nav__group.is-open .nav__label i,.nav__group:focus-within .nav__label i{transform:rotate(225deg)}
  .nav__label::after{display:none}
  .nav__drop{position:static;min-width:0;padding:0;margin:0;border:0;background:none;backdrop-filter:none;box-shadow:none;opacity:1;visibility:visible;transform:none;max-height:0;overflow:hidden;transition:max-height .6s var(--spring),opacity .4s ease,margin .6s var(--spring)}
  .nav__group.is-open .nav__drop{max-height:180px;opacity:1;margin:2px 0 14px}
  .nav__drop a{padding:13px 4px 13px 16px;border-radius:0;font:650 15px/1.25 var(--f-body);letter-spacing:0;text-transform:none;color:rgba(255,255,255,.62)}
  .nav__drop a::before{width:6px;height:6px;margin-right:12px;vertical-align:1px}
  .nav__drop a:hover,.nav__drop a.is-active{background:none;color:#fff;transform:translateX(3px)}
}

/* пункты меню влетают по одному (пружина) */
@keyframes menu-in{from{opacity:0;transform:translateY(16px) scale(.95)}}
.nav.is-open>*{animation:menu-in .55s var(--spring) both}
.nav.is-open>*:nth-child(2){animation-delay:55ms}
.nav.is-open>*:nth-child(3){animation-delay:110ms}
.nav.is-open>*:nth-child(4){animation-delay:165ms}
.nav.is-open>*:nth-child(5){animation-delay:200ms}
.nav__group.is-open .nav__drop a{animation:menu-in .5s var(--spring) both}
.nav__group.is-open .nav__drop a:nth-child(2){animation-delay:55ms}
@media (min-width:900px){
  .nav.is-open>*{animation:none}
}

/* ==== v37.4: профиль — каскадное появление строк (заказы, статистика, рефералы) ==== */
@keyframes rowIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.admin-block>*{animation:rowIn .55s var(--spring) backwards}
.admin-block>*:nth-child(1){animation-delay:.03s}
.admin-block>*:nth-child(2){animation-delay:.09s}
.admin-block>*:nth-child(3){animation-delay:.15s}
.admin-block>*:nth-child(4){animation-delay:.21s}
.admin-block>*:nth-child(5){animation-delay:.27s}
.admin-block>*:nth-child(6){animation-delay:.33s}
.admin-block>*:nth-child(7){animation-delay:.39s}
.refs-list .refs-item{animation:rowIn .5s var(--spring) backwards}
.refs-list .refs-item:nth-child(1){animation-delay:.05s}
.refs-list .refs-item:nth-child(2){animation-delay:.1s}
.refs-list .refs-item:nth-child(3){animation-delay:.15s}
.refs-list .refs-item:nth-child(4){animation-delay:.2s}
.refs-list .refs-item:nth-child(5){animation-delay:.25s}
.refs-list .refs-item:nth-child(6){animation-delay:.3s}
.refs-list .refs-item:nth-child(7){animation-delay:.35s}
.refs-list .refs-item:nth-child(8){animation-delay:.4s}
.refs-list .refs-item:nth-child(n+9){animation-delay:.45s}
@media (prefers-reduced-motion:reduce){
  .admin-block>*,.refs-list .refs-item{animation:none}
}


/* ==== v38: чистое стекло без цветных кружков, 4-цветная обводка,
   чёрные графики, сборка точек на плитках, честные стрелки меню ==== */

/* 1. убрать: текст-логотип, цветные кружки-подсветки, фото-ореолы */
.logo__text,.tile__glow,.product-art__orb{display:none}
.catalog-hero::before,.hero__mark::after{content:none}

/* 2. hero: одна колонка — текст не конкурирует с баннерами */
.hero__grid{grid-template-columns:1fr}
@media (min-width:900px){
  .hero__grid .lede{max-width:58ch}
}

/* 3. кнопка с заливкой → жидкое стекло (как главный CTA, но спокойнее) */
.btn--solid{background:rgba(0,0,0,.22);
  border-color:rgba(0,0,0,.22);color:var(--text);
  backdrop-filter:blur(18px) saturate(170%);-webkit-backdrop-filter:blur(18px) saturate(170%);
  text-shadow:none;
  box-shadow:inset 0 1px 0 var(--glass-hi),
    inset 0 -12px 24px rgba(0,0,0,.22),
    0 14px 40px rgba(0,0,0,.22)}
.btn--solid::before{content:"";position:absolute;inset:-45% -25%;pointer-events:none;
  background:
    radial-gradient(20% 46% at 16% 32%,rgba(0,0,0,.22) 0%,transparent 100%),
    radial-gradient(18% 42% at 84% 74%,color-mix(in srgb,var(--pink) 45%,transparent) 0%,transparent 100%);
  filter:blur(16px);opacity:.5;
  transition:opacity .5s ease,transform .9s var(--ease)}
.btn--solid::after{content:"";position:absolute;inset:1px;pointer-events:none;border-radius:inherit;
  background:linear-gradient(180deg,rgba(255,255,255,.14),transparent 34%)}
.btn--solid:hover,.btn--solid:focus-visible{
  background:rgba(0,0,0,.22);
  border-color:color-mix(in srgb,var(--pink) 45%,transparent);color:var(--text);
  box-shadow:inset 0 1px 0 var(--glass-hi),
    0 18px 48px rgba(0,0,0,.22)}
.btn--solid:hover::before,.btn--solid:focus-visible::before{
  opacity:.9;transform:translate3d(4%,-3%,0) scale(1.06)}
:root[data-theme="light"] .btn--solid{color:#17131c}

/* 4. обводка: плавная смена по четырём основным цветам */
@keyframes border-flow{
  0%,100%{border-color:color-mix(in srgb,var(--violet) 34%,var(--line))}
  25%{border-color:color-mix(in srgb,var(--violet-soft) 38%,var(--line))}
  50%{border-color:color-mix(in srgb,var(--pink) 34%,var(--line))}
  75%{border-color:color-mix(in srgb,var(--blue) 34%,var(--line))}}
.catalog-statement,.card,.tile{animation:border-flow 16s linear infinite}
@media (prefers-reduced-motion:reduce){
  .catalog-statement,.card,.tile{animation:none}
}

/* 5. баннеры: чистое стекло — без цветного «объёма» под ним */
.catalog-statement--v2::after{background:none}
.catalog-statement--playstation::before{background:
  linear-gradient(105deg,rgba(5,5,9,.96) 0%,rgba(5,5,9,.84) 55%,rgba(5,5,9,.6) 100%)}

/* 6. графики: строго чёрный фон + тёмно-фиолетовая series, тонкая линия */
.chart{background:#050509;background-image:none;border-color:#241d33;
  backdrop-filter:none;-webkit-backdrop-filter:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.chart__title,.chart__note,.chart__legend{color:#d7d2e8}
.chart-label{fill:#8f88a8}
.chart-value{fill:#e8e4f6}
.chart-grid line{stroke:#221c33;stroke-width:1}
.chart-line__path{stroke:#6d28d9;stroke-width:1.5}
.chart-line__area{fill:color-mix(in srgb,#6d28d9 9%,transparent)}
.chart-line__dot{fill:#6d28d9;stroke:#050509;stroke-width:1.5}
.chart-cursor line{stroke:#4a4160}
.chart-cursor circle{stroke:#6d28d9;fill:#050509;stroke-width:1.5}
.chart-cursor__val{fill:#e8e4f6}

/* 7. точки на плитках-категориях собираются в букву — как на карточках */
.tile:hover .dot-glyph i,.tile:focus-within .dot-glyph i,.tile.is-touching .dot-glyph i{
  left:var(--tx);top:var(--ty);
  transform:translate(-50%,-50%) scale(calc(var(--s,1)*1.12))}
.tile:hover .dot-glyph,.tile:focus-within .dot-glyph{opacity:.72}

/* 8. PlayStation-плитка: синий PS вместо лаванды */
.tile--cat-playstation{--art:#5d8dff}
:root[data-theme="light"] .tile--cat-playstation{--art:#3b63d8}

/* 9. мобильное меню: наведение раскрывает группу — стрелка не врёт */
@media (max-width:899px){
  .nav__group:hover .nav__label i{transform:rotate(225deg)}
  .nav__group:hover .nav__drop{max-height:180px;opacity:1;margin:2px 0 14px}
}

/* ==========================================================================
   v41 — точечные знаки: точные контуры (glyph_gen.py), фон карточек,
   сбор баннеров; текст карточек без обрезки; жидкое стекло мелких кнопок;
   FAQ-панель за курсором; интро без мыла
   ========================================================================== */

/* 1. Фон карточки покупки: знак из точек (PLANE / PSLOGO / GIFT) под
      текстом; в покое — россыпь, при наведении/касании собирается в знак */
.product-art__bg{z-index:0;opacity:.3}
.product-art__bg i{width:2.8px;height:2.8px;
  background:color-mix(in srgb,var(--art,var(--violet)) 78%,white);
  box-shadow:none}
.product-art__eyebrow,.product-art__serial,.product-art__value{z-index:1}
.card:hover .product-art__bg,.card:focus-within .product-art__bg,
.card.is-touching .product-art__bg{opacity:.58}
/* перф: фоновые знаки карточек (27 PS-карточек) не дышат и не дрейфуют */
.card .dot-glyph--bg.is-live,.card .dot-glyph--bg.is-live i{animation:none}

/* 2. Баннеры каталогов: точки слетаются в знак при появлении (is-formed
      ставит ui.js через 420 мс); в покое — лёгкая россыпь */
.dot-glyph--banner{opacity:.9}
.dot-glyph--banner i{animation:none}
.dot-glyph--banner.is-formed i{left:var(--tx);top:var(--ty)}

/* 3. PS-логотип выше звезды — коробка под пропорцию знака (зона квадратная) */
.statement-star--ps{aspect-ratio:6/7}

/* 4. Звёздный баннер: телеграм-самолёт из точек — фоновый слой слева,
      за крупной цифрой; собирается при появлении */
.statement-plane{left:0;bottom:auto;right:auto;top:0;width:46%;height:100%;
  z-index:-1;opacity:.58}
.statement-plane i{width:clamp(3px,.5vw,6px);height:clamp(3px,.5vw,6px);
  box-shadow:none}
@media (max-width:640px){
  .statement-plane{width:76%;left:12%;opacity:.34}
}

/* 5. Описания карточек никогда не обрезаются */
.card__desc{display:block;-webkit-line-clamp:unset;line-clamp:unset;
  overflow:visible;max-height:none}

/* 6. Жидкое стекло мелких кнопок: «В корзину», пилюля корзины, сегмент PS —
      по образцу главного CTA (v38) */
.btn.btn--sm,.cart-btn,.ps-seg .ps-seg__btn{
  position:relative;
  background:rgba(0,0,0,.22);
  border-color:rgba(0,0,0,.22);
  backdrop-filter:blur(18px) saturate(170%);
  -webkit-backdrop-filter:blur(18px) saturate(170%);
  box-shadow:inset 0 1px 0 var(--glass-hi),
    inset 0 -12px 24px rgba(0,0,0,.22),
    0 14px 40px rgba(0,0,0,.22)}
.btn.btn--sm::before,.cart-btn::before,.ps-seg .ps-seg__btn::before{
  content:"";position:absolute;inset:-45% -25%;pointer-events:none;
  background:
    radial-gradient(20% 46% at 16% 32%,rgba(0,0,0,.22) 0%,transparent 100%),
    radial-gradient(18% 42% at 84% 74%,color-mix(in srgb,var(--pink) 45%,transparent) 0%,transparent 100%);
  filter:blur(16px);opacity:.5;
  transition:opacity .5s ease,transform .9s var(--ease)}
.btn.btn--sm::after,.cart-btn::after,.ps-seg .ps-seg__btn::after{
  content:"";position:absolute;inset:1px;pointer-events:none;border-radius:inherit;
  background:linear-gradient(180deg,rgba(255,255,255,.14),transparent 34%)}
.cart-btn{overflow:hidden}
.btn.btn--sm:hover,.btn.btn--sm:focus-visible,.cart-btn:hover,
.ps-seg .ps-seg__btn:hover{
  background:rgba(0,0,0,.22);
  border-color:color-mix(in srgb,var(--pink) 45%,transparent)}
.btn.btn--sm:hover::before,.btn.btn--sm:focus-visible::before,
.cart-btn:hover::before,.ps-seg .ps-seg__btn:hover::before{
  opacity:.9;transform:translate3d(4%,-3%,0) scale(1.06)}
.ps-seg .ps-seg__btn{transition:border-color .3s ease,background .3s ease,
  color .3s ease,box-shadow .5s var(--ease)}
.ps-seg .ps-seg__btn.is-active{
  background:color-mix(in srgb,var(--accent) 20%,transparent);
  border-color:color-mix(in srgb,var(--accent) 55%,transparent);
  color:var(--accent);
  box-shadow:inset 0 1px 0 var(--glass-hi),
    0 10px 30px rgba(0,0,0,.22)}
:root[data-theme="light"] .btn.btn--sm,
:root[data-theme="light"] .cart-btn,
:root[data-theme="light"] .ps-seg .ps-seg__btn{
  border-color:rgba(0,0,0,.22);
  box-shadow:inset 0 1px 0 var(--glass-hi),
    0 10px 30px rgba(0,0,0,.22)}

/* 7. FAQ-панель: размеры текста как у карточек; за курсором следит
      tilt-движок (faq-cta в TILT_TARGETS) — CSS-подъём при этом гасим */
.faq-cta__body b{font:750 19px/1.2 var(--f-display);letter-spacing:-.02em}
.faq-cta__body span{font:500 13.5px/1.45 var(--f-body)}
html.motion-tilt .faq-cta{
  transition:border-color .4s ease,background .4s ease,box-shadow .5s var(--ease)}
html.motion-tilt .faq-cta:hover{transform:none}

/* 8. Интро: меньше мыла */
.intro{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}

/* 9. мелкий текст ровнее читается (один размер в своей теме) */
.card__note{font-size:10px}
.notice{font-size:13.5px}

/* ==========================================================================
   v47 — eroot: палитра без лилового (violet/violet-soft), 3D-самолёт
   баннера Premium, PS-знак во весь баннер, текстовые знаки меню и FAQ,
   графики на главной + сдвиг слоёв по направлению курсора
   ========================================================================== */

/* 1. 3D-самолёт: фон баннера Telegram Premium. Настоящий объём —
      perspective + preserve-3d, грани сложены rotateX от «хребта».
      Никаких filter/opacity на 3D-контейнерах: они выпрямляют глубину,
      затенение — градиенты на гранях. Наклон к курсору — переменные
      --ptx/--pty (ставит app.js), покачивание — keyframes только
      transform (history.txt: анимируем лишь transform/opacity). */
.statement-plane3d{position:absolute;inset:0;z-index:0;pointer-events:none;
  perspective:1100px}
.plane3d{position:absolute;left:50%;top:42%;width:min(82%,680px);aspect-ratio:12/5;
  transform:translate(-50%,-50%) rotate(-6deg)
    rotateX(calc(7deg + var(--pty,0deg))) rotateY(calc(var(--ptx,0deg)));
  transition:transform .65s var(--ease)}
.plane3d__model{position:absolute;inset:0;transform-style:preserve-3d;
  animation:plane-bob 9s cubic-bezier(.45,.05,.55,.95) infinite}
.plane3d__model i{position:absolute;display:block}
.plane3d__wing--top{left:6%;top:0;width:88%;height:50%;transform-origin:50% 100%;
  transform:rotateX(52deg);clip-path:polygon(100% 100%,0 0,24% 100%);
  background:linear-gradient(105deg,#ffffff 18%,#ffe3f2 58%,#f7b9db)}
.plane3d__wing--bottom{left:6%;top:50%;width:88%;height:50%;transform-origin:50% 0;
  transform:rotateX(-52deg);clip-path:polygon(100% 0,0 100%,24% 0);
  background:linear-gradient(105deg,#f3cfe7 10%,#d79cc4 72%,#c887b5)}
.plane3d__keel{left:6%;top:50%;width:72%;height:27%;transform-origin:50% 0;
  transform:rotateX(-73deg);clip-path:polygon(100% 0,0 100%,16% 0);
  background:linear-gradient(105deg,#e6b3d4,#c58fb4)}
.plane3d__fin{left:6%;top:14%;width:35%;height:36%;
  clip-path:polygon(0 0,100% 100%,0 100%);
  background:linear-gradient(190deg,#ffffff 8%,#ffd9ef 70%,#f4b9da)}
@keyframes plane-bob{
  0%,100%{transform:translateY(-1.5%) rotateZ(1deg) rotateY(-6deg)}
  50%{transform:translateY(2%) rotateZ(-1.4deg) rotateY(6deg)}}
@media (max-width:619px){
  .plane3d{width:min(88%,340px);top:38%}
}

/* 2. PS-знак во весь баннер PlayStation: полный «отпечаток» знака фоном,
      текст каталога поверх; точки слетаются в знак при появлении */
.statement-star--bleed{left:0;right:0;top:0;bottom:0;width:auto;height:auto;
  aspect-ratio:auto;transform:none;opacity:.5;pointer-events:none}
:root[data-theme="light"] .statement-star--bleed{opacity:.38}

/* 3. Текстовые знаки плиток-категорий: одна типографика, один размер —
      контурная буква цвета раздела, на hover заливается цветом */
.tile__mark{display:flex;align-items:center;height:100%;
  font:800 clamp(56px,6vw,92px)/.8 var(--f-display);letter-spacing:-.05em;
  color:transparent;-webkit-text-stroke:1.5px color-mix(in srgb,var(--art) 75%,transparent);
  transition:color .45s ease,transform .8s var(--ease)}
.tile:hover .tile__mark,.tile:focus-within .tile__mark{color:var(--art);
  transform:translateY(-4px)}
:root[data-theme="light"] .tile__mark{
  -webkit-text-stroke-color:color-mix(in srgb,var(--art) 80%,#241733)}

/* 4. FAQ — текстом, не точками: плашка-знак на панели и метки тем видео */
.faq-cta__mark--text{display:grid;place-items:center;
  border-radius:16px;border:1px solid color-mix(in srgb,var(--art) 42%,transparent);
  background:color-mix(in srgb,var(--art) 10%,transparent);
  color:var(--art);font:800 15px var(--f-display);letter-spacing:.16em;text-indent:.16em;
  transition:background .3s ease,transform .5s var(--ease)}
.faq-cta:hover .faq-cta__mark--text{transform:translateY(-2px);
  background:color-mix(in srgb,var(--art) 18%,transparent)}
.faq-video__tag{position:absolute;left:14px;top:14px;z-index:2;padding:6px 10px;
  border-radius:10px;border:1px solid color-mix(in srgb,var(--art) 45%,transparent);
  background:color-mix(in srgb,var(--art) 12%,transparent);backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  color:var(--art);font:700 9px var(--f-mono);letter-spacing:.16em;text-transform:uppercase}

/* 5. PS-карточки: знак собран всегда (не россыпью) и виден целиком —
      текст значения лишь слегка перекрывает нижний угол */
.product-art--ps .product-art__bg{opacity:.52}
.product-art--ps .product-art__bg i{left:var(--tx);top:var(--ty)}
.card:hover .product-art--ps .product-art__bg,
.card:focus-within .product-art--ps .product-art__bg,
.card.is-touching .product-art--ps .product-art__bg{opacity:.82}

/* 6. Графики: слой svg плавно сдвигается вслед за направлением движения
      курсора (значения ставит charts.js), при покое возвращается в центр */
.chart svg{transition:transform .5s var(--ease)}

@media (prefers-reduced-motion:reduce){
  .plane3d__model{animation:none}
  .plane3d{transition:none}
  .chart svg{transition:none}
  .tile__mark,.faq-cta__mark--text{transition:none}
}

/* ==========================================================================
   v49 — прозрачное жидкое стекло, цвет по смыслу, строгие графики.
   Слой идёт последним и перекрывает v31–v48.
   Правила: стекло = blur + тонкий блик и кант, БЕЗ градиентных заливок;
   градиентного текста нет; графики строгие (прямые углы, без градиентов);
   анимируем только transform/opacity; reduced-motion и reduced-transparency
   уважаются. Цвета: звёзды — голубой, Premium — лавандовый, карты PS — синий,
   PS Plus — свой цвет у каждого уровня (Essential золото / Extra бирюза /
   Deluxe маджента).
   ========================================================================== */

/* 1. Токены ------------------------------------------------------------- */
:root{
  --f-display:"SF Pro Display","Inter Variable","Inter","Segoe UI Variable Display","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Roboto,Arial,sans-serif;
  --f-sans:"SF Pro Text","Inter Variable","Inter","Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Roboto,Arial,sans-serif;
  --f-body:var(--f-sans);
  --f-mono:ui-monospace,"SF Mono","Cascadia Mono","JetBrains Mono",Consolas,Menlo,monospace;

  --glass-fill:rgba(255,255,255,.04);
  --glass-fill-hover:rgba(255,255,255,.06);
  --glass-fill-strong:rgba(22,19,34,.5);
  --glass-edge:rgba(255,255,255,.2);
  --glass-edge-hi:rgba(255,255,255,.5);
  --glass-inner:inset 0 1px 0 rgba(255,255,255,.26),inset 0 -1px 0 rgba(255,255,255,.04),inset 0 0 24px rgba(255,255,255,.02);
  --glass-drop:0 22px 64px rgba(0,0,0,.3),0 2px 10px rgba(0,0,0,.18);
  --glass-blur:blur(26px) saturate(190%) brightness(1.08);
  --glass-glow:rgba(255,255,255,.1);

  --c-stars:#5cc8ff; --c-premium:#b9a4ff; --c-ps:#6f8dff;
  --c-ess:#ffcf3f;   --c-ext:#2dd4bf;     --c-dlx:#e879f9;
  --c-up:#fb7185;    --c-down:#34d399;    --c-flat:#a78bfa;

  --ease-expo:cubic-bezier(.16,1,.3,1);
  --ease-back:cubic-bezier(.34,1.56,.64,1);
  --ease-glass:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
}
:root[data-theme="light"]{
  --glass-fill:rgba(255,255,255,.34);
  --glass-fill-hover:rgba(255,255,255,.52);
  --glass-fill-strong:rgba(255,255,255,.72);
  --glass-edge:rgba(255,255,255,.88);
  --glass-edge-hi:rgba(255,255,255,1);
  --glass-inner:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(23,19,28,.04),inset 0 0 24px rgba(255,255,255,.3);
  --glass-drop:0 22px 56px rgba(22,23,28,.13),0 2px 10px rgba(22,23,28,.06);
  --glass-glow:rgba(255,255,255,.75);
  --c-stars:#1b8fd6; --c-premium:#7c5cf0; --c-ps:#3b5bdb;
  --c-ess:#d99100;   --c-ext:#0f9d8d;     --c-dlx:#b43ad6;
  --c-up:#be185d;    --c-down:#047857;    --c-flat:#6d28d9;  --c-in:#d97706;
}

/* 2. Типографика и ритм ------------------------------------------------- */
body{font-family:var(--f-sans);font-feature-settings:"cv11","ss03";font-synthesis:none;
  text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
h1{font-weight:760;line-height:.96;letter-spacing:-.045em}
h2{font-weight:760;line-height:1.02;letter-spacing:-.04em;padding-bottom:.06em}
h3{font-weight:700;line-height:1.12;letter-spacing:-.022em}
.lede{line-height:1.55;letter-spacing:-.006em;color:var(--text-dim)}
.head{gap:18px}
.head h2{margin:0 0 6px}
.head .lede{margin:0}
.head__top{padding-bottom:14px}
.label,.index{font-family:var(--f-mono);font-weight:600;letter-spacing:.14em;font-size:10.5px}
.price,.product-art__value,.chart-value,.move-row__now,.move-row__delta,.custom-amount__readout{font-variant-numeric:tabular-nums lining-nums}
.card__title{font-weight:680;letter-spacing:-.018em}
.card__desc{line-height:1.5;color:var(--text-dim)}
.hero h1{line-height:.95}
.hero__grid{margin-top:clamp(34px,6vw,76px)}
.section + .section{padding-top:clamp(40px,6vw,96px)}

/* 3. Стекло: один рецепт без градиентных заливок ------------------------ */
.card,.tile,.notice,.custom-amount,.summary,.form-block,.chart,.showcase-banner,
.psplus-perks,.product-projection,.faq-cta,.seg,.charts-tools__group,.pagelinks a,
.modal,.toast,.empty,.refs-list,.how-steps li,.faq__item,.tier-column{
  background:var(--glass-fill);background-image:none;
  border:1px solid var(--glass-edge);
  box-shadow:var(--glass-inner),var(--glass-drop);
  -webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
}
.card:hover,.card:focus-within,.card.is-touching,.tile:hover,.tile:focus-within,.tile.is-touching,
.faq-cta:hover,.product-projection__item:hover{
  background:var(--glass-fill-hover);background-image:none;
  border-color:var(--glass-edge-hi);
  box-shadow:var(--glass-inner),0 30px 84px rgba(0,0,0,.34)}
:root[data-theme="light"] .card:hover,:root[data-theme="light"] .tile:hover,
:root[data-theme="light"] .card:focus-within{box-shadow:var(--glass-inner),0 28px 70px rgba(91,33,182,.14)}

/* блик под курсором — единственный «градиент»: свет на стекле */
.card::after,.tile::after,.showcase-banner::after,.chart::after{
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;z-index:2;
  background:radial-gradient(280px circle at var(--lx,50%) var(--ly,0%),var(--glass-glow),transparent 64%);
  opacity:0;transition:opacity .5s var(--ease-glass)}
.card:hover::after,.tile:hover::after,.showcase-banner:hover::after,.chart:hover::after,
.card.is-touching::after,.tile.is-touching::after{opacity:1}
.chart,.showcase-banner{position:relative}

/* шапка: стекло без линии-градиента */
.header{
  background:rgba(7,7,10,.2);background-image:none;
  -webkit-backdrop-filter:blur(26px) saturate(190%);backdrop-filter:blur(26px) saturate(190%);
  border-bottom:1px solid var(--glass-edge);
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.04),0 10px 40px rgba(0,0,0,.14)}
.header::after{content:none}
:root[data-theme="light"] .header{background:rgba(255,255,255,.4);box-shadow:inset 0 -1px 0 rgba(255,255,255,.8),0 10px 30px rgba(22,23,28,.07)}

/* фон страницы: аврора-градиенты убраны — свет даёт canvas с огоньками */
body::before,body::after{content:none!important;background:none!important}

/* 4. Кнопки: прозрачные капсулы, цвет — кант и свет под стеклом -------- */
.btn,.btn--solid,.btn--grad,.btn.btn--sm,.cart-btn,.account-btn,.theme-toggle{
  background:var(--glass-fill);background-image:none;
  border:1px solid var(--glass-edge);color:var(--text);
  box-shadow:var(--glass-inner),0 10px 28px rgba(0,0,0,.16);
  -webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%)}
.btn::before,.btn::after,.btn--solid::before,.btn--solid::after,.btn--grad::before,.btn--grad::after,
.btn.btn--sm::before,.btn.btn--sm::after,.cart-btn::before,.cart-btn::after,
.ps-seg .ps-seg__btn::before,.ps-seg .ps-seg__btn::after{content:none;background:none}
.btn:hover,.btn:focus-visible,.cart-btn:hover,.account-btn:hover,.theme-toggle:hover{
  background:var(--glass-fill-hover);background-image:none;border-color:var(--glass-edge-hi)}
.btn--solid,.btn--grad{
  border-color:color-mix(in srgb,var(--accent) 62%,transparent);
  background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--text);
  box-shadow:var(--glass-inner),0 12px 34px rgba(0,0,0,.22)}
.btn--solid:hover,.btn--grad:hover{background:color-mix(in srgb,var(--accent) 24%,transparent);
  border-color:color-mix(in srgb,var(--accent) 82%,transparent);color:var(--text)}
.btn[disabled]{opacity:.42}
.badge,.badge--best{background:color-mix(in srgb,var(--accent) 16%,transparent);background-image:none;
  border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);color:var(--text);box-shadow:none}

/* 5. Градиентный текст -> сплошной цвет --------------------------------- */
.card .price,.pay-total b,.partner-head__name,.psplus-perks b,.showcase-banner__big,.product-art__value,
.intro__label b{background:none!important;-webkit-text-fill-color:currentColor!important;color:var(--text)}
.card .price{color:var(--pc,var(--text))}
.pay-total b,.partner-head__name{color:var(--accent)}

/* 6. Цвет товаров ------------------------------------------------------- */
.product-art--stars,.showcase-banner--stars{--pa:var(--c-stars);--sa:var(--c-stars)}
.product-art--premium,.showcase-banner--premium{--pa:var(--c-premium);--sa:var(--c-premium)}
.product-art--giftcard,.product-art--ps,.showcase-banner--ps{--pa:var(--c-ps);--sa:var(--c-ps)}
.product-art--subscription.product-art--ess,.showcase-banner--psplus[data-tier="ess"],.psplus-perks[data-tier="ess"]{--pa:var(--c-ess);--sa:var(--c-ess)}
.product-art--subscription.product-art--ext,.showcase-banner--psplus[data-tier="ext"],.psplus-perks[data-tier="ext"]{--pa:var(--c-ext);--sa:var(--c-ext)}
.product-art--subscription.product-art--dlx,.showcase-banner--psplus[data-tier="dlx"],.psplus-perks[data-tier="dlx"]{--pa:var(--c-dlx);--sa:var(--c-dlx)}
.showcase-banner--psplus{--sa:var(--c-ess)}
.card--stars{--pc:var(--c-stars)} .card--premium{--pc:var(--c-premium)}
.card--giftcard{--pc:var(--c-ps)}
.card--subscription{--pc:var(--pa,var(--c-ess))}
.card--tier-ess{--pc:var(--c-ess)} .card--tier-ext{--pc:var(--c-ext)} .card--tier-dlx{--pc:var(--c-dlx)}
.product-art{
  background:color-mix(in srgb,var(--pa,var(--accent)) 8%,transparent);background-image:none;
  border-bottom:1px solid var(--glass-edge);box-shadow:inset 0 -1px 0 rgba(255,255,255,.04)}
.product-art::before,.product-art::after,.product-art__orb{content:none;background:none;display:none}
.product-art__value{color:var(--pa,var(--text));text-shadow:0 2px 20px color-mix(in srgb,var(--pa,#000) 40%,transparent);filter:brightness(1.12)}
.product-art__eyebrow{color:color-mix(in srgb,var(--pa,var(--text)) 72%,var(--text-mute))}
.product-art__serial{display:none}
.badge--best{--accent:var(--pa,var(--accent))}

/* 7. Баннер-витрина раздела ------------------------------------------- */
.showcase-banner{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;isolation:isolate;
  gap:clamp(12px,3vw,44px);min-height:clamp(270px,30vw,430px);
  margin:0 0 32px;padding:clamp(24px,3.6vw,52px);border-radius:var(--radius-xl);overflow:hidden}
.showcase-banner::before{content:none}
.showcase-banner__art{position:relative;inset:auto;order:2;width:100%;height:clamp(230px,27vw,380px);z-index:1}
.showcase-banner__body{position:relative;z-index:3;order:1;display:grid;gap:18px;align-content:center;min-width:0}
.showcase-banner__eyebrow{font:650 10.5px/1.3 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--text-mute)}
.showcase-banner__big{display:block;font:760 clamp(44px,7vw,104px)/.95 var(--f-display);letter-spacing:-.05em;
  color:var(--sa,var(--accent));padding-bottom:.08em;overflow-wrap:normal;word-break:keep-all}
.showcase-banner__caption{font:600 10.5px/1.5 var(--f-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim)}
.showcase-banner .statement-chip{
  background:color-mix(in srgb,var(--sa,var(--accent)) 12%,transparent);background-image:none;
  border:1px solid color-mix(in srgb,var(--sa,var(--accent)) 45%,transparent);color:var(--text);
  box-shadow:var(--glass-inner)}
@media (max-width:719px){
  .showcase-banner{grid-template-columns:1fr;gap:6px;min-height:0;padding:20px 20px 26px}
  .showcase-banner__art{order:0;height:230px}
  .showcase-banner__big{font-size:clamp(40px,13vw,62px)}
}

/* 8. «Что можно купить» ------------------------------------------------ */
.products-head .product-projection--4{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px;border-radius:var(--radius-lg)}
.product-projection--4 .product-projection__item{display:block;position:relative;min-height:clamp(120px,12vw,170px);border-radius:18px;
  background:transparent;background-image:none;border:1px solid var(--glass-edge);
  box-shadow:var(--glass-inner);color:inherit;overflow:hidden}
.product-projection--4 .product-projection__item small{position:absolute;left:14px;bottom:11px;z-index:2;
  font:650 9.5px var(--f-mono);letter-spacing:.16em;color:var(--text-dim)}
.product-projection--4 .dot-glyph--projection{position:absolute;inset:6px 6px 26px;width:auto;height:auto}

/* 9. Переключатели PS Plus и ссылки между разделами ------------------- */
.psplus-controls{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 14px}
.seg{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;padding:4px;border-radius:99px}
.seg__label{padding:0 10px 0 14px;font:650 9.5px/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-mute)}
.seg__btn{position:relative;min-height:38px;padding:0 17px;border:1px solid transparent;border-radius:99px;
  background:transparent;color:var(--text-dim);cursor:pointer;
  font:650 10.5px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;
  transition:color .25s var(--ease-glass),background .35s var(--ease-glass),border-color .35s,box-shadow .45s var(--ease-glass)}
.seg__btn:hover{color:var(--text)}
.seg__btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.seg__btn.is-active{color:var(--text);background:color-mix(in srgb,var(--accent) 22%,transparent);background-image:none;
  border-color:color-mix(in srgb,var(--accent) 60%,transparent);box-shadow:var(--glass-inner)}
.seg__btn[data-tier="ess"].is-active{--accent:var(--c-ess)}
.seg__btn[data-tier="ext"].is-active{--accent:var(--c-ext)}
.seg__btn[data-tier="dlx"].is-active{--accent:var(--c-dlx)}
.psplus-perks{display:grid;gap:5px;margin:0 0 24px;padding:15px 20px;border-radius:var(--radius)}
.psplus-perks b{font:700 16px/1.2 var(--f-display);letter-spacing:-.018em;color:var(--sa,var(--c-ess))}
.psplus-perks span{font-size:13.5px;line-height:1.5;color:var(--text-dim)}
.pagelinks{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 30px}
.pagelinks a{display:inline-flex;align-items:center;gap:9px;min-height:40px;padding:0 18px;border-radius:99px;
  font:650 10.5px/1 var(--f-mono);letter-spacing:.13em;text-transform:uppercase;color:var(--text-dim);
  transition:color .25s,background .35s var(--ease-glass),border-color .3s}
.pagelinks a:hover{color:var(--text);background:var(--glass-fill-hover);border-color:var(--glass-edge-hi)}
.pagelinks a.is-current{color:var(--text);border-color:color-mix(in srgb,var(--accent) 60%,transparent);
  background:color-mix(in srgb,var(--accent) 16%,transparent)}
@media (max-width:619px){
  .psplus-controls{display:grid}
  .seg{border-radius:20px}
  .seg__label{width:100%;padding:7px 12px 2px}
  .seg__btn{flex:1;padding:0 10px;min-height:40px}
}

/* 10. Графики: строгие, без градиентов и закруглений ------------------- */
.chart{padding:22px;border-radius:var(--radius);color:var(--text)}
.chart__title{color:var(--text);font-weight:700;letter-spacing:-.015em}
.chart__note,.chart__legend{color:var(--text-mute)}
.chart svg{overflow:visible;shape-rendering:geometricPrecision}
.chart-label{fill:var(--text-mute);font-family:var(--f-mono)}
.chart-value{fill:var(--text);font-family:var(--f-mono);font-weight:650}
.chart-grid,.chart-grid line,line.chart-grid{stroke:color-mix(in srgb,var(--tone,var(--text)) 9%,transparent);stroke-width:1;shape-rendering:crispEdges}
.chart-bar{fill:var(--bar,var(--c-flat));fill-opacity:.3;stroke:none;
  shape-rendering:geometricPrecision;
  transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(0);cursor:pointer;
  transition:filter .25s var(--ease-glass)}
/* v52.4: контур у точечных столбиков убран — рамка съедала точки по краям;
   наведение — яркость, не «мыло» */
.chart-bar:hover{filter:brightness(1.22)}
/* у каждого столбика своя анимация: четыре характера роста, свой срок,
   своя задержка; после роста — тихое «дыхание» (idle) со своим периодом */
.chart.is-live .chart-bar--v0{animation:bar-grow var(--bd,.7s) var(--ease-expo) var(--bl,0s) both,
  bar-idle var(--bi,3.4s) ease-in-out calc(var(--bl,0s) + var(--bd,.7s)) infinite}
.chart.is-live .chart-bar--v1{animation:bar-spring var(--bd,.7s) cubic-bezier(.3,1.4,.5,1) var(--bl,0s) both,
  bar-idle var(--bi,3.4s) ease-in-out calc(var(--bl,0s) + var(--bd,.7s)) infinite}
.chart.is-live .chart-bar--v2{animation:bar-steps var(--bd,.7s) steps(7,end) var(--bl,0s) both,
  bar-idle var(--bi,3.4s) ease-in-out calc(var(--bl,0s) + var(--bd,.7s)) infinite}
.chart.is-live .chart-bar--v3{animation:bar-rise var(--bd,.7s) var(--ease-expo) var(--bl,0s) both,
  bar-idle var(--bi,3.4s) ease-in-out calc(var(--bl,0s) + var(--bd,.7s)) infinite}
@keyframes bar-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes bar-spring{0%{transform:scaleY(0)}58%{transform:scaleY(1.1)}78%{transform:scaleY(.96)}100%{transform:scaleY(1)}}
@keyframes bar-steps{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes bar-rise{0%{transform:translateY(34px) scaleY(.15);opacity:0}100%{transform:translateY(0) scaleY(1);opacity:1}}
@keyframes bar-idle{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.972)}}
/* v52.3: точки внутри столбика «кипят» — плавное мерцание яркости, не синхронно,
   а с фазами из --bp (у каждого столбика своя фаза дыхания) */
.chart.is-live .dotpat{animation:dot-simmer var(--bi,3.4s) ease-in-out var(--bp,0s) infinite}
@keyframes dot-simmer{0%,100%{opacity:1}50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){
  .chart.is-live .dotpat{animation:none}
}
.chart-value{opacity:0;transition:opacity .4s var(--ease-glass) calc(var(--bl,0s) + .5s)}
.chart.is-live .chart-value{opacity:1}
.charts.no-anim .chart-bar,.charts.no-anim .chart-bar.is-idle{animation:none!important;transform:none!important;opacity:1!important}
.charts.no-anim .chart-value{opacity:1;transition:none}

.chart-line__path{fill:none;stroke:var(--line-c,var(--c-flat));stroke-width:2.2;stroke-linejoin:miter;stroke-linecap:butt;vector-effect:non-scaling-stroke}
.chart-line__area{fill:var(--line-c,var(--c-flat));fill-opacity:.1;stroke:none}
.chart-line__dot{fill:var(--bg);stroke:var(--line-c,var(--c-flat));stroke-width:1.6;vector-effect:non-scaling-stroke}
.chart-chase{opacity:0;transition:opacity .3s}
.chart.is-live .chart-chase{opacity:1}
.chase__line{stroke:color-mix(in srgb,var(--line-c,var(--c-flat)) 55%,transparent);stroke-width:1;stroke-dasharray:2 4;shape-rendering:crispEdges}
.chase__trail{fill:var(--line-c,var(--c-flat))}
.chase__ring{fill:none;stroke:var(--line-c,var(--c-flat));stroke-width:1.4}
.chase__dot{fill:var(--line-c,var(--c-flat));stroke:var(--text);stroke-width:1.5}
.chase__val{fill:var(--text);font:700 10.5px var(--f-mono);text-anchor:middle;paint-order:stroke;stroke:color-mix(in srgb,var(--bg) 70%,transparent);stroke-width:4px;stroke-linejoin:miter}

.charts--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.charts--moves{display:block;margin:0 0 16px}
.moves{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}
.move-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 112px auto;
  grid-template-areas:"name spark now" "delta spark now";align-items:center;gap:4px 16px;
  padding:14px 16px;border:1px solid var(--glass-edge);background:var(--glass-fill);background-image:none;
  box-shadow:var(--glass-inner);border-radius:0}
.move-row__name{grid-area:name;font:650 13px/1.3 var(--f-sans);letter-spacing:-.01em;color:var(--text)}
.move-row__spark{grid-area:spark;width:112px;height:36px;overflow:visible}
.move-row__spark path{stroke-linejoin:miter;stroke-linecap:butt}
.move-row__spark .move-row__fill{fill-opacity:.12;stroke:none}
.move-row__now{grid-area:now;font:720 15px/1 var(--f-display);letter-spacing:-.02em;white-space:nowrap;text-align:right;color:var(--text)}
.move-row__delta{grid-area:delta;display:inline-flex;align-items:baseline;gap:6px;justify-self:start;
  padding:3px 9px;font:650 10.5px/1.3 var(--f-mono);letter-spacing:.05em;color:var(--text-mute);
  background:color-mix(in srgb,var(--tone,var(--text)) 5%,transparent);background-image:none;border-radius:0}
.move-row__delta small{font-size:9px;text-transform:uppercase;letter-spacing:.1em;opacity:.85}
.move-row[data-trend="down"]{--mc:var(--c-down)}
.move-row[data-trend="up"]{--mc:var(--c-up)}
.move-row[data-trend="flat"]{--mc:var(--c-flat)}
.move-row[data-trend] .move-row__delta{color:var(--mc);background:color-mix(in srgb,var(--mc) 14%,transparent)}
.move-row[data-trend] .move-row__line{stroke:var(--mc)}
.move-row[data-trend] .move-row__fill{fill:var(--mc)}
.move-row[data-trend] .move-row__end{fill:var(--mc)}
.move-row__line{fill:none;stroke-width:2.2;stroke-dasharray:240;stroke-dashoffset:240;transition:stroke-dashoffset 1.1s var(--ease-expo)}
.chart.is-live .move-row__line{stroke-dashoffset:0}
.move-row__end{opacity:0;transition:opacity .4s ease .9s}
.chart.is-live .move-row__end{opacity:1;animation:end-pulse 2.6s ease-in-out 1.4s infinite}
@keyframes end-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.5)}}
.move-row__end{transform-box:fill-box;transform-origin:center}
.charts-tools__group{padding:3px;border-radius:0}
.charts-tools__group button,.charts-tools__toggle{color:var(--text-dim);background:none;background-image:none;border-radius:0}
.charts-tools__group button.is-active,.charts-tools__toggle.is-active{
  color:var(--text);background:color-mix(in srgb,var(--accent) 24%,transparent);background-image:none;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.22)}
.charts-tools__toggle{border:1px solid var(--glass-edge);padding:7px 13px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
@media (max-width:1100px){.charts--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:619px){
  .charts--3,.moves{grid-template-columns:1fr}
  .move-row{grid-template-columns:minmax(0,1fr) 86px auto;padding:12px;gap:4px 10px}
  .move-row__spark{width:86px}
}

/* 11. Меню: единые размеры, без точек-маркеров -------------------------- */
.footer__tg::before,.nav__drop a::before,.nav a::after,.nav__label::after,.tile__go::before{content:none!important;display:none!important}
.nav a,.nav__label{font-family:var(--f-mono)}
.nav__drop{background:var(--glass-fill-strong);background-image:none;border:1px solid var(--glass-edge);
  box-shadow:var(--glass-inner),var(--glass-drop);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:18px}
.nav__drop a{display:block;padding:12px 16px;border-radius:12px;font:650 11px/1.3 var(--f-mono);letter-spacing:.08em}
.nav a.is-active,.nav__label.is-active{color:var(--accent)}
.nav__drop a.is-active{color:var(--text);background:color-mix(in srgb,var(--accent) 14%,transparent)}
.footer__tg{margin:6px 0 4px;gap:0;color:var(--accent)}
@media (max-width:899px){
  .nav{background:var(--glass-fill-strong);background-image:none;border:1px solid var(--glass-edge);
    box-shadow:var(--glass-inner),0 30px 90px rgba(0,0,0,.4);
    -webkit-backdrop-filter:blur(30px) saturate(190%);backdrop-filter:blur(30px) saturate(190%);padding:10px 14px 12px;border-radius:26px}
  .nav > a,.nav__label{display:flex;align-items:center;justify-content:space-between;width:100%;box-sizing:border-box;
    padding:15px 8px;font:650 17px/1.2 var(--f-display);letter-spacing:-.012em;text-transform:none;color:var(--text);
    border-radius:0;border-top:1px solid var(--glass-edge)}
  .nav > a:first-child,.nav__group:first-child .nav__label{border-top:0}
  .nav__group{display:block;border-top:0}
  .nav__group + a,.nav a + .nav__group .nav__label,.nav__group + .nav__group .nav__label{border-top:1px solid var(--glass-edge)}
  .nav__label span{font:inherit}
  .nav__label i{width:9px;height:9px;border-width:2px}
  .nav__drop{background:none;border:0;box-shadow:none;border-radius:0;padding:0;-webkit-backdrop-filter:none;backdrop-filter:none}
  .nav__group.is-open .nav__drop{margin:0 0 6px}
  .nav__drop a{padding:12px 8px 12px 22px;font:600 15.5px/1.25 var(--f-sans);letter-spacing:0;text-transform:none;color:var(--text-dim);border-radius:0}
  .nav__drop a.is-active{background:none;color:var(--accent)}
  .nav a.is-active,.nav__label.is-active{color:var(--accent)}
}

/* 12. Интро и переход по логотипу -------------------------------------- */
.intro{display:block;place-content:normal;padding:0;gap:0;cursor:pointer;animation:intro-in .28s var(--ease-glass) both}
.intro__canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.intro__caption{position:absolute;left:0;right:0;top:var(--cap-top,64%);display:grid;justify-items:center;pointer-events:none}
.intro__label{grid-area:1/1;display:grid;justify-items:center;gap:9px;text-align:center;padding:0 18px;
  opacity:0;transform:translate3d(0,14px,0) scale(.96);
  transition:opacity .26s var(--ease-glass),transform .55s var(--ease-back)}
.intro__label.is-on{opacity:1;transform:none}
.intro__label b{font:760 clamp(24px,4.4vw,38px)/1.05 var(--f-display);letter-spacing:-.035em}
.intro__label i{font:650 10.5px/1.4 var(--f-mono);font-style:normal;letter-spacing:.18em;text-transform:uppercase;color:var(--text-mute)}
.intro__pips{position:absolute;left:50%;bottom:max(30px,calc(env(safe-area-inset-bottom) + 18px));transform:translateX(-50%);display:flex;gap:8px}
.intro__pips i{width:26px;height:4px;transition:background .3s var(--ease-glass),transform .45s var(--ease-back)}
.intro__pips i.is-on{transform:scaleY(1.25)}
.intro.is-leaving{animation:intro-out .42s var(--ease-glass) both;pointer-events:none}
.intro{background:color-mix(in srgb,var(--bg) 90%,transparent);background-image:none;
  -webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%)}
.intro__label b{color:var(--ic,var(--text))}
.intro__label[data-step="0"]{--ic:var(--c-stars)}
.intro__label[data-step="1"]{--ic:var(--c-premium)}
.intro__label[data-step="2"]{--ic:var(--c-ps)}
.intro__label[data-step="3"]{--ic:var(--c-ess)}
.intro__pips i{background:color-mix(in srgb,var(--tone,var(--text)) 16%,transparent);background-image:none;border-radius:0}
.intro__pips i.is-on{background:var(--accent);background-image:none}
.page-veil{position:fixed;inset:0;z-index:1500;pointer-events:none;opacity:0;
  background:color-mix(in srgb,var(--bg) 82%,transparent);
  -webkit-backdrop-filter:blur(18px) saturate(170%);backdrop-filter:blur(18px) saturate(170%);
  transition:opacity .24s var(--ease-glass)}
.page-veil.is-on{opacity:1;pointer-events:auto}

/* 13. Полёт товара в корзину ------------------------------------------- */
.fly-chip{position:fixed;left:0;top:0;z-index:2000;pointer-events:none;width:48px;height:48px;border-radius:15px;
  display:grid;place-items:center;font:800 16px/1 var(--f-display);color:var(--fc,#fff);will-change:transform,opacity;
  background:color-mix(in srgb,var(--fc,#fff) 16%,transparent);background-image:none;
  border:1px solid color-mix(in srgb,var(--fc,#fff) 55%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 10px 30px color-mix(in srgb,var(--fc,#fff) 38%,transparent);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.fly-spark{position:fixed;left:0;top:0;z-index:1999;pointer-events:none;width:5px;height:5px;border-radius:50%;
  background:var(--fc,#fff);box-shadow:none;will-change:transform,opacity}
.cart-btn.is-bumped{animation:cart-bump .66s var(--ease-back),cart-ring .8s var(--ease-glass)}
@keyframes cart-ring{from{box-shadow:var(--glass-inner)}
  to{box-shadow:var(--glass-inner),0 0 0 18px transparent}}
.cart-btn__count.is-tick{animation:count-tick .5s var(--ease-back)}
@keyframes count-tick{0%{transform:translateY(0)}35%{transform:translateY(-9px);opacity:0}36%{transform:translateY(9px)}100%{transform:translateY(0);opacity:1}}

/* 14. Разное ----------------------------------------------------------- */
.dot-glyph{opacity:1;animation:none}
.dot-glyph i{display:none}
.dot-glyph__canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.dot-glyph--static{position:relative;inset:auto;display:inline-block}
.product-art .dot-glyph--bg{inset:0;z-index:0}
.card .product-art{min-height:204px}
.product-art--ps .product-art__bg,.card:hover .product-art--ps .product-art__bg,
.card:focus-within .product-art--ps .product-art__bg,.card.is-touching .product-art--ps .product-art__bg{opacity:1}
html.telegram-mini-app .hero__chip{display:none}
.account-banner{display:grid;gap:14px;padding:22px;border-radius:var(--radius)}

/* 15. Узкие экраны ------------------------------------------------------ */
@media (max-width:619px){
  .product-art__value{font-size:clamp(22px,7.2vw,32px);right:12px;bottom:12px}
  .product-art__eyebrow{left:12px;top:12px;right:12px;font-size:8px}
  .card .product-art{min-height:158px}
  .product-art__eyebrow{display:none}
  .card__foot .btn{white-space:nowrap;flex:1 1 auto}
  .product-projection--4 .product-projection__item{min-height:142px}
  .grid > .tile--cat{grid-column:1/-1;min-height:0;padding:22px 20px}
  .tile--cat h3{font-size:clamp(22px,7vw,28px)}
  .tile--cat p{padding-right:46px}
  .head h2{font-size:clamp(34px,10.5vw,54px)}
}
@media (max-width:899px){
  .card,.tile,.notice,.custom-amount,.summary,.form-block,.chart,.showcase-banner,
  .psplus-perks,.product-projection,.faq-cta,.seg,.charts-tools__group,.pagelinks a{
    -webkit-backdrop-filter:blur(16px) saturate(175%);backdrop-filter:blur(16px) saturate(175%)}
}

/* 16. Доступность -------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  .intro,.page-veil{display:none!important}
  .chart-bar{transform:none!important;animation:none!important}
  .chart-value,.chart-chase,.move-row__end{opacity:1;transition:none;animation:none}
  .move-row__line{stroke-dashoffset:0;transition:none}
  .fly-chip,.fly-spark{display:none}
}
@media (prefers-reduced-transparency:reduce){
  .card,.tile,.notice,.custom-amount,.summary,.form-block,.chart,.showcase-banner,.psplus-perks,
  .product-projection,.faq-cta,.seg,.charts-tools__group,.pagelinks a,.header,.modal,.toast,.nav,.nav__drop{
    background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* легенда графиков: квадратик цвета серии, строгие углы */
.legend-sq{display:inline-block;width:10px;height:10px;margin:0 7px 0 0;vertical-align:-1px;
  background:color-mix(in srgb,var(--lc) 32%,transparent);border:1.5px solid var(--lc)}
.legend-sq--dash{border-style:dashed}
.charts--1{grid-template-columns:1fr}

/* v49.1: переключатель темы — круглая стеклянная кнопка; активные пункты меню без сдвига */
.theme-toggle{border-radius:99px}
.nav__drop a:hover,.nav__drop a.is-active{transform:none}

/* v49.2: отступы и наложения (аудит overlap) */
.hero h1{line-height:1.08}
.hero h1 .line{padding-bottom:.05em}
.custom-amount__readout{gap:6px;align-content:end}
.custom-amount__price{line-height:1.08;padding:2px 0 4px;display:block}
.custom-amount__readout .label,.custom-amount__readout .index{display:block;line-height:1.4}
.custom-amount__head h3,.custom-amount__head p{margin:0}
.custom-amount__head{align-items:flex-start;margin-bottom:8px}
.tile--cat h3{margin-top:6px}
.faq{display:grid;gap:12px;margin-bottom:clamp(48px,7vw,96px)}
.faq__item p{padding:0 22px 18px;line-height:1.55;color:var(--text-dim)}
.faq__item summary::after{border-radius:0;width:28px;height:28px}
.faq-videos{gap:14px;margin-bottom:28px}
.faq-video{justify-content:flex-end;gap:6px;min-height:150px;padding:16px;
  background:var(--glass-fill);background-image:none;border:1px solid var(--glass-edge);
  box-shadow:var(--glass-inner),var(--glass-drop)}
.faq-video .faq-video__tag{position:absolute;left:14px;top:14px;border-radius:0}
.faq-video .faq-video__soon{position:absolute;right:14px;top:14px;border-radius:0;
  background:color-mix(in srgb,var(--accent) 16%,transparent);background-image:none;
  border:1px solid color-mix(in srgb,var(--accent) 45%,transparent)}
.faq-video b{font:700 15px/1.25 var(--f-display);letter-spacing:-.015em}
.faq-video > span:not(.faq-video__tag):not(.faq-video__soon){position:relative}
.head{margin-bottom:clamp(28px,5vw,64px)}
.head--compact{margin-top:clamp(44px,7vw,84px)}
.notice{margin-top:6px}
.faq-videos{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr))!important}
.faq-video{min-width:0}
.faq-video b,.faq-video > span{overflow-wrap:anywhere}

/* коды PS-заказов в профиле */
.order-code{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}
.order-code code{padding:3px 9px;border:1px solid var(--glass-edge);background:var(--glass-fill);font:650 12.5px var(--f-mono);letter-spacing:.04em}

/* ==========================================================================
   v50 — стекло в духе iOS 26, пружины, меньше фиолетового, без «мыла».
   Слой последний и перекрывает v31–v49.
   • Стекло: лёгкое размытие (12px), тонкий кант и блик по верхне-левому
     ребру, мягкая внутренняя подсветка; никаких больших цветных теней.
   • Пружины: --spr (≈10% перелёт), --spr-soft (панели), --spr-pop (кнопки,
     ползунки) — CSS linear() из затухающей пружины; на старых WebView
     откат на cubic-bezier.
   • Цвет интерфейса — холодный белый; фиолетовый остался знаком бренда
     (первая строка героя, логотип) и цветом Premium-лаванды.
   • «Мыло» убрано: гигантские размытые пятна, свечение текста, цветные
     ореолы под кнопками, тяжёлый blur(26–30px).
   • Касание пальцем не включает свет на карточках (только пружинный отклик).
   ========================================================================== */

/* 1. Токены ------------------------------------------------------------- */
:root{
  --spr:cubic-bezier(.34,1.45,.55,1);
  --spr-soft:cubic-bezier(.3,1.2,.5,1);
  --spr-pop:cubic-bezier(.3,1.7,.5,1);

  --brand:#8b5cf6;
  /* фиолетовая шкала теперь холодная серо-синяя: старые свечения и канты на ней
     перестают быть фиолетовыми, бренд-фиолетовый — только --brand */
  --violet:#a8b4d8;--violet-soft:#c3cdea;--violet-deep:#5d6a96;--pink:#d6dcf2;
  --accent:#e6eaf6;--accent-hard:#fff;--accent-soft:rgba(230,234,246,.12);
  --dot:178,192,224;--dot-accent:228,234,250;
  --c-flat:#9aa6c4;

  --glass-fill:rgba(255,255,255,.07);
  --glass-fill-hover:rgba(255,255,255,.115);
  --glass-strong:rgba(22,24,32,.74);
  --glass-edge:rgba(255,255,255,.15);
  --glass-edge-hi:rgba(255,255,255,.36);
  --glass-inner:inset 1px 1px 0 rgba(255,255,255,.5),inset -1px -1px 0 rgba(255,255,255,.16),inset 0 0 18px rgba(255,255,255,.05);
  --glass-drop:0 8px 26px rgba(0,0,0,.28);
  --glass-blur:blur(12px) saturate(170%);
  --glass-glow:rgba(255,255,255,.08);
}
@supports (transition-timing-function:linear(0,1)){
  :root{
    --spr:linear(0,.0479,.1662,.3219,.489,.6488,.7894,.9041,.9909,1.0509,1.0871,1.104,1.1062,1.0981,1.0837,1.0664,1.0486,1.0322,1.018,1.0068,.9985,.993,.9899,.9887,.9889,.99,.9917,.9936,.9954,.9971,.9985,.9996,1.0004,1.0009,1.0011,1.0012,1.0012,1.001,1);
    --spr-soft:linear(0,.0583,.1907,.3501,.5077,.6475,.7626,.8517,.9169,.962,.991,1.0081,1.0168,1.0198,1.0193,1.0171,1.014,1.0108,1.0079,1.0054,1.0035,1.002,1.001,1.0003,.9999,.9997,.9996,.9996,.9996,.9997,1);
    --spr-pop:linear(0,.0449,.1616,.3233,.5058,.6884,.8555,.9963,1.1047,1.179,1.2206,1.2336,1.2235,1.1965,1.1589,1.1163,1.0736,1.0344,1.0014,.9759,.9584,.9486,.9454,.9477,.9539,.9627,.9726,.9826,.9918,.9995,1.0055,1.0097,1.012,1.0128,1.0122,1.0108,1.0088,1.0064,1.0041,1.002,1.0001,.9987,.9978,.9972,1);
  }
}
:root[data-theme="light"]{
  --violet:#5d6a96;--violet-soft:#7b88b4;--violet-deep:#3b4670;--pink:#8f9bc4;
  --accent:#27304a;--accent-hard:#161c30;--accent-soft:rgba(39,48,74,.08);
  --dot:70,84,120;--dot-accent:30,42,80;
  --c-flat:#56638a;
  --glass-fill:rgba(255,255,255,.46);
  --glass-fill-hover:rgba(255,255,255,.64);
  --glass-strong:rgba(255,255,255,.82);
  --glass-edge:rgba(255,255,255,.92);
  --glass-edge-hi:#fff;
  --glass-inner:inset 1px 1px 0 rgba(255,255,255,.98),inset -1px -1px 0 rgba(255,255,255,.55),inset 0 0 18px rgba(255,255,255,.35);
  --glass-drop:0 0 0 1px rgba(39,48,74,.07),0 8px 26px rgba(40,50,80,.12);
  --glass-blur:blur(12px) saturate(160%);
  --glass-glow:rgba(255,255,255,.7);
}

/* 2. Стекло без «мыла» -------------------------------------------------- */
.hero h1 .line:first-child{color:var(--brand)}
.btn.btn--grad::before,.btn.btn--grad::after,.btn.btn--solid::before,.btn.btn--solid::after{content:none;background:none}
.btn.btn--grad,.btn.btn--solid{
  border-color:color-mix(in srgb,var(--accent) 55%,transparent);color:var(--text);
  background:color-mix(in srgb,var(--accent) 12%,transparent);background-image:none;
  box-shadow:var(--glass-inner),0 6px 18px rgba(0,0,0,.22)}
.btn.btn--grad:hover,.btn.btn--grad:focus-visible,.btn.btn--solid:hover,.btn.btn--solid:focus-visible,
:root[data-theme="light"] .btn.btn--solid:hover,:root[data-theme="light"] .btn.btn--solid:focus-visible{
  background:color-mix(in srgb,var(--accent) 20%,transparent);
  border-color:color-mix(in srgb,var(--accent) 78%,transparent);
  box-shadow:var(--glass-inner),0 8px 22px rgba(0,0,0,.26)}
:root[data-theme="light"] .btn.btn--grad,:root[data-theme="light"] .btn.btn--solid{
  color:var(--text);box-shadow:var(--glass-inner),0 0 0 1px rgba(39,48,74,.08),0 6px 18px rgba(40,50,80,.12)}
.badge--best,.badge{box-shadow:none}
.pay-total,.pay-total b,.partner-head__name{background-image:none}
.how-steps li::before{background:var(--glass-fill);background-image:none;border:1px solid var(--glass-edge);color:var(--text)}

.card:hover,.card:focus-within,.card.is-touching,.tile:hover,.tile:focus-within,.tile.is-touching,
.faq-cta:hover,.product-projection__item:hover{
  box-shadow:var(--glass-inner),0 14px 36px rgba(0,0,0,.34)}
:root[data-theme="light"] .card:hover,:root[data-theme="light"] .tile:hover,
:root[data-theme="light"] .card:focus-within{box-shadow:var(--glass-inner),0 0 0 1px rgba(39,48,74,.08),0 14px 34px rgba(40,50,80,.16)}
.header{-webkit-backdrop-filter:blur(14px) saturate(170%);backdrop-filter:blur(14px) saturate(170%)}
.modal,.toast,.nav,.nav__drop,.intro,.modal-backdrop,.charts-tools__toggle{
  -webkit-backdrop-filter:blur(14px) saturate(165%);backdrop-filter:blur(14px) saturate(165%)}
.modal,.toast{background:var(--glass-strong);border:1px solid var(--glass-edge);box-shadow:var(--glass-inner),var(--glass-drop)}
.btn,.btn--solid,.btn--grad,.btn.btn--sm,.cart-btn,.account-btn,.theme-toggle{
  box-shadow:var(--glass-inner),0 6px 18px rgba(0,0,0,.2);
  -webkit-backdrop-filter:blur(10px) saturate(170%);backdrop-filter:blur(10px) saturate(170%)}
.btn--solid,.btn--grad{box-shadow:var(--glass-inner),0 6px 18px rgba(0,0,0,.22)}
.tile__glow,.catalog-hero::before{display:none}
.hero__mark,.intro__logo,.catalog-statement__icon{filter:none}
.product-art__value,.catalog-statement b{text-shadow:none;filter:none}
.label--accent,.accent{color:var(--text-dim)}
.hero h1 .accent{color:var(--text)}
:root[data-theme="light"] .btn,:root[data-theme="light"] .cart-btn,
:root[data-theme="light"] .account-btn,:root[data-theme="light"] .theme-toggle{
  box-shadow:var(--glass-inner),0 0 0 1px rgba(39,48,74,.07),0 6px 18px rgba(40,50,80,.1)}
body{text-rendering:optimizeLegibility}

/* 3. Касание: без света и без «залипшего» hover ------------------------- */
@media (hover:none),(pointer:coarse){
  .card::after,.tile::after,.showcase-banner::after,.chart::after{display:none!important}
  .card:hover,.card.is-touching,.card:focus-within,.tile:hover,.tile.is-touching,.tile:focus-within,
  .faq-cta:hover,.product-projection__item:hover,.tier-column:hover{
    background:var(--glass-fill);border-color:var(--glass-edge);
    box-shadow:var(--glass-inner),var(--glass-drop)}
  .btn:not(.btn--solid):not(.btn--grad):hover,.cart-btn:hover,.account-btn:hover,.theme-toggle:hover{
    background:var(--glass-fill);border-color:var(--glass-edge)}
  .btn--solid:hover,.btn--grad:hover{
    background:color-mix(in srgb,var(--accent) 14%,transparent);
    border-color:color-mix(in srgb,var(--accent) 62%,transparent)}
  .seg__btn:hover,.pick-seg__btn:hover{color:var(--text-dim)}
  .seg__btn.is-active:hover,.pick-seg__btn.is-active:hover{color:var(--text)}
  .pagelinks a:hover{background:var(--glass-fill);border-color:var(--glass-edge);color:var(--text-dim)}
  .pagelinks a.is-current:hover{color:var(--text)}
  /* v52.4: точки не гасим — залипший hover на телефоне оставлял столбики бледными */
  .chart-bar:hover{fill-opacity:1;filter:none}
}

/* 4. Пружины для всего подвижного --------------------------------------- */
.reveal{transition:opacity .6s var(--ease),transform .95s var(--spr-soft)}
.toast{animation:toast-in .75s var(--spr) both}
.modal-backdrop.is-open .modal{animation:modal-pop .75s var(--spr) both}
@keyframes toast-in{from{opacity:0;transform:translateY(22px) scale(.92)}to{opacity:1;transform:none}}
@keyframes modal-pop{from{opacity:0;transform:translateY(26px) scale(.94)}to{opacity:1;transform:none}}
.badge{animation:badge-pop .8s var(--spr-pop) both}
@keyframes badge-pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
details[open]>:not(summary){animation:fold-in .6s var(--spr-soft) both}
@keyframes fold-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.cart-btn__count.is-tick,.cart-btn.is-bumped{animation-timing-function:var(--spr-pop)}
.seg__btn,.pagelinks a,.charts-tools__group button,.charts-tools__toggle,.qty button,.custom-amount__steps button{
  transition:color .25s var(--ease-glass),background .3s var(--ease-glass),border-color .3s,transform .6s var(--spr-pop)}
.range::-webkit-slider-thumb{transition:transform .5s var(--spr-pop)}
.range:active::-webkit-slider-thumb{transform:scale(1.18)}
.range::-moz-range-thumb{transition:transform .5s var(--spr-pop)}
.range:active::-moz-range-thumb{transform:scale(1.18)}
.input:focus,input:focus,select:focus{transition:border-color .25s,box-shadow .4s var(--spr)}

/* 5. Выбор номинала карты PS --------------------------------------------- */
.pick{display:grid;gap:16px;margin-top:6px}
.pick-row{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:14px}
.pick-row__label{font:650 9.5px/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-mute)}
.pick-seg{position:relative;display:inline-flex;max-width:100%;padding:4px;border-radius:99px;justify-self:start;
  border:1px solid var(--glass-edge);background:var(--glass-fill);box-shadow:var(--glass-inner);
  -webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}
.pick-seg--nom{min-width:0}
.pick-seg__track{position:relative;display:flex;gap:2px;min-width:0;max-width:100%;overflow-x:auto;border-radius:99px;
  scrollbar-width:none;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.pick-seg__track::-webkit-scrollbar{display:none}
.pick-seg__btn{position:relative;z-index:1;flex:none;min-height:38px;padding:0 16px;border:0;border-radius:99px;
  background:transparent;color:var(--text-dim);cursor:pointer;scroll-snap-align:center;
  font:650 11px/1 var(--f-mono);letter-spacing:.09em;font-variant-numeric:tabular-nums;
  transition:color .3s var(--ease-glass)}
.pick-seg__btn:hover{color:var(--text)}
.pick-seg__btn.is-active{color:var(--text)}
.pick-seg__btn:focus-visible{outline:2px solid var(--text-dim);outline-offset:1px}
.pick-seg__thumb{position:absolute;left:0;top:0;z-index:0;border-radius:99px;pointer-events:none;
  background:rgba(255,255,255,.17);
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.55),inset -1px -1px 0 rgba(255,255,255,.18),0 4px 14px rgba(0,0,0,.24);
  transition:transform .8s var(--spr-pop),width .8s var(--spr-pop),height .3s}
:root[data-theme="light"] .pick-seg__thumb{background:rgba(255,255,255,.9);
  box-shadow:inset 1px 1px 0 #fff,0 0 0 1px rgba(39,48,74,.08),0 4px 14px rgba(40,50,80,.16)}
.pick-seg__thumb.is-snap{transition:none}
.pick-stage{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}
.pick-price{display:grid;gap:8px;min-width:0}
.pick-price__num{font:760 clamp(40px,6.4vw,68px)/1 var(--f-display);letter-spacing:-.045em;
  color:var(--c-ps);font-variant-numeric:tabular-nums lining-nums;white-space:nowrap;padding-bottom:.08em}
.pick-price__sub{font:650 11px/1.2 var(--f-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim)}
.pick-price__delta{min-height:1.4em;font:650 11px/1.4 var(--f-mono);letter-spacing:.06em;color:var(--text-mute)}
.pick-price__delta[data-trend="up"]{color:var(--c-up)}
.pick-price__delta[data-trend="down"]{color:var(--c-down)}
.pick-add{align-self:flex-end}
.pick-line{min-width:0}
.pick-line svg{display:block;width:100%;height:auto;max-height:250px;margin:0 auto;overflow:visible}
@media (max-width:619px){
  .pick-row{grid-template-columns:1fr;gap:7px}
  .pick-stage{align-items:stretch}
  .pick-add{flex:1 1 100%}
}

/* ==========================================================================
   v51 — жидкое стекло «как вода», немного лаванды обратно, тёмные знаки в
   светлой теме, графики с точечными знаками товаров.
   • Стекло: в Chromium (Telegram Android/ПК, Chrome, Edge) фон под панелью
     преломляется у краёв — SVG feDisplacementMap в backdrop-filter (#lg из
     ui.js). Везде: по кромке медленно перетекает блик (conic-gradient по
     углу --lg-a, маска-кольцо), у каждой панели своя фаза.
   • Свет под курсором — только на кромке (кольцо), без светлого облака
     внутри: «мыла» нет. На касании пальцем света нет вообще.
   • Светлая тема: никакого белого свечения, кромка и свет — тёмно-лиловые;
     точки и знаки темнее.
   ========================================================================== */

@property --lg-a{syntax:'<angle>';inherits:false;initial-value:0deg}

/* 1. Токены: лаванда возвращается, но спокойно ------------------------- */
:root{
  --violet:#b3a6f2;--violet-soft:#cdc4f8;--violet-deep:#6f5bd2;--pink:#e2dbff;
  --accent:#ebe6ff;--accent-soft:rgba(235,230,255,.12);
  --lav:#b9a4ff;
  --dot:186,190,230;--dot-accent:204,192,255;
  --lg-rim:rgba(255,255,255,.62);
  --lg-rim2:rgba(196,182,255,.55);
  --glass-glow:rgba(222,212,255,.75);
}
:root[data-theme="light"]{
  --violet:#6c5ac6;--violet-soft:#8b7cd4;--violet-deep:#45349a;--pink:#a597e0;
  --accent:#3b2f7c;--accent-soft:rgba(59,47,124,.08);
  --lav:#5338bd;
  --dot:38,42,74;--dot-accent:83,56,189;
  --glass-inner:inset 1px 1px 0 rgba(255,255,255,.92),inset -1px -1px 0 rgba(39,48,74,.07);
  --glass-glow:rgba(83,56,189,.5);
  --lg-rim:rgba(83,56,189,.42);
  --lg-rim2:rgba(39,48,74,.28);
}
.label--accent{color:color-mix(in srgb,var(--lav) 72%,var(--text-dim))}
.nav a.is-active,.nav__label.is-active{color:color-mix(in srgb,var(--lav) 75%,var(--text))}
.btn.btn--grad,.btn.btn--solid{border-color:color-mix(in srgb,var(--lav) 55%,transparent);
  background:color-mix(in srgb,var(--lav) 14%,transparent)}
.btn.btn--grad:hover,.btn.btn--grad:focus-visible,.btn.btn--solid:hover,.btn.btn--solid:focus-visible{
  background:color-mix(in srgb,var(--lav) 22%,transparent);border-color:color-mix(in srgb,var(--lav) 80%,transparent)}
.pick-seg__thumb{background:color-mix(in srgb,var(--lav) 22%,rgba(255,255,255,.08))}
:root[data-theme="light"] .pick-seg__thumb{background:color-mix(in srgb,var(--lav) 14%,#fff)}
.seg__btn.is-active:not([data-tier]){--accent:var(--lav)}

/* 2. Преломление (Chromium) ------------------------------------------- */
html.lg-refract .card,html.lg-refract .tile,html.lg-refract .chart,html.lg-refract .notice,
html.lg-refract .summary,html.lg-refract .custom-amount,html.lg-refract .form-block,
html.lg-refract .showcase-banner,html.lg-refract .psplus-perks,html.lg-refract .faq__item,
html.lg-refract .faq-cta,html.lg-refract .pay-card,html.lg-refract .cart-item,html.lg-refract .empty,
html.lg-refract .product-projection,html.lg-refract .refs-list{
  -webkit-backdrop-filter:url(#lg) blur(7px) saturate(175%);backdrop-filter:url(#lg) blur(7px) saturate(175%)}
html.lg-refract .header,html.lg-refract .modal,html.lg-refract .toast,html.lg-refract .nav,
html.lg-refract .seg,html.lg-refract .pick-seg,html.lg-refract .btn,html.lg-refract .cart-btn,
html.lg-refract .account-btn{
  -webkit-backdrop-filter:url(#lg-soft) blur(8px) saturate(175%);backdrop-filter:url(#lg-soft) blur(8px) saturate(175%)}
@media (max-width:899px){
  /* меню на телефоне — position:fixed поверх контента: сильнее преломление */
  html.lg-refract .nav{-webkit-backdrop-filter:url(#lg) blur(10px) saturate(170%);backdrop-filter:url(#lg) blur(10px) saturate(170%)}
}

/* 3. Блик перетекает по кромке ---------------------------------------- */
.card,.tile,.chart,.notice,.summary,.custom-amount,.form-block,.showcase-banner,.psplus-perks,
.faq__item,.faq-cta,.modal,.pay-card,.cart-item,.empty,.product-projection,.seg,.pick-seg,.refs-list{position:relative}
.card::before,.tile::before,.chart::before,.notice::before,.summary::before,.custom-amount::before,
.form-block::before,.showcase-banner::before,.psplus-perks::before,.faq__item::before,.faq-cta::before,
.modal::before,.pay-card::before,.cart-item::before,.empty::before,.product-projection::before,
.seg::before,.pick-seg::before,.refs-list::before{
  content:"";position:absolute;inset:0;z-index:4;pointer-events:none;border-radius:inherit;padding:1.25px;
  background:conic-gradient(from var(--lg-a),
    transparent 0deg,var(--lg-rim) 26deg,transparent 64deg,
    transparent 150deg,var(--lg-rim2) 196deg,transparent 236deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;
  animation:lg-flow 16s linear infinite;animation-delay:var(--lg-d,0s)}
.grid > :nth-child(3n+2)::before{animation-delay:-5.3s}
.grid > :nth-child(3n)::before{animation-delay:-10.7s}
.grid > :nth-child(4n+1)::before{animation-duration:19s}
@keyframes lg-flow{to{--lg-a:360deg}}
.showcase-banner::before{content:""}
.seg::before,.pick-seg::before{padding:1px;opacity:.75}

/* 4. Свет под курсором — только по кромке, без облака внутри ----------- */
.card::after,.tile::after,.showcase-banner::after,.chart::after{
  inset:0;padding:1.5px;z-index:4;
  background:radial-gradient(150px circle at var(--lx,50%) var(--ly,0%),var(--glass-glow),transparent 72%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}
:root[data-theme="light"] .card:hover,:root[data-theme="light"] .tile:hover,
:root[data-theme="light"] .card:focus-within{box-shadow:var(--glass-inner),0 0 0 1px rgba(39,48,74,.09),0 12px 30px rgba(40,50,80,.14)}

/* 5. Светлая тема: без белого свечения и «мыла» ----------------------- */
:root[data-theme="light"] .btn,:root[data-theme="light"] .cart-btn,
:root[data-theme="light"] .account-btn{box-shadow:var(--glass-inner),0 0 0 1px rgba(39,48,74,.08),0 4px 12px rgba(40,50,80,.08)}
:root[data-theme="light"] .product-art__value{filter:none;text-shadow:none}
:root[data-theme="light"] .chase__val{stroke:rgba(255,255,255,.85)}
:root[data-theme="light"] .chase__dot{stroke:#fff}

/* 6. Переключатель темы: без внешнего круга, только сам диск ---------- */
.theme-toggle,.theme-toggle:hover,.theme-toggle:focus-visible,
:root[data-theme] .theme-toggle,:root[data-theme] .theme-toggle:hover,:root[data-theme] .theme-toggle:focus-visible{
  background:none;background-image:none;border:0;box-shadow:none;
  -webkit-backdrop-filter:none;backdrop-filter:none}
html.lg-refract .theme-toggle{-webkit-backdrop-filter:none;backdrop-filter:none}
.theme-toggle__disc{width:18px;height:18px;background:var(--text);
  box-shadow:inset 0 0 0 0 var(--bg),0 0 0 1px rgba(0,0,0,.22)}
:root[data-theme="light"] .theme-toggle__disc{background:var(--lav);
  box-shadow:inset -6px -1px 0 0 var(--bg),0 0 0 1px rgba(39,48,74,.18)}
.theme-toggle:focus-visible{outline:2px solid color-mix(in srgb,var(--lav) 70%,transparent);outline-offset:2px;border-radius:99px}

/* 7. Язык в меню (телефон и Telegram Mini App) ------------------------ */
.nav-lang{display:none}
@media (max-width:899px){
  .nav-lang{display:flex;gap:4px;width:max-content;margin:18px 4px 4px;padding:4px;border-radius:99px;
    border:1px solid var(--glass-edge);background:var(--glass-fill);box-shadow:var(--glass-inner)}
  .nav-lang button{min-height:38px;padding:0 18px;border:0;border-radius:99px;background:transparent;cursor:pointer;
    color:var(--text-dim);font:650 11px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;
    transition:color .25s,background .4s var(--spr-pop)}
  .nav-lang button.is-active{color:var(--text);background:color-mix(in srgb,var(--lav) 24%,transparent);
    box-shadow:inset 1px 1px 0 rgba(255,255,255,.35)}
}

/* 8. Графики: знак товара из точек в заголовке ------------------------- */
.chart__head--glyph{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;align-items:start}
.chart__head--glyph .chart__title{grid-column:1;grid-row:1}
.chart__head--glyph .chart__note{grid-column:1;grid-row:2;text-align:left;justify-self:start;margin-top:4px}
.chart__glyph{grid-column:2;grid-row:1/span 2;position:relative;display:block;width:60px;height:60px;margin:-6px -4px 0 0}
@media (max-width:619px){.chart__glyph{width:48px;height:48px}}

/* 9. Линии видны всегда; показ — шторкой (clip-path), без dasharray ------ */
.chart-line__path{stroke-dasharray:none;stroke-dashoffset:0}
.chart.is-live .chart-line{animation:line-reveal 1.1s var(--ease-expo) both}
@keyframes line-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.charts.no-anim .chart-line{animation:none}

/* 10. Перетекание замирает без движения в системе ---------------------- */
@media (prefers-reduced-motion:reduce){
  .card::before,.tile::before,.chart::before,.notice::before,.summary::before,.custom-amount::before,
  .form-block::before,.showcase-banner::before,.psplus-perks::before,.faq__item::before,.faq-cta::before,
  .modal::before,.pay-card::before,.cart-item::before,.empty::before,.product-projection::before,
  .seg::before,.pick-seg::before,.refs-list::before{animation:none;--lg-a:210deg}
  .chart.is-live .chart-line{animation:none}
}

/* 11. Интро без подвисаний: без размытия всего экрана (оно пересчитывалось
   каждый кадр поверх анимированного фона) — почти непрозрачная подложка */
.intro,html.lg-refract .intro{-webkit-backdrop-filter:none;backdrop-filter:none;
  background:color-mix(in srgb,var(--bg) 95%,transparent)}
.intro__canvas{will-change:contents}

/* 12. Живые виджеты (fx.js) -------------------------------------------- */
.fx-confetti{position:fixed;inset:0;width:100vw;height:100vh;z-index:900;pointer-events:none}

/* пайплайн заказа: галочки проставляются по очереди, полоска растёт */
.fx-pipe{position:relative;display:grid;gap:9px;margin:12px 0 2px;padding:0 0 0 2px;list-style:none;counter-reset:none}
.fx-pipe::before{content:"";position:absolute;left:9px;top:10px;bottom:10px;width:1.5px;
  background:color-mix(in srgb,var(--tone,var(--text)) 12%,transparent)}
.fx-pipe::after{content:"";position:absolute;left:9px;top:10px;bottom:10px;width:1.5px;
  background:var(--c-down);transform-origin:top;transform:scaleY(var(--fx-p,0));
  transition:transform .9s var(--spr-soft)}
.fx-pipe__step{position:relative;z-index:1;display:flex;align-items:center;gap:10px;
  font:600 11.5px/1.3 var(--f-sans);color:var(--text-mute);transition:color .4s var(--ease-glass)}
.fx-pipe__mark{position:relative;flex:none;width:18px;height:18px;border-radius:50%;
  border:1.5px solid color-mix(in srgb,var(--tone,var(--text)) 22%,transparent);background:var(--bg);
  transition:border-color .35s,background .35s,transform .6s var(--spr-pop)}
.fx-pipe__step.is-now{color:var(--text)}
.fx-pipe__step.is-now .fx-pipe__mark{border-color:color-mix(in srgb,var(--lav) 30%,transparent);
  border-top-color:var(--lav);animation:fx-spin .9s linear infinite}
.fx-pipe__step.is-done{color:var(--text-dim)}
.fx-pipe__step.is-done .fx-pipe__mark{border-color:var(--c-down);background:var(--c-down);
  animation:fx-pop .6s var(--spr-pop) both;animation-delay:calc(var(--fx-i) * 90ms)}
.fx-pipe__step.is-done .fx-pipe__mark::after{content:"";position:absolute;left:5px;top:2.2px;width:4.5px;height:8px;
  border:solid var(--bg);border-width:0 2px 2px 0;transform:rotate(45deg)}
.fx-pipe__step.is-fail{color:var(--c-up)}
.fx-pipe__step.is-fail .fx-pipe__mark{border-color:var(--c-up);background:color-mix(in srgb,var(--c-up) 18%,transparent)}
@keyframes fx-spin{to{transform:rotate(360deg)}}
@keyframes fx-pop{0%{transform:scale(.4)}100%{transform:scale(1)}}

/* кольцо-таймер счёта */
.pay-box__head{display:flex;align-items:center;justify-content:space-between;gap:14px}
.pay-box__head h3{margin:0}
.fx-timer{position:relative;flex:none;width:58px;height:58px}
.fx-timer svg{width:100%;height:100%;transform:rotate(-90deg)}
.fx-timer__track{fill:none;stroke:color-mix(in srgb,var(--tone,var(--text)) 12%,transparent);stroke-width:3}
.fx-timer__bar{fill:none;stroke:var(--lav);stroke-width:3;stroke-linecap:butt;transition:stroke-dashoffset 1s linear,stroke .4s}
.fx-timer.is-low .fx-timer__bar{stroke:var(--c-ess)}
.fx-timer.is-done .fx-timer__bar{stroke:var(--c-down);stroke-dashoffset:0!important}
.fx-timer__text{position:absolute;inset:0;display:grid;place-items:center;font:700 11px/1 var(--f-mono);
  font-variant-numeric:tabular-nums;color:var(--text)}

/* кольца профиля: дуга набегает, число докручивается */
.fx-rings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 18px}
.fx-ring{position:relative;display:grid;justify-items:center;gap:6px;padding:14px 8px 12px;border-radius:var(--radius);
  border:1px solid var(--glass-edge);background:var(--glass-fill);box-shadow:var(--glass-inner)}
.fx-ring svg{width:72px;height:72px;transform:rotate(-90deg)}
.fx-ring__track{fill:none;stroke:color-mix(in srgb,var(--fx-c) 16%,transparent);stroke-width:6}
.fx-ring__bar{fill:none;stroke:var(--fx-c);stroke-width:6;stroke-linecap:butt;
  stroke-dasharray:var(--fx-len);stroke-dashoffset:var(--fx-len);animation:fx-ring 1.3s var(--ease-expo) .15s forwards}
@keyframes fx-ring{to{stroke-dashoffset:var(--fx-off)}}
.fx-ring__num{position:absolute;top:38px;left:0;right:0;text-align:center;font:760 15px/1 var(--f-display);
  font-variant-numeric:tabular-nums;color:var(--text)}
.fx-ring__label{font:650 9.5px/1.3 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-mute);text-align:center}
@media (max-width:420px){.fx-ring svg{width:60px;height:60px}.fx-ring__num{top:33px;font-size:13px}}

/* мерцающие заглушки загрузки */
.fx-skel{display:grid;gap:10px;padding:6px 0}
.fx-skel i{display:block;height:14px;width:var(--fx-w,80%);border-radius:7px;
  background:color-mix(in srgb,var(--tone,var(--text)) 8%,transparent);position:relative;overflow:hidden}
.fx-skel i::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--tone,var(--text)) 10%,transparent),transparent);
  animation:fx-shimmer 1.4s ease-in-out infinite}
@keyframes fx-shimmer{to{transform:translateX(100%)}}

@media (prefers-reduced-motion:reduce){
  .fx-pipe__mark,.fx-ring__bar,.fx-skel i::after{animation:none!important}
  .fx-ring__bar{stroke-dashoffset:var(--fx-off)}
}
.summary__row--promo{color:var(--c-down)}
#fPromo + .small.is-ok,.field .small.is-ok{color:var(--c-down)}
.field .small.is-bad{color:var(--c-up)}

/* v51: ряд номиналов листается — мягкий край там, где есть ещё номиналы (маска, не заливка) */
.pick-seg__track[data-more="r"]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent)}
.pick-seg__track[data-more="l"]{-webkit-mask-image:linear-gradient(90deg,transparent,#000 36px);mask-image:linear-gradient(90deg,transparent,#000 36px)}
.pick-seg__track[data-more="both"]{-webkit-mask-image:linear-gradient(90deg,transparent,#000 36px,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,transparent,#000 36px,#000 calc(100% - 36px),transparent)}

/* ==========================================================================
   v52 — без «мыла», меньше лилового, крупные кнопки, прозрачные переключатели
   с «передёргиванием», рабочий подвал, чистый тап на телефоне.
   • «Мыло» — любое размытое цветное облако: фоновые огни (убраны в dots.js),
     свет под курсором, внутреннее сияние стекла, большие размытые тени.
     Остаётся только чёткое: тонкий кант с бегущим бликом, кромка, точки.
   • Лиловый — только Premium (знак, график), логотип и мелкие акценты;
     интерфейс (кнопки, переключатели, ссылки, метки) — холодный белый / графит.
   ========================================================================== */

/* 1. Токены ------------------------------------------------------------ */
:root{
  --violet:#9a8cf2;--violet-soft:#bcb1f5;--violet-deep:#6a58c4;--pink:#dbaef0;
  --accent:#ddd5fb;--accent-soft:rgba(190,170,255,.14);
  --lav:#b3a1ff;--brand:#8b5cf6;
  --dot:184,190,226;--dot-accent:200,190,250;
  --lg-rim:rgba(255,255,255,.6);--lg-rim2:rgba(190,175,255,.5);
  --glass-glow:transparent;
  --glass-inner:inset 1px 1px 0 rgba(255,255,255,.5),inset -1px -1px 0 rgba(255,255,255,.14);
  --glass-drop:0 8px 20px rgba(0,0,0,.26);
}
:root[data-theme="light"]{
  --violet:#6656c4;--violet-soft:#8577d6;--violet-deep:#46349a;--pink:#9a7fd6;
  --accent:#37306b;--accent-soft:rgba(90,70,180,.1);
  --lav:#5338bd;--brand:#7c53f0;
  --dot:34,38,70;--dot-accent:70,60,140;
  --lg-rim:rgba(30,36,64,.34);--lg-rim2:rgba(30,36,64,.2);
  --glass-glow:transparent;
  --glass-inner:inset 1px 1px 0 rgba(255,255,255,.95),inset -1px -1px 0 rgba(30,36,64,.07);
  --glass-drop:0 1px 2px rgba(30,36,64,.06),0 4px 12px rgba(30,36,64,.08);
}
.hero h1 .line:first-child{color:var(--brand)}
.label--accent,.accent{color:color-mix(in srgb,var(--lav) 70%,var(--text-dim))}
.nav a.is-active,.nav__label.is-active{color:color-mix(in srgb,var(--lav) 70%,var(--text))}

/* 2. Мыло — долой ------------------------------------------------------ */
.card::after,.tile::after,.showcase-banner::after,.chart::after,
.tile__glow,.catalog-hero::before,.catalog-statement--v2::after{display:none!important}
.card:hover,.card:focus-within,.card.is-touching,.tile:hover,.tile:focus-within,.tile.is-touching,
.faq-cta:hover,.product-projection__item:hover,
:root[data-theme="light"] .card:hover,:root[data-theme="light"] .tile:hover,
:root[data-theme="light"] .card:focus-within{
  box-shadow:var(--glass-inner),var(--glass-drop);border-color:var(--glass-edge-hi)}
.header,.nav,.modal,.toast{box-shadow:none}
.header{border-bottom:1px solid var(--glass-edge)}
:root[data-theme="light"] .btn,:root[data-theme="light"] .cart-btn,
:root[data-theme="light"] .account-btn{box-shadow:var(--glass-inner),0 1px 2px rgba(30,36,64,.08)}

/* 3. Кнопки: крупный жирный текст, прозрачное стекло ------------------- */
.btn,.btn--sm,.btn.btn--sm,.btn--solid,.btn--grad{
  font-family:var(--f-sans);font-weight:700;font-size:15px;line-height:1.1;letter-spacing:.01em;
  text-transform:none;min-height:46px;padding:11px 24px;color:var(--text);
  border-color:color-mix(in srgb,var(--tone,var(--text)) 30%,transparent)}
.btn.btn--sm{font-size:14.5px;min-height:44px;padding:10px 20px}

/* v52.3: голос кнопки — по смыслу действия, а не один штамп на всех.
   • главный призыв (grad: «Открыть», «Оплатить», «Войти») — широкий
     дисплейный, плотно, со стрелкой-жестом;
   • покупка (карточки: «В корзину») — компактный, деловой;
   • тихие действия («Написать», «Очистить», «Продолжить») — лёгкие,
     спокойные, без крика;
   • ссылки-стрелки (доверие/подвал) — моноширинные, подчёркнутые. */
.btn--grad{font-family:var(--f-display);font-weight:800;font-size:16px;
  letter-spacing:-.015em}
.card__foot .btn.btn--sm,.custom-amount__foot .btn,.pick-add{
  font-weight:650;font-size:13.5px;letter-spacing:.03em;color:var(--text)}
.btn:not(.btn--grad):not(.btn--solid):not(.card__foot .btn){font-weight:600;font-size:14px;color:var(--text-dim)}
.btn:not(.btn--grad):not(.btn--solid):hover{color:var(--text)}
.trust__go{font:600 12px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase}
@media (max-width:619px){
  .btn-row .btn.btn--grad{font-size:17px}
}
.btn.btn--solid,.btn.btn--grad,.pick-add{
  background:color-mix(in srgb,var(--tone,var(--text)) 12%,transparent);
  border-color:color-mix(in srgb,var(--tone,var(--text)) 55%,transparent)}
.btn.btn--solid:hover,.btn.btn--grad:hover,.btn.btn--solid:focus-visible,.btn.btn--grad:focus-visible{
  background:color-mix(in srgb,var(--tone,var(--text)) 20%,transparent);
  border-color:color-mix(in srgb,var(--tone,var(--text)) 75%,transparent)}
:root[data-theme="light"] .btn,:root[data-theme="light"] .btn.btn--sm{
  border-color:color-mix(in srgb,var(--tone,var(--text)) 34%,transparent)}
:root[data-theme="light"] .btn.btn--solid,:root[data-theme="light"] .btn.btn--grad{
  background:color-mix(in srgb,var(--tone,var(--text)) 8%,transparent);
  border-color:color-mix(in srgb,var(--tone,var(--text)) 60%,transparent)}
.cart-btn{font-family:var(--f-sans);font-weight:700;font-size:13px;letter-spacing:.06em}
.ps-seg button,.ps-seg .ps-seg__btn{font-family:var(--f-sans);font-weight:650;font-size:14px;letter-spacing:.01em;text-transform:none}
@media (max-width:619px){
  .btn-row .btn{min-height:50px;font-size:16px}
}

/* кнопка «В корзину»: серые точки заполняют всю площадь за 0,4 с */
.btn.is-filling{isolation:isolate}
.btn-dotfill{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;border-radius:inherit}

/* 4. Переключатели и ползунки: прозрачнее + «передёргивание» ----------- */
.seg{margin-bottom:clamp(26px,4.5vw,44px)}
.seg + .seg{margin-top:-10px}
.seg__btn{font-family:var(--f-sans);font-weight:650;font-size:14px;letter-spacing:.02em;text-transform:none;min-height:42px}
.seg__btn.is-active:not([data-tier]){
  --accent:var(--text);background:color-mix(in srgb,var(--tone,var(--text)) 6%,transparent);
  border-color:color-mix(in srgb,var(--tone,var(--text)) 36%,transparent);box-shadow:none;color:var(--text)}
.seg__btn[data-tier].is-active{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.ps-seg .ps-seg__btn.is-active{
  background:color-mix(in srgb,var(--tone,var(--text)) 6%,transparent);
  border-color:color-mix(in srgb,var(--tone,var(--text)) 40%,transparent);color:var(--text);box-shadow:none}
.pick-seg__thumb,:root[data-theme="light"] .pick-seg__thumb{
  background:color-mix(in srgb,var(--tone,var(--text)) 6%,transparent);
  border:1px solid color-mix(in srgb,var(--tone,var(--text)) 34%,transparent);box-shadow:none}
.seg-thumb{background:color-mix(in srgb,var(--tone,var(--text)) 7%,transparent);
  border:1px solid color-mix(in srgb,var(--tone,var(--text)) 30%,transparent);box-shadow:none}
.segmented{background:color-mix(in srgb,var(--tone,var(--text)) 4%,transparent);box-shadow:none}
.charts-tools__group button.is-active,.charts-tools__toggle.is-active{
  background:color-mix(in srgb,var(--tone,var(--text)) 7%,transparent);
  border-color:color-mix(in srgb,var(--tone,var(--text)) 34%,transparent);color:var(--text)}

/* ползунок количества: тонкая линия, прозрачный кружок */
.range{-webkit-appearance:none;appearance:none;width:100%;height:30px;background:transparent;
  cursor:pointer;touch-action:pan-y;--p:0%}
.range::-webkit-slider-runnable-track{height:3px;border-radius:99px;
  background:linear-gradient(90deg,color-mix(in srgb,var(--tone,var(--text)) 60%,transparent) var(--p),color-mix(in srgb,var(--tone,var(--text)) 14%,transparent) var(--p))}
.range::-moz-range-track{height:3px;border-radius:99px;background:color-mix(in srgb,var(--tone,var(--text)) 14%,transparent)}
.range::-moz-range-progress{height:3px;border-radius:99px;background:color-mix(in srgb,var(--tone,var(--text)) 60%,transparent)}
.range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;margin-top:-9.5px;
  border-radius:50%;background:color-mix(in srgb,var(--tone,var(--text)) 10%,transparent);
  border:1px solid color-mix(in srgb,var(--tone,var(--text)) 60%,transparent);box-shadow:var(--glass-inner)}
.range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;
  background:color-mix(in srgb,var(--tone,var(--text)) 10%,transparent);
  border:1px solid color-mix(in srgb,var(--tone,var(--text)) 60%,transparent);box-shadow:var(--glass-inner)}
.range:focus-visible{outline:2px solid color-mix(in srgb,var(--tone,var(--text)) 55%,transparent);outline-offset:4px;border-radius:99px}

@keyframes jerk{
  0%{translate:0 0;scale:1}
  16%{translate:-3px 0;scale:1.07 .9}
  34%{translate:3px 0;scale:.95 1.06}
  52%{translate:-2px 0;scale:1.03 .98}
  70%{translate:1px 0;scale:.99 1.01}
  100%{translate:0 0;scale:1}
}
@keyframes jerk-range{
  0%{scale:1 1}30%{scale:1 1.5}60%{scale:1 .82}100%{scale:1 1}
}
.is-jerk{animation:jerk .54s cubic-bezier(.25,.9,.3,1) both}
.range.is-jerk{animation:jerk-range .42s cubic-bezier(.25,.9,.3,1) both}
@media (prefers-reduced-motion:reduce){.is-jerk,.range.is-jerk{animation:none}}

/* 5. Подвал: ссылки видно и нажимаются -------------------------------- */
.footer li a,.footer__tg,.footer__mail{
  display:inline-flex;align-items:center;min-height:44px;padding:6px 0;font-size:15px;font-weight:500;
  color:var(--text);opacity:.9;text-decoration:underline;
  text-decoration-color:color-mix(in srgb,var(--tone,var(--text)) 28%,transparent);
  text-decoration-thickness:1px;text-underline-offset:5px;
  transition:opacity .2s,text-decoration-color .2s}
.footer li a:hover,.footer__tg:hover,.footer__mail:hover,
.footer li a:focus-visible,.footer__tg:focus-visible,.footer__mail:focus-visible{opacity:1;text-decoration-color:currentColor}
.footer__tg,.footer__mail{display:flex;width:fit-content;margin:0}
.footer__tg{font-family:var(--f-sans);font-weight:650;letter-spacing:0;color:var(--text)}
.footer__tg::after{content:"↗";margin-left:8px;opacity:.55;font-size:.9em}
.footer__mail{color:var(--text-dim);font-size:14px}
.footer .small{margin-top:10px;max-width:42ch}
.footer h4{font-size:13px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}
.footer__bottom{align-items:center}
.footer-lang{display:inline-flex;gap:2px}
.footer-lang button{min-width:40px;min-height:36px;border:0;border-radius:8px;background:none;
  color:var(--text-mute);font:650 12px/1 var(--f-mono);letter-spacing:.08em;cursor:pointer}
.footer-lang button:hover{color:var(--text)}
.footer-lang button.is-active{color:var(--text);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}

/* язык в меню телефона — тихая строка, не плашка */
@media (max-width:899px){
  .nav-lang{display:flex;align-items:center;gap:0;width:auto;margin:16px 4px 2px;padding:0;
    border:0;border-radius:0;background:none;box-shadow:none}
  .nav-lang__label{margin-right:8px;color:var(--text-mute);font:500 13px/1 var(--f-sans)}
  .nav-lang button{min-height:36px;min-width:40px;padding:0 8px;border:0;border-radius:8px;background:none;
    color:var(--text-mute);font:650 12px/1 var(--f-mono);letter-spacing:.08em;text-transform:none}
  .nav-lang button.is-active{background:none;box-shadow:none;color:var(--text);
    text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
}

/* 6. Тап на телефоне: ни синего квадрата, ни выделения ----------------- */
html{-webkit-tap-highlight-color:transparent}
a,button,summary,label,[role="button"],[role="tab"],[tabindex],.card,.tile,.chart,.seg,.pick-seg,
.faq__item,.nav,.header,.footer,.charts-tools{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}
a,button,summary,[role="button"],[role="tab"],.card,.tile,.chart,.seg,.pick-seg,.faq__item summary,
.nav a,.nav__label,.footer a,.charts-tools button{-webkit-user-select:none;user-select:none;touch-action:manipulation}
a:focus,button:focus,summary:focus,[tabindex]:focus{outline:none}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible,[role="tab"]:focus-visible{
  outline:2px solid color-mix(in srgb,var(--tone,var(--text)) 55%,transparent);outline-offset:3px}
::selection{background:color-mix(in srgb,var(--tone,var(--text)) 22%,transparent);color:inherit}

/* 7. Карточки товара: компактнее, знак крупнее ------------------------- */
.card .card__desc{font-size:13.5px;line-height:1.45;color:var(--text-dim);margin:2px 0 0}
.card .product-art{min-height:228px}
@media (max-width:619px){.card .product-art{min-height:180px}}
.card .card__title{font-size:16px}
.acct-links{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 6px}

/* 8. Доверие: канал, поддержка, гарантии -------------------------------- */
.hero__trust{display:flex;flex-wrap:wrap;gap:8px 20px;margin:20px 0 0;font:500 14px/1.4 var(--f-sans);color:var(--text-dim)}
.hero__trust a{color:var(--text);text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px;
  text-decoration-color:color-mix(in srgb,var(--tone,var(--text)) 30%,transparent)}
.hero__trust a:hover{text-decoration-color:currentColor}
.trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}
.trust__item{display:grid;gap:6px;align-content:start;padding:22px 24px;border:1px solid var(--glass-edge);
  border-radius:20px;background:var(--glass-fill);color:var(--text);text-decoration:none;
  transition:transform .5s var(--spr),border-color .3s}
.trust__item b{font:700 17px/1.25 var(--f-display)}
.trust__item span{font-size:14px;line-height:1.45;color:var(--text-dim)}
.trust__go{margin-top:8px;font:650 14px/1 var(--f-sans);font-style:normal;color:var(--text)}
.trust__go::after{content:" →"}
.trust__item:hover,.trust__item:focus-visible{transform:translateY(-3px);border-color:var(--glass-edge-hi)}
@media (max-width:760px){.trust{grid-template-columns:1fr}}
.faq__item{scroll-margin-top:calc(var(--header-h) + 18px)}

/* 9. Графики: столбики из микроточек ----------------------------------- */
/* точки как в знаках dotglyph: цвет — инлайн (три тона + jit из charts.js),
   россыпь с разбросом места/размера/плотности, не сетка */
.dotpat{transform-box:fill-box}
.chart-bar,.chart-bar:hover,:root[data-theme="light"] .chart-bar{fill-opacity:1;stroke:none}
.chart-bar-play{will-change:transform}
@media (prefers-reduced-motion:reduce){
  .chart-bar-play{transform:none!important}
  .chart-bar{transform:none!important}
}

/* медальон-звезда над статистикой + кольца подпрыгивают при наведении */
.acct-top{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;margin:4px 0 6px}
.acct-medal{position:relative;display:block;width:96px;height:96px;cursor:pointer;flex:none;
  border:1px solid var(--glass-edge);border-radius:50%;background:var(--glass-fill);
  box-shadow:var(--glass-inner);transition:transform .5s var(--spr-pop),border-color .3s}
.acct-medal:hover{transform:scale(1.05);border-color:var(--glass-edge-hi)}
.acct-medal:active{transform:scale(.96)}
.acct-medal canvas{position:absolute;inset:8px}
@media (max-width:520px){.acct-medal{width:78px;height:78px}}

/* реф-ссылка: поле + кнопка копирования */
.ref-row{display:flex;gap:10px;align-items:stretch}
.ref-row__code{flex:1;min-width:0;display:flex;align-items:center;padding:0 14px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ref-row .btn{flex:none}

/* кольца профиля: наведение приподнимает карточку и проявляет дугу */
.fx-ring{transition:transform .5s var(--spr),border-color .3s}
.fx-ring:hover{transform:translateY(-3px) scale(1.02);border-color:var(--glass-edge-hi)}

/* светлая тема: знаки на карточках — тёмные и плотные, без полупрозрачности */
:root[data-theme="light"] .product-art__bg,
:root[data-theme="light"] .card:hover .product-art__bg,
:root[data-theme="light"] .card:focus-within .product-art__bg,
:root[data-theme="light"] .card.is-touching .product-art__bg{opacity:1}
:root[data-theme="light"] .dot-glyph{opacity:.9}

/* остатки старых больших цветных теней (светлая тема) — тугая тень без «облака» */
:root{--shadow:0 8px 24px rgba(0,0,0,.3)}
:root[data-theme="light"]{--shadow:0 1px 2px rgba(30,36,64,.06),0 6px 16px rgba(30,36,64,.08)}
:root[data-theme="light"] .tile,:root[data-theme="light"] .card,
:root[data-theme="light"] .notice,:root[data-theme="light"] .custom-amount,
:root[data-theme="light"] .form-block,:root[data-theme="light"] .summary,
:root[data-theme="light"] .tier-column{box-shadow:var(--glass-inner),var(--glass-drop)}
:root[data-theme="light"] .header{box-shadow:none}
.why-grid .card{min-height:0}
.hero__chip,:root[data-theme="light"] .hero__chip{box-shadow:var(--glass-inner),var(--glass-drop)}

/* FAQ: плюс в круге (раньше — квадрат, который вертелся ромбом) */
.faq__item summary::after,.faq__item[open] summary::after{
  border-radius:50%;width:32px;height:32px;aspect-ratio:1;background:transparent;
  border:1px solid color-mix(in srgb,var(--tone,var(--text)) 34%,transparent);color:var(--text);
  font:400 22px/1 var(--f-sans);padding-bottom:2px}
.faq__item summary:hover::after{background:color-mix(in srgb,var(--tone,var(--text)) 8%,transparent)}
.faq__item[open] summary::after{background:color-mix(in srgb,var(--tone,var(--text)) 10%,transparent)}

/* «Настройки» мини-аппа */
.set-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0}
.set-row > span{font:600 14px/1.2 var(--f-sans);color:var(--text-dim)}
.set-opts{display:flex;gap:6px}
.set-opt{min-height:40px;padding:0 16px;border:1px solid color-mix(in srgb,var(--tone,var(--text)) 26%,transparent);
  border-radius:99px;background:transparent;color:var(--text-dim);cursor:pointer;
  font:650 14px/1 var(--f-sans);transition:background .3s,color .3s,border-color .3s}
.set-opt.is-active{color:var(--text);background:color-mix(in srgb,var(--tone,var(--text)) 8%,transparent);
  border-color:color-mix(in srgb,var(--tone,var(--text)) 50%,transparent)}
.set-hint{margin:14px 0 0;color:var(--text-mute)}
