:root{
  --bg:#f6efe1;
  --surface:#fffaf1;
  --surface-strong:#ffffff;
  --ink:#1d2d50;
  --ink-soft:#4a5568;
  --red:#b33234;
  --gold:#c98f1a;
  --line:#dfd1b8;
  --shadow:0 12px 30px rgba(29,45,80,.08);
  --radius:18px;
  --max:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at top, rgba(201,143,26,.08), transparent 22rem),
    linear-gradient(180deg, #fbf6ec 0%, var(--bg) 100%);
  line-height:1.6;
}
img{max-width:100%;display:block;border-radius:14px}
a{color:var(--red);text-decoration:none}
a:hover{text-decoration:underline}
.skip-link{
  position:absolute;left:-9999px;top:auto;
}
.skip-link:focus{
  left:1rem;top:1rem;z-index:1000;background:#fff;padding:.75rem 1rem;border-radius:10px;box-shadow:var(--shadow)
}
.container{width:min(calc(100% - 2rem), var(--max));margin:0 auto}
.narrow{width:min(calc(100% - 2rem), 900px)}
.site-header{
  position:sticky;top:0;z-index:20;
  background:rgba(251,246,236,.92);
  border-bottom:1px solid rgba(223,209,184,.8);
  backdrop-filter: blur(10px);
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem 0;
}
.brand{display:grid;gap:.15rem;color:inherit}
.brand:hover{text-decoration:none}
.brand-kicker{font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.brand-name{font-size:1.15rem;font-weight:800}
.brand-sub{font-size:.92rem;color:var(--ink-soft)}
.site-nav{display:flex;flex-wrap:wrap;gap:.4rem .6rem;justify-content:flex-end}
.nav-link{
  padding:.65rem .9rem;border-radius:999px;border:1px solid transparent;font-weight:600;color:var(--ink)
}
.nav-link:hover,.nav-link.active{background:#fff;border-color:var(--line);text-decoration:none}
.hero{padding:3rem 0 1.5rem}
.hero-grid{
  display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center
}
.hero-copy h1{font-size:clamp(2.25rem,4vw,4rem);line-height:1.05;margin:.25rem 0 1rem}
.eyebrow{
  font-size:.82rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin:0 0 .5rem
}
.lead{font-size:1.2rem;font-weight:700;margin:0 0 1rem;color:var(--ink)}
.body-copy,.section-intro{font-size:1.05rem;color:var(--ink-soft);margin:0}
.hero-actions,.registration-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:1.5rem}
.button{
  display:inline-flex;align-items:center;justify-content:center;padding:.9rem 1.2rem;border-radius:999px;font-weight:800;border:1px solid var(--line)
}
.button:hover{text-decoration:none;transform:translateY(-1px)}
.button-primary{background:var(--red);color:#fff;border-color:var(--red)}
.button-secondary{background:#fff;color:var(--ink)}
.section{padding:1.5rem 0 3rem}
.section-head{margin-bottom:1.25rem}
.section-head.center{text-align:center}
.section-head h1,.section-head h2{margin:.2rem 0 .35rem;line-height:1.1}
.section-head h1{font-size:clamp(2rem,3.5vw,3.25rem)}
.section-head h2{font-size:clamp(1.6rem,2.5vw,2.35rem)}
.card{
  background:rgba(255,255,255,.82);
  border:1px solid rgba(223,209,184,.95);
  border-radius:var(--radius);
  padding:1.25rem;
  box-shadow:var(--shadow);
}
.grid{display:grid;gap:1.1rem}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.feature-card h3,.hotel-card h3,.schedule-card h3{margin:.15rem 0 .45rem}
.feature-card p,.hotel-card p,.schedule-card p,.prose-card p{margin:.4rem 0}
.theme-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:start}
.prose-card h2{margin-top:0}
.day-block{padding:1rem 0 1.5rem;border-top:1px solid rgba(223,209,184,.9)}
.day-block:first-of-type{border-top:none;padding-top:0}
.schedule-time{font-weight:800;color:var(--red);margin:0 0 .35rem}
.detail-list{padding-left:1.1rem;margin:.5rem 0}
.badge{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.25rem .6rem;border-radius:999px;
  background:rgba(201,143,26,.14);color:#7c5400;font-weight:700;font-size:.78rem;margin:.1rem .35rem .6rem 0
}
.badge-host{background:rgba(179,50,52,.12);color:#8d2124}
.card-topline{min-height:1.75rem}
.note-card{margin-top:1.1rem}
.muted{color:var(--ink-soft)}
.registration-frame{
  width:100%;
  min-height:1000px;
  border:1px solid rgba(223,209,184,.95);
  border-radius:14px;
  background:#fff;
}
.site-footer{
  border-top:1px solid rgba(223,209,184,.9);
  padding:2rem 0 3rem;
  background:rgba(255,255,255,.35)
}
.footer-grid{
  display:grid;grid-template-columns:2fr 1fr 1fr;gap:1.25rem
}
.footer-grid h2,.footer-grid h3{margin-top:0}
.footer-links{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}
.center{text-align:center}
@media (max-width: 1000px){
  .grid-4,.grid-3,.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width: 760px){
  .header-inner,.hero-grid,.grid-2,.grid-3,.grid-4,.theme-grid,.footer-grid{grid-template-columns:1fr;display:grid}
  .site-nav{justify-content:flex-start}
  .header-inner{align-items:start}
  .hero{padding-top:2rem}
  .registration-frame{min-height:900px}
}
