:root{
  /* fluid typography tokens */
  --fs-body: clamp(0.94rem, 1.6vw, 1.02rem);
  --fs-h1: clamp(2.08rem, 8.5vw, 4.8rem);
  --fs-h2: clamp(1.36rem, 4.2vw, 2.7rem);
  --bg:#f7f8fc;
  --surface:#ffffff;
  --surface-strong:#ffffff;
  --text:#080d21;
  --heading:#293665;
  --muted:#596273;
  --line:rgba(8,13,33,0.12);
  --accent:#6d3ff2;
  --accent-2:#0f766e;
  --accent-3:#eab308;
  --accent-soft:#eee8ff;
  --error:#dc2626;
  --error-soft:rgba(220,38,38,0.08);
  --shadow:0 22px 70px rgba(8,13,33,0.12);
  --shadow-soft:0 10px 30px rgba(8,13,33,0.08);
  --radius:8px;
  --max-width:1120px;
}

*{box-sizing:border-box}
.skip-link{position:fixed;top:8px;left:8px;z-index:2000;padding:10px 14px;border-radius:var(--radius);background:var(--accent);color:#fff;font-weight:700;text-decoration:none;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 58%,#fff);outline-offset:3px}
[hidden]{display:none!important}
html,body{min-height:100%;overflow-x:hidden}
html{scroll-padding-top:76px}
body{
  margin:0;
  padding-top:76px;
  font-size:var(--fs-body);
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at top left, rgba(109,63,242,0.16), transparent 34rem),
    linear-gradient(180deg, var(--bg), var(--surface));
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body, .site-header, .meeting-card, .feature, .hero-panel, .modal-panel{transition:background-color 180ms ease, color 180ms ease, border-color 180ms ease}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
button,input,textarea{font:inherit}
select{font:inherit}

/* Form validation states */
.field-error{
  display:block;
  margin-top:6px;
  color:var(--error);
  background:transparent;
  font-size:0.92rem;
}
.field-error[role="alert"]{
  /* slight visual prominence for assistive and visual users */
  padding:6px 8px;
  border-radius:6px;
  background:var(--error-soft);
}

input.is-invalid, textarea.is-invalid, select.is-invalid{
  border-color:var(--error);
  box-shadow:0 4px 10px rgba(220,38,38,0.06) inset;
}
input.is-valid, textarea.is-valid, select.is-valid{
  border-color:color-mix(in srgb, var(--accent) 60%, var(--line));
}
/* Smooth transitions for form state changes */
input, textarea, select{
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

html.reveal-ready .reveal-item{
  opacity:0;
  transform:translateY(22px);
  transition:
    opacity 620ms ease,
    transform 620ms cubic-bezier(.2,.72,.22,1);
  transition-delay:var(--reveal-delay, 0ms);
  will-change:opacity, transform;
}

html.reveal-ready .reveal-item.is-visible{
  opacity:1;
  transform:translateY(0);
}

.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 16px}
.site-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:50;
  background:color-mix(in srgb, var(--surface-strong) 72%, transparent);
  border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent);
  backdrop-filter:blur(18px) saturate(145%);
  -webkit-backdrop-filter:blur(18px) saturate(145%);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:76px;
  max-width:var(--max-width);
  margin:0 auto;
  padding:0 16px;
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;letter-spacing:0;color:var(--text)}
.logo-mark{width:58px;height:44px;object-fit:contain}
.brand span{font-size:1.02rem}
.nav{display:none;align-items:center;gap:6px}
.menu-toggle{display:none;width:44px;height:44px;border-radius:8px}
.nav a{
  color:var(--muted);
  text-decoration:none;
  font-size:.94rem;
  font-weight:700;
  padding:10px 12px;
  border-radius:999px;
}
.nav a:hover,.nav a:focus{color:var(--text);background:var(--accent-soft);outline:none}
.nav a[aria-current="page"]{color:var(--text);background:var(--accent-soft)}
.nav a[aria-current="page"]{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 24%, transparent)}
.nav a,.btn,.icon-btn,.book-details-toggle{min-height:44px}
.back-to-top{position:fixed;right:18px;bottom:calc(18px + var(--consent-offset, 0px));z-index:850;width:48px;height:48px;border:1px solid var(--line);border-radius:999px;background:var(--accent);color:#fff;font-size:1.35rem;font-weight:700;box-shadow:var(--shadow-soft);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity 180ms ease,transform 180ms ease,visibility 180ms ease,bottom 180ms ease}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover,.back-to-top:focus-visible{background:color-mix(in srgb,var(--accent) 84%,#000);outline:3px solid color-mix(in srgb,var(--accent) 28%,transparent);outline-offset:3px}

.btn,.icon-btn{
  border:1px solid var(--line);
  background:var(--surface-strong);
  color:var(--text);
  cursor:pointer;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
}
.btn{
  border-radius:999px;
  padding:11px 20px;
  font-weight:800;
  gap:8px;
  line-height:1;
  text-align:center;
  box-shadow:0 1px 0 rgba(255,255,255,.2) inset;
}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.secondary{background:transparent}
.btn:hover,.icon-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft)}
.btn:active,.icon-btn:active{transform:translateY(0)}
.btn[disabled],.btn[aria-disabled="true"]{
  cursor:not-allowed;
  opacity:.72;
  transform:none;
  box-shadow:none;
}
.icon-btn{width:44px;height:44px;border-radius:999px;padding:0;font-size:1.35rem;font-weight:700}
.hero{padding:36px 0 42px}
.hero-grid{display:grid;gap:28px;align-items:start}
.hero-copy,.hero-panel,.featured-book > div,.meeting-content,.book-meta,.contact-card > div{min-width:0}
.hero-copy{max-width:720px}
.hero-copy h1{max-width:720px}
.eyebrow{
  margin:0 0 10px;
  color:var(--accent-2);
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.12em;
}
h1,h2,h3,p{overflow-wrap:break-word}
.book h3,
.book-description,
.book-detail-label,
.book-topics-list-item,
.book-learning-goals-list-item{
  overflow-wrap:anywhere;
}
.muted{color:var(--muted)}
h1{
  margin:0;
  max-width:12ch;
  font-size:var(--fs-h1);
  font-weight:700;
  line-height:.92;
  letter-spacing:0;
  color:var(--heading);
  overflow-wrap:break-word;
}
h2{margin:0;font-size:var(--fs-h2);line-height:1.04}
h3{margin:0;font-size:1.15rem;line-height:1.2}
.hero-sub{max-width:640px;margin:22px 0 0;color:var(--muted);font-size:1.12rem}
.hero-stats{
  display:grid;
  gap:8px;
  margin-top:18px;
}
.hero-stat{
  margin:0;
  color:var(--text);
  font-size:.95rem;
  font-weight:800;
}
.spaced-cta{margin-top:16px}
.hero-support{
  display:grid;
  gap:12px;
  padding-top:16px;
  border-top:1px solid var(--line);
}
.hero-support .hero-flow,
.hero-support .community-proof,
.hero-support .hero-metrics{
  margin-top:0;
}
.hero-support .btn{
  width:max-content;
}
.hero-flow{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:20px;
}
.hero-flow span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:7px 10px;
  border:1px solid var(--line);
  border-radius:999px;
  background:color-mix(in srgb, var(--surface-strong) 76%, transparent);
  color:var(--text);
  font-size:.9rem;
  font-weight:850;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.community-proof{
  display:flex;
  align-items:center;
  gap:12px;
  max-width:620px;
  margin-top:18px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:color-mix(in srgb, var(--surface-strong) 78%, transparent);
}
.community-proof p{margin:0;color:var(--muted);font-size:.96rem}
.community-proof strong{color:var(--text)}
.proof-avatars{
  display:flex;
  flex:0 0 auto;
  padding-left:8px;
}
.proof-avatars span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  margin-left:-8px;
  border:2px solid var(--surface-strong);
  border-radius:999px;
  background:linear-gradient(135deg, var(--accent), var(--accent-2));
  color:#fff;
  font-size:.7rem;
  font-weight:800;
}
.hero-metrics{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px;color:var(--muted)}
.hero-metrics span{
  display:inline-flex;
  align-items:baseline;
  gap:6px;
  padding:9px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  background:color-mix(in srgb, var(--surface-strong) 72%, transparent);
}
.hero-metrics strong{color:var(--text)}

