/* ═══════════════════════════════════════════════════════════
   VITORY — светильник-литофания. Продающий лендинг.

   Фон всего сайта — покадровая лента (canvas), которая идёт
   по прокрутке и выглядит как видео. Контент плывёт поверх неё:
   кино-пролог читается прямо на кадре, дальше секции ложатся
   полупрозрачным затемнением, сквозь которое лента продолжает
   жить и подсвечивать страницу тёплым.
   ═══════════════════════════════════════════════════════════ */

@property --ang   { syntax:"<angle>";  initial-value:0deg; inherits:false }
@property --shine { syntax:"<number>"; initial-value:0;    inherits:false }
@property --lux   { syntax:"<number>"; initial-value:0.78; inherits:true  }
@property --power { syntax:"<number>"; initial-value:1;    inherits:true  }

:root{
  --night:#0B0B0C;
  --night-2:#131110;
  --ivory:#F3E9DA;
  --faint:#9A9084;
  --muted:#8B8074;
  --line:rgba(243,233,218,.13);
  --line-2:rgba(243,233,218,.22);

  --glow:#FFB765;
  --glow-2:#FF9A3C;
  --amber:#E89B3C;
  --amber-deep:#C87A22;

  --scrim:rgba(9,9,10,.855);
  --scrim-soft:rgba(9,9,10,.62);

  --sans:"Manrope","Inter","Segoe UI",system-ui,-apple-system,sans-serif;
  --serif:"Playfair Display","Iowan Old Style",Georgia,"Times New Roman",serif;

  --maxw:1280px;
  --pad:clamp(20px,5vw,64px);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--night); color:var(--ivory);
  font-family:var(--sans); font-weight:400; font-size:16px;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
body.locked{overflow:hidden}
img{max-width:100%; display:block}
button,input,select,textarea{font:inherit; color:inherit}
a{color:inherit; text-decoration:none}
h1,h2,h3,h4{margin:0; font-weight:500; line-height:1.04; letter-spacing:-.02em}
p{margin:0; line-height:1.62}
dl{margin:0}
::selection{background:var(--amber); color:#1A1206}

.wrap{max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad)}

/* ─────────── ЗАГРУЗЧИК ─────────── */
#loader{
  position:fixed; inset:0; z-index:400; background:var(--night);
  display:grid; place-content:center; gap:22px; justify-items:center;
  transition:opacity .8s ease, visibility .8s;
}
#loader.done{opacity:0; visibility:hidden}
#loader .mark{
  font-family:var(--serif); font-size:clamp(2rem,7vw,3.2rem);
  letter-spacing:.38em; padding-left:.38em; color:var(--ivory);
  text-shadow:0 0 34px rgba(255,183,101,.5);
}
#loader .bar{width:min(240px,50vw); height:1px; background:rgba(243,233,218,.18); overflow:hidden}
#loader .bar i{display:block; height:100%; width:0; background:var(--glow); transition:width .3s}
#loader .pct{font-size:.62rem; letter-spacing:.28em; text-transform:uppercase; color:var(--faint)}

/* ─────────── ЖИВОЙ ФОН ─────────── */
#stage{position:fixed; inset:0; z-index:0; background:var(--night)}
#stage canvas{width:100%; height:100%; display:block}
/* затемнение по краям — чтобы текст читался в любой момент ленты */
#stage::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(90deg,rgba(9,9,10,.86) 0%,rgba(9,9,10,.34) 42%,rgba(9,9,10,0) 68%),
    linear-gradient(180deg,rgba(9,9,10,.72) 0%,rgba(9,9,10,.05) 24%,
                           rgba(9,9,10,.1) 66%,rgba(9,9,10,.8) 100%);
}
@media(max-width:960px){
  #stage::after{
    background:
      linear-gradient(180deg,rgba(9,9,10,.82) 0%,rgba(9,9,10,.45) 30%,
                             rgba(9,9,10,.55) 62%,rgba(9,9,10,.9) 100%);
  }
}

/* прогресс прокрутки */
#prog{position:fixed; top:0; left:0; height:2px; width:0; z-index:200; background:var(--glow); transition:width .1s linear}

#scroller{position:relative; z-index:10}

/* ─────────── НАВИГАЦИЯ ─────────── */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:120;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:16px var(--pad);
  background:rgba(11,11,12,0); border-bottom:1px solid transparent;
  transition:background .45s ease, border-color .45s, backdrop-filter .45s, padding .45s;
}
.nav.solid{
  background:rgba(11,11,12,.72); backdrop-filter:blur(18px) saturate(1.2);
  border-bottom-color:var(--line); padding-block:11px;
}
.nav .logo{
  font-family:var(--serif); font-size:1.28rem; letter-spacing:.3em; padding-left:.3em;
  color:var(--ivory); text-shadow:0 0 26px rgba(255,183,101,.55);
}
.nav .links{display:flex; gap:28px; font-size:.85rem; letter-spacing:.03em}
.nav .links a{color:rgba(243,233,218,.78); position:relative; padding-block:4px; transition:color .3s}
.nav .links a:hover{color:var(--ivory)}
.nav .links a::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:var(--glow); transition:width .3s ease;
}
.nav .links a:hover::after{width:100%}
.nav-cta{font-size:.78rem !important; padding:11px 20px !important}
.burger{display:none; width:38px; height:32px; border:0; background:none; cursor:pointer; position:relative}
.burger i{position:absolute; left:7px; right:7px; height:1.5px; background:var(--ivory); transition:.3s}
.burger i:nth-child(1){top:11px} .burger i:nth-child(2){bottom:11px}
.burger.open i:nth-child(1){top:15px; transform:rotate(45deg)}
.burger.open i:nth-child(2){bottom:15px; transform:rotate(-45deg)}

@media(max-width:900px){
  .nav .links{
    position:fixed; inset:0 0 auto; top:0; padding:96px var(--pad) 34px;
    flex-direction:column; gap:6px; font-size:1.3rem;
    background:rgba(11,11,12,.97); backdrop-filter:blur(20px);
    transform:translateY(-105%); transition:transform .5s cubic-bezier(.65,0,.35,1);
    border-bottom:1px solid var(--line);
  }
  .nav .links.open{transform:none}
  .nav .links a{padding-block:12px; border-bottom:1px solid var(--line)}
  .burger{display:block; order:3}
  .nav-cta{display:none}
}

