  :root{
    --mist:#EEF3F0;        /* page paper */
    --mist-deep:#DEE8E2;   /* card fill */
    --sky:#C9D8D0;         /* hairlines, dividers */
    --pine:#16302B;        /* ink */
    --pine-hover:#22463F;  /* button hover */
    --pine-soft:#3E5A52;   /* secondary text */
    --board:#0E3B33;       /* departures board */
    --board-cream:#F6F1E3; /* board text */
    --board-dim:rgba(246,241,227,0.75);
    --board-line:rgba(246,241,227,0.18);
    --amber:#C4622D;       /* accent, sparing */
    --amber-light:#F0B85A; /* accent on dark */
    --amber-hover:#D97434;
    --ink-on-amber:#1B1206;
    --cream:#FBFAF5;
    --error:#9B2C1B;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{animation-duration:0.001s !important;transition-duration:0.001s !important;}
  }
  body{
    background:var(--mist);
    color:var(--pine);
    font-family:'Atkinson Hyperlegible', 'Segoe UI', sans-serif;
    font-size:19px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:1120px;margin:0 auto;padding:0 28px;}
  .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
  .hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;}
  a{color:var(--pine);text-underline-offset:3px;}
  a:focus-visible, button:focus-visible{outline:3px solid var(--amber);outline-offset:2px;}

  /* ---------- header ---------- */
  header{padding:26px 0;}
  .bar{display:flex;align-items:center;justify-content:space-between;gap:16px;}
  .wordmark{display:flex;align-items:center;gap:12px;min-height:44px;text-decoration:none;color:var(--pine);}
  .wordmark svg{display:block;}
  .wordmark .name{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:22px;letter-spacing:-0.01em;}
  .chip{
    font-family:'Spline Sans Mono',monospace;font-size:14px;letter-spacing:0.08em;text-transform:uppercase;
    border:1.5px solid var(--pine);border-radius:999px;padding:6px 14px;color:var(--pine);
  }
  nav a{color:var(--pine-soft);text-decoration:none;font-size:18px;margin-left:10px;padding:0 8px;min-height:44px;display:inline-flex;align-items:center;}
  nav a:hover{color:var(--pine);text-decoration:underline;text-underline-offset:4px;}
  @media (max-width:900px){ nav.sections{display:none;} }
  @media (max-width:560px){ .chip{display:none;} nav.site a.opt{display:none;} }

  /* ---------- hero ---------- */
  .hero{
    display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,0.9fr);gap:48px;align-items:start;
    padding:16px 0 72px;
  }
  @media (max-width:900px){ .hero{grid-template-columns:1fr;gap:36px;padding:8px 0 56px;} }
  .eyebrow{
    font-family:'Spline Sans Mono',monospace;font-size:15px;letter-spacing:0.14em;text-transform:uppercase;
    color:var(--amber);margin-bottom:10px;font-weight:600;
  }
  h1{
    font-family:'Bricolage Grotesque',sans-serif;font-weight:800;
    font-size:clamp(38px,4.6vw,58px);line-height:1.04;letter-spacing:-0.02em;margin-bottom:18px;
  }
  h1 .alt{color:var(--amber);}
  .lede{font-size:20px;line-height:1.5;color:var(--pine-soft);max-width:32em;margin-bottom:14px;}
  .lede strong{color:var(--pine);}
  .notlive{font-weight:700;margin-bottom:14px;}

  form.waitlist{display:flex;gap:12px;max-width:520px;flex-wrap:wrap;}
  form.waitlist input[type="email"]{
    flex:1 1 260px;min-width:0;font:inherit;padding:16px 18px;border:2px solid var(--pine);border-radius:12px;
    background:var(--cream);color:var(--pine);
  }
  form.waitlist input[type="email"]::placeholder{color:var(--pine-soft);opacity:0.85;}
  form.waitlist input[type="email"]:focus-visible,
  form.waitlist button:focus-visible{
    outline:3px solid var(--amber);outline-offset:2px;
  }
  form.waitlist button{
    font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:19px;
    background:var(--pine);color:var(--cream);border:2px solid var(--pine);border-radius:12px;
    padding:16px 26px;cursor:pointer;transition:background .15s ease, transform .15s ease;
  }
  form.waitlist button:hover{background:var(--pine-hover);transform:translateY(-1px);}
  form.waitlist button[disabled]{opacity:0.7;cursor:progress;transform:none;}
  .fineprint{font-size:18px;color:var(--pine-soft);margin-top:14px;max-width:34em;}
  .fineprint a{color:inherit;}
  a.plain-link{display:inline-block;padding:10px 0;}
  .form-msg{
    display:none;max-width:520px;margin-top:14px;border:2px solid var(--pine);border-radius:12px;
    padding:14px 18px;font-weight:700;background:var(--mist-deep);
  }
  .form-msg.show{display:block;}
  .form-msg.is-error{border-color:var(--error);color:var(--error);background:var(--cream);}
  .form-msg.is-ok .tick{color:var(--amber);margin-right:8px;}

  .hero-side{display:flex;flex-direction:column;gap:24px;min-width:0;}
  figure.photo img{display:block;width:100%;height:auto;border-radius:16px;border:1.5px solid var(--sky);background:var(--mist-deep);}
  figure.photo figcaption{font-size:18px;color:var(--pine-soft);margin-top:8px;}
  figure.photo figcaption a{display:inline-block;padding:10px 0;color:inherit;}

  /* ---------- departures board (signature) ---------- */
  .board{
    background:var(--board);border-radius:18px;padding:26px 26px 20px;
    box-shadow:0 24px 48px -24px rgba(22,48,43,0.45);
    border:1px solid rgba(246,241,227,0.12);
  }
  .board-head{
    display:flex;justify-content:space-between;align-items:baseline;gap:12px;
    font-family:'Spline Sans Mono',monospace;color:var(--board-cream);
    letter-spacing:0.12em;text-transform:uppercase;font-size:14px;
    border-bottom:1px solid rgba(246,241,227,0.25);padding-bottom:14px;margin-bottom:6px;
  }
  .board-head .live{color:var(--amber-light);}
  .row{
    display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,0.85fr) minmax(0,1.1fr);
    gap:14px;align-items:center;padding:15px 4px;
    border-bottom:1px dashed var(--board-line);
    font-family:'Spline Sans Mono',monospace;color:var(--board-cream);font-size:16px;
    opacity:0;transform:translateY(8px);
    animation:boardin .5s ease forwards;
  }
  .row:nth-child(2){animation-delay:.15s;}
  .row:nth-child(3){animation-delay:.3s;}
  .row:nth-child(4){animation-delay:.45s;}
  .row:nth-child(5){animation-delay:.6s;}
  .row:nth-child(6){animation-delay:.75s;border-bottom:none;}
  @keyframes boardin{to{opacity:1;transform:translateY(0);}}
  .row .dest{font-weight:600;letter-spacing:0.02em;line-height:1.3;}
  .row .dates{color:var(--board-dim);white-space:nowrap;}
  .row .want{color:var(--amber-light);font-size:15px;line-height:1.3;}
  .board-foot{font-family:'Spline Sans Mono',monospace;font-size:14px;letter-spacing:0.04em;color:var(--board-dim);padding-top:14px;}
  @media (max-width:560px){
    .row{grid-template-columns:minmax(0,1fr);gap:2px;}
    .row .dates{display:none;}
    .row .want{white-space:normal;}
  }

  /* keep the side gutter where a section overrides .wrap padding */
  .hero,.steps,.letter{padding-left:28px;padding-right:28px;}

  /* ---------- steps ---------- */
  .steps{padding:26px 0 70px;}
  .kicker{
    font-family:'Spline Sans Mono',monospace;font-size:15px;letter-spacing:0.14em;text-transform:uppercase;
    color:var(--pine-soft);margin-bottom:34px;font-weight:600;
  }
  .grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;}
  @media (max-width:860px){ .grid3{grid-template-columns:1fr;} }
  .step{background:var(--cream);border:1.5px solid var(--sky);border-radius:16px;padding:28px 26px;}
  .step .num{
    font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:18px;color:var(--cream);
    background:var(--pine);width:34px;height:34px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;margin-bottom:18px;
  }
  .step h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:24px;margin-bottom:10px;letter-spacing:-0.01em;}
  .step p{color:var(--pine-soft);font-size:18px;}

  /* ---------- plan strip ---------- */
  .trust{border-top:1.5px solid var(--sky);border-bottom:1.5px solid var(--sky);padding:26px 0;}
  .trust .kicker{text-align:center;margin-bottom:18px;}
  .trust ul{list-style:none;display:flex;flex-wrap:wrap;gap:14px 40px;justify-content:center;}
  .trust li{font-weight:700;font-size:18px;display:flex;align-items:center;gap:10px;}
  .trust .tick{color:var(--amber);font-size:20px;}

  /* ---------- letter ---------- */
  .letter{padding:76px 0;}
  .letter{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,0.8fr);gap:56px;align-items:start;}
  .letter .inner{max-width:680px;}
  @media (max-width:900px){ .letter{grid-template-columns:1fr;gap:32px;padding-top:56px;padding-bottom:56px;} }
  .letter h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:clamp(32px,4vw,44px);line-height:1.15;letter-spacing:-0.015em;margin-bottom:22px;}
  .letter p{font-size:20px;color:var(--pine-soft);margin-bottom:18px;}
  .letter p strong{color:var(--pine);}
  .letter .sig{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:19px;color:var(--pine);}

  /* ---------- final cta ---------- */
  .cta-band{background:var(--board);color:var(--board-cream);padding:70px 0;}
  .cta-band h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:clamp(34px,4.6vw,54px);letter-spacing:-0.02em;line-height:1.08;margin-bottom:16px;}
  .cta-band h2 .alt{color:var(--amber-light);}
  .cta-band p{font-size:20px;color:var(--board-dim);max-width:34em;margin-bottom:30px;}
  .cta-band form.waitlist input[type="email"]{border-color:var(--board-cream);background:rgba(246,241,227,0.08);color:var(--board-cream);}
  .cta-band form.waitlist input[type="email"]::placeholder{color:rgba(246,241,227,0.7);}
  .cta-band form.waitlist button{background:var(--amber);border-color:var(--amber);color:var(--ink-on-amber);}
  .cta-band form.waitlist button:hover{background:var(--amber-hover);}
  .cta-band form.waitlist input:focus-visible, .cta-band form.waitlist button:focus-visible{outline-color:var(--amber-light);}
  .cta-band .fineprint{color:var(--board-dim);}
  .cta-band .form-msg{background:rgba(246,241,227,0.1);border-color:var(--board-cream);color:var(--board-cream);}
  .cta-band .form-msg.is-error{background:var(--cream);color:var(--error);border-color:var(--error);}

  /* ---------- footer ---------- */
  footer{padding:34px 0 44px;}
  .foot{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;justify-content:space-between;font-size:18px;color:var(--pine-soft);}
  .foot a{color:var(--pine-soft);display:inline-flex;align-items:center;min-height:44px;}
  .foot a:hover{color:var(--pine);}
  .foot .brand{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;color:var(--pine);}
  .foot .links{display:flex;flex-wrap:wrap;gap:0 22px;align-items:center;}

  /* ---------- text pages (privacy, terms, thanks) ---------- */
  .page{padding:36px 28px 72px;max-width:760px;}
  .page h1{font-size:clamp(36px,5vw,54px);margin-bottom:12px;}
  .page .updated{color:var(--pine-soft);margin-bottom:30px;}
  .page h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:28px;letter-spacing:-0.01em;margin:38px 0 10px;}
  .page p, .page li{font-size:19px;margin-bottom:14px;}
  .page ul{padding-left:1.3em;margin-bottom:14px;}
  .page .callout{background:var(--cream);border:1.5px solid var(--sky);border-radius:14px;padding:18px 22px;margin:18px 0;}
  .page table{border-collapse:collapse;width:100%;margin:12px 0 18px;}
  .page th, .page td{border:1.5px solid var(--sky);padding:10px 12px;text-align:left;vertical-align:top;font-size:18px;}
  .page th{background:var(--mist-deep);}
  @media (max-width:560px){ .page th, .page td{padding:8px;font-size:18px;} }

  /* ---------- cookie banner ---------- */
  .cookie-banner{
    position:fixed;left:16px;right:16px;bottom:16px;z-index:50;max-width:760px;margin:0 auto;
    background:var(--cream);color:var(--pine);border:2px solid var(--pine);border-radius:16px;
    padding:16px 18px;box-shadow:0 16px 40px -12px rgba(22,48,43,0.5);
  }
  .cookie-banner[hidden]{display:none;}
  .cookie-banner h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:20px;line-height:1.25;margin-bottom:4px;}
  .cookie-banner p{font-size:18px;line-height:1.45;margin-bottom:12px;}
  .cookie-banner p a{display:inline-block;padding:10px 0;}
  .cookie-banner .actions{display:flex;gap:12px;flex-wrap:wrap;}
  .cookie-banner button{
    flex:1 1 120px;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:19px;
    background:var(--cream);color:var(--pine);border:2px solid var(--pine);border-radius:12px;
    padding:14px 22px;cursor:pointer;min-height:48px;
  }
  .cookie-banner button:hover{background:var(--mist-deep);}

  /* text links that stand alone on a line (thanks, privacy) get a 44px target */
  .page p.standalone a{display:inline-block;padding:10px 0;}

  /* sections that also use .wrap keep the side gutter whatever their own padding says */
  .wrap.hero,.wrap.steps,.wrap.letter{padding-left:28px;padding-right:28px;}
  @media (max-width:560px){ header{padding:10px 0;} .lede{font-size:19px;} }
