:root {
  --paper: #f4f1e9;
  --paper-strong: #ebe5d8;
  --card: #fffdf8;
  --ink: #18211f;
  --muted: #66716d;
  --line: rgba(24, 33, 31, 0.16);
  --dark: #172321;
  --moss: #315f54;
  --allow: #28715a;
  --conditional: #9a641f;
  --link: #3b6077;
  --exclude: #98483f;
  --focus: #d19035;
  --shadow: 0 22px 70px rgba(26, 38, 34, 0.11);
  --radius: 26px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  min-width: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 12% 2%, rgba(255, 255, 255, 0.96), transparent 25rem),
    radial-gradient(circle at 91% 11%, rgba(62, 109, 91, 0.13), transparent 28rem),
    var(--paper);
  font-family: Inter, Pretendard, "Noto Sans KR", "Apple SD Gothic Neo", system-ui, sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  opacity: 0.18;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");
}

button,
input,
select,
textarea { font: inherit; }

a { color: inherit; }

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

.skip-link {
  position: fixed;
  z-index: 100;
  left: 16px;
  top: 10px;
  padding: 10px 14px;
  border-radius: 10px;
  background: var(--dark);
  color: #fff;
  font-weight: 800;
  transform: translateY(-160%);
}

.skip-link:focus { transform: translateY(0); }

.topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  min-height: 68px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 18px;
  padding: 10px clamp(16px, 4vw, 58px);
  border-bottom: 1px solid var(--line);
  background: rgba(244, 241, 233, 0.9);
  backdrop-filter: blur(20px) saturate(1.1);
}

.back-link {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 12px;
  font-weight: 850;
  text-decoration: none;
}

.back-link::before { content: "←"; font-size: 19px; font-weight: 500; }

.topbar__mark {
  color: var(--muted);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.15em;
}

.topbar__actions {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 8px;
}

.language-switch {
  display: flex;
  gap: 3px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.55);
}

.language-switch button,
.print-button,
.metadata-link {
  min-width: 38px;
  min-height: 32px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
  cursor: pointer;
}

.language-switch button[aria-pressed="true"] { background: var(--dark); color: #fff; }

.print-button {
  padding-inline: 14px;
  border: 1px solid var(--line);
  background: var(--card);
  color: var(--ink);
}

.metadata-link {
  display: inline-flex;
  align-items: center;
  padding-inline: 13px;
  border: 1px solid var(--line);
  background: var(--card);
  color: var(--ink);
  text-decoration: none;
}

main {
  width: min(1220px, calc(100% - 36px));
  margin: 0 auto;
  padding: clamp(54px, 7vw, 96px) 0 72px;
}

.noscript-warning {
  margin: 0 0 24px;
  padding: 14px 16px;
  border: 1px solid rgba(152, 72, 63, 0.42);
  border-radius: 13px;
  background: rgba(152, 72, 63, 0.08);
  color: #743a34;
  font-size: 11px;
  font-weight: 750;
}

.hero {
  min-height: 540px;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(310px, 0.8fr);
  gap: clamp(34px, 7vw, 96px);
  align-items: center;
}

.hero > * { min-width: 0; }

.eyebrow,
.section-heading > p {
  margin: 0 0 23px;
  color: var(--exclude);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: 0.16em;
}

.hero h1 {
  margin: 0;
  font-size: clamp(48px, 7.7vw, 96px);
  font-weight: 900;
  line-height: 0.94;
  letter-spacing: -0.065em;
  word-break: keep-all;
}

.hero h1 span,
.hero h1 em { display: block; }

.hero h1 em {
  margin-top: 12px;
  color: var(--moss);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: -0.055em;
}

.hero__summary {
  max-width: 710px;
  margin: 30px 0 0;
  color: #4d5955;
  font-size: clamp(16px, 1.8vw, 20px);
  font-weight: 650;
  word-break: keep-all;
}

.hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 25px;
}

.hero__meta span {
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.45);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 9px;
  font-weight: 700;
}

.hero__seal { display: grid; place-items: center; }

