  /* ============ TOKENS ============ */
  :root{
    --paper:#F8F3E7;
    --paper-deep:#F1E9D6;
    --surface:#FFFDF6;
    --surface-2:#EFE8D5;
    --ink:#22303C;
    --ink-soft:#5B6470;
    --ink-faint:#8A8E85;
    --line:#E2D9C2;
    --line-strong:#C9BFA4;
    --pine:#14555A;
    --pine-ink:#F8F3E7;
    --gold:#C9963B;
    --stamp:#C4452C;
    --focus:#14555A;
    --shadow-card: 0 2px 4px rgba(34,48,60,.06), 0 16px 40px -18px rgba(34,48,60,.28);
    --shadow-soft: 0 1px 2px rgba(34,48,60,.05), 0 10px 28px -16px rgba(34,48,60,.2);
    --radius-s:4px;
    --radius-m:8px;
    --radius-l:14px;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --paper:#151A20;
      --paper-deep:#10141A;
      --surface:#1C232C;
      --surface-2:#242D38;
      --ink:#EFE9DA;
      --ink-soft:#ABB2AC;
      --ink-faint:#7E8781;
      --line:#2E3742;
      --line-strong:#414D5B;
      --pine:#4FA3A9;
      --pine-ink:#0E1418;
      --gold:#D9AC56;
      --stamp:#E06B4F;
      --focus:#4FA3A9;
      --shadow-card: 0 2px 4px rgba(0,0,0,.5), 0 18px 44px -18px rgba(0,0,0,.65);
      --shadow-soft: 0 1px 2px rgba(0,0,0,.45), 0 10px 28px -16px rgba(0,0,0,.55);
    }
  }
  :root[data-theme="dark"]{
    --paper:#151A20;
    --paper-deep:#10141A;
    --surface:#1C232C;
    --surface-2:#242D38;
    --ink:#EFE9DA;
    --ink-soft:#ABB2AC;
    --ink-faint:#7E8781;
    --line:#2E3742;
    --line-strong:#414D5B;
    --pine:#4FA3A9;
    --pine-ink:#0E1418;
    --gold:#D9AC56;
    --stamp:#E06B4F;
    --focus:#4FA3A9;
    --shadow-card: 0 2px 4px rgba(0,0,0,.5), 0 18px 44px -18px rgba(0,0,0,.65);
    --shadow-soft: 0 1px 2px rgba(0,0,0,.45), 0 10px 28px -16px rgba(0,0,0,.55);
  }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:"Public Sans",-apple-system,"Segoe UI",sans-serif;
    font-size:17px;
    line-height:1.65;
    text-rendering:optimizeLegibility;
  }
  h1,h2,h3,h4{
    font-family:"Fraunces",Georgia,serif;
    font-weight:600;
    line-height:1.12;
    margin:0;
    text-wrap:balance;
    color:var(--ink);
  }
  p{ margin:0 0 1em; max-width:64ch; }
  a{ color:inherit; }
  ul,ol{ padding-left:1.25em; }
  .eyebrow{
    font-family:"IBM Plex Mono",monospace;
    font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
    color:var(--gold); font-weight:600;
  }
  .tabular{ font-variant-numeric:tabular-nums; }
  button{ font-family:inherit; }
  select,button,input{ font-size:1rem; }
  :focus-visible{ outline:2px solid var(--focus); outline-offset:2px; }
  img,svg{ max-width:100%; }
  [hidden]{ display:none !important; }
  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
    html{ scroll-behavior:auto; }
  }
  .wrap{ max-width:1160px; margin:0 auto; padding:0 clamp(18px,4vw,44px); }

  /* ============ TOP BAR ============ */
  .topbar{ position:relative; z-index:10; }
  .topbar-inner{
    display:flex; align-items:center; justify-content:space-between;
    padding:20px clamp(18px,4vw,44px);
    max-width:1160px; margin:0 auto;
  }
  .brand{
    font-family:"Fraunces",serif; font-weight:900; font-size:1.5rem;
    letter-spacing:-.015em; text-decoration:none;
    display:inline-flex; align-items:baseline;
  }
  .brand .dot{ color:var(--stamp); }
  .topbar-note{
    font-family:"IBM Plex Mono",monospace; font-size:.7rem; letter-spacing:.1em;
    color:var(--ink-faint); text-transform:uppercase;
  }

  /* ============ HOME HERO ============ */
  .hero{ padding:clamp(30px,5vw,64px) 0 clamp(52px,7vw,84px); overflow:hidden; }
  .hero-grid{
    display:grid; grid-template-columns:1.05fr .95fr;
    gap:clamp(36px,5vw,72px); align-items:center;
  }
  @media (max-width:900px){ .hero-grid{ grid-template-columns:1fr; } }

  .hero h1{
    font-size:clamp(2.5rem,5.6vw,4.1rem);
    font-weight:900; letter-spacing:-.02em; margin-top:.45em;
  }
  .hero h1 em{ font-style:italic; font-weight:500; color:var(--pine); }
  .hero .lede{
    margin-top:1.2em; font-size:1.1rem; color:var(--ink-soft); max-width:46ch;
  }

  /* Product-shot hero: no card frame/box-shadow — the image's own soft
     photographic background is feathered at the edges with a mask so it
     dissolves into the page's cream ground instead of reading as a pasted
     rectangle. */
  .hero-mockup-wrap{ position:relative; padding:clamp(16px,3.5vw,40px); }
  .hero-mockup{
    display:block; width:100%; height:auto;
    -webkit-mask-image: radial-gradient(ellipse 62% 60% at 50% 46%, #000 38%, rgba(0,0,0,.85) 55%, rgba(0,0,0,.4) 72%, transparent 92%);
    mask-image: radial-gradient(ellipse 62% 60% at 50% 46%, #000 38%, rgba(0,0,0,.85) 55%, rgba(0,0,0,.4) 72%, transparent 92%);
  }

  .decl{ margin-top:2.4em; }
  .form-card{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:var(--radius-l);
    box-shadow:var(--shadow-soft);
    padding:clamp(20px,2.6vw,28px);
    display:grid; grid-template-columns:1fr 1fr auto; gap:18px; align-items:end;
  }
  @media (max-width:680px){ .form-card{ grid-template-columns:1fr; } }
  .field label{
    display:block; font-family:"IBM Plex Mono",monospace; font-size:.66rem;
    letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint);
    margin-bottom:.5em;
  }
  .field select{
    width:100%; appearance:none; -webkit-appearance:none;
    background:transparent; color:var(--ink);
    border:none; border-bottom:2px solid var(--line-strong);
    padding:.35em .1em .45em;
    font-size:1.1rem; font-family:"Fraunces",serif; font-weight:600;
    border-radius:0; cursor:pointer;
    background-image:linear-gradient(45deg,transparent 50%,var(--ink-faint) 50%),linear-gradient(135deg,var(--ink-faint) 50%,transparent 50%);
    background-position:calc(100% - 12px) 1em, calc(100% - 6px) 1em;
    background-size:6px 6px,6px 6px; background-repeat:no-repeat;
  }
  .field select:focus{ border-bottom-color:var(--focus); }
  .go{
    background:var(--stamp); color:#FFF8EE;
    border:none; border-radius:999px;
    padding:.9em 1.7em; font-size:1rem; font-weight:700; letter-spacing:.01em;
    cursor:pointer; white-space:nowrap;
    box-shadow:0 8px 20px -10px rgba(196,69,44,.7);
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .go:hover{ transform:translateY(-2px); box-shadow:0 12px 26px -10px rgba(196,69,44,.75); }
  .form-note{ margin:0.9em 0 0; font-size:.85rem; color:var(--ink-faint); min-height:1.4em; }
  .form-note.active{ color:var(--stamp); font-weight:600; }

  .facts{ display:flex; flex-wrap:wrap; gap:1.4em 2.6em; margin-top:2.4em; }
  .facts .fact b{ display:block; font-family:"Fraunces",serif; font-size:1.65rem; font-weight:700; }
  .facts .fact span{ font-size:.8rem; color:var(--ink-soft); }

  /* ============ DESTINATIONS ============ */
  .dest-section{ padding:0 0 clamp(64px,9vw,110px); }
  .dest-head{ display:flex; align-items:baseline; justify-content:space-between; gap:1em; margin-bottom:1.6em; flex-wrap:wrap; }
  .dest-head h2{ font-size:clamp(1.6rem,3vw,2.2rem); font-weight:700; }
  .dest-head p{ margin:0; color:var(--ink-soft); font-size:.95rem; }

  .dest-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
  @media (max-width:980px){ .dest-grid{ grid-template-columns:repeat(3,1fr); } }
  @media (max-width:640px){ .dest-grid{ grid-template-columns:repeat(2,1fr); gap:14px; } }

  .dest-card{
    position:relative; border:none; padding:0; text-align:left; font:inherit; color:inherit;
    background:var(--surface);
    border-radius:var(--radius-m);
    box-shadow:var(--shadow-soft);
    overflow:hidden; cursor:pointer;
    transition:transform .2s ease, box-shadow .2s ease;
    display:flex; flex-direction:column;
  }
  .dest-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-card); }
  .dest-card .scene{ display:block; line-height:0; overflow:hidden; aspect-ratio:8/5; background-size:cover; background-position:center; }
  .dest-card .scene svg{ display:block; width:100%; height:auto; transition:transform .35s ease; }
  .dest-card:hover .scene svg{ transform:scale(1.05); }
  .dest-card .meta{
    display:flex; align-items:center; gap:.55em;
    padding:12px 14px 13px;
    border-top:1px solid var(--line);
  }
  .dest-card .flag{ font-size:1.25rem; line-height:1; }
  .dest-card .name{ font-family:"Fraunces",serif; font-weight:700; font-size:1.02rem; flex:1; }
  .dest-card .tag{
    font-family:"IBM Plex Mono",monospace; font-size:.58rem; letter-spacing:.1em;
    text-transform:uppercase; padding:.35em .7em; border-radius:999px; white-space:nowrap;
  }
  .dest-card.ready .tag{ background:var(--pine); color:var(--pine-ink); font-weight:700; }
  .dest-card.soon .tag{ color:var(--ink-faint); border:1px dashed var(--line-strong); }
  .dest-card.soon .scene{ filter:saturate(.35) opacity(.75); }
  .dest-card.soon .name{ color:var(--ink-soft); }

  .site-footer{ border-top:1px solid var(--line); padding:36px 0 44px; }
  .footer-grid{ display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:20px 40px; margin-bottom:22px; }
  .footer-brand .brand{ font-size:1.1rem; }
  .footer-tag{ font-size:.85rem; color:var(--ink-faint); margin:.4em 0 0; max-width:36ch; }
  .footer-links{ display:flex; gap:1.6em; flex-wrap:wrap; }
  .footer-links a{
    font-family:"IBM Plex Mono",monospace; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase;
    color:var(--ink-soft); text-decoration:none; border-bottom:1px dotted var(--line-strong); padding-bottom:2px;
  }
  .footer-links a:hover{ color:var(--ink); }
  .site-footer p{ font-size:.82rem; color:var(--ink-faint); max-width:76ch; margin:0; }

  .legal-doc{ max-width:68ch; padding:36px 0 90px; }
  .legal-doc h1{ font-family:"Fraunces",serif; font-weight:700; font-size:2rem; margin:.5em 0 .25em; }
  .legal-doc .updated{
    font-family:"IBM Plex Mono",monospace; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase;
    color:var(--ink-faint); margin-bottom:2em; display:block;
  }
  .legal-doc h2{ font-family:"Fraunces",serif; font-weight:700; font-size:1.15rem; margin:1.8em 0 .55em; }
  .legal-doc p,.legal-doc li{ color:var(--ink-soft); line-height:1.65; max-width:66ch; margin-bottom:1em; }
  .legal-doc ul{ margin:0 0 1.2em 1.2em; }
  .legal-doc li{ margin-bottom:.5em; }
  .legal-doc a{ color:var(--pine); }
  .legal-doc strong{ color:var(--ink); }

  /* ============ COUNTRY GUIDE ============ */
  .country-hero{ position:relative; overflow:hidden; }
  .country-hero .banner{ display:block; line-height:0; height:clamp(240px,30vw,380px); background-size:cover; background-position:center; }
  .country-hero .banner svg{ display:block; width:100%; height:100%; }
  .country-hero .overlay{
    position:absolute; inset:0;
    background:linear-gradient(to top, rgba(16,26,24,.72) 0%, rgba(16,26,24,.25) 46%, rgba(16,26,24,.05) 70%);
    display:flex; align-items:flex-end;
  }
  .country-hero .overlay .wrap{ width:100%; padding-bottom:clamp(22px,3.5vw,40px); }
  .back-link{
    background:rgba(16,26,24,.35); border:1px solid rgba(255,248,238,.35);
    border-radius:999px; padding:.45em 1em; cursor:pointer;
    font-family:"IBM Plex Mono",monospace; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase;
    color:#FFF8EE; backdrop-filter:blur(4px);
    position:absolute; top:18px; left:clamp(18px,4vw,44px); z-index:3;
  }
  .back-link:hover{ background:rgba(16,26,24,.55); }
  .country-title{ display:flex; align-items:center; gap:.5em; flex-wrap:wrap; }
  .country-title .flag{ font-size:2.4rem; line-height:1; filter:drop-shadow(0 2px 6px rgba(0,0,0,.3)); }
  .country-title h1{ color:#FFF8EE; font-size:clamp(2.2rem,5vw,3.4rem); font-weight:900; letter-spacing:-.015em; text-shadow:0 2px 18px rgba(0,0,0,.35); }
  .country-for{ margin:.4em 0 0; font-size:.95rem; color:rgba(255,248,238,.85); text-shadow:0 1px 8px rgba(0,0,0,.4); }

  .factbar{ background:var(--pine); color:var(--pine-ink); }
  .factbar .wrap{
    display:flex; flex-wrap:wrap; gap:1.2em 2.6em; align-items:center;
    padding-top:14px; padding-bottom:14px;
  }
  .factbar .qf{ display:flex; align-items:baseline; gap:.55em; }
  .factbar .qf b{ font-family:"Fraunces",serif; font-weight:700; font-size:1.05rem; }
  .factbar .qf span{ font-size:.66rem; font-family:"IBM Plex Mono",monospace; text-transform:uppercase; letter-spacing:.08em; opacity:.75; }
  .factbar .verified{
    margin-left:auto; display:inline-flex; align-items:center; gap:.5em;
    font-family:"IBM Plex Mono",monospace; font-size:.64rem; letter-spacing:.08em; text-transform:uppercase;
    border:1px solid; border-color:inherit; opacity:.9;
    border-radius:999px; padding:.35em .9em;
  }
  .factbar .verified .ring{ width:7px; height:7px; border-radius:50%; background:var(--gold); }

  .guide-layout{
    display:grid; grid-template-columns:240px minmax(0,1fr);
    gap:clamp(30px,4.5vw,64px);
    padding:clamp(30px,4.5vw,52px) 0 clamp(64px,9vw,110px);
    align-items:start;
  }
  @media (max-width:880px){ .guide-layout{ grid-template-columns:minmax(0,1fr); } }

  .itinerary{ position:sticky; top:18px; display:flex; flex-direction:column; gap:4px; min-width:0; }
  @media (max-width:880px){
    .itinerary{
      position:sticky; top:0; z-index:5; flex-direction:row; overflow-x:auto;
      background:var(--paper); padding:10px 18px; margin:0 0 6px; width:100%;
      border-bottom:1px solid var(--line); gap:6px; -webkit-overflow-scrolling:touch;
    }
  }
  .itin-item{
    display:flex; align-items:center; gap:.7em;
    padding:.62em .9em; border-radius:var(--radius-m);
    background:none; border:none; text-align:left; cursor:pointer;
    color:var(--ink-soft); font-size:.93rem; white-space:nowrap;
    transition:background .15s ease;
  }
  .itin-item .n{
    font-family:"IBM Plex Mono",monospace; font-size:.66rem;
    width:1.9em; height:1.9em; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    border:1.5px solid var(--line-strong); color:var(--ink-faint); flex:none;
  }
  .itin-item:hover{ background:var(--surface-2); color:var(--ink); }
  .itin-item.visited .n{ background:var(--gold); border-color:var(--gold); color:#FFF8EE; }
  .itin-item[aria-current="true"]{ background:var(--pine); color:var(--pine-ink); font-weight:600; }
  .itin-item[aria-current="true"] .n{ background:transparent; border-color:var(--gold); color:var(--gold); }

  .panel{ animation:fade .3s ease both; }
  @keyframes fade{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;} }

  .sec-head{ display:flex; align-items:center; gap:18px; margin-bottom:.8em; }
  .sec-icon{ width:58px; height:58px; flex:none; filter:drop-shadow(0 3px 8px rgba(34,48,60,.14)); }
  .panel .k{ display:block; margin-bottom:.25em; color:var(--acc,var(--gold)); }
  .panel h2{ font-size:clamp(1.7rem,3.4vw,2.4rem); font-weight:900; letter-spacing:-.015em; }
  .panel .dek{ font-size:1.05rem; color:var(--ink-soft); max-width:58ch; margin-bottom:1.9em; }

  .stat-row{
    display:grid; grid-template-columns:repeat(auto-fit,minmax(155px,1fr));
    gap:12px; margin-bottom:2.2em;
  }
  .stat-tile{
    background:var(--surface); padding:1.05em 1.15em;
    border-radius:var(--radius-m); box-shadow:var(--shadow-soft);
    border:1px solid var(--line); border-top:3px solid var(--acc,var(--gold));
  }
  .stat-tile .v{ font-family:"Fraunces",serif; font-weight:700; font-size:1.5rem; display:block; letter-spacing:-.01em; }
  .stat-tile .l{ font-size:.68rem; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.06em; margin-top:.35em; display:block; font-family:"IBM Plex Mono",monospace; }

  .panel h3{ font-size:1.22rem; font-weight:700; margin:1.8em 0 .6em; }
  .panel h3:first-of-type{ margin-top:0; }
  .panel p,.panel li{ max-width:66ch; }
  .panel ul{ margin:0 0 1.2em; }
  .panel li{ margin-bottom:.45em; }
  .panel li::marker{ color:var(--acc,var(--stamp)); }
  .panel strong{ font-weight:650; }

  .table-scroll{ overflow-x:auto; margin:0 0 1.7em; border-radius:var(--radius-m); box-shadow:var(--shadow-soft); background:var(--surface); border:1px solid var(--line); }
  table.dtab{ border-collapse:collapse; width:100%; min-width:460px; font-size:.92rem; }
  table.dtab caption{ text-align:left; font-family:"IBM Plex Mono",monospace; font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); padding:.85em 1em .2em; }
  table.dtab th,table.dtab td{ text-align:left; padding:.62em 1em; border-bottom:1px solid var(--line); vertical-align:middle; }
  table.dtab thead th{ font-family:"IBM Plex Mono",monospace; font-size:.66rem; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-faint); font-weight:600; }
  table.dtab tbody tr:last-child td{ border-bottom:none; }
  table.dtab td.num,table.dtab th.num{ font-variant-numeric:tabular-nums; }
  table.dtab tbody tr:hover{ background:var(--surface-2); }

  .cellbar{ display:flex; align-items:center; gap:.65em; }
  .cellbar .b{ height:9px; border-radius:99px; background:var(--acc,var(--gold)); flex:none; }
  .cellbar .cv{ font-variant-numeric:tabular-nums; white-space:nowrap; }

  .fig{
    margin:0 0 1.8em; background:var(--surface); border:1px solid var(--line);
    border-radius:var(--radius-m); box-shadow:var(--shadow-soft); padding:1.05em 1.25em 1.15em;
  }
  .fig h4{
    margin:0 0 .9em; font-family:"IBM Plex Mono",monospace; font-size:.66rem;
    letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); font-weight:600;
  }
  .figrow{ display:grid; grid-template-columns:170px 1fr; gap:.9em; align-items:center; margin:.5em 0; font-size:.88rem; }
  .figrow .fl{ color:var(--ink-soft); }
  .figrow .fbar{ display:flex; align-items:center; gap:.6em; }
  .figrow .b{ height:13px; border-radius:99px; background:var(--acc,var(--gold)); flex:none; }
  .figrow .fv{ font-variant-numeric:tabular-nums; font-weight:600; font-size:.85rem; white-space:nowrap; }
  @media (max-width:560px){ .figrow{ grid-template-columns:1fr; gap:.25em; } }

  .checklist{
    background:var(--surface); border:1.5px dashed var(--line-strong);
    border-radius:var(--radius-m); padding:1.15em 1.3em 1.1em; margin:0 0 1.9em;
  }
  .checklist h4{
    margin:0 0 .7em; font-family:"IBM Plex Mono",monospace; font-size:.68rem;
    letter-spacing:.12em; text-transform:uppercase; color:var(--acc,var(--gold)); font-weight:600;
  }
  .checklist label{ display:flex; gap:.65em; align-items:baseline; margin:.4em 0; cursor:pointer; font-size:.94rem; }
  .checklist input{ accent-color:var(--acc,var(--gold)); transform:translateY(1px); cursor:pointer; }
  .checklist input:checked + span{ text-decoration:line-through; color:var(--ink-faint); }
  .checklist .hint{ margin:.7em 0 0; font-size:.78rem; color:var(--ink-faint); }

  .route-cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:12px; margin:0 0 1.8em; }
  .route-card{
    background:var(--surface); border:1px solid var(--line); border-left:4px solid var(--acc,var(--gold));
    border-radius:var(--radius-m); padding:1em 1.15em; box-shadow:var(--shadow-soft);
  }
  .route-card .rc-if{
    font-family:"IBM Plex Mono",monospace; font-size:.62rem; letter-spacing:.1em;
    text-transform:uppercase; color:var(--ink-faint); display:block; margin-bottom:.4em;
  }
  .route-card .rc-route{ font-family:"Fraunces",serif; font-weight:700; font-size:1.05rem; display:block; margin-bottom:.35em; }
  .route-card p{ font-size:.85rem; color:var(--ink-soft); margin:0; }

  .callout{
    border-left:4px solid var(--stamp);
    background:var(--surface); box-shadow:var(--shadow-soft);
    padding:1.05em 1.25em;
    border-radius:0 var(--radius-m) var(--radius-m) 0;
    margin:0 0 1.9em;
  }
  .callout .eyebrow{ color:var(--stamp); }
  .callout p:last-child{ margin-bottom:0; }

  .tldr{
    margin-top:2.4em; background:var(--surface-2);
    border-radius:var(--radius-m); padding:1.1em 1.3em;
    border-left:4px solid var(--acc,var(--gold));
  }
  .tldr .eyebrow{ color:var(--ink-soft); display:block; margin-bottom:.35em; }
  .tldr p{ margin:0; font-size:.97rem; }

  .panel-nav{ display:flex; justify-content:space-between; align-items:stretch; margin-top:2em; gap:14px; }
  .pn-btn{
    background:var(--surface); border:1px solid var(--line);
    border-radius:var(--radius-m); box-shadow:var(--shadow-soft);
    padding:.8em 1.2em; cursor:pointer; color:var(--ink); font-size:.9rem;
    display:flex; flex-direction:column; gap:.15em;
    transition:transform .15s ease;
  }
  .pn-btn:hover{ transform:translateY(-2px); border-color:var(--acc,var(--gold)); }
  .pn-btn .l{ font-family:"IBM Plex Mono",monospace; font-size:.62rem; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.08em; }
  .pn-btn:disabled{ visibility:hidden; }
  .pn-btn.next{ text-align:right; align-items:flex-end; margin-left:auto; }

  /* ---- origin personalization ---- */
  .origin-card{
    background:var(--surface); border:1px solid var(--line);
    border-radius:var(--radius-l); box-shadow:var(--shadow-card);
    padding:clamp(18px,2.4vw,26px); margin-bottom:clamp(26px,3.5vw,38px);
    position:relative; overflow:hidden;
  }
  .origin-card::before{
    content:""; position:absolute; inset:0 auto 0 0; width:5px; background:var(--pine);
  }
  .oc-head{ display:flex; align-items:center; gap:.7em; flex-wrap:wrap; margin-bottom:1.1em; }
  .oc-head .oflag{ font-size:1.9rem; line-height:1; }
  .oc-head h3{ font-size:1.3rem; font-weight:800; margin:0; }
  .oc-head .oc-change{
    margin-left:auto; background:none; border:1px solid var(--line-strong); color:var(--ink-soft);
    border-radius:999px; padding:.35em .9em; cursor:pointer;
    font-family:"IBM Plex Mono",monospace; font-size:.62rem; letter-spacing:.08em; text-transform:uppercase;
  }
  .oc-change:hover{ border-color:var(--pine); color:var(--ink); }
  .oc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; }
  @media (max-width:720px){ .oc-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:420px){ .oc-grid{ grid-template-columns:1fr; } }
  .oc-cell{ background:var(--surface); padding:.8em .95em; }
  .oc-cell .ol{
    font-family:"IBM Plex Mono",monospace; font-size:.6rem; letter-spacing:.09em;
    text-transform:uppercase; color:var(--ink-faint); display:block; margin-bottom:.25em;
  }
  .oc-cell .ov{ font-weight:650; font-size:.94rem; display:block; line-height:1.35; }
  .oc-cell .ov.ok{ color:var(--pine); }
  .oc-cell .ov.warn{ color:var(--stamp); }
  .oc-foot{ margin:1.1em 0 0; font-size:.92rem; color:var(--ink-soft); }
  .oc-foot strong{ color:var(--ink); }

  .origin-note{
    background:var(--surface); border:1px solid var(--line);
    border-left:4px solid var(--pine);
    border-radius:0 var(--radius-m) var(--radius-m) 0;
    padding:.95em 1.2em; margin:0 0 1.7em;
    box-shadow:var(--shadow-soft);
  }
  .origin-note .on-tag{
    display:flex; align-items:center; gap:.45em; margin-bottom:.4em;
    font-family:"IBM Plex Mono",monospace; font-size:.62rem; letter-spacing:.1em;
    text-transform:uppercase; color:var(--pine); font-weight:600;
  }
  .origin-note.alert{ border-left-color:var(--stamp); }
  .origin-note.alert .on-tag{ color:var(--stamp); }
  .origin-note p{ margin:0; font-size:.94rem; }
  .origin-note p + p{ margin-top:.6em; }

  .cmp{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0 0 1.8em; }
  @media (max-width:560px){ .cmp{ grid-template-columns:1fr; } }
  .cmp-col{
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m);
    padding:.95em 1.1em; box-shadow:var(--shadow-soft);
  }
  .cmp-col .ct{
    font-family:"IBM Plex Mono",monospace; font-size:.62rem; letter-spacing:.09em;
    text-transform:uppercase; color:var(--ink-faint); display:block; margin-bottom:.4em;
  }
  .cmp-col .cn{ font-family:"Fraunces",serif; font-weight:700; font-size:1.45rem; display:block; }
  .cmp-col .cs{ font-size:.78rem; color:var(--ink-soft); display:block; margin-top:.2em; }

  .sources-block{ margin-top:3.6em; padding-top:2em; border-top:1px solid var(--line); }
  .sources-block summary{ cursor:pointer; font-family:"IBM Plex Mono",monospace; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); }
  .sources-block[open] summary{ margin-bottom:1em; }
  .sources-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1.6em; font-size:.85rem; }
  .sources-grid h4{ font-family:"IBM Plex Mono",monospace; font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); margin:0 0 .6em; font-weight:600; }
  .sources-grid a{ display:block; color:var(--ink-soft); text-decoration:none; margin-bottom:.5em; border-bottom:1px dotted var(--line-strong); width:fit-content; }
  .sources-grid a:hover{ color:var(--ink); }
  .disclaimer{ margin-top:1.6em; font-size:.82rem; color:var(--ink-faint); max-width:74ch; }

  /* ============ NEW: personalized snapshot ============ */
  .snapshot-card{
    background:var(--surface); border:1px solid var(--line);
    border-radius:var(--radius-l); box-shadow:var(--shadow-card);
    padding:clamp(18px,2.4vw,26px); margin:clamp(20px,3vw,30px) 0;
    position:relative; overflow:hidden;
  }
  .snapshot-card::before{ content:""; position:absolute; inset:0 auto 0 0; width:5px; background:var(--gold); }
  .snap-head{ display:flex; align-items:center; justify-content:space-between; gap:1em; flex-wrap:wrap; margin-bottom:.7em; }
  .fit-badge{
    font-family:"IBM Plex Mono",monospace; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase;
    font-weight:700; padding:.4em 1em; border-radius:999px;
  }
  .fit-badge.fit-ok{ background:color-mix(in srgb, var(--pine) 16%, transparent); color:var(--pine); }
  .fit-badge.fit-neutral{ background:color-mix(in srgb, var(--gold) 20%, transparent); color:#8A6A1E; }
  .fit-badge.fit-warn{ background:color-mix(in srgb, var(--stamp) 14%, transparent); color:var(--stamp); }
  @media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .fit-badge.fit-neutral{ color:var(--gold); } }
  :root[data-theme="dark"] .fit-badge.fit-neutral{ color:var(--gold); }
  .snap-lede{ font-size:1rem; color:var(--ink-soft); margin-bottom:.9em; }
  .snap-path{ background:var(--surface-2); border-radius:var(--radius-m); padding:.9em 1.1em; margin-bottom:.9em; }
  .snap-path .eyebrow{ display:block; margin-bottom:.3em; }
  .snap-path p{ margin:0; font-size:.94rem; }
  .snap-reasons{ margin:0 0 1em; padding-left:1.2em; font-size:.9rem; color:var(--ink-soft); }
  .snap-reasons li{ margin-bottom:.35em; }
  .snap-jump{
    display:inline-block; font-family:"IBM Plex Mono",monospace; font-size:.72rem; letter-spacing:.06em;
    text-transform:uppercase; color:var(--pine); text-decoration:none; border-bottom:1px dotted var(--line-strong);
  }
  .snap-jump:hover{ color:var(--ink); }
  .snapshot-generic::before{ background:var(--pine); }

  /* ---- verification date tag on each section ---- */
  .sec-head{ position:relative; flex-wrap:wrap; }
  .verified-tag{
    margin-left:auto; align-self:flex-start;
    font-family:"IBM Plex Mono",monospace; font-size:.62rem; letter-spacing:.08em; text-transform:uppercase;
    color:var(--ink-faint); border:1px solid var(--line-strong); border-radius:999px; padding:.35em .8em;
    white-space:nowrap;
  }

  /* ---- origin switcher (real <select>, replaces the old hash-only button) ---- */
  select.oc-change{
    margin-left:auto; background:var(--surface); border:1px solid var(--line-strong); color:var(--ink);
    border-radius:999px; padding:.4em 1.1em; cursor:pointer;
    font-family:"IBM Plex Mono",monospace; font-size:.68rem; letter-spacing:.04em;
    max-width:220px;
  }
  select.oc-change:hover{ border-color:var(--pine); }
  .share-btn{
    margin-top:1.1em; background:var(--pine); color:var(--pine-ink); border:none;
    border-radius:999px; padding:.6em 1.3em; cursor:pointer; font-weight:700; font-size:.85rem;
    font-family:"Public Sans",sans-serif;
  }
  .share-btn:hover{ opacity:.9; }
  .share-btn.copied{ background:var(--gold); }

  /* ---- homepage: why this differs by passport ---- */
  .differentiator{ padding:clamp(30px,5vw,56px) 0; border-top:1px solid var(--line); }
  .differentiator .wrap{ max-width:900px; }
  .differentiator h2{ font-size:clamp(1.5rem,3vw,2rem); margin-bottom:.5em; }
  .differentiator p{ font-size:1.05rem; color:var(--ink-soft); max-width:70ch; }
  .differentiator .diff-examples{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin-top:1.4em; }
  .diff-ex{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-m); padding:1em 1.2em; box-shadow:var(--shadow-soft); }
  .diff-ex .de-flags{ font-size:1.3rem; margin-bottom:.35em; }
  .diff-ex p{ margin:0; font-size:.88rem; color:var(--ink-soft); }

  /* ---- breadcrumb ---- */
  .breadcrumb{ font-family:"IBM Plex Mono",monospace; font-size:.7rem; letter-spacing:.04em; color:var(--ink-faint); padding:14px 0 0; }
  .breadcrumb a{ color:var(--ink-soft); text-decoration:none; border-bottom:1px dotted var(--line-strong); }
  .breadcrumb a:hover{ color:var(--ink); }
  .breadcrumb .sep{ margin:0 .5em; }

  /* ---- "continue where you left off" banner ---- */
  .resume-banner{
    display:flex; align-items:center; justify-content:space-between; gap:1em; flex-wrap:wrap;
    background:var(--surface-2); border:1px solid var(--line); border-radius:var(--radius-m);
    padding:.9em 1.2em; margin-bottom:1.4em; font-size:.92rem;
  }
  .resume-banner a{ color:var(--pine); font-weight:700; text-decoration:none; }
  .resume-banner a:hover{ text-decoration:underline; }
