/* Shared interaction and scroll motion; layout stays in site.css. */
.site-header{transition:box-shadow .25s,background-color .25s}
.site-header.is-scrolled{background:#fffffff7;box-shadow:0 1px 0 #1524430b,0 7px 25px #15244305}
.roll-label{display:inline-flex;vertical-align:middle;white-space:pre}
.roll-slot{display:inline-block;overflow:hidden;height:1.45em;line-height:1.45em;vertical-align:top}
.roll-char{display:block;position:relative;transition:transform .42s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--letter)*18ms)}
.roll-char:after{content:attr(data-letter);position:absolute;left:0;top:100%;width:100%;height:100%}
@media(hover:hover){.has-letter-roll:hover .roll-char{transform:translateY(-100%)}}
.has-letter-roll:focus-visible .roll-char{transform:translateY(-100%)}
.site-header .site-nav>.nav-link:after,.site-header .site-nav .nav-trigger:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--brand);transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.22,1,.36,1)}
.site-header .site-nav>.nav-link.active:after,.site-header .site-nav .nav-trigger.active:after,.site-header .site-nav>.nav-link:hover:after,.site-header .site-nav .nav-trigger:hover:after{transform:scaleX(1)}
.nav-popover{display:grid;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,8px);transition:opacity .2s,transform .25s,visibility .2s}
.nav-dropdown.is-open .nav-popover{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.nav-popover a{transition:background .2s,color .2s,transform .2s}
.nav-popover a:hover{transform:translateX(3px)}
.button,.header-cta,.plan-button{position:relative;overflow:hidden;transition:transform .22s,background .22s,box-shadow .22s}
.button:before,.header-cta:before,.plan-button:before{content:"";pointer-events:none;position:absolute;inset:-35% auto -35% -85%;width:55%;background:linear-gradient(90deg,transparent,#ffffff35,transparent);transform:skewX(-22deg);transition:left .55s}
@media(hover:hover){.button:hover:before,.header-cta:hover:before,.plan-button:hover:before{left:140%}.button:hover,.header-cta:hover{box-shadow:0 8px 24px #1761d320}.header-avatar:hover img{transform:rotate(-7deg) scale(1.06)}}
.button:active,.header-cta:active,.plan-button:active{transform:translateY(0) scale(.98)}
.header-avatar img{transition:transform .3s cubic-bezier(.22,1,.36,1)}
.reveal-ready{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
.reveal-ready.is-revealed{opacity:1;transform:translateY(0)}
.inspiration-card{transition:transform .3s,box-shadow .3s}
.inspiration-card img{transition:transform .65s cubic-bezier(.22,1,.36,1)}
@media(hover:hover){.inspiration-card:hover{transform:translateY(-5px);box-shadow:0 16px 36px #20385810}.inspiration-card:hover img{transform:scale(1.035)}.course-card:hover{box-shadow:0 14px 32px #20385814}.plan-card:hover{transform:translateY(-4px);box-shadow:0 15px 35px #2038580c}}
.plan-card{transition:transform .3s,box-shadow .3s}
.text-link span,.closing-cta .button>span{transition:transform .25s}
.text-link:hover span,.closing-cta .button:hover>span{transform:translate(3px,-3px)}
.tour-link>span:first-child{transition:background .25s,transform .25s}
.tour-link:hover>span:first-child{background:var(--brand);transform:translate(2px,-2px)}
.tour-tabs{position:relative;isolation:isolate}
.tour-tabs.has-motion:before{content:"";position:absolute;left:var(--tab-left);width:var(--tab-width);top:9px;bottom:9px;border-radius:3px;background:var(--brand);transition:left .34s cubic-bezier(.22,1,.36,1),width .34s cubic-bezier(.22,1,.36,1);z-index:-1}
.tour-tabs.has-motion button[aria-selected=true]{background:transparent}
.tour-tabs button{transition:color .25s}
.docs-sidebar a{transition:background .2s,color .2s}
.docs-sidebar a[aria-current=location]{background:#eaf1fd;color:var(--brand)}
dialog[open]{animation:dialog-arrive .23s cubic-bezier(.22,1,.36,1)}
dialog[open]::backdrop{animation:backdrop-arrive .2s ease-out}
@keyframes dialog-arrive{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}
@media(max-width:800px){
 .site-header .site-nav .nav-link:after,.site-header .site-nav .nav-trigger:after{display:none}
 .nav-popover{display:none;transform:none;transition:none}
 .nav-dropdown.is-open .nav-popover{display:grid;transform:none}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .reveal-ready{opacity:1!important;transform:none!important;transition:none!important}
 .roll-char,.nav-popover,.button,.header-cta,.plan-button,.header-avatar img,.tour-tabs:before,.inspiration-card,.inspiration-card img,.course-card,.course-cover img,.plan-card{transition:none!important}
 .button:before,.header-cta:before,.plan-button:before{display:none}
 .roll-char{transform:none!important}
 dialog[open],dialog[open]::backdrop{animation:none!important}
}
