
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--cream:#f7f1e5;--paper:#fffdf8;--green:#123b2b;--green2:#1d513b;--brown:#542512;--gold:#bd9560;--ink:#211d18;--muted:#756e62;--line:#e7dece;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.wrap{width:min(1180px,calc(100% - 48px));margin:auto}.topbar{background:var(--green);color:#f8f2e8;font-size:11px;letter-spacing:.09em;padding:8px 0}.topbar .wrap{display:flex;justify-content:space-between;gap:20px}.header{position:sticky;top:0;z-index:50;background:rgba(255,253,248,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(84,37,18,.09)}.navwrap{height:88px;display:flex;align-items:center;justify-content:space-between;gap:30px}.logo{width:218px;max-height:75px;object-fit:contain;object-position:left center}.nav{display:flex;align-items:center;gap:27px;font-size:12px;font-weight:700;letter-spacing:.03em}.nav a{color:#514a3f;transition:.25s}.nav a:hover,.nav a.active{color:var(--green2)}.nav .navbtn{background:var(--green);color:white;padding:12px 18px;border-radius:2px}.menu{display:none;border:0;background:transparent;font-size:25px;color:var(--green)}.hero{background:var(--cream);position:relative;overflow:hidden;min-height:650px;display:flex;align-items:center}.hero:before{content:"";position:absolute;width:650px;height:650px;border:1px solid #e2d3b8;border-radius:50%;right:-120px;top:-180px;box-shadow:0 0 0 65px #f1e7d5,0 0 0 66px #e5d7c0}.hero-grid{display:grid;grid-template-columns:1fr .92fr;align-items:center;gap:55px;position:relative;padding:70px 0}.eyebrow{font-size:10px;letter-spacing:.22em;font-weight:700;color:var(--green2);margin:0 0 18px;text-transform:uppercase}.hero h1,.pagehero h1{font:700 clamp(48px,6.5vw,82px)/1.02 'Space Grotesk',sans-serif;letter-spacing:-.065em;color:var(--brown);margin:0 0 25px}.hero h1 span,.pagehero h1 span{color:var(--green)}.lead{font-size:17px;line-height:1.8;color:#65594b;max-width:570px}.actions{display:flex;gap:13px;flex-wrap:wrap;margin:30px 0 34px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;padding:14px 21px;font-size:12px;font-weight:700;letter-spacing:.04em;border:1px solid var(--green);transition:transform .25s,background .25s}.btn:hover{transform:translateY(-3px)}.btn.primary{background:var(--green);color:white}.btn.outline{color:var(--green)}.hero-note{font-size:10px;letter-spacing:.14em;color:#867966}.hero-photo{position:relative;z-index:2}.hero-photo img{width:100%;height:470px;object-fit:cover;border-radius:48% 48% 3px 3px;box-shadow:22px 22px 0 #e7d8bf}.hero-stamp{position:absolute;left:-30px;bottom:22px;background:var(--green);color:#fff;border-radius:50%;width:118px;height:118px;display:grid;place-items:center;text-align:center;font:600 13px 'Playfair Display';line-height:1.3;transform:rotate(-10deg);border:5px solid var(--cream)}.section{padding:100px 0}.section.soft{background:var(--cream)}.section.dark{background:var(--green);color:#fff}.section.dark .eyebrow{color:#d4b27e}.section-title{font:600 clamp(34px,4vw,54px)/1.12 'Playfair Display',serif;letter-spacing:-.035em;color:var(--brown);margin:0 0 20px}.dark .section-title{color:#fff}.section-title em{color:var(--green);font-style:normal}.dark .section-title em{color:#d8b984}.sub{max-width:640px;color:var(--muted)}.split{display:grid;grid-template-columns:.85fr 1.15fr;gap:85px;align-items:start}.split p{color:#70675b}.bigcopy{font:500 22px/1.55 'Playfair Display';color:var(--brown)!important}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px}.service-card{background:white;border:1px solid var(--line);transition:.3s;overflow:hidden}.service-card:hover{transform:translateY(-7px);box-shadow:0 18px 45px #4a30140f}.service-card img{height:210px;width:100%;object-fit:cover;transition:transform .6s}.service-card:hover img{transform:scale(1.04)}.service-body{padding:23px}.service-no{font-size:10px;letter-spacing:.15em;color:var(--gold);font-weight:700}.service-body h3{font:600 23px 'Playfair Display';color:var(--brown);margin:7px 0}.service-body p{font-size:13px;color:var(--muted);min-height:65px}.arrow{color:var(--green);font-weight:700;font-size:12px}.work-grid{display:grid;grid-template-columns:1.1fr .9fr .9fr;gap:18px;margin-top:40px}.work-card{position:relative;min-height:390px;overflow:hidden;background:#d6c5aa}.work-card img{width:100%;height:100%;min-height:390px;object-fit:cover;transition:transform .7s}.work-card:hover img{transform:scale(1.06)}.work-overlay{position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#10261de8);display:flex;flex-direction:column;justify-content:end;padding:25px;color:white}.work-overlay small{font-size:9px;letter-spacing:.17em;color:#e3c18a}.work-overlay h3{font:600 25px 'Playfair Display';margin:7px 0}.work-overlay p{font-size:11px;margin:0;color:#eee}.status{display:inline-block;border:1px solid #d9c18f;color:#f0d5a5;padding:5px 8px;font-size:9px;letter-spacing:.1em;width:max-content;margin-bottom:8px}.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:45px}.step{padding:22px;border-top:1px solid #c9bda8;position:relative}.step b{color:var(--gold);font-size:11px}.step h3{font:600 20px 'Playfair Display';color:var(--brown);margin:12px 0 7px}.step p{font-size:12px;color:var(--muted)}.cta{background:var(--brown);color:white;padding:68px 0}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.cta h2{font:600 clamp(32px,4vw,48px)/1.1 'Playfair Display';margin:0}.cta .eyebrow{color:#e0bc83}.cta .btn{border-color:#fff;color:var(--green);background:#fff}.footer{background:#10271e;color:#e9e1d2;padding:65px 0 22px}.footgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:45px;padding-bottom:45px}.footlogo{width:200px;filter:brightness(0) invert(1);opacity:.92;margin-bottom:15px}.footer p{font-size:12px;color:#b6c0b4;max-width:280px}.footer h4{font:600 16px 'Playfair Display';margin:0 0 17px;color:#f5e8d2}.footer a:not(.footbrand){display:block;color:#c2c9bd;font-size:12px;margin:9px 0}.copyright{border-top:1px solid #345043;padding-top:18px;color:#9caa9d;font-size:10px;display:flex;justify-content:space-between}.pagehero{background:var(--cream);padding:95px 0 90px;position:relative;overflow:hidden}.pagehero:after{content:"";position:absolute;width:440px;height:440px;border:1px solid #e3d4ba;border-radius:50%;right:-100px;top:-140px;box-shadow:0 0 0 45px #f1e7d5}.pagehero .wrap{position:relative;z-index:1}.pagehero h1{max-width:850px}.pagehero .lead{max-width:670px}.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center;margin:55px 0}.service-detail:nth-child(even) .detail-image{order:2}.detail-image{height:390px;overflow:hidden}.detail-image img{width:100%;height:100%;object-fit:cover}.detail-copy h2{font:600 36px 'Playfair Display';color:var(--brown);line-height:1.15}.detail-copy p,.detail-copy li{font-size:14px;color:var(--muted)}.detail-copy ul{padding-left:18px}.taglist{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.taglist span{font-size:9px;letter-spacing:.1em;border:1px solid var(--line);padding:7px 10px;color:var(--green)}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.portfolio-card{border:1px solid var(--line);background:#fff}.portfolio-card img{height:230px;width:100%;object-fit:cover}.portfolio-card .pbody{padding:23px}.portfolio-card h3{font:600 23px 'Playfair Display';color:var(--brown);margin:8px 0}.portfolio-card p{font-size:12px;color:var(--muted)}.pstatus{font-size:9px;letter-spacing:.13em;color:var(--green2);font-weight:700}.contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:65px}.contact-methods{display:grid;gap:12px;margin-top:28px}.method{display:flex;align-items:center;gap:15px;padding:15px;border:1px solid var(--line);background:#fff}.method-icon{width:42px;height:42px;flex:0 0 42px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:white;font-size:17px}.method-icon svg{width:19px;height:19px;display:block}.method small{display:block;font-size:9px;letter-spacing:.13em;color:var(--muted)}.method strong{font-size:13px;color:var(--brown)}.formbox{background:var(--cream);padding:34px}.formbox h3{font:600 27px 'Playfair Display';color:var(--brown);margin:0 0 8px}.formbox>p{font-size:12px;color:var(--muted);margin-bottom:24px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:10px;letter-spacing:.08em;font-weight:700;color:#554838}.field input,.field select,.field textarea{width:100%;padding:12px 13px;border:1px solid #ded2bd;background:#fffdf8;font:13px 'DM Sans';color:var(--ink);border-radius:0;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green)}.field textarea{resize:vertical}.radio-row{display:flex;gap:14px;flex-wrap:wrap}.radio-row label{font-size:11px;letter-spacing:0;font-weight:500}.formhint{font-size:10px;color:#7c7163}.faq{max-width:850px}.faq details{border-bottom:1px solid var(--line);padding:18px 0}.faq summary{font:600 18px 'Playfair Display';color:var(--brown);cursor:pointer}.faq details p{font-size:13px;color:var(--muted)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}.float{animation:float 6s ease-in-out infinite}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}.marquee{overflow:hidden;white-space:nowrap;background:var(--green);color:#f2e7d2;padding:13px 0;font-size:10px;letter-spacing:.2em}.marquee span{display:inline-block;animation:scroll 30s linear infinite}@keyframes scroll{to{transform:translateX(-50%)}}@media(max-width:900px){.nav{gap:15px}.logo{width:175px}.hero-grid{grid-template-columns:1fr  .8fr;gap:25px}.hero-photo img{height:390px}.services-grid,.portfolio-grid{grid-template-columns:repeat(2,1fr)}.work-grid{grid-template-columns:1fr 1fr}.work-card:last-child{grid-column:1/-1}.steps{grid-template-columns:repeat(3,1fr)}.footgrid{grid-template-columns:1fr 1fr}.contact-layout{grid-template-columns:1fr;gap:35px}}@media(max-width:650px){.topbar .wrap{justify-content:center}.topbar .wrap span:last-child{display:none}.navwrap{height:72px}.logo{width:180px}.menu{display:block}.nav{display:none;position:absolute;top:72px;left:0;right:0;background:#fffdf8;padding:20px 25px 25px;box-shadow:0 14px 25px #24180e15;flex-direction:column;align-items:stretch}.nav.open{display:flex}.hero{min-height:auto}.hero-grid{grid-template-columns:1fr;padding:65px 0 55px}.hero h1,.pagehero h1{font-size:51px}.hero-photo{max-width:420px;margin:15px auto 0;width:90%}.hero-photo img{height:340px}.section{padding:72px 0}.split,.service-detail{grid-template-columns:1fr;gap:22px}.service-detail:nth-child(even) .detail-image{order:0}.detail-image{height:270px}.services-grid,.portfolio-grid,.work-grid{grid-template-columns:1fr}.work-card,.work-card img{min-height:320px}.work-card:last-child{grid-column:auto}.steps{grid-template-columns:1fr 1fr}.step{padding:15px}.cta-inner{align-items:flex-start;flex-direction:column}.footgrid{grid-template-columns:1fr 1fr;gap:25px}.footgrid>div:first-child{grid-column:1/-1}.copyright{flex-direction:column;gap:7px}.pagehero{padding:70px 0}.formbox{padding:22px}.formgrid{grid-template-columns:1fr}.field.full{grid-column:auto}.wrap{width:calc(100% - 36px)}}