.hero-panel{
  background:linear-gradient(145deg, var(--surface-strong), color-mix(in srgb, var(--surface) 82%, var(--accent-soft)));
  border:1px solid color-mix(in srgb, var(--accent) 18%, var(--line));
  border-radius:var(--radius);
  padding:18px;
  box-shadow:var(--shadow);
}
.panel-top{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px;border-bottom:1px solid var(--line);padding-bottom:16px}
.status-pill{
  display:inline-flex;
  align-items:center;
  width:max-content;
  border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);
  background:var(--accent-soft);
  color:var(--accent);
  border-radius:999px;
  padding:5px 9px;
  font-size:.76rem;
  font-weight:800;
}
.hero-panel .status-pill{
  border-color:color-mix(in srgb, var(--accent) 72%, transparent);
  background:var(--accent);
  color:#fff;
  padding:6px 11px;
  box-shadow:0 8px 18px color-mix(in srgb, var(--accent) 24%, transparent);
}
.featured-book{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:center;padding:22px 0}
.featured-status-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:0 0 8px;
  padding:4px 10px;
  border:1px solid color-mix(in srgb, var(--accent) 24%, var(--line));
  border-radius:999px;
  background:color-mix(in srgb, var(--accent) 10%, var(--surface-strong));
  color:var(--text);
  font-size:.78rem;
  font-weight:800;
  line-height:1.1;
}
.featured-context{
  display:grid;
  gap:6px;
  margin:10px 0 0;
}
.featured-context-item{
  margin:0;
  color:var(--muted);
  font-size:.9rem;
  font-weight:700;
}
.featured-progress{
  display:grid;
  gap:6px;
  margin-top:12px;
}
.featured-progress-track{
  width:100%;
  max-width:220px;
  height:8px;
  overflow:hidden;
  border-radius:999px;
  background:color-mix(in srgb, var(--line) 76%, var(--surface));
}
.featured-progress-fill{
  display:block;
  height:100%;
  width:0;
  border-radius:inherit;
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
}
.featured-progress-label{
  color:var(--muted);
  font-size:.82rem;
  font-weight:800;
}
.featured-book h2{font-size:1.75rem;line-height:1.08}
.featured-book p:not(.eyebrow),.next-cycle p,.next-meeting p,.section-heading p:not(.eyebrow),.feature p,.meeting-content p,.signup-strip p,.contact-card p:not(.eyebrow){color:var(--muted)}
.featured-link{
  margin-top:12px;
  color:var(--text);
  border-color:color-mix(in srgb, var(--accent) 22%, var(--line));
  background:color-mix(in srgb, var(--surface-strong) 88%, white);
}
.featured-link:hover{
  color:var(--text);
  background:color-mix(in srgb, var(--accent-soft) 54%, var(--surface-strong));
  border-color:color-mix(in srgb, var(--accent) 38%, var(--line));
}
.featured-link:focus-visible{
  outline:2px solid color-mix(in srgb, var(--accent) 58%, white);
  outline-offset:3px;
}
.amazon-action-link::after,
.section-inline-link::after,
.book-community-link::before{
  display:inline-block;
  font-weight:800;
}
.amazon-action-link::after{
  content:"↗";
  margin-left:8px;
}
.featured-cover{
  max-width:120px;
  width:100%;
  height:auto;
  object-fit:cover;
  border-radius:8px;
  box-shadow:var(--shadow-soft);
}
.featured-cover-placeholder{
  display:grid;
  aspect-ratio:2 / 3;
  place-items:center;
  padding:12px;
  border:1px solid var(--line);
  background:color-mix(in srgb, var(--accent-soft) 72%, var(--surface-strong));
  color:var(--muted);
  font-size:.8rem;
  font-weight:800;
  text-align:center;
}
.next-cycle,.next-meeting{padding-top:16px}
.next-meeting{
  padding:16px;
  border:1px solid color-mix(in srgb, var(--accent) 38%, var(--line));
  border-radius:var(--radius);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--accent-soft) 84%, var(--surface-strong)), var(--surface-strong));
  box-shadow:0 10px 24px color-mix(in srgb, var(--accent) 10%, transparent);
}
.next-cycle span,.next-meeting span{display:block;color:var(--muted);font-size:.86rem;font-weight:800}
.next-meeting span{color:color-mix(in srgb, var(--accent) 68%, var(--text));font-weight:800}
.next-cycle strong,.next-meeting strong{display:block;font-size:1.68rem;line-height:1.08;margin-top:3px;color:var(--text)}
.next-cycle p,.next-meeting p{margin:6px 0 0}
.next-meeting-pages{
  display:inline-flex;
  width:max-content;
  margin-top:12px;
  padding:7px 10px;
  border-radius:999px;
  background:color-mix(in srgb, var(--surface-strong) 72%, transparent);
  color:var(--text)!important;
  font-size:.9rem;
  font-weight:800;
}
.next-meeting-panel{
  position:relative;
  overflow:hidden;
}
.next-meeting-panel::before{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  top:-96px;
  right:-72px;
  border-radius:50%;
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  pointer-events:none;
}
.next-meeting-panel .next-meeting{
  position:relative;
  border:0;
  padding:8px;
  background:transparent;
  box-shadow:none;
}
.next-meeting-panel [data-next-meeting-kicker]{
  display:inline-flex;
  width:max-content;
  padding:6px 10px;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-size:.76rem;
  letter-spacing:.02em;
}
.next-meeting-panel [data-next-meeting-date]{
  max-width:15ch;
  margin-top:18px;
  font-size:clamp(1.7rem, 3vw, 2.25rem);
  line-height:1.05;
}
.next-meeting-panel [data-next-meeting-title]{
  margin-top:12px;
  color:var(--text);
  font-size:1.08rem;
  font-weight:800;
}
.next-meeting-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:18px;
}
.next-meeting .next-meeting-meta span{
  display:inline-flex;
  width:auto;
  align-items:center;
  padding:6px 9px;
  border:1px solid color-mix(in srgb, var(--accent) 20%, var(--line));
  border-radius:999px;
  background:color-mix(in srgb, var(--surface-strong) 78%, transparent);
  color:var(--text);
  font-size:.8rem;
}
.next-meeting-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:22px;
  color:var(--accent);
  font-size:.9rem;
  font-weight:800;
  text-decoration:none;
}
.next-meeting-link:hover{text-decoration:underline}
.next-meeting-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}

