:root { --ink:#191a17; --cream:#eeeae0; --paper:#f6f3ec; --line:rgba(25,26,23,.18); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; }
.site-header { position:absolute; z-index:10; top:0; left:0; width:100%; padding:26px 4vw; color:white; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid rgba(255,255,255,.25); }
.brand { font-size:18px; letter-spacing:.29em; font-weight:700; }
nav { display:flex; align-items:center; gap:30px; font-size:12px; letter-spacing:.06em; }
.nav-cta { border:1px solid rgba(255,255,255,.5); padding:12px 18px; }
.hero { min-height:100svh; position:relative; display:flex; align-items:flex-end; color:white; overflow:hidden; }
.hero-media { position:absolute; inset:0; background-image:url('/images/hero.png'); background-size:cover; background-position:center; }
.hero-media:after { content:""; position:absolute; inset:0; background:linear-gradient(125deg,#5c5d54,#b4ac9d 60%,#77756c); z-index:-1; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,12,9,.68),rgba(10,12,9,.08) 70%),linear-gradient(0deg,rgba(10,10,8,.35),transparent 55%); }
.hero-content { position:relative; z-index:2; padding:0 7vw 9vh; width:min(850px,88vw); }
.eyebrow { text-transform:uppercase; font-size:10px; font-weight:700; letter-spacing:.24em; margin:0 0 34px; }
.eyebrow.light { color:rgba(255,255,255,.72); }
h1,h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; margin:0; letter-spacing:-.035em; }
h1 { font-size:clamp(52px,7vw,104px); line-height:.94; }
em { font-weight:400; color:#c9c3b5; }
.hero-copy { width:min(500px,100%); margin:30px 0 28px; line-height:1.7; color:rgba(255,255,255,.8); font-size:14px; }
.text-link { display:inline-flex; gap:40px; padding-bottom:9px; border-bottom:1px solid currentColor; font-size:11px; text-transform:uppercase; letter-spacing:.14em; }
.hero-index { position:absolute; right:4vw; bottom:9vh; z-index:2; display:flex; align-items:center; gap:10px; font-size:9px; letter-spacing:.15em; }
.hero-index i { display:block; width:80px; height:1px; background:rgba(255,255,255,.5); }
.section-pad { padding:120px 7vw; }
.intro { display:grid; grid-template-columns:1fr 2.2fr 1fr; gap:7vw; align-items:start; }
.intro h2,.section-head h2,.process h2 { font-size:clamp(40px,5.2vw,74px); line-height:1.03; }
.micro-copy,.intro-copy { font-size:12px; line-height:1.7; color:#6d6d65; }
.intro-copy { margin-top:70px; }
.portfolio { background:var(--cream); }
.section-head { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:65px; }
.section-head .eyebrow { margin-bottom:22px; }
.section-head>p { font-size:11px; line-height:1.9; color:#77766e; }
.section-head sup { color:#a3a096; margin-left:7px; }
.comparison-project { margin-bottom:80px; }
.comparison { --position:50%; position:relative; overflow:hidden; aspect-ratio:16/9; background:#20221e; touch-action:pan-y; }
.comparison>img,.comparison-day,.comparison-day img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.comparison-day { clip-path:inset(0 calc(100% - var(--position)) 0 0); }
.comparison input { position:absolute; inset:0; z-index:6; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; }
.comparison-line { position:absolute; z-index:5; top:0; bottom:0; left:var(--position); width:1px; background:rgba(255,255,255,.9); transform:translateX(-.5px); pointer-events:none; }
.comparison-line span { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:48px; height:48px; border-radius:50%; background:#f6f3ec; color:#262922; display:grid; place-items:center; font-size:18px; box-shadow:0 7px 30px rgba(0,0,0,.25); }
.comparison-label { position:absolute; z-index:4; top:22px; padding:8px 11px; background:rgba(20,21,18,.72); color:white; font-size:9px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; backdrop-filter:blur(8px); pointer-events:none; }
.label-day { left:22px; }
.label-night { right:22px; }
.project-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:70px 28px; }
.project-card:last-child { grid-column:1 / -1; }
.project-card:last-child .project-image { aspect-ratio:16/8; }
.project-image { aspect-ratio:4/3; background-size:cover; background-position:center; background-color:#a7a397; transition:filter .45s ease; }
.project-card:hover .project-image { filter:saturate(.78); }
.project-meta { display:flex; justify-content:space-between; align-items:flex-end; padding-top:18px; }
.project-meta>div { display:flex; align-items:baseline; gap:16px; }
.project-meta span,.project-meta p { font-size:9px; text-transform:uppercase; letter-spacing:.17em; color:#77766e; }
.project-meta h3 { font-family:Georgia,serif; font-weight:400; font-size:23px; margin:0; }
.services { background:#262922; color:white; display:grid; grid-template-columns:1fr 1.1fr; gap:10vw; }
.services-title h2 { font-size:clamp(44px,5.5vw,78px); line-height:1.02; }
.services-list article { display:grid; grid-template-columns:50px 1fr; border-top:1px solid rgba(255,255,255,.18); padding:30px 0 36px; }
.services-list span { font-size:9px; color:#aeb1a6; }
.services-list h3 { font-family:Georgia,serif; font-size:26px; font-weight:400; margin:0 0 15px; }
.services-list p { color:#aeb1a6; font-size:12px; line-height:1.75; max-width:460px; margin:0; }
.process-head>p { max-width:360px; line-height:1.7; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.steps article { padding:32px 42px 20px 0; border-right:1px solid var(--line); min-height:235px; }
.steps article+article { padding-left:42px; }
.steps article:last-child { border-right:0; }
.steps span { font-size:9px; color:#8b8a81; }
.steps h3 { font-family:Georgia,serif; font-weight:400; font-size:25px; margin:50px 0 14px; }
.steps p { color:#727168; font-size:12px; line-height:1.7; max-width:270px; }
.inquiry { background:#e5e0d4; display:grid; grid-template-columns:.8fr 1.7fr; gap:8vw; align-items:start; }
.inquiry-intro { position:sticky; top:60px; }
.inquiry-intro h2 { font-size:clamp(42px,5vw,72px); line-height:1.02; }
.inquiry-intro>p:last-child { color:#6d6d65; font-size:12px; line-height:1.8; max-width:390px; margin-top:34px; }
.upload-step { display:grid; grid-template-columns:62px 1fr auto; gap:22px; align-items:center; padding:30px 0; border-top:1px solid var(--line); }
.step-number { align-self:stretch; display:flex; flex-direction:column; justify-content:space-between; font-size:9px; color:#7a796f; }
.step-number i { display:grid; place-items:center; width:24px; height:24px; border:1px solid #98968b; border-radius:50%; color:white; font-style:normal; }
.upload-step.complete .step-number i { background:#5e6455; border-color:#5e6455; }
.upload-step h3 { margin:0 0 10px; font-family:Georgia,serif; font-size:24px; font-weight:400; }
.upload-step p { margin:0; max-width:470px; color:#6d6d65; font-size:11px; line-height:1.7; }
.upload-step label { min-width:175px; text-align:center; border:1px solid #77786f; padding:13px 16px; cursor:pointer; font-size:9px; text-transform:uppercase; letter-spacing:.12em; transition:.2s ease; }
.upload-step label:hover,.upload-step.complete label { background:#5e6455; border-color:#5e6455; color:white; }
.upload-step input[type=file] { position:absolute; width:1px; height:1px; opacity:0; overflow:hidden; }
.client-details { display:grid; grid-template-columns:1fr 1fr; gap:28px 22px; border-top:1px solid var(--line); padding-top:34px; margin-top:10px; }
.client-details label { display:flex; flex-direction:column; gap:10px; }
.client-details label>span { font-size:9px; text-transform:uppercase; letter-spacing:.14em; color:#68685f; }
.client-details input,.client-details textarea { width:100%; border:0; border-bottom:1px solid #99978d; background:transparent; padding:10px 2px; color:var(--ink); border-radius:0; font:13px Arial,sans-serif; outline:none; }
.client-details textarea { border:1px solid #99978d; padding:12px; resize:vertical; }
.client-details input:focus,.client-details textarea:focus { border-color:#262922; }
.details-wide { grid-column:1 / -1; }
.submit-row { margin-top:30px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.submit-row p { font-size:10px; color:#6d6d65; }
.submit-row button { border:0; background:#262922; color:white; padding:17px 22px; min-width:205px; display:flex; justify-content:space-between; cursor:pointer; text-transform:uppercase; letter-spacing:.13em; font-size:10px; }
.submit-row button:disabled { background:#aaa89f; cursor:not-allowed; }
.form-message { margin:22px 0 0; padding:14px 16px; font-size:11px; line-height:1.6; }
.form-message.success { background:#d5ddcd; color:#394033; }
.form-message.error { background:#ead3cc; color:#683b31; }
.hp-field { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.contact { background:#5e6455; color:white; text-align:center; padding:130px 7vw; }
.contact h2 { font-size:clamp(48px,6.7vw,94px); line-height:1; }
.contact a { display:inline-flex; gap:60px; margin-top:55px; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.7); font-size:12px; text-transform:uppercase; letter-spacing:.16em; }
footer { background:#1a1c18; color:#a8aa9f; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; padding:45px 4vw; align-items:center; font-size:9px; text-transform:uppercase; letter-spacing:.15em; }
footer .brand { color:white; font-size:15px; }

@media (max-width:800px) {
  .site-header { padding:22px 20px; }
  nav a:not(.nav-cta) { display:none; }
  .hero-content { padding:0 24px 90px; width:100%; }
  .hero-index { display:none; }
  .section-pad { padding:85px 24px; }
  .intro { grid-template-columns:1fr; gap:35px; }
  .intro-copy { margin-top:0; }
  .section-head { align-items:flex-start; gap:30px; }
  .project-grid { grid-template-columns:1fr; gap:50px; }
  .project-card:last-child { grid-column:auto; }
  .project-card:last-child .project-image { aspect-ratio:4/3; }
  .comparison-project { margin-bottom:55px; }
  .comparison { aspect-ratio:4/3; }
  .comparison-line span { width:42px; height:42px; }
  .project-meta h3 { font-size:19px; }
  .project-meta>div { gap:10px; }
  .services { grid-template-columns:1fr; gap:70px; }
  .steps { grid-template-columns:1fr; }
  .steps article,.steps article+article { border-right:0; border-bottom:1px solid var(--line); padding:28px 0; min-height:0; }
  .steps h3 { margin:30px 0 10px; }
  .inquiry { grid-template-columns:1fr; gap:55px; }
  .inquiry-intro { position:static; }
  .upload-step { grid-template-columns:42px 1fr; }
  .upload-step label { grid-column:2; min-width:0; }
  .client-details { grid-template-columns:1fr; }
  .details-wide { grid-column:auto; }
  .submit-row { align-items:stretch; flex-direction:column; }
  .submit-row button { width:100%; }
  footer { grid-template-columns:1fr 1fr; gap:30px; }
}