/* Premium motion treatment for the homepage hero visual */
.hero-photo{isolation:isolate;perspective:1000px;animation:heroPhotoEnter 1.15s cubic-bezier(.2,.75,.25,1) both}
.hero-photo img{transform-origin:50% 45%;animation:heroImageSettle 1.6s cubic-bezier(.2,.75,.25,1) both,heroImageDrift 14s ease-in-out 1.6s infinite;will-change:transform;}
.hero-photo:after{content:"";position:absolute;inset:0 0 0 0;border-radius:48% 48% 3px 3px;pointer-events:none;z-index:1;background:linear-gradient(112deg,transparent 28%,rgba(255,248,232,.22) 43%,transparent 57%);transform:translateX(-130%);animation:heroLightSweep 1.5s ease-out .8s both}
.hero-photo:before{content:"";position:absolute;z-index:-1;inset:-13px -15px 8px 13px;border:1px solid rgba(189,149,96,.48);border-radius:49% 49% 4px 4px;transform:rotate(2deg);animation:heroFrameIn 1.2s ease-out .25s both}
.hero-stamp{z-index:2;animation:stampArrive .9s cubic-bezier(.18,.85,.25,1) 1s both,stampFloat 6s ease-in-out 1.9s infinite;box-shadow:0 12px 28px rgba(18,59,43,.18)}
.hero-photo:hover img{animation-play-state:paused;transform:scale(1.045)}
@keyframes heroPhotoEnter{from{opacity:0;transform:translateY(34px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes heroImageSettle{from{clip-path:inset(0 0 100% 0);transform:scale(1.08)}to{clip-path:inset(0 0 0 0);transform:scale(1)}}
@keyframes heroImageDrift{0%,100%{transform:scale(1)}50%{transform:scale(1.025)}}
@keyframes heroLightSweep{0%{transform:translateX(-130%);opacity:0}20%{opacity:1}100%{transform:translateX(130%);opacity:0}}
@keyframes heroFrameIn{from{opacity:0;transform:translate(20px,10px) rotate(5deg)}to{opacity:1;transform:translate(0,0) rotate(2deg)}}
@keyframes stampArrive{from{opacity:0;transform:translate(-22px,18px) scale(.55) rotate(-28deg)}to{opacity:1;transform:translate(0,0) scale(1) rotate(-10deg)}}
@keyframes stampFloat{0%,100%{transform:translateY(0) rotate(-10deg)}50%{transform:translateY(-9px) rotate(-7deg)}}
@media(prefers-reduced-motion:reduce){.hero-photo,.hero-photo img,.hero-photo:before,.hero-photo:after,.hero-stamp{animation:none!important;transition:none!important}.hero-photo img{transform:none;clip-path:none}}


/* Services page hero: editorial collage fills the open right-hand space */
.services-pagehero{padding:78px 0 76px;min-height:590px}
.services-pagehero:after{right:-125px;top:-150px;width:470px;height:470px;opacity:.8}
.services-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:46px;position:relative;z-index:2}
.services-hero-copy{position:relative;z-index:3}
.services-hero-copy h1{font-size:clamp(48px,5.4vw,74px);max-width:760px}
.services-hero-copy .lead{max-width:610px}
.services-hero-note{display:flex;align-items:center;gap:12px;margin-top:34px;color:var(--green);font-size:9px;font-weight:700;letter-spacing:.2em}
.note-line{width:42px;height:1px;background:var(--gold)}
.services-visual{height:440px;position:relative;isolation:isolate;max-width:570px;width:100%;margin-left:auto;animation:serviceVisualIn 1s cubic-bezier(.2,.75,.25,1) both}
.visual-orbit{position:absolute;width:390px;height:390px;border:1px solid #dfcba9;border-radius:50%;right:14px;top:15px;box-shadow:0 0 0 24px rgba(231,216,191,.42),0 0 0 25px rgba(189,149,96,.18);animation:orbitBreathe 8s ease-in-out infinite}
.visual-main{position:absolute;top:28px;right:55px;width:76%;height:325px;overflow:hidden;border:8px solid rgba(255,253,248,.9);box-shadow:0 22px 55px rgba(56,35,17,.16);transform:rotate(2deg);animation:mainCardFloat 7s ease-in-out infinite}
.visual-main img,.visual-small img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.visual-main:hover img,.visual-small:hover img{transform:scale(1.07)}
.visual-small{position:absolute;overflow:hidden;border:6px solid var(--paper);box-shadow:0 15px 35px rgba(56,35,17,.2)}
.visual-photo{width:165px;height:135px;left:2px;top:70px;transform:rotate(-7deg);animation:smallCardLeft 1s .25s both,smallCardFloat 6s 1.3s ease-in-out infinite}
.visual-hotel{width:180px;height:132px;right:0;bottom:22px;transform:rotate(6deg);animation:smallCardRight 1s .4s both,smallCardFloat 7s 1.5s ease-in-out infinite reverse}
.visual-sticker{position:absolute;left:34px;bottom:38px;width:105px;height:105px;border-radius:50%;background:var(--green);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;border:5px solid var(--paper);box-shadow:0 10px 24px rgba(18,59,43,.2);transform:rotate(-9deg);animation:stickerPop .8s .8s cubic-bezier(.18,.85,.25,1) both,stickerBob 5s 1.6s ease-in-out infinite}
.visual-sticker strong{font:700 27px 'Playfair Display';line-height:1}.visual-sticker span{font-size:7px;line-height:1.35;letter-spacing:.16em;text-align:center;margin-top:5px}
.visual-caption{position:absolute;right:34px;top:365px;display:flex;align-items:center;gap:14px;color:var(--green);font-size:9px;letter-spacing:.12em}
.visual-caption span{color:var(--gold);font-weight:700}.visual-caption b{font:600 15px/1.25 'Playfair Display';letter-spacing:0;color:var(--brown)}
@keyframes serviceVisualIn{from{opacity:0;transform:translateX(35px) scale(.96)}to{opacity:1;transform:none}}
@keyframes orbitBreathe{0%,100%{transform:scale(1) rotate(0);opacity:.75}50%{transform:scale(1.04) rotate(8deg);opacity:1}}
@keyframes mainCardFloat{0%,100%{transform:translateY(0) rotate(2deg)}50%{transform:translateY(-8px) rotate(1deg)}}
@keyframes smallCardLeft{from{opacity:0;transform:translate(-24px,14px) rotate(-14deg)}to{opacity:1;transform:rotate(-7deg)}}
@keyframes smallCardRight{from{opacity:0;transform:translate(24px,14px) rotate(14deg)}to{opacity:1;transform:rotate(6deg)}}
@keyframes smallCardFloat{0%,100%{margin-top:0}50%{margin-top:-9px}}
@keyframes stickerPop{from{opacity:0;scale:.5}to{opacity:1;scale:1}}
@keyframes stickerBob{0%,100%{translate:0 0}50%{translate:0 -8px}}
@media(max-width:900px){.services-hero-grid{grid-template-columns:1fr  .85fr;gap:20px}.services-visual{height:370px}.visual-main{height:275px}.visual-orbit{width:310px;height:310px}.visual-photo{width:125px;height:110px}.visual-hotel{width:140px;height:105px}.visual-sticker{width:85px;height:85px;left:12px}.visual-caption{top:315px;right:8px}}
@media(max-width:650px){.services-pagehero{padding:65px 0 55px}.services-hero-grid{grid-template-columns:1fr;gap:25px}.services-hero-copy h1{font-size:48px}.services-visual{height:340px;max-width:440px;margin:0 auto}.visual-main{right:32px;top:20px;width:78%;height:255px}.visual-orbit{width:285px;height:285px;right:5px;top:12px}.visual-photo{top:65px;left:0;width:118px;height:98px}.visual-hotel{right:0;bottom:28px;width:135px;height:100px}.visual-sticker{left:18px;bottom:25px;width:78px;height:78px}.visual-caption{top:286px;right:8px}.visual-caption b{font-size:13px}}
@media(prefers-reduced-motion:reduce){.services-visual,.visual-orbit,.visual-main,.visual-photo,.visual-hotel,.visual-sticker{animation:none!important;transition:none!important}}

/* Studio-wide motion system: restrained, polished and consistent across pages */
body{animation:siteFadeIn .65s ease both}
@keyframes siteFadeIn{from{opacity:0}to{opacity:1}}
.header{transition:box-shadow .3s ease,background .3s ease}
.nav a:not(.navbtn){position:relative}
.nav a:not(.navbtn)::after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:var(--gold);transition:right .28s ease}
.nav a:not(.navbtn):hover::after,.nav a:not(.navbtn).active::after{right:0}
.nav .navbtn{transition:transform .25s ease,background .25s ease,box-shadow .25s ease}
.nav .navbtn:hover{background:var(--green2);transform:translateY(-2px);box-shadow:0 8px 20px #123b2b22}
.eyebrow{animation:eyebrowIn .7s .08s both}
@keyframes eyebrowIn{from{opacity:0;letter-spacing:.38em;transform:translateY(8px)}to{opacity:1;letter-spacing:.22em;transform:none}}
.hero h1,.pagehero h1{animation:headingIn .85s .12s both}
@keyframes headingIn{from{opacity:0;transform:translateY(22px);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}
.lead{animation:copyIn .8s .28s both}
@keyframes copyIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#ffffff35 48%,transparent 72%);transform:translateX(-130%);transition:transform .65s ease}
.btn:hover::after{transform:translateX(130%)}
.service-card,.portfolio-card,.work-card,.step,.method,.formbox,.detail-image{transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.service-card:hover,.portfolio-card:hover{transform:translateY(-6px);box-shadow:0 20px 48px rgba(48,32,15,.1);border-color:#d8c6a8}
.portfolio-card{overflow:hidden}
.portfolio-card img,.detail-image img{transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s ease}
.portfolio-card:hover img,.detail-image:hover img{transform:scale(1.045);filter:saturate(1.08)}
.work-card{isolation:isolate}
.work-card::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;border:1px solid rgba(255,255,255,.0);transition:inset .35s ease,border-color .35s ease}
.work-card:hover::after{inset:12px;border-color:rgba(255,255,255,.55)}
.work-overlay{z-index:1;transition:inset .45s ease}
.work-card:hover .work-overlay{inset:30% 0 0}
.step:hover{transform:translateY(-5px);box-shadow:0 12px 28px rgba(48,32,15,.06)}
.method{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.method:hover{transform:translateX(5px);border-color:#c9ad83;box-shadow:0 10px 25px rgba(48,32,15,.06)}
.method-icon{transition:transform .3s ease,background .3s ease}
.method:hover .method-icon{transform:rotate(-7deg) scale(1.07);background:var(--green2)}
.cta{position:relative;overflow:hidden}
.cta::after{content:"";position:absolute;width:360px;height:360px;border:1px solid rgba(255,255,255,.13);border-radius:50%;right:-90px;top:-180px;box-shadow:0 0 0 35px rgba(255,255,255,.035),0 0 0 70px rgba(255,255,255,.025);animation:ctaOrbit 14s linear infinite}
@keyframes ctaOrbit{to{transform:rotate(360deg)}}
.footer a{transition:color .25s ease,transform .25s ease}
.footer a:hover{color:#e5c38e!important;transform:translateX(3px)}
.reveal{will-change:opacity,transform}
.reveal.visible{will-change:auto}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1!important;transform:none!important;filter:none!important}}


/* Branded opening sequence — homepage only */
.rcs-intro{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:radial-gradient(circle at 50% 44%,#fffdf7 0%,#f4ead8 58%,#e9dcc5 100%);color:#123c2d;overflow:hidden;opacity:1;visibility:visible}
.rcs-intro::before,.rcs-intro::after{content:"";position:absolute;width:min(78vw,720px);aspect-ratio:1;border:1px solid rgba(18,60,45,.16);border-radius:50%;animation:introOrbit 8s linear infinite}
.rcs-intro::after{width:min(58vw,520px);border-color:rgba(177,137,77,.22);animation-direction:reverse;animation-duration:16s}
.intro-glow{position:absolute;width:260px;height:260px;border-radius:50%;background:#d6b77b55;filter:blur(90px);animation:introGlow 2.4s ease-in-out infinite alternate}
.intro-content{position:relative;z-index:1;display:flex;align-items:center;flex-direction:column;animation:introBrandIn 1.15s cubic-bezier(.2,.75,.25,1) both}
.intro-logo{width:min(78vw,520px);max-height:300px;object-fit:contain;filter:drop-shadow(0 12px 30px #0003);animation:introLogoSettle 1.35s cubic-bezier(.16,1,.3,1) both}
.intro-rule{width:0;height:1px;background:#b58a4d;margin:24px 0 14px;animation:introRuleIn .65s .7s ease forwards}
.intro-content p{font-size:10px;letter-spacing:.34em;color:#315b49;margin:0;opacity:0;animation:introTextIn .7s .95s ease forwards}

.rcs-intro.intro-leave{animation:introCurtainOut 1s cubic-bezier(.7,0,.2,1) forwards;pointer-events:none}
@keyframes introOrbit{to{transform:rotate(360deg)}}
@keyframes introGlow{from{transform:scale(.82);opacity:.55}to{transform:scale(1.2);opacity:1}}
@keyframes introBrandIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes introLogoSettle{0%{opacity:0;transform:scale(.78) rotate(-5deg);filter:blur(8px)}70%{opacity:1;transform:scale(1.04) rotate(1deg);filter:blur(0)}100%{transform:scale(1) rotate(0)}}
@keyframes introRuleIn{to{width:150px}}
@keyframes introTextIn{from{opacity:0;letter-spacing:.55em;transform:translateY(8px)}to{opacity:1;letter-spacing:.34em;transform:none}}
@keyframes introCurtainOut{to{opacity:0;visibility:hidden;transform:scale(1.035)}}

/* Deeper page choreography for About, Portfolio and Contact */
.pagehero .wrap.reveal{transition-duration:.9s}
.pagehero .wrap.reveal.visible .eyebrow{animation:eyebrowIn .7s both}
.pagehero .wrap.reveal.visible h1{animation:headingIn .85s .12s both}
.pagehero .wrap.reveal.visible .lead{animation:copyIn .8s .28s both}
.about-story .reveal,.portfolio-grid .reveal,.contact-layout .reveal{transition-duration:.85s}
.about-story .reveal:nth-child(2),.contact-methods .reveal:nth-child(2){transition-delay:100ms}
.contact-methods .reveal:nth-child(3){transition-delay:180ms}
.contact-methods .reveal:nth-child(4){transition-delay:260ms}
.contact-methods .reveal:nth-child(5){transition-delay:340ms}
.contact-layout .formbox{transform-origin:top right}
.contact-layout .formbox.visible{animation:formPanelArrive .9s cubic-bezier(.2,.75,.25,1) both}
.contact-layout .field.reveal{transition-duration:.55s}
.contact-layout .field.reveal:nth-child(2n){transition-delay:65ms}
.contact-layout .field.reveal:nth-child(3n){transition-delay:110ms}
.portfolio-card{transform-style:preserve-3d}
.portfolio-card .pbody{transition:background .35s ease}
.portfolio-card:hover .pbody{background:#fffdf8}
.portfolio-card .pstatus{transition:letter-spacing .3s ease,color .3s ease}
.portfolio-card:hover .pstatus{letter-spacing:.18em;color:#a77a3e}
.about-story .service-card img{transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s}
.about-story .service-card:hover img{transform:scale(1.06);filter:saturate(1.12)}
@keyframes formPanelArrive{from{opacity:.5;transform:translateY(24px) scale(.985)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
 .rcs-intro,.rcs-intro::before,.rcs-intro::after,.intro-glow,.intro-content,.intro-logo,.intro-rule,.intro-content p{animation:none!important}
 .rcs-intro{display:none!important}
}


/* Image-led motion for About, Portfolio and Contact */
.reveal-image{position:relative;overflow:hidden;isolation:isolate;transform:translateY(26px);opacity:0;transition:opacity .9s ease,transform .9s cubic-bezier(.2,.75,.25,1),clip-path 1s cubic-bezier(.2,.75,.25,1)}
.reveal-image.visible{opacity:1;transform:none}
.reveal-image img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.09);transition:transform 1.4s cubic-bezier(.2,.7,.2,1),filter .8s ease}
.reveal-image.visible img{transform:scale(1)}
.reveal-image:hover img{transform:scale(1.045);filter:saturate(1.08)}
.about-visual{height:clamp(260px,38vw,470px);margin-top:52px;border:1px solid #e4d7c2;box-shadow:0 24px 60px #3a251512}
.about-visual::after,.contact-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(12,39,29,.7));pointer-events:none}
.visual-caption{position:absolute;z-index:2;left:34px;bottom:30px;color:#fff;display:grid;gap:8px}
.visual-caption span{font-size:10px;letter-spacing:.2em;color:#e6d3ae}
.visual-caption strong{font:clamp(24px,4vw,42px) 'Playfair Display',serif}
.visual-mark{position:absolute!important;z-index:3;right:26px;top:24px;width:74px!important;height:74px!important;object-fit:contain!important;padding:12px;background:#fffdf0e8;border-radius:50%;box-shadow:0 8px 24px #0002}
.contact-visual{height:220px;margin:26px 0 28px;border:1px solid #e4d7c2}
.contact-visual-badge{position:absolute;z-index:3;right:20px;bottom:18px;display:flex;align-items:center;gap:10px;background:#fffdf0;padding:10px 14px;color:#123c2d;font-size:9px;letter-spacing:.16em;font-weight:700}
.contact-visual-badge img{width:34px;height:34px;object-fit:contain}
.portfolio-image{height:270px;background:#eee4d4}
.portfolio-image img{height:100%;width:100%;object-fit:cover}
.portfolio-card:hover .portfolio-image img{transform:scale(1.055)}
@media(max-width:760px){.intro-logo{width:min(82vw,390px)}.about-visual{height:280px;margin-top:32px}.contact-visual{height:190px}.portfolio-image{height:220px}.visual-caption{left:20px;bottom:20px}.visual-mark{width:58px!important;height:58px!important}}
@media(prefers-reduced-motion:reduce){.reveal-image,.reveal-image img{transition:none!important;transform:none!important;opacity:1!important}}



/* Image-led sections: About, Portfolio and Contact */
.about-pagehero{padding:72px 0 82px;background:var(--cream);overflow:hidden}
.about-hero-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:58px;align-items:center}
.about-hero-copy{position:relative;z-index:2}
.about-hero-copy h1{font-size:clamp(46px,5.5vw,72px)}
.about-visual{height:clamp(300px,35vw,440px);margin:0;border:1px solid #e4d7c2;border-radius:4px 90px 4px 4px;box-shadow:22px 22px 0 #e7d8bf;overflow:hidden}
.about-visual img{width:100%;height:100%;object-fit:cover}
.about-visual::before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(145deg,rgba(18,59,43,.05),rgba(18,59,43,.18));pointer-events:none}
.visual-caption{position:absolute;z-index:2;left:28px;bottom:25px;color:#fff;display:grid;gap:6px;text-shadow:0 2px 12px #0008}
.visual-caption span{font-size:10px;letter-spacing:.2em;color:#f2dfbd;font-weight:700}
.visual-caption strong{font:600 clamp(22px,3vw,36px)/1.1 'Playfair Display',serif}
.contact-visual{height:190px;margin:26px 0 0;border:1px solid var(--line);border-radius:3px 42px 3px 3px;overflow:hidden;box-shadow:0 16px 36px #3a251510}
.contact-visual img{width:100%;height:100%;object-fit:cover}
.reveal-image{position:relative;overflow:hidden;isolation:isolate;transform:translateY(28px) scale(.985);opacity:0;clip-path:inset(7% 3% 7% 3% round 4px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.75,.25,1),clip-path 1s cubic-bezier(.2,.75,.25,1)}
.reveal-image.visible{opacity:1;transform:none;clip-path:inset(0 0 0 0 round 4px)}
.reveal-image img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 1.4s cubic-bezier(.2,.7,.2,1),filter .8s ease}
.reveal-image.visible img{transform:scale(1)}
.reveal-image:hover img{transform:scale(1.045);filter:saturate(1.08)}
.portfolio-image{height:270px;background:#eee4d4}
.portfolio-image img{height:100%;width:100%;object-fit:cover}
@media(max-width:900px){
 .about-hero-grid{grid-template-columns:1fr;gap:34px}
 .about-visual{height:clamp(260px,55vw,390px);box-shadow:12px 12px 0 #e7d8bf}
}
@media(max-width:760px){
 .about-pagehero{padding:54px 0 62px}
 .about-visual{height:270px;margin:0}
 .contact-visual{height:180px}
 .portfolio-image{height:220px}
 .visual-caption{left:20px;bottom:18px}
}
@media(prefers-reduced-motion:reduce){
 .reveal-image,.reveal-image img{transition:none!important;transform:none!important;opacity:1!important;clip-path:none!important}
}