.hero,
.section{
  position:relative;
}
.section::before{
  content:"";
  position:absolute;
  left:max(16px, calc((100% - var(--max-width)) / 2 + 16px));
  right:max(16px, calc((100% - var(--max-width)) / 2 + 16px));
  top:0;
  height:1px;
  background:color-mix(in srgb, var(--line) 76%, transparent);
}
.section{padding:68px 0}
.section-muted{
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--surface-strong) 50%, transparent),
      color-mix(in srgb, var(--surface-strong) 30%, transparent));
}
#videos.section-muted{
  background:transparent;
}
.split-section{display:grid;gap:28px}
.feature-grid{display:grid;gap:14px}
.feature{
  border:1px solid var(--line);
  background:color-mix(in srgb, var(--surface-strong) 82%, transparent);
  border-radius:var(--radius);
  padding:18px;
}
.feature-icon{display:block;color:var(--accent);font-weight:800;margin-bottom:24px}
.feature p{margin:10px 0 0}
.section-heading{max-width:720px;margin-bottom:24px}
.section-heading.compact{margin-bottom:18px}
.section-heading p{margin:12px 0 0;font-size:1.02rem}
.section-heading-row{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.books-timeline{
  display:grid;
  gap:24px;
}
.books-year-group{
  display:grid;
  gap:14px;
}
.books-year-heading{
  display:flex;
  align-items:center;
  gap:12px;
}
.books-year-heading::after{
  content:"";
  flex:1;
  height:1px;
  background:color-mix(in srgb, var(--line) 76%, transparent);
}
.books-year-heading h3{
  font-size:1rem;
  color:var(--text);
}
.section-inline-link{
  display:inline-flex;
  align-items:center;
  color:var(--text);
  font-size:.92rem;
  font-weight:800;
  text-decoration:none;
  text-underline-offset:3px;
}
.section-inline-link::after{
  content:"→";
  margin-left:8px;
}
.section-inline-link:hover{text-decoration:underline}
.section-inline-link:focus-visible{
  outline:2px solid color-mix(in srgb, var(--accent) 58%, white);
  outline-offset:3px;
  border-radius:6px;
}
.section-heading .eyebrow,.contact-card .eyebrow{
  margin:0 0 10px;
  color:var(--accent-2);
  font-size:.78rem;
}

.community-layout{display:grid;gap:18px}
.discussion-list{display:grid;gap:12px}
.discussion-item{
  display:grid;
  gap:11px;
  padding:22px;
  border:1px solid color-mix(in srgb, var(--accent-2) 16%, var(--line));
  border-radius:var(--radius);
  background:var(--surface-strong);
}
.discussion-item span{
  color:var(--accent-2);
  font-size:.82rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.discussion-item p{margin:0;color:var(--muted);font-size:1.04rem;line-height:1.48}

.video-grid{display:grid;gap:14px}
.video-card{
  display:grid;
  grid-template-columns:112px 1fr;
  gap:16px;
  min-width:0;
  align-items:stretch;
  padding:12px;
  border:1px solid color-mix(in srgb, var(--accent) 16%, var(--line));
  border-radius:var(--radius);
  background:var(--surface-strong);
  color:var(--text);
}
.video-card-featured{max-width:780px}
.video-thumb{
  min-height:128px;
  border-radius:8px;
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 28% 22%, rgba(255,255,255,.28), transparent 26%),
    linear-gradient(145deg, #111827 0%, #6d3ff2 48%, #dc2626 100%);
  box-shadow:var(--shadow-soft);
}
.video-thumb::before{
  content:"";
  position:absolute;
  inset:14px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:7px;
}
.video-thumb img{
  position:relative;
  z-index:1;
  width:36px;
  height:36px;
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.28));
}
.video-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  min-width:0;
}
.video-meta strong{font-size:1.08rem;line-height:1.2}
.video-meta > span:last-child{color:var(--muted)}
#videos .hero-actions{margin-top:20px}
#videos .btn.primary{
  box-shadow:0 12px 28px color-mix(in srgb, var(--accent) 24%, transparent);
}

.timeline{display:grid;gap:18px}
.timeline-summary{display:grid;gap:14px}
.timeline-progress{
  padding:18px;
  border:1px solid color-mix(in srgb, var(--accent) 24%, var(--line));
  border-radius:var(--radius);
  background:linear-gradient(145deg, var(--surface-strong), color-mix(in srgb, var(--accent-soft) 44%, var(--surface)));
  box-shadow:var(--shadow-soft);
}
.timeline-progress-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
}
.timeline-progress-head .eyebrow{margin-bottom:6px}
.timeline-progress-head h3{font-size:1.15rem}
.timeline-progress-value{
  font-size:2rem;
  line-height:1;
  color:var(--accent);
}
.timeline-progress-track{
  position:relative;
  width:100%;
  height:14px;
  margin-top:18px;
  overflow:hidden;
  border-radius:999px;
  background:color-mix(in srgb, var(--line) 68%, var(--surface));
}
.timeline-progress-fill{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
}
.timeline-list{
  position:relative;
  display:grid;
  gap:14px;
  margin:0;
  padding:0;
  list-style:none;
}
.timeline-list::before{
  content:"";
  position:absolute;
  left:45px;
  top:18px;
  bottom:18px;
  width:2px;
  background:color-mix(in srgb, var(--accent) 18%, var(--line));
}
.timeline-item{position:relative}
.meeting-card{
  display:grid;
  grid-template-columns:92px 1fr;
  gap:16px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface-strong);
  box-shadow:0 1px 0 rgba(255,255,255,.24) inset;
}
.meeting-card.is-current{border-color:color-mix(in srgb, var(--accent) 48%, var(--line));box-shadow:var(--shadow-soft)}
.meeting-card.is-completed{
  border-color:color-mix(in srgb, var(--accent-2) 28%, var(--line));
  background:color-mix(in srgb, var(--surface-strong) 92%, var(--accent-soft));
}
.meeting-card.is-upcoming{
  border-color:color-mix(in srgb, var(--line) 88%, transparent);
}
.meeting-date{
  min-height:92px;
  border-radius:7px;
  /* stronger adaptive gradient: favor accent tones for better contrast */
  background:linear-gradient(135deg,
    color-mix(in srgb, var(--accent) 62%, var(--surface) 38%),
    color-mix(in srgb, var(--accent-2) 62%, var(--surface) 38%));
  color:var(--bg);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:12px;
  text-transform:uppercase;
  font-weight:800;
  position:relative;
  z-index:1;
}
.meeting-date span{font-size:1.05rem}
.meeting-date small{font-size:.8rem;opacity:.82}
.meeting-date strong{font-size:.78rem;opacity:.72}
.meeting-content{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.meeting-content p{margin:0}
.meeting-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}
.meeting-number{
  color:var(--muted);
  font-size:.9rem;
  font-weight:800;
}
.meeting-time{
  color:var(--muted);
  font-size:.92rem;
  font-weight:700;
}
.meeting-card.is-completed .status-pill{
  color:var(--accent-2);
  border-color:color-mix(in srgb, var(--accent-2) 28%, transparent);
  background:color-mix(in srgb, var(--accent-2) 12%, var(--surface-strong));
}
.meeting-card.is-upcoming .status-pill{
  color:var(--text);
  border-color:color-mix(in srgb, var(--line) 90%, transparent);
  background:color-mix(in srgb, var(--surface-strong) 80%, var(--accent-soft));
}
.meeting-card.is-current .status-pill{
  color:#fff;
  border-color:var(--accent);
  background:var(--accent);
}
.pages{font-size:.86rem;font-weight:800;color:var(--accent-2)}

