
:root{
  --ink:#0a0a0a;
  --paper:#f3efe8;
  --paper2:#e9e2d7;
  --gold:#c9a66b;
  --white:#f8f5ef;
  --muted:#8d877e;
}
*{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.6}
body.menu-open{overflow:hidden}
h1,h2,h3{font-family:"Playfair Display",serif;line-height:.98;font-weight:600;margin:0}
h1{font-size:clamp(4rem,8vw,8.5rem);max-width:1000px}
h2{font-size:clamp(3rem,6vw,6.2rem);max-width:1050px}
h3{font-size:clamp(1.7rem,2.6vw,3rem)}
a{color:inherit}
img{display:block;max-width:100%}
.section{padding:130px 5vw}
.kicker{font-size:.78rem;text-transform:uppercase;letter-spacing:.22em;font-weight:600;color:var(--gold);margin:0 0 24px}
.nav{position:fixed;inset:0 0 auto 0;height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;z-index:50;background:linear-gradient(to bottom,rgba(0,0,0,.72),transparent);transition:.3s}
.nav.scrolled{background:rgba(7,7,7,.94);backdrop-filter:blur(12px)}
.brand img{width:320px}
.nav nav{display:flex;align-items:center;gap:26px}
.nav nav a{color:#eee;text-decoration:none;font-size:.84rem}
.estimate-link{border-bottom:1px solid var(--gold);padding-bottom:6px}
.menu{display:none;color:#fff;background:none;border:0;font:inherit}
.hero{min-height:100vh;position:relative;color:#fff;display:flex;align-items:flex-end;padding:0 5vw 9vh;overflow:hidden}
.hero-media{position:absolute;inset:0;background:url("assets/project-1.png") center/cover;transform:scale(1.03)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.35) 55%,rgba(0,0,0,.55) 100%),linear-gradient(to top,rgba(0,0,0,.65),transparent 50%)}
.hero-copy{position:relative;z-index:2}
.hero-text{font-size:clamp(1.15rem,2vw,1.45rem);max-width:640px;color:#ddd;margin:28px 0 34px}
.hero-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.primary{display:inline-block;background:var(--gold);color:#0b0b0b;text-decoration:none;border:0;padding:17px 24px;font-weight:600;letter-spacing:.02em;cursor:pointer}
.text-link{text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:6px}
.text-link span{margin-left:10px}
.scroll-note{position:absolute;right:4vw;bottom:5vh;writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:.2em;font-size:.68rem;color:#ccc}
.intro{display:grid;grid-template-columns:1.1fr .9fr;gap:9vw;align-items:start}
.intro-copy .lead{font-size:1.4rem;color:#2c2a27}
.intro-copy p{max-width:620px}
.signature-line{display:flex;align-items:center;gap:18px;margin-top:40px}
.signature-line span{width:80px;height:1px;background:var(--gold)}
.services{background:var(--ink);color:var(--white)}
.section-head{margin-bottom:70px}
.service-list{border-top:1px solid #2d2d2d}
.service-row{display:grid;grid-template-columns:70px 1.1fr 1fr;gap:30px;align-items:center;padding:34px 0;border-bottom:1px solid #2d2d2d}
.service-row span{color:var(--gold)}
.service-row p{color:#aaa}
.portfolio{background:var(--paper)}
.project{position:relative;overflow:hidden;background:#111}
.project img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.project:hover img{transform:scale(1.025)}
.project-large{height:72vh;min-height:560px}
.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:22px 0}
.project-grid .project{height:560px}
.project-wide{height:58vh;min-height:480px}
.project-meta{position:absolute;left:0;right:0;bottom:0;padding:80px 34px 30px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.86))}
.project-meta span{color:var(--gold);text-transform:uppercase;letter-spacing:.18em;font-size:.7rem}
.project-meta p{max-width:540px;color:#ddd}
.process{background:var(--paper2)}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.process-grid article{border-top:1px solid #aaa;padding-top:24px}
.process-grid span{color:var(--gold)}
.statement{min-height:82vh;position:relative;color:#fff;display:flex;align-items:center;padding:8vw 5vw}
.statement-bg{position:absolute;inset:0;background:url("assets/project-4.png") center/cover}
.statement:after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.68)}
.statement-copy{position:relative;z-index:2;max-width:860px}
.statement-copy p:not(.kicker){max-width:650px;font-size:1.15rem;color:#ddd}
.light{color:#fff}
.reviews{background:#111;color:#fff}
.review-wrap{max-width:960px}
.stars{color:var(--gold);letter-spacing:.25em}
blockquote{font-family:"Playfair Display",serif;font-size:clamp(2rem,4vw,4.4rem);line-height:1.15;margin:28px 0}
.review-wrap p{color:#888}
.estimate{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;background:var(--paper)}
.estimate-intro>p{max-width:540px}
.direct-contact{display:flex;flex-direction:column;gap:8px;margin-top:30px}
.lux-form{background:#141414;color:#fff;padding:40px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;color:#bbb;margin-bottom:20px}
input,select,textarea{width:100%;margin-top:9px;background:transparent;border:0;border-bottom:1px solid #555;color:#fff;padding:12px 2px;font:inherit;outline:none}
select option{color:#111}
textarea{border:1px solid #555;padding:12px}
#status{color:var(--gold)}
.contact{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;background:#0a0a0a;color:#ddd;padding-top:80px;padding-bottom:80px}
.contact img{width:360px}
.contact a{display:block;text-decoration:none;margin-bottom:8px}
footer{display:flex;justify-content:space-between;gap:20px;padding:24px 5vw;background:#050505;color:#777;font-size:.8rem}
.reveal{opacity:0;transform:translateY(32px);transition:opacity .9s ease,transform .9s ease}
.reveal.visible{opacity:1;transform:none}
@media(max-width:980px){
  .nav nav{display:none;position:fixed;inset:0;background:#090909;flex-direction:column;justify-content:center;font-size:1.5rem}
  .nav nav.open{display:flex}
  .menu{display:block;z-index:2}
  .brand img{width:245px}
  .intro,.estimate{grid-template-columns:1fr}
  .service-row{grid-template-columns:50px 1fr}
  .service-row p{grid-column:2}
  .process-grid{grid-template-columns:1fr 1fr}
  .contact{grid-template-columns:1fr 1fr}
  .contact>div:first-child{grid-column:1/-1}
}
@media(max-width:680px){
  .section{padding:90px 6vw}
  h1{font-size:3.8rem}
  .hero{padding-bottom:10vh}
  .scroll-note{display:none}
  .project-grid{grid-template-columns:1fr}
  .project-grid .project{height:420px}
  .project-large{min-height:500px}
  .project-wide{min-height:420px}
  .process-grid{grid-template-columns:1fr}
  .field-row{grid-template-columns:1fr}
  .lux-form{padding:26px}
  .contact{grid-template-columns:1fr}
  footer{flex-direction:column}
}


/* Thumbtack reviews */
.review-summary{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding:0 0 46px;border-bottom:1px solid #2c2c2c;margin-bottom:34px}
.review-score{display:block;font-family:"Playfair Display",serif;font-size:5.5rem;line-height:.9}
.review-stars{color:#c9a66b;letter-spacing:.18em}
.review-summary p{color:#8f8f8f;margin:8px 0 0}
.thumbtack-link{color:#fff;text-decoration:none;border-bottom:1px solid #c9a66b;padding-bottom:7px}
.review-grid-luxury{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#2c2c2c;border:1px solid #2c2c2c}
.review-card{background:#111;padding:38px}
.review-card-top{display:flex;justify-content:space-between;gap:20px;color:#888;font-size:.8rem;margin-bottom:28px}
.review-card blockquote{font-family:"Playfair Display",serif;font-size:clamp(1.5rem,2.2vw,2.35rem);line-height:1.25;margin:0 0 30px}
.review-author{color:#f2eee7!important;font-weight:600;margin-bottom:4px}
.review-card .verified{color:#8f8f8f;font-size:.82rem;margin:0}
.review-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:34px}
.review-cta p{color:#777;font-size:.82rem;max-width:520px}
@media(max-width:800px){.review-summary,.review-cta{align-items:flex-start;flex-direction:column}.review-grid-luxury{grid-template-columns:1fr}.review-card{padding:28px}}


/* Polished final refresh */
body{background:#f5f0e8;color:#171411;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.brand img{width:auto;max-height:74px;filter:drop-shadow(0 10px 24px rgba(0,0,0,.22))}
.nav{height:98px;padding:0 4.5vw}
.nav nav a{position:relative}
.nav nav a:hover{color:#fff}
.estimate-link{padding:11px 16px;border:1px solid rgba(201,166,107,.45);border-radius:999px;border-bottom-color:rgba(201,166,107,.45);backdrop-filter:blur(4px)}
.hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.42) 52%,rgba(0,0,0,.62) 100%),linear-gradient(to top,rgba(0,0,0,.72),transparent 52%)}
.hero-copy{max-width:920px}
.hero-text{max-width:720px}
.primary{border-radius:999px;box-shadow:0 14px 34px rgba(0,0,0,.16);transition:transform .25s ease, box-shadow .25s ease}
.primary:hover{transform:translateY(-1px);box-shadow:0 18px 36px rgba(0,0,0,.2)}
.text-link{transition:opacity .2s ease}
.text-link:hover{opacity:.78}
.project,.lux-form,.review-card{border-radius:24px}
.project img{filter:saturate(.97)}
.project-grid{gap:26px}
.project-large,.project-wide,.project-grid .project{border-radius:28px}
.project-meta{padding:88px 36px 32px}
.project-meta h3{max-width:760px}
.process-grid article{background:rgba(255,255,255,.28);padding:26px 22px 0;border-radius:18px;border-top:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.07)}
.statement{min-height:72vh}
.statement:after{background:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.52))}
.review-summary{align-items:center}
.review-grid-luxury,.review-card,.lux-form{box-shadow:0 18px 38px rgba(0,0,0,.08)}
.direct-contact a,.contact a{color:inherit;text-decoration:none}
.direct-contact a:hover,.contact a:hover{color:var(--gold)}
input,select,textarea{transition:border-color .2s ease,background .2s ease}
input:focus,select:focus,textarea:focus{border-color:var(--gold);background:rgba(255,255,255,.02)}
textarea{border-radius:14px}
.contact{align-items:start}
.contact img{width:min(320px,100%);filter:drop-shadow(0 8px 20px rgba(0,0,0,.2))}
footer{border-top:1px solid rgba(255,255,255,.08)}
::selection{background:rgba(201,166,107,.28)}
@media(max-width:980px){
  .brand img{max-height:58px}
  .nav{height:90px}
}
@media(max-width:680px){
  .brand img{max-height:52px}
  .project-meta{padding:70px 24px 24px}
}
