/* ============================================================
   base.css — сброс, каркас, типографика, утилиты, keyframes
   ============================================================ */

/* ---- Reset ---- */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{
  background:var(--bg);color:var(--ink);
  font-family:'Manrope','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  line-height:1.5;overflow-x:clip;-webkit-font-smoothing:antialiased;position:relative;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--fire);outline-offset:3px;border-radius:4px}
.skip-link{
  position:fixed;top:calc(12px + env(safe-area-inset-top));left:18px;z-index:200;
  width:1px;height:1px;padding:0;overflow:hidden;white-space:nowrap;clip-path:inset(50%);
  border-radius:8px;background:var(--ink);color:#fff;font-weight:800;
}
/* Mobile Safari may restore focus to the first link after reopening a page.
   Reveal the skip link only after a real keyboard Tab, not from restored focus. */
.is-keyboard-nav .skip-link:focus-visible{width:auto;height:auto;padding:10px 14px;overflow:visible;clip-path:none}

/* ---- Фоновая атмосфера: тёплый живой фон на весь сайт (fixed = виден на
   каждой секции, не только в hero). Слои: базовый градиент → дрейфующие
   blob-пятна (mesh-like глубина) → тлеющие искры → зерно поверх всего. ---- */
.bg-aurora{
  position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none;
  background:
    radial-gradient(50% 40% at 84% 2%,rgba(255,90,31,.08),transparent 62%),
    radial-gradient(45% 40% at 4% 20%,rgba(255,154,61,.06),transparent 60%),
    radial-gradient(55% 42% at 50% 106%,rgba(255,122,61,.05),transparent 60%),
    linear-gradient(180deg,#fdfcfa 0%,#faf6f1 55%,#f7efe5 100%);
}
.bg-aurora__blob{position:absolute;border-radius:50%;filter:blur(70px);will-change:transform}
.bg-aurora__blob--a{top:-14%;right:-10%;width:54vw;height:54vw;background:radial-gradient(circle,rgba(255,122,61,.24),transparent 68%);animation:blobDriftA 46s ease-in-out infinite}
.bg-aurora__blob--b{top:14%;left:-16%;width:46vw;height:46vw;background:radial-gradient(circle,rgba(255,90,31,.17),transparent 65%);animation:blobDriftB 58s ease-in-out infinite}
.bg-aurora__blob--c{bottom:-18%;left:20%;width:60vw;height:60vw;background:radial-gradient(circle,rgba(255,154,61,.15),transparent 66%);animation:blobDriftC 68s ease-in-out infinite}
@keyframes blobDriftA{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-4%,5%) scale(1.09)}}
@keyframes blobDriftB{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(6%,-4%) scale(.93)}}
@keyframes blobDriftC{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-3%,-4%) scale(1.07)}}
.bg-aurora__grain{
  position:absolute;inset:0;opacity:.025;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px 180px;
}

/* ---- Каркас ---- */
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px;position:relative;z-index:2}

/* ---- Типографика ---- */
.eyebrow{
  display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase;color:var(--fire-deep);
  padding:8px 15px;border-radius:100px;background:var(--fire-soft);border:1px solid rgba(255,90,31,.2);
}

h1,h2,h3{line-height:1.02;letter-spacing:-.025em;font-weight:900;color:var(--ink)}
.lead{color:var(--ink-2);font-size:clamp(16px,1.5vw,20px);line-height:1.55;font-weight:500}
.grad-text{background:linear-gradient(100deg,var(--fire-deep) 0%,var(--fire) 50%,var(--ember) 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shineSweep 7s linear infinite}

/* ---- Премиальный 3D-шрифт заголовков: слоистая экструзия text-shadow (в
   sections/story.css у .story__headline и sections/final.css у .final h2)
   даёт объём без WebGL; keyframes
   общие — shineSweep для grad-text, text3dTilt для лёгкого наклона в покое
   (перспектива задаётся на предке: .story__copy/.final__panel). ---- */
@keyframes shineSweep{0%{background-position:0% 0}100%{background-position:220% 0}}
@keyframes text3dTilt{
  0%,100%{transform:perspective(700px) rotateX(0deg) rotateY(0deg)}
  50%{transform:perspective(700px) rotateX(2.5deg) rotateY(-3.5deg)}
}

/* ---- Reveal при скролле ---- */
[data-reveal]{opacity:0;transform:translateY(38px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-reveal].in{opacity:1;transform:none}

/* ---- Общие keyframes ---- */
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes lineUp{to{transform:translateY(0)}}

/* ---- Доступность: уважаем reduced-motion ---- */
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1;transform:none}
}
