/* Overlapping portrait fade and Reality4-style masked letter reveals. */
.hero{background:#000}
.hero-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.reveal-word{white-space:nowrap}
.hero-quote .reveal-visual,.hero-quote .reveal-word,.hero-quote .reveal-mask,.hero-quote .reveal-letter{color:inherit}
@keyframes portrait-enter{from{opacity:0}to{opacity:1}}
@keyframes letter-enter{from{opacity:0;transform:translateY(115%) rotate(4deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes soft-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes stars-enter{from{opacity:0}to{opacity:.4}}
@media(prefers-reduced-motion:no-preference){
 .hero .portrait img{animation:portrait-enter 1.5s .3s both}
 .hero>.hero-stars{animation:stars-enter 1.6s .55s both}
 .hero .hero-heading,.hero .hero-quote,.hero .linkedin,.hero .scroll{animation:soft-enter 1.1s .4s both}
 .hero.letters-ready .hero-heading,.hero.letters-ready .hero-quote{animation:none}
 .reveal-mask{display:inline-block;overflow:clip;vertical-align:bottom;padding-block:.12em;margin-block:-.12em}
 .reveal-letter{display:inline-block;animation:letter-enter 1.05s var(--letter-delay,.4s) cubic-bezier(.22,1,.36,1) both}
 .hero .linkedin{animation-delay:1.75s}.hero .scroll{animation-delay:1.95s}
 .hero.entrance-loading .reveal-letter,.hero.entrance-loading .hero-heading,.hero.entrance-loading .hero-quote,.hero.entrance-loading .linkedin,.hero.entrance-loading .scroll{animation-play-state:paused!important}
 .hero.entrance-skipped *{animation:none!important}
}
@media(prefers-reduced-motion:reduce){.hero .reveal-letter{opacity:1;transform:none;animation:none}}

.back-to-top{position:fixed;right:32px;bottom:max(28px,env(safe-area-inset-bottom));z-index:20;display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:14px 18px;border:1px solid #8f7653;border-radius:2px;background:#10100ff2;color:#d5b98d;font:500 11px/1.2 'Space Grotesk',sans-serif;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 4px 24px #0006;cursor:pointer;transition:background .2s,color .2s}
.back-to-top[hidden]{display:none}
.back-to-top:hover{background:#282116;color:#fff}
.back-to-top:focus-visible{outline:2px solid #d5b98d;outline-offset:4px}
.back-to-top svg{width:16px;height:16px;flex:none}
#gallery[open]~.back-to-top{display:none}
@media(max-width:767px){.back-to-top{right:18px;bottom:max(18px,env(safe-area-inset-bottom));padding:13px 15px;font-size:10px;gap:9px}}

.showreel{position:relative}