.signup-strip{
  margin-top:18px;
  display:grid;
  gap:16px;
  align-items:center;
  padding:18px;
  border:1px solid transparent;
  border-radius:var(--radius);
  background:linear-gradient(135deg, var(--accent), #312e81);
  color:#fff;
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
}
.signup-strip p{margin:6px 0 0;color:rgba(255,255,255,.78)}
.signup-strip .btn.primary{background:#fff;color:#312e81;border-color:#fff}
.signup-strip .btn.secondary{background:rgba(8,13,33,.28);border-color:rgba(255,255,255,.72);color:#fff}
.signup-strip::before{
  content:'';
  position:absolute;
  inset:auto auto -60px -40px;
  width:180px;
  height:180px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  filter:blur(8px);
  pointer-events:none;
}
.signup-strip::after{
  content:'';
  position:absolute;
  inset:-40px -50px auto auto;
  width:180px;
  height:180px;
  border-radius:999px;
  background:rgba(255,255,255,.06);
  filter:blur(10px);
  pointer-events:none;
}
.signup-strip > *{position:relative;z-index:1}

.signup-strip-community{
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.16), transparent 30%),
    linear-gradient(135deg, #6d3ff2 0%, #5331c8 48%, #2f2b84 100%);
  border-color:rgba(255,255,255,.08);
}
.signup-strip-community .eyebrow{
  color:rgba(255,255,255,.76);
}
.signup-strip-community .btn.primary{
  box-shadow:0 10px 24px rgba(14, 12, 58, .18);
}

.signup-strip-support{
  background:
    radial-gradient(circle at 78% 20%, rgba(255,255,255,.12), transparent 28%),
    linear-gradient(135deg, #123f4a 0%, #14596a 42%, #1f7a68 100%);
  border-color:rgba(180,255,235,.12);
}
.signup-strip-support .eyebrow{
  color:#b7f3dc;
}
.signup-strip-support .btn.primary{
  background:#f5fffb;
  border-color:#f5fffb;
  color:#14596a;
}
.signup-strip-support .btn.secondary{
  background:rgba(3,25,23,.16);
  border-color:rgba(205,255,240,.62);
  color:#fff;
}

.supporters-summary p:not(.eyebrow){margin:10px 0 0}
.supporters-summary h2 span{color:var(--accent)}
.support-page .hero{
  background:
    radial-gradient(circle at 14% 18%, color-mix(in srgb, var(--accent-soft) 48%, transparent), transparent 28%),
    radial-gradient(circle at 86% 12%, color-mix(in srgb, var(--accent-2) 12%, transparent), transparent 24%);
}
.support-page .hero-panel{
  border-color:color-mix(in srgb, var(--accent-2) 18%, var(--line));
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--surface-strong) 92%, white), var(--surface-strong));
}
.support-highlights{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.support-highlights span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:7px 12px;
  border:1px solid color-mix(in srgb, var(--accent-2) 16%, var(--line));
  border-radius:999px;
  background:color-mix(in srgb, var(--surface-strong) 84%, transparent);
  color:var(--text);
  font-size:.84rem;
  font-weight:800;
}
.supporters-summary{
  display:grid;
  gap:14px;
}
.supporters-summary-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  margin-top:4px;
}
.supporters-summary-item{
  display:grid;
  gap:4px;
  padding:12px 14px;
  border:1px solid color-mix(in srgb, var(--accent-2) 16%, var(--line));
  border-radius:14px;
  background:color-mix(in srgb, var(--surface) 68%, var(--surface-strong));
}
.supporters-summary-item strong{
  color:var(--text);
  font-size:.92rem;
}
.supporters-summary-item span{
  color:var(--muted);
  font-size:.84rem;
  font-weight:700;
}
.supporters-grid{
  display:grid;
  gap:16px;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
}
.supporter-card,
.supporters-empty{
  padding:20px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface-strong);
  box-shadow:var(--shadow-soft);
}
.supporter-card{
  position:relative;
  overflow:hidden;
  display:grid;
  gap:14px;
  align-content:start;
  min-height:132px;
  transition:transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}
.supporter-card::after{
  content:'';
  position:absolute;
  inset:auto -30% -45% auto;
  width:120px;
  height:120px;
  border-radius:999px;
  background:color-mix(in srgb, var(--accent) 14%, transparent);
}
.supporter-card:hover,
.supporter-card:focus-within{
  transform:translateY(-3px);
  border-color:color-mix(in srgb, var(--accent-2) 22%, var(--line));
  box-shadow:0 16px 30px color-mix(in srgb, var(--accent) 8%, transparent), var(--shadow-soft);
}
.supporter-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border-radius:14px;
  background:linear-gradient(145deg, color-mix(in srgb, var(--accent) 92%, white), color-mix(in srgb, var(--accent-2) 24%, var(--accent)));
  color:#fff;
  font-size:.88rem;
  font-weight:800;
  letter-spacing:.04em;
  position:relative;
  z-index:1;
  box-shadow:0 10px 18px color-mix(in srgb, var(--accent) 18%, transparent);
}
.supporter-name{
  display:block;
  color:var(--text);
  font-size:1.05rem;
  font-weight:800;
  text-decoration:none;
  position:relative;
  z-index:1;
}
.supporters-empty p{margin:10px 0 0;color:var(--muted)}

