/* Motion and imagery layer. Content remains readable without JavaScript. */
body:before{content:'';position:fixed;z-index:30;top:0;left:0;width:var(--progress,0%);height:3px;background:var(--lime);pointer-events:none}
.port-image{position:absolute;inset:-5% 0;width:100%;height:110%;object-fit:cover;transform:scale(1.12);will-change:transform}
.visual{height:480px;isolation:isolate}
.visual:before{content:'';position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,#0b100ae0,transparent 65%),linear-gradient(0deg,#0c100b80,transparent 40%)}
.visual-caption,.visual-footer{z-index:2}.visual-caption span:last-child{font-size:38px;max-width:300px;line-height:1.1;letter-spacing:-1.5px}.visual-caption{top:45px;left:40px}.visual-footer{left:40px;bottom:32px;right:40px}.globe{display:none}
.monogram{overflow:hidden;isolation:isolate}.monogram img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}.monogram:hover img{transform:scale(1.06)}.monogram:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0008,transparent 50%);z-index:-1}.monogram>span,.monogram small{z-index:1;color:var(--lime)}.monogram small{color:white;text-shadow:0 1px 4px #000}
.address{font-size:10px;margin-top:10px;color:#49562b}.preview-note{width:100%;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;color:#919689;font-size:8px;letter-spacing:1px}footer{flex-wrap:wrap}
.mobile-contact,#mobile-menu{display:none}.round-link,.contact-small{transition:transform .25s,background .2s,color .2s}
h1>span{animation:hero-in 1.1s cubic-bezier(.16,1,.3,1) both}h1>span:nth-child(2){animation-delay:.12s}.hero-top{animation:fade-in 1s both}.hero-bottom{animation:hero-in 1s .22s both}.hero h1{transform:translateX(var(--pointer-x,0px));transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal{opacity:0;transform:translateY(35px);transition:opacity .8s var(--delay,0ms),transform .9s cubic-bezier(.16,1,.3,1) var(--delay,0ms)}.reveal.in-view{opacity:1;transform:translateY(0)}
details[open] .service-body{animation:detail-in .4s both}summary:hover h3{color:var(--lime)}summary:hover .number{color:var(--lime)}.service-list summary{transition:padding .3s}.service-list summary:hover{padding-left:10px}.steps article{transition:border-color .3s}.steps article:hover{border-color:var(--lime)}.steps article h3{transition:color .3s}.steps article:hover h3{color:var(--lime)}
.dot{animation:pulse 3s ease-in-out infinite}.ticker{position:relative}.ticker span{animation:ticker-shift 12s ease-in-out infinite alternate}.ticker i{animation:rotate-star 15s linear infinite}
@keyframes hero-in{from{opacity:0;transform:translateY(45px);filter:blur(6px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes detail-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{50%{box-shadow:0 0 18px #dcfc7880;opacity:.5}}@keyframes rotate-star{to{transform:rotate(360deg)}}@keyframes ticker-shift{to{transform:translateX(-12px)}}
@media(min-width:1100px){.hero h1{font-size:7.9vw;max-width:1450px}.hero-top{padding-top:10px}.hero-bottom{margin-bottom:15px}}
@media(max-width:850px){.visual{height:400px}.visual-caption span:last-child{font-size:30px;max-width:230px}}
@media(max-width:560px){.visual{height:390px}.visual-caption{top:28px;left:25px}.visual-caption span:last-child{font-size:27px;max-width:210px}.visual-footer{left:25px;right:25px;bottom:25px}.port-image{object-position:65% center}.visual:before{background:linear-gradient(90deg,#0b100abc,transparent),linear-gradient(0deg,#0c100b80,transparent 40%)}#mobile-menu{display:flex;align-items:center;gap:10px;padding:0;background:none;color:var(--paper);border:0;font-size:11px}.menu-lines{font-size:18px}header{position:relative;z-index:20}.menu-open nav{display:flex;position:absolute;left:-7%;right:-7%;top:76px;background:var(--bg);flex-direction:column;padding:25px 7% 35px;border-bottom:1px solid var(--line);gap:25px;font-size:24px;animation:detail-in .3s}.menu-open .mobile-contact{display:block;color:var(--lime)}.monogram{min-height:310px}.header-right{gap:24px}.hero h1{transform:none}.hero .outline{letter-spacing:-.075em}.preview-note{font-size:7px;gap:15px;line-height:1.6}.address{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}.port-image{will-change:auto}.hero h1{transform:none}}