.hero__seal svg {
  width: min(100%, 430px);
  height: auto;
  overflow: visible;
  color: var(--moss);
  filter: drop-shadow(0 30px 30px rgba(34, 52, 46, 0.13));
}

.hero__seal circle,
.hero__seal path { fill: none; stroke: currentColor; stroke-width: 3; }
.hero__seal circle:first-child { stroke-width: 10; stroke-dasharray: 3 8; }
.hero__seal text { fill: var(--moss); font: 700 10px ui-monospace, monospace; letter-spacing: 0.14em; text-anchor: middle; }

.section-nav {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  margin: 24px 0 118px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255, 253, 248, 0.62);
  box-shadow: 0 12px 38px rgba(31, 43, 39, 0.06);
}

.section-nav a {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  padding: 10px 13px;
  border-radius: 15px;
  text-decoration: none;
  transition: background 180ms ease, transform 180ms ease;
}

.section-nav a:hover { background: var(--card); transform: translateY(-2px); }
.section-nav span { color: var(--exclude); font-family: ui-monospace, monospace; font-size: 9px; }
.section-nav b { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }

.page-section {
  scroll-margin-top: 86px;
  margin-top: 118px;
  padding-top: 34px;
  border-top: 1px solid var(--line);
}

.section-heading {
  display: grid;
  grid-template-columns: 175px minmax(0, 1fr);
  gap: 28px;
  margin-bottom: 40px;
}

.section-heading > p { margin-top: 7px; }
.section-heading h2 { margin: 0; font-size: clamp(34px, 5vw, 61px); line-height: 1; letter-spacing: -0.055em; word-break: keep-all; }
.section-heading div > p { max-width: 770px; margin: 17px 0 0; color: var(--muted); font-size: 15px; font-weight: 600; word-break: keep-all; }

.state-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.state-card {
  min-width: 0;
  min-height: 260px;
  padding: 22px;
  border: 1px solid var(--line);
  border-top: 7px solid var(--state-color);
  border-radius: 20px;
  background: var(--card);
  box-shadow: 0 10px 28px rgba(31, 43, 39, 0.055);
}

.state-card--allow { --state-color: var(--allow); }
.state-card--conditional { --state-color: var(--conditional); }
.state-card--link-only { --state-color: var(--link); }
.state-card--exclude { --state-color: var(--exclude); }

.state-card__top { display: flex; align-items: center; gap: 12px; }
.state-card__top > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--state-color); color: #fff; font: 800 12px ui-monospace, monospace; }
.state-card h3 { margin: 0; font-size: 20px; }
.state-card__summary { margin: 25px 0 0; font-size: 14px; font-weight: 750; word-break: keep-all; }
.state-card__rule { margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; font-weight: 600; word-break: keep-all; }

.disclaimer {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 15px;
  align-items: center;
  margin-top: 14px;
  padding: 18px 20px;
  border-radius: 17px;
  background: var(--dark);
  color: #fff;
}

.disclaimer > span { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(255, 255, 255, 0.28); border-radius: 50%; font-weight: 900; }
.disclaimer p { margin: 0; color: #cbd2cf; font-size: 12px; font-weight: 600; }

.false-signal-panel {
  display: grid;
  grid-template-columns: 0.75fr 2.25fr;
  gap: 26px;
  margin-top: 16px;
  padding: 26px;
  border: 1px dashed rgba(152, 72, 63, 0.42);
  border-radius: var(--radius);
  background: rgba(255, 253, 248, 0.4);
}

.false-signal-panel small,
.credit-builder small,
.takedown-contact small,
.request-template small {
  color: var(--exclude);
  font: 750 9px ui-monospace, monospace;
  letter-spacing: 0.13em;
}

.false-signal-panel h3,
.credit-builder h3,
.request-template h3 { margin: 10px 0 0; font-size: 23px; line-height: 1.2; letter-spacing: -0.035em; }

.false-signal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.false-signal-grid article { padding: 16px; border-radius: 14px; background: rgba(152, 72, 63, 0.075); }
.false-signal-grid b { font-size: 13px; }
.false-signal-grid p { margin: 8px 0 0; color: var(--muted); font-size: 11px; font-weight: 600; }

.table-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 10px;
}

