/* Short feedback; unhurried entrances; deliberate, heavier page turns. */
:root{--ease-enter:cubic-bezier(.16,1,.3,1);--ease-settle:cubic-bezier(.22,.75,.2,1);--ease-exit:cubic-bezier(.4,0,1,1);--motion-fast:180ms;--motion-medium:360ms}
.motion-designed .page-entered>.page-canvas,.motion-designed .page-entered>.gallery-title-row,.motion-designed .page-entered>.gallery-description{animation:none}
.site-header{transition:box-shadow 360ms var(--ease-settle),background-color 360ms var(--ease-settle)}
.site-header nav a,.contact-nav,.intro-contact,.hero-bottom a,.site-footer a{position:relative}
.site-header nav a:after,.contact-nav:after,.intro-contact:after,.site-footer a:after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:2px;background:#c9723c;transform:scaleX(0);transform-origin:right;transition:transform 320ms var(--ease-enter)}
.site-header nav a:is(:hover,:focus-visible,[aria-current]):after,.contact-nav:is(:hover,:focus-visible):after,.intro-contact:is(:hover,:focus-visible):after,.site-footer a:is(:hover,:focus-visible):after{transform:scaleX(1);transform-origin:left}
.site-header nav a:hover,.contact-nav:hover{text-decoration:none}
.response-button,.arrow,.tab,.book-controls button,.preview-toggle,.expand-page,.viewer-zoom button,.close,.chapter-guide button{transition:background-color var(--motion-fast) var(--ease-settle),color var(--motion-fast) var(--ease-settle),border-color var(--motion-fast) var(--ease-settle),box-shadow 260ms var(--ease-settle),scale var(--motion-fast) var(--ease-enter),transform 260ms var(--ease-enter)}
button:not(:disabled):is(.response-button,.arrow,.tab,.preview-toggle,.expand-page,.close):active,.book-controls button:not(:disabled):active,.chapter-guide button:not(:disabled):active{scale:.95;transition-duration:80ms}
.response-button:focus-visible,.tab:focus-visible,.book-controls button:focus-visible{box-shadow:0 0 0 5px #ce7a3d30}
.thumbnail{transition:border-color 180ms var(--ease-settle),scale 280ms var(--ease-enter),opacity 180ms var(--ease-settle)}
.thumbnail:hover,.thumbnail:focus-visible{scale:1.06}.thumbnail[aria-current=true]{scale:1.04}
.hero-person{transition:transform 600ms var(--ease-enter)}.hero-orbit{transition:transform 800ms var(--ease-enter)}
.object-layer .layer-visual,.effect-coin .layer-visual{transition:transform 540ms var(--ease-enter),filter 360ms var(--ease-settle)}
.effect-bloom .bloom-petals{transition:transform 760ms var(--ease-enter),filter 360ms var(--ease-settle)}
.notebook-tool img{transition:transform 420ms var(--ease-enter),filter 420ms var(--ease-settle)}
.eco-screen-tile{transition:transform 420ms var(--ease-enter),box-shadow 420ms var(--ease-settle)}
.eco-phone{transition:transform 620ms var(--ease-enter)}
.award-feature,.award-strip{transition:transform 480ms var(--ease-enter),box-shadow 480ms var(--ease-settle)}
.finale-photo{transition:transform 500ms var(--ease-enter),box-shadow 500ms var(--ease-settle)}
@media(hover:hover) and (pointer:fine){.finale-photo:hover{transform:rotate(1deg) translateY(-3px);box-shadow:3px 10px 16px #392c2738}.hero-bottom a:hover{background:#d17a3c;color:#251f19}.book-right:after{content:'';position:absolute;bottom:0;right:0;width:24px;height:24px;pointer-events:none;background:linear-gradient(135deg,transparent 49%,#cab28c88 50%,#f8efda);opacity:0;transition:opacity 280ms var(--ease-settle)}.exhibition-book:hover .book-right:after{opacity:1}}
.coverflow .art-card{translate:var(--drag-offset,0px) 0;transition:translate 360ms var(--ease-enter),opacity 300ms var(--ease-settle),filter 420ms var(--ease-settle),box-shadow 420ms var(--ease-settle)}
.coverflow.dragging .art-card{transition:opacity 300ms,filter 420ms}
.coverflow .art-card.is-active{box-shadow:0 22px 40px #0006}
.response-result:not([hidden]){animation:note-arrive 280ms var(--ease-enter)}
#viewer[open]::backdrop{animation:viewer-scrim 260ms var(--ease-settle)}
@keyframes viewer-scrim{from{opacity:0}to{opacity:1}}
.folio-page:not(.motion-in-view) .music-equalizer i,.motion-background .music-equalizer i{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.coverflow .art-card{translate:none!important}.finale-photo:hover{transform:rotate(5deg)}button:active{scale:1!important}}

/* Scroll-scrubbed visibility, not a delayed entrance animation. */
.motion-designed .scroll-fade{opacity:var(--scroll-opacity,1);translate:0 var(--scroll-shift,0px)}
/* Fully readable controls while using the keyboard; never inherit fading in a preview. */
.motion-designed .scroll-fade:focus-visible,.motion-designed .scroll-fade:has(:focus-visible){opacity:1!important}
#viewer .scroll-fade{opacity:1!important;translate:none!important}
.folio-page,#introduction,#education{scroll-margin-top:18px}
.motion-designed .coverflow.scroll-fade{transition:none}
@media(prefers-reduced-motion:reduce){.motion-designed .scroll-fade{opacity:1!important;translate:none!important}}

/* Scroll choreographies: paper settles, flowers open, tools lift into place. */
.motion-designed body{overflow-x:clip}
.motion-designed .scroll-crafted{translate:var(--scroll-x,0px) var(--scroll-shift,0px);rotate:var(--scroll-turn,0deg);scale:var(--scroll-scale,1);transform-origin:50% 65%}
.motion-measuring .scroll-crafted{rotate:none!important;scale:none!important}
.motion-designed .scroll-title-ink{clip-path:inset(-10% -8% calc((1 - var(--scroll-opacity,1))*105%) -8%)}
.motion-designed .selected-thread path{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--scene-draw,1))}
.motion-designed .hero-watermark{translate:0 calc(var(--scene-drift,0px)*-1)}
.motion-designed .hero-glass{translate:0 var(--scene-drift,0px)}
.motion-designed .eco-web-ghost{translate:0 calc(var(--scene-drift,0px)*-.7)}
.motion-designed .coverflow .art-window{scale:calc(.96 + var(--scroll-opacity,1)*.04)}
.motion-designed .scroll-crafted:focus-visible,.motion-designed .scroll-crafted:has(:focus-visible){rotate:0deg;scale:1;translate:0 0}
.motion-designed .scroll-fade:has(:focus-visible) .scroll-title-ink{clip-path:none}
/* A newly turned final leaf has its own small signing-off gesture. */
.motion-in-view .book-right .finale-stamp{animation:studio-stamp 700ms var(--ease-enter) both}
.motion-in-view .book-right .finale-photo{animation:studio-photo 900ms var(--ease-enter) both}
@keyframes studio-stamp{from{opacity:0;scale:1.3;rotate:-9deg}to{opacity:1;scale:1;rotate:0deg}}
@keyframes studio-photo{from{opacity:0;translate:0 18px;rotate:-5deg}to{opacity:1;translate:0 0;rotate:0deg}}
@media(prefers-reduced-motion:reduce){
 .motion-designed .scroll-crafted{translate:none!important;rotate:none!important;scale:none!important}
 .motion-designed .scroll-title-ink{clip-path:none!important}
 .motion-designed .selected-thread path{stroke-dashoffset:0!important}
 .motion-designed .hero-watermark,.motion-designed .hero-glass,.motion-designed .eco-web-ghost{translate:none!important}
 .motion-designed .coverflow .art-window{scale:none!important}
}
