/* ReflectiveHorizon — shared site chrome: global navigation and footer (used by every page) */
:root{
  --gn-h:46px;
  --gn-bg:rgba(22,22,23,.82);
  --gn-solid:#161617;
  --gn-text:rgba(245,245,247,.8);
  --gn-strong:#e8e8ed;
  --gn-muted:#86868b;
  --ft-bg:#f6f4f0;
  --ft-text:#6e6e73;
  --ft-link:#424245;
  --ft-head:#1d1d1f;
  --ft-rule:#d9d6d0;
  --gn-ease:cubic-bezier(.4,0,.25,1);
}

/* ---------- Global nav bar ---------- */
.gn{position:fixed;inset:0 0 auto 0;z-index:50;padding-top:env(safe-area-inset-top,0px)}
/* blur lives on a pseudo-element: backdrop-filter on .gn itself would trap the fixed mobile menu inside the bar */
.gn::before{content:"";position:absolute;inset:0;z-index:0;background:var(--gn-bg);
  -webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);transition:background .3s}
.gn.is-open::before,.gn.is-mobile-open::before{background:var(--gn-solid)}
.gn-bar{height:var(--gn-h);max-width:1024px;margin:0 auto;padding:0 22px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}
.gn-mark{display:flex;align-items:center;height:100%;opacity:.9;transition:opacity .2s}
.gn-mark:hover{opacity:1}
.gn-mark img{height:24px;width:auto;display:block}
.gn-list{display:flex;align-items:center;gap:clamp(22px,4vw,44px);list-style:none;margin:0;padding:0}
.gn-link{font:inherit;font-size:12px;letter-spacing:-.01em;line-height:1;color:var(--gn-text);background:none;border:0;padding:8px 0;cursor:pointer;text-decoration:none;display:block;transition:color .25s}
.gn-link:hover,.gn-link[aria-expanded="true"]{color:#fff}
.gn :focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:4px}

/* ---------- Desktop flyout ---------- */
.gn-flyout{position:absolute;left:0;right:0;top:100%;background:var(--gn-solid);overflow:hidden;height:0;
  transition:height .32s var(--gn-ease)}
.gn-panel{position:absolute;inset:0 0 auto 0;visibility:hidden;opacity:0;transition:opacity .2s,visibility 0s .2s}
.gn-panel.is-active{visibility:visible;opacity:1;transition:opacity .25s .05s}
.gn-panel-inner{max-width:1024px;margin:0 auto;padding:40px 22px 84px 22px;display:flex;gap:clamp(40px,6vw,88px)}
.gn-group{min-width:0}
.gn-label{display:block;font-size:12px;color:var(--gn-muted);margin:0 0 14px}
.gn-group ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.gn-group a{color:var(--gn-strong);text-decoration:none;display:inline-block;
  opacity:0;transform:translateY(-6px);transition:opacity .25s,transform .25s,color .2s}
