@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Libre+Franklin:wght@400;500;600;700&family=Special+Elite&display=swap');
:root{--navy:#0b1d29;--navy2:#15303b;--ink:#292720;--cream:#eee2cb;--paper:#f5eedf;--paper2:#e4d3b5;--gold:#a47f45;--rust:#79543d;--line:#bda982;--muted:#6e675b;--white:#fffaf0}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:'Libre Franklin',Arial,sans-serif;background-image:radial-gradient(rgba(55,40,20,.055) .7px,transparent .7px),linear-gradient(rgba(110,80,35,.025) 1px,transparent 1px);background-size:7px 7px,100% 8px}img,video{width:100%;display:block;object-fit:cover}a{text-decoration:none;color:inherit}.container{width:min(1180px,91vw);margin:auto}
.top{height:30px;background:var(--navy);color:#dfd2b7;display:flex;align-items:center;font-size:9px;letter-spacing:.22em;text-transform:uppercase;border-bottom:1px solid #39505a}.top .container{display:flex;justify-content:center}
.header{position:absolute;z-index:10;left:0;right:0;top:30px;color:var(--white)}.header .inner{height:96px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(238,226,203,.55)}.logo{display:flex;align-items:center;gap:13px}.logo img{width:62px;height:62px;object-fit:cover;border:1px solid rgba(238,226,203,.8);box-shadow:3px 3px 0 rgba(0,0,0,.18)}.logo strong{font-family:'Cormorant Garamond',Georgia,serif;letter-spacing:.15em;font-size:18px;display:block;font-weight:600}.logo small{font-family:'Special Elite',monospace;font-size:9px;letter-spacing:.16em;color:#d9c39a}.nav{display:flex;gap:25px;font-size:9px;letter-spacing:.18em;text-transform:uppercase}.nav a{padding:40px 0;position:relative}.nav a:after{content:'';position:absolute;left:0;right:100%;bottom:31px;height:1px;background:#d9bc83;transition:.3s}.nav a:hover:after{right:0}
.hero{min-height:94vh;position:relative;color:var(--white);background:#07151e;overflow:hidden}.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,16,24,.82),rgba(5,16,24,.16) 75%),linear-gradient(0deg,rgba(5,16,24,.62),transparent 52%)}.hero .container{position:relative;z-index:3;padding-top:265px;padding-bottom:105px}.kicker,.eyebrow{font-size:9px;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;line-height:.98}h1{font-size:clamp(58px,8vw,105px);max-width:850px;margin:19px 0 23px;letter-spacing:-.035em}.hero p{max-width:620px;font-size:15px;line-height:1.8;color:#eee7d9}.btn{display:inline-block;background:var(--gold);color:#17212a;padding:14px 20px;margin-top:20px;font-size:9px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;border:1px solid #c09d64;box-shadow:3px 3px 0 rgba(20,28,31,.25);transition:transform .25s ease,box-shadow .25s ease}.btn.alt{background:transparent;color:var(--white);border-color:rgba(238,226,203,.65);margin-left:8px;box-shadow:none}.btn:hover{transform:translate(-2px,-2px);box-shadow:5px 6px 0 rgba(20,28,31,.22)}
.section{padding:105px 0;position:relative}.cream{background:var(--cream)}.paper2{background:var(--paper2)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}h2{font-size:clamp(45px,5.5vw,72px);margin:14px 0 22px}.lead{font-size:16px;line-height:1.9;color:#4f4a40}.rule{width:90px;height:1px;background:var(--gold);margin:28px 0;position:relative}.rule:after{content:'◆';position:absolute;right:-5px;top:-7px;color:var(--gold);font-size:9px}.photo{height:560px;border:7px solid var(--paper);box-shadow:0 0 0 1px var(--line),8px 9px 0 rgba(64,48,28,.12);transform:rotate(.25deg)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid var(--line);padding-top:24px;margin-top:45px}.stats div{padding-right:20px;border-right:1px solid var(--line)}.stats div:last-child{border:0}.stats b{display:block;font-family:'Cormorant Garamond',serif;font-size:28px}.stats span{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:48px}.card{background:rgba(245,238,223,.7);min-height:340px;padding:34px;border:1px solid var(--line);position:relative;box-shadow:5px 6px 0 rgba(68,50,25,.07);transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease,border-color .45s ease}.card:nth-child(2){transform:translateY(12px) rotate(.4deg)}.card:nth-child(3){transform:rotate(-.35deg)}.card:hover{transform:translateY(-8px) rotate(0deg);box-shadow:9px 11px 0 rgba(68,50,25,.09),0 16px 30px rgba(45,35,20,.08);border-color:#a88c59}.card .num{font-family:'Special Elite',monospace;font-size:9px;color:var(--rust);letter-spacing:.13em}.card h3{font-size:35px;margin:30px 0 10px}.card p{color:var(--muted);font-size:13px;line-height:1.8}.card a{font-size:9px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;margin-top:12px;color:var(--rust)}
.dark{background:var(--navy);color:var(--white);background-image:radial-gradient(rgba(255,255,255,.035) .7px,transparent .7px);background-size:7px 7px}.dark .lead{color:#c9c3b5}.dark .eyebrow{color:#d1b67c}.gallery{display:grid;grid-template-columns:1.35fr .65fr;gap:18px;margin-top:35px}.gallery img,.gallery4 img{border:6px solid var(--paper);box-shadow:5px 6px 0 rgba(0,0,0,.2);transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .55s ease}.gallery img:hover,.gallery4 img:hover,.photo:hover,.feature img:hover{transform:translateY(-5px) scale(1.018) rotate(0deg);box-shadow:9px 12px 0 rgba(64,48,28,.14),0 12px 30px rgba(20,30,35,.08)}.gallery img{height:630px}.gallery .stack{display:grid;gap:18px}.gallery .stack img{height:306px}.gallery4{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px}.gallery4 img{height:350px}.gallery4 img:nth-child(2),.gallery4 img:nth-child(5){transform:rotate(1deg)}.gallery4 img:nth-child(3),.gallery4 img:nth-child(6){transform:rotate(-.7deg)}
.serviceHero{padding:215px 0 90px;background:var(--navy);color:var(--white);position:relative;overflow:hidden}.serviceHero h1{font-size:clamp(58px,8vw,100px);max-width:900px}.serviceHero p{max-width:700px;color:#d2cabc;font-size:16px;line-height:1.8}.feature{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.feature img{height:560px;border:7px solid var(--paper);box-shadow:7px 8px 0 rgba(70,52,28,.13);transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .55s ease}.list{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;margin-top:28px}.list div{border-top:1px solid var(--line);padding:16px 0;font-family:'Cormorant Garamond',serif;font-size:20px}.list div:before{content:'— ';color:var(--gold)}
.quote{padding:100px 0;background:var(--paper2);text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.quote h2{max-width:820px;margin:12px auto}.footer{background:#081822;color:var(--white);padding:70px 0 25px}.footgrid{display:grid;grid-template-columns:1.3fr .7fr .7fr;gap:45px}.footer h3{font-size:28px}.footer p,.footer a{font-size:12px;color:#bdb6a9;line-height:1.9}.footer a{display:block}.copy{border-top:1px solid #31424a;margin-top:45px;padding-top:20px;color:#7f8a8e;font-size:9px;letter-spacing:.16em;text-transform:uppercase;display:flex;justify-content:space-between}
/* gentle vintage motion */
.page-ready .reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--delay,0ms)}.page-ready .reveal.is-visible{opacity:1;transform:none}.hero-media{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
@media(max-width:800px){.top{display:none}.header{top:0}.header .inner{height:80px}.nav{display:none}.logo img{width:50px;height:50px}.hero .container{padding-top:190px}.hero{min-height:82vh}.btn.alt{margin-left:0}.grid2,.feature,.footgrid{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.card:nth-child(2),.card:nth-child(3){transform:none}.gallery,.gallery4{grid-template-columns:1fr}.gallery img,.gallery .stack img{height:62vw;min-height:250px}.gallery4 img{height:68vw;min-height:250px}.photo,.feature img{height:72vw;min-height:320px}.list{grid-template-columns:1fr}.section{padding:78px 0}.stats{gap:10px}.stats div{border-right:0;border-bottom:1px solid var(--line);padding-bottom:14px}.stats span{font-size:8px}.copy{display:block}.copy span{display:block;margin-top:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.page-ready .reveal{opacity:1;transform:none;transition:none}.hero-media{transform:none!important;transition:none}}

/* Homepage project slideshow */
.hero-stage{position:absolute;inset:0;overflow:hidden;will-change:transform;transition:transform .2s ease-out}
.hero-slideshow{position:absolute;inset:0;z-index:1;background:#07151e}
.hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.025);transition:opacity 1.25s ease,transform 7s cubic-bezier(.2,.7,.2,1)}
.hero-slide.is-active{opacity:1;transform:scale(1)}
.hero-progress{position:absolute;z-index:5;left:0;right:0;bottom:0;height:3px;background:rgba(238,226,203,.18);overflow:hidden}
.hero-progress-bar{display:block;width:0;height:100%;background:var(--gold)}
@keyframes heroProgress{from{width:0}to{width:100%}}
.hero.slideshow-started .hero-progress{opacity:1}
.hero-copy{position:relative;z-index:3}
.hero.slideshow-started .hero-copy{animation:copySettle .9s ease both}
@keyframes copySettle{from{opacity:.86;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Client-friendly mobile navigation */
.menu-toggle,.mobile-menu{display:none}
@media(max-width:800px){
  .header .inner{position:relative}
  .menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;background:transparent;border:0;padding:12px;margin-right:-8px;cursor:pointer;z-index:22}
  .menu-toggle span{display:block;width:24px;height:1px;background:var(--white);transition:transform .25s ease,opacity .25s ease}
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .mobile-menu{display:flex;position:absolute;top:80px;left:0;right:0;background:rgba(8,24,34,.98);border-top:1px solid rgba(238,226,203,.25);padding:12px 5vw 20px;flex-direction:column;gap:0;opacity:0;transform:translateY(-10px);pointer-events:none;transition:opacity .25s ease,transform .25s ease;box-shadow:0 15px 30px rgba(0,0,0,.2)}
  .mobile-menu.open{opacity:1;transform:none;pointer-events:auto}
  .mobile-menu a{padding:14px 0;border-bottom:1px solid rgba(238,226,203,.12);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--white)}
  .mobile-menu .mobile-quote{border:1px solid var(--gold);padding:13px 15px;margin-top:12px;text-align:center;background:var(--gold);color:#17212a}
  .hero .container{padding-top:170px}
  .hero-actions{display:flex;flex-direction:column;align-items:flex-start}
  .hero-actions .btn.alt{margin-left:0}
}

/* Contact forms */
.contact-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:start;text-align:left}.contact-wrap.compact{align-items:center}.contact-intro h2{max-width:720px}.contact-links{display:flex;flex-wrap:wrap;gap:10px}.contact-links .btn{margin-top:10px}.btn.alt-dark{background:transparent;color:var(--ink);border-color:var(--ink);box-shadow:none}.contact-form{background:rgba(245,238,223,.72);border:1px solid var(--line);padding:28px;box-shadow:6px 7px 0 rgba(68,50,25,.07)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form label{display:block;font-size:9px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--rust);margin-bottom:18px}.contact-form input,.contact-form select,.contact-form textarea{display:block;width:100%;margin-top:8px;border:1px solid #bca987;background:#fffaf0;color:var(--ink);font:inherit;font-size:14px;padding:12px 13px;outline:none}.contact-form textarea{resize:vertical;min-height:120px;line-height:1.6}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--gold);box-shadow:0 0 0 2px rgba(164,127,69,.12)}.form-submit{border:1px solid #c09d64;cursor:pointer;margin-top:0}.form-note{font-size:10px;color:var(--muted);margin:12px 0 0;line-height:1.6}.contact-wrap.compact .contact-form{margin-top:0}
@media(max-width:800px){.contact-wrap{grid-template-columns:1fr;gap:30px}.form-grid{grid-template-columns:1fr}.contact-form{padding:22px}}

.form-success{display:none;margin-top:14px;padding:12px 14px;border:1px solid var(--gold);background:rgba(164,127,69,.10);font-size:11px;line-height:1.6;color:var(--ink)}.form-success.show{display:block}

.bot-field{position:absolute!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;height:1px!important;width:1px!important;margin:-1px!important;padding:0!important;border:0!important;}
