/* Scrollytelling essays (essay.js). A sticky canvas stage next to scrolling steps; one column on phones. */
html[data-page^="essay-"] main{max-width:none;padding-left:0;padding-right:0}
.essay{--ess-bg:var(--card);}
.ess-hero{max-width:52rem;margin:0 auto;padding:4.5rem 1.2rem 3.5rem;text-align:left}
.ess-kicker{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 .6rem;font-weight:600}
.ess-hero h1{font-size:clamp(2.4rem,7vw,4.6rem);line-height:1.02;margin:0 0 1rem}
.ess-lead{font-size:clamp(1.1rem,2.4vw,1.45rem);line-height:1.5;margin:0 0 1rem;max-width:42rem}
.ess-by{color:var(--muted);font-size:.9rem;margin:0}
.ess-scroll{margin:3rem 0 0;color:var(--muted);font-size:.9rem;animation:ess-bob 2.2s ease-in-out infinite}
@keyframes ess-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
.ess-wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:2rem;max-width:80rem;margin:0 auto;padding:0 1.2rem;align-items:start}
.ess-stage{position:sticky;top:4.4rem;height:calc(100vh - 5.2rem);display:flex;flex-direction:column;gap:.5rem;padding:.2rem 0}
.ess-cv{width:100%;flex:1;min-height:0;background:var(--ess-bg);border:1px solid var(--line);border-radius:14px;display:block}
.ess-cap{font-size:.92rem;color:var(--muted);min-height:2.6em;line-height:1.4}
.ess-ctl{position:absolute;top:.8rem;right:.8rem}
.ess-replay{font:inherit;font-size:.8rem;font-weight:600;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:.35rem .8rem;cursor:pointer}
.ess-replay:hover{border-color:var(--accent);color:var(--accent)}
.ess-dots{list-style:none;display:flex;gap:.4rem;margin:0;padding:0;justify-content:center}
.ess-dots li{width:.55rem;height:.55rem;border-radius:50%;background:var(--line);transition:background .25s,transform .25s}
.ess-dots li.on{background:var(--accent);transform:scale(1.35)}
.ess-motion{font-size:.8rem;color:var(--muted);margin:0}
.ess-steps{padding-bottom:30vh}
.ess-step{min-height:88vh;display:flex;flex-direction:column;justify-content:center;opacity:.38;transition:opacity .35s}
.ess-step.on{opacity:1}
.ess-n{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .4rem}
.ess-step h2{font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.15;margin:0 0 .8rem}
.ess-step p{font-size:1.08rem;line-height:1.62;margin:0}
.ess-outro{max-width:42rem;margin:4rem auto 3rem;padding:0 1.2rem}
.ess-outro ul{padding-left:1.2rem;line-height:1.9}
@media (max-width:860px){
  .ess-wrap{display:block;padding:0 1rem}
  .ess-stage{height:46vh;top:3.6rem;z-index:2;background:var(--bg);padding:.4rem 0 .3rem}
  .ess-cap{font-size:.82rem;min-height:2.3em}
  .ess-step{min-height:70vh;background:color-mix(in srgb,var(--bg) 88%,transparent);padding:0 .1rem}
  .ess-hero{padding:3rem 1rem 2rem}
}
@media (prefers-reduced-motion:reduce){.ess-scroll{animation:none}.ess-step,.ess-dots li{transition:none}}