.gn-panel.is-active .gn-group a{opacity:1;transform:none;transition:opacity .35s calc(var(--i,0) * 22ms + 60ms),transform .45s var(--gn-ease) calc(var(--i,0) * 22ms + 60ms),color .2s}
.gn-group a:hover{color:#fff}
.gn-sub{font-size:12px;color:var(--gn-muted);padding-top:10px;opacity:0;transition:opacity .25s}
.gn-sub:first-child{padding-top:0}
.gn-panel.is-active .gn-sub{opacity:1;transition:opacity .35s calc(var(--i,0) * 22ms + 60ms)}
.gn-m .gn-sub{opacity:1;padding-top:14px}
.gn-m .gn-sub:first-child{padding-top:0}
.gn-size-l a{font-size:24px;font-weight:600;letter-spacing:-.015em;line-height:1.17}
.gn-size-m a{font-size:19px;font-weight:600;letter-spacing:-.012em;line-height:1.2}
.gn-size-s a{font-size:15px;font-weight:600;letter-spacing:-.01em;line-height:1.3;max-width:36ch}
.gn-size-xs a{font-size:12px;font-weight:600;line-height:1.4}

.gn-scrim{position:fixed;inset:0;z-index:45;background:rgba(0,0,0,.28);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
  opacity:0;visibility:hidden;transition:opacity .32s,visibility 0s .32s}
.gn-scrim.on{opacity:1;visibility:visible;transition:opacity .32s}

/* ---------- Mobile menu ---------- */
.gn-burger{display:none;width:44px;height:var(--gn-h);margin-right:-12px;background:none;border:0;cursor:pointer;position:relative;color:var(--gn-strong)}
.gn-burger span{position:absolute;left:14px;width:16px;height:1.2px;background:currentColor;border-radius:1px;transition:transform .3s var(--gn-ease),top .3s var(--gn-ease)}
.gn-burger span:nth-child(1){top:19px}
.gn-burger span:nth-child(2){top:26px}
.gn.is-mobile-open .gn-burger span:nth-child(1){top:22.5px;transform:rotate(45deg)}
.gn.is-mobile-open .gn-burger span:nth-child(2){top:22.5px;transform:rotate(-45deg)}
.gn-m{position:fixed;left:0;right:0;top:calc(var(--gn-h) + env(safe-area-inset-top,0px));bottom:0;background:var(--gn-solid);
  overflow:hidden;visibility:hidden;opacity:0;transition:opacity .3s,visibility 0s .3s;z-index:1}
.gn.is-mobile-open .gn-m{visibility:visible;opacity:1;transition:opacity .3s}
.gn-m-view{position:absolute;inset:0;overflow-y:auto;padding:24px 48px 64px;transition:transform .42s var(--gn-ease),opacity .3s}
.gn-m-view[data-view="root"]{transform:none}
.gn-m.has-sub .gn-m-view[data-view="root"]{transform:translateX(-24%);opacity:0;pointer-events:none}
.gn-m-view.is-sub{transform:translateX(100%);opacity:0;pointer-events:none}
.gn-m-view.is-sub.is-active{transform:none;opacity:1;pointer-events:auto}
.gn-m-root{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.gn-m-root a,.gn-m-root button{font:inherit;font-size:28px;font-weight:600;letter-spacing:-.015em;line-height:1.3;color:var(--gn-strong);
  background:none;border:0;padding:4px 0;cursor:pointer;text-decoration:none;display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left}
.gn-m-root button::after{content:"";width:9px;height:9px;border:solid var(--gn-muted);border-width:1.6px 1.6px 0 0;transform:rotate(45deg);margin-right:6px}
.gn-m-back{font:inherit;font-size:14px;color:var(--gn-muted);background:none;border:0;padding:0 0 20px;cursor:pointer;display:flex;align-items:center;gap:8px}
.gn-m-back::before{content:"";width:8px;height:8px;border:solid currentColor;border-width:0 0 1.6px 1.6px;transform:rotate(45deg)}
.gn-m-group{margin:0 0 28px}
.gn-m-group ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.gn-m-group a{color:var(--gn-strong);text-decoration:none;font-size:22px;font-weight:600;letter-spacing:-.012em;line-height:1.25}
.gn-m-group.gn-size-s a,.gn-m-group.gn-size-xs a{font-size:17px}
.gn-m .gn-stagger{opacity:0;transform:translateY(-8px)}
.gn.is-mobile-open .gn-m-view.is-shown .gn-stagger{opacity:1;transform:none;transition:opacity .35s calc(var(--i,0) * 30ms + 80ms),transform .45s var(--gn-ease) calc(var(--i,0) * 30ms + 80ms)}

@media (max-width:833px){
  .gn-list{display:none}
  .gn-burger{display:block}
  .gn-flyout{display:none}
  .gn-bar{padding:0 16px}
}

/* ---------- Footer ---------- */
.ft{position:relative;z-index:1;background:var(--ft-bg);color:var(--ft-text);font-size:12px;line-height:1.33;letter-spacing:-.01em}
.ft-inner{max-width:980px;margin:0 auto;padding:0 22px 22px}
.ft-rule{border:0;border-top:1px solid var(--ft-rule);margin:0}
.ft-cols{display:grid;grid-template-columns:.95fr 1fr 1fr 1.45fr 1.25fr;gap:24px;padding:20px 0 34px}
.ft-col{min-width:0;display:flex;flex-direction:column;gap:24px}
.ft-group h3{margin:0;font-size:12px;font-weight:600;color:var(--ft-head)}
.ft-head-btn{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:default;text-align:left;display:block;width:100%}
.ft-group ul{list-style:none;margin:9px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.ft-group a{color:var(--ft-link);text-decoration:none}
.ft-group a:hover{text-decoration:underline}
.ft-sub{color:var(--ft-text);font-weight:600;padding-top:6px}
.ft-sub:first-child{padding-top:0}
.ft-plain{color:var(--ft-link);user-select:all;overflow-wrap:anywhere}
.ft-legal{border-top:1px solid var(--ft-rule);padding-top:14px;display:flex;flex-wrap:wrap;gap:8px 28px;justify-content:space-between;align-items:center}
.ft-legal ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap}
.ft-legal li+li::before{content:"";display:inline-block;width:1px;height:10px;background:var(--ft-rule);margin:0 10px;vertical-align:-1px}
.ft-legal a{color:var(--ft-link);text-decoration:none}
.ft-legal a:hover{text-decoration:underline}
.ft-top{padding:17px 0 0}

@media (max-width:833px){
  .ft-inner{padding:0 16px 22px}
  .ft-cols{display:flex;flex-direction:column;gap:0;padding:8px 0 24px}
  .ft-col{display:contents}
  .ft-group{order:var(--o,0)}
  .ft-group{border-bottom:1px solid var(--ft-rule)}
  .ft-head-btn{cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:12px 0;font-size:14px;font-weight:400;color:var(--ft-head)}
  .ft-group h3{font-weight:400}
  .ft-head-btn::after{content:"";width:7px;height:7px;border:solid var(--ft-text);border-width:0 1.4px 1.4px 0;transform:rotate(45deg);margin-right:4px;transition:transform .3s}
  .ft-group.is-open .ft-head-btn::after{transform:rotate(-135deg)}
  .ft-group ul{margin:0;overflow:hidden;max-height:0;transition:max-height .35s var(--gn-ease)}
  .ft-group ul li:last-child{padding-bottom:14px}
  .ft-group a,.ft-plain{font-size:14px;line-height:1.6}
  .ft-legal{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  .gn *, .ft *{transition-duration:.01ms!important;transition-delay:0s!important}
}
