  :root{
    --paper:#FFFFFF;
    --paper-2:#F4F3EF;
    --card:#FFFFFF;
    --ink:#18140F;
    --ink-soft:#4A443A;
    --stone:#55503F;
    --line:#CDC3AE;
    --line-soft:#DEd6c4;
    --bronze:#8A6A38;
    --bronze-strong:#6E5228;
    --rust:#7C3D28;
    --focus:#2E5AAC;
    --ok:#3E6B4B;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --paper:#15130F;
      --paper-2:#1C1912;
      --card:#1F1B15;
      --ink:#ECE5D6;
      --ink-soft:#C7BFAC;
      --stone:#9C9480;
      --line:#3E3728;
      --line-soft:#2A251A;
      --bronze:#CDA968;
      --bronze-strong:#E2C083;
      --rust:#D7825C;
    }
  }
  :root[data-theme="dark"]{
    --paper:#15130F; --paper-2:#1C1912; --card:#1F1B15;
    --ink:#ECE5D6; --ink-soft:#C7BFAC; --stone:#9C9480;
    --line:#3E3728; --line-soft:#2A251A; --bronze:#CDA968; --bronze-strong:#E2C083; --rust:#D7825C;
  }

  *{box-sizing:border-box;}
  html{-webkit-font-smoothing:antialiased; scroll-behavior:smooth; overscroll-behavior-y:none;}
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:"Work Sans", ui-sans-serif, system-ui, sans-serif;
    padding-inline: clamp(18px, 4vw, 64px);
    overscroll-behavior-y:none;
  }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }
  a{ color:inherit; }
  img{ max-width:100%; display:block; }
  .mono{ font-family:"IBM Plex Mono", ui-monospace, monospace; }
  .label{ font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:12.5px; font-weight:500; letter-spacing:0.12em; text-transform:uppercase; color:var(--stone); }
  h1,h2,h3{ font-family:"Fraunces", Georgia, serif; font-weight:700; line-height:1.05; text-wrap:balance; margin:0; }
  p{ line-height:1.7; margin:0; }
  .measure{ max-width:60ch; }
  button{ font-family:inherit; }
  ::selection{ background:var(--bronze); color:var(--paper); }
  a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible{
    outline:2px solid var(--focus); outline-offset:2px;
  }

  .site{ max-width:1220px; margin:0 auto; position:relative; }
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:0.08em; text-transform:uppercase;
    padding:14px 22px; border:1px solid var(--ink); text-decoration:none; cursor:pointer;
    background:transparent; color:var(--ink); transition:background 160ms ease, color 160ms ease;
  }
  .btn:hover{ background:var(--ink); color:var(--paper); }
  .btn.solid{ background:var(--ink); color:var(--paper); }
  .btn.solid:hover{ background:var(--bronze-strong); border-color:var(--bronze-strong); color:#fff; }
  .btn.ghost{ border-color:var(--line); color:var(--ink-soft); }
  .btn.ghost:hover{ background:var(--ink-soft); color:var(--paper); border-color:var(--ink-soft); }

  /* ---------- nav ---------- */
  header.top{
    position:sticky; top:0; z-index:80; display:flex; align-items:center; justify-content:space-between; gap:20px;
    margin-inline: clamp(-18px,-4vw,-64px);
    padding-inline: clamp(18px,4vw,64px);
    padding-block:14px; background:var(--paper);
    border-bottom:1px solid var(--line); transition:padding-block 200ms ease;
  }
  .wordmark{ display:flex; align-items:center; gap:12px; text-decoration:none; flex:none; }
  .wordmark .logo-badge{ width:38px; height:38px; border-radius:50%; border:1px solid var(--line); }
  .wordmark .full{ font-family:"IBM Plex Mono", monospace; font-size:11px; letter-spacing:0.07em; color:var(--ink); text-transform:uppercase; line-height:1.3; }
  .wordmark .full small{ display:block; color:var(--stone); font-size:9.5px; letter-spacing:0.1em; margin-top:2px; }
  nav.primary{ display:flex; align-items:center; gap:clamp(12px,2.4vw,26px); }
  nav.primary a{ font-family:"IBM Plex Mono", monospace; font-size:12px; font-weight:500; letter-spacing:0.06em; text-transform:uppercase; text-decoration:none; color:var(--ink); border-bottom:1px solid transparent; padding-bottom:2px; }
  nav.primary a:hover{ color:var(--bronze-strong); border-color:var(--bronze-strong); }
  .nav-right{ display:flex; align-items:center; gap:16px; }
  .menu-toggle{ display:none; background:none; border:1px solid var(--ink); padding:8px 10px; cursor:pointer; }
  .menu-toggle span{ display:block; width:18px; height:1.5px; background:var(--ink); margin:4px 0; }
  @media (max-width:1360px){
    nav.primary{ display:none; }
    header.top .nav-cta{ display:none; }
    .menu-toggle{ display:block; }
  }
  @media (max-width:480px){
    header.top{ gap:10px; }
    .wordmark{ flex:1 1 auto; min-width:0; gap:8px; }
    .wordmark .logo-badge{ width:30px; height:30px; flex:none; }
    .wordmark .full{ font-size:9.5px; line-height:1.3; }
    .wordmark .full small{ display:none; }
    .nav-right{ gap:8px; }
  }
  #mobileNav{
    position:fixed; inset:0; z-index:90; background:var(--paper); padding:20px clamp(18px,4vw,64px);
    display:none; flex-direction:column; gap:2px;
  }
  #mobileNav.open{ display:flex; }
  #mobileNav{ overflow-y:auto; }
  #mobileNav .mrow{ display:flex; justify-content:space-between; align-items:center; padding-block:14px; flex:none; }
  #mobileNav a{ font-family:"Fraunces",serif; font-size:26px; text-decoration:none; color:var(--ink); }
  #mobileNav .close{ background:none; border:none; font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:0.1em; text-transform:uppercase; cursor:pointer; color:var(--ink); }
  #mobileNav hr{ border:none; border-top:1px solid var(--line); margin:0; flex:none; }
  #mobileNav a.mtoggle{ display:flex; justify-content:space-between; align-items:center; width:100%; gap:12px; }
  #mobileNav a.mtoggle .caret{ font-family:"IBM Plex Mono",monospace; font-size:16px; color:var(--stone); transition:transform 200ms ease; flex:none; }
  #mobileNav a.mtoggle[aria-expanded="true"] .caret{ transform:rotate(180deg); }
  #mobileNav .msub-wrap{ max-height:0; overflow:hidden; transition:max-height 260ms ease; flex:none; }
  #mobileNav .msub-wrap .mrow-sub{ padding-block:11px; padding-left:14px; }
  #mobileNav .msub-wrap .mrow-sub a{ font-size:19px; color:var(--ink-soft); }
  #mobileNav a.btn{ font-size:12px; color:var(--ink); }
  #mobileNav a.btn.solid{ color:var(--paper); }
  #mobileNav a.btn.solid:hover{ color:#fff; }

  section{ padding-block: clamp(52px,8vw,104px); border-top:1px solid var(--line); }
  section.hero, section.first{ border-top:none; }
  .section-head{ display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:clamp(30px,5vw,52px); flex-wrap:wrap; }
  .section-head h1,.section-head h2{ font-size:clamp(28px,4.2vw,44px); }
  .section-head .count{ font-family:"IBM Plex Mono",monospace; font-size:13.5px; font-weight:500; color:var(--stone); max-width:34ch; text-align:right; }
  .eyebrow{ display:flex; align-items:center; gap:10px; margin-bottom:16px; }
  .eyebrow .dot{ width:6px; height:6px; border-radius:50%; background:var(--bronze); flex:none; }

  /* ---------- hero ---------- */
  section.hero{
    margin-inline: clamp(-18px,-4vw,-64px);
    padding-inline: clamp(18px,4vw,64px);
    padding-block: clamp(90px,16vw,150px) clamp(48px,8vw,72px);
    position:relative; color:#F4EFE4;
    background:
      linear-gradient(180deg, rgba(15,13,10,0.25) 0%, rgba(15,13,10,0.55) 55%, rgba(15,13,10,0.92) 100%),
      url('images/shah_heights_1.jpg') center 30%/cover no-repeat;
  }
  .hero-inner{ max-width:1220px; margin:0 auto; }
  .hero .label{ color:#D9CEB4; }
  .hero .eyebrow .dot{ background:var(--bronze); }
  h1.thesis{ font-size:clamp(38px, 6.4vw, 78px); color:#FBF7EE; max-width:16ch; letter-spacing:-0.01em; }
  .hero-sub{ margin-top:22px; max-width:56ch; font-size:clamp(15.5px,1.6vw,18px); color:#E4DCC9; }
  .hero-ctas{ margin-top:clamp(28px,4vw,40px); display:flex; gap:14px; flex-wrap:wrap; }
  .hero .btn{ border-color:#F4EFE4; color:#F4EFE4; }
  .hero .btn:hover{ background:#F4EFE4; color:var(--ink); }
  .hero .btn.solid{ background:#D68F1E; border-color:#D68F1E; color:#1a1508; }
  .hero .btn.solid:hover{ background:#F4EFE4; color:var(--ink); }
  .scroll-cue{ margin-top:clamp(40px,7vw,72px); display:flex; align-items:center; gap:10px; color:#CBBF9F; font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; }
  .scroll-cue .line{ width:28px; height:1px; background:#CBBF9F; animation:pulse 2.2s ease-in-out infinite; }
  @keyframes pulse{ 0%,100%{opacity:.4;} 50%{opacity:1;} }

  /* ---------- intro ---------- */
  .intro{ display:grid; grid-template-columns: 1fr 0.9fr; gap:clamp(28px,6vw,64px); align-items:center; }
  @media (max-width:820px){ .intro{ grid-template-columns:1fr; } }
  .intro h2{ font-size:clamp(28px,4.4vw,42px); margin-bottom:20px; }
  .intro p{ color:var(--ink-soft); font-size:16.5px; }
  .intro img{ border:1px solid var(--line); aspect-ratio:4/5; object-fit:cover; width:100%; }

  /* ---------- services ---------- */
  .svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
  @media (max-width:860px){ .svc-grid{ grid-template-columns:1fr; } }
  .svc-card{ background:var(--card); padding:clamp(22px,3vw,32px); display:flex; flex-direction:column; }
  .svc-card img{ width:100%; aspect-ratio:4/3; object-fit:cover; margin-bottom:20px; border:1px solid var(--line); }
  .svc-card h3{ font-size:22px; margin-bottom:14px; }
  .svc-card ul{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
  .svc-card li{ font-size:13.5px; color:var(--ink-soft); padding-left:16px; position:relative; }
  .svc-card li::before{ content:"—"; position:absolute; left:0; color:var(--bronze); }

  /* ---------- filters + work grid ---------- */
  .filters{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:clamp(24px,4vw,36px); }
  .filter-btn{
    font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
    padding:9px 16px; border:1px solid var(--line); background:transparent; color:var(--ink-soft); cursor:pointer;
  }
  .filter-btn.active{ background:var(--ink); border-color:var(--ink); color:var(--paper); }
  .work-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,24px); }
  @media (max-width:960px){ .work-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:600px){ .work-grid{ grid-template-columns:1fr; } }
  .work-card{ cursor:pointer; border:1px solid var(--line); background:var(--card); overflow:hidden; display:flex; flex-direction:column; transition:transform 180ms ease; }
  .work-card:hover{ transform:translateY(-3px); }
  .work-card .thumb{ position:relative; aspect-ratio:4/3; overflow:hidden; }
  .work-card .thumb img{ width:100%; height:100%; object-fit:cover; transition:transform 400ms ease; }
  .work-card:hover .thumb img{ transform:scale(1.05); }
  .work-card .tag{ position:absolute; top:10px; left:10px; background:color-mix(in srgb, var(--ink) 78%, transparent); color:#F4EFE4; font-family:"IBM Plex Mono",monospace; font-size:9.5px; letter-spacing:0.08em; text-transform:uppercase; padding:4px 8px; }
  .work-card .body{ padding:16px 16px 18px; }
  .work-card h3{ font-size:18px; margin-bottom:6px; }
  .work-card .meta{ font-family:"IBM Plex Mono",monospace; font-size:12px; font-weight:500; color:var(--stone); text-transform:uppercase; letter-spacing:0.04em; }
  .work-empty{ padding-block:40px; text-align:center; color:var(--stone); font-family:"IBM Plex Mono",monospace; font-size:12px; }

  /* ---------- lightbox ---------- */
  #lightbox{ position:fixed; inset:0; z-index:100; background:color-mix(in srgb, #0B0906 92%, transparent); display:none; }
  #lightbox.open{ display:block; }
  .lb-wrap{ max-width:1180px; margin:0 auto; height:100%; display:flex; flex-direction:column; padding:clamp(14px,3vw,32px); }
  .lb-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; flex:none; }
  .lb-top .close{ background:none; border:1px solid #6a6252; color:#F4EFE4; font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; padding:8px 14px; cursor:pointer; }
  .lb-body{ flex:1; min-height:0; display:grid; grid-template-columns:1.4fr 1fr; gap:24px; overflow:hidden; }
  @media (max-width:820px){ .lb-body{ grid-template-columns:1fr; overflow:auto; } }
  .lb-gallery{ position:relative; background:#0B0906; display:flex; align-items:center; justify-content:center; overflow:hidden; }
  .lb-gallery img{ max-width:100%; max-height:70vh; object-fit:contain; }
  @media (max-width:820px){ .lb-gallery img{ max-height:46vh; } }
  .lb-nav{ position:absolute; top:50%; transform:translateY(-50%); background:color-mix(in srgb, #0B0906 60%, transparent); border:1px solid #6a6252; color:#F4EFE4; width:38px; height:38px; cursor:pointer; font-size:16px; }
  .lb-nav.prev{ left:10px; } .lb-nav.next{ right:10px; }
  .lb-thumbs{ display:flex; gap:6px; margin-top:10px; flex-wrap:wrap; }
  .lb-thumbs img{ width:52px; height:40px; object-fit:cover; cursor:pointer; opacity:.55; border:1px solid transparent; }
  .lb-thumbs img.active{ opacity:1; border-color:var(--bronze); }
  .lb-info{ overflow:auto; color:#F4EFE4; }
  .lb-info h3{ font-size:clamp(24px,3vw,32px); color:#FBF7EE; margin-bottom:14px; }
  .lb-info p{ color:#CFC6B2; font-size:15px; margin-bottom:18px; }
  .lb-spec{ display:grid; gap:9px; margin-bottom:22px; }
  .lb-spec div{ display:grid; grid-template-columns:110px 1fr; gap:10px; font-size:13px; }
  .lb-spec .k{ font-family:"IBM Plex Mono",monospace; color:#A79C82; text-transform:uppercase; font-size:11px; letter-spacing:0.05em; padding-top:1px; }
  .lb-info .prevnext{ display:flex; gap:10px; border-top:1px solid #3a3225; padding-top:16px; }
  .lb-info .prevnext button{ flex:1; background:none; border:1px solid #6a6252; color:#F4EFE4; font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; padding:12px; cursor:pointer; }

  /* ---------- process ---------- */
  .process-desk{ display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
  @media (max-width:900px){ .process-desk{ display:none; } }
  .proc-step{ background:var(--card); padding:24px 18px; min-height:220px; }
  .proc-step .n{ font-family:"IBM Plex Mono",monospace; color:var(--bronze); font-size:13px; }
  .proc-step h3{ font-size:17px; margin:14px 0 10px; }
  .proc-step p{ font-size:12.5px; color:var(--ink-soft); }
  .process-mobile{ display:none; }
  @media (max-width:900px){
    .process-mobile{ display:grid; gap:1px; background:var(--line); border:1px solid var(--line); }
    .process-mobile .proc-step{ display:grid; grid-template-columns:50px 1fr; gap:14px; min-height:0; }
  }

  /* ---------- calculator ---------- */
  .calc{ border:1px solid var(--ink); background:var(--card); padding:clamp(20px,4vw,40px); }
  .calc-grid{ display:grid; gap:clamp(24px,4vw,36px); }
  .calc-step .label{ margin-bottom:12px; }
  .pill-row{ display:flex; flex-wrap:wrap; gap:8px; }
  .pill{ font-family:"IBM Plex Mono",monospace; font-size:13px; font-weight:500; letter-spacing:0.03em; padding:11px 16px; border:1px solid var(--line); background:transparent; color:var(--ink); cursor:pointer; text-transform:uppercase; }
  .pill.active{ background:#FFFFFF; border-color:var(--bronze); color:var(--bronze-strong); font-weight:600; }
  .area-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
  @media (max-width:700px){ .area-grid{ grid-template-columns:repeat(2,1fr); } }
  .area-field label{ display:block; font-family:"IBM Plex Mono",monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:0.05em; color:var(--stone); margin-bottom:6px; }
  .area-field input, .area-field select{ width:100%; padding:10px 12px; border:1px solid var(--line); background:var(--paper); color:var(--ink); font-family:"IBM Plex Mono",monospace; font-size:14px; appearance:none; -webkit-appearance:none; }
  .area-field select{ background-image:linear-gradient(45deg,transparent 50%,var(--ink-soft) 50%),linear-gradient(135deg,var(--ink-soft) 50%,transparent 50%); background-position:calc(100% - 18px) center,calc(100% - 13px) center; background-size:5px 5px,5px 5px; background-repeat:no-repeat; }
  .calc-result{ margin-top:8px; border-top:1px solid var(--ink); padding-top:22px; }
  .calc-result .row{ display:flex; justify-content:space-between; padding-block:9px; border-bottom:1px solid var(--line); font-size:14px; }
  .calc-result .row .v{ font-family:"IBM Plex Mono",monospace; }
  .calc-note{ font-size:12.5px; color:var(--stone); margin-top:16px; max-width:60ch; }
  .rates-pending{ display:inline-block; font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:0.04em; color:var(--rust); border:1px solid var(--rust); padding:2px 8px; margin-top:2px; }
  .pkg-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:stretch; }
  .pkg-card{ border:1px solid var(--line); background:var(--card); padding:clamp(20px,3vw,30px); display:flex; flex-direction:column; }
  .pkg-card.featured{ border-color:var(--ink); box-shadow:0 12px 30px -14px rgba(0,0,0,0.25); position:relative; }
  .pkg-card h3{ font-size:20px; margin:8px 0 8px; }
  .pkg-sub{ font-size:13px; color:var(--ink-soft); margin-bottom:16px; min-height:38px; }
  .pkg-list{ list-style:none; margin:0 0 20px; padding:0; display:grid; gap:10px; flex:1; }
  .pkg-list li{ font-size:13.5px; padding-left:24px; position:relative; color:var(--ink-soft); }
  .pkg-list li.yes::before{ content:"✓"; position:absolute; left:0; color:var(--bronze-strong); font-weight:600; }
  .pkg-list li.no{ color:var(--stone); text-decoration:line-through; opacity:0.7; }
  .pkg-list li.no::before{ content:"—"; position:absolute; left:0; color:var(--stone); }
  .pkg-card .btn{ align-self:flex-start; }
  @media (max-width:900px){ .pkg-grid{ grid-template-columns:1fr; } }
  .visit-card{ border:1px solid var(--ink); background:var(--card); padding:clamp(24px,4vw,44px); display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(24px,4vw,48px); margin-top:32px; }
  .visit-info, .visit-form{ min-width:0; }
  .visit-info h3{ font-size:clamp(22px,3vw,30px); margin:10px 0 12px; font-family:"Fraunces",serif; }
  .visit-info p{ color:var(--ink-soft); font-size:14px; max-width:40ch; line-height:1.6; }
  .visit-form .area-field{ margin-bottom:0; }
  .area-field{ min-width:0; }
  .area-field input, .area-field select{ min-width:0; }
  @media (max-width:800px){ .visit-card{ grid-template-columns:1fr; } }
  @media (max-width:360px){ .visit-form .area-grid{ grid-template-columns:1fr !important; } }

  /* ---------- transparency ---------- */
  .trans-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,48px); }
  @media (max-width:700px){ .trans-grid{ grid-template-columns:1fr; } }
  .trans-col h3{ font-size:19px; margin-bottom:16px; }
  .trans-col ul{ list-style:none; margin:0 0 14px; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
  .trans-col li{ font-family:"IBM Plex Mono",monospace; font-size:13px; border:1px solid var(--line); padding:7px 12px; color:var(--ink); }
  .placeholder-note{ font-size:12.5px; color:var(--stone); font-style:italic; }

  /* ---------- timeline table ---------- */
  .tl-table{ border-top:1px solid var(--ink); }
  .tl-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; padding-block:16px; border-bottom:1px solid var(--line); align-items:center; }
  .tl-row .phase{ font-family:"Fraunces",serif; font-size:17px; }
  .tl-row .dur{ font-family:"IBM Plex Mono",monospace; font-size:13.5px; font-weight:500; color:var(--stone); text-align:right; }

  /* ---------- stats ---------- */
  .stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
  @media (max-width:700px){ .stats-grid{ grid-template-columns:repeat(2,1fr); } }
  .stat-tile{ background:var(--card); padding:clamp(20px,3vw,30px); text-align:center; }
  .stat-tile .num{ font-family:"Fraunces",serif; font-size:clamp(30px,4vw,44px); color:var(--bronze-strong); }
  .stat-tile .cap{ margin-top:6px; }

  /* ---------- testimonials / reviews ---------- */
  .test-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  @media (max-width:860px){ .test-grid{ grid-template-columns:1fr; } }
  .test-card{ border:1px solid var(--line); background:var(--card); padding:24px; display:flex; flex-direction:column; gap:16px; }
  .test-card q{ font-family:"Fraunces",serif; font-style:italic; font-size:17px; color:var(--ink-soft); }
  .test-who{ font-family:"IBM Plex Mono",monospace; font-size:12.5px; font-weight:500; color:var(--stone); text-transform:uppercase; }
  .review-strip{ display:flex; align-items:center; gap:28px; flex-wrap:wrap; border:1px solid var(--line); background:var(--card); padding:24px; }
  .review-strip .score{ font-family:"Fraunces",serif; font-size:40px; color:var(--bronze-strong); }
  .review-strip a{ color:var(--bronze-strong); text-decoration:underline; text-underline-offset:2px; }
  .review-strip a:hover{ color:var(--bronze); }

  /* ---------- about ---------- */
  .about-grid{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:clamp(28px,6vw,64px); }
  @media (max-width:800px){ .about-grid{ grid-template-columns:1fr; } }
  .about-grid p{ color:var(--ink-soft); font-size:16.5px; }
  .about-grid p + p{ margin-top:14px; }
  .founder{ margin-top:28px; display:flex; gap:16px; align-items:center; border-top:1px solid var(--line); padding-top:20px; }
  .founder .avatar{ width:56px; height:56px; border-radius:50%; border:1px solid var(--line); }
  .founder .name{ font-family:"Fraunces",serif; font-size:18px; }
  .founder .role{ font-family:"IBM Plex Mono",monospace; font-size:12.5px; font-weight:500; color:var(--stone); text-transform:uppercase; }

  /* ---------- social ---------- */
  .social-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
  @media (max-width:700px){ .social-grid{ grid-template-columns:1fr; } }
  .social-card{ background:var(--card); padding:26px; display:flex; justify-content:space-between; align-items:center; gap:14px; text-decoration:none; color:var(--ink); transition:background 160ms ease; }
  .social-card:hover{ background:var(--paper-2); }
  .social-card .name-row{ display:flex; align-items:center; gap:14px; min-width:0; }
  .social-card .icon-badge{ flex:none; width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--paper-2); color:var(--bronze-strong); }
  .social-card .icon-badge svg{ width:19px; height:19px; }
  .social-card .name{ font-family:"Fraunces",serif; font-size:20px; }
  .social-card .go{ font-family:"IBM Plex Mono",monospace; font-size:12.5px; font-weight:500; color:var(--bronze-strong); white-space:nowrap; }
  @media (max-width:480px){ .social-card{ flex-wrap:wrap; } .social-card .go{ font-size:11.5px; } }

  /* ---------- contact form ---------- */
  .contact-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(28px,5vw,56px); }
  @media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }
  .field{ margin-bottom:16px; }
  .field label{ display:block; font-family:"IBM Plex Mono",monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:0.05em; color:var(--stone); margin-bottom:6px; }
  .field input, .field select, .field textarea{
    width:100%; padding:12px 13px; border:1px solid var(--line); background:var(--card); color:var(--ink);
    font-family:"Work Sans", sans-serif; font-size:14.5px;
  }
  .field textarea{ resize:vertical; min-height:100px; }
  .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  @media (max-width:520px){ .field-row{ grid-template-columns:1fr; } }
  .stamp{ border:1px solid var(--ink); padding:22px; position:relative; }
  .stamp .corner{ position:absolute; width:9px; height:9px; border:1px solid var(--bronze); }
  .stamp .corner.tl{ top:-1px; left:-1px; border-right:none; border-bottom:none; }
  .stamp .corner.tr{ top:-1px; right:-1px; border-left:none; border-bottom:none; }
  .stamp .corner.bl{ bottom:-1px; left:-1px; border-right:none; border-top:none; }
  .stamp .corner.br{ bottom:-1px; right:-1px; border-left:none; border-top:none; }
  .stamp .addr{ font-family:"Fraunces",serif; font-size:19px; line-height:1.45; margin-top:10px; }
  .channels{ display:grid; gap:12px; margin-top:20px; }
  .channel{ display:flex; justify-content:space-between; align-items:center; padding-block:12px; border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink); }
  .channel .name{ font-family:"Fraunces",serif; font-size:17px; }
  .channel .go{ font-family:"IBM Plex Mono",monospace; font-size:13px; font-weight:500; color:var(--bronze-strong); }

  footer{ border-top:1px solid var(--line); padding-block:26px clamp(24px,5vw,40px); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-family:"IBM Plex Mono",monospace; font-size:12.5px; color:var(--stone); text-transform:uppercase; letter-spacing:0.04em; }
  footer .fcol{ display:flex; flex-direction:column; gap:8px; }
  footer a{ text-decoration:none; color:var(--stone); }
  footer a:hover{ color:var(--bronze-strong); }

  /* ---------- skip link ---------- */
  .skip-link{
    position:absolute; left:12px; top:-60px; z-index:200; background:var(--ink); color:var(--paper);
    padding:10px 16px; font-family:"IBM Plex Mono",monospace; font-size:12px; text-decoration:none; transition:top 160ms ease;
  }
  .skip-link:focus{ top:12px; }

  /* ---------- header scroll state ---------- */
  header.top.scrolled{ padding-block:8px; box-shadow:0 8px 24px -18px rgba(0,0,0,0.35); }
  header.top.scrolled .logo-badge{ width:32px; height:32px; }

  /* ---------- floating actions ---------- */
  .float-actions{ position:fixed; right:clamp(14px,3vw,28px); bottom:clamp(14px,3vw,28px); z-index:70; display:flex; flex-direction:column; gap:10px; align-items:flex-end; }
  .fab{ display:flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:50%; text-decoration:none; box-shadow:0 10px 24px -8px rgba(0,0,0,0.4); transition:transform 160ms ease; }
  .fab:hover{ transform:translateY(-2px); }
  .fab-wa{ background:#25D366; color:#0B0906; }
  .fab-top{ background:var(--ink); color:var(--paper); opacity:0; pointer-events:none; transform:translateY(8px); transition:opacity 200ms ease, transform 200ms ease; border:none; cursor:pointer; }
  .fab-top.visible{ opacity:1; pointer-events:auto; transform:translateY(0); }
  .fab svg{ width:24px; height:24px; }
  @media (max-width:480px){
    .float-actions{ right:12px; bottom:12px; gap:8px; }
    .fab{ width:44px; height:44px; }
    .fab svg{ width:20px; height:20px; }
  }

  /* ---------- scroll reveal (never hides content; only a gentle rise) ---------- */
  .reveal{ transform:translateY(16px); transition:transform 600ms cubic-bezier(.2,.7,.2,1); }
  .reveal.in{ transform:translateY(0); }
  @media (prefers-reduced-motion: reduce){ .reveal{ transform:none; transition:none; } }

  /* ---------- FAQ ---------- */
  .faq-list{ border-top:1px solid var(--ink); max-width:80ch; }
  .faq-item{ border-bottom:1px solid var(--line); }
  .faq-q{ width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:18px 0; display:flex; justify-content:space-between; align-items:center; gap:16px; color:var(--ink); font-family:"Fraunces",serif; font-size:17px; }
  .faq-q .plus{ font-family:"IBM Plex Mono",monospace; color:var(--bronze-strong); flex:none; transition:transform 160ms ease; }
  .faq-item[data-open="true"] .plus{ transform:rotate(45deg); }
  .faq-a{ overflow:hidden; max-height:0; transition:max-height 260ms ease; }
  .faq-a p{ padding-bottom:18px; color:var(--ink-soft); font-size:15px; max-width:68ch; }
  .faq-a p a{ color:var(--bronze-strong); text-decoration:underline; text-underline-offset:2px; }
  .faq-a p a:hover{ color:var(--bronze); }

  /* ---------- map ---------- */
  .map-wrap{ border:1px solid var(--line); margin-top:20px; }
  .map-wrap iframe{ width:100%; height:260px; border:0; display:block; filter:grayscale(0.15) contrast(1.05); }

  /* ---------- share ---------- */
  .share-row{ display:flex; gap:8px; flex-wrap:wrap; margin-top:18px; }
  .share-btn{ font-family:"IBM Plex Mono",monospace; font-size:12px; font-weight:500; letter-spacing:0.05em; text-transform:uppercase; padding:8px 12px; border:1px solid var(--line); color:var(--ink); text-decoration:none; }
  .share-btn:hover{ border-color:var(--bronze-strong); color:var(--bronze-strong); }

  /* ---------- nav dropdown (Tools) ---------- */
  .nav-drop{ position:relative; }
  .nav-drop-trigger{ display:inline-flex; align-items:center; gap:4px; cursor:pointer; }
  .nav-drop-trigger .caret{ font-size:10px; position:relative; top:1px; transition:transform 160ms ease; display:inline-block; }
  .nav-drop.open .nav-drop-trigger .caret{ transform:rotate(180deg); }
  .nav-drop-menu{
    position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px);
    width:260px; background:var(--card); border:1px solid var(--line);
    box-shadow:0 14px 30px rgba(0,0,0,0.14);
    padding:8px 0; z-index:95;
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity 160ms ease, transform 160ms ease, visibility 160ms;
  }
  .nav-drop-menu a{
    display:block; padding:9px 18px; font-family:"IBM Plex Mono",monospace; font-size:11.5px;
    font-weight:500; letter-spacing:0.04em; text-transform:none; color:var(--ink);
    text-decoration:none; border-bottom:none !important;
  }
  .nav-drop-menu a:hover{ background:var(--paper-2); color:var(--bronze-strong); }
  .nav-drop-menu a.nav-drop-all{
    margin-top:4px; border-top:1px solid var(--line); padding-top:12px;
    color:var(--bronze-strong); font-weight:600;
  }
  .nav-drop.open .nav-drop-menu{
    opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0);
  }
  @media (max-width:1360px){
    .nav-drop-menu{ display:none; }
  }
