/* ---------- 03–06: 3D-скульптура ведёт по блокам и меняет материал ---------- */
.sculpt {
  position: relative; background: #0d0c12; color: #efe9df;
  --sc-muted: rgba(239, 233, 223, .56); --sc-line: rgba(239, 233, 223, .14); --sc-acc: #d9c4ff;
}
/* сцена закреплена внутри секции: canvas, ореол и подпись материала.
   Обёртка на всю высоту секции — sticky не выходит за её низ, сцена уезжает вместе с последним блоком */
.sculpt { overflow: clip; }
.sculpt__track { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.sculpt__stage { position: sticky; top: 0; height: 100svh; overflow: hidden; will-change: transform; }   /* свой слой: липкая сцена не перерисовывается при прокрутке */
.sculpt__stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; opacity: 0; transition: opacity 1.6s var(--ease-out); }
.sculpt__stage canvas.is-on { opacity: 1; }
.sculpt__halo { position: absolute; left: 0; top: 0; width: 80vmin; height: 80vmin; margin: -40vmin 0 0 -40vmin; border-radius: 50%; will-change: transform; }
.sculpt__hud { position: absolute; left: var(--pad); right: var(--pad); bottom: calc(var(--pad) * .7); display: grid; grid-template-columns: 1fr minmax(80px, 28vw) 1fr; align-items: center; gap: 24px; color: var(--sc-muted); }
.sculpt__hud b { color: #efe9df; font-weight: 500; }
.sculpt__hud .mat { display: inline-flex; gap: 8px; }
.sculpt__hud .roll { display: inline-block; height: 1.3em; overflow: hidden; vertical-align: top; }
.sculpt__hud .roll span { display: block; height: 1.3em; color: #efe9df; }
.sculpt__hud .line { height: 1px; background: var(--sc-line); position: relative; }
.sculpt__hud .line i { position: absolute; inset: 0; background: #efe9df; transform-origin: left; transform: scaleX(0); }
.sculpt__hud .idx { justify-self: end; font-variant-numeric: tabular-nums; }

.sc-panel { position: relative; z-index: 1; min-height: 100svh; display: grid; align-items: center; padding: calc(var(--pad) * 3) var(--pad) calc(var(--pad) * 2.6); }
.sc-eyebrow { display: flex; align-items: center; gap: 10px; color: var(--sc-acc); margin-bottom: clamp(16px, 2.4vh, 28px); }
.sc-eyebrow::before { content: ''; width: 28px; height: 1px; background: currentColor; }
.sc-panel h2 { font: 700 clamp(42px, 5.6vw, 100px)/.9 var(--font-display); letter-spacing: -.05em; }
.sc-panel h2 em { font: italic 400 1.1em/.8 var(--font-serif); letter-spacing: -.02em; color: var(--sc-acc); }
.sc-panel h2 .ln { padding-bottom: .06em; }
.sc-panel p { font-size: clamp(15px, 1.2vw, 19px); line-height: 1.5; color: var(--sc-muted); max-width: 38ch; text-wrap: pretty; margin-top: 22px; }

.sc-left .inner { max-width: min(48vw, 760px); }
.sc-right .inner { justify-self: end; max-width: min(46vw, 700px); }
.sc-bottom { align-items: end; text-align: center; }
.sc-bottom .inner { justify-self: center; display: grid; justify-items: center; }
.sc-bottom h2 { font-size: clamp(48px, 7.6vw, 136px); }

.sc-stats { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: clamp(20px, 3vw, 48px); margin-top: clamp(26px, 4vh, 44px); padding-top: 18px; border-top: 1px solid var(--sc-line); }
.sc-stats b { display: block; font: italic 400 clamp(30px, 3vw, 50px)/1 var(--font-serif); color: #efe9df; margin-bottom: 6px; }
.sc-stats span { color: var(--sc-muted); }

.sc-rows { margin-top: clamp(18px, 3vh, 34px); }
.sc-rows div { display: grid; grid-template-columns: 3ch 1fr auto; align-items: baseline; gap: 18px; padding: clamp(12px, 1.8vh, 20px) 0; border-top: 1px solid var(--sc-line); }
.sc-rows div:last-child { border-bottom: 1px solid var(--sc-line); }
.sc-rows strong { font: 600 clamp(22px, 2.3vw, 38px)/1.05 var(--font-display); letter-spacing: -.03em; text-transform: none; color: #efe9df; }
.sc-rows strong em { font: italic 400 1.1em/1 var(--font-serif); letter-spacing: 0; }
.sc-rows span { color: var(--sc-muted); }

.sc-tools { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: clamp(22px, 3.6vh, 38px); }
.sc-tools span { padding: 10px 16px; border-radius: 99px; border: 1px solid var(--sc-line); color: #efe9df; }

@media (max-width: 760px) {
  .sculpt__hud { grid-template-columns: 1fr auto; }
  .sculpt__hud .line { display: none; }
  .sc-panel { align-items: end; padding-bottom: calc(var(--pad) * 3.6); }
  .sc-left .inner, .sc-right .inner { max-width: none; justify-self: stretch; }
  .sc-panel h2 { font-size: clamp(38px, 10.6vw, 60px); }
  .sc-bottom h2 { font-size: clamp(44px, 12.4vw, 72px); }
  .sc-rows div { grid-template-columns: 3ch 1fr; }
  .sc-rows div span:last-child { display: none; }
  .sc-stats { gap: 20px; }
}
@media (max-width: 760px) and (max-height: 760px) { .sc-panel p + p, .sc-rows div:nth-child(n+4) { display: none; } }
