@font-face{font-family:Manrope;src:url('manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:#142e3e;background:#fff;font-family:Manrope,Arial,sans-serif;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}img{display:block;max-width:100%;object-fit:cover}p{margin:0 0 1.4rem}h1,h2,h3{line-height:1.14;letter-spacing:-.045em;font-weight:500;margin:0}h2{font-size:clamp(2.25rem,3.8vw,3.65rem)}h3{font-size:1.6rem}em{font-family:Georgia,serif;font-weight:400}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #b3843c;outline-offset:6px}input:focus,textarea:focus,select:focus{outline:2px solid #986b2a;outline-offset:2px}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.section{padding-block:110px}.eyebrow{font-size:.75rem;letter-spacing:.16em;font-weight:700;color:#89642f;margin-bottom:26px}.eyebrow.light{color:#dfbc81}.micro{font-size:.7rem;font-weight:700;letter-spacing:.12em;color:#856335}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-height:54px;padding:16px 25px;background:#0b2d40;color:white;border:1px solid transparent;font-size:.875rem;font-weight:600;transition:background .2s,transform .2s}.button:hover{background:#20485d;transform:translateY(-2px)}.button span{font-size:1.2rem;font-weight:400}.button.gold{background:#d5ae70;color:#092b3e}.button.gold:hover{background:#e4c593}.button.small{min-height:45px;padding:10px 19px;font-size:.8rem;gap:20px}.text-link{display:inline-flex;gap:25px;align-items:center;font-size:.875rem;font-weight:600;border-bottom:1px solid #b89b70;padding-bottom:7px;transition:color .2s}.text-link:hover{color:#9a6d2f}.text-link.white{color:#fff;border-color:#6d7c82}.text-link.white:hover{color:#e3bd7d}.text-link span{font-size:1.2rem}.skip{position:fixed;z-index:20;top:-100px;background:#fff;padding:12px}.skip:focus{top:10px}.topline{background:#092b3e;color:#ced8dc;font-size:.65rem;letter-spacing:.14em;padding:10px 0}.topline .wrap{display:flex;justify-content:space-between}.header{position:sticky;top:0;background:#fff;z-index:10;border-bottom:1px solid #e7ebed}.header-inner{height:100px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{flex-shrink:0}.brand img{width:129px;height:91px;object-fit:contain}.header nav{display:flex;align-items:center;gap:30px;font-size:.81rem;font-weight:600}.header nav a{padding:10px 0;position:relative}.header nav a:after{content:'';position:absolute;bottom:4px;left:0;right:100%;height:2px;background:#ba9358;transition:right .2s}.header nav a:hover:after,.header nav a[aria-current=location]:after{right:0}.header-actions{display:flex;align-items:center;gap:27px}.languages{display:flex;align-items:center;gap:9px;font-size:.75rem}.languages a{padding-block:12px;color:#727c82}.languages a[aria-current=page]{font-weight:800;color:#122f3e}.languages span{color:#ced2d5}.menu-toggle{display:none;border:0;background:none;padding:10px;font-size:.875rem}.menu-toggle span{margin-left:10px}.mobile-enquiry{display:none}.hero{position:relative;min-height:665px;background:#0a293c;color:#fff;isolation:isolate;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.hero-picture{position:absolute;z-index:-3;inset:0}.hero-picture img{height:100%;width:100%;object-position:60% 55%}.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#092b3e 0%,#092b3ef0 27%,#092b3e98 49%,#092b3e15 79%),linear-gradient(0deg,#092b3eaa,transparent 40%)}.hero-content{padding-block:85px 120px}.hero .eyebrow{display:flex;align-items:center;gap:12px;font-size:.69rem}.hero .eyebrow span{display:block;width:29px;height:1px;background:#caa266}h1{font-size:clamp(3rem,4.7vw,4.8rem);line-height:1.12;max-width:890px;letter-spacing:-.04em}h1 em{color:#e3c28f}.hero-description{max-width:485px;font-size:1rem;line-height:1.8;color:#d4dfe4;margin-top:29px}.hero-buttons{display:flex;gap:29px;align-items:center;margin-top:34px}.hero-bottom{position:absolute;bottom:26px;left:0;right:0;display:flex;align-items:center;justify-content:space-between;font-size:.65rem;letter-spacing:.13em;color:#d5dfe2}.hero-bottom a{letter-spacing:.04em;display:flex;gap:22px;align-items:center}.hero-bottom a span{font-size:1.4rem}.credentials{background:#f5f5f1;border-bottom:1px solid #e4e5e0}.credentials-grid{display:grid;grid-template-columns:repeat(4,1fr);padding-block:31px}.credentials-grid>div{display:flex;flex-direction:column;padding-inline:35px;border-right:1px solid #d8ddd9}.credentials-grid>div:first-child{padding-left:0}.credentials-grid>div:last-child{border:0}.credentials strong{font-size:1.4rem;letter-spacing:-.025em;font-weight:500}.credentials span{font-size:.75rem;color:#69747a;margin-top:4px}.about{display:grid;grid-template-columns:1fr 1fr;gap:95px}.about-copy{padding-top:5px}.lead{font-size:1.17rem;color:#263f4a;line-height:1.75}.about-copy>p:not(.lead){font-size:.875rem;color:#68747b;line-height:1.9}.about small{display:block;font-size:.7rem;color:#738087;margin-top:11px}.materials{background:#f4f5f3}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:90px;margin-bottom:45px}.section-heading>p{max-width:350px;color:#68747b;font-size:.875rem;margin-bottom:6px}.material-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.material-card{background:white;min-width:0}.material-image{height:245px;overflow:hidden;position:relative;background:#e3e5e3}.material-image img{height:100%;width:100%;transition:transform .6s}.material-card:hover .material-image img{transform:scale(1.04)}.material-number{position:absolute;top:15px;left:16px;color:#fff;font-size:.75rem;background:#0a2b3ec4;min-width:31px;text-align:center;padding:4px}.material-body{padding:25px 23px 21px}.material-body h3{margin:10px 0 15px;font-size:1.85rem}.material-body p{font-size:1rem;color:#69767b;min-height:67px;line-height:1.65}.material-link{font-size:.75rem;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e4e8e6;padding-top:16px;font-weight:600}.material-link span{font-size:1.2rem;color:#96703c}.material-link:hover{color:#956629}.bespoke{display:flex;align-items:center;justify-content:space-between;gap:30px;border-top:1px solid #d9dfda;margin-top:39px;padding-top:25px}.bespoke p{font-size:.8rem;margin:0;color:#68747b}.bespoke strong{color:#213846;font-weight:600}.bespoke .text-link{font-size:.8rem;flex-shrink:0}.expertise{background:#092b3e;color:#fff}.expertise-grid{display:grid;grid-template-columns:1fr 1fr;gap:115px}.expertise-intro h2{font-size:clamp(2.3rem,3.5vw,3.4rem)}.expertise-intro h2 em{color:#d7b17b}.expertise-intro>p:not(.eyebrow){font-size:.9rem;color:#b5c5cd;max-width:380px;margin-top:28px}.expertise-intro .text-link{margin-top:4px;font-size:.8rem}.expertise-foot{border-top:1px solid #36505f;margin-top:66px;padding-top:24px;font-size:1.45rem;letter-spacing:.12em;font-weight:700;color:#b9c7cd;display:flex;gap:18px;align-items:center}.expertise-foot span{font-size:.6rem;letter-spacing:.18em;font-weight:400}.service-list article{display:flex;gap:24px;border-top:1px solid #36505f;padding:26px 0 7px}.service-list article:first-child{padding-top:0;border:0}.service-number{font-size:.8rem;color:#d6b17b;padding-top:3px}.service-list h3{font-size:1.35rem;letter-spacing:-.02em;margin-bottom:13px}.service-list p{font-size:1rem;color:#b5c5cd;line-height:1.8}.market-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:24px}.origin-panel{background:#e9eef0;padding:45px;position:relative;overflow:hidden}.origin-panel .eyebrow{color:#7b663e}.origin-panel strong{font-weight:500;letter-spacing:-.04em;font-size:4.5rem;display:block;line-height:1.3;margin-top:20px}.origin-panel strong span{font-size:3rem;display:inline-block;color:#9b855e;margin-left:30px;font-weight:400}.origin-panel p{font-size:.875rem;margin-top:20px;color:#526a77}.origin-coord{font-size:.65rem;letter-spacing:.2em;color:#677e8a}.market-cards{display:grid;gap:20px}.market-cards article{background:#f5f5f1;padding:32px 39px}.market-cards h3{font-size:1.8rem;margin:12px 0 16px}.market-cards p{font-size:1rem;color:#66757d;margin:0}.contact{background:#f3f3ee}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:95px}.contact-grid>div>p:not(.eyebrow){font-size:.9rem;color:#657278;max-width:400px;margin-top:27px}.contact h2{font-size:clamp(2.3rem,3.7vw,3.5rem)}.contact-note{display:flex;align-items:center;gap:19px;border-top:1px solid #d8dcd5;margin-top:36px;padding-top:25px}.contact-note>span{font-size:2rem;color:#ad844a}.contact-note p{margin:0;font-size:.8rem;color:#69777e}.contact-details{margin:28px 0 8px;padding:20px 24px;border:1px solid #e2e7e8;border-radius:14px;background:#f7f9f9}.contact-details p{margin:0}.contact-person{margin-bottom:12px!important;line-height:1.4}.contact-phone .micro{display:block;margin-bottom:2px}.contact-phone a{font-size:1.15rem;font-weight:600}.contact-email{display:block;margin-top:25px;font-size:1.1rem;text-decoration:underline;text-underline-offset:5px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid label{font-size:.75rem;font-weight:600}.form-grid label>span{color:#8e692e}.form-grid input,.form-grid select,.form-grid textarea{display:block;border:1px solid #d6dcd7;width:100%;border-radius:0;background:#fff;padding:13px 14px;margin-top:8px;min-width:0;font-size:.875rem;color:#213948}.form-grid input::placeholder,.form-grid textarea::placeholder{color:#778185}.form-grid textarea{resize:vertical;min-height:110px}.span-2{grid-column:span 2}.consent{font-size:.72rem;color:#647279;display:flex;align-items:flex-start;gap:10px;margin:20px 0}.consent input{width:17px;height:17px;margin-top:2px;flex-shrink:0;accent-color:#0b2d40}.consent a{text-decoration:underline;text-underline-offset:3px}.submit{width:100%}.submit:disabled{opacity:.7;cursor:wait;transform:none}#form-status{font-size:1rem;margin:15px 0 0}#form-status.error{color:#a12d2d}#form-status.success{color:#20593e}#form-status a{color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px}.honeypot{position:absolute;left:-9999px}.details-fallback{padding-block:25px}.details-fallback details{padding:15px;border-bottom:1px solid #ddd}.details-fallback p{margin-top:12px}.js .details-fallback{display:none}footer{background:#092b3e;color:#c6d2d8}.footer-main{display:grid;grid-template-columns:1.6fr 1fr 1.2fr auto;gap:55px;padding-block:60px}.footer-brand{font-size:2rem;letter-spacing:.07em;font-weight:750;color:white}.footer-brand>span{display:block;font-size:.57rem;letter-spacing:.32em;font-weight:400}.footer-brand p{font-size:.8rem;letter-spacing:0;line-height:1.7;color:#a7bbc7;font-weight:400;margin:20px 0 0}.footer-main .micro{display:block;color:#d5b582;margin-bottom:18px}.footer-main>div>a{display:block;font-size:.8rem;line-height:2.25}.footer-main a:hover{color:#e0ba7a}.back-top{font-size:.7rem;align-self:start}.footer-bottom{border-top:1px solid #34505f;padding-block:23px;display:flex;justify-content:space-between;gap:20px;font-size:.67rem;color:#a9bec9}dialog{border:0;padding:48px;width:min(590px,calc(100% - 32px));max-height:85vh;color:#193343;background:#fff;box-shadow:0 25px 100px #0003}dialog::backdrop{background:#031b2cbb;backdrop-filter:blur(3px)}dialog h2{margin-bottom:25px}dialog p{font-size:.95rem;color:#64747c}dialog .eyebrow{color:#8b6937;font-size:.7rem}.dialog-close{position:absolute;top:10px;right:15px;background:none;border:0;font-size:2rem;color:#173749;min-width:44px;min-height:44px}dialog .button{margin-top:10px}.legal{max-width:760px;padding-block:70px}.legal h1{font-size:3rem;margin:30px 0}.legal h2{font-size:1.5rem;margin:30px 0 15px}.legal p{color:#536b78}.legal a{text-decoration:underline}.legal .eyebrow{text-decoration:none}.reveal-in{animation:enter .65s ease both}@keyframes enter{from{opacity:.7;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(min-width:1600px){.hero{min-height:740px}}@media(max-width:1150px){.wrap{width:calc(100% - 64px)}.header nav{gap:20px;font-size:.75rem}.header-actions{gap:16px}.header-actions .button{display:none}.about,.contact-grid{gap:55px}.expertise-grid{gap:65px}.material-grid{gap:15px}.material-body{padding:20px 16px}.material-image{height:210px}.section-heading{gap:45px}.hero{min-height:625px}.credentials-grid>div{padding-inline:22px}.credentials strong{font-size:1.2rem}.footer-main{gap:30px}}
@media(max-width:800px){.section{padding-block:75px}.header-inner{height:85px;gap:16px;flex-wrap:wrap}.brand img{width:106px;height:76px}.header-actions{margin-left:auto}.menu-toggle:not([hidden]){display:flex;order:3;align-items:center}.js .header nav{display:none;position:absolute;left:0;right:0;top:85px;padding:20px 32px;background:white;border-top:1px solid #e2e7e8;box-shadow:0 15px 25px #0b293415;flex-direction:column;align-items:stretch;gap:0}.js .header nav.open{display:flex}.header nav .mobile-enquiry{display:block}.header nav a{padding:14px 0}.header:not(.js *) nav{order:4;flex-wrap:wrap}.header-inner:has(.menu-toggle[hidden]){height:auto;min-height:85px;padding-bottom:12px}.topline .wrap>span:last-child{display:none}.topline{font-size:.6rem}.hero{min-height:615px}.hero-picture{inset:0}.hero-shade{background:linear-gradient(90deg,#092b3ef2,#092b3e9c 70%,#092b3e65),linear-gradient(0deg,#092b3ebb,transparent)}.hero-content{padding-block:70px 110px}h1{font-size:3.6rem}.hero-description{max-width:480px}.hero-buttons{gap:20px}.credentials-grid{grid-template-columns:1fr 1fr;row-gap:22px;padding-block:28px}.credentials-grid>div:nth-child(2){border-right:0}.credentials-grid>div:nth-child(3){padding-left:0}.about{grid-template-columns:1fr;gap:30px}.about-copy{max-width:650px}.section-heading{display:block}.section-heading>p{max-width:540px;margin-top:24px}.material-grid{grid-template-columns:1fr 1fr;gap:24px}.material-image{height:270px}.material-body{padding:24px}.material-body p{min-height:48px}.bespoke{align-items:flex-start;flex-direction:column;gap:16px}.expertise-grid{grid-template-columns:1fr;gap:45px}.expertise-intro>p:not(.eyebrow){max-width:540px}.expertise-foot{display:none}.market-layout{grid-template-columns:.8fr 1fr}.origin-panel{padding:32px}.origin-panel strong{font-size:3.2rem}.origin-panel strong span{font-size:2rem;margin-left:10px}.market-cards article{padding:25px}.contact-grid{grid-template-columns:1fr;gap:40px}.contact-grid>div>p:not(.eyebrow){max-width:550px}.contact-note{margin-top:25px}.footer-main{grid-template-columns:1.2fr 1fr 1fr;gap:25px}.back-top{grid-column:1/-1}.footer-bottom{font-size:.65rem}}
@media(max-width:500px){.wrap{width:calc(100% - 40px)}.section{padding-block:60px}.topline{padding-block:8px}.hero{min-height:630px}h1{font-size:2.8rem;line-height:1.14}h2{font-size:2.45rem}.hero .eyebrow{font-size:.61rem;letter-spacing:.1em}.hero-content{padding-top:56px;padding-bottom:105px}.hero-description{font-size:.925rem;max-width:350px}.hero-buttons{align-items:flex-start;flex-direction:column;gap:21px}.hero-buttons .button{padding:14px 20px}.hero-bottom{font-size:.56rem;letter-spacing:.04em;bottom:18px}.hero-bottom a{font-size:.6rem;gap:10px}.credentials-grid>div{padding-inline:12px}.credentials strong{font-size:1.13rem}.credentials span{font-size:.68rem;max-width:155px}.about{gap:25px}.lead{font-size:1.05rem}.section-heading{margin-bottom:30px}.material-grid{gap:15px}.material-image{height:185px}.material-body{padding:18px 14px}.material-body .micro{font-size:.59rem;letter-spacing:.05em}.material-body h3{font-size:1.55rem}.material-body p{font-size:.76rem;min-height:76px}.material-link{font-size:.67rem;gap:5px}.material-link span{font-size:1rem}.market-layout{grid-template-columns:1fr}.origin-panel strong{display:flex;justify-content:space-between;align-items:center}.origin-panel p{margin-top:10px}.market-cards h3{font-size:1.65rem}.contact h2{font-size:2.4rem}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.footer-main{grid-template-columns:1fr 1fr;row-gap:36px;padding-block:40px}.footer-brand{grid-column:1/-1}.footer-bottom{flex-direction:column;gap:7px}.expertise-intro h2{font-size:2.35rem}.service-list h3{font-size:1.2rem}.service-list article{gap:17px}.languages{font-size:.7rem}.header-inner{gap:8px}.menu-toggle{font-size:.75rem;padding:8px}.header-actions{gap:0}.eyebrow{font-size:.67rem}.dialog-close{right:8px}dialog{padding:40px 25px}.legal h1{font-size:2.4rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* ===== INTERACTIVITY & ANIMATION LAYER ===== */

/* Scroll progress bar */
.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:50;background:transparent;pointer-events:none}
.scroll-progress span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#d5ae70,#b3843c,#e3c28f);transform:scaleX(0);transform-origin:0 50%;transition:transform .08s linear}

/* Film grain — subtle paper texture over the page */
.page-grain{position:fixed;inset:0;z-index:40;pointer-events:none;opacity:.035;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px}

/* Soft cursor glow (desktop) */
.cursor-glow{position:fixed;width:280px;height:280px;border-radius:50%;pointer-events:none;z-index:35;opacity:0;background:radial-gradient(circle,rgba(213,174,112,.18) 0%,transparent 70%);transform:translate(-50%,-50%);transition:opacity .4s;mix-blend-mode:multiply}
.js.fine-pointer .cursor-glow.is-on{opacity:1}

/* Header shrink on scroll */
.js .header{transition:box-shadow .35s,background .35s,backdrop-filter .35s}
.js .header.scrolled{box-shadow:0 12px 40px #092b3e14;background:#fffffff2;backdrop-filter:blur(10px)}

/* Scroll reveal — base + directional variants */
.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .75s cubic-bezier(.22,.61,.36,1),transform .75s cubic-bezier(.22,.61,.36,1),clip-path .9s cubic-bezier(.22,.61,.36,1)}
.js [data-reveal=left]{transform:translateX(-32px)}
.js [data-reveal=right]{transform:translateX(32px)}
.js [data-reveal=clip]{clip-path:inset(12% 12% 12% 12%);transform:scale(.97)}
.js [data-reveal].revealed{opacity:1;transform:none;clip-path:inset(0)}
.js .gallery-card[data-reveal].revealed,.js .material-card[data-reveal].revealed{
  transform:perspective(900px) rotateX(var(--ty,0deg)) rotateY(var(--tx,0deg));
}

/* Tilt cards (values set by JS) */
.js .gallery-card,.js .material-card{transform:perspective(900px) rotateX(var(--ty,0deg)) rotateY(var(--tx,0deg));transition:transform .25s ease-out,box-shadow .3s,opacity .75s,clip-path .9s}
.js .gallery-card:hover{box-shadow:0 30px 70px #092b3e26}
.js .material-card:hover{box-shadow:0 25px 60px #092b3e1a}

/* Magnetic buttons (values set by JS) */
.js .button{position:relative;overflow:hidden;transform:translate(var(--mx,0px),var(--my,0px))}
.js .button:hover{transform:translate(var(--mx,0px),calc(var(--my,0px) - 2px))}
.js .button span{transition:transform .25s;position:relative;z-index:1}
.js .button:hover span{transform:translate(3px,-3px)}
.js .button:before{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.18) 50%,transparent 70%);transform:translateX(-120%);transition:transform .6s}
.js .button:hover:before{transform:translateX(120%)}

/* Gallery filter states */
.js .gallery-card{will-change:transform}
.js .gallery-card.hidden{display:none}
.js .gallery-card.pop{animation:pop .45s cubic-bezier(.22,.61,.36,1) both}
@keyframes pop{from{opacity:0;transform:perspective(900px) scale(.96) translateY(14px)}to{opacity:1;transform:perspective(900px) scale(1) translateY(0)}}

/* Gallery filter buttons */
.gallery-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}
.gallery-filters button{border:1px solid #d9dfda;background:#fff;color:#526a77;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:10px 20px;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .2s,box-shadow .25s}
.gallery-filters button:hover{border-color:#b3843c;color:#89642f;transform:translateY(-2px)}
.gallery-filters button[aria-pressed=true]{background:#092b3e;border-color:#092b3e;color:#fff;box-shadow:0 8px 22px #092b3e33}

/* Dialog entrance */
.js dialog[open]{animation:dialogIn .35s cubic-bezier(.22,.61,.36,1) both}
.js dialog[open]::backdrop{animation:backdropIn .3s ease both}
@keyframes dialogIn{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:none}}
@keyframes backdropIn{from{opacity:0}to{opacity:1}}

/* Hero text entrance (one-shot, on load) */
.js .hero .eyebrow,.js .hero h1,.js .hero-description,.js .hero-buttons,.js .hero-bottom{animation:heroUp .85s cubic-bezier(.22,.61,.36,1) both}
.js .hero h1{animation-delay:.1s}
.js .hero-description{animation-delay:.22s}
.js .hero-buttons{animation-delay:.34s}
.js .hero-bottom{animation-delay:.48s}
@keyframes heroUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}

/* Hero ambient orbs */
.hero-orbs{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.hero-orbs span{position:absolute;border-radius:50%;filter:blur(40px);opacity:.35;animation:orbFloat 14s ease-in-out infinite}
.hero-orbs span:nth-child(1){width:340px;height:340px;background:#d5ae70;top:12%;right:8%;animation-delay:0s}
.hero-orbs span:nth-child(2){width:220px;height:220px;background:#3d7a95;bottom:18%;right:28%;opacity:.22;animation-delay:-4s}
.hero-orbs span:nth-child(3){width:160px;height:160px;background:#e3c28f;top:55%;right:5%;opacity:.28;animation-delay:-8s}
@keyframes orbFloat{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-18px,22px) scale(1.08)}}

/* Eyebrow gold line draw */
.js .eyebrow span{transform-origin:0 50%;animation:lineDraw .9s cubic-bezier(.22,.61,.36,1) .15s both}
@keyframes lineDraw{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* Pencil-line hover for text links */
.js .text-link{position:relative}
.js .text-link:after{content:'';position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;transform:scaleX(.35);transform-origin:0 50%;transition:transform .35s cubic-bezier(.22,.61,.36,1)}
.js .text-link:hover:after{transform:scaleX(1)}

/* Form focus rings with soft grow */
.js .form-grid input,.js .form-grid select,.js .form-grid textarea{transition:border-color .25s,box-shadow .25s,transform .2s}
.js .form-grid input:focus,.js .form-grid select:focus,.js .form-grid textarea:focus{border-color:#b3843c;box-shadow:0 0 0 4px #d5ae7026}

/* Back-to-top pulse */
.js .back-top{transition:color .25s,transform .25s}
.js .back-top:hover{color:#e0ba7a;transform:translateY(-3px)}
@keyframes floatUp{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

/* Credentials — lift + gold tick */
.js .credentials-grid>div{transition:transform .35s,background .35s}
.js .credentials-grid>div:hover{transform:translateY(-4px)}
.js .credentials strong{position:relative}
.js .credentials-grid>div.revealed strong:after{content:'';position:absolute;left:0;bottom:-6px;width:28px;height:2px;background:#d5ae70;animation:lineDraw .55s cubic-bezier(.22,.61,.36,1) .2s both}

/* Material image ken-burns + shine */
.js .material-image:after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.22) 50%,transparent 65%);transform:translateX(-130%);pointer-events:none}
.js .material-card:hover .material-image:after{animation:shineSweep .85s ease}
@keyframes shineSweep{to{transform:translateX(130%)}}
.js .material-image img{transition:transform 1.1s cubic-bezier(.22,.61,.36,1)}
.js .material-card:hover .material-image img{transform:scale(1.08)}

/* Service list — gold accent draw on reveal */
.js .service-list article{position:relative}
.js .service-list article.revealed .service-number{animation:numPop .5s cubic-bezier(.22,.61,.36,1) both}
@keyframes numPop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.js .service-list article:before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(#d5ae70,transparent);transform:scaleY(0);transform-origin:top;transition:transform .6s cubic-bezier(.22,.61,.36,1)}
.js .service-list article.revealed:before{transform:scaleY(1)}
.js .service-list article{padding-left:12px;margin-left:-12px}

/* Pillar cards — border glow + number fade-up */
.js .pillar-card{overflow:hidden}
.js .pillar-card:before{content:'';position:absolute;inset:0;border:1px solid transparent;background:linear-gradient(#10374d,#0a2b3e) padding-box,linear-gradient(135deg,#d5ae70,#2a4a5e 55%) border-box;opacity:0;transition:opacity .4s;pointer-events:none;border-radius:inherit}
.js .pillar-card:hover:before{opacity:1}
.js .pillar-card.revealed .pillar-number{animation:numPop .55s cubic-bezier(.22,.61,.36,1) .05s both}

/* Origin panel — soft map grid + Arabic float */
.origin-panel:after{content:'';position:absolute;inset:0;opacity:.12;background-image:linear-gradient(#092b3e 1px,transparent 1px),linear-gradient(90deg,#092b3e 1px,transparent 1px);background-size:42px 42px;pointer-events:none}
.js .origin-panel strong span{display:inline-block;animation:arabFloat 5s ease-in-out infinite}
@keyframes arabFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* Gallery media — clip reveal */
.js .gallery-media{clip-path:inset(8% 8% 8% 8%);transition:clip-path .8s cubic-bezier(.22,.61,.36,1)}
.js .gallery-card.revealed .gallery-media,.js .gallery-card.pop .gallery-media,.js .gallery-card:hover .gallery-media{clip-path:inset(0)}
.js .gallery-card{transition:transform .25s ease-out,box-shadow .3s}
.js .gallery-card:not([data-reveal]).in-view .gallery-media{clip-path:inset(0)}

/* Market cards hover */
.js .market-cards article{transition:transform .35s,box-shadow .35s,background .35s}
.js .market-cards article:hover{transform:translateY(-5px);box-shadow:0 20px 50px #092b3e14;background:#fafaf7}

/* Contact details soft entrance */
.js .contact-details{transition:border-color .3s,box-shadow .3s,transform .3s}
.js .contact-details:hover{border-color:#d5ae70;box-shadow:0 12px 36px #092b3e0f;transform:translateY(-2px)}

/* Section heading gold rule */
.section-heading>div h2{position:relative}
.js .section-heading>div h2:after{content:'';display:block;width:48px;height:2px;margin-top:18px;background:linear-gradient(90deg,#d5ae70,#d5ae7000);transform:scaleX(0);transform-origin:0 50%;transition:transform .7s cubic-bezier(.22,.61,.36,1)}
.js .section-heading.revealed>div h2:after,.js .section-heading h2.lined:after{transform:scaleX(1)}

/* Topline subtle shimmer */
.topline{position:relative;overflow:hidden}
.topline:after{content:'';position:absolute;top:0;left:-30%;width:30%;height:100%;background:linear-gradient(90deg,transparent,rgba(213,174,112,.18),transparent);animation:toplineShimmer 7s ease-in-out infinite}
@keyframes toplineShimmer{0%,100%{transform:translateX(0)}50%{transform:translateX(420%)}}

@media(prefers-reduced-motion:reduce){
  .js [data-reveal]{opacity:1;transform:none;clip-path:none;transition:none}
  .js .gallery-card,.js .material-card{transform:none}
  .js .button{transform:none}
  .js .button:before{display:none}
  .js .hero .eyebrow,.js .hero h1,.js .hero-description,.js .hero-buttons,.js .hero-bottom{animation:none;opacity:1}
  .js dialog[open]{animation:none}
  .hero-orbs span,.js .origin-panel strong span,.topline:after{animation:none}
  .page-grain,.cursor-glow{display:none}
  .js .credentials-grid>div.revealed strong:after,.js .eyebrow span{animation:none}
  .js .material-card:hover .material-image:after{animation:none}
  .js .gallery-media{clip-path:none}
}

/* ===== GALLERY SECTION ===== */
.gallery{background:#fafafa}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.gallery-card{background:#fff;border:1px solid #e8ebe9;border-radius:0;overflow:hidden;transition:transform .3s,box-shadow .3s}
.gallery-card:hover{transform:translateY(-6px);box-shadow:0 25px 60px #092b3e1a}
.gallery-media{position:relative;aspect-ratio:16/9;overflow:hidden}
.gallery-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.gallery-card:hover .gallery-media img{transform:scale(1.05)}
.gallery-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,#092b3ecc);opacity:0;transition:opacity .3s;display:flex;flex-direction:column;justify-content:space-between;padding:20px}
.gallery-card:hover .gallery-overlay{opacity:1}
.gallery-category{font-size:.6rem;letter-spacing:.15em;font-weight:700;color:#fff;background:#d5ae70;padding:6px 14px;display:inline-block;align-self:flex-start}
.gallery-expand{width:44px;height:44px;border-radius:50%;background:#fff;color:#092b3e;border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .2s;align-self:flex-end}
.gallery-expand:hover{background:#f0f0f0;transform:scale(1.1)}
.gallery-body{padding:24px}
.gallery-location{font-size:.7rem;letter-spacing:.1em;color:#8a6b3a;font-weight:600;margin-bottom:8px}
.gallery-body h3{font-size:1.25rem;margin:0 0 12px}
.gallery-body p{font-size:.875rem;color:#657278;line-height:1.7;margin:0 0 16px}
.gallery-meta{display:flex;gap:16px;font-size:.65rem;letter-spacing:.08em;color:#89642f}
.gallery-material{font-weight:700;text-transform:uppercase}
.gallery-spec{color:#657278}

/* ===== SUSTAINABILITY SECTION ===== */
.sustainability{background:#092b3e;color:#fff}
.sustainability-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.pillar-card{background:linear-gradient(180deg,#10374d 0%,#0a2b3e 100%);border:1px solid #2a4a5e;padding:36px 28px;position:relative;transition:transform .3s,border-color .3s}
.pillar-card:hover{transform:translateY(-6px);border-color:#d5ae70}
.pillar-number{font-size:4rem;font-weight:700;color:#1a4a5c;line-height:1;letter-spacing:-.03em;opacity:.5;margin-bottom:16px}
.pillar-badge{font-size:.55rem;letter-spacing:.14em;font-weight:700;color:#d5ae70;background:#0b2d40;padding:6px 12px;display:inline-block;margin-bottom:20px}
.pillar-content h3{font-size:1.25rem;margin:0 0 10px;color:#fff}
.pillar-lead{font-size:.875rem;color:#c5d8e0;margin:0 0 12px;font-weight:500}
.pillar-content p{font-size:.8rem;color:#8db4c7;line-height:1.8;margin:0}

/* ===== GALLERY DIALOG ===== */
#gallery-dialog{border:0;padding:0;max-width:90vw;max-height:90vh;background:#fff;color:#142e3e}
#gallery-dialog::backdrop{background:#031b2cdd;backdrop-filter:blur(4px)}
.gallery-dialog-media{width:100%;aspect-ratio:16/9;background:#0a2b3e}
.gallery-dialog-media img{width:100%;height:100%;object-fit:cover}
.gallery-dialog-body{padding:32px;max-height:60vh;overflow-y:auto}
.gallery-dialog-body .eyebrow{font-size:.6rem;letter-spacing:.14em;font-weight:700;color:#89642f;margin-bottom:12px}
.gallery-dialog-body h2{font-size:clamp(1.5rem,3vw,2rem);margin:0 0 16px}
.gallery-dialog-body p{font-size:.9rem;color:#64747c;margin:0 0 20px}
.gallery-dialog-meta{display:flex;gap:20px;padding-top:20px;border-top:1px solid #e8ebe9}
.gallery-dialog-meta span{font-size:.65rem;letter-spacing:.08em;font-weight:600;color:#89642f}

/* ===== RESPONSIVE (interactivity layer) ===== */
@media(max-width:1150px){
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .sustainability-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:800px){
  .gallery-grid{grid-template-columns:1fr}
  .sustainability-grid{grid-template-columns:1fr}
  .pillar-number{font-size:3rem}
  .gallery-dialog-body{padding:24px}
  /* Touch devices: no tilt, lighter reveal */
  .js .gallery-card,.js .material-card{transform:none}
}
