/* Page styles from the design handoff (Gather Site.dc.html <helmet>). */
body{margin:0;background:var(--surface-canvas);color:var(--text-primary);font:var(--type-body);-webkit-font-smoothing:antialiased}
a{color:var(--text-link);text-decoration:none}
a:hover{color:var(--text-link-hover)}
@keyframes gbDrift{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,180px,0)}}
@keyframes gbDriftSlow{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-90px,0)}}
@keyframes gbBloomIn{from{opacity:0}to{opacity:0.72}}
@keyframes gbMarkIn{from{opacity:0}to{opacity:1}}
@keyframes gbRise{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:none}}
@keyframes gbDraw{from{stroke-dashoffset:2600}to{stroke-dashoffset:0}}
@keyframes gbOrbA{0%{transform:translate(19.00px,16.00px) rotate(0.0deg) scale(1.750)}12.5%{transform:translate(14.02px,22.36px) rotate(45.0deg) scale(1.997)}25%{transform:translate(2.00px,25.00px) rotate(90.0deg) scale(2.100)}37.5%{transform:translate(-10.02px,22.36px) rotate(135.0deg) scale(1.997)}50%{transform:translate(-15.00px,16.00px) rotate(180.0deg) scale(1.750)}62.5%{transform:translate(-10.02px,9.64px) rotate(225.0deg) scale(1.503)}75%{transform:translate(2.00px,7.00px) rotate(270.0deg) scale(1.400)}87.5%{transform:translate(14.02px,9.64px) rotate(315.0deg) scale(1.503)}100%{transform:translate(19.00px,16.00px) rotate(360.0deg) scale(1.750)}}
@keyframes gbOrbB{0%{transform:translate(65.00px,24.00px) rotate(0.0deg) scale(2.064)}12.5%{transform:translate(61.19px,13.39px) rotate(-45.0deg) scale(1.963)}25%{transform:translate(52.00px,9.00px) rotate(-90.0deg) scale(1.720)}37.5%{transform:translate(42.81px,13.39px) rotate(-135.0deg) scale(1.477)}50%{transform:translate(39.00px,24.00px) rotate(-180.0deg) scale(1.376)}62.5%{transform:translate(42.81px,34.61px) rotate(-225.0deg) scale(1.477)}75%{transform:translate(52.00px,39.00px) rotate(-270.0deg) scale(1.720)}87.5%{transform:translate(61.19px,34.61px) rotate(-315.0deg) scale(1.963)}100%{transform:translate(65.00px,24.00px) rotate(-360.0deg) scale(2.064)}}
@keyframes gbOrbC{0%{transform:translate(45.00px,34.00px) rotate(0.0deg) scale(3.400)}12.5%{transform:translate(39.44px,39.66px) rotate(45.0deg) scale(2.919)}25%{transform:translate(26.00px,42.00px) rotate(90.0deg) scale(2.720)}37.5%{transform:translate(12.56px,39.66px) rotate(135.0deg) scale(2.919)}50%{transform:translate(7.00px,34.00px) rotate(180.0deg) scale(3.400)}62.5%{transform:translate(12.56px,28.34px) rotate(225.0deg) scale(3.881)}75%{transform:translate(26.00px,26.00px) rotate(270.0deg) scale(4.080)}87.5%{transform:translate(39.44px,28.34px) rotate(315.0deg) scale(3.881)}100%{transform:translate(45.00px,34.00px) rotate(360.0deg) scale(3.400)}}
@keyframes gbOrbD{0%{transform:translate(3.00px,20.00px) rotate(0.0deg) scale(2.080)}12.5%{transform:translate(-0.22px,7.98px) rotate(-45.0deg) scale(2.232)}25%{transform:translate(-8.00px,3.00px) rotate(-90.0deg) scale(2.600)}37.5%{transform:translate(-15.78px,7.98px) rotate(-135.0deg) scale(2.968)}50%{transform:translate(-19.00px,20.00px) rotate(-180.0deg) scale(3.120)}62.5%{transform:translate(-15.78px,32.02px) rotate(-225.0deg) scale(2.968)}75%{transform:translate(-8.00px,37.00px) rotate(-270.0deg) scale(2.600)}87.5%{transform:translate(-0.22px,32.02px) rotate(-315.0deg) scale(2.232)}100%{transform:translate(3.00px,20.00px) rotate(-360.0deg) scale(2.080)}}

/* Hover and ::before rules the prototype expressed as style-hover / style-before. */
.gm-hv1:hover{color:var(--text-accent) !important}
.gm-hv2:hover{color:var(--text-accent) !important}
.gm-hv3:hover{color:var(--text-accent) !important}
.gm-hv4:hover{color:var(--text-accent) !important}
.gm-hv5:hover{border-color:var(--border-strong) !important}
.gm-bf1::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:var(--gray-400);mix-blend-mode:multiply}
.gm-bf2::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:var(--gray-400);mix-blend-mode:multiply}
.gm-bf3::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:var(--gray-400);mix-blend-mode:multiply}
.gm-hv6:hover{background:var(--surface-accent-soft) !important}
.gm-hv7:hover{background:var(--surface-accent-soft) !important}
.gm-hv8:hover{background:var(--surface-accent-soft) !important}
.gm-hv9:hover{background:var(--surface-accent-soft) !important}
.gm-hv10:hover{background:var(--surface-accent-soft) !important}
.gm-hv11:hover{background:var(--surface-accent-soft) !important}
.gm-hv12:hover{background:var(--surface-accent-soft) !important}

/* ---- State and responsive hooks (replaces the prototype's React runtime) ---- */

/* Anything the logic class would not render. Inline display values need !important. */
.is-off { display: none !important; }

/* Wide / narrow branch. The root is the full viewport width, so the 900px
   container branch in the design maps onto a 900px viewport query. script.js
   mirrors it as a class on #s-top for the value swaps below. */
@media (max-width: 899px) {
  [data-if="wide"] { display: none !important; }
}
@media (min-width: 900px) {
  [data-if="narrow"], [data-if="menuOpen"] { display: none !important; }
}
#s-top.narrow .gm-togglepad { padding: 11px 16px !important; }
#s-top.narrow .gm-ctaflex { flex: 1 1 100% !important; }
#s-top.narrow .gm-full-narrow { width: 100% !important; }

/* Sampling toggle: the selected segment lifts onto the card surface. */
.gm-seg.is-on { background: var(--surface-card) !important; color: var(--text-primary) !important; }

/* Design-system Button hover + disabled states. */
.gm-btn-primary:hover { background: var(--surface-accent-hover) !important; }
.gm-btn:disabled { opacity: 0.45; cursor: not-allowed; }

/* The header's own <a> styling wins over base.css's underline rule. */
header a, footer a { border-bottom: none; }
