/* Decorative movement stays separate from reading and from Douglas's portrait. */
.hero-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}
.hero-atmosphere::before{content:'';position:absolute;inset:-30%;background:radial-gradient(ellipse at 74% 40%,#d1ad7016,transparent 35%),radial-gradient(ellipse at 22% 68%,#36749a24,transparent 38%);animation:ambient-drift 18s ease-in-out infinite alternate}
.hero-spark{position:absolute;left:var(--spark-x);top:var(--spark-y);width:2px;height:2px;border-radius:50%;background:#ebd1a1;box-shadow:0 0 9px #eac37b80;opacity:0;animation:spark-drift var(--spark-time) var(--spark-delay) ease-in-out infinite}
.emblem-orbit{position:absolute;inset:-7%;border-radius:50%;pointer-events:none;border:1px solid #d1ad7024;transform:rotate(-20deg);animation:orbit-turn 32s linear infinite}
.emblem-orbit::before{content:'';position:absolute;left:50%;top:-3px;width:5px;height:5px;background:#ebd1a1;border-radius:50%;box-shadow:0 0 15px #ebd1a1a0}
.emblem-orbit::after{content:'';position:absolute;inset:4%;border-radius:50%;border:1px dashed #d1ad7030;opacity:.7}
.prime-emblem{transform:perspective(1100px) rotateX(var(--emblem-rx,0deg)) rotateY(var(--emblem-ry,0deg)) translateY(var(--emblem-scroll,0px));transition:transform .8s cubic-bezier(.2,.7,.2,1);will-change:transform}
.prime-emblem>svg{animation:emblem-float 9s ease-in-out infinite}
.hero-bottom a>span{display:inline-block;animation:explore-cue 2.7s ease-in-out infinite}
.motion-ribbon{position:relative;overflow:hidden;border-top:1px solid #d1ad7026;border-bottom:1px solid #d1ad7026;background:#0b1b2b;padding:19px 0;color:#c5b28e}
.ribbon-track{display:flex;width:max-content;animation:ribbon-travel 38s linear infinite;will-change:transform}
.ribbon-copy{display:flex;align-items:center;flex:none;gap:44px;padding:0 22px;font-size:10px;letter-spacing:.22em;text-transform:uppercase}
.ribbon-copy i{font-style:normal;font-size:15px;color:var(--gold)}
.ribbon-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.motion-ribbon::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0b1b2b,transparent 12%,transparent 88%,#0b1b2b);pointer-events:none}
.dynamic-card{position:relative;isolation:isolate;overflow:hidden}
.dynamic-card::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at var(--card-x,50%) var(--card-y,50%),#d1ad7026,transparent 65%);opacity:0;transition:opacity .5s}
.dynamic-card:hover::after,.dynamic-card:focus-within::after{opacity:1}
.principles>.dynamic-card{padding:18px 16px;transition:border-color .5s,background .5s}
.principles>.dynamic-card:hover{background:#e9dfcb66;border-color:#9a7743}
.dynamic-magnetic{translate:var(--magnet-x,0px) var(--magnet-y,0px);transition:translate .4s cubic-bezier(.2,.7,.2,1)}
.dynamic-magnetic:focus-visible{translate:0 0}
.dynamic-reveal{opacity:0;transform:translateY(22px);transition:opacity .8s,transform .9s cubic-bezier(.2,.7,.2,1)}
.dynamic-reveal.is-visible{opacity:1;transform:none}
.service-stage{--stage-light-x:50%;--stage-light-y:45%;background:radial-gradient(ellipse at var(--stage-light-x) var(--stage-light-y),#274658,#0e2031 72%);transition:background .8s,border-color .6s;box-shadow:0 20px 60px #030d1830}
.service-stage.motion-in-view #legal-projection{animation:projection-float 8s ease-in-out infinite}
.stage-focus-line{background:linear-gradient(90deg,transparent,#ebd1a1,transparent);background-size:200% 100%;animation:focus-glide 5s ease-in-out infinite}
.service-stage.scene-transition figcaption{animation:caption-rise .65s cubic-bezier(.2,.7,.2,1) both}
.service-stage.scene-transition{border-color:#d1ad7080}
.service-chapter{position:relative}
.service-chapter::after{content:'';position:absolute;left:0;bottom:0;height:1px;width:100%;background:linear-gradient(90deg,#d1ad70,#ebd1a1);transform:scaleX(var(--chapter-progress,0));transform-origin:left;transition:transform .2s linear}
.service-kicker>span{transition:background .5s,color .5s,box-shadow .5s}
.service-chapter.is-active .service-kicker>span{background:#d1ad70;color:#102234;box-shadow:0 0 22px #d1ad7026}
.statement{position:relative;isolation:isolate;overflow:hidden}
.statement::after{content:'';position:absolute;inset:-100% -50%;background:linear-gradient(115deg,transparent 43%,#e4c28a12 50%,transparent 57%);animation:statement-light 14s ease-in-out infinite;z-index:-1;pointer-events:none}
.hero:not(.motion-in-view) .hero-atmosphere::before,.hero:not(.motion-in-view) .hero-spark,.hero:not(.motion-in-view) .emblem-orbit,.hero:not(.motion-in-view) .prime-emblem>svg,.motion-ribbon:not(.motion-in-view) .ribbon-track,.service-stage:not(.motion-in-view) .stage-focus-line,.statement:not(.motion-in-view)::after,body.motion-page-hidden *{animation-play-state:paused!important}
body.motion-paused .prime-emblem,body.motion-paused .dynamic-magnetic,body.motion-paused #legal-projection{transform:none;translate:0 0}
body.motion-paused .dynamic-reveal{opacity:1;transform:none}
body.motion-paused .hero-spark{opacity:.2}
@media(hover:none){.prime-emblem{will-change:auto}.dynamic-card::after{display:none}}
@media(max-width:760px){.ribbon-copy{font-size:8px;gap:26px;padding:0 13px}.motion-ribbon{padding:15px 0}.emblem-orbit{inset:-4%}.principles>.dynamic-card{padding:14px 10px}}
@keyframes ambient-drift{from{transform:translate3d(-2%,-2%,0) rotate(-4deg)}to{transform:translate3d(3%,3%,0) rotate(5deg)}}
@keyframes spark-drift{0%,100%{opacity:0;transform:translateY(20px)}35%,65%{opacity:.5}90%{opacity:0;transform:translateY(-45px)}}
@keyframes orbit-turn{to{transform:rotate(340deg)}}
@keyframes emblem-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes explore-cue{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@keyframes ribbon-travel{to{transform:translateX(-50%)}}
@keyframes projection-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes focus-glide{0%,100%{background-position:0% 50%;opacity:.45}50%{background-position:100% 50%;opacity:1}}
@keyframes caption-rise{from{opacity:.3;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes statement-light{0%,15%{transform:translateX(-35%)}75%,100%{transform:translateX(35%)}}
