/* ---------- Scroll reveal ---------- */
[data-reveal].pre{opacity:0;transform:translateY(46px)}
[data-reveal].pre.in{opacity:1;transform:none;transition:opacity 1s var(--ease) var(--d,0s),transform 1.1s var(--ease) var(--d,0s)}
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.split .w > span{display:inline-block}
.split.pre{opacity:1;transform:none}
.split.pre .w > span{transform:translateY(110%) rotate(3deg)}
.split.pre.in .w > span{transform:none;transition:transform 1s var(--ease) calc(var(--i) * 55ms)}
.scrub .sw{transition:opacity .35s ease,color .35s}
.scrub.armed .sw{opacity:.16}
.scrub.armed .sw.on{opacity:1}

/* ---------- Sections ---------- */
section{padding-block:clamp(56px,8vw,100px)}
.sec-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px 32px;margin-bottom:clamp(28px,4vw,44px)}
h2{font-family:var(--f-display);font-weight:600;font-size:clamp(32px,4.8vw,56px);line-height:1.02;letter-spacing:-.03em;margin:10px 0 0;text-wrap:balance}
.sec-head p{max-width:44ch;color:var(--muted);margin:0}

.spot{position:relative;isolation:isolate;border:1px solid var(--line);border-radius:var(--r);background:color-mix(in srgb,var(--surface) 72%,transparent);
  transition:transform .45s var(--ease),border-color .35s,box-shadow .45s,opacity 1s var(--ease)}
.spot::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;opacity:0;transition:opacity .4s;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),var(--accent-soft),transparent 60%)}
.spot::after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;padding:1px;opacity:0;transition:opacity .4s;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),var(--accent),transparent 65%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.spot:hover{box-shadow:var(--shadow)}
.spot:hover::before,.spot:hover::after{opacity:1}
.lift:hover{transform:translateY(-4px)}

