
  :root{
    --espresso:#823f2a;
    --plaster:#f3efe5;
    --limestone:#e4ddcc;
    --clay:#823f2a;
    --clay-deep:#823f2a;
    --slate:#34414a;
    --ink:#1a1814;
    --ink-soft:#2c2923;
    --muted:#5c564b;
    --on-dark:#ece7d9;
    --on-dark-soft:#e0dac9;
    --serif:'Fraunces','Iowan Old Style','Palatino Linotype',serif;
  }

  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; }
  body{
    font-family:var(--serif);
    background:var(--plaster);
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
    font-weight:300;
    line-height:1.6;
  }
  a{ color:inherit; text-decoration:none; }
  .wrap{ max-width:1080px; margin:0 auto; padding:0 32px; }
  section{ padding:120px 0; }

  .label{
    display:block;
    font-style:italic;
    font-size:15px;
    color:var(--muted);
    margin-bottom:18px;
  }
  h2{
    font-size:clamp(30px, 4vw, 44px);
    font-weight:400;
    line-height:1.18;
    letter-spacing:-0.005em;
  }
  .lede{ font-size:18px; line-height:1.75; max-width:60ch; margin-top:22px; }
  em{ font-style:italic; }

  /* dark section helpers */
  .tr{ display:block; font-size:.82em; opacity:.8; margin-top:2px; letter-spacing:0; }
  .h-tr{ font-size:15px; font-style:italic; color:var(--muted); margin-top:6px; }
  .dark .label{ color:var(--on-dark-soft); }
  .dark{ color:var(--on-dark); }
  .dark .lede{ color:var(--on-dark-soft); }

  /* ---------- NAV ---------- */
  nav{ position:absolute; top:0; left:0; right:0; z-index:5; padding:34px 0; }
  nav .wrap{ display:flex; justify-content:space-between; align-items:center; }
  @media (min-width:901px){ nav .wrap{ max-width:none; padding-left:calc(40vw + 64px); padding-right:max(32px, calc((100vw - 1080px) / 2 + 32px)); } }
  .nav-mark{ font-size:15px; font-style:italic; font-weight:400; color:var(--on-dark); letter-spacing:0.03em; }
  .nav-link{
    font-size:14px; letter-spacing:0.02em; color:var(--on-dark); opacity:0.85;
    border-bottom:1px solid transparent; padding-bottom:2px; transition:opacity .3s, border-color .3s;
  }
  .nav-link:hover{ opacity:1; border-color:var(--on-dark); }

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    height:100vh; height:100svh; min-height:600px;
    background:var(--espresso);
    color:var(--on-dark);
    display:flex;
    align-items:stretch;
    padding:0;
    overflow:hidden;
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background:
      radial-gradient(circle at 12% 12%, rgba(156,79,53,0.16), transparent 42%),
      radial-gradient(circle at 90% 90%, rgba(240,205,185,0.09), transparent 46%);
    pointer-events:none;
  }
  .hero-inner{
    position:relative; width:100%; max-width:none; padding:0;
    display:grid; grid-template-columns:0.8fr 1.2fr; gap:0; align-items:stretch;
    opacity:0; transform:translateY(14px); animation:rise 1.1s ease .15s forwards;
  }
  .hero-text{
    display:flex; flex-direction:column; justify-content:center;
    padding:110px max(32px, calc((100vw - 1080px) / 2 + 32px)) 40px 64px;
  }
  .hero-portrait{ position:relative; min-height:0; }
  .hero-portrait .portrait-frame{ position:absolute; inset:0; aspect-ratio:auto; border:none; }
  .hero-portrait .portrait-frame img{ object-position:50% 0%; }
  .hero-portrait .portrait-caption{
    position:absolute; left:28px; bottom:22px; margin:0; color:var(--on-dark);
    text-shadow:0 1px 10px rgba(40,15,8,0.55);
  }
  .hero-text .cta{ align-self:flex-start; }
  .hero-portrait::before{ content:""; position:absolute; left:0; right:0; top:0; height:130px; background:linear-gradient(to bottom, rgba(40,15,8,0.4), transparent); z-index:1; pointer-events:none; }
  .hero-portrait::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:140px; background:linear-gradient(to top, rgba(40,15,8,0.6), transparent); pointer-events:none; }
  .hero-portrait .portrait-caption{ z-index:1; }
  .hero-facts{
    display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
    margin-top:48px; padding-top:22px; border-top:1px solid rgba(236,231,217,0.28);
  }
  .hero-facts div{ font-size:14px; line-height:1.5; color:var(--on-dark-soft); }
  .hero-facts strong{ display:block; font-weight:400; font-style:italic; font-size:16px; color:var(--on-dark); margin-bottom:4px; }
  @keyframes rise{ to{ opacity:1; transform:translateY(0); } }
  .portrait-frame{
    aspect-ratio:4/5;
    display:flex; align-items:center; justify-content:center; text-align:center;
    font-style:italic; font-size:14px; line-height:1.6;
    background:rgba(236,231,217,0.05);
    border:1px solid rgba(236,231,217,0.28);
    color:var(--on-dark-soft);
  }
  .portrait-frame img{ width:100%; height:100%; object-fit:cover; display:block; }
  .portrait-caption{ margin-top:14px; font-size:13px; font-style:italic; color:var(--on-dark-soft); }
  .hero-eyebrow{ font-style:italic; font-weight:400; font-size:15px; color:var(--on-dark-soft); margin-bottom:22px; }
  .hero h1{ font-size:clamp(48px, 6.6vw, 96px); font-weight:400; letter-spacing:-0.01em; line-height:1.02; }
  .hero-rule{ width:52px; height:1px; background:var(--on-dark-soft); margin:28px 0; }
  .hero-sub{ font-size:clamp(17px, 2vw, 20px); color:var(--on-dark-soft); max-width:440px; margin-bottom:38px; }
  .cta{
    display:inline-block; font-family:var(--serif); font-size:14px; letter-spacing:0.03em;
    padding:14px 34px; border:1px solid rgba(236,231,217,0.45); color:var(--on-dark);
    background:none; cursor:pointer; transition:background .35s, color .35s, border-color .35s;
  }
  .cta:hover{ background:var(--on-dark); color:var(--espresso); border-color:var(--on-dark); }

  /* ---------- STORY ---------- */
  .story{ background:var(--plaster); }
  .story-inner{ max-width:700px; }
  .story-inner p{ margin-top:20px; font-size:17px; color:var(--ink-soft); }
  .story-inner p:first-of-type{ margin-top:28px; }
  .story-inner em{ color:var(--ink); }
  .pull{
    margin-top:40px; padding-left:22px; border-left:2px solid var(--clay);
    font-style:italic; font-size:23px; line-height:1.5; color:var(--ink); max-width:34ch;
  }
  .pull span{ display:block; margin-top:12px; font-style:normal; font-size:14px; color:var(--muted); }

  /* ---------- QUIET LUXURY ---------- */
  .luxe{ background:var(--limestone); }
  .luxe-grid{ display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
  .luxe-points{ margin-top:6px; }
  .luxe-point{ padding:26px 0; border-top:1px solid rgba(26,24,20,0.18); }
  .luxe-point:last-child{ border-bottom:1px solid rgba(26,24,20,0.18); }
  .luxe-point h3{ font-size:21px; font-weight:400; font-style:italic; margin-bottom:8px; color:var(--clay-deep); }
  .luxe-point p{ font-size:16px; color:var(--ink-soft); }

  /* ---------- SERVICE ---------- */
  .service{ background:var(--slate); }
  .service-grid{ display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
  .service-list{ list-style:none; }
  .service-list li{ padding:24px 0; border-top:1px solid rgba(236,231,217,0.2); }
  .service-list li:last-child{ border-bottom:1px solid rgba(236,231,217,0.2); }
  .service-list h3{ font-size:20px; font-weight:400; margin-bottom:6px; }
  .service-list p{ font-size:15.5px; color:var(--on-dark-soft); }
  .fee{
    margin-top:44px; padding:26px 28px;
    border:1px solid rgba(236,231,217,0.3);
    max-width:420px;
  }
  .fee-label{ font-style:italic; font-size:14px; color:var(--on-dark-soft); }
  .fee-amount{ font-size:34px; font-weight:400; margin:6px 0 10px; }
  .fee-amount small{ font-size:16px; font-style:italic; color:var(--on-dark-soft); }
  .fee p{ font-size:14.5px; color:var(--on-dark-soft); }

  /* ---------- JOURNEY ---------- */
  .journey{ background:var(--plaster); }
  .journey-grid{ margin-top:56px; display:grid; grid-template-columns:repeat(4,1fr); gap:44px 32px; }
  .jitem{ border-top:1px solid rgba(26,24,20,0.2); padding-top:18px; }
  .jitem h3{ font-size:21px; font-weight:400; margin-bottom:8px; }
  .jitem p{ font-size:15.5px; color:var(--ink-soft); }
  .journey-note{
    margin-top:64px; max-width:60ch; font-size:18px; line-height:1.7; color:var(--ink);
    font-style:italic;
  }

  /* ---------- CAPACITY ---------- */
  .capacity{ background:var(--slate); text-align:center; padding:100px 0; }
  .capacity .wrap{ max-width:760px; }
  .capacity .label{ color:var(--on-dark-soft); }
  .capacity h2{ color:var(--on-dark); }
  .capacity p{ margin-top:22px; font-size:18px; line-height:1.75; color:#ecd9ce; }

  /* ---------- PROCESS ---------- */
  .process{ background:var(--plaster); }
  .process-grid{ margin-top:56px; display:grid; grid-template-columns:repeat(5,1fr); gap:28px; }
  .step .num{ font-size:13px; font-style:italic; color:var(--clay-deep); margin-bottom:14px; white-space:nowrap; }
  .step h3{ font-size:19px; font-weight:400; margin-bottom:10px; }
  .step p{ font-size:15px; color:var(--ink-soft); line-height:1.6; }

  /* ---------- CONTACT ---------- */
  .contact{ background:var(--espresso); text-align:center; }
  .contact .lede{ margin-left:auto; margin-right:auto; text-align:center; }
  .brief-form{
    max-width:560px; margin:52px auto 0; text-align:left;
    display:grid; grid-template-columns:1fr 1fr; gap:26px 24px;
  }
  .field{ display:flex; flex-direction:column; }
  .field-wide{ grid-column:1 / -1; }
  .field label{ font-size:13px; font-style:italic; color:var(--on-dark-soft); margin-bottom:8px; }
  .field input, .field textarea{
    background:transparent; border:none; border-bottom:1px solid rgba(236,231,217,0.35);
    color:var(--on-dark); font-family:var(--serif); font-size:16px; font-weight:300;
    padding:6px 2px 10px; resize:vertical; transition:border-color .3s;
  }
  .field input:focus, .field textarea:focus{ outline:none; border-color:var(--on-dark); }
  .field input[type="file"]{ border-bottom:none; padding:4px 0; font-size:14px; color:var(--on-dark-soft); }
  .field input[type="file"]::file-selector-button{ background:transparent; color:var(--on-dark); border:1px solid rgba(236,231,217,0.35); font-family:var(--serif); font-size:13px; padding:6px 14px; margin-right:12px; cursor:pointer; }
  .form-error{ grid-column:1 / -1; font-size:14px; font-style:italic; color:#e3b8a6; }
  .thanks{ grid-column:1 / -1; text-align:center; font-style:italic; color:var(--on-dark-soft); }
  .brief-submit{ grid-column:1 / -1; justify-self:start; margin-top:6px; }
  .contact-details{ margin-top:52px; font-size:16px; color:var(--on-dark-soft); }
  .contact-details a{ color:var(--on-dark); border-bottom:1px solid rgba(236,231,217,0.35); transition:border-color .3s; }
  .contact-details a:hover{ border-color:var(--on-dark); }
  .contact-note{ margin-top:26px; font-style:italic; font-size:14px; color:var(--on-dark-soft); }

  footer{
    padding:32px 0; text-align:center; font-size:13px;
    color:var(--on-dark-soft); background:#4a2418;
  }

  /* ---------- NAV LINKS ---------- */
  .nav-links{ display:flex; gap:30px; align-items:center; }

  /* ---------- SHOP ---------- */
  .shop{ background:var(--plaster); }
  .shop .lede{ color:var(--ink-soft); }
  .shop-grid{ margin-top:56px; display:grid; grid-template-columns:repeat(3,1fr); gap:48px 36px; }
  .product{ display:flex; flex-direction:column; }
  .product-img{
    aspect-ratio:4/5; background:var(--limestone); overflow:hidden;
    display:flex; align-items:center; justify-content:center;
    font-style:italic; font-size:13px; color:var(--muted); text-align:center;
  }
  .product-img img{ width:100%; height:100%; object-fit:cover; display:block; }
  .product h3{ font-size:20px; font-weight:400; margin-top:18px; }
  .product .price{ font-size:16px; color:var(--clay-deep); margin-top:4px; }
  .product .why{ font-size:15px; color:var(--ink-soft); margin-top:12px; }
  .product .know{ font-size:14px; font-style:italic; color:var(--muted); margin-top:8px; }
  .product .buy{
    margin-top:18px; align-self:flex-start; font-size:13.5px; letter-spacing:0.03em;
    padding:11px 24px; border:1px solid var(--ink); color:var(--ink);
    transition:background .3s, color .3s;
  }
  .product .buy:hover{ background:var(--ink); color:var(--plaster); }
  .shop-foot{ margin-top:56px; font-size:14px; font-style:italic; color:var(--muted); max-width:60ch; }

  @media (min-width:901px) and (max-height:820px){
    .hero-text{ padding-top:84px; padding-bottom:28px; }
    .hero h1{ font-size:clamp(44px, 5.4vw, 70px); }
    .hero-rule{ margin:20px 0; }
    .hero-sub{ margin-bottom:26px; }
    .hero-facts{ margin-top:32px; padding-top:18px; }
  }
  @media (min-width:901px) and (max-height:660px){ .hero-facts{ display:none; } }

  a:focus-visible, .cta:focus-visible{ outline:1px solid var(--clay); outline-offset:3px; }

  @media (max-width:900px){
    .journey-grid{ grid-template-columns:1fr 1fr; }
    .process-grid{ grid-template-columns:1fr; }
    section{ padding:88px 0; }
    .hero{ height:100vh; height:100svh; min-height:560px; }
    .hero-inner{ grid-template-columns:1fr; grid-template-rows:48% 52%; gap:0; text-align:left; height:100%; }
    .hero-facts{ display:none; }
    .hero .hero-inner{ padding:0; }
    .hero-portrait{ min-height:0; }
    .hero-portrait .portrait-frame img{ object-position:50% 0%; }
    .hero-text{ padding:22px 24px 24px; justify-content:center; }
    .hero-eyebrow{ font-size:13px; margin-bottom:12px; }
    .hero h1{ font-size:clamp(40px, 12vw, 56px); }
    .hero-rule{ margin:16px 0; }
    .hero-sub{ font-size:16px; margin:0 0 20px; }
    .hero-portrait .portrait-caption{ left:20px; bottom:14px; }
    .luxe-grid, .service-grid{ grid-template-columns:1fr; gap:44px; }
    .journey-grid, .shop-grid{ grid-template-columns:1fr 1fr; }
    .process-grid{ grid-template-columns:1fr 1fr; gap:40px 28px; }
  }
  @media (max-width:560px){
    .wrap{ padding:0 24px; }
    .journey-grid, .process-grid, .shop-grid{ grid-template-columns:1fr; }
    .brief-form{ grid-template-columns:1fr; }
  }
  @media (prefers-reduced-motion:reduce){
    .hero-inner{ animation:none; opacity:1; transform:none; }
    html{ scroll-behavior:auto; }
  }

  /* ---------- AUDIT FIXES ---------- */
  .cta-solid{ background:var(--on-dark); color:var(--espresso); border-color:var(--on-dark); font-size:16px; padding:16px 38px; font-weight:400; }
  .cta-solid:hover{ background:transparent; color:var(--on-dark); border-color:var(--on-dark); }
  .cta-light{ background:var(--espresso); color:var(--on-dark); border-color:var(--espresso); }
  .cta-light:hover{ background:transparent; color:var(--espresso); }
  .cta-row{ margin-top:56px; }
  .capacity .cta-row{ margin-top:40px; }
  .hero h1{ font-size:clamp(36px, 4.6vw, 66px); line-height:1.08; max-width:14ch; }
  .hero-sub{ font-size:clamp(18px, 2vw, 21px); max-width:460px; }
  .hero-facts div{ font-size:15.5px; }
  .hero-facts strong{ font-size:17px; }
  .lede{ font-size:19px; }
  .story-inner p{ font-size:18px; }
  .luxe-point p, .jitem p, .step p{ font-size:16.5px; }
  .service-list p{ font-size:17px; }
  .fee{ max-width:480px; padding:32px 34px; background:rgba(236,231,217,0.07); border-color:rgba(236,231,217,0.5); }
  .fee-label{ font-size:16px; }
  .fee-amount{ font-size:44px; }
  .fee p{ font-size:17px; color:var(--on-dark); line-height:1.6; }
  .journey-grid{ grid-template-columns:repeat(3,1fr); }
  .process-grid{ grid-template-columns:repeat(3,1fr); gap:44px; }
  .step .num{ font-size:15px; }
  .field label{ font-size:15px; }
  .field-file input[hidden]{ display:none; }
  .contact-details, .contact-note{ font-size:17px; }
  .label{ font-size:16px; }
  .step .big{ font-size:44px; font-weight:300; color:var(--clay-deep); line-height:1; margin-bottom:12px; }
  @media (max-width:900px){ .process-grid{ grid-template-columns:1fr; gap:32px; } .journey-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .journey-grid{ grid-template-columns:1fr; } }
  .who{ background:var(--plaster); padding-bottom:40px; }
  .who .lede{ color:var(--ink-soft); }
  .consult-box{ margin-top:44px; padding:32px 34px; max-width:480px; border:1px solid rgba(236,231,217,0.5); background:rgba(236,231,217,0.07); }
  .consult-box h3{ font-size:24px; font-weight:400; margin-bottom:10px; }
  .consult-box p{ font-size:17px; line-height:1.65; color:var(--on-dark); }
  .consult-box .cta{ margin-top:22px; }
  .consult-note{ max-width:560px; margin:22px auto 0; font-size:17px; line-height:1.7; color:var(--on-dark-soft); }
  /* ---------- PAGES UPDATE ---------- */
  .dark, .dark p, .dark li{ --on-dark-soft:#ece7d9; }
  .dark .label, .capacity .label{ color:#ece7d9; }
  .dark .lede, .service-list p, .contact-details, .contact-note, .consult-note{ color:#f1ece0; }
  .site-head{ background:var(--espresso); position:relative; padding:26px 0; }
  .site-head .wrap{ display:flex; justify-content:space-between; align-items:center; max-width:1080px; padding:0 32px; }
  .site-head .nav-link, .site-head .nav-mark{ color:var(--on-dark); }
  .nav-link.current{ opacity:1; border-color:var(--on-dark); }
  .page-hero{ background:var(--espresso); color:var(--on-dark); padding:70px 0 96px; }
  .page-hero h1{ font-size:clamp(36px,5vw,60px); font-weight:400; line-height:1.08; max-width:18ch; }
  .page-hero .lede{ color:#f1ece0; }
  .page-hero .label{ color:#ece7d9; }
  .block{ padding:96px 0; }
  .block.alt{ background:var(--limestone); }
  .block.navy{ background:var(--slate); color:var(--on-dark); }
  .block.navy .label{ color:#ece7d9; }
  .block p{ margin-top:18px; font-size:18px; line-height:1.75; max-width:62ch; }
  .block.navy p{ color:#f1ece0; }
  .about-photo{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:start; }
  .about-photo img{ width:100%; height:auto; display:block; }
  .twocol{ display:grid; grid-template-columns:1fr 1fr; gap:56px; margin-top:36px; }
  .twocol h3{ font-size:22px; font-weight:400; margin-bottom:8px; }
  .twocol p{ margin-top:0; font-size:17px; }
  @media (max-width:900px){ .about-photo, .twocol{ grid-template-columns:1fr; gap:36px; } .nav-links{ gap:16px; } .nav-link{ font-size:13px; } .nav-mark{ font-size:14px; } .site-head .wrap{ padding:0 24px; } }

  /* ---------- SAMPLE BOARD ---------- */
  .board{ margin-top:44px; display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:150px; gap:10px; }
  .tile{ position:relative; display:flex; align-items:flex-end; padding:12px 14px; font-size:13.5px; font-style:italic; color:#fff; text-shadow:0 1px 6px rgba(0,0,0,.35); box-shadow:inset 0 0 0 1px rgba(26,24,20,.08); }
  .tile.dk{ color:var(--ink); text-shadow:none; }
  .t-oak{ grid-row:span 2; background:repeating-linear-gradient(92deg,#b98a5a 0 3px,#c49866 3px 7px,#ad7f52 7px 9px,#c9a070 9px 14px); }
  .t-stone{ background:linear-gradient(135deg,#e9e4da,#d9d2c4 45%,#e6e0d4 70%,#cfc7b8); color:var(--ink); text-shadow:none; }
  .t-stone::after{ content:""; position:absolute; inset:0; background:linear-gradient(112deg,transparent 40%,rgba(120,110,95,.28) 41%,transparent 42.5%),linear-gradient(70deg,transparent 60%,rgba(120,110,95,.2) 60.8%,transparent 62%); }
  .t-lime{ background:radial-gradient(circle at 30% 30%,#e2d9c6,#d3c8b2); color:var(--ink); text-shadow:none; }
  .t-brass{ background:linear-gradient(100deg,#9a7a3e,#c9a85f 40%,#a98a4a 70%,#bd9d57); }
  .t-linen{ grid-column:span 2; background:repeating-linear-gradient(0deg,rgba(255,255,255,.25) 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,rgba(120,100,70,.12) 0 1px,transparent 1px 4px),#cdbfa4; color:var(--ink); text-shadow:none; }
  .t-terra{ background:linear-gradient(rgba(255,255,255,.14) 0 1px,transparent 1px) 0 0/100% 50%,linear-gradient(90deg,rgba(255,255,255,.14) 0 1px,transparent 1px) 0 0/50% 100%,#823f2a; }
  .t-smoke{ background:repeating-linear-gradient(92deg,#4a392d 0 3px,#54402f 3px 8px,#3f3126 8px 10px); }
  .t-navy{ background:#34414a; grid-column:span 3; }
  .board-cap{ margin-top:14px; font-size:15px !important; font-style:italic; color:var(--muted); max-width:62ch; }
  @media (max-width:900px){ .board{ grid-template-columns:repeat(2,1fr); grid-auto-rows:120px; } .t-linen, .t-navy{ grid-column:span 2; } .t-oak{ grid-row:span 1; } }

  /* ---------- PHOTO GALLERY ---------- */
  .gallery{ margin-top:44px; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .gallery figure{ aspect-ratio:3/2; overflow:hidden; background:var(--limestone); }
  .gallery img{ width:100%; height:100%; object-fit:cover; display:block; }
  @media (max-width:700px){ .gallery{ grid-template-columns:1fr; } }
