  :root{
    --bg:#FBF9F4; --card:#FFFFFF; --ink:#1F2A33; --ink-muted:#616B73;
    --cobalt:#1B5A8C; --terracotta:#B5562A; --olive:#74804F; --hairline:#E4DFD3;
    --a:#B5562A; --b:#1B5A8C;
    --c-beach:#2A78D6; --c-city:#4A3AA7; --c-hist:#EB6834; --c-food:#1BAF7A; --c-travel:#8C8A83;
    --serif:'Instrument Serif', Georgia, 'Times New Roman', serif;
    --sans:'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
    --mono:'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;}
  .wrap{max-width:800px;margin:0 auto;padding:0 24px 120px;}
  a{color:var(--cobalt);}

  .topnav{position:sticky;top:0;background:rgba(251,249,244,0.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--hairline);z-index:20;}
  .topnav-inner{max-width:800px;margin:0 auto;padding:13px 24px;display:flex;gap:20px;overflow-x:auto;
    scrollbar-width:none;font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;}
  .topnav-inner::-webkit-scrollbar{display:none;}
  .topnav a{color:var(--ink-muted);text-decoration:none;white-space:nowrap;}
  .topnav a:hover{color:var(--terracotta);}

  .hero{padding:56px 0 40px;border-bottom:1px solid var(--hairline);margin-bottom:52px;}
  .kicker{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--terracotta);text-transform:uppercase;margin:0 0 14px;}
  .hero h1{font-family:var(--serif);font-style:italic;font-weight:400;font-size:60px;line-height:1;margin:0 0 20px;}
  .hero .lede{font-size:17px;line-height:1.6;color:var(--ink);max-width:60ch;margin:0;}
  .hero .lede + .lede{margin-top:12px;}

  .card{background:var(--card);border:1px solid var(--hairline);border-radius:12px;}
  h2.section{font-family:var(--serif);font-style:italic;font-weight:400;font-size:34px;margin:0 0 8px;scroll-margin-top:66px;}
  .qnum{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--terracotta);text-transform:uppercase;margin:0 0 6px;}
  p.section-intro{font-size:15.5px;color:var(--ink-muted);max-width:62ch;margin:0 0 28px;line-height:1.6;}
  section{margin-bottom:66px;}
  h3.sub{font-family:var(--serif);font-style:italic;font-weight:400;font-size:24px;margin:36px 0 12px;}

  /* Option pair */
  .pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .opt{padding:20px 22px;border-top:3px solid var(--hairline);}
  .opt.a{border-top-color:var(--a);}
  .opt.b{border-top-color:var(--b);}
  .opt .tag{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px;}
  .opt.a .tag{color:var(--a);}
  .opt.b .tag{color:var(--b);}
  .opt h3{font-family:var(--serif);font-style:italic;font-weight:400;font-size:25px;margin:0 0 10px;line-height:1.15;}
  .opt p{font-size:14.5px;line-height:1.6;margin:0;}
  .opt p + p{margin-top:9px;}
  .opt ul{margin:10px 0 0;padding-left:18px;font-size:14px;line-height:1.65;}
  .opt li{margin-bottom:4px;}
  .plus{color:var(--olive);font-weight:600;}
  .minus{color:var(--terracotta);font-weight:600;}

  /* Flights */
  .flighttable{padding:6px 22px 14px;}
  .frow{padding:14px 0;border-bottom:1px dashed var(--hairline);}
  .frow:last-child{border-bottom:none;}
  .frow .fhead{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:5px;}
  .frow .fname{font-family:var(--serif);font-size:20px;}
  .frow .fprice{font-family:var(--mono);font-size:13px;color:var(--cobalt);white-space:nowrap;}
  .frow .fdet{font-family:var(--mono);font-size:12px;color:var(--ink-muted);line-height:1.7;}
  .badge{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;
    padding:2px 7px;border-radius:4px;color:#fff;background:var(--a);margin-left:2px;vertical-align:2px;}
  .badge.b{background:var(--b);}
  .badge.grey{background:var(--ink-muted);}

  /* Big number comparison */
  .scoregrid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:12px;overflow:hidden;}
  .scorehead{background:#F5F2EA;padding:11px 16px;font-family:var(--mono);font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-muted);}
  .scorecell{background:var(--card);padding:16px;}
  .scorecell .v{font-family:var(--serif);font-size:32px;line-height:1.1;}
  .scorecell.a .v{color:var(--a);}
  .scorecell.b .v{color:var(--b);}
  .scorecell .k{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--ink-muted);text-transform:uppercase;margin-top:4px;}
  .scorelabel{background:#FAF8F2;padding:9px 16px;grid-column:1 / -1;font-family:var(--mono);font-size:10.5px;
    letter-spacing:.07em;text-transform:uppercase;color:var(--ink-muted);}

  /* Charts */
  .chartcard{padding:22px;}
  .legend{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:16px;font-size:12px;color:var(--ink-muted);}
  .legend span{display:flex;align-items:center;gap:5px;}
  .swatch{width:10px;height:10px;border-radius:2px;display:inline-block;flex:none;}
  .bar-row{display:grid;grid-template-columns:158px 1fr;gap:12px;align-items:center;margin-bottom:8px;}
  .bar-label{font-family:var(--mono);font-size:11px;color:var(--ink-muted);text-align:right;line-height:1.3;}
  .bar-wrap{display:flex;align-items:center;gap:9px;}
  .bar-single{height:20px;border-radius:4px;background:var(--c-beach);min-width:2px;}
  .bar-val{font-family:var(--mono);font-size:11px;color:var(--ink-muted);white-space:nowrap;}
  .axis{font-family:var(--mono);font-size:10px;color:var(--ink-muted);margin-top:14px;text-align:right;}
  .charttitle{font-family:var(--mono);font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 14px;}
  .charttitle.a{color:var(--a);}
  .charttitle.b{color:var(--b);}

  /* Tables */
  table.cmp{width:100%;border-collapse:collapse;font-size:14px;background:var(--card);border:1px solid var(--hairline);border-radius:12px;overflow:hidden;}
  table.cmp th, table.cmp td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--hairline);vertical-align:top;}
  table.cmp th{font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);background:#F5F2EA;}
  table.cmp th.a{color:var(--a);}
  table.cmp th.b{color:var(--b);}
  table.cmp tr:last-child td{border-bottom:none;}
  table.cmp td:first-child{font-weight:500;color:var(--ink-muted);}
  table.cmp td.hl{color:var(--cobalt);font-weight:600;}
  .tablescroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}

  /* Day strips */
  .strip{padding:4px 20px 12px;}
  .striprow{display:grid;grid-template-columns:64px 1fr;gap:14px;padding:11px 0;border-bottom:1px dashed var(--hairline);align-items:baseline;}
  .striprow:last-child{border-bottom:none;}
  .stripday{font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);}
  .stripbody strong{font-weight:600;font-size:14.5px;}
  .stripbody span{display:block;font-size:13px;color:var(--ink-muted);margin-top:2px;line-height:1.5;}

  /* Photos */
  .photo{width:100%;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:linear-gradient(135deg,#E4DFD3,#EFEAE0);
    margin:0 0 18px;border:1px solid var(--hairline);}
  .photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .photo.img-fallback{display:flex;align-items:center;justify-content:center;}
  .photo.img-fallback img{display:none;}
  .photo.img-fallback::after{content:attr(data-place);font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);}
  .photopair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;}
  .photopair .photo{margin:0;}

  /* Beach zones */
  .zones{display:flex;flex-direction:column;gap:13px;}
  .zone{padding:16px 20px;display:grid;grid-template-columns:1fr auto;gap:14px;align-items:start;}
  .zone h4{font-weight:600;font-size:15px;margin:0 0 4px;}
  .zone p{font-size:14px;color:var(--ink-muted);margin:0;line-height:1.55;}
  .zone .avail{font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;text-align:right;white-space:nowrap;line-height:1.9;}
  .yes{color:var(--olive);} .no{color:var(--terracotta);} .maybe{color:var(--ink-muted);}

  /* Callout */
  .callout{padding:20px 24px;border-left:3px solid var(--terracotta);margin:24px 0;}
  .callout p{margin:0;font-size:15.5px;line-height:1.6;}
  .callout p + p{margin-top:10px;}
  .callout .ch{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--terracotta);margin-bottom:8px;}

  /* Verdict */
  .verdict{padding:26px 28px;border:2px solid var(--cobalt);border-radius:12px;background:var(--card);}
  .verdict h3{font-family:var(--serif);font-style:italic;font-weight:400;font-size:28px;margin:0 0 14px;}
  .verdict p{font-size:15.5px;line-height:1.65;margin:0;}
  .verdict p + p{margin-top:12px;}
  .ifthen{display:flex;flex-direction:column;gap:11px;margin-top:20px;}
  .ifrow{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:13px 16px;background:#FAF8F2;border-radius:8px;}
  .ifrow .pick{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#fff;
    padding:4px 9px;border-radius:4px;white-space:nowrap;}
  .ifrow .pick.a{background:var(--a);} .ifrow .pick.b{background:var(--b);}
  .ifrow p{margin:0;font-size:14.5px;line-height:1.5;}

  /* Notes / checklist */
  .notes{display:flex;flex-direction:column;gap:14px;}
  .note{padding:17px 21px;}
  .note h4{font-weight:600;font-size:15px;margin:0 0 6px;}
  .note p{font-size:14.5px;line-height:1.6;margin:0;}
  .note p + p{margin-top:8px;}
  .note.warn{border-left:3px solid var(--terracotta);}
  .check{display:flex;flex-direction:column;gap:10px;}
  .checkitem{padding:14px 18px;display:flex;gap:14px;align-items:flex-start;}
  .checkitem .when{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#fff;
    background:var(--terracotta);padding:3px 8px;border-radius:4px;white-space:nowrap;flex:none;margin-top:1px;}
  .checkitem .when.soon{background:var(--cobalt);}
  .checkitem .when.later{background:var(--olive);}
  .checkitem p{margin:0;font-size:14.5px;line-height:1.5;}

  footer{margin-top:80px;padding-top:26px;border-top:1px solid var(--hairline);font-family:var(--mono);
    font-size:11px;color:var(--ink-muted);letter-spacing:.06em;text-transform:uppercase;line-height:1.9;}

  @media (max-width:680px){
    .hero{padding:40px 0 32px;}
    .hero h1{font-size:40px;}
    h2.section{font-size:27px;}
    .pair, .photopair{grid-template-columns:1fr;}
    .scoregrid{grid-template-columns:1fr;}
    .scorelabel{grid-column:1;}
    .bar-row{grid-template-columns:1fr;gap:4px;}
    .bar-label{text-align:left;}
    .zone{grid-template-columns:1fr;}
    .zone .avail{text-align:left;}
    table.cmp{font-size:12.5px;min-width:540px;}
    .striprow{grid-template-columns:56px 1fr;gap:10px;}
  }
  @media print{
    .topnav{display:none;}
    body{background:#fff;}
    .wrap{max-width:100%;padding:0;}
    section, .opt, .zone, .note, .checkitem, .verdict{page-break-inside:avoid;}
    .photo{max-height:180px;}
    a{color:inherit;text-decoration:none;}
  }
