:root{
    --ink:#1E1B17;
    --panel:#332B24;
    --paper:#F1EADC;
    --paper-2:#E5DBC7;
    --cream:#F7F1E4;
    --brass:#B08D4F;
    --brass-bright:#D8B672;
    --rust:#B5502E;
    --rust-bright:#D06840;
    --emerald:#3F5D4C;
    --emerald-bright:#5C8069;
    --line: rgba(247,241,228,0.16);
    --line-dark: rgba(30,27,23,0.13);
    --display: 'Fraunces', serif;
    --body: 'Inter', sans-serif;
    --mono: 'IBM Plex Mono', monospace;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--body);
    background:var(--paper);
    color:var(--ink);
    line-height:1.55;
    overflow-x:hidden;
  }
  img,video{display:block; max-width:100%;}
  a{color:inherit; text-decoration:none;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
  .eyebrow{
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--rust-bright);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{content:""; width:22px; height:1px; background:var(--rust-bright);}
  .eyebrow.on-dark{color:var(--brass-bright);}
  .eyebrow.on-dark::before{background:var(--brass-bright);}

  /* ---------- REVEAL ANIMATION ---------- */
  .reveal{opacity:0; transform:translateY(24px); transition:opacity 0.7s ease, transform 0.7s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}
  .reveal-stagger > *{opacity:0; transform:translateY(20px); transition:opacity 0.6s ease, transform 0.6s ease;}
  .reveal-stagger.in > *{opacity:1; transform:translateY(0);}
  .reveal-stagger.in > *:nth-child(1){transition-delay:0.02s;}
  .reveal-stagger.in > *:nth-child(2){transition-delay:0.10s;}
  .reveal-stagger.in > *:nth-child(3){transition-delay:0.18s;}
  .reveal-stagger.in > *:nth-child(4){transition-delay:0.26s;}
  .reveal-stagger.in > *:nth-child(5){transition-delay:0.34s;}
  .reveal-stagger.in > *:nth-child(6){transition-delay:0.42s;}

  /* ---------- HEADER ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(30,27,23,0.96);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 32px;
    max-width:1180px; margin:0 auto;
  }
  .brand{
    font-family:var(--display);
    font-weight:600;
    font-size:20px;
    color:var(--cream);
    letter-spacing:0.01em;
  }
  .brand span{color:var(--brass-bright);}
  .nav-links{
    display:flex; gap:26px;
    font-size:14px;
    font-weight:500;
    color:rgba(247,241,228,0.75);
  }
  .nav-links a{transition:color 0.15s ease;}
  .nav-links a:hover{color:var(--brass-bright);}
  .nav-right{display:flex; align-items:center; gap:14px;}
  .call-btn{
    font-family:var(--mono);
    font-size:13px;
    letter-spacing:0.04em;
    background:var(--rust);
    color:var(--cream);
    padding:10px 18px;
    border-radius:2px;
    font-weight:500;
    transition:background 0.2s ease, transform 0.2s ease;
    white-space:nowrap;
  }
  .call-btn:hover{background:var(--rust-bright); transform:translateY(-1px);}

  /* ---------- HERO ---------- */
  .hero{
    background:var(--ink);
    color:var(--cream);
    padding:64px 0 0;
    position:relative;
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background:
      radial-gradient(600px 400px at 85% 8%, rgba(176,141,79,0.14), transparent 60%),
      radial-gradient(500px 350px at 10% 90%, rgba(181,80,46,0.10), transparent 60%);
    pointer-events:none;
  }
  .hero-grid{
    display:grid;
    grid-template-columns:1.05fr 0.95fr;
    gap:56px;
    align-items:center;
    padding-bottom:56px;
    position:relative;
  }
  .badge-row{display:flex; gap:10px; flex-wrap:wrap; margin:20px 0 6px;}
  .badge{
    font-family:var(--mono);
    font-size:11.5px;
    letter-spacing:0.03em;
    padding:6px 12px;
    border-radius:20px;
    border:1px solid var(--line);
    color:rgba(247,241,228,0.85);
  }
  .badge.hot{border-color:rgba(216,182,114,0.5); color:var(--brass-bright);}
  .hero h1{
    font-family:var(--display);
    font-weight:600;
    font-size:clamp(34px,4.4vw,54px);
    line-height:1.08;
    margin:18px 0 22px;
    color:var(--cream);
  }
  .hero h1 em{
    font-style:italic;
    color:var(--brass-bright);
  }
  .hero p.lead{
    font-size:17px;
    color:rgba(247,241,228,0.78);
    max-width:46ch;
    margin-bottom:28px;
  }
  .cta-row{display:flex; gap:14px; flex-wrap:wrap;}
  .btn{
    font-family:var(--mono);
    font-size:13px;
    letter-spacing:0.03em;
    padding:14px 22px;
    border-radius:2px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    transition:transform 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
  }
  .btn-primary{background:var(--rust); color:var(--cream); font-weight:600;}
  .btn-primary:hover{background:var(--rust-bright); transform:translateY(-2px); box-shadow:0 8px 20px rgba(181,80,46,0.35);}
  .btn-brass{background:var(--brass); color:var(--ink); font-weight:600;}
  .btn-brass:hover{background:var(--brass-bright); transform:translateY(-2px); box-shadow:0 8px 20px rgba(176,141,79,0.3);}
  .btn-ghost{border:1px solid rgba(247,241,228,0.35); color:var(--cream);}
  .btn-ghost:hover{border-color:var(--brass-bright); color:var(--brass-bright);}

  /* Door signature element */
  .door-scene{
    position:relative;
    aspect-ratio:4/5;
    perspective:1600px;
    border-radius:3px;
    overflow:hidden;
    box-shadow:0 30px 70px rgba(0,0,0,0.5);
  }
  .door-scene img{
    position:absolute; inset:0;
    width:100%; height:100%; object-fit:cover;
  }
  .door-scene::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(30,27,23,0.05), rgba(30,27,23,0.3));
    pointer-events:none;
  }
  .door-panel{
    position:absolute; inset:0;
    transform-style:preserve-3d;
    transform-origin:left center;
    transform:rotateY(0deg);
    animation:swingOpen 1.6s 0.6s cubic-bezier(.62,.05,.3,1) forwards;
    cursor:pointer;
    z-index:5;
  }
  @keyframes swingOpen{
    0%{transform:rotateY(0deg);}
    100%{transform:rotateY(-108deg);}
  }
  .door-face{
    position:absolute; inset:0;
    background:
      repeating-linear-gradient(90deg, rgba(0,0,0,0.05) 0 2px, transparent 2px 26px),
      linear-gradient(160deg, #6b4a30, #4a3220 55%, #3a2718);
    border:10px solid #3a2718;
    box-shadow: inset 0 0 0 2px rgba(0,0,0,0.25), inset 0 0 40px rgba(0,0,0,0.35);
  }
  .door-face::before{
    content:"";
    position:absolute; inset:26px;
    border:2px solid rgba(0,0,0,0.28);
    border-radius:2px;
    box-shadow: inset 0 0 18px rgba(0,0,0,0.25);
  }
  .door-handle{
    position:absolute;
    right:24px; top:50%;
    width:11px; height:38px;
    background:linear-gradient(180deg, var(--brass-bright), var(--brass) 60%, #8a6b39);
    border-radius:6px;
    box-shadow:0 2px 6px rgba(0,0,0,0.5);
  }
  .door-tag{
    position:absolute; left:26px; bottom:26px;
    font-family:var(--mono);
    font-size:10.5px;
    color:rgba(255,255,255,0.55);
    letter-spacing:0.06em;
  }
  .door-hint{
    position:absolute; bottom:16px; left:50%; transform:translateX(-50%);
    font-family:var(--mono); font-size:11px; letter-spacing:0.05em;
    color:rgba(247,241,228,0.7);
    background:rgba(30,27,23,0.55);
    padding:6px 12px; border-radius:20px;
    z-index:6;
    opacity:0;
    animation:hintFade 1s 2.3s forwards;
  }
  @keyframes hintFade{ to{opacity:1;} }

  /* ---------- STATS STRIP ---------- */
  .stats{
    background:var(--panel);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .stats-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
  }
  .stat-item{
    padding:30px 24px;
    border-right:1px solid var(--line);
    text-align:center;
  }
  .stat-item:last-child{border-right:none;}
  .stat-num{
    font-family:var(--display);
    font-weight:700;
    font-size:clamp(28px,3vw,38px);
    color:var(--brass-bright);
    line-height:1;
  }
  .stat-label{
    margin-top:8px;
    font-family:var(--mono);
    font-size:11.5px;
    letter-spacing:0.05em;
    text-transform:uppercase;
    color:rgba(247,241,228,0.65);
  }

  /* ---------- SECTION HEADERS ---------- */
  section{padding:88px 0;}
  .sec-head{max-width:640px; margin-bottom:52px;}
  .sec-head h2{
    font-family:var(--display);
    font-weight:600;
    font-size:clamp(28px,3vw,38px);
    margin-top:14px;
    line-height:1.15;
  }
  .sec-head p{margin-top:14px; font-size:16px; color:#4a413a; max-width:52ch;}

  /* ---------- TRUST STRIP (in-page, light) ---------- */
  .trust{background:var(--paper-2);}
  .trust-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line-dark);
    border:1px solid var(--line-dark);
  }
  .trust-item{
    padding:28px 26px;
    background:var(--paper-2);
    transition:background 0.2s ease, transform 0.2s ease;
  }
  .trust-item:hover{background:var(--cream); transform:translateY(-3px);}
  .trust-item h3{
    font-family:var(--display);
    font-size:17px;
    font-weight:600;
    margin-bottom:8px;
    color:var(--rust);
  }
  .trust-item p{font-size:14px; color:#5a5148;}

  /* ---------- SERVICES ---------- */
  .services{background:var(--paper);}
  .service-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line-dark);
    border:1px solid var(--line-dark);
  }
  .service-card{
    background:var(--paper);
    padding:32px 28px;
    min-height:196px;
    display:flex; flex-direction:column; justify-content:space-between;
    transition:background 0.25s ease, transform 0.25s ease;
    position:relative;
    overflow:hidden;
  }
  .service-card::before{
    content:"";
    position:absolute; left:0; top:0; bottom:0; width:3px;
    background:var(--brass);
    transform:scaleY(0);
    transform-origin:bottom;
    transition:transform 0.3s ease;
  }
  .service-card:hover{background:var(--paper-2); transform:translateY(-4px);}
  .service-card:hover::before{transform:scaleY(1);}
  .service-num{
    font-family:var(--mono);
    font-size:12px;
    color:var(--rust);
    letter-spacing:0.05em;
  }
  .service-card h3{
    font-family:var(--display);
    font-size:20px;
    font-weight:600;
    margin:14px 0 8px;
  }
  .service-card p{font-size:14px; color:#5a5148;}

  /* ---------- GALLERY ---------- */
  .gallery{background:var(--ink); color:var(--cream);}
  .gallery .sec-head p{color:rgba(247,241,228,0.72);}
  .gallery-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    grid-template-rows:repeat(3, 300px);
    gap:16px;
  }
  .gal-item{
    position:relative;
    overflow:hidden;
    border-radius:3px;
    cursor:pointer;
    height:100%;
  }
  .gal-item img{
    width:100%; height:100%; object-fit:cover;
    display:block;
    transition:transform 0.6s ease;
  }
  .gal-item:hover img{transform:scale(1.07);}
  .gal-cap{
    position:absolute; left:0; right:0; bottom:0;
    padding:16px 18px;
    background:linear-gradient(0deg, rgba(0,0,0,0.7), transparent);
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:0.05em;
  }
  .gallery-note{
    margin-top:22px;
    font-size:13px;
    color:rgba(247,241,228,0.5);
    font-style:italic;
  }

  /* ---------- VIDEO SHOWCASE ---------- */
  .video-sec{background:var(--paper-2);}
  .video-grid{
    display:grid;
    grid-template-columns:1.4fr 1fr;
    gap:28px;
    align-items:start;
  }
  .video-card{
    background:var(--ink);
    border-radius:4px;
    overflow:hidden;
    box-shadow:0 20px 50px rgba(0,0,0,0.18);
  }
  .video-card video{width:100%; display:block; background:#000;}
  .video-cap{
    padding:16px 20px;
    color:var(--cream);
    font-size:14px;
    display:flex; justify-content:space-between; align-items:center;
    font-family:var(--mono); font-size:12px; letter-spacing:0.04em;
  }
  .video-card.tall{max-height:640px;}
  .video-card.tall video{max-height:560px; object-fit:cover; width:100%;}

  /* ---------- PROCESS ---------- */
  .process{background:var(--paper);}
  .process-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:36px;
  }
  .process-step{position:relative; padding-top:20px;}
  .process-step::before{
    content:"";
    position:absolute; top:0; left:0;
    width:40px; height:2px;
    background:var(--rust);
  }
  .process-num{
    font-family:var(--mono);
    font-size:13px;
    color:var(--rust);
    margin-bottom:10px;
    display:block;
  }
  .process-step h3{
    font-family:var(--display);
    font-size:19px;
    font-weight:600;
    margin-bottom:8px;
  }
  .process-step p{font-size:14px; color:#5a5148;}

  /* ---------- FOUNDER ---------- */
  .founder{background:var(--emerald); color:var(--cream); position:relative; overflow:hidden;}
  .founder::before{
    content:"";
    position:absolute; inset:0;
    background:radial-gradient(500px 400px at 90% 20%, rgba(216,182,114,0.14), transparent 60%);
  }
  .founder-grid{
    display:grid;
    grid-template-columns:0.85fr 1.15fr;
    gap:52px;
    align-items:center;
    position:relative;
  }
  .founder-photo-wrap{
    position:relative;
    border-radius:4px;
    overflow:hidden;
    box-shadow:0 24px 60px rgba(0,0,0,0.35);
    border:1px solid rgba(247,241,228,0.15);
  }
  .founder-photo-wrap img{width:100%; display:block;}
  .founder-tag{
    position:absolute; left:16px; bottom:16px;
    background:rgba(30,27,23,0.65);
    padding:8px 14px;
    border-radius:20px;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:0.04em;
  }
  .founder h2{
    font-family:var(--display);
    font-weight:600;
    font-size:clamp(26px,3vw,34px);
    margin:14px 0 16px;
  }
  .founder p{font-size:15.5px; color:rgba(247,241,228,0.85); max-width:56ch; margin-bottom:14px;}
  .founder-name{
    font-family:var(--display);
    font-size:20px;
    font-weight:600;
    color:var(--brass-bright);
    margin-top:18px;
  }
  .founder-role{
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:0.05em;
    color:rgba(247,241,228,0.6);
    margin-top:4px;
  }

  /* ---------- CONTACT ---------- */
  .contact{background:var(--ink); color:var(--cream);}
  .contact-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:56px;
    align-items:start;
  }
  .contact .sec-head p{color:rgba(247,241,228,0.72);}
  .contact-card{
    border:1px solid var(--line);
    border-radius:3px;
    padding:30px;
  }
  .contact-line{
    display:flex; align-items:flex-start; gap:14px;
    padding:16px 0;
    border-bottom:1px solid var(--line);
  }
  .contact-line:last-child{border-bottom:none;}
  .contact-line .label{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:0.06em;
    color:var(--brass-bright);
    text-transform:uppercase;
    min-width:88px;
    padding-top:2px;
  }
  .contact-line .val{font-size:16px; color:var(--cream); line-height:1.5;}
  .contact-line .val a{color:var(--brass-bright); font-weight:600;}
  .map-frame{
    width:100%; height:100%; min-height:340px;
    border:1px solid var(--line);
    border-radius:3px;
    overflow:hidden;
  }
  .map-frame iframe{width:100%; height:100%; min-height:340px; border:0; filter:grayscale(0.15) contrast(1.05);}
  .big-cta{
    margin-top:28px;
    display:flex; gap:14px; flex-wrap:wrap;
  }

  /* ---------- FOOTER ---------- */
  footer{
    background:var(--panel);
    color:rgba(247,241,228,0.62);
    padding:30px 0;
    border-top:1px solid var(--line);
    font-size:13px;
  }
  .foot-grid{
    display:flex; justify-content:space-between; align-items:center;
    flex-wrap:wrap; gap:12px;
  }
  .foot-grid .brand{font-size:16px;}

  /* ---------- STICKY MOBILE CALL BAR ---------- */
  .sticky-call{
    position:fixed; left:0; right:0; bottom:0; z-index:60;
    display:none;
    background:var(--ink);
    border-top:1px solid var(--line);
    padding:10px 16px;
    gap:10px;
  }
  .sticky-call a{
    flex:1;
    text-align:center;
    font-family:var(--mono);
    font-size:13px;
    padding:12px;
    border-radius:3px;
    font-weight:600;
  }
  .sticky-call .c1{background:var(--rust); color:var(--cream);}
  .sticky-call .c2{background:var(--brass); color:var(--ink);}

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:860px){
    .nav-links{display:none;}
    .hero-grid{grid-template-columns:1fr; gap:36px; padding-bottom:40px;}
    .door-scene{max-width:420px; margin:0 auto;}
    .stats-grid{grid-template-columns:repeat(2,1fr);}
    .stat-item{border-bottom:1px solid var(--line);}
    .trust-grid{grid-template-columns:1fr;}
    .service-grid{grid-template-columns:1fr;}
    .gallery-grid{grid-template-columns:1fr 1fr; grid-template-rows:repeat(5, 190px);}
    .video-grid{grid-template-columns:1fr;}
    .video-card.tall{max-height:none;}
    .video-card.tall video{max-height:420px;}
    .process-grid{grid-template-columns:1fr 1fr; row-gap:32px;}
    .founder-grid{grid-template-columns:1fr;}
    .contact-grid{grid-template-columns:1fr;}
    .nav{padding:14px 20px;}
    .wrap{padding:0 20px;}
    body{padding-bottom:64px;}
    .sticky-call{display:flex;}
  }
  @media (prefers-reduced-motion: reduce){
    .door-panel{animation:none; transform:rotateY(-108deg);}
    .door-hint{animation:none; opacity:1;}
    .reveal, .reveal-stagger > *{opacity:1; transform:none; transition:none;}
  }