/* Public discovery pages reuse the app's palette and fonts, with scoped layout. */
.public-site { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font); font-size: 17px; line-height: 1.6; }
.public-site [hidden] { display: none !important; }
.public-site * { box-sizing: border-box; }
.public-site h1, .public-site h2, .public-site h3, .public-site p { margin-top: 0; }
.public-site h1 { font-size: clamp(2.1rem, 3.8vw, 3.2rem); line-height: 1.1; font-weight: 900; letter-spacing: -.035em; margin-bottom: 18px; max-width: 900px; }
.public-site h2 { font-size: clamp(1.3rem, 2vw, 1.7rem); line-height: 1.25; font-weight: 850; margin-bottom: 14px; letter-spacing: -.015em; }
:where(.public-site) a { color: var(--coral-deep); text-underline-offset: .2em; }
.public-site button { font: inherit; cursor: pointer; }
:where(.public-site) :is(a, button, summary, [tabindex]):focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 4px; }
.pub-header { line-height: 1.45; }
.public-site .pub-main { display: block; width: min(1180px, calc(100% - 48px)); max-width: none; margin: 0 auto; padding: 48px 0 64px; }
.pub-intro { max-width: 900px; margin-bottom: 32px; }
.pub-eyebrow { color: var(--coral-deep); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; font-weight: 850; margin-bottom: 14px; }
.pub-lede { font-size: 20px; color: var(--muted); line-height: 1.6; max-width: 770px; margin-bottom: 0; }
.pub-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 28px; }
.public-site .pub-button { display: inline-flex; justify-content: center; align-items: center; min-height: 46px; padding: 11px 22px; font-size: 16px; line-height: 1.35; font-weight: 850; text-align: center; border-radius: var(--r-pill); border: 1px solid var(--hairline-strong); background: var(--surface); color: var(--ink); text-decoration: none; box-shadow: var(--shadow-raised); }
.public-site .pub-button:hover { border-color: var(--coral); background: var(--coral-tint); }
.public-site .pub-button--primary { color: var(--surface); background: var(--coral-deep); border-color: var(--coral-deep); }
.public-site .pub-button--primary:hover { color: var(--ink); }
.pub-reading-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 56px; max-width: 1080px; }
.pub-prose-block { margin: 0; }
.pub-prose-block p { margin-bottom: 0; }
.pub-stages { margin: 0 0 24px; border: 1px solid var(--hairline); border-radius: var(--r-surface); overflow: hidden; background: var(--surface); box-shadow: var(--shadow-surface); }
.pub-stage-buttons { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; padding: 10px; background: var(--recess); }
.pub-stage-buttons button { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 10px; border: 1px solid transparent; border-radius: var(--r-input); color: var(--muted); font-weight: 850; background: transparent; }
.pub-stage-buttons button span { width: 26px; height: 26px; border: 1px solid var(--hairline-strong); border-radius: 50%; font-size: 14px; }
.pub-stage-buttons button[aria-pressed="true"] { color: var(--coral-deep); background: var(--surface); border-color: var(--hairline-strong); box-shadow: var(--shadow-raised); }
.pub-stage { padding: 28px; max-width: 850px; min-height: 250px; }
.pub-stage-buttons:not([hidden]) ~ .pub-stage .pub-stage-label { display: none; }
.pub-note { padding: 18px 22px; border-radius: var(--r-input); background: var(--recess); }
.pub-import { max-width: 850px; }
.pub-example-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.pub-example-card { min-width: 0; background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--r-surface); padding: 24px; display: grid; grid-template-rows: 1fr auto auto; gap: 22px; justify-items: start; box-shadow: var(--shadow-raised); }
.pub-example-summary > :last-child { margin-bottom: 0; }
.pub-example-card .pub-eyebrow { margin-bottom: 10px; }
.pub-example-card h2 { font-size: 25px; }
.pub-preview { width: 100%; border-left: 3px solid var(--coral); border-radius: 0 var(--r-input) var(--r-input) 0; padding: 16px; background: var(--coral-tint); font-size: 16px; line-height: 1.5; }
.pub-preview-title { font-size: 13px; font-weight: 850; margin-bottom: 8px; }
.pub-preview p:last-child { margin-bottom: 0; }
.public-site .pub-sample-note { max-width: 830px; font-size: 15px; color: var(--muted); margin-top: 24px; }
.pub-back { display: inline-block; font-weight: 800; margin-bottom: 20px; }
.pub-assignment { display: grid; grid-template-columns: 1.5fr 1fr; gap: 28px; border-radius: var(--r-surface); background: var(--surface); border: 1px solid var(--hairline); padding: 24px 28px; }
.pub-assignment h2 { font-size: 19px; }
.pub-assignment p { margin: 0; }
.pub-export { margin-top: 20px; margin-bottom: 16px; }
.pub-export-status { width: 100%; margin: 0; color: var(--danger); }
.pub-export-status:empty { display: none; }
.pub-anatomy-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.pub-anatomy-buttons .pub-button { font-size: 15px; min-height: 44px; padding: 9px 16px; }
.pub-anatomy-buttons .pub-button[aria-pressed="true"] { border-color: var(--coral-deep); background: var(--coral-tint); color: var(--coral-deep); }
.public-site .pub-anatomy-help { margin: 16px 0 0; }
.pub-scroll-hint { display: none; }
.pub-table-scroll { overflow-x: auto; border: 1px solid var(--hairline-strong); border-radius: var(--r-input); background: var(--surface); margin: 0 0 28px; }
.public-site .pub-rubric { width: 100%; min-width: 800px; border-collapse: separate; border-spacing: 0; table-layout: fixed; margin: 0; font-size: 15px; line-height: 1.45; }
.pub-rubric caption { text-align: left; font-size: 20px; font-weight: 850; padding: 18px; border-top: 3px solid var(--coral); background: var(--recess); }
.pub-rubric th, .pub-rubric td { padding: 16px; vertical-align: top; text-align: left; border: 0; border-right: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline); overflow-wrap: anywhere; }
.pub-rubric tr > :last-child { border-right: 0; }
.pub-rubric tr:last-child > * { border-bottom: 0; }
.pub-rubric thead th { background: var(--recess); font-weight: 850; }
.pub-rubric thead th:first-child { width: 110px; }
.pub-rubric tbody th { background: var(--recess); font-size: 14px; font-weight: 800; vertical-align: middle; }
.public-site .pub-meeting { background: var(--coral-tint); }
.pub-rubric [data-part] { transition: box-shadow .15s ease; }
[data-highlight="meeting"] .pub-rubric [data-part="meeting"], [data-highlight="ican"] .pub-rubric [data-part="ican"] > *, [data-highlight="look"] .pub-rubric [data-part="look"] > * { box-shadow: inset 0 0 0 2px var(--coral-deep); }
.pub-detail { border: 1px solid var(--hairline-strong); padding: 18px 22px; border-radius: var(--r-input); background: var(--surface); margin: 20px 0; }
.pub-detail summary { cursor: pointer; font-weight: 850; }
.pub-detail summary::marker { color: var(--coral-deep); }
.pub-detail p { margin: 14px 0 0; max-width: 850px; }
.pub-comparison { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 32px; gap: 18px; }
.pub-comparison section { border: 1px solid var(--hairline); border-radius: var(--r-input); padding: 28px; background: var(--surface); }
.pub-comparison .pub-better { background: var(--coral-tint); border-color: var(--hairline-strong); }
.pub-comparison blockquote { margin: 0; padding: 0; border: 0; font-size: 22px; font-weight: 750; line-height: 1.5; }
.pub-access-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 32px; }
.pub-card { padding: 28px; border: 1px solid var(--hairline); border-radius: var(--r-surface); background: var(--surface); }
.pub-card .pub-button { margin-top: 22px; }
.pub-policy-links { display: flex; flex-wrap: wrap; gap: 12px 24px; margin: 24px 0; }
.pub-policy-links a { font-weight: 800; }
.pub-policy-links:last-child { margin-bottom: 0; }
.pub-footer { border-top: 1px solid var(--hairline-strong); padding: 30px max(24px, calc((100vw - 1180px) / 2)); font-size: 14px; color: var(--muted); }
.pub-footer p { margin-bottom: 14px; }
.pub-footer nav { display: flex; flex-wrap: wrap; gap: 10px 24px; }
.public-site .pub-footer a { color: var(--muted); }
@media (max-width: 1000px) {
  .pub-scroll-hint { display: block; color: var(--muted); font-size: 14px; }
  .pub-example-grid { grid-template-columns: minmax(0, 1fr); }
  .pub-example-card { grid-template-columns: minmax(0, 1fr) minmax(220px, .8fr); grid-template-rows: auto auto; column-gap: 28px; }
  .pub-example-card .pub-preview { grid-column: 2; grid-row: 1 / 3; align-self: center; }
  .pub-example-card .pub-button { justify-self: start; }
  .pub-reading-grid { gap: 28px 36px; }
}
@media (max-width: 620px) {
  .public-site .pub-main { width: calc(100% - 32px); padding: 38px 0 50px; }
  .pub-lede { font-size: 18px; }
  .pub-intro { margin-bottom: 28px; }
  .pub-stage-buttons { gap: 3px; padding: 6px; }
  .pub-stage-buttons button { flex-direction: column; gap: 4px; font-size: 13px; padding: 10px 3px; }
  .pub-stage { padding: 20px; min-height: 300px; }
  .pub-example-card { display: flex; flex-direction: column; padding: 22px; }
  .pub-assignment, .pub-comparison, .pub-access-grid, .pub-reading-grid { grid-template-columns: 1fr; gap: 24px; }
  .pub-assignment, .pub-card, .pub-comparison section { padding: 22px; }
  .pub-assignment h2 { margin-bottom: 10px; }
  .pub-actions { gap: 10px; }
  .pub-actions .pub-button { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) { .pub-rubric [data-part] { transition: none; } }
@media print {
  @page { size: landscape; margin: 12mm; }
  .public-site { background: white; font-size: 10pt; }
  .pub-header, .pub-footer, .pub-skip, .pub-actions, .pub-anatomy, .pub-detail, .pub-back, .pub-scroll-hint { display: none !important; }
  .public-site .pub-main { width: 100%; padding: 0; margin: 0; }
  .public-site h1 { font-size: 19pt; margin-bottom: 6pt; }
  .public-site .pub-intro { margin-bottom: 10pt; }
  .pub-intro .pub-eyebrow, .public-site .pub-sample-note { font-size: 9pt; margin: 0 0 5pt; }
  .pub-assignment { border: 0; padding: 0; margin-bottom: 12pt; gap: 20pt; }
  .pub-assignment h2 { font-size: 11pt; margin-bottom: 3pt; }
  .pub-table-scroll { overflow: visible; border-radius: 0; margin-bottom: 14pt; }
  .public-site .pub-rubric { min-width: 0; font-size: 9pt; line-height: 1.3; }
  .pub-rubric caption { font-size: 12pt; padding: 7pt; break-after: avoid; }
  .pub-rubric th, .pub-rubric td { padding: 7pt; }
  .pub-rubric tbody th { font-size: 8pt; }
  .pub-rubric thead th:first-child { width: 60pt; }
  .pub-rubric tr { break-inside: avoid; }
  .pub-rubric thead { display: table-header-group; }
  .pub-rubric [data-part], .pub-rubric [data-part] > * { box-shadow: none !important; }
  .pub-rubric, .pub-rubric * { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}
