#content{view-transition-name:course-content;position:relative}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
::view-transition-old(course-content){animation:content-out .14s ease both}
::view-transition-new(course-content){animation:content-in .3s cubic-bezier(.2,.75,.25,1) .04s both}
@keyframes content-out{to{opacity:0;transform:translateY(-5px)}}
@keyframes content-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.route-loading:before{content:"";position:fixed;left:var(--sidebar);top:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#a6c57a,transparent);background-size:40% 100%;background-repeat:no-repeat;z-index:80;animation:route-progress .9s linear infinite}
@keyframes route-progress{from{background-position:-50% 0}to{background-position:150% 0}}
.reveal-item{opacity:0;transform:translateY(14px)}
.reveal-item.is-visible{animation:item-reveal .46s cubic-bezier(.2,.75,.2,1) both;animation-delay:min(calc(var(--card-index,0)*35ms),180ms)}
@keyframes item-reveal{to{opacity:1;transform:translateY(0)}}
.btn,.option,.tab{position:relative;overflow:hidden;isolation:isolate}
.tap-ripple{position:absolute;width:18px;height:18px;margin:-9px;border-radius:50%;pointer-events:none;z-index:-1;background:currentColor;opacity:.13;animation:tap-ripple .55s cubic-bezier(.2,.65,.3,1) both}
@keyframes tap-ripple{to{transform:scale(22);opacity:0}}
.modal{animation:dialog-in .22s cubic-bezier(.2,.75,.2,1) both}
@keyframes dialog-in{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.feedback{animation:feedback-in .25s ease both;transform-origin:top}
@keyframes feedback-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
.option.selected .option-letter{animation:choice-check .18s ease both}
@keyframes choice-check{from{transform:scale(.88)}to{transform:scale(1)}}
.nav-link .icon,.btn .icon,.course-bottom .icon{transition:transform .2s ease}
.nav-link:hover>.icon{transform:translateY(-1px)}
.btn:hover>.icon:last-child,.course-card:hover .course-bottom>.icon{transform:translateX(3px)}
.hero-art-image{width:53%;height:100%;top:0;right:8px;display:grid;place-items:center;opacity:1}
.hero-art-image img{display:block;width:100%;height:100%;object-fit:contain;transform:translateY(-4px) scale(1.04);filter:drop-shadow(0 12px 12px #081b1730);transition:transform .7s cubic-bezier(.2,.75,.2,1)}
.hero:hover .hero-art-image img{transform:translateY(-6px) scale(1.06)}
.image-caption{position:absolute;bottom:16px;right:25px;font-size:8px;letter-spacing:1px;color:#bfd0b5;opacity:.75}
.hero-content{max-width:65%}.hero-content h2{font-size:28px}.hero-content p{max-width:285px}
.page-heading>.pill{white-space:nowrap;flex-shrink:0}
.course-thumb{transition:background .3s ease}.course-card:active{transform:translateY(-1px)}
.progress-track i{transform-origin:left;animation:progress-fill .5s cubic-bezier(.2,.7,.2,1) both}
@keyframes progress-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.option:disabled,.btn:disabled{transform:none}
@media(max-width:1060px){.hero-art-image{width:53%;right:-7px}.hero-content p{max-width:310px}}
@media(max-width:760px){.route-loading:before{left:0}.hero-art-image{width:55%;right:-30px}.hero-content h2{font-size:25px}.image-caption{font-size:7px;right:17px;bottom:12px}.hero-content p{max-width:270px}}
@media(max-width:470px){.hero-art-image{width:70%;right:-90px;opacity:.5}.hero-art-image img{transform:translateY(15px) scale(1.2)}.hero:hover .hero-art-image img{transform:translateY(15px) scale(1.2)}.hero-content{max-width:87%}.hero-content h2{font-size:24px}.hero-content p{max-width:240px}.image-caption{right:100px;bottom:12px;font-size:6px;white-space:nowrap}.page-heading>.pill{font-size:8px;padding:4px 6px}.hero-content .overline{font-size:8px}.hero{min-height:290px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal-item{opacity:1;transform:none}.tap-ripple{display:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.hero:hover .hero-art-image img{transform:translateY(-4px) scale(1.04)}}
@media print{.reveal-item{opacity:1!important;transform:none!important}.route-loading:before,.tap-ripple{display:none!important}}

::view-transition{pointer-events:none}::view-transition-group(*),::view-transition-image-pair(*),::view-transition-old(*),::view-transition-new(*){pointer-events:none}
