/* Motion follows navigation and illustrative engineering studies. */
:root{--chapter-pulse:0;--material-progress:0}
.hero{overflow:clip}
.hero-title-wrap{will-change:transform}
.hero .title-line{line-height:.98}
.hero .serif{background:linear-gradient(110deg,#eee6d9 10%,#dab68e 48%,#fcf4e4 66%,#dab68e 88%);background-size:220% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:metal-light 14s ease-in-out infinite}
.drag-hint small{display:block;margin-top:9px;font-size:10px;letter-spacing:.025em;color:#9ea5af}
.chapter-heading{overflow:hidden;padding-bottom:6px}
.chapter-heading:after{content:'';position:absolute;left:0;top:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,#e7cbaa,transparent);transform:translateX(-105%)}
.chapter.is-active .chapter-heading:after{animation:chapter-trace 1.8s cubic-bezier(.2,.65,.25,1) both}
.chapter-copy h2,.horizon-content h2,.contact-intro h2{transition:color .7s;will-change:transform}
.chapter-copy h2 em{color:#e0c6a8}
.js .reveal{transform:translateY(55px);transition:opacity 1.1s,transform 1.5s cubic-bezier(.16,1,.3,1)}
.js .reveal.visible{transform:none}
.resource-chain{margin:0;border-bottom:0;backdrop-filter:blur(12px)}
.material-explorer{margin-top:70px;pointer-events:auto}
.resource-chain li,.resource-chain li:not(:first-child){display:block;padding:0}
.resource-chain li:before{display:none}
.resource-chain button{position:relative;width:100%;min-height:166px;display:flex;flex-direction:column;align-items:flex-start;gap:17px;text-align:left;padding:26px;color:#b0b9c6;border-top:2px solid transparent;background:linear-gradient(135deg,#e3c7a000,transparent);transition:color .35s,background .35s,border-color .35s}
.resource-chain button:hover,.resource-chain button[aria-pressed=true]{color:var(--white);background:linear-gradient(135deg,#e3c7a017,transparent);border-top-color:#d9bd96}
.resource-chain button .meta{font-size:11px;color:#b8a082;line-height:1.4}
.resource-chain button strong{font-size:29px;line-height:1.1;letter-spacing:-.055em;font-weight:400}
.resource-chain button small{font-size:14px;line-height:1.5}
.resource-chain .stage-arrow{position:absolute;right:22px;top:55px;font-size:25px;opacity:0;transform:translate(-5px,5px);transition:transform .35s,opacity .35s}
.resource-chain button:hover .stage-arrow,.resource-chain button[aria-pressed=true] .stage-arrow{opacity:1;transform:none}
.stage-note{border:1px solid var(--line);border-left:0;border-right:0;display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:30px;background:#080d14bf;padding:23px 0;min-height:100px}
.stage-note>.meta{font-size:11px;color:#b7a38b}.stage-note>.meta:last-child{color:#8b95a3;font-size:10px}
.stage-note p{font-size:16px;line-height:1.7;color:#c5cbd3;max-width:630px}
.stage-note.is-changing p{animation:quiet-enter .4s both}
.lighting-study{margin-top:30px;padding:24px;border:1px solid #c6d2e02e;background:linear-gradient(140deg,#161e2bcc,#090e17bb);backdrop-filter:blur(12px);pointer-events:auto}
.study-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:12px}.study-top label{font-size:11px;color:#c8af90}.study-top output{font-size:30px;letter-spacing:-.05em;line-height:1}
#sun-angle{width:100%;height:36px;margin:4px 0;accent-color:#dfc5a2;cursor:ew-resize;background:transparent;appearance:none;-webkit-appearance:none}
#sun-angle::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,#e4cda9,#58616e)}
#sun-angle::-moz-range-track{height:2px;background:linear-gradient(90deg,#e4cda9,#58616e)}
#sun-angle::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:18px;height:18px;margin-top:-8px;background:#e4c9a6;border:4px solid #19212e;border-radius:50%;box-shadow:0 0 0 1px #e4c9a6}
#sun-angle::-moz-range-thumb{width:11px;height:11px;background:#e4c9a6;border:4px solid #19212e;border-radius:50%;box-shadow:0 0 0 1px #e4c9a6}
#sun-angle:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.angle-labels{display:flex;justify-content:space-between;font-size:10px;color:#a1aab6}
.power-result{display:flex;justify-content:space-between;align-items:baseline;gap:18px;margin-top:22px;font-size:14px;color:#c5ccd6}
.power-result output{font-size:37px;line-height:1.2;color:#e6caa7;font-variant-numeric:tabular-nums;letter-spacing:-.05em}
.power-meter{height:3px;background:#4f5c702f;margin-top:11px;overflow:hidden}.power-meter span{display:block;height:100%;width:100%;transform-origin:left;transform:scaleX(.7071);background:linear-gradient(90deg,#b8a080,#f5dec1);transition:transform .2s}
#lighting-note{font-size:12px;line-height:1.6;color:#99a4b3;margin-top:18px}
.power-chapter .chapter-copy{margin-top:65px}.power-chapter{min-height:115svh}
.energy-caption{gap:18px}.energy-caption>span:nth-child(-n+3):before{animation:node-flow 5s infinite}
.energy-caption>span:nth-child(2):before{animation-delay:.55s}.energy-caption>span:nth-child(3):before{animation-delay:1.1s}
.horizon-content h2{line-height:.94}.horizon-content h2 em{color:#dfc7a9}
.contact-email{background-image:linear-gradient(90deg,var(--accent),var(--accent));background-size:0 1px;background-position:left bottom;background-repeat:no-repeat;transition:background-size .6s,color .3s}
.contact-email:hover{background-size:100% 1px}
.footer-lettering{transition:transform .7s cubic-bezier(.2,.8,.2,1),opacity .35s}.footer-wordmark:hover .footer-lettering{transform:translateX(8px)}
.menu-layout nav a{overflow:hidden}.menu-layout nav a:nth-child(2){--menu-delay:60ms}.menu-layout nav a:nth-child(3){--menu-delay:120ms}.menu-layout nav a:nth-child(4){--menu-delay:180ms}.menu-layout nav a:nth-child(5){--menu-delay:240ms}
#menu-dialog[open] .menu-layout nav a{animation:menu-enter .7s cubic-bezier(.16,1,.3,1) var(--menu-delay,0ms) both}
@keyframes menu-enter{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:none}}
@keyframes metal-light{0%,100%{background-position:100% 50%}50%{background-position:0 50%}}
@keyframes chapter-trace{to{transform:translateX(105%)}}
@keyframes node-flow{0%,65%,100%{box-shadow:0 0 0 0 #d7bd9a00;background:var(--ink)}20%{box-shadow:0 0 0 5px #d7bd9a15;background:#d7bd9a}}
@media(max-width:1000px){.stage-note{grid-template-columns:135px 1fr;gap:25px}.stage-note>.meta:last-child{display:none}.resource-chain button{padding:22px 18px}.resource-chain button strong{font-size:25px}.resource-chain .stage-arrow{right:15px;top:52px}}
@media(max-width:650px){
 .hero .serif{animation-duration:18s}.hero-title-wrap{will-change:auto}
 .material-explorer{margin-top:45px}.resource-chain li:not(:first-child){padding:0}.resource-chain button{min-height:158px;padding:20px 15px;gap:16px}.resource-chain button .meta{font-size:10px}.resource-chain button strong{font-size:24px}.resource-chain button small{font-size:13px}.resource-chain .stage-arrow{font-size:20px;top:50px;right:13px}
 .stage-note{grid-template-columns:1fr;gap:9px;padding:20px 0;min-height:145px}.stage-note p{font-size:15px}
 .lighting-study{padding:20px;margin-top:28px}.study-top label{font-size:10px}.study-top output{font-size:27px}.power-result{font-size:13px}.power-result output{font-size:32px}#lighting-note{font-size:12px}.power-chapter .chapter-copy{margin-top:305px}
 .chapter-copy h2,.horizon-content h2,.contact-intro h2{will-change:auto}
}
@media(prefers-reduced-motion:reduce){.hero .serif,.chapter.is-active .chapter-heading:after,.energy-caption>span:before,#menu-dialog[open] .menu-layout nav a,.stage-note.is-changing p{animation:none}.hero-title-wrap{transform:none!important}}
body.motion-paused .hero-title-wrap{transform:none!important}body.motion-paused .power-meter span{transition:none}

body.motion-paused #menu-dialog[open] .menu-layout nav a,body.motion-paused #detail-dialog[open],body.motion-paused .stage-note.is-changing p{animation:none;opacity:1;transform:none}