.books-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
  align-items:stretch;
}
.book-details-toggle{min-height:44px;padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);font-weight:700;cursor:pointer}
.data-state{grid-column:1/-1;margin:0;padding:18px;border:1px dashed var(--line);border-radius:var(--radius);background:var(--surface);color:var(--muted)}
.data-state.is-error{border-color:color-mix(in srgb,var(--error) 42%,var(--line));background:var(--error-soft);color:var(--error)}
.book-details-toggle{justify-self:start;margin:0 16px 16px;color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.book-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px}
.book-card-actions .book-details-toggle,.book-card-actions .book-affiliate-link{width:auto;margin:0}
.home-next-cycle-book{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:center}
.home-next-cycle-cover{display:block;width:100%;aspect-ratio:2 / 3;object-fit:cover;border-radius:7px;box-shadow:var(--shadow-soft)}
.home-next-cycle-copy{min-width:0}
.home-next-cycle-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.home-next-cycle-actions .btn{margin:0;white-space:normal}
.book-community-link,.book-meetings-link,.book-affiliate-link{display:inline-flex;align-items:center;min-height:44px;margin:8px 8px 0 0}
.book{
  display:grid;
  gap:14px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface-strong);
  padding:12px;
  min-width:0;
  transition:transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}
.book.is-interactive{cursor:pointer}
.book-main{
  display:grid;
  grid-template-columns:86px 1fr;
  gap:14px;
  align-items:start;
  min-width:0;
}
.book-meta{
  display:grid;
  gap:8px;
  align-content:start;
}
.book-badge{
  display:inline-flex;
  width:max-content;
  align-items:center;
  padding:4px 9px;
  border:1px solid color-mix(in srgb, var(--accent-2) 22%, var(--line));
  border-radius:999px;
  background:color-mix(in srgb, var(--accent-soft) 34%, var(--surface-strong));
  color:var(--text);
  font-size:.76rem;
  font-weight:800;
}
.book-cover{
  width:100%;
  height:128px;
  border-radius:7px;
  color:#fff;
  display:flex;
  align-items:flex-end;
  padding:10px;
  font-size:.72rem;
  line-height:1.05;
  font-weight:800;
  box-shadow:var(--shadow-soft);
  object-fit:cover;
}
.book-cover-image{display:block;padding:0}
.book-cover-placeholder{
  justify-content:center;
  border:1px solid var(--line);
  background:color-mix(in srgb, var(--accent-soft) 72%, var(--surface-strong));
  color:var(--muted);
  text-align:center;
}
.clean-code{background:linear-gradient(145deg,#111827,#0f766e)}
.pragmatic{background:linear-gradient(145deg,#7c2d12,#eab308)}
.atomic{background:linear-gradient(145deg,#1f2937,#f97316)}
.algorithms{background:linear-gradient(145deg,#0f172a,#2563eb)}
.tidy{background:linear-gradient(145deg,#312e81,#7c3aed)}
.solid{background:linear-gradient(145deg,#581c87,#0f766e)}
.productive{background:linear-gradient(145deg,#111827,#6d3ff2 52%,#facc15)}
.book-meta p{margin:6px 0 0;color:var(--muted);font-size:.92rem}
.book-description{
  margin:0;
}
.book-meta-grid{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
}
.book-meta-chip{
  color:var(--muted);
  font-size:.8rem;
  font-weight:800;
}
.book-detail-section{
  display:grid;
  gap:8px;
  padding:10px 12px;
  border:1px solid color-mix(in srgb, var(--line) 88%, transparent);
  border-radius:calc(var(--radius) - 6px);
  background:color-mix(in srgb, var(--surface) 58%, var(--surface-strong));
}
.book-extra{
  display:grid;
  gap:10px;
  padding-top:2px;
}
.book-detail-label{
  margin:0;
  color:var(--text);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.book-topics-list,
.book-learning-goals-list{
  display:grid;
  gap:6px;
  margin:0;
  padding:0;
  list-style:none;
}
.book-topics-list-item,
.book-learning-goals-list-item{
  position:relative;
  padding-left:14px;
  color:var(--muted);
  font-size:.82rem;
  font-weight:600;
  line-height:1.45;
}
.book-topics-list-item::before,
.book-learning-goals-list-item::before{
  content:"";
  position:absolute;
  left:0;
  top:.56em;
  width:6px;
  height:6px;
  border-radius:999px;
  background:color-mix(in srgb, var(--accent) 70%, var(--accent-2));
}
.book-status{
  color:var(--muted);
  font-size:.82rem;
  font-weight:800;
}
.book-affiliate-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  margin-top:10px;
  padding:9px 14px;
  border:1px solid color-mix(in srgb, var(--accent) 26%, var(--line));
  border-radius:999px;
  background:color-mix(in srgb, var(--accent-soft) 72%, var(--surface-strong));
  color:var(--accent);
  font-size:.88rem;
  font-weight:800;
  text-decoration:none;
  text-underline-offset:3px;
}
.book-affiliate-link:hover{
  border-color:color-mix(in srgb, var(--accent) 42%, var(--line));
  background:color-mix(in srgb, var(--accent-soft) 88%, var(--surface-strong));
  color:var(--accent);
  text-decoration:none;
}
.book-affiliate-link:focus-visible{
  outline:2px solid color-mix(in srgb, var(--accent) 58%, white);
  outline-offset:3px;
  border-radius:6px;
}
.book-community-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  margin-top:2px;
  padding:8px 12px;
  border:1px solid color-mix(in srgb, var(--accent-2) 28%, var(--line));
  border-radius:999px;
  background:color-mix(in srgb, var(--accent-2) 10%, var(--surface-strong));
  color:color-mix(in srgb, var(--accent-2) 68%, var(--text));
  font-size:.86rem;
  font-weight:800;
  text-decoration:none;
  text-underline-offset:3px;
}
.book-community-link::before{
  content:"▶";
  margin-right:7px;
  font-size:.74rem;
}
.book-community-link:hover{
  border-color:color-mix(in srgb, var(--accent-2) 46%, var(--line));
  background:color-mix(in srgb, var(--accent-2) 16%, var(--surface-strong));
  color:color-mix(in srgb, var(--accent-2) 78%, var(--text));
  text-decoration:none;
}
.book-community-link:focus-visible{
  outline:2px solid color-mix(in srgb, var(--accent) 58%, white);
  outline-offset:3px;
  border-radius:6px;
}

.book.is-interactive:focus-visible{
  outline:2px solid color-mix(in srgb, var(--accent) 58%, white);
  outline-offset:3px;
}

.affiliate-disclosure-section{padding-top:0}
.affiliate-disclosure{
  margin:0;
  color:var(--muted);
  font-size:.9rem;
}

@media (hover:hover) and (pointer:fine){
  .book.is-interactive:hover,
  .book.is-interactive:focus-visible,
  .book:focus-within{
    transform:translateY(-4px);
    border-color:color-mix(in srgb, var(--accent) 48%, var(--line));
    box-shadow:0 14px 26px color-mix(in srgb, var(--accent) 8%, transparent), var(--shadow-soft);
    z-index:1;
  }
}

@media (min-width:960px){
  .book-extra{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    align-items:start;
  }
}

.contact-section{
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--surface-strong) 44%, transparent),
      transparent);
}
.contact-card{
  display:grid;
  gap:18px;
  align-items:center;
  padding:24px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface-strong);
}
.contact-card p{margin:8px 0 0}
.social{display:flex;gap:10px;margin-top:18px}
.social a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--text);
  text-decoration:none;
  overflow:visible;
  line-height:0;
}
.social a svg{display:block;width:22px;height:22px;overflow:visible}
.social a img{display:block;width:22px;height:22px;overflow:visible}

/* small inline icons used inside links (email) */
a img[width="18"]{display:inline-block;vertical-align:middle;margin-right:8px}

.icon-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;padding:4px;border-radius:6px}
.icon-link:focus{outline:3px solid color-mix(in srgb, var(--accent) 40%, transparent);outline-offset:3px}
.social a:hover,.social a:focus{background:var(--accent-soft);color:var(--accent);outline:none}

.site-footer{padding:32px 0;border-top:1px solid var(--line);background:var(--surface);color:var(--muted)}
.footer-inner{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);align-items:start;justify-content:space-between;gap:28px}
.footer-inner p{margin:0}
.footer-tagline{margin-top:4px!important;font-size:.94rem}
.footer-inner a{text-decoration:none;font-weight:800;color:var(--text)}
.footer-brand{display:inline-block;margin-bottom:10px;font-size:1.05rem}
.footer-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px 20px}
.footer-links a{padding:4px 0}
.footer-links a:hover,.footer-links a:focus-visible{color:var(--accent)}

.consent-banner{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:1200;
  border-top:1px solid var(--line);
  background:color-mix(in srgb, var(--surface-strong) 96%, var(--bg));
  box-shadow:0 -6px 24px rgba(0,0,0,0.08);
  padding:8px 0; /* espaço vertical para o banner */
}
.consent-inner{
  /* mobile-first: pilha os elementos verticalmente e botões em largura total */
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:stretch;
  justify-content:center;
  padding-left:16px;
  padding-right:16px;
  max-width:var(--max-width);
  margin:0 auto;
  padding-bottom:calc(8px + env(safe-area-inset-bottom, 0px));
}

.consent-inner p{margin:0;color:var(--muted)}
.consent-actions{
  display:flex;
  flex-direction:row; /* botões lado a lado por padrão */
  gap:10px;
  align-self:center; /* centraliza o grupo de botões dentro do container */
  justify-content:center;
  flex-wrap:wrap;
}
.consent-actions .btn{width:auto;min-width:120px;display:inline-flex;justify-content:center}

@media (min-width:720px){
  .consent-inner{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
  }
  .consent-actions{
    flex-direction:row;
    gap:8px;
    align-items:center;
  }
  .consent-actions .btn{width:auto}
}

/* Very small screens: stack buttons vertically for larger touch targets */
@media (max-width:359px){
  .consent-actions{
    flex-direction:column;
    width:100%;
    align-items:center;
  }
  .consent-actions .btn{width:92%;min-width:0}
}

.modal{
  position:fixed;
  inset:0;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
  transition:opacity 180ms ease, visibility 180ms ease;
}
.modal[aria-hidden="true"]{opacity:0;visibility:hidden;pointer-events:none}
.modal[aria-hidden="false"]{opacity:1;visibility:visible}
.modal-backdrop{position:absolute;inset:0;background:rgba(17,16,14,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal-panel{
  position:relative;
  z-index:1;
  width:min(100%, 560px);
  max-height:calc(100vh - 32px);
  overflow:auto;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface-strong);
  padding:22px;
  box-shadow:var(--shadow);
  transform:translateY(10px);
  opacity:0;
  transition:transform 220ms ease, opacity 180ms ease;
}
.modal[aria-hidden="false"] .modal-panel{transform:translateY(0);opacity:1}
.modal-close{position:absolute;right:14px;top:14px}
.modal-panel h3{font-size:1.45rem;margin:0 46px 18px 0}
.signup-intro{
  margin:0 0 14px;
  color:var(--muted);
}
.signup-context{
  display:grid;
  gap:6px;
  margin-bottom:18px;
  padding:14px;
  border:1px solid color-mix(in srgb, var(--accent) 18%, var(--line));
  border-radius:8px;
  background:color-mix(in srgb, var(--accent-soft) 48%, var(--surface));
}
.signup-context strong{
  color:var(--text);
  font-size:.98rem;
}
.signup-context span{
  color:var(--muted);
  font-size:.93rem;
}
.signup-context a{
  width:max-content;
  margin-top:4px;
  color:var(--accent);
  font-weight:800;
  text-decoration:none;
}
.modal-panel form{display:grid;gap:12px}
.modal-panel label{display:grid;gap:7px;font-weight:800;color:var(--text)}
.field-help{
  color:var(--muted);
  font-size:.88rem;
  font-weight:600;
  line-height:1.4;
}
.field-label{
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.check-text{
  display:inline;
  line-height:1.45;
}
.check-text .required-mark{
  margin-right:4px;
}
.optional-note{
  color:var(--muted);
  font-size:.88rem;
  font-weight:700;
}
.required-mark{
  color:var(--error);
  font-weight:800;
}
.signup-note{
  margin:0;
  padding:12px 14px;
  border-radius:8px;
  background:color-mix(in srgb, var(--accent-soft) 46%, var(--surface));
  color:var(--text);
  font-size:.92rem;
  font-weight:700;
}
.modal-panel input,.modal-panel textarea,.modal-panel select,.feedback-form input,.feedback-form textarea,.feedback-form select{
  width:100%;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--surface);
  color:var(--text);
  padding:12px;
}
.modal-panel select,.feedback-form select,
.form-select{
  display:block;
  min-height:48px;
  height:48px;
  line-height:1.2;
  font-size:1rem;
  font-weight:600;
  padding-right:44px;
  padding-left:12px;
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--muted) 50%),
    linear-gradient(135deg, var(--muted) 50%, transparent 50%),
    linear-gradient(to right, color-mix(in srgb, var(--line) 88%, transparent), color-mix(in srgb, var(--line) 88%, transparent));
  background-position:
    calc(100% - 20px) calc(50% - 2px),
    calc(100% - 14px) calc(50% - 2px),
    calc(100% - 40px) 50%;
  background-size:6px 6px, 6px 6px, 1px 20px;
  background-repeat:no-repeat;
}
.modal-panel select:focus,.feedback-form select:focus,.form-select:focus{
  border-color:color-mix(in srgb, var(--accent) 42%, var(--line));
  box-shadow:0 0 0 4px color-mix(in srgb, var(--accent-soft) 70%, transparent);
  outline:none;
}
.modal-panel select option,.feedback-form select option,.form-select option{
  color:var(--text);
  background:var(--surface);
}

/* validation states */
.modal-panel input.is-invalid, .modal-panel textarea.is-invalid, .modal-panel select.is-invalid{
  border-color:crimson;
  box-shadow:0 0 0 4px rgba(220,20,60,0.06) inset;
}
.modal-panel input.is-valid, .modal-panel textarea.is-valid, .modal-panel select.is-valid{
  border-color:var(--accent-2);
  box-shadow:0 0 0 4px rgba(94,234,212,0.06) inset;
}
.check-label.invalid{color:crimson}
.check-label.invalid input{outline:2px solid rgba(220,20,60,0.12)}
.modal-panel textarea{resize:vertical;min-height:90px}
.check-label{grid-template-columns:auto 1fr;align-items:start;font-weight:700;color:var(--muted)}
.check-label input{width:auto;margin-top:4px}
#signup-result{
  display:none;
  padding:11px 12px;
  border-radius:7px;
  background:var(--accent-soft);
  border-left:4px solid var(--accent);
}
#signup-result{
  display:none;
  padding:11px 12px;
  border-radius:7px;
  background:var(--accent-soft);
  border-left:4px solid var(--accent);
}
/* Removed unused .signup-link styles */
/* .signup-link{
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--surface);
}
 .signup-link p{margin:0}
 .signup-link a{color:var(--accent);font-weight:800;text-decoration:none} */

/* FAQ details/summary styling */
:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 34%, transparent);outline-offset:3px}
/* Removed unused .faq-list styles */
/* .faq-list{display:grid;gap:12px;margin-top:12px}
 .faq-list details{border:1px solid var(--line);background:var(--surface-strong);padding:14px;border-radius:8px}
 .faq-list summary{font-weight:800;cursor:pointer;list-style:none}
 .faq-list summary::-webkit-details-marker{display:none}
 .faq-list details[open]{box-shadow:var(--shadow-soft)} */