/* ─────────── КНОПКИ (specular) ─────────── */
.btn{
  --line-c:#ffffff;
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:17px 34px; border:0; border-radius:999px; cursor:pointer;
  font-size:.88rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase;
  background:linear-gradient(180deg,var(--amber) 0%,var(--amber-deep) 100%);
  color:#231708; overflow:visible; isolation:isolate; text-align:center;
  box-shadow:0 10px 34px -12px rgba(200,122,34,.75), inset 0 1px 0 rgba(255,255,255,.35);
  transition:transform .18s ease, box-shadow .35s ease, filter .3s;
}
.btn:hover{filter:brightness(1.07); box-shadow:0 16px 46px -12px rgba(200,122,34,.95), inset 0 1px 0 rgba(255,255,255,.45)}
.btn:active{transform:scale(.97)}
.btn:focus-visible{outline:2px solid var(--ivory); outline-offset:3px}
.btn::after{
  content:''; position:absolute; inset:-1px; border-radius:inherit; padding:1.6px;
  background:conic-gradient(from var(--ang),
    transparent 0deg, var(--line-c) 8deg, transparent 34deg,
    transparent 176deg, var(--line-c) 188deg, transparent 214deg);
  -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;
  opacity:var(--shine); transition:opacity .4s ease; pointer-events:none;
}
.btn::before{
  content:''; position:absolute; inset:-14px; border-radius:inherit; z-index:-1;
  background:radial-gradient(closest-side,rgba(255,183,101,.55),transparent 78%);
  opacity:calc(var(--shine) * .9); transition:opacity .4s; pointer-events:none;
}
.btn.ghost{
  background:rgba(243,233,218,.04); color:var(--ivory);
  box-shadow:inset 0 0 0 1px rgba(243,233,218,.3); backdrop-filter:blur(6px);
}
.btn.ghost:hover{box-shadow:inset 0 0 0 1px rgba(243,233,218,.7); filter:none}
.btn.ghost::before{display:none}
.btn.lg{padding:21px 46px; font-size:.95rem}
.btn.sm{padding:12px 22px; font-size:.74rem}
.btn.block{width:100%}

/* ─────────── КИНО-ПРОЛОГ ─────────── */
.chapter{position:relative; height:210vh}
.chapter .inner{
  position:sticky; top:0; height:100svh;
  display:flex; align-items:center;
  padding:120px var(--pad) 92px;
  will-change:opacity, transform;
}
.chapter .box{width:100%; max-width:var(--maxw); margin:0 auto}
.box-lead{max-width:min(720px, 100%)}
.chapter .box > *{max-width:660px}

#hero{height:auto}
#hero .inner{position:static; min-height:100svh; height:auto; padding-block:128px 104px}

.badge{
  display:inline-flex; align-items:center; gap:10px; padding:9px 18px; border-radius:999px;
  font-size:.68rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--glow); border:1px solid rgba(255,183,101,.36);
  background:rgba(255,183,101,.08); backdrop-filter:blur(6px);
}
.badge .dot{width:6px; height:6px; border-radius:50%; background:var(--glow); box-shadow:0 0 12px var(--glow); animation:pulse 2.2s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.75)}}

.hero-title{
  font-family:var(--serif); font-weight:400; letter-spacing:-.03em; line-height:.98;
  font-size:clamp(2.5rem,6.4vw,5.4rem); margin:26px 0 0;
  text-shadow:0 2px 40px rgba(0,0,0,.7), 0 0 70px rgba(255,183,101,.3);
}
.hero-title em{font-style:normal; color:var(--glow)}
.hero-sub{margin-top:24px; max-width:46ch; color:rgba(243,233,218,.78); font-size:clamp(.98rem,1.4vw,1.1rem); text-shadow:0 1px 14px rgba(0,0,0,.7)}

.timer{display:flex; gap:10px; margin-top:28px; flex-wrap:wrap}
.timer .cell{
  min-width:74px; padding:12px 8px 10px; text-align:center; border-radius:14px;
  background:rgba(11,11,12,.5); border:1px solid var(--line); backdrop-filter:blur(10px);
}
.timer .cell b{display:block; font-family:var(--serif); font-size:1.7rem; line-height:1; color:var(--glow)}
.timer .cell span{display:block; margin-top:7px; font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--faint)}

.price-block{margin-top:30px; display:flex; align-items:flex-end; gap:18px; flex-wrap:wrap}
.price-now{font-family:var(--serif); font-size:clamp(2.4rem,5.6vw,3.8rem); line-height:.9; color:var(--ivory); text-shadow:0 2px 30px rgba(0,0,0,.8)}
.price-old{font-size:1.05rem; color:var(--faint); text-decoration:line-through; padding-bottom:8px}
.price-note{font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--faint); padding-bottom:10px; line-height:1.8}

.hero-cta{margin-top:30px; display:flex; gap:14px; flex-wrap:wrap}
.hero-fine{margin-top:20px; font-size:.82rem; color:var(--faint); max-width:48ch}
.hero-fine b{color:rgba(243,233,218,.92); font-weight:600}
.hero-sub b{color:var(--ivory); font-weight:600}
.lead b{color:var(--ivory); font-weight:600}
.faq .a b,.card p b,.fine b{color:var(--glow); font-weight:600}

/* На телефоне поджимаем герой, чтобы главная кнопка попадала
   на первый экран, а не пряталась под сгибом. */
@media(max-width:600px){
  #hero .inner{padding-block:104px 54px}
  .hero-title{margin-top:20px}
  .hero-sub{margin-top:18px}
  .timer{margin-top:22px; gap:8px}
  .timer .cell{flex:1; min-width:0; padding:9px 4px 8px}
  .timer .cell b{font-size:1.35rem}
  .timer .cell span{margin-top:5px}
  .price-block{margin-top:22px; gap:12px}
  .hero-cta{margin-top:22px; gap:10px}
  .hero-cta .btn{flex:1 1 100%}
  .hero-fine{margin-top:16px; font-size:.76rem}
}

.eyebrow-fixed{margin-bottom:18px}
.cine-title{
  font-family:var(--serif); font-weight:400; letter-spacing:-.028em; line-height:1.02;
  font-size:clamp(2rem,5.2vw,4.2rem);
  text-shadow:0 2px 40px rgba(0,0,0,.75), 0 0 80px rgba(255,183,101,.26);
}
.cine-title em{font-style:normal; color:var(--glow)}
.cine-sub{margin-top:24px; max-width:50ch; color:rgba(243,233,218,.76); font-size:clamp(.98rem,1.4vw,1.1rem); text-shadow:0 1px 14px rgba(0,0,0,.75)}
.cine-cta{margin-top:32px}

/* Подсказка прижата к правому краю, а не к центру: текст героя
   выровнен влево и ограничен 660px, поэтому справа она гарантированно
   ни на что не налезает. По центру она перекрывала кнопки. */