.table-toolbar p { margin: 0; color: var(--muted); font-size: 11px; }
.table-toolbar a,
.checklist-progress a { color: var(--moss); font-size: 11px; font-weight: 850; text-underline-offset: 3px; }

.matrix-wrap {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--card);
  box-shadow: var(--shadow);
  overscroll-behavior-inline: contain;
}

table { width: 100%; min-width: 1040px; border-collapse: collapse; }
th, td { padding: 16px 14px; border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; }
thead th { position: sticky; top: 0; z-index: 2; background: var(--dark); color: #fff; font-size: 10px; letter-spacing: 0.025em; }
tbody tr:last-child th, tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: rgba(49, 95, 84, 0.045); }
tbody th { width: 180px; font-size: 12px; }
tbody th strong { display: block; }
tbody th small { display: block; margin-top: 5px; color: var(--muted); font: 500 8px ui-monospace, monospace; }
tbody td { color: #52605b; font-size: 11px; font-weight: 600; }
tbody td:last-child { min-width: 310px; }

.state-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 8px;
  border-radius: 999px;
  color: #fff;
  background: var(--state-color);
  font-size: 9px;
  white-space: nowrap;
}

.state-chip--allow { --state-color: var(--allow); }
.state-chip--conditional { --state-color: var(--conditional); }
.state-chip--link-only { --state-color: var(--link); }
.state-chip--exclude { --state-color: var(--exclude); }
.state-chip b { font-family: ui-monospace, monospace; }

.permission { display: inline-flex; padding: 4px 7px; border-radius: 7px; font-size: 9px; font-weight: 850; }
.permission--yes { background: rgba(40, 113, 90, 0.12); color: #1e614b; }
.permission--no { background: rgba(152, 72, 63, 0.12); color: #813a33; }
.permission--review { background: rgba(154, 100, 31, 0.13); color: #805012; }
.matrix-footnote { margin: 14px 0 0; color: var(--muted); font-size: 11px; font-weight: 600; }

.decision-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(360px, 0.94fr);
  gap: 18px;
  align-items: start;
}

.decision-form,
.decision-output {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--card);
  box-shadow: var(--shadow);
}

.decision-form { overflow: hidden; }

.example-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  padding: 15px 18px;
  border-bottom: 1px solid var(--line);
  background: var(--paper-strong);
}

.example-strip > span { margin-right: 5px; color: var(--muted); font-size: 9px; font-weight: 850; }
.example-button { min-height: 32px; padding: 6px 9px; border: 1px solid var(--line); border-radius: 999px; background: var(--card); color: var(--ink); font-size: 9px; font-weight: 750; cursor: pointer; }
.example-button:hover { border-color: var(--moss); }
.example-button:disabled,
.primary-action:disabled { opacity: 0.5; cursor: not-allowed; }

.decision-form fieldset {
  min-width: 0;
  margin: 0;
  padding: 23px;
  border: 0;
  border-bottom: 1px solid var(--line);
}

.decision-form legend,
.checklist-group legend {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0;
  font-size: 14px;
}

.decision-form legend span,
.checklist-group legend > span { color: var(--exclude); font: 700 9px ui-monospace, monospace; }

.field { display: grid; gap: 7px; margin-top: 15px; }
.field > span { font-size: 10px; font-weight: 850; }
.field > small { color: var(--muted); font-size: 8px; font-weight: 600; line-height: 1.45; }
.field input,
.field select,
.field textarea,
.credit-builder input {
  width: 100%;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
  color: var(--ink);
  font-size: 12px;
}
.field textarea { min-height: 78px; resize: vertical; }
[hidden] { display: none !important; }
.permission-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 12px;
  margin-top: 18px;
  padding: 16px;
  border: 1px dashed var(--conditional);
  border-radius: 13px;
  background: rgba(154, 100, 31, 0.055);
}
.permission-fields > p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 9px; font-weight: 650; }