/* Removed unused .sticky-cta styles */
/* .sticky-cta{position:fixed;left:16px;right:16px;bottom:16px;z-index:60;display:none}
 .sticky-cta .btn{width:100%;box-shadow:var(--shadow)} */

:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 34%, transparent);outline-offset:3px}

/* visually hidden but accessible to screen readers */
.sr-only{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.feedback-hero{padding-top:54px}
.feedback-layout{display:grid;gap:28px;align-items:start}
.feedback-copy h1{max-width:13ch}
.feedback-points{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}
.feedback-points span{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:8px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  background:color-mix(in srgb, var(--surface-strong) 78%, transparent);
  color:var(--muted);
  font-weight:800;
}
.feedback-form{
  display:grid;
  gap:18px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface-strong);
  padding:18px;
  box-shadow:var(--shadow);
}
.form-section{
  display:grid;
  gap:12px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
}
.form-section:last-of-type{border-bottom:0;padding-bottom:0}
.feedback-form h2{font-size:1.15rem}
.feedback-form label{display:grid;gap:7px;font-weight:800;color:var(--text)}
.feedback-form textarea{resize:vertical;min-height:104px}
.feedback-form fieldset{
  margin:0;
  padding:0;
  border:0;
  display:grid;
  gap:10px;
}
.feedback-form legend{
  padding:0;
  font-weight:800;
  color:var(--text);
}
.radio-grid,.check-grid{display:grid;gap:8px}
.radio-grid label,.check-grid label{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:start;
  gap:9px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--surface);
  color:var(--muted);
}
.radio-grid input,.check-grid input{width:auto;margin-top:4px}
.thanks-page{
  max-width:720px;
  margin:0 auto;
  padding-top:4rem;
  padding-bottom:4rem;
}
.thanks-page.centered{text-align:center}
.thanks-page h1{max-width:14ch}
.thanks-page.centered h1{margin-right:auto;margin-left:auto}
.thanks-page p{color:var(--muted)}