.scroll-cue{
  position:fixed; bottom:26px; right:clamp(20px,5vw,64px); z-index:40; margin:0;
  font-size:.6rem; letter-spacing:.3em; text-transform:uppercase; color:var(--faint);
  text-align:center; transition:opacity .5s; pointer-events:none;
}
.scroll-cue.hide{opacity:0}
/* На узких и невысоких экранах свободного места справа нет —
   там подсказка не нужна, свайп вниз и так очевиден. */
@media(max-width:900px), (max-height:700px){
  .scroll-cue{display:none}
}

/* ─────────── ОБЩИЕ СЕКЦИИ ─────────── */
section{position:relative}
.sec{
  padding-block:clamp(78px,10vw,148px);
  background:var(--scrim); backdrop-filter:blur(16px) saturate(1.05);
}
.sec-open{background:var(--scrim-soft); backdrop-filter:blur(10px)}
.eyebrow{
  font-size:.7rem; letter-spacing:.32em; text-transform:uppercase;
  color:var(--faint); margin-bottom:22px; display:flex; align-items:center; gap:12px;
}
.eyebrow::before{content:''; width:34px; height:1px; background:currentColor; opacity:.55}
h2.head{
  font-size:clamp(2rem,5.2vw,4.2rem); font-family:var(--serif); font-weight:400;
  letter-spacing:-.025em; text-shadow:0 0 60px rgba(255,183,101,.28);
}
.lead{font-size:clamp(1rem,1.5vw,1.16rem); color:rgba(243,233,218,.72); max-width:60ch; margin-top:26px}
.side-note{align-self:center; font-size:.82rem; color:var(--faint)}
.ul{text-decoration:underline; text-underline-offset:3px}

/* Появление при прокрутке. Прячем только при живом скрипте (класс js
   ставится в <head>): без него IntersectionObserver не отработает и
   весь лендинг остался бы невидимым. */
.js .rv{opacity:0; transform:translateY(26px) scale(.96); transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1)}
.js .rv.in{opacity:1; transform:none}

/* ─────────── БЕГУЩАЯ СТРОКА ─────────── */
.marquee{
  background:rgba(9,9,10,.9); color:var(--glow); border-block:1px solid var(--line);
  overflow:hidden; padding-block:16px; position:relative; z-index:2; backdrop-filter:blur(14px);
}
.marquee .track{display:flex; gap:44px; width:max-content; animation:slide 34s linear infinite}
.marquee:hover .track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}
.marquee span{font-size:.76rem; letter-spacing:.22em; text-transform:uppercase; white-space:nowrap; display:flex; align-items:center; gap:44px}
.marquee span::after{content:'✦'; opacity:.5}

/* ─────────── BENTO КАРТОЧКИ ─────────── */
.bento{display:grid; gap:16px; margin-top:56px; grid-template-columns:repeat(auto-fit,minmax(258px,1fr))}
.card{
  --gx:50%; --gy:50%; --gi:0; --gr:280px;
  position:relative; overflow:hidden; border-radius:22px; padding:30px;
  background:rgba(20,17,15,.72); border:1px solid var(--line); backdrop-filter:blur(8px);
  display:flex; flex-direction:column; justify-content:space-between; gap:26px;
  min-height:238px; transition:transform .3s ease, box-shadow .3s ease, background .3s;
  transform-style:preserve-3d;
}
.card:hover{background:rgba(26,22,19,.8); box-shadow:0 22px 54px -26px rgba(0,0,0,.9)}
.card::after{
  content:''; position:absolute; inset:0; padding:1.4px; border-radius:inherit; pointer-events:none;
  background:radial-gradient(var(--gr) circle at var(--gx) var(--gy),
    rgba(255,170,80,calc(var(--gi)*.95)) 0%, rgba(255,140,50,calc(var(--gi)*.42)) 32%, transparent 62%);
  -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; z-index:3;
}
.card .k{font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--faint)}
.card h3{font-family:var(--serif); font-weight:400; font-size:1.5rem; margin-bottom:10px}
.card p{font-size:.93rem; color:rgba(243,233,218,.68)}
.card .num{font-family:var(--serif); font-size:2.6rem; color:var(--glow); line-height:1; opacity:.92}
.particle{position:absolute; width:4px; height:4px; border-radius:50%;
  background:rgba(255,170,80,1); box-shadow:0 0 8px rgba(255,170,80,.7); pointer-events:none; z-index:2}
.ripple{position:absolute; border-radius:50%; pointer-events:none; z-index:2;
  background:radial-gradient(circle,rgba(255,170,80,.35) 0%,rgba(255,170,80,.16) 32%,transparent 70%)}
#spotlight{
  position:fixed; width:760px; height:760px; border-radius:50%; pointer-events:none; z-index:60;
  transform:translate(-50%,-50%); opacity:0; mix-blend-mode:screen;
  background:radial-gradient(circle,rgba(255,170,80,.13) 0%,rgba(255,160,70,.07) 16%,rgba(255,150,60,.03) 34%,transparent 68%);
  transition:opacity .35s ease;
}

/* ─────────── КАК РАБОТАЕТ ─────────── */
.steps{display:grid; gap:clamp(52px,7vw,104px); margin-top:70px}
.step{display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,72px); align-items:center}
.step:nth-child(even) .step-media{order:-1}
@media(max-width:860px){.step{grid-template-columns:1fr} .step:nth-child(even) .step-media{order:0}}
.step-media{position:relative; border-radius:20px; overflow:hidden; aspect-ratio:4/3; background:#0b0a09; border:1px solid var(--line)}
.step-media img{width:100%; height:100%; object-fit:cover; transition:transform 1.1s cubic-bezier(.2,.7,.3,1)}
.step-media:hover img{transform:scale(1.05)}
.step-media::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,transparent 55%,rgba(11,11,12,.5) 100%);
}
.step-n{font-family:var(--serif); font-size:.9rem; letter-spacing:.3em; color:var(--glow); margin-bottom:16px}
.step h3{font-family:var(--serif); font-weight:400; font-size:clamp(1.6rem,3.4vw,2.5rem); margin-bottom:16px}
.step p{color:rgba(243,233,218,.7); max-width:44ch}
.step p b{color:var(--glow); font-weight:500}

