/* Course access uses the course palette and native form controls. */
.access-page { padding-top:64px; }
.access-page .nav-inner { max-width:1200px; }
.access-header-link { margin-left:auto; color:var(--muted); text-decoration:none; font-size:.875rem; padding:.7rem 0; }
.access-header-link:hover { color:var(--accent); }
.access-layout { width:min(1040px,calc(100% - 64px)); margin:clamp(48px,8vh,96px) auto 64px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); align-items:start; gap:clamp(40px,6vw,88px); }
.access-context { padding:28px 0; grid-column:1; grid-row:1; }
.access-context h2 { margin:.6rem 0 1rem; font-size:clamp(1.6rem,2.3vw,2.25rem); line-height:1.22; letter-spacing:-.025em; }
.access-context > p:not(.eyebrow) { color:var(--muted); max-width:38ch; line-height:1.7; }
.access-ray { margin:1.5rem 0 2rem; max-width:370px; }
.access-ray svg { display:block; width:100%; height:120px; stroke:var(--muted); stroke-width:1.2; }
.access-ray svg circle { stroke:var(--accent); fill:var(--accent); }
.access-ray .access-ray-lines { stroke:var(--accent); opacity:.65; }
.access-ray .access-ray-plane { stroke:var(--accent); fill:var(--accent); fill-opacity:.055; }
.access-ray > div { display:flex; justify-content:space-between; padding:0 1.5rem; color:var(--muted); font-size:.75rem; }
.access-benefits { padding:0; margin:0 0 1.5rem; list-style:none; display:grid; gap:.65rem; font-size:.875rem; }
.access-benefits li { display:flex; align-items:baseline; gap:.65rem; }
.access-benefits span { color:var(--accent); }
.access-card { border:1px solid var(--line); border-radius:12px; background:var(--panel); padding:clamp(24px,3vw,40px); min-width:0; box-shadow:0 18px 60px #0002; grid-column:2; grid-row:1; }
.access-card h1 { margin:.65rem 0 1rem; font-size:clamp(1.7rem,2.3vw,2.2rem); line-height:1.2; letter-spacing:-.03em; }
.access-card h1:focus { outline:none; }
.access-intro { color:var(--muted); line-height:1.65; margin:0 0 1.7rem; }
.access-form { display:grid; gap:1.25rem; }
.access-field label { display:block; font-weight:650; margin-bottom:.45rem; font-size:.875rem; }
.access-field input { width:100%; min-width:0; border:1px solid var(--line-strong); background:var(--bg); color:var(--text); border-radius:6px; min-height:48px; padding:.65rem .8rem; font-size:16px; }
.access-field input:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.access-field-note { margin:.5rem 0 0; color:var(--muted); font-size:.8125rem; }
.access-consent { display:flex; gap:.75rem; align-items:flex-start; font-size:.875rem; color:var(--text); cursor:pointer; }
.access-consent input { width:19px; height:19px; min-width:19px; margin:.2rem 0 0; accent-color:var(--accent); }
.access-consent span { line-height:1.6; }
.access-options { margin:0; padding:1rem 0 0; border:0; border-top:1px solid var(--line); min-width:0; }
.access-options legend { padding:0 .65rem 0 0; color:var(--muted); font-size:.75rem; }
.access-option + .access-option { margin-top:1.25rem; }
.access-option-help { margin:.4rem 0 0 calc(19px + .75rem); color:var(--muted); font-size:.8125rem; line-height:1.55; }
.access-page .access-submit { min-height:48px; width:100%; justify-content:center; gap:.6rem; white-space:normal; line-height:1.35; text-align:center; padding:.8rem 1rem; }
.access-submit svg { width:20px; height:20px; flex:none; stroke:currentColor; stroke-width:1.6; }
.access-reassurance { font-size:.8125rem; color:var(--muted); margin:1rem 0 0; }
.access-reassurance p { margin:.35rem 0; }
.access-card a,.access-footer a { text-underline-offset:.2em; }
.access-switch { margin:1.6rem 0 0; padding-top:1.25rem; border-top:1px solid var(--line); color:var(--muted); font-size:.875rem; }
.access-switch a { color:var(--text); }
.access-text-link { color:var(--accent); font-size:.875rem; text-underline-offset:.2em; }
.access-error { border-left:3px solid var(--bad); padding:.7rem .9rem; background:color-mix(in srgb,var(--bad) 7%,transparent); margin:0 0 1.5rem; font-size:.875rem; }
.access-error p { margin:0; }
.access-error p + p { margin-top:.45rem; }
.access-subscription-note { border-left:3px solid var(--accent); background:var(--bg-2); padding:1rem; margin:0 0 1.5rem; }
.access-subscription-note h2 { margin:0 0 .5rem; font-size:1rem; }
.access-subscription-note p { margin:0; color:var(--muted); font-size:.875rem; }
.access-email-address { overflow-wrap:anywhere; font-weight:650; font-size:1rem; margin:-.5rem 0 1.5rem; }
.access-pending-note { display:flex; gap:1rem; border-block:1px solid var(--line); padding:1.1rem 0; margin:1.4rem 0; }
.access-pending-note p { margin:0; color:var(--muted); font-size:.875rem; }
.access-mail-symbol { color:var(--accent); flex:none; }
.access-mail-symbol svg { width:25px; height:25px; stroke:currentColor; stroke-width:1.5; }
.access-help { color:var(--muted); font-size:.8125rem; margin:1.3rem 0; }
.access-resend { margin-bottom:1rem; justify-items:start; }
.access-form-status { margin:0; color:var(--muted); font-size:.875rem; }
.access-form-status[hidden] { display:none; }
.access-footer { width:min(1200px,calc(100% - 64px)); margin:0 auto; border-top:1px solid var(--line); padding:1.5rem 0 2rem; display:flex; justify-content:space-between; gap:1rem 2rem; color:var(--muted); font-size:.75rem; }
.access-footer p { margin:0; }
.access-footer p:last-child { display:flex; flex-wrap:wrap; gap:.6rem; }
.access-layout-privacy { display:block; max-width:760px; }
.access-privacy h2 { margin-top:1.5rem; font-size:1.1rem; }
.access-privacy p { color:var(--muted); font-size:.9375rem; }
.access-privacy a { overflow-wrap:anywhere; }
.access-privacy section { scroll-margin-top:90px; }
.access-privacy-nav { display:flex; flex-wrap:wrap; gap:.6rem 1rem; padding:1rem 0; margin-bottom:1.5rem; border-block:1px solid var(--line); font-size:.8125rem; }
.access-retention { margin:1rem 0; }
.access-retention > div { margin-bottom:1rem; }
.access-retention dt { font-size:.9375rem; font-weight:650; }
.access-retention dd { margin:.2rem 0 0; color:var(--muted); font-size:.9375rem; }
.access-privacy + a { margin-top:1.25rem; }
.access-course-note { color:var(--muted); font-size:.8125rem; margin:.9rem 0; max-width:62ch; }
.access-label { font-size:.75rem; color:var(--muted); }
.access-session-note { grid-column:1 / -1; width:min(100%,900px); margin:1rem auto; padding:.9rem 1.1rem; border:1px solid var(--line); border-left:3px solid var(--accent); background:var(--panel); color:var(--muted); font-size:.875rem; }
.access-session-note a { color:var(--accent); }
.access-course-action { margin:0; display:inline-flex; font-size:.875rem; color:var(--muted); }
.access-course-action button { font:inherit; color:inherit; cursor:pointer; border:0; background:none; padding:.4rem 0; min-height:44px; }
.access-course-action button:hover { color:var(--accent); }
.access-transition { grid-column:1 / -1; padding:1.3rem 1.5rem; background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:6px; }
.access-transition h2 { font-size:1.15rem; margin:.45rem 0; }
.access-transition p { color:var(--muted); font-size:.875rem; margin:.55rem 0 1rem; }
.access-transition .eyebrow { color:var(--accent); font-size:.6875rem; margin:0; }
.access-transition .btn { white-space:normal; text-align:left; }
[data-access-only][hidden] { display:none !important; }
@media(max-width:760px) {
  .access-page .nav-inner { width:calc(100% - 40px); min-height:64px; gap:.8rem; }
  .access-page .brand { font-size:.875rem; gap:.5rem; }
  .access-page .brand-mark { width:1.6rem; height:1.6rem; flex:none; }
  .access-header-link { font-size:.75rem; line-height:1.3; max-width:88px; text-align:right; }
  .access-layout { width:calc(100% - 40px); margin:32px auto 40px; display:flex; flex-direction:column; gap:28px; }
  .access-card { width:100%; padding:24px; order:0; border-radius:8px; }
  .access-card h1 { font-size:1.75rem; }
  .access-context { order:1; padding:0 4px; width:100%; }
  .access-context h2 { font-size:1.35rem; margin:.45rem 0; }
  .access-context > p:not(.eyebrow) { font-size:.875rem; margin:.75rem 0 1rem; }
  .access-ray { display:none; }
  .access-benefits { font-size:.8125rem; gap:.4rem; margin:1rem 0; }
  .access-footer { width:calc(100% - 40px); flex-direction:column; gap:.6rem; }
  .access-intro { font-size:.9375rem; margin-bottom:1.4rem; }
  .access-layout-privacy .access-card { order:0; }
}
@media(max-width:360px) {
  .access-layout { width:calc(100% - 28px); margin-top:24px; }
  .access-card { padding:20px; }
  .access-card h1 { font-size:1.6rem; }
  .access-page .brand { font-size:.8125rem; }
  .access-page .nav-inner { width:calc(100% - 28px); }
}
@media(prefers-reduced-motion:reduce) { .access-page { scroll-behavior:auto; } }
/* Static authoring previews remain ungated; the Worker adds these body markers. */
body:not([data-access-enabled="true"]) [data-access-only],
body[data-access-authenticated="true"] [data-access-only="anonymous"],
body[data-access-authenticated="false"] [data-access-only="member"],
body[data-access-enabled="true"][data-access-authenticated="false"] [data-access-fallback] { display:none !important; }
