:root{
  --ink:#1f1f1f;
  --black:#111111;
  --warm:#f7f4ef;
  --paper:#ffffff;
  --soft:#f0ece6;
  --taupe:#94836a;
  --taupe-dark:#75664f;
  --line:#d9d2c9;
  --muted:#6f6a64;
  --form-line:#d8d0c5;
  --max:1440px;
  --header:92px;
  --gutter:clamp(24px,5vw,76px);
  --radius-lg:18px;
  --radius-md:12px;
  --shadow:0 24px 80px rgba(18,16,13,.14);
  --sans:"Segoe UI Variable","Segoe UI","Helvetica Neue",Arial,sans-serif;
  --serif:Georgia,"Times New Roman",serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header)}
body{margin:0;background:var(--warm);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.58;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.menu-open{overflow:hidden}
main section[id]{scroll-margin-top:calc(var(--header) + 18px)}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}

.skip-link{position:fixed;left:14px;top:10px;z-index:200;transform:translateY(-150%);background:#111;color:#fff;padding:10px 14px;border-radius:8px;font-size:12px;letter-spacing:.08em;transition:transform .18s ease}
.skip-link:focus{transform:none}

.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:100;background:transparent;pointer-events:none}
.scroll-progress span{display:block;width:0;height:100%;background:var(--taupe);transition:width .06s linear}

