/* Motion enhancement: content remains visible when JavaScript is unavailable. */
.reading-progress{position:fixed;inset:0 0 auto;height:3px;z-index:40;background:var(--gold);transform:scaleX(0);transform-origin:left;pointer-events:none}
.hero{position:relative;isolation:isolate}
.hero-aura{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.hero-aura:before{content:"";position:absolute;width:600px;height:600px;left:var(--aura-x,15%);top:var(--aura-y,20%);transform:translate(-50%,-50%);background:radial-gradient(ellipse,#c8ae7714,transparent 66%)}
.hero-line{display:block;overflow:clip;padding-bottom:.08em;margin-bottom:-.08em}
.hero-word{display:block;transform-origin:0 100%}
.hero-word em{background:linear-gradient(110deg,#b39a64 10%,#c8ae77 35%,#f7eac6 48%,#c8ae77 61%,#ad925e 90%);background-size:240% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:signature-light 2.6s .35s ease-out both}
@keyframes signature-light{from{background-position:100% 50%}to{background-position:0% 50%}}
.hero-image>img,.workshop-visual>img{transform:translateY(var(--photo-y,0px)) scale(1.09)}
.workshop-visual{overflow:hidden}
.project-photo,.service-photo{transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .4s cubic-bezier(.2,.7,.3,1);isolation:isolate}
.project-photo:after,.service-photo:after{content:"";position:absolute;inset:0;z-index:2;background:radial-gradient(440px circle at var(--light-x,50%) var(--light-y,50%),#fff4,transparent 65%);opacity:0;transition:opacity .35s;pointer-events:none;mix-blend-mode:soft-light}
.project-card:hover .project-photo:after,.service-card:hover .service-photo:after{opacity:1}
.project-card:hover .round-arrow{background:var(--gold);transform:rotate(45deg)}
.round-arrow{transition:transform .4s,background .3s}
.project-caption h3,.service-card h3{transition:color .3s}
.project-card:hover .project-caption h3{color:var(--gold)}
.project-lens{position:absolute;z-index:3;left:var(--light-x,50%);top:var(--light-y,50%);transform:translate(-50%,-50%) scale(.6);width:82px;height:82px;background:#f5f3edeb;backdrop-filter:blur(6px);color:var(--ink);border-radius:50%;display:grid;place-items:center;font-size:9px;letter-spacing:1.3px;opacity:0;pointer-events:none;transition:opacity .25s,transform .3s}
.project-card.is-tracking .project-lens{opacity:1;transform:translate(-50%,-50%) scale(1)}
.project-card.is-tracking .round-arrow{opacity:0}
.button,.nav-cta,.contact-arrow{translate:var(--magnet-x,0px) var(--magnet-y,0px);transition:translate .35s cubic-bezier(.2,.8,.2,1),background .25s,color .25s;position:relative}
.button:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 20%,#fff5 49%,transparent 75%);background-size:300% 100%;background-position:100% 0;opacity:0;transition:opacity .3s}
.button:hover:after{opacity:1;animation:button-light .8s ease-out both}
@keyframes button-light{to{background-position:0% 0}}
.nav-row nav a{position:relative}.nav-row nav a:after{content:"";position:absolute;bottom:4px;left:0;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s}.nav-row nav a:hover:after,.nav-row nav a:focus-visible:after{transform:scaleX(1)}
.contact{position:relative;isolation:isolate;overflow:hidden}
.contact:before{content:"";position:absolute;width:650px;height:650px;right:-230px;top:-300px;border:1px solid #22282320;border-radius:50%;box-shadow:0 0 0 65px #22282308,0 0 0 130px #22282306;z-index:-1;transform:translateY(var(--contact-y,0px));pointer-events:none}
@media(hover:none),(pointer:coarse){.project-lens,.hero-aura{display:none}.project-photo,.service-photo{transform:none}.hero-image>img,.workshop-visual>img{transform:none}}
@media(prefers-reduced-motion:reduce){.hero-word em{animation:none;background:none;color:var(--gold)}.reading-progress,.hero-aura,.project-lens{display:none}.hero-image>img,.workshop-visual>img,.project-photo,.service-photo{transform:none}.contact:before{transform:none}.button,.nav-cta,.contact-arrow{translate:none}.button:hover:after{animation:none;opacity:0}}
