/* Public gateway: the chosen connection concept, using shared brand/font tokens. */
.gateway-page { --home-surface:#faf8f5; --home-line:#dfd8e3; --home-muted:#656274; background:var(--home-surface); color:var(--brand-navy); }
.gateway-page #main { width:min(1160px,calc(100% - 64px)); max-width:none; min-height:0; padding:0; margin:0 auto; }
.gateway-page .home-header { width:min(1240px,100%); margin:0 auto; padding:10px 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--home-line); }
.gateway-page .home-brand { flex-shrink:0; display:block; }
.gateway-page .home-brand img { display:block; width:108px; height:auto; mix-blend-mode:multiply; }
.gateway-page .home-nav { display:flex; align-items:center; flex-wrap:wrap; gap:10px 20px; }
.gateway-page .home-nav a,.gateway-page .home-action-link { display:inline-flex; align-items:center; min-height:44px; color:var(--brand-navy); font-size:1rem; text-decoration:none; }
.gateway-page .home-nav a:hover,.gateway-page .home-action-link:hover { text-decoration:underline; }
.gateway-page .home-nav .home-nav-account { border:1px solid #c6b9cf; border-radius:var(--radius); padding:8px 18px; font-weight:500; }
.gateway-page .home-nav .home-nav-join { background:var(--brand-action); border:1px solid var(--brand-action); color:#fff; border-radius:var(--radius); padding:8px 18px; font-weight:600; }
.gateway-page .home-nav form { margin:0; }
.gateway-page .home-exit { background:transparent; color:var(--brand-purple); padding:8px; }
.gateway-page .home-intro { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); align-items:center; gap:28px; padding:20px 16px 20px; }
.gateway-page .home-story { min-width:0; }
.gateway-page .home-kicker { display:flex; align-items:center; gap:10px; color:var(--brand-action); font-size:1rem; font-weight:500; margin:0 0 14px; }
.gateway-page .home-kicker::before { content:''; width:26px; height:2px; background:currentColor; }
.gateway-page .home-intro h1 { font-size:clamp(2.5rem,4.1vw,3.5rem); line-height:1.14; letter-spacing:-.035em; font-weight:600; margin:0; overflow-wrap:normal; }
.gateway-page .home-intro h1 span { color:var(--brand-action); }
.gateway-page .home-description { font-size:1.125rem; line-height:1.65; color:var(--home-muted); max-width:490px; margin:20px 0 0; }
.gateway-page .home-actions { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:20px; }
.gateway-page .home-button { display:inline-flex; align-items:center; justify-content:center; gap:24px; padding:11px 22px; min-height:46px; border:1px solid transparent; border-radius:var(--radius); font-size:1.0625rem; font-weight:600; text-decoration:none; }
.gateway-page .home-button-primary { background:var(--brand-action); color:#fff; }
.gateway-page .home-button-primary:hover,.gateway-page .home-nav .home-nav-join:hover { background:#941a4e; color:#fff; }
.gateway-page .home-action-link { text-decoration:underline; text-underline-offset:5px; }
.gateway-page .home-action-note { font-size:.9375rem; color:var(--home-muted); margin:12px 0 0; }
.gateway-page .home-connection { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:0; }
.gateway-page .home-ribbons { position:relative; width:340px; max-width:100%; height:300px; }
.gateway-page .home-ribbons::before { content:''; position:absolute; width:280px; height:280px; border-radius:50%; background:#f0e5ef; top:8px; left:calc(50% - 140px); }
.gateway-page .home-ribbon { position:absolute; width:180px; height:240px; border:28px solid var(--brand-purple); border-radius:50%; transform:rotate(-32deg); top:12px; left:calc(50% - 160px); }
.gateway-page .home-ribbon-pink { border-color:var(--brand-pink); transform:rotate(32deg); top:58px; left:calc(50% - 20px); }
.gateway-page .home-connection p { margin:12px 0 0; font-size:1rem; color:var(--home-muted); text-align:center; }
.gateway-page .home-way { border-top:1px solid var(--home-line); padding:18px 16px 20px; scroll-margin-top:24px; }
.gateway-page .home-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; list-style:none; padding:0; margin:0; }
.gateway-page .home-steps li { display:flex; align-items:flex-start; gap:14px; }
.gateway-page .home-step-number { font-size:.9375rem; font-weight:500; color:var(--brand-action); padding-top:2px; }
.gateway-page .home-steps h3 { font-size:1.1875rem; line-height:1.4; font-weight:600; margin:0 0 5px; }
.gateway-page .home-steps p { font-size:1rem; line-height:1.55; color:var(--home-muted); margin:0; }
.gateway-page .home-footer { width:min(1240px,100%); margin:0 auto; padding:10px 32px; display:flex; align-items:center; justify-content:space-between; gap:8px 24px; flex-wrap:wrap; text-align:start; background:transparent; border-top:1px solid var(--home-line); color:var(--home-muted); font-size:.9375rem; }
.gateway-page .home-footer a { display:inline-flex; align-items:center; gap:10px; min-height:44px; }
.gateway-page .home-contact-link { color:var(--brand-action); }
.gateway-page .home-top-link { color:var(--home-muted); }
@media (max-width:1000px) and (min-width:801px) {
  .gateway-page .home-header { gap:16px; padding-inline:24px; }
  .gateway-page .home-nav { gap:8px 12px; }
  .gateway-page .home-nav .home-nav-account,.gateway-page .home-nav .home-nav-join { padding-inline:12px; }
  .gateway-page .home-intro { gap:20px; padding-inline:0; }
  .gateway-page .home-ribbons { width:280px; height:275px; }
  .gateway-page .home-ribbon { width:150px; height:210px; border-width:24px; left:calc(50% - 133px); }
  .gateway-page .home-ribbon-pink { left:calc(50% - 16px); }
  .gateway-page .home-ribbons::before { width:240px; height:240px; left:calc(50% - 120px); }
}
@media (max-width:800px) {
  .gateway-page #main { width:calc(100% - 40px); }
  .gateway-page .home-header { padding:12px 20px; gap:12px; flex-wrap:wrap; }
  .gateway-page .home-brand img { width:100px; }
  .gateway-page .home-nav { flex:1 1 500px; gap:8px 14px; }
  .gateway-page .home-nav .home-nav-account,.gateway-page .home-nav .home-nav-join { padding:8px 12px; }
  .gateway-page .home-intro { grid-template-columns:1fr; padding:24px 0 20px; gap:20px; }
  .gateway-page .home-intro h1 { font-size:clamp(2.35rem,7.5vw,3rem); }
  .gateway-page .home-description { font-size:1.0625rem; margin-top:18px; }
  .gateway-page .home-actions { gap:12px 20px; margin-top:18px; }
  .gateway-page .home-button { padding:10px 18px; font-size:1rem; }
  .gateway-page .home-ribbons { width:255px; height:215px; }
  .gateway-page .home-ribbons::before { width:195px; height:195px; top:8px; left:calc(50% - 97.5px); }
  .gateway-page .home-ribbon { width:125px; height:165px; border-width:20px; top:8px; left:calc(50% - 118px); }
  .gateway-page .home-ribbon-pink { top:40px; left:calc(50% - 8px); }
  .gateway-page .home-connection p { margin-top:0; font-size:.9375rem; }
  .gateway-page .home-way { padding:22px 0; }
  .gateway-page .home-steps { grid-template-columns:1fr; gap:20px; }
  .gateway-page .home-steps h3 { font-size:1.125rem; margin-bottom:3px; }
  .gateway-page .home-footer { padding:14px 20px; gap:6px 20px; }
}
@media (max-width:400px) {
  .gateway-page .home-nav { gap:6px 12px; }
  .gateway-page .home-nav .home-nav-account,.gateway-page .home-nav .home-nav-join { padding-inline:10px; }
  .gateway-page .home-intro h1 { font-size:2.35rem; }
}
@media (forced-colors:active) {
  .gateway-page .home-ribbon { border-color:CanvasText; }
  .gateway-page .home-button,.gateway-page .home-nav-join,.gateway-page .home-nav-account { border:1px solid ButtonText; }
}
