:root{
    --ink:#0F1A2B;
    --ink-soft:#525C6B;
    --paper:#F2F3F6;
    --paper-deep:#E7E9EE;
    --panel:#FFFFFF;
    --line:#D4D8E0;
    --bronze:#B8863E;
    --bronze-soft:#E4D2B2;
    --teal:#2C6459;
    --radius:2px;
    --maxw:1180px;
    --ease:cubic-bezier(.22,.61,.36,1);
  }

  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Inter',sans-serif;
    background:var(--paper);
    color:var(--ink);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img,svg{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  ul{list-style:none;}

  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}

  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--bronze);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:18px;height:1px;
    background:var(--bronze);
    display:inline-block;
  }

  h1,h2,h3{
    font-family:'Fraunces',serif;
    font-weight:600;
    letter-spacing:-.01em;
    color:var(--ink);
  }

  .btn{
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:14px;
    letter-spacing:.01em;
    padding:14px 26px;
    border-radius:var(--radius);
    display:inline-flex;
    align-items:center;
    gap:10px;
    transition:transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
    border:1px solid transparent;
    cursor:pointer;
  }
  .btn-primary{background:var(--ink);color:var(--paper);}
  .btn-primary:hover{background:var(--bronze);transform:translateY(-2px);}
  .btn-ghost{border-color:var(--line);color:var(--ink);}
  .btn-ghost:hover{border-color:var(--ink);transform:translateY(-2px);}
  .btn:focus-visible{outline:2px solid var(--bronze);outline-offset:3px;}

  /* ---------- HEADER ---------- */
  header{
    position:sticky;top:0;z-index:50;
    background:rgba(242,243,246,.86);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    display:flex;align-items:center;justify-content:space-between;
    padding:20px 32px;
    max-width:var(--maxw);margin:0 auto;
  }
  .logo{
    font-family:'Fraunces',serif;
    font-weight:600;
    font-size:20px;
    letter-spacing:-.01em;
    display:flex;align-items:center;gap:10px;
  }
  .logo .mark{
    width:9px;height:9px;
    background:var(--bronze);
    display:inline-block;
    border-radius:1px;
  }
  .nav-links{display:flex;gap:36px;align-items:center;}
  .nav-links a{
    font-size:14px;font-weight:500;color:var(--ink-soft);
    position:relative;padding:4px 0;
    transition:color .2s var(--ease);
  }
  .nav-links a::after{
    content:"";position:absolute;left:0;bottom:0;height:1px;width:0;
    background:var(--bronze);transition:width .25s var(--ease);
  }
  .nav-links a:hover{color:var(--ink);}
  .nav-links a:hover::after{width:100%;}
  .nav-cta{display:flex;align-items:center;gap:28px;}
  .nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;}
  .nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0;transition:transform .25s var(--ease), opacity .25s var(--ease);}

  /* ---------- HERO ---------- */
  .hero{
    padding:110px 0 90px;
    position:relative;
    overflow:hidden;
  }
  .hero-grid{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:48px;
    align-items:center;
  }
  .hero h1{
    font-size:clamp(38px,5.4vw,64px);
    line-height:1.05;
    margin:22px 0 24px;
  }
  .hero h1 em{
    font-style:italic;
    color:var(--bronze);
  }
  .hero p.lede{
    font-size:18px;
    color:var(--ink-soft);
    max-width:480px;
    margin-bottom:36px;
  }
  .hero-actions{display:flex;gap:16px;flex-wrap:wrap;}

  .hero-art{position:relative;aspect-ratio:1/1;max-width:480px;justify-self:end;}
  .hero-art svg{width:100%;height:100%;}
  .node-line{
    stroke:var(--line);
    stroke-width:1.4;
    fill:none;
    stroke-dasharray:6 520;
    stroke-dashoffset:6;
    animation:draw 2.4s var(--ease) forwards;
  }
  .node-line.accent{stroke:var(--bronze);}
  .node-dot{fill:var(--ink);opacity:0;animation:appear .4s var(--ease) forwards;}
  .node-dot.accent{fill:var(--bronze);}
  @keyframes draw{to{stroke-dashoffset:0;stroke-dasharray:1000 1000;}}
  @keyframes appear{to{opacity:1;}}

  .hero-foot{
    margin-top:64px;
    display:flex;gap:40px;
    flex-wrap:wrap;
    border-top:1px solid var(--line);
    padding-top:28px;
  }
  .hero-foot .item{font-size:13px;color:var(--ink-soft);max-width:220px;}
  .hero-foot .item strong{display:block;color:var(--ink);font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;}

  /* ---------- SECTION shared ---------- */
  section{padding:110px 0;}
  .section-head{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px;
    margin-bottom:64px;
    align-items:end;
  }
  .section-head h2{font-size:clamp(30px,3.6vw,42px);margin-top:18px;line-height:1.12;}
  .section-head .desc{color:var(--ink-soft);font-size:16px;max-width:420px;}

  .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease), transform .7s var(--ease);}
  .reveal.is-visible{opacity:1;transform:translateY(0);}

  /* ---------- ABOUT ---------- */
  .about{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
  .pillar{background:var(--panel);padding:32px;}
  .pillar .num{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--bronze);letter-spacing:.1em;}
  .pillar h3{font-size:19px;margin:14px 0 10px;font-weight:600;}
  .pillar p{font-size:14.5px;color:var(--ink-soft);}

  /* ---------- LEDGER / SERVICES ---------- */
  .ledger{border-top:1px solid var(--ink);}
  .ledger-row{
    display:grid;
    grid-template-columns:90px 70px 1.1fr 1.6fr 40px;
    align-items:center;
    gap:24px;
    padding:30px 0;
    border-bottom:1px solid var(--line);
    position:relative;
    transition:padding-left .3s var(--ease), background .3s var(--ease);
  }
  .ledger-row:hover{background:var(--panel);padding-left:14px;}
  .ledger-row::before{
    content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
    background:var(--bronze);transform:scaleY(0);transition:transform .3s var(--ease);
    transform-origin:center;
  }
  .ledger-row:hover::before{transform:scaleY(1);}
  .ledger-code{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.08em;color:var(--ink-soft);}
  .ledger-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;}
  .ledger-icon svg{width:16px;height:16px;stroke:var(--ink);}
  .ledger-title h3{font-size:20px;font-weight:600;}
  .ledger-desc{color:var(--ink-soft);font-size:15px;}
  .ledger-arrow{width:16px;height:16px;opacity:0;transform:translateX(-6px);transition:all .3s var(--ease);}
  .ledger-row:hover .ledger-arrow{opacity:1;transform:translateX(0);}
  .ledger-arrow svg{stroke:var(--bronze);}

  /* ---------- APPROACH ---------- */
  .approach{background:var(--ink);color:var(--paper);}
  .approach .eyebrow{color:var(--bronze-soft);}
  .approach .section-head h2{color:var(--paper);}
  .approach .section-head .desc{color:#AEB7C5;}
  .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);}
  .step{background:var(--ink);padding:34px 28px;position:relative;}
  .step .step-num{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--bronze-soft);}
  .step h3{color:var(--paper);font-size:19px;margin:18px 0 10px;font-weight:600;}
  .step p{color:#AEB7C5;font-size:14px;}
  .step:not(:last-child)::after{
    content:"";position:absolute;right:-1px;top:34px;bottom:34px;width:1px;
  }

  /* ---------- CTA ---------- */
  .cta{
    background:linear-gradient(135deg,var(--ink) 0%, #16263F 100%);
    color:var(--paper);
    border-radius:6px;
    padding:72px 64px;
    margin:0 auto;
    max-width:var(--maxw);
    display:grid;
    grid-template-columns:1.3fr 1fr;
    gap:40px;
    align-items:center;
    position:relative;
    overflow:hidden;
  }
  .cta::before{
    content:"";position:absolute;inset:0;
    background:radial-gradient(circle at 85% 20%, rgba(184,134,62,.22), transparent 60%);
  }
  .cta h2{color:var(--paper);font-size:clamp(28px,3.4vw,38px);margin:16px 0 16px;position:relative;}
  .cta p{color:#AEB7C5;max-width:420px;position:relative;}
  .cta-actions{display:flex;flex-direction:column;gap:14px;position:relative;}
  .cta .btn-primary{background:var(--bronze);color:var(--ink);justify-content:center;}
  .cta .btn-primary:hover{background:var(--bronze-soft);}
  .cta .btn-ghost{border-color:rgba(255,255,255,.3);color:var(--paper);justify-content:center;}
  .cta .btn-ghost:hover{border-color:var(--paper);}
  .cta-meta{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#AEB7C5;position:relative;}

  /* ---------- FOOTER ---------- */
  footer{padding:64px 0 40px;border-top:1px solid var(--line);margin-top:60px;}
  .footer-grid{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:32px;}
  .footer-links{display:flex;gap:32px;flex-wrap:wrap;}
  .footer-links a{font-size:14px;color:var(--ink-soft);}
  .footer-links a:hover{color:var(--ink);}
  .footer-bottom{margin-top:48px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--ink-soft);border-top:1px solid var(--line);padding-top:24px;}

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:900px){
    .nav-links{display:none;}
    .nav-toggle{display:block;}
    .hero-grid{grid-template-columns:1fr;}
    .hero-art{justify-self:center;margin-top:20px;max-width:340px;}
    .section-head{grid-template-columns:1fr;}
    .pillars{grid-template-columns:1fr;}
    .ledger-row{grid-template-columns:60px 50px 1fr;row-gap:10px;}
    .ledger-desc{grid-column:2/4;}
    .ledger-arrow{display:none;}
    .steps{grid-template-columns:1fr;}
    .cta{grid-template-columns:1fr;padding:48px 28px;}
  }
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.001s !important;transition-duration:.001s !important;}
    html{scroll-behavior:auto;}
  }