:root{
    --ink: #0B1F16;        /* near-black green, base background */
    --verdigris: #3C7A5A;  /* aged copper-green, primary accent */
    --moss: #24402F;       /* card / panel green */
    --sage: #8FA88F;       /* muted secondary text */
    --ivory: #F1EEE2;      /* pale parchment white */
    --acid: #7FE0A6;       /* rare bright accent, used sparingly */
    --rust: #C97B6A;       /* muted rust, used only for the invalid-code state */
    --line: rgba(241,238,226,0.14);
  }

  * { box-sizing: border-box; }

  html { scroll-behavior: smooth; }

  body{
    margin:0;
    background:var(--ink);
    color:var(--ivory);
    font-family:'IBM Plex Mono', monospace;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3, .display{
    font-family:'Cormorant Garamond', serif;
    font-weight:500;
    letter-spacing:0.01em;
  }

  a { color:inherit; }

  ::selection{ background:var(--verdigris); color:var(--ink); }

  .wrap{
    max-width:1080px;
    margin:0 auto;
    padding:0 32px;
  }

  /* ---------- NAV ---------- */
  nav{
    position:sticky; top:0; z-index:50;
    background:rgba(11,31,22,0.86);
    backdrop-filter: blur(8px);
    border-bottom:1px solid var(--line);
  }
  nav .wrap{
    display:flex; align-items:center; justify-content:space-between;
    padding-top:18px; padding-bottom:18px;
  }
  .brand{
    display:flex; align-items:center; gap:10px;
    font-family:'Cormorant Garamond', serif;
    font-size:1.5rem;
    letter-spacing:0.04em;
  }
  .brand .mark{
    width:20px; height:20px;
    border:1px solid var(--acid);
    border-radius:50%;
    position:relative;
    flex-shrink:0;
  }
  .brand .mark::after{
    content:"";
    position:absolute; inset:5px;
    background:var(--acid);
    border-radius:50%;
    opacity:0.85;
  }
  .nav-links{
    display:flex; gap:32px;
    font-size:0.78rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--sage);
  }
  .nav-links a{ text-decoration:none; transition:color .2s; }
  .nav-links a:hover{ color:var(--ivory); }
  .nav-links a:focus-visible, button:focus-visible, input:focus-visible{
    outline:2px solid var(--acid);
    outline-offset:3px;
  }
  @media (max-width:720px){ .nav-links{ display:none; } }

  /* ---------- HERO ---------- */
  .hero{
    padding:120px 0 100px;
    position:relative;
    overflow:hidden;
    border-bottom:1px solid var(--line);
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background:
      radial-gradient(ellipse 700px 400px at 15% -10%, rgba(60,122,90,0.35), transparent 60%),
      radial-gradient(ellipse 500px 500px at 100% 10%, rgba(127,224,166,0.08), transparent 60%);
    pointer-events:none;
  }
  .eyebrow{
    font-size:0.72rem;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--acid);
    display:flex; align-items:center; gap:10px;
    margin-bottom:28px;
    opacity:0;
    animation: rise .8s ease forwards .1s;
  }
  .eyebrow::before{
    content:""; display:inline-block;
    width:28px; height:1px; background:var(--acid);
  }
  .hero h1{
    font-size:clamp(2.6rem, 6vw, 4.6rem);
    line-height:1.05;
    max-width:820px;
    margin:0 0 28px;
    opacity:0;
    animation: rise .9s ease forwards .25s;
  }
  .hero h1 em{
    font-style:italic;
    color:var(--verdigris);
    -webkit-text-stroke: 0.4px var(--acid);
  }
  .hero p.lede{
    font-family:'IBM Plex Mono', monospace;
    color:var(--sage);
    max-width:520px;
    font-size:1rem;
    line-height:1.7;
    margin:0 0 44px;
    opacity:0;
    animation: rise .9s ease forwards .4s;
  }

  @keyframes rise{
    from{ opacity:0; transform:translateY(14px); }
    to{ opacity:1; transform:translateY(0); }
  }

  /* ---------- INVITE FORM (signature element) ---------- */
  .ledger-entry{
    max-width:520px;
    opacity:0;
    animation: rise .9s ease forwards .55s;
  }
  .ledger-label{
    font-size:0.7rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--sage);
    margin-bottom:10px;
    display:flex;
    justify-content:space-between;
  }
  .ledger-label span:last-child{ color:rgba(143,168,143,0.5); }

  .invite-row{
    display:flex;
    border:1px solid var(--verdigris);
    background:rgba(36,64,47,0.4);
    transition: border-color .25s, box-shadow .25s;
  }
  .invite-row:focus-within{
    border-color:var(--acid);
    box-shadow: 0 0 0 3px rgba(127,224,166,0.12);
  }
  .invite-row input{
    flex:1;
    background:transparent;
    border:0;
    padding:16px 18px;
    color:var(--ivory);
    font-family:'IBM Plex Mono', monospace;
    font-size:0.92rem;
    letter-spacing:0.06em;
  }
  .invite-row input::placeholder{ color:rgba(241,238,226,0.32); }
  .invite-row button{
    background:var(--acid);
    color:var(--ink);
    border:0;
    padding:0 26px;
    font-family:'IBM Plex Mono', monospace;
    font-weight:500;
    font-size:0.82rem;
    letter-spacing:0.06em;
    text-transform:uppercase;
    cursor:pointer;
    transition: background .2s;
  }
  .invite-row button:hover{ background:#9CF0BE; }

  .hero-foot-note{
    margin-top:16px;
    font-size:0.76rem;
    color:rgba(143,168,143,0.75);
  }

  /* ---------- SECTION SHARED ---------- */
  section{ padding:96px 0; border-bottom:1px solid var(--line); }
  .section-head{ margin-bottom:56px; max-width:620px; }
  .section-head .eyebrow{ animation:none; opacity:1; }
  .section-head h2{
    font-size:clamp(1.9rem, 3.4vw, 2.6rem);
    margin:0 0 16px;
  }
  .section-head p{
    color:var(--sage);
    line-height:1.7;
    font-size:0.95rem;
    margin:0;
  }

  /* ---------- PROVISIONS (features as ledger clauses) ---------- */
  .clauses{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    border-top:1px solid var(--line);
    border-left:1px solid var(--line);
  }
  @media (max-width:820px){ .clauses{ grid-template-columns:1fr; } }
  .clause{
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:36px 30px;
    position:relative;
  }
  .clause .num{
    font-family:'Cormorant Garamond', serif;
    font-style:italic;
    font-size:0.95rem;
    color:var(--verdigris);
    display:block;
    margin-bottom:18px;
  }
  .clause h3{
    font-size:1.4rem;
    margin:0 0 12px;
  }
  .clause p{
    color:var(--sage);
    font-size:0.88rem;
    line-height:1.65;
    margin:0;
  }

  /* ---------- LEDGER OF THE INVITED ---------- */
  .ledger-book{
    background:var(--moss);
    border:1px solid var(--line);
    padding:0;
    overflow:hidden;
  }
  .ledger-book-head{
    display:flex; justify-content:space-between; align-items:center;
    padding:22px 28px;
    border-bottom:1px solid var(--line);
    font-size:0.72rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--sage);
  }
  .ledger-book-head .dot{
    width:7px; height:7px; border-radius:50%;
    background:var(--acid);
    display:inline-block;
    margin-right:8px;
    box-shadow:0 0 8px var(--acid);
  }
  .ledger-rows{ }
  .ledger-row{
    display:grid;
    grid-template-columns:70px 1fr 140px 110px;
    gap:16px;
    padding:14px 28px;
    border-bottom:1px solid var(--line);
    font-size:0.82rem;
    align-items:center;
    color:var(--sage);
  }
  .ledger-row:last-child{ border-bottom:none; }
  .ledger-row .idx{ color:rgba(143,168,143,0.5); }
  .ledger-row .who{ color:var(--ivory); }
  .ledger-row .redacted{
    background:repeating-linear-gradient(45deg, rgba(143,168,143,0.25), rgba(143,168,143,0.25) 3px, transparent 3px, transparent 6px);
    color:transparent;
    border-radius:2px;
    user-select:none;
  }
  .status-approved{ color:var(--acid); }
  .status-pending{ color:var(--sage); }
  @media (max-width:640px){
    .ledger-row{ grid-template-columns:40px 1fr 90px; }
    .ledger-row .col-date{ display:none; }
  }

  /* ---------- PROVENANCE / STATS STRIP ---------- */
  .strip{
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:32px;
    padding:56px 0;
  }
  .stat{ min-width:140px; }
  .stat .big{
    font-family:'Cormorant Garamond', serif;
    font-size:2.6rem;
    color:var(--acid);
    display:block;
    line-height:1;
    margin-bottom:8px;
  }
  .stat .lbl{
    font-size:0.72rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--sage);
  }

  /* ---------- CLOSING CTA ---------- */
  .closing{
    text-align:center;
    padding:110px 0;
  }
  .closing h2{
    font-size:clamp(2rem, 4.2vw, 3.2rem);
    max-width:640px;
    margin:0 auto 24px;
  }
  .closing p{
    color:var(--sage);
    max-width:440px;
    margin:0 auto 40px;
    font-size:0.95rem;
    line-height:1.7;
  }
  .closing .invite-row{ max-width:480px; margin:0 auto; }

  footer{
    padding:40px 0;
    font-size:0.74rem;
    color:rgba(143,168,143,0.6);
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  }
  footer a{ text-decoration:none; color:rgba(143,168,143,0.6); }
  footer a:hover{ color:var(--ivory); }

  @media (prefers-reduced-motion: reduce){
    .eyebrow, .hero h1, .hero p.lede, .ledger-entry{
      animation:none !important; opacity:1 !important; transform:none !important;
    }
    html{ scroll-behavior:auto; }
  }

  /* ---------- INVITE CODE: INVALID STATE ---------- */
  .invite-row.invalid{
    border-color:var(--rust);
  }
  .invite-row.invalid:focus-within{
    border-color:var(--rust);
    box-shadow: 0 0 0 3px rgba(201,123,106,0.16);
  }
  .invite-error{
    min-height:20px;
    margin-top:10px;
    font-size:0.78rem;
    letter-spacing:0.04em;
    color:var(--rust);
  }
  .invite-row.shake{
    animation: shake 0.4s ease;
  }
  @keyframes shake{
    10%, 90% { transform: translateX(-1px); }
    20%, 80% { transform: translateX(2px); }
    30%, 50%, 70% { transform: translateX(-4px); }
    40%, 60% { transform: translateX(4px); }
  }
  @media (prefers-reduced-motion: reduce){
    .invite-row.shake{ animation:none; }
  }

  /* ---------- INNER PAGES (privacy / terms / status) ---------- */
  .wrap-narrow{ max-width:760px; }

  .page-hero{
    padding:80px 0 56px;
    border-bottom:1px solid var(--line);
  }
  .page-hero h1{
    font-size:clamp(2.2rem, 4.6vw, 3.2rem);
    margin:0 0 12px;
  }
  .page-hero .lede{
    color:var(--sage);
    font-family:'IBM Plex Mono', monospace;
    font-size:0.95rem;
    max-width:560px;
    margin:0;
  }

  .page-body{ padding:64px 0 100px; }

  .prose{
    font-size:0.95rem;
    line-height:1.8;
    color:var(--ivory);
  }
  .prose h2{
    font-size:1.5rem;
    margin:2.2em 0 0.6em;
    color:var(--ivory);
  }
  .prose h2:first-child{ margin-top:0; }
  .prose h3{
    font-size:1.15rem;
    margin:1.8em 0 0.5em;
    color:var(--verdigris);
  }
  .prose p{ color:var(--sage); margin:0 0 1.2em; }
  .prose strong{ color:var(--ivory); }
  .prose a{ color:var(--acid); text-decoration:underline; text-underline-offset:3px; }
  .prose ul, .prose ol{ color:var(--sage); padding-left:1.3em; margin:0 0 1.2em; }
  .prose li{ margin-bottom:0.5em; }
  .prose hr{ border:none; border-top:1px solid var(--line); margin:2.5em 0; }
  .prose code{
    font-family:'IBM Plex Mono', monospace;
    background:rgba(60,122,90,0.18);
    padding:0.15em 0.4em;
    border-radius:3px;
    font-size:0.88em;
  }
  .prose blockquote{
    border-left:2px solid var(--verdigris);
    margin:1.5em 0;
    padding:0.2em 0 0.2em 1.2em;
    color:var(--sage);
    font-style:italic;
  }

  /* ---------- STATUS DASHBOARD ---------- */
  .status-grid{
    border-top:1px solid var(--line);
    border-left:1px solid var(--line);
    display:grid;
    grid-template-columns:repeat(2, 1fr);
  }
  @media (max-width:640px){ .status-grid{ grid-template-columns:1fr; } }
  .status-item{
    border-right:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:24px 28px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
  }
  .status-item .name{
    font-size:0.92rem;
    color:var(--ivory);
  }
  .status-item .name small{
    display:block;
    color:var(--sage);
    font-size:0.76rem;
    margin-top:4px;
  }
  .status-pill{
    display:inline-flex;
    align-items:center;
    gap:7px;
    font-size:0.72rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    padding:6px 12px;
    border:1px solid rgba(127,224,166,0.35);
    border-radius:999px;
    color:var(--acid);
    white-space:nowrap;
  }
  .status-pill::before{
    content:"";
    width:6px; height:6px;
    border-radius:50%;
    background:var(--acid);
    box-shadow:0 0 6px var(--acid);
    display:inline-block;
  }
  .status-note{
    margin-top:40px;
    padding:20px 24px;
    border:1px solid var(--line);
    background:var(--moss);
    font-size:0.85rem;
    color:var(--sage);
    line-height:1.7;
  }
