/* Motion enhances a fully readable page; the pause control stops every decorative effect. */
.reading-progress{position:fixed;inset:0 0 auto;height:4px;z-index:30;pointer-events:none}.reading-progress span{display:block;height:100%;background:var(--purple);transform:scaleX(0);transform-origin:left}
.motion-toggle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:46px;height:46px;border:1px solid #5b426c50;background:transparent;color:var(--purple);border-radius:50%;font-size:23px;line-height:1;transition:background .25s,transform .25s}
.motion-toggle:hover{background:var(--lime);transform:rotate(-8deg)}.motion-toggle:disabled{cursor:default;opacity:.7}.header{gap:24px}.header nav{margin-left:auto}.header>.motion-toggle{order:3}.motion-toggle-text{border:0;width:auto;height:auto;min-height:44px;border-radius:0;font-size:14px;gap:10px;line-height:1.5;text-align:left;padding:0}.motion-toggle-text:hover{transform:none;background:none}.motion-toggle-text>span:last-child{font-size:19px}.footer-bottom{align-items:center}
.hero-line{position:relative;isolation:isolate}.hero-word{display:block;position:relative;z-index:1}.hero-underline{position:absolute;left:8%;bottom:-.035em;width:84%;height:17px;overflow:visible;z-index:0;pointer-events:none}.hero-underline path{fill:none;stroke:var(--lime);stroke-width:7;stroke-linecap:round;stroke-dasharray:425;stroke-dashoffset:0}
.motion-on .hero-word{animation:word-arrive 1.1s cubic-bezier(.16,.8,.25,1) both}.motion-on .hero h1 em .hero-word{animation-delay:.16s}.motion-on .hero-underline path{animation:draw-line .9s .8s ease both}.motion-on .hero-copy>.eyebrow{animation:soft-arrive .8s .05s both}.motion-on .hero-intro{animation:soft-arrive .9s .3s both}.motion-on .hero-description{animation:soft-arrive .9s .42s both}.motion-on .hero-copy>.button{animation:soft-arrive .9s .55s both}.motion-on .hero-contact{animation:soft-arrive .9s .65s both}
.hero-photo{transform:perspective(1100px) rotateX(var(--photo-rx,0deg)) rotateY(var(--photo-ry,0deg));transition:transform .55s cubic-bezier(.2,.75,.3,1);will-change:transform}.hero-photo img{animation:none;transform:translate3d(var(--photo-x,0px),var(--photo-y,0px),0) scale(1.085);transition:transform .65s cubic-bezier(.2,.75,.3,1)}.hero-visual{perspective:1100px}.round-stamp{box-shadow:0 8px 35px #33283712}.motion-on .round-stamp > .stamp-ring{animation:stamp-orbit 32s linear infinite}.motion-on .photo-note{animation:gentle-float 5.8s ease-in-out infinite}.motion-on .note-spark{animation:spark-turn 7s ease-in-out infinite}.photo-note{filter:drop-shadow(0 2px 9px #20182150)}
.ribbon-track{gap:0;transform:none}.ribbon-group{display:flex;flex:0 0 auto;align-items:center;gap:42px;padding-right:42px}.motion-on .ribbon-track{animation:ribbon-travel 35s linear infinite;will-change:transform}.ribbon-track i{display:inline-block}.motion-on .ribbon-track i{animation:stamp-orbit 22s linear infinite}.word-ribbon:hover .ribbon-track{animation-play-state:paused}.ribbon-clip{padding-block:35px;margin-block:-35px}
.meaning-photo img{transform:translateY(var(--meaning-y,0px)) scale(1.07);transition:transform .55s ease-out}.drawn-star{transform:rotate(var(--star-turn,14deg));transition:transform .55s ease-out}.image-label{transition:transform .55s cubic-bezier(.2,.8,.3,1),box-shadow .55s}.motion-on .meaning-visual:hover .image-label{transform:rotate(0deg) translateY(-8px);box-shadow:0 15px 25px #33283712}.meaning-visual:hover .drawn-star{color:#8b699e}
.motion-on .reveal{opacity:0;transform:translateY(45px);transition:opacity .8s ease,transform .95s cubic-bezier(.16,.8,.2,1)}.motion-on .reveal.is-visible{opacity:1;transform:translateY(0)}.motion-on .meaning-copy.reveal,.motion-on .local-details.reveal,.motion-on .form-card.reveal{transition-delay:.12s}.button{position:relative;isolation:isolate}.button:before{content:'';position:absolute;inset:0;border:2px solid currentColor;border-radius:inherit;opacity:0;pointer-events:none;transition:opacity .3s,transform .4s}.button:hover:before{opacity:.18;transform:scale(1.035,1.13)}.button:hover .button-circle{transform:translate(var(--arrow-x,0px),var(--arrow-y,0px)) rotate(-7deg)}.button-circle{flex-shrink:0;transition:transform .3s cubic-bezier(.2,.8,.3,1)}.button:active{transform:translateY(0) scale(.98)}
.role-tabs button{position:relative;border-radius:2px;transition:background .35s,padding .35s,color .35s}.role-tabs button[aria-selected=true]{background:#ffffff4d}.role-tabs button:hover{background:#ffffff38}.role-panel{animation:none}.motion-on .role-panel{animation:panel-bloom .55s cubic-bezier(.2,.8,.3,1)}.panel-mark{transition:transform .6s cubic-bezier(.16,1,.3,1)}.motion-on .role-panel:hover .panel-mark{transform:rotate(24deg) scale(1.18)}.radio-options label{transition:background .25s,border-color .25s,transform .3s,box-shadow .3s}.radio-options label:has(input:checked){transform:translateX(4px);box-shadow:-4px 0 0 var(--purple)}.radio-options label:has(input:checked) i{animation:selection-pop .4s ease}.progress-track{height:4px;border-radius:10px;overflow:hidden}.progress-track span{transition:width .6s cubic-bezier(.15,.8,.2,1)}.faq details{transition:background .3s}.faq details[open]{background:#e3ddef55}.faq details[open] summary,.faq details[open]>p{padding-left:16px;padding-right:16px}.motion-on .faq details[open]>p{animation:soft-arrive .4s ease both}.faq summary{transition:padding .3s}.footer-hello em{display:inline-block;transition:transform .65s cubic-bezier(.16,.8,.2,1)}.footer-hello:hover em{transform:rotate(-5deg) translateY(-8px)}
.spark-layer{position:fixed;inset:0;z-index:25;pointer-events:none;overflow:hidden;contain:strict}.spark-particle{position:absolute;line-height:1;font-family:var(--serif);font-size:24px;pointer-events:none;animation:kind-spark .85s cubic-bezier(.1,.5,.2,1) both;will-change:transform,opacity}
@keyframes word-arrive{from{opacity:0;transform:translateY(48px) rotate(3deg);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes soft-arrive{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes draw-line{from{stroke-dashoffset:425}to{stroke-dashoffset:0}}
@keyframes stamp-orbit{to{transform:rotate(360deg)}}
@keyframes gentle-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes spark-turn{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(24deg)}}
@keyframes ribbon-travel{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes panel-bloom{from{opacity:0;transform:translateY(15px) scale(.97)}to{opacity:1;transform:none}}
@keyframes selection-pop{50%{transform:scale(1.3)}}
@keyframes kind-spark{0%{opacity:0;transform:translate(-50%,-50%) scale(.25)}18%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--turn)) scale(.55)}}
.motion-paused *, .motion-paused *:before, .motion-paused *:after{animation-play-state:paused!important;transition:none!important}.motion-paused .reveal{opacity:1;transform:none}.motion-paused .hero-word,.motion-paused .hero-copy>.eyebrow,.motion-paused .hero-intro,.motion-paused .hero-description,.motion-paused .hero-copy>.button,.motion-paused .hero-contact{opacity:1;transform:none;filter:none;animation:none}.motion-paused .hero-underline path{stroke-dashoffset:0;animation:none}.motion-paused .photo-note,.motion-paused .note-spark,.motion-paused .hero-photo,.motion-paused .drawn-star{transform:none}.motion-paused .hero-photo img,.motion-paused .meaning-photo img{transform:scale(1.025)}.motion-paused .button:hover,.motion-paused .button:hover .button-circle,.motion-paused .image-label,.motion-paused .footer-hello:hover em,.motion-paused .radio-options label{transform:none}.motion-paused .role-panel{opacity:1;transform:none;animation:none}.motion-paused .spark-layer{display:none}
@media(max-width:1100px) and (min-width:1025px){.header{gap:16px}.header nav{gap:18px}.header nav>a:not(.nav-cta){font-size:14px}.nav-cta{padding-inline:15px;gap:12px}}
@media(max-width:1024px){.header .menu-toggle{margin-left:auto;order:2}.header>.motion-toggle{order:3}.header nav{margin:0}.header{gap:18px}}
@media(max-width:580px){.header{gap:13px}.header>.motion-toggle{width:42px;height:42px;font-size:21px}.hero-underline{height:12px;bottom:-.015em}.ribbon-group{gap:27px;padding-right:27px}.motion-on .ribbon-track{animation-duration:27s}.hero-photo{transform:none}.hero-photo img{transform:scale(1.04)}.hero .hero-contact{animation-delay:.55s}.reading-progress{height:3px}.footer-bottom .motion-toggle-text{font-size:14px}.button:hover:before{display:none}.spark-particle{font-size:21px}.radio-options label:has(input:checked){transform:translateX(2px);box-shadow:-2px 0 0 var(--purple)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition:none!important}.hero-word,.motion-on .reveal{opacity:1!important;transform:none!important;filter:none!important}.hero-underline path{stroke-dashoffset:0!important}.hero-photo,.hero-photo img,.meaning-photo img,.photo-note,.note-spark,.drawn-star{transform:none!important}.spark-layer{display:none}.ribbon-track{transform:none!important}}
.tab-away *, .tab-away *:before, .tab-away *:after{animation-play-state:paused!important}

html.motion-paused{scroll-behavior:auto}
/* Keep rotating decoration inside the page's horizontal boundary. */
html { overflow-x: clip; }