@media (min-width:851px){
  .nav{display:flex}
  .menu-toggle{display:none}
  .hero{padding:50px 0 58px}
  .hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);gap:38px;align-items:start}
  .split-section{grid-template-columns:.68fr 1.32fr;align-items:start}
  .feature-grid{grid-template-columns:repeat(3,1fr)}
  .community-layout{grid-template-columns:minmax(0,.78fr) minmax(360px,1fr);align-items:start}
  .meeting-card{grid-template-columns:112px 1fr;padding:18px}
  .signup-strip{grid-template-columns:1fr auto;padding:22px 24px}
  .contact-card{grid-template-columns:1fr auto}
  .book{flex-basis:320px}
  .feedback-layout{grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);gap:40px}
  .feedback-form{padding:22px}
  .radio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:850px){
  .menu-toggle{display:inline-flex}
  .hero-grid{grid-template-columns:1fr;gap:28px}
  .hero-copy{max-width:none}
  .hero-copy h1{max-width:18ch}
  .hero-panel{margin-top:6px}
  .books-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .book{padding:10px;gap:10px}
  .book-main{grid-template-columns:72px minmax(0,1fr);gap:10px}
  .book-cover{height:106px}
  .book-meta{gap:5px}
  .book h3{font-size:1.02rem;line-height:1.14}
  .book-meta p{font-size:.86rem}
  .book-affiliate-link,
  .book-community-link{font-size:.83rem}
  .book-extra{gap:8px;padding-top:0}
  .book-detail-section{gap:6px;padding:8px 9px}
  .book-detail-label{font-size:.72rem}
  .book-topics-list,
  .book-learning-goals-list{gap:4px}
  .book-topics-list-item,
  .book-learning-goals-list-item{
    padding-left:12px;
    font-size:.76rem;
    line-height:1.32;
  }
  .book-topics-list-item::before,
  .book-learning-goals-list-item::before{
    top:.52em;
    width:5px;
    height:5px;
  }
  .supporters-summary-grid{grid-template-columns:1fr}
  .nav{
    position:fixed;
    inset:76px 12px auto 12px;
    background:color-mix(in srgb, var(--surface-strong) 88%, transparent);
    border:1px solid color-mix(in srgb, var(--line) 84%, transparent);
    border-radius:8px;
    padding:12px;
    display:none;
    flex-direction:column;
    gap:8px;
    z-index:1000;
    box-shadow:var(--shadow-soft);
    backdrop-filter:blur(18px) saturate(145%);
    -webkit-backdrop-filter:blur(18px) saturate(145%);
  }
  .nav[data-open="true"]{display:flex}
}

