/* DAP STUDIO — Cinematic motion layer (v50): tendril cursor, smooth scroll, blur-in text.
   Loaded only with the "Cinematic Studio" theme. It adds motion only — the page's own layout, colours,
   cursor and section entrances are left exactly as they were. */
:root{--dm-ease:cubic-bezier(.22,1,.36,1)}

/* ---------- Lenis smooth scroll ---------- */
html.dm-on{scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:clip}
.lenis.lenis-smooth iframe{pointer-events:none}

/* ---------- tendril cursor canvas (the system cursor stays visible) ---------- */
.dm-tendrils{position:fixed;inset:0;width:100vw;height:100vh;z-index:2147483000;pointer-events:none}
@media (max-width:1120px),(hover:none),(pointer:coarse){.dm-tendrils{display:none}}

/* ---------- text: words / letters rise out of a blur ---------- */
.dm-split .dm-l{display:inline-block!important;white-space:nowrap;max-width:100%}
.dm-split .dm-w,.dm-split .dm-word,.dm-split .dm-c{display:inline-block!important;width:auto!important;margin:0!important;padding:0!important}
.dm-split .dm-word{white-space:nowrap}
html.dm-armed .dm-words .dm-w{opacity:0;filter:blur(4px);transform:translate3d(0,.6em,0);
  transition:opacity .7s ease,filter .8s ease,transform .95s var(--dm-ease);transition-delay:calc(min(var(--i,0),45) * 24ms)}
html.dm-armed .dm-letters .dm-c{opacity:0;filter:blur(8px);transform:translate3d(0,.32em,0);
  transition:opacity .6s ease,filter .75s ease,transform .9s var(--dm-ease);transition-delay:calc(min(var(--i,0),60) * 22ms + 60ms)}
html.dm-armed .dm-split .dm-keep{opacity:0;filter:blur(8px);translate:0 .25em;transition:opacity .7s ease,filter .85s ease,translate 1s var(--dm-ease);transition-delay:calc(min(var(--i,0),60) * 22ms + 60ms)}
html.dm-armed .dm-lines .dm-l{opacity:0;filter:blur(4px);transform:translate3d(0,.7em,0);
  transition:opacity .75s ease,filter .85s ease,transform 1s var(--dm-ease);transition-delay:calc(min(var(--i,0),14) * 85ms)}
html.dm-armed .dm-split.dm-in .dm-w,html.dm-armed .dm-split.dm-in .dm-c,html.dm-armed .dm-split.dm-in .dm-l{opacity:1;filter:none;transform:none}
html.dm-armed .dm-split.dm-in .dm-keep{opacity:1;filter:none;translate:0 0}
/* rewinding happens below the fold (scrolled back up): reset instantly, so it costs no animation work */
html.dm-armed .dm-split:not(.dm-in) .dm-w,html.dm-armed .dm-split:not(.dm-in) .dm-c,html.dm-armed .dm-split:not(.dm-in) .dm-keep,html.dm-armed .dm-split:not(.dm-in) .dm-l,html.dm-armed .dm-img:not(.dm-in){transition:none}

/* ---------- pictures: soft blur to sharp ---------- */
html.dm-armed .dm-img{opacity:0;filter:blur(14px);scale:1.06;transition:opacity 1s ease,filter 1.2s ease,scale 1.6s var(--dm-ease),transform .8s var(--ease,ease)}
html.dm-armed .dm-img.dm-in{opacity:1;filter:none;scale:1}

/* ---------- 3D stays visible behind every section ----------
   The content cards were ~90% opaque, so from "Skills" downward they hid most of the studio film.
   In the Cinematic theme (and only once the 3D is actually running) they become tinted glass. */
html.scene-studio.scene-ready:not(.scene-off) .bcard,
html.scene-studio.scene-ready:not(.scene-off) .aw-inner,
html.scene-studio.scene-ready:not(.scene-off) .tm-inner,
html.scene-studio.scene-ready:not(.scene-off) .chron-item,
html.scene-studio.scene-ready:not(.scene-off) .quote{background:rgba(20,13,9,.58)!important;-webkit-backdrop-filter:blur(6px) saturate(1.15);backdrop-filter:blur(6px) saturate(1.15)}
html.scene-studio.scene-ready:not(.scene-off) .meter,
html.scene-studio.scene-ready:not(.scene-off) .cp-stat,
html.scene-studio.scene-ready:not(.scene-off) .chron-box,
html.scene-studio.scene-ready:not(.scene-off) .kv li{background-color:rgba(23,15,11,.5)!important}
/* nested glass would blur twice: inner cards stay plain translucent */
html.scene-studio.scene-ready:not(.scene-off) .bcard .bcard,
html.scene-studio.scene-ready:not(.scene-off) .bcard .chron-item{-webkit-backdrop-filter:none;backdrop-filter:none}
/* phones: no backdrop blur (GPU), a little more tint instead */
@media (max-width:820px){
  html.scene-studio.scene-ready:not(.scene-off) .bcard,html.scene-studio.scene-ready:not(.scene-off) .aw-inner,
  html.scene-studio.scene-ready:not(.scene-off) .tm-inner,html.scene-studio.scene-ready:not(.scene-off) .chron-item,
  html.scene-studio.scene-ready:not(.scene-off) .quote{background:rgba(20,13,9,.74)!important;-webkit-backdrop-filter:none;backdrop-filter:none}
}

@media (prefers-reduced-motion:reduce){
  .dm-w,.dm-c,.dm-img{opacity:1!important;filter:none!important;transform:none!important;scale:none!important}
  .dm-tendrils{display:none}
}

/* ---------- scroll performance (no visual change) ---------- */
/* film HUD + scroll bar repaint on their own, never re-laying out the page */
html.scene-studio .cin-hud{contain:layout style paint}
/* the 3D canvas and the tendril canvas are standalone GPU layers */
html.scene-studio #dap-scene{will-change:opacity;transform:translateZ(0)}
/* text spans get no permanent will-change: hundreds of extra GPU layers would cost more than they save */
