/* One shared grid and a quieter, balanced three-dimensional explorer. */
:root { --page-gutter: 64px; --column-gap: 48px; }
.section-wrap, .header-inner, .hero-v3 .hero-inner {
  max-width: 1360px;
  padding-left: var(--page-gutter);
  padding-right: var(--page-gutter);
}
.hero-v3 .hero-index {
  padding-left: max(var(--page-gutter), calc((100% - 1360px) / 2 + var(--page-gutter)));
  padding-right: max(var(--page-gutter), calc((100% - 1360px) / 2 + var(--page-gutter)));
}
.hero-v3 .hero-index a:last-child { padding-right: 0; }
.intro-top, .profile-composition, .party-grid { gap: var(--column-gap); }
.section-label > span { flex-shrink: 0; font-variant-numeric: tabular-nums; }
.section-label, .eyebrow { text-wrap: balance; }
.history-tabs button { min-height: 52px; }
.vision-path h3 { min-height: 2.3em; }
.event-card { display: flex; flex-direction: column; }
.event-link { margin-top: auto; }
.territory-controls button, .round-link { flex-shrink: 0; }
.text-link { transition: opacity .2s; }
.text-link:hover { opacity: .8; }
.agenda { padding-top: 80px; background: #0b223b; }
.agenda-heading { display: grid; grid-template-columns: 1fr 1fr; gap: var(--column-gap); align-items: end; }
.agenda-heading h2 { font-size: clamp(38px, 3.75vw, 56px); }
.agenda-heading p { max-width: 48ch; }
.agenda-explorer { grid-template-columns: 1fr 1fr; gap: var(--column-gap); margin-top: 44px; align-items: stretch; }
.sphere-panel {
  min-height: 0; height: auto; border-radius: 12px; border: 1px solid #94c6df30;
  background: radial-gradient(ellipse at 50% 43%, #21476280, transparent 70%), linear-gradient(145deg, #102c46, #091e34);
  box-shadow: inset 0 1px 0 #c3e7fa0b, 0 20px 55px #03102014;
  display: grid; grid-template-rows: auto minmax(390px, 1fr) auto auto;
}
.sphere-caption { min-height: 64px; align-items: center; padding: 20px 24px; border-bottom: 1px solid #afd6ec12; font-size: 10px; }
.sphere-caption > span:first-child { color: #c1d7e6; }
.sphere-caption > span:last-child { display: inline-flex; align-items: center; gap: 7px; color: #9fe0e4; }
.sphere-caption > span:last-child:before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.orbit-stage { position: relative; width: 100%; min-height: 390px; touch-action: pan-y; cursor: grab; user-select: none; -webkit-user-select: none; isolation: isolate; }
.orbit-stage.dragging { cursor: grabbing; }
#agenda-canvas { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; pointer-events: none; }
.orbit-nodes { position: absolute; inset: 0; pointer-events: none; }
.orbit-node {
  position: absolute; left: 0; top: 0; width: 44px; height: 44px; padding: 0;
  border-radius: 50%; display: grid; place-items: center; pointer-events: auto; touch-action: pan-y;
  background: radial-gradient(circle at 30% 20%, #537d98, #25485f 60%, #142e45);
  border: 1px solid #aad6e68c; color: #edf8fc; font: 600 13px/1 var(--sans);
  font-variant-numeric: tabular-nums; letter-spacing: .01em; opacity: var(--node-depth, 1);
  box-shadow: inset 0 1px 2px #d8f2ff24, 0 4px 12px #03152175;
  will-change: transform;
}
.orbit-node.active {
  color: #092d3c; opacity: 1; border-color: #d6ffff;
  background: radial-gradient(circle at 30% 20%, #e5fff7, #9be3e2 55%, #5bb8c5);
  box-shadow: inset 0 1px 2px #ffffff8c, 0 0 0 5px #9fe9e614, 0 0 28px #86e6df33, 0 6px 16px #02152866;
}
.orbit-node:hover, .orbit-node:focus-visible { border-color: #efffff; opacity: 1; }
.orbit-node:focus-visible { outline: 2px solid #fff; outline-offset: 6px; }
.orbit-selection { text-align: center; color: #9fc4d8; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; padding: 0 20px 20px; }
.sphere-bottom { margin: 0 24px; padding: 15px 0; border-top: 1px solid #acd6ed1c; display: flex; flex-direction: row; justify-content: space-between; gap: 10px; min-height: 64px; }
.sphere-bottom > span { font-size: 11px; color: #a5bfd1; }
.sphere-bottom > span > span { font-size: 15px; margin-right: 5px; }
.sphere-controls { display: flex; align-items: center; gap: 4px; }
.sphere-controls button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; padding: 8px 10px; color: #d3e5ee; border: 1px solid transparent; border-radius: 6px; font-size: 12px; white-space: nowrap; }
.sphere-controls button:hover { background: #9bdaea0c; border-color: #8bbedb33; }
.sphere-controls button > span { margin: 0; font-size: 14px; }
.sphere-controls #orbit-reset { font-size: 21px; width: 38px; padding: 5px; }
.agenda button:focus-visible, .agenda a:focus-visible { outline-color: #b2f5ef; }
.axis-browser { display: flex; flex-direction: column; min-width: 0; }
.axis-list { grid-template-columns: 1fr 1fr; gap: 10px; }
.axis-button { min-height: 74px; padding: 14px 13px; gap: 10px; align-items: center; border-radius: 6px; position: relative; background: #c7eaff04; }
.axis-button > span:first-child { width: 26px; height: 26px; display: grid; place-items: center; flex-shrink: 0; border: 1px solid #8db6d62e; border-radius: 50%; font-size: 10px; line-height: 1; font-variant-numeric: tabular-nums; }
.axis-button > span:nth-child(2) { font-size: 13px; line-height: 1.35; }
.axis-button > .axis-arrow { font-size: 15px; margin-left: auto; color: #a4ece9; opacity: 0; }
.axis-button:hover .axis-arrow, .axis-button.active .axis-arrow { opacity: 1; }
.axis-button.active { color: #e9ffff; background: #59bfc91a; border-color: #9be0e4a3; box-shadow: inset 3px 0 0 #9fe4e3; }
.axis-button.active > span:first-child { color: #bdf8f1; border-color: #9be0e450; background: #81dbe510; }
.axis-detail { flex: 1; margin-top: 24px; padding: 26px 0 0; min-height: 225px; display: flex; flex-direction: column; }
.axis-detail h3 { font-size: clamp(27px, 2.6vw, 35px); max-width: none; line-height: 1.17; margin: 12px 0 14px; text-wrap: balance; }
.axis-detail > p:not(.eyebrow) { line-height: 1.65; font-size: 16px; }
.axis-detail a { margin-top: auto; padding-top: 22px; padding-bottom: 9px; align-self: flex-start; font-size: 13px; }
.agenda-footnote { margin-top: 32px; }
@media (max-width: 1150px) {
  :root { --page-gutter: 40px; --column-gap: 32px; }
  .sphere-panel { grid-template-rows: auto minmax(360px, 1fr) auto auto; }
  .orbit-stage { min-height: 360px; }
  .axis-button { padding: 13px 11px; gap: 8px; }
  .axis-button > .axis-arrow { display: none; }
  .sphere-bottom { margin: 0 20px; }
}
@media (max-width: 1000px) and (min-width: 761px) {
  .agenda-explorer { grid-template-columns: 1fr; }
  .sphere-panel { width: 100%; grid-template-rows: auto 430px auto auto; }
  .axis-detail { min-height: 230px; }
  .axis-list { grid-template-columns: repeat(4, 1fr); }
  .axis-button { min-height: 92px; flex-direction: column; align-items: flex-start; }
}
@media (max-width: 900px) { :root { --page-gutter: 30px; --column-gap: 30px; } }
@media (max-width: 760px) {
  :root { --page-gutter: 22px; --column-gap: 28px; }
  .vision-path h3 { min-height: 0; }
  .agenda { padding-top: 54px; }
  .agenda-heading { display: grid; grid-template-columns: 1fr; gap: 24px; }
  .agenda-heading h2 { font-size: clamp(34px, 9.3vw, 43px); }
  .agenda-explorer { grid-template-columns: 1fr; margin-top: 32px; gap: 30px; }
  .sphere-panel { grid-template-rows: auto 320px auto auto; border-radius: 10px; }
  .sphere-caption { min-height: 56px; padding: 17px 18px; font-size: 9px; }
  .orbit-stage { min-height: 0; }
  .orbit-selection { font-size: 9px; padding-bottom: 18px; }
  .sphere-bottom { margin: 0 16px; padding: 10px 0; min-height: 60px; gap: 6px; }
  .sphere-bottom > span { font-size: 10px; }
  .sphere-controls { gap: 0; }
  .sphere-controls button { padding: 8px; font-size: 11px; min-height: 40px; }
  .sphere-controls #orbit-reset { width: 32px; }
  .axis-list { gap: 8px; grid-template-columns: 1fr 1fr; }
  .axis-button { min-height: 76px; padding: 12px 10px; gap: 9px; }
  .axis-button > span:nth-child(2) { font-size: 12px; }
  .axis-button > span:first-child { width: 24px; height: 24px; font-size: 10px; }
  .axis-detail { min-height: 260px; margin-top: 22px; padding-top: 24px; }
  .axis-detail h3 { font-size: 30px; }
  .axis-detail a { font-size: 13px; padding-top: 24px; }
  .agenda-footnote { margin-top: 24px; }
}
@media (prefers-reduced-motion: reduce) { .orbit-node { will-change: auto; } }
