/* Video framing stays locked. Only the selected project icon animates. */
:root{--atmosphere:1.15}
.backdrop>img,.backdrop>video{animation:none;transform:none;filter:none}
body[data-theme=mountains] .backdrop>video{opacity:1}
.mountain-light,.waterlight,#ambience{display:none}
img[data-icon],.profile-art,.thermometer svg{animation:none;rotate:none;translate:none;scale:none}
#section-projects .item-art>img{animation:project-float 6s ease-in-out infinite paused;animation-delay:var(--phase,0s);transform-origin:50% 80%}
#section-projects[aria-hidden=false] .row-node.is-selected .item-art>img{animation-play-state:running}
@keyframes project-float{0%,100%{translate:0 0;rotate:-1deg}50%{translate:0 -3px;rotate:1.5deg}}
#section-projects[aria-hidden=true] .item-art>img,#section-projects .row-node.is-far .item-art>img,.page-hidden #section-projects[aria-hidden=false] .row-node.is-selected .item-art>img{animation-play-state:paused}
.motion-off #section-projects .item-art>img{animation:none}
.project-emoji{position:relative;display:block;width:48px;height:48px;filter:drop-shadow(0 2px 3px #0006);transition:width .25s,height .25s}
.is-selected .project-emoji{width:88px;height:88px}
.project-emoji>img,.project-emoji-animation{position:absolute;inset:0;display:block;width:100%;height:100%}
.project-emoji-animation{opacity:0;pointer-events:none}
.project-emoji-animation>svg{display:block;width:100%;height:100%}
.emoji-ready>.project-emoji-animation{opacity:1}
.emoji-ready>img{visibility:hidden}
@media(max-width:640px){.is-selected .project-emoji{width:64px;height:64px}}
.fact-link{text-decoration:underline;text-decoration-color:#d4efffb3;text-underline-offset:4px;transition:text-shadow .2s}
.fact-link:hover{text-shadow:0 0 12px #c8f1ff;color:#fff}
.profile-details dd{overflow-wrap:anywhere;line-height:1.55}
.fact-fields>div{row-gap:0;padding:5px 0 10px;border-bottom:1px solid #adcbe326}
.fact-fields .fact-url-field{grid-column:1/-1;margin:0 0 5px}
@media(prefers-reduced-motion:reduce){#section-projects .item-art>img{animation:none!important}}

/* A six-second rise, a visible crown and five droplets, then a gentle return. */
.thermometer{--thermo-cycle:6s;transition:opacity .3s ease,filter .3s ease}
.thermometer svg{overflow:visible}
.thermometer .thermo-liquid{transform:translateY(24px);animation:thermometer-rise var(--thermo-cycle) cubic-bezier(.45,0,.55,1) infinite}
.thermometer .thermo-glint{transform-box:fill-box;opacity:.2;animation:thermometer-glint var(--thermo-cycle) ease-in-out infinite}
.thermo-spray{filter:drop-shadow(0 0 1px #e9979166)}
.thermometer .thermo-crown{opacity:0;transform-box:fill-box;transform-origin:50% 100%;animation:thermometer-crown var(--thermo-cycle) ease-in-out infinite}
.thermometer .thermo-drop{opacity:0;transform-box:fill-box;transform-origin:center;animation:thermometer-splash var(--thermo-cycle) ease-in-out infinite}
.thermo-drop-left{--spray-x:-6px;--spray-y:-10px}
.thermo-drop-center{--spray-x:0px;--spray-y:-15px}
.thermo-drop-right{--spray-x:6px;--spray-y:-9px}
.thermo-drop-far-left{--spray-x:-10px;--spray-y:-6px}
.thermo-drop-far-right{--spray-x:10px;--spray-y:-7px}
@keyframes thermometer-rise{0%,16%,100%{transform:translateY(24px)}46%,52%{transform:translateY(0)}66%{transform:translateY(8px)}84%{transform:translateY(24px)}}
@keyframes thermometer-crown{0%,41%,65%,100%{opacity:0;transform:scale(.55,.08)}46%{opacity:1;transform:scale(1,1.15)}52%{opacity:1;transform:scale(1.2,.85)}61%{opacity:0;transform:scale(1.3,.15)}}
@keyframes thermometer-splash{0%,44%,75%,100%{opacity:0;transform:translate(0,2px) scale(.4)}48%{opacity:1;transform:translate(0,0) scale(.9)}55%{opacity:1;transform:translate(var(--spray-x),var(--spray-y)) scale(1.25)}63%{opacity:.8;transform:translate(var(--spray-x),-2px) scale(.85)}71%{opacity:0;transform:translate(var(--spray-x),6px) scale(.3)}}
@keyframes thermometer-glint{0%,100%{opacity:.18;transform:translateY(7px)}50%{opacity:.48;transform:translateY(-3px)}}
.page-hidden .thermometer :is(.thermo-liquid,.thermo-glint,.thermo-drop,.thermo-crown){animation-play-state:paused}
.motion-off .thermometer :is(.thermo-liquid,.thermo-glint,.thermo-drop,.thermo-crown){animation:none}
@media(prefers-reduced-motion:reduce){.thermometer :is(.thermo-liquid,.thermo-glint,.thermo-drop,.thermo-crown){animation:none!important}}
