  :root{
    --navy:#0B2545;
    --sea:#2B6C8F;
    --ice:#DCE9F2;
    --frost:#F4F8FB;
    --ochre:#C8862B;
    --ink:#1B2A38;
    --ink-soft:#4A5B6B;
    --line:#C9D8E4;
    --white:#FFFFFF;
    --display:"Fraunces", Georgia, serif;
    --body:"IBM Plex Sans", "Segoe UI", Arial, sans-serif;
    --measure:62ch;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
  body{font-family:var(--body);color:var(--ink);background:var(--white);line-height:1.6;font-size:17px}
  a{color:var(--sea)}
  a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--ochre);outline-offset:3px}
  img,svg{display:block;max-width:100%}
  .wrap{width:min(1120px,100% - 2.5rem);margin-inline:auto}

  /* Nav */
  .nav{position:sticky;top:0;z-index:10;background:rgba(11,37,69,.96);color:var(--white);backdrop-filter:blur(6px)}
  .nav .wrap{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:1rem}
  .brand{font-family:var(--display);font-weight:600;font-size:1.1rem;color:var(--white);text-decoration:none;letter-spacing:.01em}
  .nav ul{display:flex;gap:1.6rem;list-style:none}
  .nav ul a{color:rgba(255,255,255,.82);text-decoration:none;font-size:.95rem;font-weight:500}
  .nav ul a:hover{color:var(--white)}
  .nav .cta{background:var(--ochre);color:var(--navy);padding:.55rem 1.1rem;border-radius:4px;font-weight:600;text-decoration:none;font-size:.95rem;white-space:nowrap}
  @media (max-width:760px){.nav ul{display:none}}

  /* Hero */
  .hero{background:var(--navy);color:var(--white);padding:5rem 0 0;overflow:hidden}
  .hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:end}
  .hero h1{font-family:var(--display);font-weight:600;font-size:clamp(2.6rem,6vw,4.6rem);line-height:1.02;letter-spacing:-.015em;max-width:12ch}
  .hero .lede{margin-top:1.6rem;max-width:48ch;font-size:1.15rem;color:rgba(255,255,255,.82)}
  .when{border-left:3px solid var(--ochre);padding-left:1.25rem;align-self:end}
  .when .date{font-family:var(--display);font-size:clamp(1.9rem,3.4vw,2.6rem);font-weight:700;line-height:1.05}
  .when .place{margin-top:.35rem;font-size:1.05rem;color:rgba(255,255,255,.82)}
  .when .host{margin-top:1.2rem;font-size:.95rem;color:rgba(255,255,255,.62)}
  .hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2.2rem}
  .btn{display:inline-block;padding:.9rem 1.5rem;border-radius:4px;font-weight:600;text-decoration:none;font-size:1rem;border:2px solid transparent}
  .btn-primary{background:var(--ochre);color:var(--navy)}
  .btn-primary:hover{background:#D99A3E}
  .btn-ghost{color:var(--white);border-color:rgba(255,255,255,.4)}
  .btn-ghost:hover{border-color:var(--white)}
  @media (max-width:820px){.hero-grid{grid-template-columns:1fr;gap:2.2rem}.hero{padding-top:3.5rem}}

  /* Horizon: the five communities along the coast */
  .horizon{margin-top:4rem;position:relative}
  .horizon svg{width:100%;height:auto}
  .communities{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid rgba(255,255,255,.18);background:#0E2C52}
  .communities div{padding:1.1rem .6rem 1.3rem;text-align:center;border-right:1px solid rgba(255,255,255,.1)}
  .communities div:last-child{border-right:0}
  .communities b{display:block;font-family:var(--display);font-weight:600;font-size:1.05rem}
  .communities span{display:block;font-size:.8rem;color:rgba(255,255,255,.6);margin-top:.15rem}
  .communities .host-cell{background:var(--sea)}
  .communities .host-cell span{color:rgba(255,255,255,.85)}
  @media (max-width:640px){.communities{grid-template-columns:repeat(2,1fr)}.communities div{border-bottom:1px solid rgba(255,255,255,.1)}}

  /* Sections */
  section{padding:5rem 0}
  h2{font-family:var(--display);font-weight:600;font-size:clamp(1.9rem,3.2vw,2.5rem);line-height:1.12;letter-spacing:-.01em;max-width:20ch}
  .intro{max-width:var(--measure);margin-top:1.4rem;font-size:1.08rem;color:var(--ink-soft)}
  .two-col{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
  @media (max-width:820px){.two-col{grid-template-columns:1fr;gap:2rem}}
  .prose p+p{margin-top:1.1rem}
  .prose{max-width:var(--measure)}

  .note{background:var(--frost);border-left:3px solid var(--sea);padding:1.4rem 1.6rem;border-radius:0 6px 6px 0}
  .note h3{font-family:var(--display);font-size:1.25rem;font-weight:600;margin-bottom:.5rem}
  .note p{color:var(--ink-soft)}

  /* Themes */
  .themes{background:var(--frost)}
  .theme-list{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;margin-top:3rem}
  .theme-list h3{font-family:var(--display);font-size:1.4rem;font-weight:600;line-height:1.2;padding-top:1rem;border-top:2px solid var(--ochre)}
  .theme-list p{margin-top:.75rem;color:var(--ink-soft)}
  @media (max-width:820px){.theme-list{grid-template-columns:1fr;gap:2rem}}

  /* Schedule */
  .days{margin-top:3rem;border-top:1px solid var(--line)}
  .day{display:grid;grid-template-columns:200px 1fr;gap:2rem;padding:1.8rem 0;border-bottom:1px solid var(--line)}
  .day .d{font-family:var(--display);font-size:1.35rem;font-weight:600;line-height:1.2}
  .day .d small{display:block;font-family:var(--body);font-size:.9rem;font-weight:400;color:var(--ink-soft);margin-top:.25rem}
  .day p{color:var(--ink-soft);max-width:var(--measure)}
  .day .pending{display:inline-block;margin-top:.6rem;font-size:.85rem;color:var(--sea);background:var(--ice);padding:.2rem .6rem;border-radius:3px}
  @media (max-width:640px){.day{grid-template-columns:1fr;gap:.6rem}}

  /* Travel */
  .travel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:3rem}
  .travel-grid h3{font-size:1.05rem;font-weight:600;margin-bottom:.5rem}
  .travel-grid p{color:var(--ink-soft);font-size:.98rem}
  @media (max-width:820px){.travel-grid{grid-template-columns:1fr}}

  /* Host message */
  .host{background:var(--navy);color:var(--white)}
  .host blockquote{font-family:var(--display);font-size:clamp(1.35rem,2.4vw,1.8rem);font-weight:400;line-height:1.4;max-width:34ch}
  .host figcaption{margin-top:1.8rem;font-size:1rem}
  .host figcaption b{display:block;font-weight:600}
  .host figcaption span{color:rgba(255,255,255,.65)}

  /* Register */
  .register .two-col{gap:4rem}
  form{display:grid;gap:1.1rem}
  label{display:block;font-weight:500;font-size:.95rem;margin-bottom:.35rem}
  input,select{width:100%;padding:.8rem .9rem;border:1px solid var(--line);border-radius:4px;font:inherit;font-size:1rem;background:var(--white)}
  .row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
  @media (max-width:560px){.row{grid-template-columns:1fr}}
  .check{display:flex;gap:.7rem;align-items:flex-start;font-size:.95rem;color:var(--ink-soft)}
  .check input{width:auto;margin-top:.3rem}
  form button{justify-self:start;background:var(--navy);color:var(--white);border:0;padding:.9rem 1.6rem;border-radius:4px;font:inherit;font-weight:600;font-size:1rem;cursor:pointer}
  form button:hover{background:var(--sea)}
  .form-note{font-size:.9rem;color:var(--ink-soft)}
  .contact p+p{margin-top:.5rem}
  .contact a{font-weight:500}

  /* Footer */
  footer{background:#071A33;color:rgba(255,255,255,.7);padding:2.5rem 0;font-size:.9rem}
  footer .wrap{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
  footer b{color:var(--white);font-weight:600}
  footer a{color:rgba(255,255,255,.85)}

/* Agenda */
.agenda{margin-top:3rem;display:grid;gap:3rem}
.agenda-day h3{font-family:var(--display);font-size:1.6rem;font-weight:600;line-height:1.2}
.agenda-day .theme{color:var(--sea);font-weight:500;margin-top:.3rem}
.agenda-day table{width:100%;border-collapse:collapse;margin-top:1.2rem;font-size:.97rem}
.agenda-day th{text-align:left;font-weight:600;font-size:.85rem;color:var(--ink-soft);padding:.5rem .6rem;border-bottom:2px solid var(--line)}
.agenda-day td{padding:.7rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}
.agenda-day td.t{white-space:nowrap;width:6.5rem;font-weight:600;color:var(--navy)}
.agenda-day td.who{color:var(--ink-soft);width:34%}
.agenda-day tr.break td{background:var(--frost);color:var(--ink-soft)}
.agenda-day tr.closed td.s{font-weight:600}
@media (max-width:640px){
  .agenda-day table,.agenda-day tbody,.agenda-day tr,.agenda-day td{display:block;width:100%}
  .agenda-day thead{display:none}
  .agenda-day tr{border-bottom:1px solid var(--line);padding:.6rem 0}
  .agenda-day td{border:0;padding:.15rem 0}
  .agenda-day td.t{width:auto}
}

/* Participants */
.people{display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem 2.5rem;margin-top:2.5rem;max-width:960px}
.people div{display:grid;grid-template-columns:150px 1fr;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line);font-size:.97rem}
.people b{font-weight:600;color:var(--navy)}
.people span{color:var(--ink-soft)}
@media (max-width:820px){.people{grid-template-columns:1fr}}

/* Venue */
.venue{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;margin-top:2.5rem}
.venue .card{background:var(--frost);border-radius:6px;padding:1.6rem 1.8rem}
.venue .card h3{font-family:var(--display);font-size:1.3rem;font-weight:600}
.venue .card p{color:var(--ink-soft);margin-top:.5rem}
@media (max-width:820px){.venue{grid-template-columns:1fr}}

/* Registration page */
.page-head{background:var(--navy);color:var(--white);padding:3.5rem 0 3rem}
.page-head h1{font-family:var(--display);font-weight:600;font-size:clamp(2rem,4.5vw,3rem);line-height:1.08;letter-spacing:-.01em}
.page-head p{margin-top:1rem;max-width:60ch;color:rgba(255,255,255,.8)}
.reg{padding:3.5rem 0 5rem}
.reg .layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:4rem;align-items:start}
@media (max-width:900px){.reg .layout{grid-template-columns:1fr;gap:2.5rem}}
fieldset{border:0;padding:0;margin:0 0 2.6rem}
legend{font-family:var(--display);font-size:1.4rem;font-weight:600;padding:0;margin-bottom:.3rem}
.fs-help{color:var(--ink-soft);font-size:.95rem;margin-bottom:1.2rem}
.field{margin-bottom:1.1rem}
textarea{width:100%;min-height:96px;padding:.8rem .9rem;border:1px solid var(--line);border-radius:4px;font:inherit;font-size:1rem;resize:vertical}
.choices{display:grid;gap:.55rem}
.choices label{display:flex;gap:.7rem;align-items:flex-start;font-weight:400;font-size:.98rem}
.choices input{width:auto;margin-top:.3rem}
.req{color:var(--ochre)}
.aside{position:sticky;top:84px;background:var(--frost);border-radius:6px;padding:1.6rem 1.8rem;font-size:.95rem}
.aside h2{font-size:1.2rem;max-width:none}
.aside p{color:var(--ink-soft);margin-top:.6rem}
.aside p+p{margin-top:.9rem}
.errors{background:#FDF1EC;border-left:3px solid #B94A2C;padding:1rem 1.2rem;border-radius:0 6px 6px 0;margin-bottom:1.8rem}
.errors ul{margin:.4rem 0 0 1.2rem}
.done{max-width:var(--measure)}
.done h2{margin-bottom:1rem}
.done p+p{margin-top:1rem}
.done .ref{display:inline-block;margin-top:1.2rem;background:var(--ice);color:var(--navy);padding:.5rem .9rem;border-radius:4px;font-weight:600}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Countdown */
.countdown{display:flex;align-items:baseline;gap:1.1rem;flex-wrap:wrap;margin-bottom:1.1rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.18)}
.cd-unit{display:inline-flex;align-items:baseline;gap:.35rem}
.cd-unit b{font-family:var(--display);font-weight:700;font-size:clamp(2.4rem,4.5vw,3.4rem);line-height:1;color:var(--ochre);font-variant-numeric:tabular-nums}
.cd-unit small{font-size:.9rem;color:rgba(255,255,255,.7);letter-spacing:.01em}
.cd-label{flex-basis:100%;font-size:.95rem;color:rgba(255,255,255,.75)}
.countdown.is-live .cd-label,.countdown.is-over .cd-label{flex-basis:auto;font-family:var(--display);font-size:1.3rem;color:var(--white)}