/* ─────────── ХАРАКТЕРИСТИКИ ─────────── */
.specs-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,72px); align-items:start; margin-top:52px}
@media(max-width:880px){.specs-grid{grid-template-columns:1fr}}
.spec-row{display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding:17px 0; border-top:1px solid var(--line)}
.spec-row:last-of-type{border-bottom:1px solid var(--line)}
.spec-row dt{color:var(--faint); font-size:.88rem; letter-spacing:.02em}
.spec-row dd{margin:0; text-align:right; font-weight:500; font-size:.98rem}
.dimmer{margin-top:36px; padding:26px; border-radius:20px; background:rgba(20,17,15,.7); border:1px solid var(--line); backdrop-filter:blur(8px)}
.dimmer .k{font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--faint)}
.dimmer h4{font-family:var(--serif); font-weight:400; font-size:1.35rem; margin:8px 0 20px}
.dimmer input[type=range]{
  -webkit-appearance:none; appearance:none; width:100%; height:3px; border-radius:2px; outline:none;
  background:linear-gradient(90deg,var(--amber) 0%,var(--amber) var(--p,78%),rgba(243,233,218,.18) var(--p,78%));
  cursor:pointer;
}
.dimmer input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none; width:26px; height:26px; border-radius:50%;
  background:radial-gradient(circle at 35% 32%,#FFD9A6,var(--amber));
  box-shadow:0 0 0 6px rgba(232,155,60,.16), 0 0 22px rgba(255,183,101,.7); cursor:grab;
}
.dimmer input[type=range]::-moz-range-thumb{
  width:26px; height:26px; border:0; border-radius:50%;
  background:radial-gradient(circle at 35% 32%,#FFD9A6,var(--amber));
  box-shadow:0 0 0 6px rgba(232,155,60,.16), 0 0 22px rgba(255,183,101,.7);
}
.dimmer input[type=range]:focus-visible{outline:2px solid var(--glow); outline-offset:8px}
.dimmer .val{margin-top:12px; font-size:.78rem; color:var(--faint); letter-spacing:.1em}

/* Витрина в характеристиках — реальное фото товара, а не процедурная
   модель: все сгенерированные кубы заказчик в своё время забраковал.
   CSS-куб остаётся только в конфигураторе, где он обязан показывать
   выбранный цвет и выбранные грани вживую. */
.spec-photo{
  position:relative; border-radius:24px; overflow:hidden;
  border:1px solid var(--line); background:#0b0a09;
}
.spec-photo img{
  width:100%; aspect-ratio:1/1; object-fit:cover;
  filter:brightness(calc(.55 + .68*var(--lux))); transition:filter .25s;
}

/* ─────────── 3D КУБ ─────────── */
.cube-stage{
  position:relative; display:grid; place-items:center;
  min-height:clamp(340px,46vw,520px); perspective:1400px; cursor:grab; touch-action:pan-y;
  --cw:clamp(150px,19vw,206px); --ch:calc(var(--cw) * 1.22);
  --postw:calc(var(--cw) * .13);
  --power:1;
  transition:--power .5s ease;
}
.cube-stage:active{cursor:grabbing}
.cube-stage::before{
  content:''; position:absolute; width:min(78%,470px); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle,
    rgba(255,170,80,calc(.5*var(--lux)*var(--power,1))) 0%,
    rgba(255,140,50,calc(.2*var(--lux)*var(--power,1))) 38%,transparent 70%);
  filter:blur(38px); pointer-events:none;
}
/* корпус: чуть выше, чем шире — плоская крышка сверху, сплошное
   основание снизу, порт USB-C сбоку на одной грани. Цвет (--body-c)
   красит только крышку, основание и угловые стойки; боковые
   литофании всегда белые и загораются тёплым 3000K. */
.cube{position:relative; width:var(--cw); height:var(--ch); transform-style:preserve-3d; will-change:transform}
.face{
  position:absolute; left:0; top:0; width:var(--cw); height:var(--ch);
  transform-style:preserve-3d; background:var(--body-c,#1A1A1C);
  border-radius:8px; overflow:hidden; backface-visibility:hidden;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.55);
}
.face.side::before{
  content:''; position:absolute; inset:0; pointer-events:none; z-index:4;
  background:linear-gradient(105deg,rgba(255,255,255,.10) 0%,rgba(255,255,255,0) 38%,rgba(0,0,0,.16) 100%);
}
.face .lidband{
  position:absolute; left:0; right:0; top:0; height:7%; z-index:2;
  background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.03) 55%,rgba(0,0,0,.32));
  border-bottom:1px solid rgba(0,0,0,.55);
}
.face .base{
  position:absolute; left:0; right:0; bottom:0; height:22%; z-index:2;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(0,0,0,.26));
  border-top:1px solid rgba(0,0,0,.6);
}
.face .port{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:16%; min-width:16px; max-width:26px; aspect-ratio:3.1/1; border-radius:99px;
  background:#080706; box-shadow:inset 0 1px 1px rgba(255,255,255,.22), 0 0 0 1px rgba(0,0,0,.4);
}
.face .panel{
  position:absolute; left:9%; right:9%; top:9.5%; bottom:24.5%;
  border-radius:3px; overflow:hidden; z-index:1; background:#EFEAE0;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.35), inset 0 0 18px rgba(0,0,0,.16);
}
.face .panel img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:filter .25s, opacity .5s ease}
/* выключено: виден только рельеф — контуры кадра на белом пластике */
.face .panel img.off{filter:grayscale(1) brightness(1.74) contrast(.3); opacity:.78}
/* включено: тёплое 3000K изображение поверх рельефа */
.face .panel img.on{
  opacity:var(--power,1);
  filter:sepia(.52) saturate(1.55) hue-rotate(-4deg) brightness(calc(.5 + .9*var(--lux))) contrast(1.05);
}
.face .panel::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse at 50% 46%,rgba(255,198,124,calc(.44*var(--lux)*var(--power,1))) 0%,transparent 68%);
  mix-blend-mode:screen;
}
.face.empty .panel{display:grid; place-items:center; background:#EFEAE0}
.face.empty .panel::before{content:'+'; font-size:2.4rem; color:rgba(28,24,21,.26); font-weight:200}
/* У пустой грани img остаётся без src — иначе браузер рисует
   значок «битой картинки» прямо на литофании. */
.face.empty .panel img{display:none}

.post{
  position:absolute; top:0; left:calc(50% - var(--postw)/2);
  width:var(--postw); height:var(--ch); border-radius:7px;
  background:var(--body-c,#1A1A1C); box-shadow:inset 0 0 0 1px rgba(0,0,0,.5);
  backface-visibility:hidden;
}
.post::after{
  content:''; position:absolute; inset:0; border-radius:inherit;
  background:linear-gradient(100deg,rgba(255,255,255,.16),rgba(255,255,255,0) 46%,rgba(0,0,0,.2));
}
.post.p1{transform:translateX(calc(var(--cw)/2))  translateZ(calc(var(--cw)/2))  rotateY(45deg)}
.post.p2{transform:translateX(calc(var(--cw)/-2)) translateZ(calc(var(--cw)/2))  rotateY(-45deg)}
.post.p3{transform:translateX(calc(var(--cw)/2))  translateZ(calc(var(--cw)/-2)) rotateY(-45deg)}
.post.p4{transform:translateX(calc(var(--cw)/-2)) translateZ(calc(var(--cw)/-2)) rotateY(45deg)}

.face.bottom i{position:absolute; width:15%; aspect-ratio:1; border-radius:50%; background:rgba(0,0,0,.55)}
.face.bottom i:nth-child(1){left:11%; top:11%}
.face.bottom i:nth-child(2){right:11%; top:11%}
.face.bottom i:nth-child(3){left:11%; bottom:11%}
.face.bottom i:nth-child(4){right:11%; bottom:11%}
.face.front { transform:translateZ(calc(var(--cw)/2)) }
.face.back  { transform:rotateY(180deg) translateZ(calc(var(--cw)/2)) }
.face.right { transform:rotateY(90deg)  translateZ(calc(var(--cw)/2)) }
.face.left  { transform:rotateY(-90deg) translateZ(calc(var(--cw)/2)) }
.face.top,.face.bottom{height:var(--cw)}
.face.top{
  transform:translateY(calc((var(--ch) - var(--cw))/2)) rotateX(90deg) translateZ(calc(var(--ch)/2));
  filter:brightness(1.16); box-shadow:inset 0 0 0 1px rgba(255,255,255,.09);
}
.face.top::after{
  content:''; position:absolute; inset:7%; border-radius:5px; pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);
  background:linear-gradient(128deg,rgba(255,255,255,.09),rgba(255,255,255,0) 52%);
}
.face.bottom{
  transform:translateY(calc((var(--ch) - var(--cw))/2)) rotateX(-90deg) translateZ(calc(var(--ch)/2));
  filter:brightness(.42);
}
.face.bottom::after{
  content:''; position:absolute; inset:11%; border-radius:4px; pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);
}
.cube-hint{
  position:absolute; bottom:6px; left:50%; transform:translateX(-50%);
  font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--faint);
  pointer-events:none; white-space:nowrap; text-align:center;
}

