.glossary-shell { width:min(1200px,calc(100% - 36px)); margin:0 auto; padding:42px 0 70px; }
.glossary-heading { margin:0 0 24px; }
.glossary-heading h1 { font-size:clamp(2.15rem,4.7vw,4rem); letter-spacing:-.05em; line-height:1; color:var(--forest); margin:13px 0; }
.glossary-heading p { max-width:700px; margin:0; color:var(--muted); line-height:1.55; font-size:1rem; }
.glossary-controls { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.glossary-controls button { border:1px solid #bed3b0; background:white; border-radius:999px; min-height:43px; padding:8px 18px; color:var(--forest); font-weight:800; cursor:pointer; }
.glossary-controls button[aria-pressed="true"] { background:var(--forest); border-color:var(--forest); color:white; }
.glossary-stage { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(290px,1fr); gap:17px; align-items:start; }
.glossary-diagram,.glossary-side,.glossary-index { background:#fffaf0; border:1px solid #d5e4c9; border-radius:25px; box-shadow:var(--shadow); }
.glossary-diagram { overflow:hidden; min-width:0; padding:18px; background:linear-gradient(150deg,#fffdf4 0%,#e4f0d2 100%); }
.glossary-diagram-top { display:flex; justify-content:space-between; align-items:baseline; gap:14px; color:var(--forest); }
.glossary-diagram-top strong { font-size:1.15rem; }
.glossary-diagram-top span,.glossary-diagram-note { color:#496a50; font-size:.83rem; }
.glossary-diagram-note { margin:2px 0 0; line-height:1.4; }
.glossary-image-tabs { display:flex; gap:6px; flex-wrap:wrap; margin:10px 0; }
.glossary-image-tabs[hidden] { display:none; }
.glossary-image-tabs button { padding:7px 11px; border-radius:999px; border:1px solid #b7ccb0; background:white; color:var(--forest); font-size:.8rem; font-weight:800; cursor:pointer; }
.glossary-image-tabs button[aria-pressed="true"] { background:var(--forest); color:white; border-color:var(--forest); }
#glossaryBird { display:block; width:100%; height:auto; aspect-ratio:710 / 965; max-height:780px; border-radius:18px; background:white; }
#glossaryBird.closeup { aspect-ratio:1.5; }
.glossary-highlight { pointer-events:none; }
.glossary-feature { fill:#f4c85a; fill-opacity:.25; stroke:#d18a2f; stroke-opacity:.62; stroke-width:2.5; filter:drop-shadow(0 0 4px #ffe4a3); animation:glossary-reveal .18s ease-out; }
.glossary-feature[fill="none"] { fill:none; stroke:#efb837; stroke-opacity:.74; stroke-width:10; stroke-linecap:round; }
@keyframes glossary-reveal { from { opacity:0; } to { opacity:1; } }
@media (prefers-reduced-motion:reduce) { .glossary-feature { animation:none; } }
.glossary-hotspots [data-marker] { cursor:pointer; }
.glossary-hotspot { fill:transparent; stroke:transparent; pointer-events:all; }
.glossary-hotspot[fill="none"] { fill:none; pointer-events:stroke; }
.glossary-hotspots [data-marker]:focus-visible .glossary-hotspot { stroke:#e39832; stroke-opacity:.9; }
.glossary-side { min-height:390px; padding:23px; }
.glossary-overline { color:#5d715f; letter-spacing:.12em; font-size:.75rem; font-weight:900; margin:0 0 12px; }
.glossary-term-buttons { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:20px; max-height:160px; overflow:auto; }
.glossary-term-buttons button { padding:7px 10px; border-radius:9px; border:1px solid #caddc6; background:white; color:var(--forest); font-size:.87rem; font-weight:750; cursor:pointer; }
.glossary-term-buttons button.active,.glossary-term-buttons button:hover { background:var(--yellow); border-color:#c59a39; }
.glossary-detail { scroll-margin-top:90px; }
.glossary-detail h2,.glossary-quiz h2 { font-size:clamp(1.4rem,2.8vw,2rem); color:var(--forest); margin:0 0 13px; line-height:1.12; }
.glossary-detail h3 { color:var(--forest); font-size:.88rem; margin:17px 0 4px; }
.glossary-detail p,.glossary-quiz p { margin:0; line-height:1.52; }
.glossary-detail button,.glossary-quiz button,.glossary-actions button,.glossary-result button { border:0; border-radius:11px; background:var(--forest); color:white; padding:11px 15px; font-weight:800; cursor:pointer; }
.glossary-detail button { margin-top:22px; }
.glossary-actions { display:flex; align-items:center; gap:17px; margin:19px 0 29px; flex-wrap:wrap; }
.glossary-actions span { font-size:.9rem; color:var(--forest); font-weight:750; }
.glossary-quiz-options { display:grid; gap:9px; grid-template-columns:repeat(2,minmax(0,1fr)); margin:20px 0; }
.glossary-quiz-options button { background:#e7f0d6; color:var(--forest); border:1px solid #a2be94; text-align:left; }
.glossary-quiz-options button:hover { background:var(--yellow); }
#glossaryFeedback { min-height:42px; padding:10px 0; font-weight:750; }
#glossaryFeedback.correct { color:#1b6b45; }
#glossaryFeedback.incorrect { color:#9b4329; }
.glossary-index { padding:24px; scroll-margin-top:80px; }
.glossary-index-heading { display:flex; justify-content:space-between; align-items:end; gap:16px; margin-bottom:18px; }
.glossary-index h2 { margin:10px 0 0; color:var(--forest); font-size:1.7rem; }
.glossary-index input { width:min(380px,100%); min-height:46px; padding:10px 13px; border:1px solid #b7ccb4; border-radius:12px; background:white; }
.glossary-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.glossary-result { display:flex; align-items:center; justify-content:space-between; gap:14px; background:white; border:1px solid var(--line); border-radius:15px; padding:15px; cursor:pointer; }
.glossary-result:hover { border-color:#8eb48a; }
.glossary-result span { color:#55725c; font-size:.77rem; font-weight:800; text-transform:uppercase; }
.glossary-result h3 { margin:4px 0; color:var(--forest); font-size:1rem; }
.glossary-result p { margin:0; font-size:.86rem; line-height:1.4; }
.glossary-result button { flex:none; font-size:.76rem; padding:9px; }
.glossary-sources { max-width:900px; color:#58705b; font-size:.8rem; line-height:1.5; margin-top:18px; }
.glossary-sources a { color:var(--forest); }
@media(max-width:800px) {
  .glossary-stage { grid-template-columns:1fr; }
  .glossary-side { min-height:0; }
  #glossaryBird { max-height:720px; }
  .glossary-results { grid-template-columns:1fr; }
}
@media(max-width:540px) {
  .glossary-shell { width:calc(100% - 24px); padding-top:25px; }
  .glossary-diagram { padding:11px; }
  .glossary-diagram-top span { font-size:.73rem; }
  #glossaryBird { max-height:none; }
  #glossaryBird.closeup { aspect-ratio:1.25; }
  .glossary-controls { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; }
  .glossary-controls button { flex:none; padding:8px 14px; }
  .glossary-index-heading { align-items:stretch; flex-direction:column; }
  .glossary-index input { width:100%; }
  .glossary-quiz-options { grid-template-columns:1fr; }
  .glossary-result { align-items:flex-start; }
}