.field input[aria-invalid="true"],
.field select[aria-invalid="true"] { border-color: var(--exclude); box-shadow: 0 0 0 3px rgba(152, 72, 63, 0.12); }

.evidence-list { display: grid; gap: 8px; margin-top: 15px; }
.evidence-check,
.signal-check {
  position: relative;
  display: grid;
  grid-template-columns: 20px 1fr auto;
  gap: 10px;
  align-items: start;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(244, 241, 233, 0.48);
  cursor: pointer;
}

.evidence-check:has(input:checked),
.signal-check:has(input:checked) { border-color: rgba(49, 95, 84, 0.44); background: rgba(49, 95, 84, 0.07); }
.evidence-check input,
.signal-check input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--moss); }
.evidence-check b,
.signal-check b { display: block; font-size: 11px; }
.evidence-check small,
.signal-check small { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; font-weight: 600; }
.evidence-check em,
.signal-check em { padding: 4px 6px; border-radius: 999px; background: rgba(152, 72, 63, 0.1); color: var(--exclude); font-size: 7px; font-style: normal; font-weight: 850; white-space: nowrap; }
.signal-check em { background: rgba(59, 96, 119, 0.1); color: var(--link); }
.ignored-signals { background: rgba(59, 96, 119, 0.035); }

.form-actions { display: flex; gap: 8px; padding: 18px 23px 23px; }
.form-actions button,
.credit-output button,
.request-template button {
  min-height: 45px;
  padding: 10px 16px;
  border-radius: 11px;
  font-size: 11px;
  font-weight: 850;
  cursor: pointer;
}
.primary-action { flex: 1; border: 1px solid var(--dark); background: var(--dark); color: #fff; }
.secondary-action { border: 1px solid var(--line); background: transparent; color: var(--muted); }

.decision-output {
  position: sticky;
  top: 88px;
  display: block;
  padding: 26px;
  border-top: 8px solid var(--state-color, var(--exclude));
}
.decision-output[data-state="allow"] { --state-color: var(--allow); }
.decision-output[data-state="conditional"] { --state-color: var(--conditional); }
.decision-output[data-state="link-only"] { --state-color: var(--link); }
.decision-output[data-state="exclude"] { --state-color: var(--exclude); }
.decision-output__head { display: flex; gap: 15px; align-items: center; }
.decision-output__code { display: grid; place-items: center; min-width: 58px; height: 58px; padding: 0 8px; border-radius: 50%; background: var(--state-color); color: #fff; font: 800 9px ui-monospace, monospace; }
.decision-output__head small { color: var(--muted); font-size: 9px; font-weight: 750; }
.decision-output__head h3 { margin: 3px 0 0; font-size: 22px; line-height: 1.15; letter-spacing: -0.035em; }
.decision-output__summary { margin: 22px 0; color: #52605b; font-size: 12px; font-weight: 650; }
.capability-title { margin: 0 0 8px; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: 0.02em; }
.capability-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 5px; }
.capability-grid span { min-width: 0; padding: 10px 4px; border-radius: 10px; background: var(--paper); text-align: center; }
.capability-grid b { display: block; color: var(--exclude); font-size: 16px; }
.capability-grid b[data-enabled="true"] { color: var(--allow); }
.capability-grid small { display: block; margin-top: 4px; color: var(--muted); font-size: 7px; font-weight: 700; overflow-wrap: anywhere; }
.reason-panel { margin-top: 21px; padding: 17px; border-radius: 14px; background: var(--paper); }
.reason-panel h4 { margin: 0; font-size: 12px; }
.reason-panel ol { display: grid; gap: 7px; margin: 12px 0 0; padding-left: 19px; }
.reason-panel li { color: #52605b; font-size: 10px; font-weight: 600; }
.decision-stamp { margin: 18px 0 0; color: var(--muted); font: 600 8px ui-monospace, monospace; letter-spacing: 0.04em; }

.checklist-progress {
  display: grid;
  grid-template-columns: auto minmax(120px, 1fr) auto;
  gap: 18px;
  align-items: center;
  margin-bottom: 14px;
  padding: 15px 18px;
  border-radius: 15px;
  background: var(--dark);
  color: #fff;
}
.checklist-progress > div:first-child { display: flex; align-items: baseline; gap: 10px; }
.checklist-progress span { color: #aeb9b5; font-size: 9px; font-weight: 750; }
.checklist-progress strong { font: 800 15px ui-monospace, monospace; }
.checklist-progress a { color: #fff; }
.progress-track { height: 7px; overflow: hidden; border-radius: 999px; background: rgba(255, 255, 255, 0.15); }
.progress-track i { display: block; width: 0; height: 100%; border-radius: inherit; background: #d7a458; transition: width 180ms ease; }

.checklist-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.checklist-group { min-width: 0; margin: 0; padding: 20px; border: 1px solid var(--line); border-radius: 17px; background: var(--card); }
.checklist-group:last-child { grid-column: 1 / -1; }
.checklist-group label { display: grid; grid-template-columns: 20px 1fr; gap: 10px; align-items: start; margin-top: 13px; color: #4f5b57; font-size: 11px; font-weight: 600; cursor: pointer; }
.checklist-group input { width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--moss); }

.credit-builder {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  gap: 25px;
  margin-top: 18px;
  padding: 25px;
  border-radius: var(--radius);
  background: var(--paper-strong);
}
.credit-builder > div > p,
.request-template > div > p { margin: 10px 0 0; color: var(--muted); font-size: 11px; font-weight: 600; }
.credit-builder form { display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px; }
.credit-builder label { display: grid; gap: 5px; }
.credit-builder label span { font-size: 9px; font-weight: 800; }
.credit-builder .wide { grid-column: 1 / -1; }
.credit-output textarea,
.request-template textarea {
  width: 100%;
  resize: vertical;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
  color: var(--ink);
  font: 600 10px/1.55 ui-monospace, monospace;
  overflow-wrap: anywhere;
}
.credit-output button,
.request-template button { margin-top: 7px; border: 1px solid var(--moss); background: var(--moss); color: #fff; }
#credit-copy-status,
#takedown-copy-status { display: inline-block; margin-left: 9px; color: var(--moss); font-size: 9px; font-weight: 750; }

.takedown-contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 24px;
  border-radius: 20px;
  background: var(--dark);
  color: #fff;
}
.takedown-contact strong { display: block; margin-top: 6px; font-size: clamp(20px, 3vw, 34px); letter-spacing: -0.04em; overflow-wrap: anywhere; }
.takedown-contact p { margin: 7px 0 0; color: #bcc6c2; font-size: 10px; font-weight: 600; }
.takedown-contact > div:last-child { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.takedown-contact a { padding: 9px 12px; border: 1px solid rgba(255, 255, 255, 0.25); border-radius: 999px; color: #fff; font-size: 9px; font-weight: 800; text-decoration: none; }

.takedown-timeline { margin: 28px 0; }
.takedown-step { display: grid; grid-template-columns: 52px 1fr; gap: 16px; min-height: 145px; }
.takedown-step__rail { display: grid; grid-template-rows: 42px 1fr; justify-items: center; }
.takedown-step__rail b { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--exclude); color: #fff; font: 800 10px ui-monospace, monospace; }
.takedown-step__rail span { width: 1px; height: 100%; background: var(--line); }
.takedown-step:last-child .takedown-step__rail span { display: none; }
.takedown-step small { color: var(--exclude); font: 800 9px ui-monospace, monospace; letter-spacing: 0.1em; }
.takedown-step h3 { margin: 5px 0 0; font-size: 21px; }
.takedown-step p { max-width: 780px; margin: 8px 0 0; color: var(--muted); font-size: 12px; font-weight: 600; }

.request-template { display: grid; grid-template-columns: 0.7fr 1.3fr; gap: 22px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--card); }
.request-template textarea { grid-row: span 2; resize: none; }
.request-template button { align-self: start; justify-self: start; }

.source-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px; }
.source-card { min-width: 0; display: grid; grid-template-columns: 34px 1fr auto; gap: 13px; align-items: center; padding: 17px; border: 1px solid var(--line); border-radius: 15px; background: var(--card); text-decoration: none; transition: transform 180ms ease, border-color 180ms ease; }
.source-card:hover { transform: translateY(-3px); border-color: rgba(49, 95, 84, 0.55); }
.source-card > span { color: var(--exclude); font: 750 9px ui-monospace, monospace; }
.source-card small { display: block; color: var(--muted); font-size: 8px; }
.source-card strong { display: block; margin-top: 3px; font-size: 12px; }
.source-card code { display: block; max-width: 100%; margin-top: 6px; color: var(--muted); font-size: 7px; overflow-wrap: anywhere; }
.source-card > b { color: var(--moss); font-size: 18px; }

footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-top: 110px;
  padding-top: 26px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 10px;
}
footer strong { display: block; color: var(--ink); font-size: 14px; }
footer div:last-child { display: grid; gap: 5px; justify-items: end; font-family: ui-monospace, monospace; }
footer b { color: var(--exclude); }

@media (max-width: 980px) {
  .topbar { grid-template-columns: 1fr auto; }
  .topbar__mark { display: none; }
  .hero { grid-template-columns: 1fr; min-height: 0; }
  .hero__seal { width: min(420px, 75%); justify-self: center; }
  .state-grid { grid-template-columns: repeat(2, 1fr); }
  .false-signal-panel,
  .credit-builder,
  .request-template { grid-template-columns: 1fr; }
  .decision-layout { grid-template-columns: 1fr; }
  .decision-output { position: static; }
}

@media (max-width: 720px) {
  main { width: min(100% - 24px, 1220px); padding-top: 46px; }
  .hero h1 { font-size: clamp(42px, 13vw, 68px); }
  .hero__seal { width: min(330px, 82%); }
  .section-nav { grid-template-columns: repeat(2, 1fr); margin-bottom: 86px; }
  .section-nav a:last-child { grid-column: 1 / -1; }
  .section-heading { grid-template-columns: 1fr; gap: 8px; }
  .section-heading > p { margin-bottom: 5px; }
  .false-signal-grid { grid-template-columns: 1fr; }
  .checklist-grid,
  .source-grid { grid-template-columns: 1fr; }
  .checklist-group:last-child { grid-column: auto; }
  .checklist-progress { grid-template-columns: 1fr auto; }
  .progress-track { grid-row: 2; grid-column: 1 / -1; }
  .credit-builder form { grid-template-columns: 1fr; }
  .credit-builder .wide { grid-column: auto; }
  .permission-fields { grid-template-columns: 1fr; }
  .permission-fields > p { grid-column: auto; }
  .takedown-contact { align-items: flex-start; flex-direction: column; }
  .takedown-contact > div:last-child { justify-content: flex-start; }
}

@media (max-width: 480px) {
  .topbar { gap: 8px; padding-inline: 12px; }
  .back-link { max-width: 145px; font-size: 10px; }
  .print-button { display: none; }
  .metadata-link { display: none; }
  .state-grid { grid-template-columns: 1fr; }
  .state-card { min-height: 0; }
  .false-signal-panel,
  .decision-form fieldset,
  .decision-output,
  .credit-builder,
  .request-template { padding: 18px; }
  .capability-grid { grid-template-columns: repeat(3, 1fr); }
  .evidence-check,
  .signal-check { grid-template-columns: 20px 1fr; }
  .evidence-check em,
  .signal-check em { grid-column: 2; justify-self: start; }
  .table-toolbar { align-items: flex-start; flex-direction: column; }
  footer { align-items: flex-start; flex-direction: column; }
  footer div:last-child { justify-items: start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}

@media (forced-colors: active) {
  .state-card,
  .decision-output,
  .checklist-group,
  .credit-builder,
  .request-template,
  .source-card { color: CanvasText; border-color: CanvasText; background: Canvas; box-shadow: none; }
  a,
  button,
  input,
  select,
  textarea { color: LinkText; border-color: ButtonText; forced-color-adjust: auto; }
  :focus-visible { outline: 3px solid Highlight; outline-offset: 3px; }
}

@page { size: A4 portrait; margin: 12mm; }
@page rights-matrix { size: A4 landscape; margin: 10mm; }

@media print {
  :root { --paper: #fff; --card: #fff; --ink: #111; --muted: #444; --line: rgba(0, 0, 0, 0.22); }
  html, body { width: auto; min-width: 0; background: #fff !important; color: #111; font-size: 9pt; }
  body::before,
  .skip-link,
  .topbar,
  .hero,
  .section-nav,
  .table-toolbar,
  .example-strip,
  .decision-form,
  .form-actions,
  .checklist-progress .progress-track,
  .checklist-progress a,
  .credit-builder form,
  .takedown-contact a,
  .request-template button,
  #credit-copy-status,
  #takedown-copy-status { display: none !important; }
  main { width: auto; margin: 0; padding: 0; }
  .page-section { margin: 0; padding: 0; border: 0; break-before: page; }
  .page-section:first-of-type { break-before: auto; }
  body[data-print-mode] .page-section { display: none; }
  body[data-print-mode="policy"] [data-print-section="policy"],
  body[data-print-mode="decision"] [data-print-section="decision"],
  body[data-print-mode="rights-check"] [data-print-section="rights-check"],
  body[data-print-mode="checklist"] [data-print-section="checklist"],
  body[data-print-mode="takedown"] [data-print-section="takedown"],
  body[data-print-mode="sources"] [data-print-section="sources"] { display: block; break-before: auto; }
  body[data-print-mode="decision"] [data-print-section="decision"] { page: rights-matrix; }
  .section-heading { grid-template-columns: 32mm 1fr; gap: 5mm; margin-bottom: 6mm; }
  .section-heading h2 { font-size: 23pt; }
  .section-heading div > p { font-size: 8.5pt; }
  .state-grid { grid-template-columns: repeat(2, 1fr); gap: 3mm; }
  .state-card { min-height: 0; padding: 4mm; box-shadow: none; break-inside: avoid; }
  .disclaimer,
  .false-signal-panel,
  .decision-output,
  .checklist-group,
  .credit-builder,
  .takedown-contact,
  .request-template,
  .source-card { box-shadow: none; break-inside: avoid; }
  .false-signal-panel { grid-template-columns: 1fr; }
  .matrix-wrap { overflow: visible; border-radius: 0; box-shadow: none; }
  table { min-width: 0; table-layout: fixed; font-size: 7pt; }
  th, td { padding: 2.2mm 1.5mm; }
  thead th { position: static; color: #fff !important; background: #111 !important; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  tbody th { width: 34mm; font-size: 7pt; }
  tbody td { font-size: 6.8pt; }
  tbody td:last-child { min-width: 0; width: 78mm; }
  .state-chip,
  .permission { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .decision-layout { display: block; }
  .decision-output { position: static; padding: 5mm; }
  .checklist-grid { grid-template-columns: repeat(2, 1fr); gap: 3mm; }
  .checklist-group { padding: 4mm; }
  .checklist-group:last-child { grid-column: 1 / -1; }
  .credit-builder { grid-template-columns: 1fr; margin-top: 5mm; padding: 4mm; }
  .takedown-contact { color: #111; background: #eee !important; }
  .takedown-contact p { color: #333; }
  .takedown-step { min-height: 29mm; break-inside: avoid; }
  .request-template { grid-template-columns: 1fr; }
  .request-template textarea { min-height: 52mm; border: 1px solid #777; }
  .source-grid { grid-template-columns: 1fr; }
  .source-card { padding: 3mm; }
  .source-card code { font-size: 6pt; }
  footer { margin-top: 8mm; font-size: 7pt; break-before: auto; }
}