/* layout tweaks: hamburger left, logo centered on small screens */
@media (max-width:850px){
  .header-inner{position:relative;align-items:center}
  .menu-toggle{position:absolute;left:12px;top:50%;transform:translateY(-50%);z-index:70}
  .brand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:60}
  .brand .logo-mark{margin:0 auto}
  /* ensure hover/active on icon-btn doesn't change the absolute-positioned buttons */
  .menu-toggle.icon-btn:hover,
  .menu-toggle.icon-btn:active{
    transform:translateY(-50%) !important;
    box-shadow: none; /* avoid inset/offset visual shift */
  }
}

@media (max-width:780px){
  .books-grid{grid-template-columns:1fr}
}

@media (max-width:759px){
  .hero-copy{min-width:0}
}

@media (max-width:640px){
  html{scroll-padding-top:68px}
  body{padding-top:68px}
  .container{padding-inline:12px}
  .header-inner{min-height:68px;padding:0 12px;gap:10px}
  .brand span{display:none}
  .nav{inset:68px 8px auto 8px}
  .hero{padding:22px 0 30px}
  .hero-grid{gap:18px}
  h1{max-width:15ch;font-size:2.06rem;line-height:1.03}
  .hero-copy h1{max-width:16ch}
  h2{font-size:1.78rem;line-height:1.1}
  .hero-sub{font-size:1rem;margin-top:14px}
  .hero-support{gap:10px;padding-top:12px}
  .hero-support .btn{width:100%}
  .hero-flow{gap:7px;margin-top:16px}
  .hero-support .hero-flow{margin-top:0}
  .hero-flow span{min-height:32px;padding:6px 9px;font-size:.83rem}
  .hero-actions{margin-top:18px}
  .community-proof{align-items:flex-start;margin-top:14px;padding:10px;gap:10px}
  .hero-support .community-proof{margin-top:0}
  .community-proof p{font-size:.9rem;line-height:1.38}
  .proof-avatars span{width:30px;height:30px;font-size:.64rem}
  .hero-metrics{display:flex;gap:7px;margin-top:14px}
  .hero-support .hero-metrics{margin-top:0}
  .hero-metrics span{justify-content:center;text-align:center;padding:6px 8px;font-size:.82rem}
  .hero-actions .btn{width:100%}
  .hero-panel{padding:14px;box-shadow:var(--shadow-soft)}
  .support-highlights{gap:8px}
  .support-highlights span{
    width:100%;
    justify-content:center;
    text-align:center;
  }
  .panel-top{display:grid;grid-template-columns:1fr;align-items:center}
  /* center logo and featured cover in hero-panel on small screens */
  .panel-top{justify-items:start;padding-bottom:12px}
  
  .status-pill{width:auto;max-width:100%;white-space:normal}
  .featured-book{grid-template-columns:82px minmax(0,1fr);gap:12px;padding:16px 0;justify-items:stretch}
  .featured-cover{max-width:82px;border-radius:7px}
  .featured-book h2{font-size:1.08rem}
  .featured-book p:not(.eyebrow){font-size:.9rem}
  .next-meeting{padding-top:12px}
  .home-next-cycle-book{grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:start}
  .home-next-cycle-actions .btn{padding-inline:10px;font-size:.84rem}
  .next-meeting strong{font-size:1.08rem}
  .next-meeting p{font-size:.9rem}
  .next-meeting-pages{width:100%;justify-content:center;text-align:center}
  
  .section{padding:40px 0}
  .feature{padding:16px}
  .discussion-item{gap:9px;padding:16px}
  .video-card{grid-template-columns:1fr}
  .video-thumb{min-height:96px}
  .timeline-progress-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .timeline-progress-value{font-size:1.65rem}
  .meeting-card{grid-template-columns:1fr}
  .timeline-list::before{display:none}
  .meeting-date{
    min-height:auto;
    display:grid;
    grid-template-columns:repeat(3, auto);
    align-items:center;
    justify-content:start;
    gap:8px;
  }
  .signup-strip .btn{width:100%}
  .books-grid{grid-template-columns:1fr}
  .book{padding:10px}
  .book-main{grid-template-columns:72px minmax(0,1fr);gap:12px}
  .book-extra{grid-template-columns:1fr}
  .book-cover{height:112px}
  .contact-card{padding:18px}
  .consent-banner{max-height:40vh;overflow:auto}
  .consent-inner{display:grid;justify-items:center}
  .modal{padding:10px}
  .modal-panel{padding:18px}
  .modal-panel h3{font-size:1.25rem;margin-right:42px}
  
  .feedback-hero{padding-top:38px}
  .feedback-copy h1,.thanks-page h1{max-width:16ch}
}

@media (max-width:420px){
  .container{padding-inline:10px}
  .hero{padding-top:30px}
  h1{font-size:2.08rem}
  h2{font-size:1.55rem}
  .hero-panel{padding:14px}
  .meeting-card{padding:14px}
  .book-main{grid-template-columns:64px minmax(0,1fr);gap:10px}
  .book-cover{height:100px;padding:8px}
  .footer-inner{display:grid;justify-items:start}
}

@media (max-width:720px){
  .site-footer{padding:28px 0}
  .footer-inner{grid-template-columns:1fr;gap:24px}
  .footer-identity{display:grid;gap:4px}
  .footer-brand{margin-bottom:6px}
  .footer-links{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
    gap:8px 12px;
    justify-content:stretch;
  }
  .footer-links > a{display:flex;align-items:center;min-height:42px;padding:9px 10px;border-radius:8px;background:var(--surface-strong)}
  .footer-links > .language-picker{grid-column:1/-1;margin-top:4px}
  .footer-links > .language-picker summary{justify-content:center;width:100%}
}

@media (max-width:380px){
  .footer-links{grid-template-columns:1fr}
  .footer-links > .language-picker{grid-column:auto}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important}
  html.reveal-ready .reveal-item{
    opacity:1!important;
    transform:none!important;
  }
}
.language-picker{position:relative;color:var(--text)}
.language-picker summary{display:flex;align-items:center;gap:7px;min-height:40px;padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:.86rem;font-weight:800;line-height:1;cursor:pointer;list-style:none}
.language-picker summary::-webkit-details-marker{display:none}
.language-picker summary:hover,.language-picker summary:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}
.language-flag{font-size:1.15rem;line-height:1}
.language-chevron{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .16s ease}
.language-picker[open] .language-chevron{transform:rotate(225deg) translate(-1px,-1px)}
.language-menu{position:absolute;z-index:1100;top:calc(100% + 8px);right:0;display:grid;min-width:170px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);box-shadow:var(--shadow-soft)}
.language-menu a{display:flex;align-items:center;gap:9px;padding:10px;border-radius:8px;text-decoration:none;white-space:nowrap}
.language-menu a:hover,.language-menu a:focus-visible{background:var(--accent-soft);color:var(--accent);outline:none}
.language-menu a[aria-current="true"]{background:var(--accent-soft);color:var(--accent)}
@media (max-width:850px){
  .nav .language-picker{width:100%}
  .nav .language-picker summary{justify-content:center;border-radius:var(--radius)}
  .nav .language-menu{position:static;margin-top:6px;box-shadow:none}
}