/* ─────────── ИДЕИ ─────────── */
.ideas{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:52px}
@media(max-width:1000px){.ideas{grid-template-columns:repeat(2,1fr)}}
.idea{
  --gx:50%; --gy:50%; --gi:0; --gr:260px;
  position:relative; border-radius:18px; overflow:hidden; background:#0b0a09; margin:0;
  border:1px solid var(--line); aspect-ratio:4/5; transition:transform .35s ease;
  transform-style:preserve-3d;
}
.idea img{width:100%; height:100%; object-fit:cover; transition:transform 1s cubic-bezier(.2,.7,.3,1)}
.idea:hover img{transform:scale(1.07)}
.idea::after{
  content:''; position:absolute; inset:0; padding:1.4px; border-radius:inherit; pointer-events:none; z-index:3;
  background:radial-gradient(var(--gr) circle at var(--gx) var(--gy),
    rgba(255,170,80,calc(var(--gi)*1)) 0%, rgba(255,140,50,calc(var(--gi)*.4)) 34%, transparent 62%);
  -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;
}
.idea figcaption{
  position:absolute; left:0; right:0; bottom:0; z-index:2; padding:20px 18px 18px;
  background:linear-gradient(180deg,transparent,rgba(11,10,9,.9));
  color:var(--ivory); font-size:.92rem; font-weight:500;
}
.idea figcaption small{display:block; margin-top:4px; font-size:.68rem; letter-spacing:.18em;
  text-transform:uppercase; color:rgba(243,233,218,.55); font-weight:400}

/* ─────────── КОНТАКТЫ ─────────── */
.contacts{display:grid; gap:16px; margin-top:56px; grid-template-columns:repeat(auto-fit,minmax(268px,1fr))}
.contacts .card{min-height:212px}
.contacts .card h3{font-size:1.7rem; letter-spacing:-.01em}
a.card.contact h3{color:var(--glow)}

/* ─────────── КОНФИГУРАТОР ─────────── */
.cfg-grid{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(28px,4vw,60px); margin-top:54px; align-items:start}
@media(max-width:980px){.cfg-grid{grid-template-columns:1fr}}

.cfg-step{margin-bottom:42px}
.cfg-step .t{display:flex; align-items:center; gap:13px; margin-bottom:20px}
.cfg-step .t i{
  width:27px; height:27px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto;
  font-style:normal; font-size:.74rem; font-weight:700; background:var(--amber); color:#231708;
}
.cfg-step .t h3{font-family:var(--serif); font-weight:400; font-size:1.42rem}
.cfg-step .t em{font-style:normal; margin-left:auto; font-size:.74rem; color:var(--faint); letter-spacing:.1em}

.swatches{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:26px}
.sw{
  width:52px; height:52px; border-radius:14px; cursor:pointer; position:relative; border:0; padding:0;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14), 0 6px 18px -8px rgba(0,0,0,.7);
  transition:transform .22s ease;
}
.sw:hover{transform:translateY(-3px) scale(1.06)}
.sw[aria-pressed=true]{box-shadow:0 0 0 2px var(--night), 0 0 0 4px var(--glow), inset 0 0 0 1px rgba(255,255,255,.2)}
.sw::after{
  content:attr(data-name); position:absolute; top:calc(100% + 9px); left:50%; transform:translateX(-50%);
  font-size:.62rem; letter-spacing:.1em; color:var(--faint); white-space:nowrap; opacity:0; transition:opacity .25s;
}
.sw:hover::after,.sw[aria-pressed=true]::after{opacity:1}

