/* Hypergate — generated static stylesheet */
@font-face{font-family:'Clash Display';src:url('fonts/ClashDisplay-Semibold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Clash Display';src:url('fonts/ClashDisplay-Medium.otf') format('opentype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'General Sans';src:url('fonts/GeneralSans-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'General Sans';src:url('fonts/GeneralSans-Semibold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@keyframes hgPulse{0%,100%{box-shadow:inset 0 0 0 2px rgba(226,163,93,.95)}50%{box-shadow:inset 0 0 0 2px rgba(226,163,93,.35)}}
@keyframes hgBuild{0%{background-position:0 0}100%{background-position:23px 0}}
@keyframes hgGlow{0%,100%{box-shadow:0 0 0 1.5px rgba(226,163,93,.95),0 0 34px rgba(226,163,93,.6),0 0 72px rgba(226,163,93,.25)}50%{box-shadow:0 0 0 1.5px rgba(226,163,93,.7),0 0 18px rgba(226,163,93,.32),0 0 40px rgba(226,163,93,.1)}}
@keyframes hgRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes hgStep{0%,100%{opacity:1}50%{opacity:.4}}
[hidden]{display:none !important}
@media (prefers-reduced-motion:reduce){[data-phasing],[data-phasing] *{animation:none !important}}
/* ---- index.html ---- */
html.p-home,html.p-home *,html.p-home *::before,html.p-home *::after{box-sizing:border-box}
html.p-home{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.p-home body{margin:0;background:#090B0D;font-family:'General Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html.p-home ::selection{background:#E2A35D;color:#090B0D}
html.p-home a{color:inherit;text-decoration:none}
html.p-home a:hover{color:inherit}
html.p-home [data-mnav]{display:none}
@media (max-width:1079px){
html.p-home [data-nav-links]{display:none !important}
html.p-home [data-mnav]{display:block}
}
@media (prefers-reduced-motion:reduce){
html.p-home{scroll-behavior:auto}
}
@media (max-width:700px){
html.p-home h1,html.p-home h2,html.p-home h3{text-align:center !important}
html.p-home p:has(+ h1),html.p-home p:has(+ h2),html.p-home p:has(+ h3){text-align:center !important}
html.p-home h1+p,html.p-home h2+p,html.p-home h3+p,html.p-home h1+div+p,html.p-home h2+div+p,html.p-home h3+div+p{text-align:center !important;margin-left:auto !important;margin-right:auto !important}
html.p-home h1+div,html.p-home h2+div,html.p-home h3+div{margin-left:auto !important;margin-right:auto !important}
}
@media (max-width:700px){
html.p-home [data-lane-wide]{display:none !important}
html.p-home [data-lane-vert]{display:flex !important}
html.p-home [data-lane-hovpanel]{display:none !important}
html.p-home [data-hovhint]{display:none}
html.p-home [data-taphint]{display:inline !important}
}
@media (max-width:700px){
html.p-home [data-mrow]{grid-template-columns:1fr !important;gap:3px !important;text-align:center}
html.p-home figcaption{text-align:center !important;justify-content:center !important}
html.p-home [data-mnote]{text-align:center}
html.p-home [data-mcen]{text-align:center !important}
html.p-home [data-scale-strip] > div{text-align:center}
html.p-home [data-bands-wrap]{overflow-x:visible !important;padding-bottom:0 !important}
html.p-home [data-band-strip]{flex-direction:column !important;min-width:0 !important}
html.p-home [data-band-strip] button{border-top:1px solid rgba(247,251,255,.14);text-align:center !important}
html.p-home [data-band-strip] button:first-child{border-top:0}
html.p-home [data-band-arrow]{transform:rotate(90deg)}
html.p-home footer > div{justify-content:center !important;text-align:center !important}
html.p-home footer nav{justify-content:center !important}
html.p-home [data-mtable-wrap]{overflow-x:visible !important}
html.p-home [data-mtable]{min-width:0 !important}
html.p-home [data-mtable] thead{display:none}
html.p-home [data-mtable] tbody tr{display:block;padding:13px 0}
html.p-home [data-mtable] tbody tr + tr{border-top:1px solid rgba(20,24,29,.18)}
html.p-home [data-mtable] td{display:block;border-bottom:0 !important;padding:2px 0 !important;text-align:center;white-space:normal !important}
html.p-home [data-mtable] td > span > span[aria-hidden]{margin-left:-16px}
html.p-home [data-mdoc]{grid-template-columns:1fr auto !important;gap:6px 14px !important}
html.p-home [data-mdoc] > :nth-child(2){grid-column:1 / -1;grid-row:2}
html.p-home [data-mteam] li{text-align:center;justify-content:center}
html.p-home [data-mcta]{display:flex !important;width:fit-content;margin-left:auto !important;margin-right:auto !important}
}
/* ---- lane.html ---- */
html.p-lane,html.p-lane *,html.p-lane *::before,html.p-lane *::after{box-sizing:border-box}
html.p-lane{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.p-lane body{margin:0;background:#F5F1EB;font-family:'General Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
html.p-lane ::selection{background:#E2A35D;color:#090B0D}
html.p-lane a{color:#A9722F;text-decoration:none}
html.p-lane a:hover{color:#14181D}
html.p-lane [data-fin="1"]{opacity:1 !important;transform:none !important}
html.p-lane [data-mnav]{display:none}
@media (max-width:1079px){
html.p-lane [data-nav-links]{display:none !important}
html.p-lane [data-mnav]{display:block}
}
@media (prefers-reduced-motion:reduce){
html.p-lane{scroll-behavior:auto}
html.p-lane [data-hero]{animation:none !important;opacity:1 !important;transform:none !important}
}
@media (max-width:700px){
html.p-lane h1,html.p-lane h2,html.p-lane h3{text-align:center !important}
html.p-lane p:has(+ h1),html.p-lane p:has(+ h2),html.p-lane p:has(+ h3){text-align:center !important}
html.p-lane h1+p,html.p-lane h2+p,html.p-lane h3+p,html.p-lane h1+div+p,html.p-lane h2+div+p,html.p-lane h3+div+p{text-align:center !important;margin-left:auto !important;margin-right:auto !important}
html.p-lane h1+div,html.p-lane h2+div,html.p-lane h3+div{margin-left:auto !important;margin-right:auto !important}
}
@media (max-width:700px){
html.p-lane [data-mrow]{grid-template-columns:1fr !important;gap:3px !important;text-align:center}
html.p-lane figcaption{text-align:center !important;justify-content:center !important}
html.p-lane [data-mnote]{text-align:center}
html.p-lane [data-mcen]{text-align:center !important}
html.p-lane [data-scale-strip] > div{text-align:center}
html.p-lane [data-bands-wrap]{overflow-x:visible !important;padding-bottom:0 !important}
html.p-lane [data-band-strip]{flex-direction:column !important;min-width:0 !important}
html.p-lane [data-band-strip] button{border-top:1px solid rgba(247,251,255,.14);text-align:center !important}
html.p-lane [data-band-strip] button:first-child{border-top:0}
html.p-lane [data-band-arrow]{transform:rotate(90deg)}
html.p-lane [data-lane-hovpanel]{display:none !important}
html.p-lane [data-hovhint]{display:none}
html.p-lane [data-taphint]{display:inline !important}
html.p-lane [data-grid2]{grid-template-columns:1fr !important}
html.p-lane footer > div{justify-content:center !important;text-align:center !important}
html.p-lane footer nav{justify-content:center !important}
html.p-lane [data-mtable-wrap]{overflow-x:visible !important}
html.p-lane [data-mtable]{min-width:0 !important}
html.p-lane [data-mtable] thead{display:none}
html.p-lane [data-mtable] tbody tr{display:block;padding:13px 0}
html.p-lane [data-mtable] tbody tr + tr{border-top:1px solid rgba(20,24,29,.18)}
html.p-lane [data-mtable] td{display:block;border-bottom:0 !important;padding:2px 0 !important;text-align:center;white-space:normal !important}
html.p-lane [data-mtable] td > span > span[aria-hidden]{margin-left:-16px}
html.p-lane [data-mdoc]{grid-template-columns:1fr auto !important;gap:6px 14px !important}
html.p-lane [data-mdoc] > :nth-child(2){grid-column:1 / -1;grid-row:2}
html.p-lane [data-mteam] li{text-align:center;justify-content:center}
html.p-lane [data-mcta]{display:flex !important;width:fit-content;margin-left:auto !important;margin-right:auto !important}
html.p-lane [data-mctarow]{justify-content:center !important}
}
/* ---- how-we-build.html ---- */
html.p-how-we-build,html.p-how-we-build *,html.p-how-we-build *::before,html.p-how-we-build *::after{box-sizing:border-box}
html.p-how-we-build{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.p-how-we-build body{margin:0;background:#F5F1EB;font-family:'General Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
html.p-how-we-build ::selection{background:#E2A35D;color:#090B0D}
html.p-how-we-build a{color:#A9722F;text-decoration:none}
html.p-how-we-build a:hover{color:#14181D}
@media (prefers-reduced-motion:reduce){
html.p-how-we-build{scroll-behavior:auto}
}
html.p-how-we-build [data-fin="1"]{opacity:1 !important;transform:none !important}
html.p-how-we-build [data-mnav]{display:none}
@media (max-width:1079px){
html.p-how-we-build [data-nav-links]{display:none !important}
html.p-how-we-build [data-mnav]{display:block}
}
@media (prefers-reduced-motion:reduce){
html.p-how-we-build [data-hero]{animation:none !important;opacity:1 !important;transform:none !important}
}
@media (max-width:700px){
html.p-how-we-build h1,html.p-how-we-build h2,html.p-how-we-build h3{text-align:center !important}
html.p-how-we-build p:has(+ h1),html.p-how-we-build p:has(+ h2),html.p-how-we-build p:has(+ h3){text-align:center !important}
html.p-how-we-build h1+p,html.p-how-we-build h2+p,html.p-how-we-build h3+p,html.p-how-we-build h1+div+p,html.p-how-we-build h2+div+p,html.p-how-we-build h3+div+p{text-align:center !important;margin-left:auto !important;margin-right:auto !important}
html.p-how-we-build h1+div,html.p-how-we-build h2+div,html.p-how-we-build h3+div{margin-left:auto !important;margin-right:auto !important}
}
@media (max-width:700px){
html.p-how-we-build [data-mrow]{grid-template-columns:1fr !important;gap:3px !important;text-align:center}
html.p-how-we-build figcaption{text-align:center !important;justify-content:center !important}
html.p-how-we-build [data-mnote]{text-align:center}
html.p-how-we-build [data-mcen]{text-align:center !important}
html.p-how-we-build [data-scale-strip] > div{text-align:center}
html.p-how-we-build [data-bands-wrap]{overflow-x:visible !important;padding-bottom:0 !important}
html.p-how-we-build [data-band-strip]{flex-direction:column !important;min-width:0 !important}
html.p-how-we-build [data-band-strip] button{border-top:1px solid rgba(247,251,255,.14);text-align:center !important}
html.p-how-we-build [data-band-strip] button:first-child{border-top:0}
html.p-how-we-build [data-band-arrow]{transform:rotate(90deg)}
html.p-how-we-build footer > div{justify-content:center !important;text-align:center !important}
html.p-how-we-build footer nav{justify-content:center !important}
html.p-how-we-build [data-mtable-wrap]{overflow-x:visible !important}
html.p-how-we-build [data-mtable]{min-width:0 !important}
html.p-how-we-build [data-mtable] thead{display:none}
html.p-how-we-build [data-mtable] tbody tr{display:block;padding:13px 0}
html.p-how-we-build [data-mtable] tbody tr + tr{border-top:1px solid rgba(20,24,29,.18)}
html.p-how-we-build [data-mtable] td{display:block;border-bottom:0 !important;padding:2px 0 !important;text-align:center;white-space:normal !important}
html.p-how-we-build [data-mtable] td > span > span[aria-hidden]{margin-left:-16px}
html.p-how-we-build [data-mdoc]{grid-template-columns:1fr auto !important;gap:6px 14px !important}
html.p-how-we-build [data-mdoc] > :nth-child(2){grid-column:1 / -1;grid-row:2}
html.p-how-we-build [data-mteam] li{text-align:center;justify-content:center}
html.p-how-we-build [data-mcta]{display:flex !important;width:fit-content;margin-left:auto !important;margin-right:auto !important}
html.p-how-we-build [data-mctarow]{justify-content:center !important}
}
/* ---- delivered.html ---- */
html.p-delivered,html.p-delivered *,html.p-delivered *::before,html.p-delivered *::after{box-sizing:border-box}
html.p-delivered{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.p-delivered body{margin:0;background:#F5F1EB;font-family:'General Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
html.p-delivered ::selection{background:#E2A35D;color:#090B0D}
html.p-delivered a{color:#A9722F;text-decoration:none}
html.p-delivered a:hover{color:#14181D}
html.p-delivered [data-fin="1"]{opacity:1 !important;transform:none !important}
html.p-delivered [data-mnav]{display:none}
@media (max-width:1079px){
html.p-delivered [data-nav-links]{display:none !important}
html.p-delivered [data-mnav]{display:block}
}
@media (prefers-reduced-motion:reduce){
html.p-delivered{scroll-behavior:auto}
html.p-delivered [data-hero]{animation:none !important;opacity:1 !important;transform:none !important}
}
@media (max-width:700px){
html.p-delivered h1,html.p-delivered h2,html.p-delivered h3{text-align:center !important}
html.p-delivered p:has(+ h1),html.p-delivered p:has(+ h2),html.p-delivered p:has(+ h3){text-align:center !important}
html.p-delivered h1+p,html.p-delivered h2+p,html.p-delivered h3+p,html.p-delivered h1+div+p,html.p-delivered h2+div+p,html.p-delivered h3+div+p{text-align:center !important;margin-left:auto !important;margin-right:auto !important}
html.p-delivered h1+div,html.p-delivered h2+div,html.p-delivered h3+div{margin-left:auto !important;margin-right:auto !important}
}
@media (max-width:700px){
html.p-delivered [data-mrow]{grid-template-columns:1fr !important;gap:3px !important;text-align:center}
html.p-delivered figcaption{text-align:center !important;justify-content:center !important}
html.p-delivered [data-mnote]{text-align:center}
html.p-delivered [data-mcen]{text-align:center !important}
html.p-delivered [data-scale-strip] > div{text-align:center}
html.p-delivered [data-bands-wrap]{overflow-x:visible !important;padding-bottom:0 !important}
html.p-delivered [data-band-strip]{flex-direction:column !important;min-width:0 !important}
html.p-delivered [data-band-strip] button{border-top:1px solid rgba(247,251,255,.14);text-align:center !important}
html.p-delivered [data-band-strip] button:first-child{border-top:0}
html.p-delivered [data-band-arrow]{transform:rotate(90deg)}
html.p-delivered footer > div{justify-content:center !important;text-align:center !important}
html.p-delivered footer nav{justify-content:center !important}
html.p-delivered [data-mtable-wrap]{overflow-x:visible !important}
html.p-delivered [data-mtable]{min-width:0 !important}
html.p-delivered [data-mtable] thead{display:none}
html.p-delivered [data-mtable] tbody tr{display:block;padding:13px 0}
html.p-delivered [data-mtable] tbody tr + tr{border-top:1px solid rgba(20,24,29,.18)}
html.p-delivered [data-mtable] td{display:block;border-bottom:0 !important;padding:2px 0 !important;text-align:center;white-space:normal !important}
html.p-delivered [data-mtable] td > span > span[aria-hidden]{margin-left:-16px}
html.p-delivered [data-mdoc]{grid-template-columns:1fr auto !important;gap:6px 14px !important}
html.p-delivered [data-mdoc] > :nth-child(2){grid-column:1 / -1;grid-row:2}
html.p-delivered [data-mteam] li{text-align:center;justify-content:center}
html.p-delivered [data-mcta]{display:flex !important;width:fit-content;margin-left:auto !important;margin-right:auto !important}
html.p-delivered [data-mctarow]{justify-content:center !important}
}
/* ---- team.html ---- */
html.p-team,html.p-team *,html.p-team *::before,html.p-team *::after{box-sizing:border-box}
html.p-team{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.p-team body{margin:0;background:#F5F1EB;font-family:'General Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
html.p-team ::selection{background:#E2A35D;color:#090B0D}
html.p-team a{color:#A9722F;text-decoration:none}
html.p-team a:hover{color:#14181D}
html.p-team [data-fin="1"]{opacity:1 !important;transform:none !important}
html.p-team [data-mnav]{display:none}
@media (max-width:1079px){
html.p-team [data-nav-links]{display:none !important}
html.p-team [data-mnav]{display:block}
}
@media (prefers-reduced-motion:reduce){
html.p-team{scroll-behavior:auto}
html.p-team [data-hero]{animation:none !important;opacity:1 !important;transform:none !important}
}
@media (max-width:700px){
html.p-team h1,html.p-team h2,html.p-team h3{text-align:center !important}
html.p-team p:has(+ h1),html.p-team p:has(+ h2),html.p-team p:has(+ h3){text-align:center !important}
html.p-team h1+p,html.p-team h2+p,html.p-team h3+p,html.p-team h1+div+p,html.p-team h2+div+p,html.p-team h3+div+p{text-align:center !important;margin-left:auto !important;margin-right:auto !important}
html.p-team h1+div,html.p-team h2+div,html.p-team h3+div{margin-left:auto !important;margin-right:auto !important}
}
@media (max-width:700px){
html.p-team [data-mrow]{grid-template-columns:1fr !important;gap:3px !important;text-align:center}
html.p-team figcaption{text-align:center !important;justify-content:center !important}
html.p-team [data-mnote]{text-align:center}
html.p-team [data-mcen]{text-align:center !important}
html.p-team [data-scale-strip] > div{text-align:center}
html.p-team [data-bands-wrap]{overflow-x:visible !important;padding-bottom:0 !important}
html.p-team [data-band-strip]{flex-direction:column !important;min-width:0 !important}
html.p-team [data-band-strip] button{border-top:1px solid rgba(247,251,255,.14);text-align:center !important}
html.p-team [data-band-strip] button:first-child{border-top:0}
html.p-team [data-band-arrow]{transform:rotate(90deg)}
html.p-team footer > div{justify-content:center !important;text-align:center !important}
html.p-team footer nav{justify-content:center !important}
html.p-team [data-mtable-wrap]{overflow-x:visible !important}
html.p-team [data-mtable]{min-width:0 !important}
html.p-team [data-mtable] thead{display:none}
html.p-team [data-mtable] tbody tr{display:block;padding:13px 0}
html.p-team [data-mtable] tbody tr + tr{border-top:1px solid rgba(20,24,29,.18)}
html.p-team [data-mtable] td{display:block;border-bottom:0 !important;padding:2px 0 !important;text-align:center;white-space:normal !important}
html.p-team [data-mtable] td > span > span[aria-hidden]{margin-left:-16px}
html.p-team [data-mdoc]{grid-template-columns:1fr auto !important;gap:6px 14px !important}
html.p-team [data-mdoc] > :nth-child(2){grid-column:1 / -1;grid-row:2}
html.p-team [data-mteam] li{text-align:center;justify-content:center}
html.p-team [data-mcta]{display:flex !important;width:fit-content;margin-left:auto !important;margin-right:auto !important}
html.p-team [data-mctarow]{justify-content:center !important}
}
/* ---- contact.html ---- */
html.p-contact,html.p-contact *,html.p-contact *::before,html.p-contact *::after{box-sizing:border-box}
html.p-contact{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.p-contact body{margin:0;background:#F5F1EB;font-family:'General Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
html.p-contact ::selection{background:#E2A35D;color:#090B0D}
html.p-contact a{color:#A9722F;text-decoration:none}
html.p-contact a:hover{color:#14181D}
html.p-contact [data-mnav]{display:none}
@media (max-width:1079px){
html.p-contact [data-nav-links]{display:none !important}
html.p-contact [data-mnav]{display:block}
}
@media (prefers-reduced-motion:reduce){
html.p-contact{scroll-behavior:auto}
html.p-contact [data-hero]{animation:none !important;opacity:1 !important;transform:none !important}
}
@media (max-width:700px){
html.p-contact h1,html.p-contact h2,html.p-contact h3{text-align:center !important}
html.p-contact p:has(+ h1),html.p-contact p:has(+ h2),html.p-contact p:has(+ h3){text-align:center !important}
html.p-contact h1+p,html.p-contact h2+p,html.p-contact h3+p,html.p-contact h1+div+p,html.p-contact h2+div+p,html.p-contact h3+div+p{text-align:center !important;margin-left:auto !important;margin-right:auto !important}
html.p-contact h1+div,html.p-contact h2+div,html.p-contact h3+div{margin-left:auto !important;margin-right:auto !important}
}
@media (max-width:700px){
html.p-contact [data-mrow]{grid-template-columns:1fr !important;gap:3px !important;text-align:center}
html.p-contact figcaption{text-align:center !important;justify-content:center !important}
html.p-contact [data-mnote]{text-align:center}
html.p-contact [data-mcen]{text-align:center !important}
html.p-contact [data-scale-strip] > div{text-align:center}
html.p-contact [data-bands-wrap]{overflow-x:visible !important;padding-bottom:0 !important}
html.p-contact [data-band-strip]{flex-direction:column !important;min-width:0 !important}
html.p-contact [data-band-strip] button{border-top:1px solid rgba(247,251,255,.14);text-align:center !important}
html.p-contact [data-band-strip] button:first-child{border-top:0}
html.p-contact [data-band-arrow]{transform:rotate(90deg)}
html.p-contact footer > div{justify-content:center !important;text-align:center !important}
html.p-contact footer nav{justify-content:center !important}
html.p-contact [data-mtable-wrap]{overflow-x:visible !important}
html.p-contact [data-mtable]{min-width:0 !important}
html.p-contact [data-mtable] thead{display:none}
html.p-contact [data-mtable] tbody tr{display:block;padding:13px 0}
html.p-contact [data-mtable] tbody tr + tr{border-top:1px solid rgba(20,24,29,.18)}
html.p-contact [data-mtable] td{display:block;border-bottom:0 !important;padding:2px 0 !important;text-align:center;white-space:normal !important}
html.p-contact [data-mtable] td > span > span[aria-hidden]{margin-left:-16px}
html.p-contact [data-mdoc]{grid-template-columns:1fr auto !important;gap:6px 14px !important}
html.p-contact [data-mdoc] > :nth-child(2){grid-column:1 / -1;grid-row:2}
html.p-contact [data-mteam] li{text-align:center;justify-content:center}
html.p-contact [data-mcta]{display:flex !important;width:fit-content;margin-left:auto !important;margin-right:auto !important}
html.p-contact [data-mctarow]{justify-content:center !important}
}
/* ---- 404.html ---- */
html.p-notfound,html.p-notfound *,html.p-notfound *::before,html.p-notfound *::after{box-sizing:border-box}
html.p-notfound{-webkit-text-size-adjust:100%}
html.p-notfound body{margin:0;background:#F5F1EB;font-family:'General Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
html.p-notfound ::selection{background:#E2A35D;color:#090B0D}
html.p-notfound a{color:#A9722F;text-decoration:none}
html.p-notfound a:hover{color:#14181D}
html.p-notfound [data-mnav]{display:none}
@media (max-width:1079px){
html.p-notfound [data-nav-links]{display:none !important}
html.p-notfound [data-mnav]{display:block}
}
@media (prefers-reduced-motion:reduce){
html.p-notfound [data-hero]{animation:none !important;opacity:1 !important;transform:none !important}
}
@media (max-width:700px){
html.p-notfound h1,html.p-notfound h2,html.p-notfound h3{text-align:center !important}
html.p-notfound p:has(+ h1),html.p-notfound p:has(+ h2),html.p-notfound p:has(+ h3){text-align:center !important}
html.p-notfound h1+p,html.p-notfound h2+p,html.p-notfound h3+p,html.p-notfound h1+div+p,html.p-notfound h2+div+p,html.p-notfound h3+div+p{text-align:center !important;margin-left:auto !important;margin-right:auto !important}
html.p-notfound h1+div,html.p-notfound h2+div,html.p-notfound h3+div{margin-left:auto !important;margin-right:auto !important}
}
@media (max-width:700px){
html.p-notfound [data-mrow]{grid-template-columns:1fr !important;gap:3px !important;text-align:center}
html.p-notfound figcaption{text-align:center !important;justify-content:center !important}
html.p-notfound [data-mnote]{text-align:center}
html.p-notfound [data-mcen]{text-align:center !important}
html.p-notfound [data-scale-strip] > div{text-align:center}
html.p-notfound [data-bands-wrap]{overflow-x:visible !important;padding-bottom:0 !important}
html.p-notfound [data-band-strip]{flex-direction:column !important;min-width:0 !important}
html.p-notfound [data-band-strip] button{border-top:1px solid rgba(247,251,255,.14);text-align:center !important}
html.p-notfound [data-band-strip] button:first-child{border-top:0}
html.p-notfound [data-band-arrow]{transform:rotate(90deg)}
html.p-notfound footer > div{justify-content:center !important;text-align:center !important}
html.p-notfound footer nav{justify-content:center !important}
html.p-notfound [data-mtable-wrap]{overflow-x:visible !important}
html.p-notfound [data-mtable]{min-width:0 !important}
html.p-notfound [data-mtable] thead{display:none}
html.p-notfound [data-mtable] tbody tr{display:block;padding:13px 0}
html.p-notfound [data-mtable] tbody tr + tr{border-top:1px solid rgba(20,24,29,.18)}
html.p-notfound [data-mtable] td{display:block;border-bottom:0 !important;padding:2px 0 !important;text-align:center;white-space:normal !important}
html.p-notfound [data-mtable] td > span > span[aria-hidden]{margin-left:-16px}
html.p-notfound [data-mdoc]{grid-template-columns:1fr auto !important;gap:6px 14px !important}
html.p-notfound [data-mdoc] > :nth-child(2){grid-column:1 / -1;grid-row:2}
html.p-notfound [data-mteam] li{text-align:center;justify-content:center}
html.p-notfound [data-mcta]{display:flex !important;width:fit-content;margin-left:auto !important;margin-right:auto !important}
html.p-notfound [data-mctarow]{justify-content:center !important}
}
/* ---- lane block pages (lane-generator … lane-chiller-plant) ---- */
html.p-block,html.p-block *,html.p-block *::before,html.p-block *::after{box-sizing:border-box}
html.p-block{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.p-block body{margin:0;background:#090B0D;font-family:'General Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
html.p-block ::selection{background:#E2A35D;color:#090B0D}
html.p-block a{color:inherit;text-decoration:none}
html.p-block a:hover{color:inherit}
html.p-block [data-fin="1"]{opacity:1 !important;transform:none !important}
html.p-block [data-mnav]{display:none}
@media (max-width:1079px){
html.p-block [data-nav-links]{display:none !important}
html.p-block [data-mnav]{display:block}
}
@media (prefers-reduced-motion:reduce){
html.p-block{scroll-behavior:auto}
html.p-block [data-hero]{animation:none !important;opacity:1 !important;transform:none !important}
}
@media (max-width:700px){
html.p-block h1,html.p-block h2,html.p-block h3{text-align:center !important}
html.p-block p:has(+ h1),html.p-block p:has(+ h2),html.p-block p:has(+ h3){text-align:center !important}
html.p-block h1+p,html.p-block h2+p,html.p-block h3+p,html.p-block h1+div+p,html.p-block h2+div+p,html.p-block h3+div+p{text-align:center !important;margin-left:auto !important;margin-right:auto !important}
html.p-block h1+div,html.p-block h2+div,html.p-block h3+div{margin-left:auto !important;margin-right:auto !important}
}
@media (max-width:700px){
html.p-block [data-mrow]{grid-template-columns:1fr !important;gap:3px !important;text-align:center}
html.p-block figcaption{text-align:center !important;justify-content:center !important}
/* the plan strip is ~66px tall at 375px: the sibling hotspots drop under any usable
   tap size there, so they come off and prev/next carries block-to-block travel.
   !important because the shared tap-target block forces display on .hg10. */
html.p-block [data-maplink]{display:none !important}
html.p-block footer > div{justify-content:center !important;text-align:center !important}
html.p-block footer nav{justify-content:center !important}
html.p-block [data-mcta]{display:flex !important;width:fit-content;margin-left:auto !important;margin-right:auto !important}
html.p-block [data-mctarow]{justify-content:center !important}
}
/* interaction states */
.hg0:focus-visible{outline:2px solid #E2A35D !important;outline-offset:3px !important}
.hg1:hover{background:rgba(226,163,93,.16) !important;color:#F7FBFF !important}
.hg2:focus-visible{outline:2px solid #E2A35D !important;outline-offset:-2px !important}
.hg3:hover{color:#F7FBFF !important;border-bottom-color:#E2A35D !important}
.hg4:hover{background:rgba(226,163,93,.14) !important;color:#F7FBFF !important}
.hg5:hover{background:#C8884A !important;border-color:#C8884A !important;color:#090B0D !important}
.hg6:hover{background:#C8884A !important;border-color:#C8884A !important}
.hg7:focus-visible{outline:2px solid #F7FBFF !important;outline-offset:3px !important}
.hg8:hover{border-color:#F7FBFF !important}
.hg9:hover{transform:translateY(-6px) !important;border-color:rgba(226,163,93,.85) !important;box-shadow:0 18px 44px rgba(0,0,0,.45),0 0 24px rgba(226,163,93,.25) !important}
.hg10:focus-visible{outline:2px solid #E2A35D !important;outline-offset:2px !important}
.hg11:hover{color:#E2A35D !important}
.hg12:active{outline:2px solid #E2A35D !important;outline-offset:-2px !important}
.hg13:hover{background:#E2A35D !important;border-color:#E2A35D !important;color:#090B0D !important}
.hg14:hover{background:#14181D !important;color:#F5F1EB !important}
.hg15:focus-visible{outline:2px solid #A9722F !important;outline-offset:3px !important}
.hg16:hover{background:#14181D !important;border-color:#14181D !important;color:#F5F1EB !important}
.hg17:hover{color:#F7FBFF !important}
.hg18:hover{color:#14181D !important;border-color:#14181D !important}
.hg19:focus-visible{outline:2px solid #14181D !important;outline-offset:3px !important}
.hg20:hover{border-color:#E2A35D !important;color:#F7FBFF !important}
.hg21:hover{background:rgba(226,163,93,.16) !important;color:#14181D !important}
.hg22:focus-visible{outline:2px solid #A9722F !important;outline-offset:-2px !important}
.hg23:hover{color:#14181D !important;border-bottom-color:#E2A35D !important}
.hg24:hover{transform:translateY(-4px) !important;border-color:rgba(226,163,93,.85) !important;box-shadow:0 12px 30px rgba(0,0,0,.5),0 0 20px rgba(226,163,93,.28) !important}
.hg25:hover{background:#F7FBFF !important;color:#11151A !important}
.hg26:hover{color:#14181D !important}
.hg27:hover{opacity:.88 !important}
.hg28:hover{background:#14181D !important}

/* Mobile nav links measured 216x43. 48px is the thumb floor; this changes
   nothing visible but the hit area. */
@media (max-width: 899px){
  /* 48px is the thumb floor. Targeted structurally, not by the export's generated
     class names — those renumber on every re-export (index used .hg1/.hg2, the other
     six pages .hg21/.hg22), so a class-based rule silently stops applying.

     Menu links are display:FLEX, not inline-flex: they are block-level rows that must
     fill the dropdown's width. inline-flex shrank them to their text and is what made
     the mobile menu look wrong.

     And this deliberately does NOT include `main a, footer a`. That was too broad —
     it turned every inline link inside a sentence into a flex box and broke text flow.
     The geometry gate did not catch it because that gate compares images, not text. */
  details a,
  nav[data-nav-links] a,
  nav[aria-label="Main"] a,
  nav[aria-label="Footer"] a{
    min-height:48px !important;
    display:flex !important;
    align-items:center !important;
  }
  /* Standalone action links, which are inline-block by nature and safe to grow. */
  a[download]{
    min-height:48px !important;
    display:inline-flex !important;
    align-items:center !important;
  }
}

@media (max-width: 899px){
  /* Lane diagram hotspots: no label, 30-48px wide, and the main thing to tap
     on that page. Width matters here, not just height. */
  a[data-block], a[href^="#block"]{min-width:48px !important}
}

@media (max-width: 899px){
  /* Remaining short/narrow targets. These ARE keyed to export-generated class names
     because the elements sit outside <nav>, <main> and <footer>, so nothing structural
     reaches them. Class names renumber on re-export — re-run webaudit and update this
     block each time (RUNBOOK §4 step 14). Download buttons and the inline contact link
     measured 44px tall; footer 'Team' and the lane hotspots measured 30-45px wide. */
  .hg6, .hg17, .hg18, .hg26{min-height:48px !important; display:inline-flex !important;
    align-items:center !important}
  .hg17, .hg26{min-width:48px !important; justify-content:center !important}
  /* Height only. Forcing 48px WIDTH on these pushed the lane diagram past the
     viewport and traded a tap-target warning for horizontal scroll, which is worse. */
  .hg10{min-height:48px !important; display:inline-flex !important; align-items:center}
}


/* Sticky masthead on mobile: the menu has to stay reachable on a page that
   runs fourteen screens. Transparent at rest so the hero is unchanged; the
   backdrop is applied by site.js from the page's own background, since the
   pages are not all the same colour. */
/* 1079px, and it has to keep matching the nav swap below. 919 was the export's own
   figure and it was already 40px short: at 920-959 the five-item bar wrapped to two
   lines and the header grew from 74px to 97px. Careers made it a six-item bar on
   2026-08-25 and the wrapping band widened to 920-1079, so both moved together.
   Scoping the sticky header to a different number leaves a band where the mobile menu
   shows but will not stay on screen, which is the bug the old comment was about. */
@media (max-width: 1079px){
  header{position:sticky;top:0;z-index:60;
    transition:background-color .18s ease, backdrop-filter .18s ease}
}


/* Campus-scale strip: stop 50 MW / 10 lanes orphaning on a phone.
   The strip is three tiles on repeat(auto-fit,minmax(min(160px,100%),1fr)), which
   measures as 1 column below 376px, 2 from 376 to 562, and 3 from 563 up. That
   middle band is every phone in portrait — 390, 393, 412, 414, 430 — and there the
   third tile drops alone into the left column, taking half the width with its amber
   rule stopping halfway across.
   Spanning the row is the whole fix: the existing max-width:700px rule already sets
   text-align:center on these tiles, so a full-width tile centres itself, and the
   accent rule runs the full measure under the figure the section builds to.
   562 and not the 700 the rest of the mobile block uses, because from 563 the grid
   is already 3 columns and there is nothing to orphan — carrying the rule up to 700
   would instead stretch the third tile across all three. Below 376 it is one column
   and 1/-1 is a no-op, so the narrowest phones are untouched. Both edges measured
   rather than derived; the clamp() padding and gap make them awkward to predict. */
@media (max-width: 562px){
  [data-scale-strip] > div:last-child{grid-column:1 / -1}
}


/* The lane film, click to play. The page ships a poster and a button; the <video>
   is not built until someone asks for it, so the 37 MB film costs a visitor who
   scrolls past nothing beyond the 70 KB of WebP the poster already spent. Same
   reasoning as the hero loop, held harder: that one attaches on a wide screen,
   this one never attaches unasked.
   The amber ring is the site's one lit-element treatment (brand/hypergate-brand.md,
   "the one shadow in the system is the amber glow"), held for hover and for keyboard
   focus so both land in the same place. */
[data-film]{position:absolute;inset:0;display:block;width:100%;height:100%;
  padding:0;border:0;background:#0D1116;border-radius:inherit;overflow:hidden;cursor:pointer}
[data-film-ring]{transition:box-shadow .18s ease, background-color .18s ease}
[data-film]:hover [data-film-ring],
[data-film]:focus-visible [data-film-ring]{background:rgba(9,11,13,.74);
  box-shadow:0 0 0 1.5px rgba(226,163,93,.95), 0 0 34px rgba(226,163,93,.6)}
[data-film]:focus-visible{outline:2px solid #E2A35D;outline-offset:3px}
@media (prefers-reduced-motion: reduce){[data-film-ring]{transition:none}}
/* ---- privacy.html ---- */
html.p-privacy,html.p-privacy *,html.p-privacy *::before,html.p-privacy *::after{box-sizing:border-box}
html.p-privacy{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.p-privacy body{margin:0;background:#F5F1EB;font-family:'General Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
html.p-privacy ::selection{background:#E2A35D;color:#090B0D}
html.p-privacy a{color:#A9722F;text-decoration:none}
html.p-privacy a:hover{color:#14181D}
html.p-privacy [data-mnav]{display:none}
@media (max-width:1079px){
html.p-privacy [data-nav-links]{display:none !important}
html.p-privacy [data-mnav]{display:block}
}
@media (prefers-reduced-motion:reduce){
html.p-privacy{scroll-behavior:auto}
}
/* No <=700px heading-centering block here, deliberately. Every other page centres h1/h2/h3
   on mobile; this one is continuous prose, and a centred heading over a left-aligned
   paragraph reads as the everything-is-centred tell rather than as the house style. */
@media (max-width:700px){
/* The four-column flow table cannot hold four columns at 375px without overflowing, and a
   sideways-scrolling table is worse than no table. Below 700px each row restacks into the
   site's own label-over-value device (the border-top:2px cards on contact.html), with the
   column header carried down as the label so nothing is lost. */
/* display:none, not a clipped sr-only box. Absolutely positioning the thead still
   leaves each th its own measured width, and webaudit reads geometry, not visual
   clipping, so "wider than viewport: th" fired at 375px. The header text is not lost:
   tr/td go display:block here, which already drops the table role in every engine, and
   each td carries its column name via data-label + ::before. The visually hidden
   <caption> still names the table. */
html.p-privacy [data-flow] thead{display:none}
html.p-privacy [data-flow] tr{display:block;border-top:2px solid #14181D;padding-top:14px;margin-top:26px}
html.p-privacy [data-flow] tr:first-child{margin-top:0}
html.p-privacy [data-flow] td{display:block;border-top:0;padding:0 0 12px}
html.p-privacy [data-flow] td:last-child{padding-bottom:0}
html.p-privacy [data-flow] td::before{content:attr(data-label);display:block;margin-bottom:4px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#7A756A}
html.p-privacy [data-flow] td:first-child::before{content:none}
}

/* ---- careers.html (added 2026-08-25) -------------------------------------
   The page-class blocks above are per page, so a new page inherits NOTHING until
   its class is listed: no box-sizing, no body reset, no responsive nav. That is
   what made careers.html overflow at 375 and render both navs at once.
   The <=700px centering block the marketing pages carry is deliberately NOT copied.
   This page is a long document, and that block centres only the FIRST paragraph
   after each heading, which would leave every section starting centred and running
   left. The hero is centred on its own below instead. */
html.p-careers,html.p-careers *,html.p-careers *::before,html.p-careers *::after{box-sizing:border-box}
html.p-careers{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.p-careers body{margin:0;background:#F5F1EB;font-family:'General Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
html.p-careers ::selection{background:#E2A35D;color:#090B0D}
html.p-careers a{color:#A9722F;text-decoration:none}
html.p-careers a:hover{color:#14181D}
html.p-careers [data-mnav]{display:none}
@media (max-width:1079px){
html.p-careers [data-nav-links]{display:none !important}
html.p-careers [data-mnav]{display:block}
}
@media (prefers-reduced-motion:reduce){
html.p-careers{scroll-behavior:auto}
html.p-careers [data-hero]{animation:none !important;opacity:1 !important;transform:none !important}
}
@media (max-width:700px){
html.p-careers [data-hero]{text-align:center !important;margin-left:auto !important;margin-right:auto !important}
html.p-careers footer > div{justify-content:center !important;text-align:center !important}
html.p-careers footer nav{justify-content:center !important}
}


/* ---- applications.php (added 2026-08-25) ---------------------------------
   Same trap as careers.html a day earlier: site.css scopes every base rule to a
   page class and there is no unscoped baseline, so a page whose class is not
   listed here renders with content-box sizing, an 8px body margin and no
   background. This block is deliberately SHORTER than the others because the
   page it serves has no marketing chassis: no responsive nav to swap, no
   [data-hero] to animate, no <=700px heading centring. Only the baseline.
   It is an internal tool behind a password, and it is noindex. */
html.p-applications,html.p-applications *,html.p-applications *::before,html.p-applications *::after{box-sizing:border-box}
html.p-applications{-webkit-text-size-adjust:100%}
html.p-applications body{margin:0;background:#F5F1EB;font-family:'General Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
html.p-applications ::selection{background:#E2A35D;color:#090B0D}
html.p-applications a{color:#A9722F;text-decoration:none}
html.p-applications a:hover{color:#14181D}
