/* Homepage surfaces share one spacing scale, restrained shadows, and soft edges. */
.home-page { --home-edge:var(--line); --home-radius:.85rem; --home-shadow:0 2px 4px #233d3203,0 12px 28px #233d3206; }
.home-page main { padding-top:1.75rem; padding-bottom:2rem; }
.home-hero {
  grid-template-columns:minmax(0,1.16fr) minmax(0,1fr); align-items:stretch;
  gap:clamp(1.5rem,3vw,2.5rem); padding:clamp(1.5rem,3vw,2.5rem);
}
.home-hero::before {
  inset:0; border-color:var(--home-edge); border-radius:1.2rem;
  background:radial-gradient(ellipse at 100% 0,#d6dfcdb3,transparent 65%),linear-gradient(125deg,var(--surface),#eceee1);
  box-shadow:inset 0 1px 0 #ffffff,var(--home-shadow);
}
.home-copy { padding:0; }
.home-kicker { margin-bottom:1.15rem; font-size:.68rem; letter-spacing:.09em; }
.home-page .home-hero h1 { font-size:clamp(2.75rem,4.9vw,4rem); line-height:1.06; letter-spacing:-.04em; }
.home-lede { max-width:43ch; margin-top:1.3rem; font-size:1rem; line-height:1.8; }
.home-actions { margin-top:1.4rem; gap:.75rem 1.25rem; }
.home-page .home-actions .button { border-radius:.45rem; font-size:.83rem; padding:.8rem 1rem; gap:.85rem; }
.home-actions .button:not(.button-secondary) { box-shadow:0 3px 8px #233d3216,inset 0 1px 0 #ffffff14; }
.home-actions .button-secondary { font-weight:500; }

/* Both selectors sit below their cards on a shared baseline. */
.home-showcase { min-width:0; }
.home-topics {
  display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.2rem;
  padding:.25rem; margin:.75rem 0 0; background:var(--surface);
  border:1px solid var(--line); border-radius:.7rem; box-shadow:inset 0 1px 0 #ffffff,0 2px 5px #233d3204;
}
.home-page .home-topics button {
  min-width:0; min-height:44px; padding:.3rem .2rem; background:transparent;
  border:1px solid transparent; border-radius:.45rem; color:var(--muted);
  font-size:.76rem; font-weight:500; line-height:1.35;
}
.home-topics button::before { display:none; }
.home-page .home-topics button:hover { color:var(--green); background:var(--sage-surface); }
.home-page .home-topics button[aria-selected=true] {
  background:var(--green); border-color:var(--green); color:var(--on-green);
  box-shadow:0 2px 5px #233d3218,inset 0 1px 0 #ffffff18;
}
.home-topics[hidden],.home-slide-controls[hidden] { display:none; }

/* The starting-point selector mirrors the research card with its colors reversed. */
.home-entry-showcase.home-slides-ready,.home-showcase.home-slides-ready { display:flex; flex-direction:column; }
.home-entry-topics { grid-template-columns:repeat(4,minmax(0,1fr)); background:var(--green); border-color:var(--green); box-shadow:inset 0 1px 0 #ffffff14; }
.home-entry-showcase .home-topics button { color:var(--on-green-muted); }
.home-entry-showcase .home-topics button:hover { color:var(--on-green); background:#ffffff14; }
.home-entry-showcase .home-topics button[aria-selected=true] {
  color:var(--green); background:var(--surface); border-color:var(--surface); box-shadow:0 2px 5px #172c2426;
}
.home-entry-showcase .home-topics button:focus-visible { outline-color:var(--gold); }
.home-entry-feature {
  padding:1.5rem 1.5rem 1rem; border:1px solid var(--home-edge); border-radius:var(--home-radius);
  background:linear-gradient(145deg,var(--surface),#f1f2e8); box-shadow:inset 0 1px 0 #ffffff,var(--home-shadow);
}
.home-entry-showcase.home-slides-ready .home-entry-feature { flex:1; display:flex; flex-direction:column; }
.home-entry-slide + .home-entry-slide { margin-top:1.5rem; padding-top:1rem; border-top:1px solid var(--line); }
.home-slides-ready .home-entry-panels { display:grid; grid-template-columns:minmax(0,1fr); }
.home-slides-ready .home-entry-slide { grid-area:1 / 1; margin:0; padding:0; border:0; }
.home-slides-ready .home-entry-slide[hidden] { display:block !important; visibility:hidden; pointer-events:none; }
.home-entry-controls { margin-top:auto; border-color:var(--line); }
.home-entry-controls .home-slide-position { color:var(--muted); }
.home-entry-showcase .home-slide-arrows { display:flex; gap:.5rem; }
.home-entry-showcase .home-slide-arrows button {
  display:grid; place-items:center; min-height:44px; width:44px; padding:0;
  border:1px solid var(--control-edge); border-radius:50%; background:transparent; color:var(--green); font-size:1.1rem;
}
.home-entry-showcase .home-slide-arrows button:hover { background:var(--sage-surface); border-color:var(--green); }
.home-entry-showcase .home-entry-slide:focus-visible { outline-color:var(--focus); }
.home-showcase .home-topics button:focus-visible { outline-color:var(--focus); }
.home-showcase .home-feature {
  padding:1.5rem 1.5rem 1rem; touch-action:pan-y pinch-zoom; border:1px solid #314f3f; border-radius:var(--home-radius);
  background:radial-gradient(ellipse at 100% 0,#81968029,transparent 70%),linear-gradient(145deg,#2c4c3d,#1e352b);
  box-shadow:inset 0 1px 0 #ffffff14,0 6px 14px #233d320c,0 18px 36px #233d3213;
}
.home-showcase .home-feature:hover { transform:none; background-color:#233d32; }
.home-showcase .home-feature::before { left:1.5rem; width:2.5rem; background:var(--gold); border-radius:2px; }
.home-slide + .home-slide { margin-top:1.75rem; padding-top:1.75rem; border-top:1px solid #a6b69b66; }
.home-slide h2 { font-size:clamp(1.85rem,2.65vw,2.2rem); line-height:1.12; }
.home-slide .home-feature-kicker { margin-bottom:.85rem; font-size:.66rem; letter-spacing:.09em; }
.home-slide .home-feature-description { margin:.6rem 0 0; font-size:.86rem; line-height:1.75; color:var(--on-green-muted); }
/* Hidden slides retain their layout footprint so switching never moves the page.
   Visibility keeps their content and links out of keyboard and accessibility navigation. */
.home-slides-ready .home-feature { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr) auto; flex:1; }
.home-slides-ready .home-slide {
  grid-area:1 / 1; display:grid; grid-template-rows:auto minmax(5rem,auto) minmax(4.8rem,auto) minmax(5.2rem,auto) auto;
  align-items:start; margin:0; padding:0; border:0;
}
.home-slides-ready .home-slide[hidden] { display:grid !important; visibility:hidden; pointer-events:none; }
.home-showcase .home-sequence {
  width:100%; align-self:center; margin:.65rem 0 .35rem; padding:.7rem .45rem;
  border:1px solid #b3c1a726; border-radius:.5rem; background:linear-gradient(120deg,#ffffff08,#ffffff02);
}
.home-showcase .home-sequence dd { font-size:clamp(1.35rem,2.1vw,1.7rem); margin-top:.3rem; }
.home-showcase .home-feature .home-feature-link { color:var(--on-green); text-decoration:none; padding-block:.6rem; font-size:.79rem; line-height:1.5; }
.home-showcase .home-feature .home-feature-link:hover { text-decoration:underline; text-underline-offset:.3em; }
.home-feature-link > span { flex-shrink:0; }
.home-showcase a:focus-visible,.home-showcase button:focus-visible,.home-slide:focus-visible { outline-color:#e4d0a0; }
.home-slide-controls {
  grid-area:2 / 1; display:flex; justify-content:space-between; align-items:center; gap:.5rem;
  margin-top:.35rem; padding-top:.7rem; border-top:1px solid #b3c1a733;
}
.home-slide-position { margin:0; font-size:.75rem; color:var(--on-green-muted); font-variant-numeric:tabular-nums; }
.home-slide-arrows { display:flex; gap:.5rem; }
.home-showcase .home-slide-arrows button {
  display:grid; place-items:center; min-height:44px; width:44px; padding:0;
  border:1px solid #b8c7ad99; border-radius:50%; background:#ffffff05; color:var(--on-green); font-size:1.1rem;
}
.home-showcase .home-slide-arrows button:hover { background:#ffffff14; border-color:var(--on-green-muted); }
.home-motif {
  display:flex; align-items:center; justify-content:space-between; gap:.75rem; width:100%;
  min-height:4.4rem; align-self:center; margin:.65rem 0 .35rem; padding:.75rem;
  border:1px solid #b3c1a726; border-radius:.5rem; background:linear-gradient(120deg,#ffffff08,#ffffff02);
  color:var(--gold); font:400 1.25rem/1.15 var(--display);
}
.home-motif .home-motif-arrow { color:#b0c1ac; font:400 1.2rem system-ui,sans-serif; }
.home-lanes > span:first-child { font-size:2rem; }
.home-lanes > div { display:grid; grid-template-columns:repeat(5,1fr); gap:.2rem; flex:0 1 55%; }
.home-lanes > div > span { padding:.16rem; border:1px solid #afc0a440; border-radius:.15rem; background:#ffffff06; text-align:center; font-size:.85rem; }
.home-wavelet svg { display:block; width:100%; height:3rem; }
.home-counting > div { display:flex; flex-direction:column; gap:.3rem; }
.home-counting > div > span { padding-left:.6rem; border-left:2px solid #a5b79980; }
.home-packets > span:last-child { text-align:right; }

/* Reading routes, tools, and supporting details share aligned outer edges. */
.home-section-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:.4rem 1rem; }
.home-section-heading h2 { font:400 2.15rem/1.2 var(--display); margin:0; }
.home-section-heading > a { display:inline-flex; align-items:center; gap:.7rem; min-height:44px; font-size:.8rem; }
.home-section-heading > p { font-size:.82rem; color:var(--muted); margin:0; }
.home-ways { margin-top:2.5rem; }
.home-route-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.home-route {
  display:block; padding:1.4rem; border:1px solid var(--home-edge); border-radius:var(--home-radius);
  background:linear-gradient(145deg,var(--surface),#f1f2e8); box-shadow:var(--home-shadow);
}
.home-route:hover { background:var(--surface-alt); border-color:#9aa991; box-shadow:0 3px 8px #233d3205,0 14px 30px #233d320c; }
.home-route-arrow { display:grid; place-items:center; top:1.4rem; right:1.4rem; width:1.1rem; height:1.1rem; font-size:1rem; color:var(--muted); }
.home-route .home-route-label { margin:0 1.6rem .7rem 0; font-size:.67rem; letter-spacing:.08em; }
.home-route h3 { font-size:1.65rem; line-height:1.12; min-height:2.24em; }
.home-route p { margin-top:.8rem; font-size:.86rem; line-height:1.75; }
.home-toolbox {
  margin-top:2rem; padding:1.4rem 1.5rem; border:1px solid var(--home-edge); border-radius:var(--home-radius);
  background:linear-gradient(120deg,var(--sage-surface),#eceee2); box-shadow:inset 0 1px 0 #ffffff;
}
.home-toolbox .home-section-heading h2 { font-size:1.7rem; }
.home-tool-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin-top:.9rem; }
.home-tool-links > a {
  display:grid; grid-template-columns:2.5rem minmax(0,1fr) auto; align-items:center; gap:.75rem;
  min-width:0; min-height:80px; padding:.65rem; border-radius:.55rem; color:var(--green); text-decoration:none;
}
.home-tool-links > a:hover { background:#ffffffa3; }
.home-tool-icon {
  display:grid; place-items:center; width:2.5rem; height:2.5rem; border:1px solid var(--line);
  border-radius:.65rem; background:#dce4d2; color:var(--green); font:italic 400 1.7rem/1 var(--display);
}
svg.home-tool-icon { padding:.6rem; }
.home-tool-links > a > span:last-child { color:var(--muted); font-size:.9rem; }
.home-tool-links strong { display:block; font-size:.84rem; font-weight:550; line-height:1.5; }
.home-tool-links small { display:block; font-size:.73rem; color:var(--muted); line-height:1.6; margin-top:.2rem; }
.home-tool-links > a:hover strong { text-decoration:underline; text-underline-offset:.3em; }
.home-future { margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--home-edge); }
.home-future > p { max-width:70ch; margin:.6rem 0; font-size:.9rem; color:var(--muted); }
.home-future-links { display:flex; flex-wrap:wrap; gap:.25rem 1.5rem; }
.home-future-links > a { display:inline-flex; align-items:center; min-height:44px; font-size:.82rem; }
/* Supporting details sit on the page, keeping the sage tools panel distinct. */
.home-notes {
  margin-top:1.5rem; padding-inline:0; border:0; border-radius:0;
  background:transparent; box-shadow:none;
}
.home-more,.home-status { border-bottom:1px solid var(--line); }
.home-more > summary,.home-status > summary { padding-block:.85rem; font-size:.83rem; }
.home-status { border-top:0; }
.home-page footer { padding-top:1.5rem; }

@media (max-width:1100px) and (min-width:861px) {
  .home-hero { gap:1.25rem; padding:1.5rem; }
  .home-entry-topics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-showcase .home-topics { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .home-page .home-hero h1 { font-size:2.85rem; }
  .home-showcase .home-feature { padding-inline:1.15rem; }
  .home-entry-feature { padding-inline:1.15rem; }
  .home-page .home-topics button { font-size:.76rem; }
  .home-slide h2 { font-size:1.9rem; }
}
@media (max-width:1100px) and (min-width:761px) {
  .home-route-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
  .home-route { grid-column:span 2; }
  .home-route:nth-last-child(-n+2) { grid-column:span 3; }
  .home-route h3 { min-height:0; }
}
@media (max-width:760px) and (min-width:621px) {
  .home-route-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-route:last-child { grid-column:1 / -1; }
  .home-route h3 { min-height:0; }
}
@media (max-width:860px) {
  .home-hero { grid-template-columns:minmax(0,1fr); gap:1.6rem; }
  .home-copy { max-width:40rem; }
  .home-entry-showcase { max-width:none; }
  .home-page .home-hero h1 { font-size:clamp(2.85rem,7.4vw,4rem); }
  .home-lede { max-width:50ch; }
  .home-showcase { width:100%; }
  .home-slides-ready .home-slide { grid-template-rows:auto minmax(5rem,auto) minmax(3.5rem,auto) minmax(5.2rem,auto) auto; }
  .home-tool-links { gap:.25rem; }
}
@media (max-width:620px) {
  .home-page .site-header { padding-inline:1.2rem; }
  .home-page .brand { width:clamp(8.5rem,calc(100vw - 11.5rem),13.75rem); }
  .home-page .brand-logo { width:100%; }
  .home-page .brand small { font-size:.55rem; letter-spacing:.055em; }
  .home-page .site-navigation-bar { display:block; }
  .home-page .site-nav-links { justify-content:space-between; flex-wrap:nowrap; gap:0; }
  .home-page .site-nav-links > a { padding-inline:.2rem; font-size:clamp(.7rem,2.9vw,.78rem); }
  .home-page .site-nav-tools { position:absolute; top:1rem; right:1.2rem; margin:0; padding:0; border:0; gap:.35rem; }
  .home-page .site-nav-tools > button { position:static; margin:0; }
  .home-page .site-nav-tools > a[href="search.html"] { width:44px; padding:.5rem; font-size:0; gap:0; }
  .home-page .site-nav-tools > a[href="search.html"] svg { width:18px; height:18px; }
  .home-page main { padding-top:1rem; padding-bottom:1.5rem; }
  .home-hero { padding:1.25rem; gap:1.35rem; }
  .home-hero::before { border-radius:1rem; }
  .home-kicker { font-size:.64rem; letter-spacing:.06em; line-height:1.6; }
  .home-kicker::before { display:none; }
  .home-page .home-hero h1 { font-size:clamp(2.2rem,8.5vw,3rem); }
  .home-lede { margin-top:1rem; font-size:.93rem; line-height:1.75; }
  .home-actions { margin-top:1.1rem; gap:.35rem .8rem; }
  .home-page .home-actions .button { font-size:.78rem; padding:.7rem .8rem; gap:.6rem; }
  .home-topics { grid-template-columns:repeat(6,minmax(0,1fr)); gap:.15rem; margin:.65rem 0 0; }
  .home-topics button { grid-column:span 2; }
  .home-entry-topics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-entry-topics button { grid-column:auto; }
  .home-page .home-topics button { font-size:.76rem; }
  .home-showcase .home-feature { padding:1.2rem 1rem .85rem; }
  .home-entry-feature { padding:1.2rem 1rem .85rem; }
  .home-showcase .home-feature::before { left:1rem; }
  .home-slide h2 { font-size:1.95rem; }
  .home-slide .home-feature-kicker { font-size:.64rem; letter-spacing:.06em; line-height:1.6; }
  .home-slide .home-feature-description { font-size:.83rem; }
  .home-slides-ready .home-slide { grid-template-rows:auto minmax(4.7rem,auto) minmax(5.7rem,auto) minmax(5rem,auto) auto; }
  .home-showcase .home-sequence { padding-inline:.2rem; }
  .home-showcase .home-sequence dd { font-size:1.4rem; }
  .home-showcase .home-feature .home-feature-link { font-size:.77rem; }
  .home-motif { padding-inline:.6rem; font-size:1.1rem; gap:.5rem; }
  .home-ways { margin-top:1.75rem; }
  .home-section-heading h2 { font-size:1.85rem; }
  .home-route-grid { grid-template-columns:minmax(0,1fr); margin-top:.7rem; gap:.75rem; }
  .home-route { padding:1.1rem; }
  .home-route-arrow { top:1.1rem; right:1.1rem; }
  .home-route .home-route-label { margin:0 1.6rem .55rem 0; }
  .home-route h3 { min-height:0; font-size:1.6rem; }
  .home-route p { margin-top:.6rem; font-size:.85rem; }
  .home-toolbox { margin-top:1.5rem; padding:1.15rem 1rem; }
  .home-toolbox .home-section-heading { gap:.5rem; }
  .home-toolbox .home-section-heading h2 { font-size:1.6rem; }
  .home-tool-links { grid-template-columns:minmax(0,1fr); gap:0; margin-top:.6rem; }
  .home-tool-links > a { padding:.8rem 0; }
  .home-tool-links > a + a { border-top:1px solid var(--home-edge); border-radius:0; }
  .home-tool-links strong { font-size:.88rem; }
  .home-tool-links small { font-size:.78rem; }
  .home-notes { padding-inline:0; margin-top:1rem; }
  .home-more > summary,.home-status > summary { font-size:.8rem; }
}
@media (max-width:370px) {
  .home-page .brand small { display:none; }
}
@media (forced-colors:active) {
  .home-hero::before,.home-route,.home-toolbox,.home-notes,.home-topics,
  .home-showcase .home-feature,.home-showcase .home-feature:hover,.home-motif,
  .home-showcase .home-sequence,.home-tool-icon,.home-entry-feature {
    background:Canvas; color:CanvasText; border-color:CanvasText; box-shadow:none;
  }
  .home-showcase .home-feature .home-feature-link,.home-slide-position { color:LinkText; }
  .home-page .home-topics button,.home-showcase .home-slide-arrows button,.home-entry-showcase .home-slide-arrows button { background:ButtonFace; color:ButtonText; border-color:ButtonText; box-shadow:none; }
  .home-page .home-topics button[aria-selected=true],.home-entry-showcase .home-topics button[aria-selected=true] { background:Highlight; color:HighlightText; border-color:Highlight; }
}
@media print {
  .home-showcase,.home-toolbox,.home-section-heading > a,.home-entry-topics,.home-entry-controls { display:none; }
  .home-entry-feature { padding:0; border:0; background:transparent; box-shadow:none; }
}