.slots{display:grid; grid-template-columns:repeat(4,1fr); gap:12px}
@media(max-width:560px){.slots{grid-template-columns:repeat(2,1fr)}}
.slot{
  position:relative; aspect-ratio:1; border-radius:16px; cursor:pointer; overflow:hidden;
  background:rgba(243,233,218,.045); border:1.5px dashed var(--line-2);
  display:grid; place-items:center; gap:6px; padding:10px; text-align:center;
  transition:border-color .3s, background .3s, transform .25s;
}
.slot:hover{border-color:rgba(255,183,101,.6); background:rgba(255,183,101,.07); transform:translateY(-2px)}
.slot .ph{font-size:1.7rem; color:rgba(243,233,218,.35); font-weight:200; line-height:1}
.slot .lb{font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--faint)}
.slot.filled{border-style:solid; border-color:rgba(255,183,101,.45); padding:0}
.slot.filled img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.slot .tag{
  position:absolute; left:0; right:0; bottom:0; z-index:2; padding:22px 8px 7px;
  background:linear-gradient(180deg,transparent,rgba(11,10,9,.92));
  font-size:.64rem; color:var(--ivory); letter-spacing:.04em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.slot .x{
  position:absolute; top:7px; right:7px; z-index:3; width:24px; height:24px; border-radius:50%;
  border:0; cursor:pointer; background:rgba(11,10,9,.72); color:var(--ivory); font-size:.9rem; line-height:1;
  display:grid; place-items:center; backdrop-filter:blur(6px); transition:background .25s;
}
.slot .x:hover{background:#C0392B}
.slot .price-tag{
  position:absolute; top:7px; left:7px; z-index:2; padding:4px 8px; border-radius:99px;
  background:rgba(11,10,9,.72); backdrop-filter:blur(6px);
  font-size:.58rem; letter-spacing:.06em; color:var(--glow); text-transform:lowercase;
}

/* ─────────── СОСТАВ КОМПЛЕКТА ─────────── */
.kit-note{
  margin-top:34px; padding:26px 28px; border-radius:20px;
  background:rgba(20,17,15,.72); border:1px solid var(--line); backdrop-filter:blur(8px);
}
.kit-note .k{font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--glow)}
.kit{list-style:none; margin:16px 0 0; padding:0; display:grid; gap:10px;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.kit li{
  position:relative; padding-left:26px; font-size:.92rem; color:rgba(243,233,218,.74); line-height:1.5;
}
.kit li::before{
  content:''; position:absolute; left:2px; top:.5em; width:9px; height:5px;
  border-left:1.5px solid var(--glow); border-bottom:1.5px solid var(--glow);
  transform:rotate(-45deg);
}
.kit li b{color:var(--ivory); font-weight:600}
.kit-note > p{margin-top:18px; font-size:.84rem; color:var(--faint); line-height:1.6}
.kit-note > p b{color:var(--glow); font-weight:600}
.sum-line .nb{color:var(--faint)}
.hint{margin-top:16px; font-size:.78rem; color:var(--faint); line-height:1.6}
.hint b{color:var(--ivory)}
.hint a{color:var(--glow); text-decoration:underline; text-underline-offset:3px}
.cfg-actions{display:flex; gap:12px; flex-wrap:wrap; margin-top:38px}
.cfg-step .cfg-actions{margin-top:20px}

/* сводка */
.summary{
  position:sticky; top:92px; border-radius:24px; padding:30px;
  background:rgba(18,15,13,.86); border:1px solid var(--line);
  backdrop-filter:blur(14px); overflow:hidden;
}
.summary h3{font-family:var(--serif); font-weight:400; font-size:1.4rem; margin-bottom:4px}
.summary .sub{font-size:.78rem; color:var(--faint); margin-bottom:24px}
.sum-cube{margin:6px 0 22px; --cw:126px; min-height:300px}
.sum-line{display:flex; justify-content:space-between; gap:14px; padding:11px 0; border-top:1px solid var(--line); font-size:.88rem}
.sum-line span:first-child{color:rgba(243,233,218,.68)}
.sum-line b{font-weight:600; white-space:nowrap}
.sum-line.muted{color:var(--faint)}
.sum-total{
  display:flex; justify-content:space-between; align-items:flex-end; gap:14px;
  margin-top:18px; padding-top:20px; border-top:1px solid var(--line);
}
.sum-total .lbl{font-size:.66rem; letter-spacing:.22em; text-transform:uppercase; color:var(--faint)}
.sum-total .v{font-family:var(--serif); font-size:2.3rem; line-height:1; color:var(--glow)}
.sum-total .old{font-size:.9rem; color:var(--faint); text-decoration:line-through}
.save-pill{
  display:inline-flex; align-items:center; gap:6px; margin-top:14px; padding:8px 14px; border-radius:99px;
  background:rgba(255,183,101,.12); border:1px solid rgba(255,183,101,.3);
  color:var(--glow); font-size:.72rem; letter-spacing:.08em;
}
.summary .warn{margin-top:16px; font-size:.78rem; color:#E8A13C; display:none}
.summary.incomplete .warn{display:block}
.summary .btn{margin-top:20px}
.fine{margin-top:14px; font-size:.72rem; color:var(--faint); line-height:1.55}

/* ─────────── ПРАВОВАЯ СТРАНИЦА ─────────── */
.legal-page{position:relative; z-index:10; min-height:100svh; padding:clamp(96px,12vh,150px) 0 96px}
.legal{max-width:820px; margin:0 auto; padding-inline:var(--pad)}
.legal .back{display:inline-flex; align-items:center; gap:8px; font-size:.8rem; letter-spacing:.04em;
  color:var(--faint); margin-bottom:30px; transition:color .25s}
.legal .back:hover{color:var(--ivory)}
.legal h1{font-family:var(--serif); font-weight:400; font-size:clamp(1.9rem,4.4vw,3rem); line-height:1.06; margin-bottom:14px}
.legal .updated{font-size:.8rem; color:var(--faint); margin-bottom:8px}
.legal .req-card{
  margin:26px 0 40px; padding:22px 24px; border-radius:16px;
  background:rgba(20,17,15,.72); border:1px solid var(--line); backdrop-filter:blur(8px);
  display:grid; gap:9px; font-size:.9rem;
}
.legal .req-card div{display:flex; gap:14px; justify-content:space-between; flex-wrap:wrap}
.legal .req-card dt{color:var(--faint)} .legal .req-card dd{margin:0; color:var(--ivory); text-align:right}
.legal .req-card a{color:var(--glow)}
.legal h2{font-family:var(--serif); font-weight:400; font-size:clamp(1.3rem,2.6vw,1.7rem);
  margin:38px 0 14px; padding-top:22px; border-top:1px solid var(--line)}
.legal h2:first-of-type{border-top:0; padding-top:0}
.legal p, .legal li{color:rgba(243,233,218,.78); font-size:.98rem; line-height:1.72}
.legal p + p{margin-top:12px}
.legal ul{margin:12px 0 0; padding-left:22px; display:grid; gap:8px}
.legal ul li::marker{color:var(--glow)}
.legal a{color:var(--glow); text-decoration:underline; text-underline-offset:3px}
.legal strong{color:var(--ivory); font-weight:600}
.legal .foot-note{margin-top:44px; padding-top:22px; border-top:1px solid var(--line);
  font-size:.82rem; color:var(--faint)}

/* ─────────── COOKIE ─────────── */
.cookie{
  position:fixed; left:clamp(14px,3vw,26px); bottom:clamp(14px,3vw,26px); z-index:140;
  width:min(420px,calc(100vw - 28px)); padding:20px 22px; border-radius:18px;
  background:rgba(16,14,12,.94); backdrop-filter:blur(18px);
  border:1px solid var(--line-2); box-shadow:0 24px 60px -24px rgba(0,0,0,.9);
  animation:cookiein .5s cubic-bezier(.2,.8,.3,1);
}
@keyframes cookiein{from{opacity:0; transform:translateY(16px)}to{opacity:1; transform:none}}
.cookie p{font-size:.84rem; line-height:1.6; color:rgba(243,233,218,.82)}
.cookie a{color:var(--glow); text-decoration:underline; text-underline-offset:3px}
.cookie-btns{display:flex; gap:10px; flex-wrap:wrap; margin-top:16px}
.cookie-btns .btn{flex:1 1 auto}
@media(max-width:620px){
  /* уводим над sticky-баром, чтобы не перекрывались */
  .cookie{bottom:76px}
}

/* ─────────── МОДАЛКИ ─────────── */
.modal{
  position:fixed; inset:0; z-index:300; display:none; align-items:center; justify-content:center;
  padding:clamp(12px,3vw,40px); background:rgba(6,6,7,.82); backdrop-filter:blur(10px);
}
.modal.open{display:flex; animation:fade .3s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal-box{
  position:relative; width:min(1060px,100%); max-height:min(88svh,900px);
  display:flex; flex-direction:column; overflow:hidden;
  border-radius:24px; background:#141110; border:1px solid var(--line);
  box-shadow:0 40px 120px -30px rgba(0,0,0,.85); animation:pop .35s cubic-bezier(.2,.8,.3,1);
}
@keyframes pop{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.modal-head{display:flex; align-items:center; gap:16px; padding:22px clamp(18px,3vw,30px); border-bottom:1px solid var(--line); flex-wrap:wrap}
.modal-head h3{font-family:var(--serif); font-weight:400; font-size:1.35rem; margin-right:auto}
.mcount{font-size:.78rem; color:var(--faint)}
.modal-close{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--line); background:none; cursor:pointer;
  display:grid; place-items:center; font-size:1.1rem; color:var(--ivory);
  transition:background .25s, transform .25s;
}
.modal-close:hover{background:rgba(243,233,218,.1); transform:rotate(90deg)}
.tabs{display:flex; gap:6px; padding:16px clamp(18px,3vw,30px) 0; flex-wrap:wrap}
.tab{
  padding:11px 20px; border-radius:99px; border:1px solid var(--line); background:none; cursor:pointer;
  font-size:.8rem; letter-spacing:.04em; color:var(--ivory); transition:.25s;
}
.tab[aria-selected=true]{background:var(--ivory); color:#171310; border-color:var(--ivory)}
.filters{display:flex; gap:8px; flex-wrap:wrap; padding:16px clamp(18px,3vw,30px) 4px}
.chip{
  padding:8px 15px; border-radius:99px; border:1px solid var(--line); background:none; cursor:pointer;
  font-size:.74rem; color:rgba(243,233,218,.72); transition:.22s;
}
.chip:hover{border-color:var(--line-2); color:var(--ivory)}
.chip[aria-pressed=true]{background:var(--amber); border-color:var(--amber); color:#231708; font-weight:600}
/* Активная вкладка должна занять оставшуюся высоту модалки и дать
   .modal-body прокручиваться. Без этого длинный список (4 фото +
   подсказка) обрезался, и до нижних граней нельзя было добраться.
   :not([hidden]) обязателен — иначе id-селектор перебил бы скрытие. */
#tabCatalog:not([hidden]), #tabOwn:not([hidden]){
  display:flex; flex-direction:column; flex:1 1 auto; min-height:0;
}
.modal-body{overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding:18px clamp(18px,3vw,30px) clamp(22px,3vw,30px); flex:1 1 auto; min-height:0}
.modal-body::-webkit-scrollbar{width:9px}
.modal-body::-webkit-scrollbar-thumb{background:var(--line-2); border-radius:9px}
@media(max-width:600px){
  .modal-box{max-height:92svh}
  .drop{padding:24px 16px}
}

.cat-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(136px,1fr)); gap:14px}
.cat-card{
  position:relative; border-radius:14px; overflow:hidden; cursor:pointer; border:1px solid var(--line);
  background:#221c16; text-align:left; padding:0; transition:transform .25s ease, box-shadow .25s;
}
.cat-card:hover{transform:translateY(-4px); box-shadow:0 16px 34px -18px rgba(0,0,0,.9)}
.cat-card img{width:100%; aspect-ratio:1; object-fit:cover}
.cat-card .meta{display:block; padding:11px 12px 13px; background:rgba(28,24,21,.92)}
.cat-card .meta b{display:block; font-size:.8rem; font-weight:600; line-height:1.25; color:var(--ivory)}
.cat-card .meta span{display:block; margin-top:4px; font-size:.7rem; color:var(--faint)}
.cat-card .p{position:absolute; top:8px; right:8px; padding:4px 9px; border-radius:99px;
  background:rgba(11,10,9,.78); color:var(--glow); font-size:.66rem; backdrop-filter:blur(6px)}

.drop{
  display:block; border:1.5px dashed var(--line-2); border-radius:18px; padding:34px 22px; text-align:center;
  background:rgba(243,233,218,.035); transition:.28s; cursor:pointer; position:relative;
}
.drop.over{border-color:var(--amber); background:rgba(232,155,60,.12)}
.drop svg{margin:0 auto 14px}
.drop h4{font-size:1.02rem; font-weight:600; margin-bottom:6px}
.drop p{font-size:.8rem; color:var(--faint)}
.drop input{position:absolute; inset:0; opacity:0; cursor:pointer}
.mine{display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:12px; margin-top:20px}
.mine .m{position:relative; border-radius:12px; overflow:hidden; aspect-ratio:1; cursor:pointer; border:1px solid var(--line)}
.mine .m img{width:100%; height:100%; object-fit:cover}
.mine .m .p{position:absolute; top:6px; right:6px; padding:3px 8px; border-radius:99px;
  background:rgba(11,10,9,.78); color:var(--glow); font-size:.62rem}
.mine .m .del{position:absolute; bottom:6px; right:6px; width:24px; height:24px; border-radius:50%;
  border:0; background:rgba(11,10,9,.78); color:#fff; cursor:pointer; font-size:.8rem; display:grid; place-items:center}
.mine .m .del:hover{background:#C0392B}

.done-box{width:min(480px,100%); text-align:center; padding:44px 34px}
.done-box .ic{
  width:66px; height:66px; margin:0 auto 22px; border-radius:50%; display:grid; place-items:center;
  background:rgba(232,155,60,.16); border:1px solid rgba(232,155,60,.4); font-size:1.7rem; color:var(--glow);
}
.done-box h3{font-family:var(--serif); font-weight:400; font-size:1.7rem; margin-bottom:12px}
.done-box p{color:rgba(243,233,218,.7); font-size:.94rem; margin-bottom:26px}
.done-box pre{
  text-align:left; background:rgba(243,233,218,.05); border:1px solid var(--line); border-radius:14px;
  padding:16px; font-size:.76rem; line-height:1.6; max-height:220px; overflow:auto;
  white-space:pre-wrap; word-break:break-word; margin-bottom:22px; color:rgba(243,233,218,.85);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

/* ─────────── ФОРМА ─────────── */
.order-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.82fr); gap:clamp(28px,4vw,64px); margin-top:52px; align-items:start}
@media(max-width:920px){.order-grid{grid-template-columns:1fr}}
.field{margin-bottom:20px}
.field label{display:block; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--faint); margin-bottom:9px}
.field label a{color:var(--glow); text-decoration:underline; text-transform:none; letter-spacing:0}
.field input,.field select,.field textarea{
  width:100%; padding:15px 17px; border-radius:13px; background:rgba(243,233,218,.05);
  border:1px solid var(--line); outline:none; font-size:.96rem; color:var(--ivory);
  transition:border-color .25s, box-shadow .25s, background .25s;
}
.field select option{background:#141110; color:var(--ivory)}
.field input::placeholder,.field textarea::placeholder{color:rgba(243,233,218,.34)}
.field textarea{min-height:104px; resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--amber); background:rgba(243,233,218,.08); box-shadow:0 0 0 4px rgba(232,155,60,.14);
}
.field .err{display:none; margin-top:7px; font-size:.76rem; color:#E8705F}
.field.bad input,.field.bad select{border-color:#C0392B}
.field.bad .err{display:block}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:16px}
@media(max-width:560px){.row2{grid-template-columns:1fr}}
.check{display:flex; gap:11px; align-items:flex-start; font-size:.8rem; color:rgba(243,233,218,.72); line-height:1.5; margin-bottom:20px}
.check input{width:18px; height:18px; margin-top:2px; accent-color:var(--amber); flex:0 0 auto}
.check a{color:var(--glow); text-decoration:underline; text-underline-offset:3px}

.order-side{
  border-radius:24px; padding:30px; background:rgba(18,15,13,.86);
  border:1px solid var(--line); backdrop-filter:blur(14px);
}
.order-side h3{font-family:var(--serif); font-weight:400; font-size:1.4rem; margin-bottom:20px}
.pay-note{
  margin-top:18px; padding:15px 17px; border-radius:14px;
  background:rgba(232,155,60,.12); border:1px solid rgba(232,155,60,.32);
  font-size:.8rem; line-height:1.55; color:rgba(243,233,218,.82);
}
.pay-note b{color:var(--glow)}
.order-side .fine a{color:var(--glow)}

/* ─────────── FAQ ─────────── */
.faq{margin-top:46px; border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  list-style:none; cursor:pointer; padding:24px 44px 24px 0; position:relative;
  font-size:clamp(1rem,1.9vw,1.24rem); font-weight:500; transition:color .25s;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--glow)}
.faq summary::after{
  content:''; position:absolute; right:8px; top:50%; width:13px; height:13px;
  border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
  transform:translateY(-70%) rotate(45deg); transition:transform .3s;
}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq .a{padding:0 60px 26px 0; color:rgba(243,233,218,.7); font-size:.96rem; line-height:1.7}

/* ─────────── ФУТЕР + STICKY ─────────── */
footer{
  position:relative; z-index:10; background:rgba(7,7,8,.94); backdrop-filter:blur(16px);
  color:var(--faint); padding:62px 0 120px; font-size:.84rem; border-top:1px solid var(--line);
}
footer .fgrid{display:flex; justify-content:space-between; gap:32px; flex-wrap:wrap; align-items:flex-start}
footer .logo{font-family:var(--serif); font-size:1.3rem; letter-spacing:.3em; color:var(--ivory)}
footer .fnote{margin-top:14px; max-width:32ch}
footer a:hover{color:var(--glow)}
footer .cols{display:flex; gap:56px; flex-wrap:wrap}
footer .cols div{display:grid; gap:9px}
footer .cols b{color:rgba(243,233,218,.85); font-weight:500; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; margin-bottom:4px}
footer .hi{color:var(--ivory)}
footer .fbottom{margin-top:44px; padding-top:22px; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; font-size:.76rem}
footer .fbottom-links{display:flex; gap:20px; flex-wrap:wrap}
footer .fbottom-links a{text-decoration:underline; text-underline-offset:3px}
footer .fbottom-links a:hover{color:var(--glow)}

.sticky-bar{
  position:fixed; left:0; right:0; bottom:0; z-index:130;
  display:flex; align-items:center; gap:16px; padding:12px var(--pad);
  background:rgba(11,11,12,.92); backdrop-filter:blur(18px);
  border-top:1px solid var(--line); color:var(--ivory);
  transform:translateY(110%); transition:transform .5s cubic-bezier(.65,0,.35,1);
}
.sticky-bar.show{transform:none}
.sticky-bar .p{display:flex; align-items:baseline; gap:10px; margin-right:auto; min-width:0}
.sticky-bar .p b{font-family:var(--serif); font-size:1.5rem; color:var(--glow); white-space:nowrap}
.sticky-bar .p s{color:var(--faint); font-size:.86rem}
.sticky-bar .p em{font-style:normal; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--faint)}
@media(max-width:620px){.sticky-bar .p s,.sticky-bar .p em{display:none}}

.toast{
  position:fixed; z-index:320; left:50%; bottom:104px; transform:translate(-50%,20px);
  padding:15px 24px; border-radius:99px; background:var(--ivory); color:#171310;
  font-size:.86rem; opacity:0; pointer-events:none; transition:.35s cubic-bezier(.2,.8,.3,1);
  box-shadow:0 18px 44px -18px rgba(0,0,0,.8); max-width:calc(100vw - 40px); text-align:center;
}
.toast.show{opacity:1; transform:translate(-50%,0)}

@media print{
  #stage,#prog,#spotlight,.sticky-bar,.scroll-cue,.nav,.cookie{display:none}
  .js .rv{opacity:1 !important; transform:none !important}
  .sec{background:none; backdrop-filter:none}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{opacity:1; transform:none}
  .marquee .track{animation:none}
  .scroll-cue span{animation:none}
  .badge .dot{animation:none}
}
