:root {
  --bg: #f5f0e6;
  --paper: #fffdf8;
  --ink: #242620;
  --muted: #62675f;
  --navy: #17324d;
  --navy-2: #214968;
  --green: #245c4b;
  --green-2: #307661;
  --gold: #b28b3e;
  --gold-soft: #eadbb7;
  --line: #ddd5c7;
  --soft-green: #e4efe9;
  --soft-blue: #e7eef5;
  --soft-red: #f3e5df;
  --soft-violet: #eee8f4;
  --shadow: 0 22px 60px rgba(23, 50, 77, 0.11);
  --radius-xl: 32px;
  --radius-lg: 22px;
  --radius-md: 15px;
  --shell: 1200px;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 0 0, rgba(36, 92, 75, .10), transparent 31rem),
    radial-gradient(circle at 100% 0, rgba(178, 139, 62, .10), transparent 28rem),
    var(--bg);
  font: 1rem/1.65 var(--sans);
}

body.menu-open { overflow: hidden; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { font-family: var(--serif); line-height: 1.08; }
h2 { margin-bottom: 0; color: var(--navy); font-size: clamp(2.3rem, 5vw, 4.3rem); letter-spacing: -.045em; }
h3 { color: var(--navy); font-size: 1.35rem; letter-spacing: -.02em; }

.shell { width: min(var(--shell), calc(100% - 40px)); margin-inline: auto; }
.section { padding: 88px 0; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 999; transform: translateY(-160%); padding: 10px 14px; border-radius: 9px; background: #fff; color: var(--navy); font-weight: 800; }
.skip-link:focus { transform: none; }
:focus-visible { outline: 3px solid #f3bd4d; outline-offset: 4px; }

.topbar { position: sticky; top: 0; z-index: 100; border-bottom: 1px solid rgba(221, 213, 199, .8); background: rgba(245, 240, 230, .91); backdrop-filter: blur(18px); }
.nav { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 11px; color: var(--navy); text-decoration: none; font-weight: 800; letter-spacing: -.03em; }
.brand b { color: var(--green); }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 14px; background: linear-gradient(135deg, var(--green), var(--navy)); color: white; font: 700 1.35rem var(--serif); box-shadow: 0 10px 24px rgba(23, 50, 77, .18); }
.navlinks { display: flex; align-items: center; gap: 17px; }
.navlinks a { position: relative; color: #4f5650; text-decoration: none; font-size: .88rem; font-weight: 700; }
.navlinks a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 2px; background: var(--gold); transition: right 160ms ease; }
.navlinks a:hover, .navlinks a[aria-current="true"] { color: var(--green); }
.navlinks a:hover::after, .navlinks a[aria-current="true"]::after { right: 0; }
.menu-button { display: none; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); color: var(--navy); padding: 9px 12px; font-weight: 800; cursor: pointer; }

.hero { padding: 94px 0 68px; min-height: calc(100vh - 76px); display: grid; align-items: center; }
.hero-grid { display: grid; grid-template-columns: 1.06fr .94fr; gap: clamp(38px, 7vw, 90px); align-items: center; }
.eyebrow, .kicker, .viz-kicker { color: var(--green); text-transform: uppercase; letter-spacing: .13em; font-weight: 900; font-size: .75rem; }
.eyebrow { display: inline-flex; padding: 8px 12px; border: 1px solid rgba(36, 92, 75, .17); border-radius: 999px; background: var(--soft-green); }
h1 { margin: 20px 0 26px; color: var(--navy); font-size: clamp(4.3rem, 10vw, 8.5rem); letter-spacing: -.075em; }
h1 span { color: transparent; -webkit-text-stroke: 1.5px var(--green); text-stroke: 1.5px var(--green); }
.hero-lead { max-width: 760px; color: #3e433e; font: clamp(1.18rem, 2vw, 1.5rem)/1.53 var(--serif); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 32px 0; }
.button { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 11px 20px; border-radius: 999px; text-decoration: none; font-weight: 850; transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease; }
.button:hover { transform: translateY(-2px); }
.button.primary { background: var(--green); color: #fff; box-shadow: 0 14px 30px rgba(36, 92, 75, .23); }
.button.primary:hover { background: var(--green-2); }
.button.secondary { border: 1px solid var(--line); background: rgba(255, 253, 248, .66); color: var(--navy); }
.hero-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 0; }
.hero-meta div { padding: 13px 14px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255, 253, 248, .7); }
.hero-meta dt { color: var(--muted); font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.hero-meta dd { margin: 3px 0 0; color: var(--navy); font-weight: 750; font-size: .88rem; line-height: 1.35; }
.privacy-line { margin: 16px 0 0; color: var(--muted); font-size: .82rem; }

.hero-visual { position: relative; padding: 30px; overflow: hidden; border: 1px solid rgba(221, 213, 199, .88); border-radius: var(--radius-xl); background: rgba(255, 253, 248, .78); box-shadow: var(--shadow); }
.hero-visual::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 42%, rgba(36, 92, 75, .12), transparent 34%), linear-gradient(135deg, rgba(23, 50, 77, .04), transparent); pointer-events: none; }
.visual-label { position: relative; color: var(--navy); font-weight: 900; }
.orbit { position: relative; height: 430px; margin: 6px auto 18px; border: 1px dashed rgba(36, 92, 75, .3); border-radius: 50%; }
.orbit::before, .orbit::after { content: ""; position: absolute; border: 1px dashed rgba(23, 50, 77, .18); border-radius: 50%; inset: 15%; }
.orbit::after { inset: 31%; }
.orbit-center { position: absolute; left: 50%; top: 50%; z-index: 2; transform: translate(-50%, -50%); width: 142px; height: 142px; display: grid; align-content: center; text-align: center; border-radius: 50%; background: linear-gradient(135deg, var(--green), var(--navy)); color: white; box-shadow: 0 18px 38px rgba(23, 50, 77, .27); }
.orbit-center span { font: 800 1.5rem var(--serif); }
.orbit-center small { opacity: .74; }
.orbit-node { position: absolute; z-index: 3; padding: 8px 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--navy); font-size: .78rem; font-weight: 850; box-shadow: 0 10px 24px rgba(23, 50, 77, .09); }
.node-a { top: 2%; left: 35%; }.node-b { right: -2%; top: 28%; }.node-c { right: 4%; bottom: 13%; }.node-d { left: 1%; bottom: 15%; }.node-e { left: -3%; top: 29%; }
.visual-note { position: relative; margin-bottom: 0; color: var(--muted); font-size: .83rem; }

