/* SVG line drawing is short and one-shot on mobile. No canvas, video or blur. */
.opening-scene{position:fixed;inset:0;z-index:100;pointer-events:none;visibility:hidden}.opening-half{position:absolute;top:0;bottom:0;width:50.1%;background:var(--paper);transform:translateX(-101%)}.opening-left{left:0}.opening-right{right:0;transform:translateX(101%)}.opening-signature{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;opacity:0}.opening-signature>svg{width:85px;height:105px;fill:none;stroke:var(--cocoa);stroke-width:2.7;stroke-linecap:round}.opening-signature>span{font:43px var(--serif);margin-top:8px}.opening-signature>small{font-size:7px;letter-spacing:2.5px;margin-top:10px}.opening .opening-scene{visibility:visible}.opening .opening-left{animation:open-left 3.6s cubic-bezier(.76,0,.24,1) both}.opening .opening-right{animation:open-right 3.6s cubic-bezier(.76,0,.24,1) both}.opening .opening-signature{animation:signature 3.6s ease both}.opening .opening-signature .draw-line{stroke-dasharray:1;animation:opening-draw 1.2s ease both}.opening .opening-signature .face-eye{animation-delay:.13s}.opening .opening-signature .face-detail{animation-delay:.22s}.word-mask{overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}.opening .word-mask>span{display:block;animation:words 3.6s cubic-bezier(.2,.7,.2,1) both}.opening .word-mask:nth-child(2)>span{animation-delay:.09s}.opening .word-mask:nth-child(3)>span{animation-delay:.18s}.opening .hero-enter{animation:hero-entry 3.6s ease both}.opening .hero-description{animation-delay:.08s}.opening .hero-actions{animation-delay:.14s}.opening .hero-meta{animation-delay:.2s}.has-motion .reveal{opacity:0;transform:translateY(20px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}.has-motion .reveal.is-visible{opacity:1;transform:none}.assembly{--draw:1}.has-motion .assembly{--draw:0}.has-motion .assembly .draw-line{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--draw))}.has-motion .portrait-frame{transform:translateY(calc((1 - var(--draw))*22px));opacity:calc(.35 + var(--draw)*.65)}.has-motion .portrait-note{transform:rotate(calc(-5deg + (1 - var(--draw))*8deg)) translateY(calc((1 - var(--draw))*26px));opacity:var(--draw)}.has-motion .eye-composition .iris{opacity:var(--draw)}.portrait-frame,.portrait-note{transition:opacity .3s}.has-motion .assembly.is-built{--draw:1}.ribbon-track{animation:ribbon-scroll 55s linear infinite;animation-play-state:paused}.is-running .ribbon-track{animation-play-state:running}.has-motion .portrait.is-running .orbit-two{animation:orbit 80s linear infinite}.has-motion .portrait.is-running .portrait-note{animation:float-note 7s ease-in-out infinite}.has-motion .eye-composition.is-built.is-running .eye-spark{animation:spark-breathe 5s ease-in-out infinite}.has-motion .scroll-line{animation:scroll-hint 2.7s ease-in-out infinite}.tab-hidden *{animation-play-state:paused!important}.mobile-cta{animation:cta-in .3s ease both}
@keyframes open-left{0%,60%{transform:translateX(0)}100%{transform:translateX(-101%)}}@keyframes open-right{0%,60%{transform:translateX(0)}100%{transform:translateX(101%)}}@keyframes signature{0%{opacity:0;transform:translateY(5px)}12%,60%{opacity:1;transform:none}85%,100%{opacity:0;transform:translateY(-8px)}}@keyframes opening-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes words{0%,62%{transform:translateY(112%)}100%{transform:none}}@keyframes hero-entry{0%,65%{opacity:0;transform:translateY(12px)}100%{opacity:1;transform:none}}@keyframes ribbon-scroll{to{transform:translateX(-50%)}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes float-note{0%,100%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(-4deg) translateY(-5px)}}@keyframes spark-breathe{0%,100%{transform:scale(1)}50%{transform:scale(.8)}}@keyframes scroll-hint{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.55)}}@keyframes cta-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(min-width:701px){.has-motion .assembly.is-built{--draw:0}.has-motion .assembly .draw-line{stroke-dashoffset:calc(1 - var(--draw))}}
@media(max-width:700px){.has-motion .assembly .draw-line{transition:stroke-dashoffset 1.25s cubic-bezier(.3,.55,.3,1)}.has-motion .assembly .face-eye{transition-delay:.17s}.has-motion .assembly .face-detail{transition-delay:.3s}.has-motion .assembly .neck{transition-delay:.12s}.has-motion .assembly .hair-swish{transition-delay:.23s}.has-motion .portrait-frame{transition:transform .85s ease,opacity .7s ease}.has-motion .portrait-note{transition:transform .9s ease,opacity .8s ease}.has-motion .assembly .iris{transition:opacity 1s ease .35s}.has-motion .assembly .eyebrow{transition-delay:.13s}.has-motion .assembly .lashes{transition-delay:.25s}.has-motion .assembly .eye-swish{transition-delay:.3s}.has-motion .portrait.is-running .portrait-note{animation:none}.has-motion .portrait.is-running .orbit-two{animation:none}.opening .opening-signature .draw-line{animation-duration:1.2s}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.opening-scene{display:none}.reveal{opacity:1!important;transform:none!important}.word-mask>span{transform:none!important}.hero-enter{opacity:1!important;transform:none!important}.assembly{--draw:1!important}.assembly .draw-line{stroke-dasharray:none!important;stroke-dashoffset:0!important}.portrait-frame,.portrait-note{opacity:1!important}.portrait-frame{transform:none!important}.portrait-note{transform:rotate(-5deg)!important}.iris{opacity:1!important}}