/* Header */
.site-header{height:var(--header);display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);background:rgba(247,244,239,.93);position:sticky;top:0;z-index:30;border-bottom:1px solid rgba(31,31,31,.07);backdrop-filter:blur(16px);transition:box-shadow .25s ease,background .25s ease}
.site-header.scrolled{box-shadow:0 12px 36px rgba(20,18,16,.07);background:rgba(247,244,239,.98)}
.brand img{width:245px;height:auto}
.brand-mobile{display:none}
.nav{display:flex;align-items:center;gap:31px;font-size:11.5px;text-transform:uppercase;letter-spacing:.18em;position:relative}
.nav a{position:relative;white-space:nowrap}
.nav>a:not(.nav-cta):after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:1px;background:var(--taupe);opacity:0;transform:scaleX(.35);transform-origin:center;transition:opacity .22s ease,transform .28s cubic-bezier(.22,.61,.36,1)}
.nav>a:not(.nav-cta):hover:after{opacity:.32;transform:scaleX(1)}
.nav-indicator{position:absolute;left:0;bottom:-7px;height:1px;width:0;background:var(--taupe);opacity:0;pointer-events:none;transform:translateX(0);transform-origin:left center;transition:transform .46s cubic-bezier(.22,.61,.36,1),width .34s cubic-bezier(.22,.61,.36,1),opacity .2s ease;will-change:transform,width}
.nav.has-active .nav-indicator{opacity:1}
.nav-indicator.no-transition{transition:none!important}
.nav-cta{display:inline-flex;align-items:center;justify-content:center;min-width:210px;padding:15px 24px;border-radius:999px;background:var(--taupe);color:#fff;border:1px solid rgba(255,255,255,.18);letter-spacing:.15em;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);transition:background .24s ease,transform .24s ease,box-shadow .24s ease}
.nav-cta:hover{background:var(--taupe-dark);transform:translateY(-1px);box-shadow:0 10px 28px rgba(117,102,79,.18),inset 0 0 0 1px rgba(255,255,255,.14)}
.nav-cta span,.button span,.text-link span,.card-link b{margin-left:11px}
.menu-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer}
.menu-toggle span{display:block;width:28px;height:2px;background:#111;margin:5px 0;transition:.25s}

/* Shared type + actions */
.eyebrow{text-transform:uppercase;letter-spacing:.25em;font-size:11px;font-weight:650;margin:0 0 18px}
.eyebrow.light{color:#fff}
.eyebrow:after{content:"";display:block;width:44px;height:2px;background:var(--taupe);margin-top:18px}
.button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;min-width:205px;padding:18px 25px;border:1px solid transparent;text-transform:uppercase;letter-spacing:.16em;font-size:11px;cursor:pointer;transition:background .24s ease,color .24s ease,border-color .24s ease,transform .24s ease,box-shadow .24s ease}
.button{background:var(--taupe);color:#fff;border-color:rgba(255,255,255,.12)}
.button:hover{background:var(--taupe-dark);transform:translateY(-2px)}
.ghost-button{border-color:rgba(255,255,255,.55);color:#fff;background:rgba(0,0,0,.08)}
.ghost-button:hover{background:#fff;color:var(--ink);transform:translateY(-2px)}
.button.start-project,.ghost-button.start-project{border-radius:999px}
.dark-button{background:var(--ink)}
.dark-button:hover{background:#000}
.text-link{display:inline-block;font-size:11px;text-transform:uppercase;letter-spacing:.17em;font-weight:600;border-bottom:1px solid var(--taupe);padding-bottom:7px}
.text-link.light{color:#fff}

/* Hero */
.hero{height:min(780px,calc(100svh - var(--header)));min-height:660px;position:relative;overflow:hidden;background:#111}
.hero-image{width:100%;height:100%;object-fit:cover;object-position:center 52%;transform:scale(1.035);transition:transform 1.7s cubic-bezier(.2,.8,.2,1);will-change:transform}
.hero.loaded .hero-image{transform:scale(1)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,7,7,.86) 0%,rgba(7,7,7,.68) 38%,rgba(7,7,7,.23) 67%,rgba(7,7,7,.06) 100%)}
.hero-copy{position:absolute;left:clamp(28px,6vw,90px);top:52%;transform:translateY(-50%);max-width:820px;color:#fff;z-index:2}
.hero h1{font-size:clamp(46px,4.55vw,68px);line-height:1.01;font-weight:300;text-transform:uppercase;letter-spacing:.02em;margin:0 0 26px;max-width:850px}
.hero h1 span{color:#c7ad8c}
.hero-lead{font-size:17px;line-height:1.62;max-width:635px;color:rgba(255,255,255,.9);margin:0 0 32px}
.hero-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.hero-side{position:absolute;right:clamp(32px,5vw,78px);top:clamp(54px,7vh,90px);width:min(31vw,410px);color:#fff;text-transform:uppercase;text-align:left;letter-spacing:.18em;z-index:3;text-shadow:0 2px 22px rgba(0,0,0,.26)}
.hero-side span,.hero-side strong{display:block}
.hero-side span{font-size:clamp(14px,1.2vw,19px);line-height:1.5;font-weight:300;color:rgba(255,255,255,.92)}
.hero-side strong{font-size:clamp(17px,1.42vw,23px);line-height:1.48;font-weight:650;margin-top:8px;color:#fff}
.hero-side i{display:block;width:58px;height:2px;background:#d1b883;margin-top:18px}
.scroll-cue{position:absolute;left:clamp(28px,5vw,76px);bottom:30px;display:flex;align-items:center;gap:10px;color:#fff;text-transform:uppercase;letter-spacing:.18em;font-size:10.5px;opacity:.9;z-index:3}
.scroll-cue svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;animation:scrollNudge 1.8s ease-in-out infinite}
@keyframes scrollNudge{0%,100%{transform:translateY(0);opacity:.72}50%{transform:translateY(5px);opacity:1}}
.hero-copy.reveal{transform:translateY(calc(-50% + 18px))}
.hero-copy.reveal.in{transform:translateY(-50%)}

/* Credibility */
.credibility-strip{background:#fff;border-bottom:1px solid var(--line)}
.credibility-inner{max-width:var(--max);margin:auto;padding:27px var(--gutter);display:flex;align-items:center;justify-content:center;gap:34px;text-transform:uppercase;letter-spacing:.13em;font-size:11.5px;color:#5e5a55}
.separator{height:1px;width:60px;background:var(--taupe)}

/* Projects */
.projects{padding:clamp(74px,7.5vw,108px) var(--gutter);max-width:var(--max);margin:0 auto;background:var(--warm)}
.section-heading{max-width:820px;margin-bottom:34px}
.section-heading h2,.process-intro h2,.project-start h2{font-size:clamp(40px,4vw,58px);font-weight:300;line-height:1.06;letter-spacing:-.02em;margin:0 0 16px}
.muted{color:var(--muted);max-width:690px}
.project-filter{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 28px}
.project-filter button{background:transparent;border:1px solid #cec6bc;padding:10px 15px;text-transform:uppercase;font-size:11px;letter-spacing:.13em;cursor:pointer;transition:.2s}
.project-filter button:hover,.project-filter button.active{background:var(--ink);border-color:var(--ink);color:#fff}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.project-card{background:#fff;overflow:hidden;transition:opacity .3s ease,transform .3s ease;box-shadow:0 1px 0 rgba(0,0,0,.03)}
.project-card.filtered-out{display:none}
.project-card figure{height:345px;margin:0;overflow:hidden;background:#ddd}
.project-card img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease}
.project-card:hover img{transform:scale(1.035)}
.project-meta{padding:24px 25px 28px}
.project-meta>span{color:var(--taupe-dark);font-size:11px;text-transform:uppercase;letter-spacing:.17em}
.project-meta h3{font-size:22px;margin:8px 0 3px;font-weight:500}
.project-meta p{margin:0 0 18px;color:var(--muted)}
.project-meta button{border:0;background:transparent;padding:0 0 5px;border-bottom:1px solid var(--taupe);font-size:11px;text-transform:uppercase;letter-spacing:.15em;cursor:pointer}
.project-meta b{margin-left:8px}
.experience-list{margin-top:56px;border-top:1px solid var(--line);padding-top:40px;scroll-margin-top:calc(var(--header) + 18px)}
.experience-title{max-width:740px;margin-bottom:24px}
.experience-title h3{font-size:clamp(30px,3vw,42px);line-height:1.08;font-weight:300;margin:0 0 10px}
.experience-title>p:last-child{margin:0;color:var(--muted);max-width:610px}
.experience-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.experience-items button{min-height:160px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr;gap:14px 18px;align-items:start;text-align:left;padding:25px 24px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease,background .24s ease}
.experience-items small{grid-column:1/-1;color:var(--taupe-dark);font-size:10.5px;text-transform:uppercase;letter-spacing:.13em;line-height:1.5}
.experience-items span{font-size:18px;line-height:1.25;font-weight:550;align-self:end}
.experience-items b{font-size:20px;color:var(--taupe);font-weight:400;align-self:end;transition:transform .22s ease}
.experience-items button:hover,.experience-items button:focus-visible{transform:translateY(-3px);border-color:#c6b9a8;box-shadow:0 16px 38px rgba(28,23,17,.08);background:#fdfbf8}
.experience-items button:hover b,.experience-items button:focus-visible b{transform:translateX(4px)}
.experience-items button:focus-visible{outline:2px solid var(--taupe);outline-offset:3px}

/* Development */
.development{background:#fff;display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(54px,6vw,88px);padding:clamp(76px,7vw,104px) var(--gutter);max-width:var(--max);margin:0 auto}
.development-copy{max-width:690px}
.development-copy h2{font-size:clamp(40px,4vw,58px);line-height:1.06;font-weight:300;letter-spacing:-.02em;margin:0 0 22px}
.development-copy>p:not(.eyebrow){color:var(--muted);max-width:640px;font-size:16.5px}
.capability-list{display:flex;flex-wrap:wrap;gap:9px;margin:28px 0 32px}
.capability-list span{border:1px solid #d4ccc1;padding:10px 13px;text-transform:uppercase;letter-spacing:.12em;font-size:10.5px;background:var(--warm)}
.development-stack{display:flex;flex-direction:column;border-top:1px solid var(--line);align-self:center}
.development-stack article{display:grid;grid-template-columns:64px 140px 1fr;gap:18px;align-items:center;padding:27px 0;border-bottom:1px solid var(--line)}
.development-stack b{color:var(--taupe);font-size:27px;font-weight:300}
.development-stack h3{margin:0;text-transform:uppercase;letter-spacing:.13em;font-size:14px}
.development-stack p{margin:0;color:var(--muted);font-size:14px}

/* Services */
.services{display:grid;grid-template-columns:repeat(3,1fr);max-width:var(--max);margin:0 auto;background:#fff;border-top:1px solid var(--line)}
.service-card{padding:56px 56px 52px;text-align:left;border-right:1px solid var(--line);cursor:pointer;position:relative;transition:background .3s ease;outline:none}
.service-card:last-child{border-right:0}
.service-card:hover,.service-card:focus-visible{background:#f6f2ed}
.service-card:focus-visible{box-shadow:inset 0 0 0 2px var(--taupe)}
.service-icon{height:52px;width:56px;margin:0 0 25px;position:relative;color:#111}
.house-icon:before{content:"";position:absolute;left:8px;right:8px;top:14px;height:28px;border:2px solid #111;border-top:0}
.house-icon:after{content:"";position:absolute;width:32px;height:32px;border-left:2px solid #111;border-top:2px solid #111;transform:rotate(45deg);left:12px;top:2px}
.building-icon{display:flex;align-items:flex-end;gap:4px}
.building-icon i{display:block;width:11px;border:2px solid #111;height:30px}
.building-icon i:nth-child(2){height:44px}.building-icon i:nth-child(3){height:36px}
.compass-icon:before{content:"";position:absolute;width:44px;height:44px;border:2px solid #111;border-radius:50%;left:3px;top:2px}
.compass-icon:after{content:"";position:absolute;width:15px;height:15px;border-top:2px solid #111;border-right:2px solid #111;transform:rotate(-45deg);left:20px;top:15px}
.card-kicker{position:absolute;right:30px;top:22px;color:#aaa299;font-size:10.5px;letter-spacing:.17em}
.service-card h2{font-size:18px;text-transform:uppercase;letter-spacing:.14em;margin:0 0 12px}
.service-card p:not(.card-kicker){color:#62605c;max-width:360px;margin:0 0 24px}
.card-link{font-size:11px;text-transform:uppercase;letter-spacing:.16em;font-weight:650;border-bottom:1px solid var(--taupe);padding-bottom:7px;display:inline-block}
.service-rail{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);background:var(--soft)}
.service-rail a{padding:27px 36px;display:flex;justify-content:space-between;align-items:center;text-transform:uppercase;letter-spacing:.12em;font-size:14px;font-weight:550;border-right:1px solid var(--line);transition:background .25s ease,color .25s ease}
.service-rail a:last-child{border-right:0}
.service-rail a span{font-size:17px;transition:transform .22s ease}
.service-rail a:hover{background:var(--taupe);color:#fff}
.service-rail a:hover span{transform:translateX(4px)}

/* About / developer mindset */
.purpose{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.16fr) minmax(230px,.48fr);min-height:560px;max-width:var(--max);margin:0 auto;background:#fff;overflow:hidden}
.purpose>*{min-width:0}
.purpose-copy{background:#151515;color:#fff;padding:clamp(58px,5vw,76px);display:flex;flex-direction:column;justify-content:center}
.purpose-copy h2{font-family:var(--serif);font-weight:400;font-size:clamp(40px,3.2vw,54px);line-height:1.05;margin:0 0 22px;max-width:560px}
.purpose-copy h2 span{color:#b9a17f;font-style:italic}
.purpose-copy p:not(.eyebrow){max-width:540px;color:#d5d2ce;margin:0 0 24px;font-size:15.5px;line-height:1.66}
.purpose-media{margin:0;min-height:100%;overflow:hidden}
.purpose-media img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .8s ease}
.purpose-media:hover img{transform:scale(1.025)}
.purpose-note{padding:58px 34px;background:var(--soft)}
.purpose-note strong{display:block;text-transform:uppercase;letter-spacing:.13em;font-size:18px;margin-top:25px}
.purpose-note span{display:block;color:#66615b;text-transform:uppercase;font-size:10.5px;letter-spacing:.14em;margin-top:5px;line-height:1.45}

/* Process */
.process{background:#fff;padding:clamp(70px,7vw,102px) var(--gutter);display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(54px,6vw,88px);max-width:var(--max);margin:0 auto}
.process-intro{max-width:520px}
.process-intro>p:last-child{color:var(--muted)}
.process-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.process-list li{display:grid;grid-template-columns:84px 1fr;gap:18px;padding:26px 0;border-bottom:1px solid var(--line)}
.process-list b{font-size:32px;font-weight:300;color:var(--taupe)}
.process-list h3{margin:0 0 3px;text-transform:uppercase;letter-spacing:.12em;font-size:15px}
.process-list p{margin:0;color:var(--muted)}

/* Contact / lead form */
.project-start{background:#151515;color:#fff;display:grid;grid-template-columns:minmax(0,500px) minmax(0,820px);justify-content:center;gap:clamp(48px,6vw,92px);padding:clamp(76px,7vw,108px) var(--gutter);align-items:start}
.project-start-intro{position:sticky;top:calc(var(--header) + 38px);max-width:500px}
.project-start-intro>p:not(.eyebrow){color:#c8c8c8;font-size:16.5px;max-width:500px}
.contact-direct{margin-top:36px;display:flex;flex-direction:column;gap:5px}
.contact-direct span{text-transform:uppercase;letter-spacing:.14em;font-size:10.5px;color:#aaa39b}
.contact-direct a{font-size:18px}
.lead-form{background:linear-gradient(180deg,#fbfaf7 0%,#f7f2eb 100%);color:var(--ink);padding:clamp(34px,4vw,56px);min-height:590px;border-radius:var(--radius-lg);box-shadow:0 30px 90px rgba(0,0,0,.22),inset 0 0 0 1px rgba(255,255,255,.6);overflow:hidden}
.form-progress-wrap{display:flex;align-items:center;gap:18px;margin-bottom:40px}
.form-progress{display:flex;gap:14px;margin:0;flex:1}
.form-progress span{height:2px;flex:1;background:#d8d2c9;border-radius:999px}
.form-progress span.active{background:var(--taupe)}
.form-step-count{font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;color:#81796f;white-space:nowrap}
.form-honeypot{position:absolute!important;left:-9999px!important;opacity:0!important;width:1px!important;height:1px!important}
.form-step{display:none;border:0;padding:0;margin:0;min-width:0}
.form-step.active{display:block;animation:stepIn .35s ease}
@keyframes stepIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.form-step legend{font-size:clamp(30px,3.15vw,43px);font-weight:300;line-height:1.12;margin-bottom:32px;letter-spacing:-.025em;width:100%}
.form-step legend span{display:inline-block;color:var(--taupe);font-size:12px;letter-spacing:.08em;margin-right:15px;vertical-align:.34em}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.choice-grid label{display:block;cursor:pointer}
.choice-grid input{position:absolute;opacity:0;pointer-events:none}
.choice-grid .choice-card{display:grid;grid-template-columns:64px 1fr 22px;align-items:center;min-height:108px;padding:21px 23px;border:1px solid var(--form-line);border-radius:var(--radius-md);background:rgba(255,255,255,.7);font-size:16px;color:var(--ink);transition:border-color .22s ease,background .22s ease,transform .22s ease,box-shadow .22s ease;position:relative}
.choice-grid .choice-card b{font-weight:450;letter-spacing:-.01em}
.choice-grid .choice-card i{font-style:normal;font-size:31px;line-height:1;color:#77716a;font-weight:200;transition:transform .22s ease,color .22s ease}
.choice-icon{width:42px;height:42px;fill:none;stroke:#715f47;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.choice-icon-dots{fill:#715f47;stroke:none}
.choice-grid label:hover .choice-card{transform:translateY(-2px);border-color:#b5a58d;background:#fff;box-shadow:0 12px 30px rgba(72,58,43,.07)}
.choice-grid label:hover .choice-card i{transform:translateX(3px)}
.choice-grid input:checked+.choice-card,.choice-grid input:focus-visible+.choice-card{border-color:var(--taupe);background:#f2ebe1;box-shadow:inset 0 0 0 1px var(--taupe),0 10px 28px rgba(100,77,48,.07)}
.choice-grid input:checked+.choice-card i{color:var(--taupe);transform:translateX(3px)}
.choice-grid input:focus-visible+.choice-card{outline:3px solid rgba(148,131,106,.16);outline-offset:2px}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{margin-top:18px}
.field span{font-size:10.5px;text-transform:uppercase;letter-spacing:.13em;color:#625d57}
.field input,.field select,.field textarea{width:100%;border:1px solid #d6cec3;border-radius:10px;background:rgba(255,255,255,.88);padding:15px 14px;min-height:52px;color:var(--ink);outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.field textarea{min-height:128px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--taupe);box-shadow:0 0 0 3px rgba(148,131,106,.12);background:#fff}
.consent{display:flex;gap:10px;align-items:flex-start;margin-top:26px;font-size:12.5px;line-height:1.5;color:#555}
.consent input{margin-top:3px;accent-color:var(--taupe)}
.form-note{font-size:11px;color:#746d64;margin-top:12px;line-height:1.5}
.form-note a{border-bottom:1px solid #9e8c72}
.form-actions{display:flex;justify-content:flex-end;margin-top:36px}
.form-actions.split{justify-content:space-between;align-items:center}
.form-actions button,.submit-button{min-height:56px;border:0;border-radius:999px;padding:15px 27px;min-width:188px;background:var(--taupe);color:#fff;text-transform:uppercase;letter-spacing:.14em;font-size:11px;box-shadow:0 10px 28px rgba(96,77,54,.13);cursor:pointer;transition:.2s}
.form-actions button:hover,.submit-button:hover{background:var(--taupe-dark);transform:translateY(-2px)}
.form-actions .back-step{min-width:auto;min-height:auto;border-radius:0;background:transparent;box-shadow:none;color:#6d675f;padding:12px 4px}
.form-actions .back-step:hover{background:transparent;color:#111;transform:none}
.form-error{padding:11px 13px;border-left:2px solid #9c3737;background:#fff2f0;border-radius:6px;color:#873331;font-size:12px;margin-top:14px}
.form-success{text-align:left;padding:50px 14px 34px;max-width:650px}
.form-success h3{font-size:clamp(34px,4vw,50px);font-weight:300;line-height:1.04;margin:0 0 12px}
.form-success p:not(.eyebrow){color:#666;max-width:550px}
.form-success .button{margin-top:10px;border-radius:999px}
.form-success button{display:block;margin-top:18px;border:0;background:transparent;padding:0;border-bottom:1px solid #999;text-transform:uppercase;font-size:11px;letter-spacing:.13em;cursor:pointer}
.form-email-fallback[hidden]{display:none}

/* Closing CTA */
.cta{position:relative;overflow:hidden;background:var(--soft);color:var(--ink);padding:clamp(64px,6.5vw,92px) var(--gutter);min-height:320px;display:flex;align-items:center}
.cta-content{position:relative;z-index:2;max-width:850px}
.cta h2{font-size:clamp(40px,4vw,58px);font-weight:300;line-height:1.05;letter-spacing:-.02em;margin:0 0 14px}
.cta-content>p:not(.eyebrow){font-size:16.5px;color:#625d57;margin:0 0 26px;max-width:720px}
.cta .button{border-radius:999px}
.cta-mark{position:absolute;right:4vw;top:50%;transform:translateY(-50%);opacity:.055;width:min(38vw,520px)}
.cta-mark img{width:100%}

/* Footer */
.site-footer{display:block;min-height:0;padding:0;background:#0d0d0d;color:#fff;border-top:1px solid rgba(148,131,106,.45);overflow:hidden}
.footer-main{position:relative;isolation:isolate;max-width:var(--max);margin:0 auto;padding:66px var(--gutter) 52px;display:grid;grid-template-columns:1.7fr .88fr .58fr .68fr;gap:clamp(34px,4.5vw,68px);align-items:start}
.footer-main>*:not(.footer-crown){position:relative;z-index:1}
.footer-crown{position:absolute;z-index:0;right:clamp(24px,5vw,78px);top:50%;width:min(31vw,430px);height:auto;transform:translateY(-50%);opacity:.045;pointer-events:none;user-select:none}
.footer-brand{min-width:0;padding-right:clamp(8px,2vw,28px)}
.footer-brand .footer-statement{display:flex;flex-direction:column;gap:0;margin:0;color:#fff;font-size:clamp(31px,3.1vw,48px);line-height:.96;text-transform:uppercase;letter-spacing:.005em}
.footer-statement strong{font-weight:680;color:#fff}
.footer-statement>span{font-weight:680;color:var(--taupe);margin:5px 0}
.footer-statement-meta{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:40px;color:#b8b2aa;font-size:9px;line-height:1.5;text-transform:uppercase;letter-spacing:.08em}
.footer-statement-meta span:last-child{color:#fff;white-space:nowrap}
.footer-column{display:flex;flex-direction:column;gap:8px;color:#bdb9b3;font-size:13px}
.footer-column a{color:#fff;transition:color .2s ease,transform .2s ease;width:max-content;max-width:100%}
.footer-column a:hover{color:#c2aa89;transform:translateX(2px)}
.footer-label{text-transform:uppercase;letter-spacing:.17em;font-size:11px;color:#9d958b;margin-bottom:12px}
.footer-nav a,.footer-social a{text-transform:uppercase;letter-spacing:.12em;font-size:11.5px}
.footer-bottom{border-top:1px solid #2b2a28;max-width:var(--max);margin:0 auto;padding:18px var(--gutter) 22px;display:flex;align-items:center;justify-content:space-between;gap:24px;color:#8e8983;font-size:10.5px;text-transform:uppercase;letter-spacing:.12em}
.footer-bottom a{color:#aaa49d;border-bottom:1px solid #4a4742;padding-bottom:2px}

/* Floating contact */
.floating-contact{position:fixed;right:28px;bottom:24px;z-index:27;display:flex;align-items:center;gap:8px;padding:7px;border-radius:999px;background:rgba(17,17,17,.84);border:1px solid rgba(255,255,255,.16);box-shadow:0 16px 44px rgba(0,0,0,.22);backdrop-filter:blur(14px);transition:opacity .25s ease,transform .25s ease,background .25s ease}
.floating-contact:hover{background:rgba(17,17,17,.94)}
.floating-contact a{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#f7f2ea;position:relative;transition:background .2s ease,transform .2s ease,color .2s ease}
.floating-contact a:hover{background:rgba(148,131,106,.28);transform:translateY(-2px);color:#fff}
.floating-contact svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.floating-contact .fill-dot{fill:currentColor;stroke:none}
.floating-contact a>span{position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%) translateX(5px);white-space:nowrap;background:#111;color:#fff;border-radius:6px;padding:6px 8px;font-size:10px;text-transform:uppercase;letter-spacing:.11em;opacity:0;pointer-events:none;transition:.18s ease}
.floating-contact a:hover>span{opacity:1;transform:translateY(-50%) translateX(0)}
body.form-near .floating-contact,body.footer-near .floating-contact{opacity:0;transform:translateY(18px);pointer-events:none}
.mobile-contact-dock{display:none}

/* Dialog */
.detail-dialog{width:min(720px,calc(100% - 36px));max-height:88vh;max-height:88dvh;border:0;padding:0;background:#f8f5ef;color:var(--ink);box-shadow:0 35px 120px rgba(0,0,0,.3);border-radius:16px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.detail-dialog::backdrop{background:rgba(8,8,8,.72);backdrop-filter:blur(5px)}
.dialog-inner{padding:clamp(34px,6vw,64px)}
.dialog-close{position:absolute;top:16px;right:20px;border:0;background:transparent;font-size:32px;font-weight:200;line-height:1;cursor:pointer}
.dialog-inner h2{font-size:clamp(35px,4.4vw,52px);font-weight:300;line-height:1.05;margin:0 0 17px}
.dialog-lead{font-size:17px;color:#625d57}
.dialog-body{margin:28px 0 32px;border-top:1px solid var(--line)}
.dialog-body div{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:13px 0;border-bottom:1px solid var(--line)}
.dialog-body strong{text-transform:uppercase;letter-spacing:.12em;font-size:10.5px}
.dialog-body span{color:#625d57;font-size:14px}
.dialog-scope{margin:-8px 0 30px;padding:25px 0 0;border-top:1px solid var(--line)}
.dialog-scope-label{text-transform:uppercase;letter-spacing:.13em;font-size:10.5px;font-weight:650;margin:0 0 12px}
.dialog-scope ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:9px 22px}
.dialog-scope li{position:relative;padding-left:16px;color:#625d57;font-size:13px}
.dialog-scope li:before{content:"";position:absolute;left:0;top:.7em;width:6px;height:1px;background:var(--taupe)}
.dialog-inner .button{border-radius:999px}

/* Reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}
.reveal.in{opacity:1;transform:none}

/* Privacy */
.privacy-page{background:var(--warm)}
.privacy-back{display:inline-flex;align-items:center;gap:12px;text-transform:uppercase;letter-spacing:.15em;font-size:11px;border:1px solid #cfc6ba;border-radius:999px;padding:12px 18px;transition:.2s}
.privacy-back:hover{background:#111;color:#fff;border-color:#111}
.privacy-main{max-width:1200px;margin:0 auto;padding:clamp(70px,8vw,112px) clamp(26px,7vw,90px)}
.privacy-hero{max-width:780px;margin-bottom:64px}
.privacy-hero h1{font-size:clamp(44px,5vw,68px);font-weight:300;line-height:1.03;letter-spacing:-.03em;margin:0 0 22px}
.privacy-hero>p:last-child{font-size:17px;color:#67615a;max-width:680px}
.privacy-updated{font-size:11px!important;text-transform:uppercase;letter-spacing:.12em;color:#8a8278!important;margin-top:18px}
.privacy-content{display:grid;grid-template-columns:1fr 1fr;gap:0 70px;border-top:1px solid var(--line)}
.privacy-content>div{padding:30px 0;border-bottom:1px solid var(--line)}
.privacy-content h2{font-size:13px;text-transform:uppercase;letter-spacing:.13em;margin:0 0 12px}
.privacy-content p{color:#67615a;margin:0;max-width:560px}
.privacy-content a{color:#111;border-bottom:1px solid var(--taupe)}
.privacy-footer .footer-bottom{border-top:0}

@media (max-width:1280px){
  .hero-side{width:300px;right:34px}
  .purpose{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr) minmax(220px,.48fr)}
}

@media (max-width:1120px){
  :root{--header:78px}
  .site-header{height:var(--header)}
  .brand img{width:210px}
  .menu-toggle{display:block}
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav{position:fixed;inset:var(--header) 0 auto 0;background:var(--warm);padding:28px 28px 35px;display:none;flex-direction:column;align-items:flex-start;gap:22px;border-top:1px solid var(--line);box-shadow:0 25px 60px rgba(0,0,0,.12)}
  .nav.open{display:flex}
  .nav-indicator{display:none}
  .nav-cta{min-width:0;width:100%;border-radius:999px}
  .hero{min-height:640px;height:calc(100svh - var(--header))}
  .hero-side{display:none}
  .project-grid{grid-template-columns:1fr 1fr}
  .project-card:last-child{grid-column:1/-1}
  .development{grid-template-columns:1fr;gap:48px}
  .services{grid-template-columns:1fr}
  .service-card{border-right:0;border-bottom:1px solid var(--line)}
  .service-card:last-child{border-bottom:0}
  .service-rail{grid-template-columns:1fr}
  .service-rail a{border-right:0;border-bottom:1px solid var(--line)}
  .service-rail a:last-child{border-bottom:0}
  .purpose{grid-template-columns:1fr 1fr}
  .purpose-note{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:40px}
  .purpose-note .eyebrow{grid-column:1/-1}
  .purpose-note strong{margin-top:0}
  .process{grid-template-columns:1fr;gap:44px}
  .project-start{grid-template-columns:1fr;gap:44px}
  .project-start-intro{position:static}
  .lead-form{max-width:820px;width:100%}
  .floating-contact{right:20px;bottom:20px}
  .footer-main{grid-template-columns:1.2fr 1fr 1fr}
  .footer-social{grid-column:2}
}

@media (max-width:740px){
  body{padding-bottom:82px}
  .brand>.brand-full{display:none}
  .brand-mobile{display:flex;align-items:center;gap:7px;height:58px}
  .brand-mobile .brand-crown{width:61px;height:50px;object-fit:contain}
  .brand-wordmark{display:block;width:146px;height:34px;background:url('assets/logo-white.svg') right center/225px auto no-repeat}
  .hero{min-height:650px;height:calc(100svh - var(--header))}
  .hero-image{object-position:center center}
  .hero-shade{background:linear-gradient(90deg,rgba(7,7,7,.91),rgba(7,7,7,.68) 72%,rgba(7,7,7,.3))}
  .hero-copy{top:47%;left:24px;right:24px;max-width:none}
  .hero h1{font-size:clamp(38px,10.5vw,42px);line-height:1.01;margin-bottom:20px;letter-spacing:.015em}
  .hero-lead{font-size:15.5px;line-height:1.55;margin-bottom:24px;max-width:520px}
  .hero-actions{align-items:stretch;flex-direction:column;width:min(100%,320px);gap:10px}
  .button,.ghost-button{min-width:0;min-height:52px;padding:15px 20px}
  .scroll-cue{display:none}
  .credibility-inner{flex-direction:column;text-align:center;gap:15px;padding:24px 24px;font-size:10.5px}
  .separator{width:1px;height:24px}
  .projects,.development,.process{padding-left:24px;padding-right:24px}
  .section-heading h2,.process-intro h2,.project-start h2,.development-copy h2,.cta h2{font-size:clamp(36px,9.4vw,46px)}
  .project-grid{grid-template-columns:1fr}
  .project-card:last-child{grid-column:auto}
  .project-card figure{height:285px}
  .experience-items{grid-template-columns:1fr}
  .experience-items button{min-height:138px}
  .development{gap:38px}
  .development-stack article{grid-template-columns:50px 1fr;gap:14px}
  .development-stack p{grid-column:2}
  .services{grid-template-columns:1fr}
  .service-card{padding:44px 26px 42px}
  .service-rail a{font-size:12.5px;padding:22px 26px}
  .purpose{grid-template-columns:1fr}
  .purpose-copy{padding:54px 26px}
  .purpose-copy h2{font-size:clamp(38px,10vw,48px)}
  .purpose-media{min-height:360px}
  .purpose-note{grid-column:auto;grid-template-columns:1fr;padding:38px 26px;gap:4px}
  .purpose-note .eyebrow{grid-column:auto}
  .purpose-note strong{margin-top:20px}
  .process-list li{grid-template-columns:58px 1fr}
  .project-start{padding:64px 20px 72px}
  .project-start-intro>p:not(.eyebrow){font-size:15.5px}
  .lead-form{border-radius:14px;padding:30px 20px;min-height:0}
  .form-progress-wrap{margin-bottom:32px;gap:12px}
  .form-step legend{font-size:29px;margin-bottom:28px}
  .choice-grid{grid-template-columns:1fr;gap:10px}
  .choice-grid .choice-card{grid-template-columns:50px 1fr 18px;min-height:86px;padding:18px 17px;font-size:15px}
  .choice-icon{width:34px;height:34px}
  .field-grid{grid-template-columns:1fr}
  .form-actions.split{gap:12px}
  .form-actions button,.submit-button{min-width:0;padding:15px 20px;min-height:54px}
  .cta{padding:58px 24px;min-height:300px}
  .cta-mark{opacity:.035;width:70vw;right:-14vw}
  .dialog-body div{grid-template-columns:1fr;gap:3px}
  .dialog-scope ul{grid-template-columns:1fr}
  .floating-contact{display:none}
  .mobile-contact-dock{position:fixed;left:12px;right:12px;bottom:12px;z-index:35;display:flex;align-items:center;gap:9px;padding:7px;border-radius:999px;background:rgba(17,17,17,.93);border:1px solid rgba(255,255,255,.13);box-shadow:0 16px 40px rgba(0,0,0,.28);backdrop-filter:blur(16px);transform:translateY(110px);transition:transform .3s ease}
  .mobile-contact-dock.visible{transform:none}
  body.form-near .mobile-contact-dock,body.footer-near .mobile-contact-dock{transform:translateY(110px);pointer-events:none}
  .mobile-social{width:50px;height:50px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;background:rgba(255,255,255,.07)}
  .mobile-social svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6}
  .mobile-social .fill-dot{fill:currentColor;stroke:none}
  .mobile-project-cta{position:static;display:flex;align-items:center;justify-content:center;gap:14px;flex:1;min-height:50px;border:0;border-radius:999px;padding:14px 18px;background:var(--taupe);color:#fff;text-transform:uppercase;letter-spacing:.14em;font-size:11px;box-shadow:none;cursor:pointer}
  .footer-main{grid-template-columns:1fr 1fr;padding:50px 26px 38px;gap:34px 24px}
  .footer-crown{right:-15vw;top:42%;width:min(82vw,430px);opacity:.035}
  .footer-brand{grid-column:1/-1}
  .footer-brand{padding-right:0}
  .footer-brand .footer-statement{font-size:clamp(34px,8vw,46px)}
  .footer-statement-meta{margin-top:28px;flex-wrap:wrap;gap:10px 20px}
  .footer-social{grid-column:auto}
  .footer-bottom{padding:18px 26px 28px;align-items:flex-start;flex-direction:column;gap:8px}
  .privacy-main{padding-top:58px}
  .privacy-content{grid-template-columns:1fr;gap:0}
  .privacy-back{font-size:10px;padding:10px 14px}
  .privacy-hero{margin-bottom:48px}
}

@media (max-width:470px){
  .form-step-count{display:none}
  .footer-main{grid-template-columns:1fr}
  .footer-brand,.footer-social{grid-column:auto}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .hero-image{transform:none}
  .reveal{opacity:1;transform:none}
  .hero-copy.reveal,.hero-copy.reveal.in{transform:translateY(-50%)}
}

/* =========================================================
   2026-09-23 REVISION — approved handoff
   ========================================================= */
:root{--taupe:#8c7a61}

/* Permanently dark floating navigation */
.site-header,.site-header.scrolled{background:rgba(31,31,31,.96);border-bottom-color:rgba(255,255,255,.08);box-shadow:0 14px 38px rgba(0,0,0,.12);color:#fff}
.site-header .brand img{filter:none}
.nav>a:not(.nav-cta){color:#fff}
.nav>a:not(.nav-cta):after,.nav-indicator{background:var(--taupe)}
.menu-toggle span{background:#fff}

/* Minimal hero */
.hero-copy{max-width:760px}
.hero h1{font-size:clamp(50px,5.05vw,76px);line-height:.98;margin:0 0 34px;letter-spacing:.01em}
.hero h1 span{color:#c7ad8c}
.hero-shade{background:linear-gradient(90deg,rgba(7,7,7,.82) 0%,rgba(7,7,7,.58) 38%,rgba(7,7,7,.18) 68%,rgba(7,7,7,.03) 100%)}

/* Project carousel */
.experience-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:24px}
.experience-title{margin-bottom:0}
.experience-controls{display:flex;gap:8px;flex:0 0 auto}
.experience-controls button{width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:#fff;cursor:pointer;font-size:17px;transition:.2s ease}
.experience-controls button:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.experience-items{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-inline:contain;padding:3px 2px 18px;scrollbar-width:thin;scrollbar-color:#b8ad9d transparent}
.experience-items>button{flex:0 0 calc((100% - 28px)/3);min-width:280px;scroll-snap-align:start}
.experience-items>button.filtered-out{display:none}

/* Six primary services */
.services-wrap{max-width:var(--max);margin:0 auto;background:#fff;border-top:1px solid var(--line)}
.services-heading{padding:clamp(64px,6vw,86px) var(--gutter) 34px;max-width:780px}
.services-heading h2{font-size:clamp(38px,3.6vw,54px);font-weight:300;line-height:1.06;letter-spacing:-.02em;margin:0}
.services{grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.service-card{min-height:330px;border-bottom:1px solid var(--line)}
.service-card:nth-child(3n){border-right:0}
.service-card:nth-child(n+4){border-bottom:0}
.card-kicker{display:none}
.laneway-capability{margin:0;padding:24px var(--gutter) 28px;border-top:1px solid var(--line);color:#625d57;font-size:13.5px}
.laneway-capability strong{color:var(--ink);font-weight:600}

/* Brand statement directly before footer */
.brand-statement{background:#1f1f1f;color:#fff;padding:clamp(78px,8vw,124px) var(--gutter);border-top:1px solid rgba(255,255,255,.05)}
.brand-statement-inner{max-width:var(--max);margin:0 auto}
.brand-statement i{display:block;width:58px;height:2px;background:var(--taupe);margin-bottom:28px}
.brand-statement h2{font-size:clamp(42px,4.6vw,68px);line-height:1;font-weight:300;text-transform:uppercase;letter-spacing:.025em;margin:0 0 22px;max-width:980px}
.brand-statement p{font-size:clamp(17px,1.45vw,21px);line-height:1.6;color:#d1ccc5;max-width:820px;margin:0}

/* Project detail actions + prominent stage */
.dialog-body .stage-row{background:#eee7dc;margin:0 -16px;padding:15px 16px;border-bottom:1px solid #d1c5b5}
.dialog-body .stage-row strong{color:var(--taupe-dark)}
.dialog-body .stage-row span{font-weight:650;color:#2b2926}
.dialog-actions{display:flex;gap:12px;flex-wrap:wrap}
.dialog-actions .button{margin:0;flex:1 1 220px;border-radius:999px}
.gallery-button{border:1px solid var(--ink);background:transparent;color:var(--ink)}
.gallery-button[hidden]{display:none!important}
.gallery-button:hover{background:var(--ink);color:#fff}

/* Gallery lightbox */
.gallery-dialog{width:min(1180px,calc(100% - 34px));max-height:94vh;border:0;padding:0;border-radius:16px;background:#111;color:#fff;box-shadow:0 35px 120px rgba(0,0,0,.5);overflow:hidden}
.gallery-dialog::backdrop{background:rgba(0,0,0,.86);backdrop-filter:blur(5px)}
.gallery-shell{padding:clamp(26px,4vw,48px)}
.gallery-close{position:absolute;top:14px;right:18px;border:0;background:transparent;color:#fff;font-size:34px;cursor:pointer;z-index:2}
.gallery-head{padding-right:50px;margin-bottom:20px}.gallery-head h2{font-size:clamp(28px,3vw,42px);font-weight:300;margin:0}.gallery-head .eyebrow{color:#c7ad8c;margin-bottom:10px}
.gallery-stage{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:14px;align-items:center}
.gallery-stage figure{margin:0;min-width:0}.gallery-stage img{width:100%;height:min(66vh,720px);object-fit:contain;background:#0b0b0b}.gallery-stage figcaption{min-height:24px;color:#bdb7ae;font-size:12px;margin-top:8px}
.gallery-nav{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.26);background:transparent;color:#fff;cursor:pointer}.gallery-nav:hover{background:#fff;color:#111}
.gallery-count{text-align:center;color:#aaa39b;font-size:11px;letter-spacing:.13em;margin-top:6px}

/* Footer remains functional and quiet */
.site-footer{border-top:1px solid #37332e}

@media (max-width:1120px){
  .nav{background:#1f1f1f;border-top-color:rgba(255,255,255,.08)}
  .services{grid-template-columns:1fr 1fr}
  .service-card:nth-child(3n){border-right:1px solid var(--line)}
  .service-card:nth-child(2n){border-right:0}
  .service-card:nth-child(n+4){border-bottom:1px solid var(--line)}
  .service-card:nth-last-child(-n+2){border-bottom:0}
  .experience-items>button{flex-basis:calc((100% - 14px)/2)}
}
@media (max-width:720px){
  .hero h1{font-size:clamp(39px,11.5vw,50px);line-height:1.02;margin-bottom:28px}
  .hero h1 span{color:#ead8bf;text-shadow:0 2px 18px rgba(0,0,0,.72)}
  .hero-shade{background:linear-gradient(90deg,rgba(7,7,7,.91) 0%,rgba(7,7,7,.72) 58%,rgba(7,7,7,.46) 100%)}
  .hero-copy{top:47%}
  .hero-actions{gap:10px}.hero-actions .button,.hero-actions .ghost-button{min-width:0;padding:15px 18px;font-size:10px}
  .services{grid-template-columns:1fr}.service-card{border-right:0!important;border-bottom:1px solid var(--line)!important;min-height:0;padding:42px 32px}.service-card:last-child{border-bottom:0!important}
  .experience-title-row{align-items:flex-start}.experience-controls{display:none}.experience-items{margin-right:calc(var(--gutter)*-1);padding-right:var(--gutter)}.experience-items>button{flex-basis:84%;min-width:270px}
  .brand-statement{padding-top:70px;padding-bottom:74px}.brand-statement h2{font-size:clamp(37px,11vw,50px)}
  .dialog-actions{flex-direction:column}.dialog-actions .button{flex-basis:auto;width:100%}
  .detail-dialog{width:calc(100% - 20px);max-height:92vh;max-height:92dvh}
  .dialog-inner{padding:44px 24px 32px}
  .gallery-stage{grid-template-columns:1fr}.gallery-nav{position:absolute;top:50%;z-index:2;background:rgba(0,0,0,.5)}.gallery-prev{left:12px}.gallery-next{right:12px}.gallery-stage img{height:62vh}
}

/* 2026-09-23 full rhythm + visual hierarchy audit */
.hero{height:min(700px,calc(100svh - var(--header)));min-height:590px}
.credibility-inner{padding-top:21px;padding-bottom:21px}
.projects{position:relative;padding-top:76px;padding-bottom:76px;background:linear-gradient(180deg,#f2ede6 0%,#f8f5f0 42%,#eee7dd 100%)}
.section-heading{margin-bottom:27px}
.section-heading h2{max-width:760px}
.project-filter{margin-bottom:24px}
.project-filter button{background:rgba(255,255,255,.5)}
.project-grid{gap:18px}
.project-card{position:relative;border:1px solid rgba(117,102,79,.2);border-radius:16px;box-shadow:0 18px 50px rgba(47,39,29,.09);cursor:pointer;transform:translateY(0);transition:opacity .3s ease,transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.project-card:hover{transform:translateY(-7px);border-color:rgba(117,102,79,.44);box-shadow:0 28px 70px rgba(47,39,29,.16)}
.project-card figure{height:300px;position:relative}
.project-card figure:after{content:"";position:absolute;inset:auto 0 0;height:34%;background:linear-gradient(transparent,rgba(0,0,0,.18));pointer-events:none}
.project-meta{padding:21px 22px 23px;border-top:3px solid var(--taupe)}
.project-meta-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.project-meta-top>span{color:var(--taupe-dark);font-size:10px;text-transform:uppercase;letter-spacing:.15em}
.project-meta-top em{font-style:normal;white-space:nowrap;border-radius:999px;background:#eee6da;color:#685941;padding:6px 9px;font-size:9px;text-transform:uppercase;letter-spacing:.11em}
.project-meta h3{font-size:23px;margin-top:10px}
.project-meta button{display:inline-flex;align-items:center}
.experience-list{margin-top:42px;padding-top:32px}
.experience-title-row{margin-bottom:18px}
.experience-items button{min-height:138px;background:rgba(255,255,255,.82);border-color:#d6cbbd}
.development{position:relative;overflow:hidden;gap:clamp(44px,5vw,72px);padding-top:72px;padding-bottom:72px;background:#f7f2eb}
.development:after{content:"";position:absolute;right:-70px;bottom:-120px;width:360px;height:300px;background:url("assets/crown-black.svg") center/contain no-repeat;opacity:.025;pointer-events:none}
.development>*{position:relative;z-index:1}
.capability-list{gap:8px;margin:24px 0 27px}
.capability-list button{display:inline-flex;align-items:center;gap:9px;border:1px solid #c9bdad;padding:10px 13px;text-transform:uppercase;letter-spacing:.11em;font-size:10.5px;background:#fff;color:var(--ink);cursor:pointer;transition:.2s ease}
.capability-list button b{color:var(--taupe);font-size:12px;font-weight:500;transition:transform .2s ease}
.capability-list button:hover,.capability-list button:focus-visible{background:var(--ink);border-color:var(--ink);color:#fff;outline:none}
.capability-list button:hover b,.capability-list button:focus-visible b{transform:translate(2px,-2px)}
.development-stack article{padding:22px 0}
.services-wrap{background:#e8e0d5}
.services-heading{padding-top:58px;padding-bottom:27px}
.services{background:transparent;gap:1px}
.service-card{min-height:275px;padding:39px 40px 36px;background:#fff}
.service-card:hover,.service-card:focus-visible{background:#27231f;color:#fff}
.service-card:hover p,.service-card:focus-visible p{color:#cec6bc}
.service-card:hover .service-icon,.service-card:focus-visible .service-icon{filter:invert(1)}
.service-icon{margin-bottom:19px}
.laneway-capability{padding-top:19px;padding-bottom:21px;background:#e8e0d5}
.purpose{min-height:510px}
.purpose-copy{padding:52px}
.purpose-note{padding-top:48px;padding-bottom:48px}
.process{padding-top:68px;padding-bottom:68px}
.process-list li{padding:20px 0}
.project-start{padding-top:72px;padding-bottom:72px}
.lead-form{min-height:540px;padding-top:40px;padding-bottom:40px}
.footer-main{padding-top:56px;padding-bottom:44px}

@media (max-width:740px){
  .hero{min-height:600px}
  .projects{padding-top:58px;padding-bottom:58px}
  .project-card figure{height:270px}
  .project-meta-top{align-items:flex-start}.project-meta-top em{font-size:8px}
  .development{padding-top:58px;padding-bottom:58px}
  .service-card{padding:36px 28px}
  .process{padding-top:58px;padding-bottom:58px}
  .project-start{padding-top:58px;padding-bottom:62px}
}


/* =========================================================
   2026-09-24 V22 SURGICAL REVISION — approved changes only
   ========================================================= */

.nav{gap:clamp(18px,2.1vw,31px)}

/* Main-site property screen inserted directly below credibility strip */
.property-screen{background:#f0ece6;border-bottom:1px solid var(--line);padding:clamp(66px,6.5vw,96px) var(--gutter)}
.property-screen-inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr);gap:clamp(42px,6vw,88px);align-items:start}
.property-screen-copy{position:sticky;top:calc(var(--header) + 34px);max-width:600px}
.property-screen-copy h2{font-size:clamp(40px,4vw,58px);font-weight:300;line-height:1.04;letter-spacing:-.025em;margin:0 0 20px}
.property-screen-copy>p:not(.eyebrow):not(.property-screen-disclaimer){font-size:16.5px;color:var(--muted);max-width:570px}
.property-screen-points{display:flex;gap:8px;flex-wrap:wrap;margin:28px 0 22px}
.property-screen-points span{border:1px solid #cfc5b9;background:rgba(255,255,255,.46);padding:8px 11px;border-radius:999px;text-transform:uppercase;letter-spacing:.11em;font-size:9.5px;color:#5f574f}
.property-screen-disclaimer{font-size:12px;color:#7b746d;line-height:1.6;max-width:560px}
.property-screen-card{position:relative;background:#fff;border:1px solid rgba(31,31,31,.08);border-radius:18px;padding:clamp(26px,3vw,42px);box-shadow:0 22px 64px rgba(31,26,21,.08)}
.property-screen-label{display:block;text-transform:uppercase;letter-spacing:.15em;font-size:10.5px;font-weight:700;margin:0 0 9px}
.property-address-wrap{position:relative}
.property-address-wrap input{width:100%;height:62px;border:1px solid #cfc7bd;border-radius:10px;background:#fff;padding:0 50px 0 45px;outline:none;font-size:16px;color:var(--ink);transition:border-color .2s ease,box-shadow .2s ease}
.property-address-wrap input:focus{border-color:var(--taupe);box-shadow:0 0 0 4px rgba(140,122,97,.11)}
.property-pin{position:absolute;left:17px;top:18px;font-size:18px;color:var(--taupe-dark);z-index:1}
.property-address-clear{position:absolute;right:10px;top:11px;width:40px;height:40px;border:0;border-radius:50%;background:#f1ede8;color:#746b62;font-size:23px;cursor:pointer}
.property-address-suggestions{position:absolute;z-index:20;width:min(720px,calc(100% - 2 * clamp(26px,3vw,42px)));margin-top:7px;background:#fff;border:1px solid #d6cec4;border-radius:10px;box-shadow:0 18px 50px rgba(31,26,21,.16);overflow:hidden}
.property-address-suggestions button{display:block;width:100%;border:0;border-bottom:1px solid #eee9e3;background:#fff;padding:13px 15px;text-align:left;cursor:pointer;color:var(--ink)}
.property-address-suggestions button:last-child{border-bottom:0}
.property-address-suggestions button:hover,.property-address-suggestions button:focus{background:#f8f5f1;outline:none}
.property-address-suggestions strong{display:block;font-size:13px;font-weight:650}
.property-address-suggestions span{display:block;margin-top:2px;font-size:11px;color:#7b746d}
.property-screen-actions{display:flex;align-items:center;gap:16px;margin-top:15px}
.property-screen-actions .button{min-width:220px;border-radius:999px}
.property-screen-actions>span{font-size:11px;color:#777069}
.property-manual-link{border:0;background:transparent;padding:8px 0 0;color:#6f675f;font-size:11.5px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.property-screen-error{margin:12px 0 0;color:#8f3129;font-size:12px;line-height:1.5}
.property-screen-loading{position:relative;overflow:hidden;min-height:520px;margin:-1px;border-radius:18px;background:radial-gradient(circle at 50% 18%,#343434 0,#1f1f1f 50%,#151515 100%);color:#fff;text-align:center;padding:48px clamp(25px,5vw,58px)}
.property-screen-loading:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,#000,transparent 88%);pointer-events:none}.property-screen-loading>*{position:relative}
.property-screen-loading>.eyebrow{margin:0 0 10px;color:#bda987}.property-screen-loading>strong{display:block;font-size:clamp(28px,3.2vw,42px);font-weight:300;letter-spacing:-.025em}.property-screen-loading>#main-property-loading-address{display:block;color:#bdb6ad;font-size:14px;margin-top:9px}
.property-loading-visual{position:relative;width:104px;height:104px;margin:0 auto 25px;display:grid;place-items:center}.property-loading-visual img{position:relative;z-index:2;width:34px;height:34px;filter:drop-shadow(0 0 14px rgba(189,169,135,.48))}.property-loading-ring,.property-loading-scan{position:absolute;inset:0;border-radius:50%}.property-loading-ring{border:1px solid rgba(189,169,135,.38)}.property-loading-ring.ring-a{animation:propertyRingPulse 2.2s ease-in-out infinite}.property-loading-ring.ring-b{inset:14px;border-color:rgba(255,255,255,.2);animation:propertyRingSpin 3.6s linear infinite}.property-loading-ring.ring-b:after{content:"";position:absolute;top:-4px;left:50%;width:7px;height:7px;border-radius:50%;background:#d1b98f;box-shadow:0 0 16px rgba(209,185,143,.95)}.property-loading-scan{inset:-10px;background:conic-gradient(from 0deg,transparent 0 68%,rgba(189,169,135,.34) 88%,transparent 100%);animation:propertyRingSpin 2.35s linear infinite}
.property-loading-meter{height:3px;max-width:440px;margin:24px auto 16px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden}.property-loading-meter i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8c7a61,#d1b98f);box-shadow:0 0 15px rgba(189,169,135,.6);transition:width .72s cubic-bezier(.22,.8,.25,1)}
.property-loading-steps{list-style:none;max-width:520px;margin:0 auto;padding:0;border-top:1px solid rgba(255,255,255,.12);text-align:left}.property-loading-steps li{display:flex;gap:14px;align-items:center;padding:13px 2px;border-bottom:1px solid rgba(255,255,255,.11);opacity:.38;transition:opacity .3s ease,transform .3s ease}.property-loading-steps li.active,.property-loading-steps li.done{opacity:1}.property-loading-steps li.active{transform:translateX(4px)}.property-loading-steps li>b{width:17px;height:17px;border:2px solid #68635d;border-radius:50%;flex:none}.property-loading-steps li.active>b{border-color:#bda987;box-shadow:inset 0 0 0 4px #1f1f1f;background:#bda987}.property-loading-steps li.done>b{background:#bda987;border-color:#bda987}.property-loading-steps li.done>b:after{content:"✓";display:block;color:#1f1f1f;font-size:10px;line-height:13px;text-align:center}.property-loading-steps strong{display:block;font-size:13px;font-weight:600}.property-loading-steps small{display:block;color:#aaa29a;font-size:11px;margin-top:3px}
@keyframes propertyRingSpin{to{transform:rotate(360deg)}}@keyframes propertyRingPulse{0%,100%{transform:scale(.92);opacity:.5}50%{transform:scale(1.08);opacity:1}}
@media (prefers-reduced-motion:reduce){.property-loading-ring.ring-a{animation:propertyRingPulse 2.2s ease-in-out infinite!important}.property-loading-ring.ring-b{animation:propertyRingSpin 3.6s linear infinite!important}.property-loading-scan{animation:propertyRingSpin 2.35s linear infinite!important}}
.property-result-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:22px}.property-result-head .eyebrow{margin-bottom:11px}.property-result-head h3{font-size:clamp(28px,3vw,42px);font-weight:300;line-height:1.08;letter-spacing:-.02em;margin:0}.property-result-head p:last-child{margin:7px 0 0;color:var(--muted)}.property-result-head>button{border:0;background:transparent;padding:5px 0;border-bottom:1px solid #bbb0a3;font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;white-space:nowrap}
.property-verification{display:flex;gap:9px;align-items:center;margin-top:18px;padding:11px 13px;background:#edf2ed;border-radius:8px;color:#496552;font-size:11.5px}.property-verification.unverified{background:#f5efe7;color:#776552}.property-verification>span{font-weight:800}.property-verification button{margin-left:auto;border:0;background:transparent;color:inherit;text-decoration:underline;cursor:pointer;font-size:11px}
.property-sources{margin-top:7px;border:1px solid var(--line);border-radius:8px;background:#fbfaf7;padding:13px;font-size:11px;line-height:1.6}.property-sources a{text-decoration:underline;text-underline-offset:3px}
.property-snapshot-grid,.property-teaser-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}.property-snapshot-grid article,.property-teaser-grid article{border:1px solid var(--line);border-radius:10px;padding:17px;min-height:120px;background:#fbfaf8}.property-snapshot-grid span,.property-teaser-grid span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:9.5px;color:#7a7168}.property-snapshot-grid strong,.property-teaser-grid strong{display:block;font-size:20px;line-height:1.15;margin-top:15px;font-weight:600}.property-snapshot-grid small,.property-teaser-grid small{display:block;color:#827a72;font-size:11px;line-height:1.4;margin-top:5px}
.property-teaser{margin-top:26px;padding:25px;background:#1f1f1f;color:#fff;border-radius:12px}.property-teaser-copy h3{font-size:clamp(27px,3vw,38px);font-weight:300;line-height:1.05;margin:0 0 10px}.property-teaser-copy>p:last-child{color:#c4beb6;font-size:13px;max-width:640px}.property-teaser-grid article{background:#292929;border-color:rgba(255,255,255,.1)}.property-teaser-grid span,.property-teaser-grid small{color:#b7afa6}.property-teaser-grid strong{color:#fff}.property-rule-note{border-top:1px solid rgba(255,255,255,.12);padding-top:14px;margin:18px 0 0;color:#b9b1a8;font-size:11px;line-height:1.5}
.property-review-locks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.property-review-locks>div{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:8px;padding:12px 13px;background:#fbfaf8}.property-review-locks span{font-size:12px}.property-review-locks b{text-transform:uppercase;letter-spacing:.11em;font-size:8.5px;color:var(--taupe-dark)}
.property-review-open{width:100%;border-radius:999px;margin-top:14px}.property-review-gate{margin-top:20px;padding-top:22px;border-top:1px solid var(--line)}.property-review-gate h4{font-size:25px;font-weight:400;margin:0 0 5px}.property-review-gate>p{margin:0 0 17px;color:var(--muted);font-size:13px}.property-review-gate form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.property-review-gate label:nth-child(3){grid-column:1/-1}.property-review-gate label span{display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}.property-review-gate label i{font-style:normal;color:#999}.property-review-gate input{width:100%;height:50px;border:1px solid #d3cbc2;border-radius:8px;padding:0 12px;outline:none}.property-review-gate input:focus{border-color:var(--taupe);box-shadow:0 0 0 3px rgba(140,122,97,.1)}.property-review-gate .button,.property-review-privacy,.property-review-gate .property-screen-error{grid-column:1/-1}.property-review-gate .button{width:100%;border-radius:999px}.property-review-privacy{margin:0;color:#827b73;font-size:10.5px;line-height:1.55}.property-review-privacy a{text-decoration:underline}.property-review-success{display:flex;gap:13px;align-items:flex-start;margin-top:20px;padding:17px;border-radius:10px;background:#edf2ed;color:#405a49}.property-review-success>span{width:26px;height:26px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;flex:none}.property-review-success strong{font-size:16px}.property-review-success p{margin:4px 0 0;font-size:12px;line-height:1.5}

/* One Selected Work rail — first three remain first, no separate experience tier */
.project-toolbar{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:0 0 28px}.project-toolbar .project-filter{margin:0}.project-rail-controls{display:flex;gap:8px;flex:none}.project-rail-controls button{width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:#fff;cursor:pointer;font-size:17px;transition:.2s ease}.project-rail-controls button:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.project-rail{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-inline:contain;padding:2px 2px 18px;scrollbar-width:thin;scrollbar-color:#b8ad9d transparent}.project-rail>.project-card{flex:0 0 calc((100% - 44px)/3);min-width:315px;scroll-snap-align:start;display:flex;flex-direction:column}.project-rail .project-card.filtered-out{display:none}.project-rail .project-card figure{height:345px;flex:none}.project-rail .project-meta{display:flex;flex-direction:column;flex:1}.project-rail .project-meta button{align-self:flex-start;margin-top:auto}.project-card-placeholder{position:relative;background:linear-gradient(145deg,#24211e,#35302a)!important}.project-card-placeholder:before,.project-card-placeholder:after,.project-card-placeholder i{content:"";position:absolute;height:1px;background:#8c7a61;transform-origin:left center}.project-card-placeholder:before{width:42%;left:18%;top:52%;transform:rotate(-24deg)}.project-card-placeholder:after{width:42%;left:45%;top:42%;transform:rotate(24deg)}.project-card-placeholder i{width:30%;left:35%;top:62%;opacity:.48}.project-card-no-photo:hover .project-card-placeholder:before{opacity:.78}

@media(max-width:1120px){.property-screen-inner{grid-template-columns:1fr;gap:35px}.property-screen-copy{position:static;max-width:760px}.project-rail>.project-card{flex-basis:calc((100% - 22px)/2)}.project-toolbar{align-items:flex-end}}
@media(max-width:720px){.property-screen{padding:56px 20px}.property-screen-card{padding:22px 17px;border-radius:14px}.property-screen-copy h2{font-size:clamp(36px,9.4vw,46px)}.property-screen-actions{display:block}.property-screen-actions .button{width:100%;min-width:0}.property-screen-actions>span{display:block;text-align:center;margin-top:9px}.property-address-suggestions{width:calc(100% - 34px)}.property-result-head{display:block}.property-result-head>button{margin-top:12px}.property-snapshot-grid,.property-teaser-grid{grid-template-columns:1fr 1fr}.property-review-locks{grid-template-columns:1fr}.property-review-gate form{grid-template-columns:1fr}.property-review-gate label:nth-child(3),.property-review-gate .button,.property-review-privacy,.property-review-gate .property-screen-error{grid-column:auto}.project-toolbar{display:block}.project-rail-controls{margin-top:16px}.project-rail>.project-card{flex-basis:min(86vw,350px);min-width:min(86vw,350px)}.project-rail .project-card figure{height:285px}}
@media(max-width:430px){.property-snapshot-grid,.property-teaser-grid{grid-template-columns:1fr}.property-verification{flex-wrap:wrap}.property-verification button{margin-left:0}.project-rail-controls button{width:42px;height:42px}}

/* Keep snapshot labels and values visually separated in every browser/layout. */
.property-snapshot-grid article > span,
.property-snapshot-grid article > strong,
.property-snapshot-grid article > small,
.property-teaser-grid article > span,
.property-teaser-grid article > strong,
.property-teaser-grid article > small { display:block; }
.property-snapshot-grid article > strong,
.property-teaser-grid article > strong { margin-top:15px; }

/* Homepage simplification: the property tool remains embedded, but opens only when requested. */
.property-popup{position:fixed;inset:0;z-index:1000;overflow-y:auto;padding:calc(var(--header) + 30px) var(--gutter) 64px;background:#f0ece6}
.property-popup .property-screen-inner{min-height:100%;padding-top:24px}
.property-popup-back{position:fixed;z-index:1001;top:calc(var(--header) + 14px);left:clamp(18px,3vw,42px);height:44px;border:1px solid #cfc7bd;border-radius:999px;background:#fff;color:var(--ink);padding:0 17px;font-size:12px;font-weight:700;letter-spacing:.04em;cursor:pointer;box-shadow:0 7px 20px rgba(31,26,21,.12)}
.property-popup-close{position:fixed;z-index:1001;top:calc(var(--header) + 14px);right:clamp(18px,3vw,42px);width:44px;height:44px;border:1px solid #cfc7bd;border-radius:50%;background:#fff;color:var(--ink);font-size:29px;font-weight:300;line-height:1;cursor:pointer;box-shadow:0 7px 20px rgba(31,26,21,.12)}
.property-popup-back:hover,
.property-popup-close:hover{background:var(--ink);border-color:var(--ink);color:#fff}
body.property-popup-open{overflow:hidden}

.compact-capabilities{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);align-items:center;background:#f7f2eb}
.compact-capabilities .development-copy>p:not(.eyebrow){max-width:610px}
.compact-capability-list{border-top:1px solid var(--line)}
.compact-capability-list span{display:block;padding:19px 0;border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.11em;font-size:12px;font-weight:650}

@media(max-width:720px){
  .property-popup{padding:calc(var(--header) + 16px) 20px 36px}
  .property-popup .property-screen-inner{padding-top:36px}
  .property-popup-back{top:calc(var(--header) + 12px);left:20px;height:40px;padding:0 13px;font-size:11px}
  .property-popup-close{top:calc(var(--header) + 12px);right:20px;width:40px;height:40px;font-size:26px}
  .compact-capabilities{grid-template-columns:1fr}
}