.legend-strip { padding: 18px 0; border-block: 1px solid var(--line); background: rgba(255, 253, 248, .7); }
.legend-list { display: flex; flex-wrap: wrap; gap: 8px; }
.label { display: inline-flex; width: fit-content; padding: 5px 9px; border-radius: 999px; font-size: .67rem; line-height: 1; text-transform: uppercase; letter-spacing: .075em; font-weight: 900; }
.label-rule { color: #164c3c; background: #dcece5; }.label-data { color: #183f61; background: #dfeaf4; }.label-audit { color: #744917; background: #f0dfbd; }.label-position { color: #554069; background: #ece3f3; }.label-thesis { color: #803d2a; background: #f3dfd7; }.label-proposal { color: #354a1e; background: #e6edda; }.label-open { color: #73591c; background: #f6edcf; }.label-limit { color: #5f6260; background: #e9e8e4; }

.section-head { display: grid; grid-template-columns: 1.25fr .75fr; gap: 38px; align-items: end; margin-bottom: 38px; }
.section-head p { margin-bottom: 0; color: var(--muted); }
.section-head .kicker { margin-bottom: 11px; }
.section-head.light h2, .section-head.light .kicker { color: #fff; }
.section-head.light p { color: rgba(255,255,255,.76); }

.definition-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.definition-card { position: relative; min-height: 220px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: rgba(255, 253, 248, .85); box-shadow: 0 10px 28px rgba(23,50,77,.05); }
.definition-card.featured { grid-column: span 2; background: linear-gradient(135deg, var(--navy), var(--green)); color: white; }
.definition-card h3 { margin: 18px 0 10px; }
.definition-card.featured h3 { color: white; font-size: 1.8rem; }
.definition-card p { color: var(--muted); margin-bottom: 0; }
.definition-card.featured p { color: rgba(255,255,255,.8); }
.definition-card .source-line { margin-top: 18px; color: rgba(255,255,255,.72); }
.card-index { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: var(--soft-blue); color: var(--navy); font-weight: 900; }
.source-line { color: var(--muted); font-size: .8rem; }
.source-line.centered { max-width: 800px; margin: 16px auto 0; text-align: center; }
.cite { display: inline-grid; place-items: center; min-width: 28px; min-height: 25px; padding: 2px 6px; border: 1px solid currentColor; border-radius: 7px; color: inherit; text-decoration: none; font-size: .68rem; font-weight: 900; vertical-align: middle; }
.cite:hover { background: rgba(255,255,255,.13); }
.compare-band { display: grid; grid-template-columns: .8fr 1.2fr; gap: 30px; align-items: center; margin-top: 18px; padding: 24px 28px; border-left: 5px solid var(--gold); border-radius: var(--radius-lg); background: var(--paper); box-shadow: 0 10px 30px rgba(23,50,77,.05); }
.compare-band h3, .compare-band p { margin-bottom: 0; }
.compare-band h3 { margin-top: 12px; }
.compare-band p { color: var(--muted); }

.section-dark { background: linear-gradient(135deg, var(--navy), #1f493e); color: white; }
.filter-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.filter { padding: 8px 12px; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; background: transparent; color: rgba(255,255,255,.78); cursor: pointer; font-weight: 800; font-size: .78rem; }
.filter:hover, .filter.active { background: white; color: var(--navy); }
.institution-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.institution { min-height: 255px; padding: 22px; border: 1px solid rgba(255,255,255,.16); border-radius: 18px; background: rgba(255,255,255,.075); }
.institution[hidden] { display: none; }
.institution > span { color: #e7c97d; text-transform: uppercase; letter-spacing: .08em; font-size: .67rem; font-weight: 900; }
.institution h3 { margin: 16px 0 10px; color: white; }
.institution p { color: rgba(255,255,255,.73); font-size: .9rem; }
.institution.limited { border-style: dashed; background: rgba(255,255,255,.035); }

.route { position: relative; max-width: 920px; padding: 0; margin: 0 auto; list-style: none; counter-reset: route; }
.route::before { content: ""; position: absolute; top: 20px; bottom: 20px; left: 31px; width: 2px; background: linear-gradient(var(--green), var(--gold)); }
.route li { position: relative; display: grid; grid-template-columns: 64px 1fr; gap: 22px; padding: 18px 0; }
.route-number { position: relative; z-index: 2; width: 64px; height: 64px; display: grid; place-items: center; border-radius: 20px; background: var(--navy); color: white; font-weight: 900; box-shadow: 0 10px 24px rgba(23,50,77,.18); }
.route li > div { padding: 20px 24px; border: 1px solid var(--line); border-radius: 20px; background: var(--paper); }
.route small { color: var(--green); font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.route h3 { margin: 7px 0; }
.route p { margin-bottom: 0; color: var(--muted); }
.route .branch > div { border-color: rgba(178,139,62,.52); }
.branch-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 14px; }
.branch-grid span { padding: 9px 11px; border-radius: 10px; background: #f4ead3; color: #5d481b; font-size: .82rem; font-weight: 800; text-align: center; }
.method-note { max-width: 920px; margin: 24px auto 0; padding: 17px 19px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,253,248,.77); color: var(--muted); font-size: .87rem; }
.method-note .label { margin-right: 7px; }

.data-section { background: linear-gradient(135deg, #16324e, #245d4c 76%); color: white; }
.data-meta { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 18px; }
.data-meta span { padding: 8px 11px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: rgba(255,255,255,.07); color: rgba(255,255,255,.72); font-size: .75rem; }
.data-meta b { color: white; }
.kpi-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 18px; }
.kpi-card { padding: 19px; border: 1px solid rgba(255,255,255,.16); border-radius: 18px; background: rgba(255,255,255,.08); }
.kpi-card strong { display: block; color: white; font: 800 clamp(1.8rem, 4vw, 2.8rem)/1 var(--serif); }
.kpi-card span { display: block; margin-top: 8px; color: rgba(255,255,255,.72); font-size: .78rem; }
.viz-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.viz-card { padding: 23px; border: 1px solid rgba(255,255,255,.16); border-radius: 22px; background: rgba(255,255,255,.075); min-height: 450px; }
.viz-card.compact { min-height: 320px; }
.viz-head { display: flex; justify-content: space-between; gap: 16px; align-items: start; margin-bottom: 20px; }
.viz-kicker { margin-bottom: 6px; color: #e7c97d; }
.viz-head h3 { margin-bottom: 0; color: white; font-size: 1.3rem; }
.unit { padding: 5px 8px; border: 1px solid rgba(255,255,255,.17); border-radius: 8px; color: rgba(255,255,255,.68); font-size: .69rem; font-weight: 800; }
.heat-list { display: grid; grid-template-columns: repeat(5, 1fr); gap: 7px; }
.heat-cell { min-height: 86px; display: grid; align-content: end; padding: 10px; border: 1px solid rgba(255,255,255,.15); border-radius: 12px; background: color-mix(in srgb, #e8c670 var(--heat), rgba(255,255,255,.04)); }
.heat-cell b { color: white; font-size: .82rem; line-height: 1.2; }
.heat-cell span { color: rgba(255,255,255,.76); font-size: .73rem; }
.bar-chart { display: grid; gap: 9px; }
.bar-row { display: grid; grid-template-columns: 105px 1fr 62px; gap: 10px; align-items: center; color: rgba(255,255,255,.76); font-size: .75rem; }
.bar-track { height: 10px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.11); }
.bar-fill { height: 100%; border-radius: inherit; background: linear-gradient(90deg, #e5bd60, #f3dfa4); }
.bar-value { text-align: right; font-variant-numeric: tabular-nums; }
.viz-foot { margin: 18px 0 0; padding-top: 13px; border-top: 1px solid rgba(255,255,255,.13); color: rgba(255,255,255,.62); font-size: .74rem; }
.donut-layout { display: grid; grid-template-columns: 170px 1fr; gap: 22px; align-items: center; }
.donut { position: relative; width: 170px; height: 170px; border-radius: 50%; background: conic-gradient(#e8c670 0 64.867%, #73a997 64.867% 89.236%, #8095aa 89.236% 100%); }
.donut::after { content: "37.711\A FMI"; white-space: pre; position: absolute; inset: 26%; display: grid; place-items: center; border-radius: 50%; background: #204b4c; color: white; text-align: center; font: 800 1rem/1.15 var(--serif); }
.donut-legend { padding: 0; margin: 0; list-style: none; }
.donut-legend li { display: grid; grid-template-columns: 11px 1fr auto; gap: 8px; align-items: center; padding: 7px 0; color: rgba(255,255,255,.77); font-size: .78rem; }
.donut-legend i { width: 11px; height: 11px; border-radius: 3px; background: var(--legend); }
.check-list { padding-left: 1.1rem; color: rgba(255,255,255,.75); }
.check-list li { margin-bottom: 10px; }
.accessible-data { margin-top: 15px; border: 1px solid rgba(255,255,255,.17); border-radius: 16px; background: rgba(255,255,255,.06); }
.accessible-data summary { padding: 14px 17px; cursor: pointer; font-weight: 850; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
caption { padding: 13px; text-align: left; font-weight: 800; }
th, td { padding: 11px 13px; border: 1px solid var(--line); text-align: left; vertical-align: top; font-size: .84rem; }
thead th { background: var(--navy); color: white; }
.accessible-data table { background: white; color: var(--ink); }
.dark-note { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.07); color: rgba(255,255,255,.68); }

.mechanism-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.mechanism-grid article { padding: 23px; border: 1px solid var(--line); border-radius: 20px; background: var(--paper); }
.mechanism-grid h3 { margin: 17px 0 10px; }
.mechanism-grid p { color: var(--muted); }
.matrix-panel { margin-top: 22px; padding: clamp(22px, 4vw, 38px); border-radius: var(--radius-xl); background: #e8eee9; border: 1px solid #cbd9cf; }
.matrix-intro { max-width: 780px; }
.matrix-intro h3 { margin: 15px 0 9px; font-size: 1.8rem; }
.matrix-intro p { color: var(--muted); }
.decision-table { margin-top: 22px; background: white; }
.decision-table th[scope="row"] { color: var(--navy); width: 18%; }
.matrix-warning { margin: 15px 0 0; color: #455048; font-size: .82rem; }

.societies-section { background: #efe9dc; }
.concept-chain { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; gap: 11px; align-items: stretch; }
.concept-chain div { padding: 17px; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); }
.concept-chain b, .concept-chain span { display: block; }
.concept-chain b { color: var(--navy); font-family: var(--serif); }
.concept-chain span { margin-top: 5px; color: var(--muted); font-size: .78rem; }
.concept-chain i { display: grid; place-items: center; color: var(--gold); font-size: 1.6rem; }
.society-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 22px; }
.society-facts article { padding: 23px; border-radius: 20px; background: var(--navy); color: white; }
.society-facts strong { display: block; margin: 15px 0 8px; font: 800 2.7rem/1 var(--serif); }
.society-facts p { color: rgba(255,255,255,.78); }
.society-facts small { color: rgba(255,255,255,.56); }
.debate-split { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 26px; }
.debate-split article { padding: 27px; border: 1px solid var(--line); border-radius: 22px; background: var(--paper); }
.debate-split h3 { margin: 16px 0 9px; font-size: 1.55rem; }
.debate-split p { color: var(--muted); }

.collaboration-section { background: linear-gradient(135deg, #17324d, #245c4b); color: white; }
.collab-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.collab-grid article { padding: 24px; border: 1px solid rgba(255,255,255,.16); border-radius: 20px; background: rgba(255,255,255,.07); }
.collab-grid h3 { margin: 17px 0 10px; color: white; }
.collab-grid p { color: rgba(255,255,255,.72); }
.cooperation-flow { display: grid; grid-template-columns: 1fr auto 1.1fr auto 1fr; gap: 14px; align-items: center; margin: 24px 0; }
.cooperation-flow div { min-height: 128px; display: grid; align-content: center; padding: 20px; border: 1px solid rgba(255,255,255,.2); border-radius: 18px; text-align: center; background: rgba(255,255,255,.06); }
.cooperation-flow .flow-core { background: white; color: var(--navy); }
.cooperation-flow b, .cooperation-flow span { display: block; }
.cooperation-flow span { margin-top: 5px; color: rgba(255,255,255,.63); font-size: .78rem; }
.cooperation-flow .flow-core span { color: var(--muted); }
.flow-arrow { color: #e7c97d !important; font-size: 1.8rem !important; }
.objection-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.objection-grid article { padding: 20px; border-top: 3px solid var(--gold); background: rgba(255,255,255,.06); }
.objection-grid h3 { color: white; }
.objection-grid p { margin-bottom: 8px; color: rgba(255,255,255,.7); font-size: .87rem; }
.objection-grid strong { color: #f0d691; }

.access-levels { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.access-levels article { min-height: 230px; padding: 24px; border-radius: 21px; }
.access-levels span { display: grid; place-items: center; width: 43px; height: 43px; border-radius: 13px; background: rgba(255,255,255,.56); color: var(--navy); font-weight: 900; }
.access-levels h3 { margin: 24px 0 8px; }
.access-levels p { color: #4f5750; }
.level-open { background: #dcece5; }.level-request { background: #eee4c9; }.level-protected { background: #eadedb; }
.privacy-audit-card { display: grid; grid-template-columns: .8fr 1.2fr; gap: 30px; margin-top: 18px; padding: 28px; border: 1px solid var(--line); border-radius: 22px; background: var(--paper); }
.privacy-audit-card h3 { margin: 16px 0 0; font-size: 1.7rem; }
.privacy-audit-card ul { columns: 2; padding-left: 1.2rem; margin: 0; color: var(--muted); }
.privacy-audit-card li { break-inside: avoid; margin-bottom: 8px; }

.audit-section { background: #101f2d; color: white; }
.audit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.audit-grid article { padding: 24px; border: 1px solid rgba(255,255,255,.15); border-radius: 20px; background: rgba(255,255,255,.06); }
.audit-grid time { color: #e8c978; font-size: .73rem; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.audit-grid h3 { margin: 16px 0 10px; color: white; }
.audit-grid p { color: rgba(255,255,255,.74); }
.audit-grid small { color: rgba(255,255,255,.52); }
.audit-thesis { margin: 17px 0 0; padding: 21px; border-left: 4px solid var(--gold); background: rgba(255,255,255,.055); color: rgba(255,255,255,.74); }
.audit-thesis .label { margin-right: 8px; }

.thesis-list { display: grid; gap: 10px; }
.thesis-list details { border: 1px solid var(--line); border-radius: 17px; background: var(--paper); overflow: hidden; }
.thesis-list summary { display: flex; gap: 14px; align-items: center; padding: 19px 21px; cursor: pointer; color: var(--navy); font: 700 1.16rem/1.3 var(--serif); }
.thesis-list summary span { flex: 0 0 auto; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: var(--soft-green); color: var(--green); font: 900 .75rem var(--sans); }
.thesis-body { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--line); }
.thesis-body div { padding: 20px; }
.thesis-body div + div { border-left: 1px solid var(--line); }
.thesis-body b { color: var(--green); text-transform: uppercase; letter-spacing: .07em; font-size: .72rem; }
.thesis-body p { margin: 8px 0 0; color: var(--muted); font-size: .88rem; }

.methodology-section { background: #e5ece7; }
.methodology-section .section-head.light h2, .methodology-section .section-head.light .kicker { color: var(--navy); }
.methodology-section .section-head.light p { color: var(--muted); }
.method-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; }
.method-steps article { padding: 21px; border: 1px solid #c8d5cb; border-radius: 18px; background: rgba(255,255,255,.59); }
.method-steps b { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 11px; background: var(--green); color: white; }
.method-steps h3 { margin: 16px 0 7px; }
.method-steps p { margin-bottom: 0; color: var(--muted); font-size: .86rem; }
.limitations { margin-top: 22px; padding: 26px; border: 1px solid #c8d5cb; border-radius: 20px; background: rgba(255,255,255,.5); }
.limitations ul { columns: 2; column-gap: 38px; padding-left: 1.2rem; color: var(--muted); }
.limitations li { break-inside: avoid; margin-bottom: 10px; }
.sources { margin-top: 54px; }
.sources > h3 { font-size: 2rem; }
.source-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.source-grid article { scroll-margin-top: 100px; padding: 19px; border: 1px solid #c8d5cb; border-radius: 16px; background: rgba(255,255,255,.62); }
.source-grid article:target { outline: 4px solid rgba(178,139,62,.38); }
.source-grid span { color: var(--green); text-transform: uppercase; letter-spacing: .07em; font-size: .65rem; font-weight: 900; }
.source-grid h4 { margin: 11px 0 7px; color: var(--navy); font-size: 1.08rem; }
.source-grid p { margin-bottom: 0; color: var(--muted); font-size: .78rem; }
.glossary { margin-top: 18px; border: 1px solid #c8d5cb; border-radius: 17px; background: rgba(255,255,255,.54); }
.glossary summary { padding: 17px 20px; cursor: pointer; color: var(--navy); font-weight: 900; }
.glossary dl { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; margin: 0; border-top: 1px solid #c8d5cb; }
.glossary dl div { padding: 16px 20px; border-bottom: 1px solid #d5dfd7; }
.glossary dt { color: var(--green); font-weight: 900; }
.glossary dd { margin: 4px 0 0; color: var(--muted); font-size: .84rem; }

footer { padding: 36px 0; border-top: 1px solid var(--line); background: var(--paper); }
.footer-grid { display: grid; grid-template-columns: 1fr 1fr auto; gap: 30px; align-items: start; color: var(--muted); font-size: .85rem; }
.footer-grid strong { color: var(--navy); font-family: var(--serif); font-size: 1.2rem; }
.footer-grid p { margin: 5px 0 0; }
.footer-grid a { color: var(--green); font-weight: 850; }

@media (max-width: 980px) {
  .menu-button { display: inline-flex; gap: 7px; }
  .navlinks { position: fixed; inset: 77px 0 auto; display: none; padding: 20px; border-bottom: 1px solid var(--line); background: var(--paper); box-shadow: var(--shadow); }
  .navlinks.open { display: grid; }
  .navlinks a { padding: 8px 0; }
  .hero { min-height: auto; }
  .hero-grid, .section-head { grid-template-columns: 1fr; }
  .hero-grid { gap: 42px; }
  .hero-visual { max-width: 670px; width: 100%; margin-inline: auto; }
  .definition-grid { grid-template-columns: repeat(2, 1fr); }
  .institution-grid, .source-grid { grid-template-columns: repeat(2, 1fr); }
  .kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .heat-list { grid-template-columns: repeat(2, 1fr); }
  .concept-chain { grid-template-columns: 1fr; }
  .concept-chain i { transform: rotate(90deg); }
  .cooperation-flow { grid-template-columns: 1fr; }
  .flow-arrow { transform: rotate(90deg); }
}

@media (max-width: 720px) {
  .shell { width: min(var(--shell), calc(100% - 26px)); }
  .section { padding: 66px 0; }
  .hero { padding: 58px 0; }
  h1 { font-size: clamp(4rem, 21vw, 6.3rem); }
  .hero-meta, .definition-grid, .institution-grid, .viz-grid, .mechanism-grid, .society-facts, .debate-split, .collab-grid, .objection-grid, .access-levels, .audit-grid, .method-steps, .source-grid, .thesis-body, .footer-grid { grid-template-columns: 1fr; }
  .definition-card.featured { grid-column: auto; }
  .compare-band, .privacy-audit-card { grid-template-columns: 1fr; }
  .orbit { height: 340px; }
  .orbit-center { width: 116px; height: 116px; }
  .orbit-node { font-size: .65rem; }
  .route li { grid-template-columns: 50px 1fr; gap: 13px; }
  .route::before { left: 24px; }
  .route-number { width: 50px; height: 50px; border-radius: 15px; }
  .route li > div { padding: 17px; }
  .branch-grid { grid-template-columns: repeat(2, 1fr); }
  .bar-row { grid-template-columns: 88px 1fr 54px; }
  .donut-layout { grid-template-columns: 1fr; justify-items: center; }
  .donut-legend { width: 100%; }
  .privacy-audit-card ul, .limitations ul { columns: 1; }
  .thesis-body div + div { border-left: 0; border-top: 1px solid var(--line); }
}

@media (max-width: 430px) {
  .hero-actions { display: grid; }
  .button { width: 100%; }
  .kpi-grid, .heat-list { grid-template-columns: 1fr; }
  .heat-cell { min-height: 70px; }
  .branch-grid { grid-template-columns: 1fr; }
  .bar-row { grid-template-columns: 80px 1fr; }
  .bar-value { grid-column: 2; }
}

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

@media print {
  .topbar, .hero-actions, .filter-row { display: none !important; }
  body { background: white; color: black; font-size: 10pt; }
  .section, .hero { padding: 24px 0; }
  .section-dark, .data-section, .collaboration-section, .audit-section { background: white; color: black; }
  .section-head.light h2, .section-head.light .kicker, .section-head.light p, .institution h3, .audit-grid h3, .collab-grid h3 { color: black; }
  .institution, .viz-card, .collab-grid article, .audit-grid article { border-color: #aaa; background: white; color: black; break-inside: avoid; }
  .institution p, .viz-foot, .collab-grid p, .audit-grid p, .audit-grid small { color: #444; }
  a { text-decoration: none; }
}
