@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/manrope-500.woff2") format("woff2")}
@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/manrope-600.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/plex-400.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/plex-500.woff2") format("woff2")}

:root,[data-bs-theme="dark"]{
    color-scheme:dark;
    --ag-color-bg-base:#0b1016;
    --ag-color-bg-surface:#111a23;
    --ag-color-bg-field:#17232d;
    --ag-color-text-primary:#edf1f5;
    --ag-color-text-secondary:#a9b6c3;
    --ag-color-text-onSilver:#0b1016;
    --ag-color-silver:#d5dee7;
    --ag-color-silver-hover:#f2f5f8;
    --ag-color-accent:#9fc5de;
    --ag-color-border-subtle:#2c3a46;
    --ag-color-border-control:#617383;
    --ag-color-error:#ffb4ad;
    --ag-space-8:8px;
    --ag-space-12:12px;
    --ag-space-16:16px;
    --ag-space-20:20px;
    --ag-space-24:24px;
    --ag-space-32:32px;
    --ag-space-40:40px;
    --ag-space-48:48px;
    --ag-space-64:64px;
    --ag-space-80:80px;
    --ag-radius-4:4px;
    --bs-body-bg:var(--ag-color-bg-base);
    --bs-body-color:var(--ag-color-text-primary);
    --bs-body-font-family:"IBM Plex Sans",sans-serif;
    --bs-body-font-size:16px;
    --bs-body-line-height:1.625;
    --bs-link-color:var(--ag-color-accent);
    --bs-link-hover-color:var(--ag-color-silver-hover);
    --bs-border-color:var(--ag-color-border-subtle);
}
html{scroll-padding-top:24px;scrollbar-color:var(--ag-color-border-control) var(--ag-color-bg-base)}
body{margin:0;min-width:280px}
::selection{color:var(--ag-color-text-onSilver);background:var(--ag-color-accent)}
a{color:var(--ag-color-accent);text-underline-offset:.2em;text-decoration-thickness:1px}
p,h1,h2,h3,ul{margin:0}
p{color:var(--ag-color-text-secondary)}
h1,h2,h3{font-family:Manrope,sans-serif;color:var(--ag-color-text-primary)}
h1{font-size:42px;font-weight:500;line-height:48px;letter-spacing:-1.1px}
h2,.section-heading{font-size:32px;font-weight:500;line-height:40px;letter-spacing:-.6px}
h3{font-size:20px;font-weight:600;line-height:28px;letter-spacing:-.2px}
:focus-visible{outline:2px solid var(--ag-color-accent);outline-offset:5px}
main:focus{outline:none}
.site-container{width:calc(100% - 48px);max-width:1248px;margin-inline:auto}
.section{padding-block:48px}
.surface{background:var(--ag-color-bg-surface)}
.small-copy{font-size:14px;line-height:22px}
.large-copy{font-size:20px;line-height:30px}
.desktop-break{display:initial}
.mobile-break{display:inline}
.split{display:flex;flex-direction:column;gap:24px}
.split>*{min-width:0}
.skip-link{position:absolute;top:8px;left:24px;z-index:10;padding:12px 20px;background:var(--ag-color-silver);color:var(--ag-color-text-onSilver);transform:translateY(-180%)}
.skip-link:focus{transform:translateY(0)}
.site-header{padding-block:16px}
.header-content{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px 24px}
.brand{display:block;flex-shrink:0;aspect-ratio:625 / 201}
.brand-mask{display:block;width:100%;height:100%;background:var(--ag-color-silver);mask:url("../images/logo-mask.png") center / contain no-repeat}
.brand-header{width:150px;max-width:100%}
.service-nav{grid-column:1 / -1;grid-row:2;gap:24px;justify-content:space-between;flex-wrap:wrap}
.service-nav .nav-link{padding:0;color:var(--ag-color-text-primary);font-size:14px;line-height:22px;white-space:nowrap}
.contact-nav{display:none}
.portal-header{grid-column:2;grid-row:1}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:11px 19px;border-radius:var(--ag-radius-4);font-size:16px;font-weight:500;line-height:24px;transition:background-color 160ms ease-out,border-color 160ms ease-out;color:var(--ag-color-text-primary);touch-action:manipulation;text-decoration:none}
.btn-silver{background:var(--ag-color-silver);border-color:var(--ag-color-silver);color:var(--ag-color-text-onSilver)}
.btn-outline-silver{background:var(--ag-color-bg-base);border-color:var(--ag-color-border-control)}
.btn:focus-visible{outline:2px solid var(--ag-color-accent);outline-offset:4px;box-shadow:none}
.btn-silver:active,.btn-silver:focus-visible{background:var(--ag-color-silver-hover);color:var(--ag-color-text-onSilver);border-color:var(--ag-color-silver-hover)}
.btn-outline-silver:active,.btn-outline-silver:focus-visible{background:var(--ag-color-bg-field);border-color:var(--ag-color-accent)}
.btn:disabled{opacity:.6;cursor:wait}
.icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.icon img{display:block}
.hero{padding-block:32px}
.hero-layout{display:flex;flex-direction:column;gap:24px}
.hero-copy{display:flex;flex-direction:column;gap:24px}
.hero-description{font-size:16px;line-height:26px;max-width:570px}
.hero-actions{display:flex;flex-direction:column;align-items:stretch;gap:16px}
.text-action{align-self:flex-start;font-weight:500;line-height:24px;text-decoration:none;color:var(--ag-color-text-primary)}
.orbital-art{width:100%;max-width:500px;align-self:center;aspect-ratio:500 / 440}
/* Independent counterclockwise clocks; CSS preserves their phase while paused. */
.orbital-svg{display:block;width:100%;height:auto;overflow:visible}
.orbital-ring{
    transform-box:view-box;
    transform-origin:260px 218px;
    animation:orbital-revolution 72s linear infinite reverse;
    animation-play-state:paused;
}
.orbital-ring--inner{animation-duration:52s}
/* Align the gradient bands with the tilted orbit (-25deg); keep the ring still. */
.orbital-ring--silver{animation:none;transform:rotate(20deg)}
.orbital-ring--ellipse{transform-origin:0 0;animation-duration:36s}
.orbital-ring--satellites{animation-duration:36s}
.orbital-ring--stars{animation-duration:84s}
.orbital-art.is-orbit-running .orbital-ring{animation-play-state:running}
@keyframes orbital-revolution{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){
    .orbital-ring{animation:none}
}
.hero-service-area{margin-top:24px}
.software-intro p{margin-top:20px;max-width:440px}
.service-list{display:flex;flex-direction:column;gap:24px}
.service-row{display:flex;flex-direction:column;gap:12px;padding-bottom:24px}
.service-row::after{content:"";display:block;height:1px;width:100%;background:var(--ag-color-border-subtle)}
.platforms{margin-top:32px}
.platforms p{margin-top:12px}
.capability-list{margin-top:24px;display:flex;flex-direction:column;gap:12px}
.capability-list li{display:flex;align-items:center;gap:12px;line-height:26px}
.managed-services{margin-top:32px}
.client-band{padding-block:40px}
.client-layout{display:flex;flex-direction:column;gap:24px}
.client-layout h2{font-size:24px;line-height:32px;letter-spacing:-.4px;font-weight:600}
.client-layout p{margin-top:12px}
.contact-intro{display:flex;flex-direction:column;gap:24px}
.contact-email{align-self:flex-start;text-decoration:none}
.quote-form{display:flex;flex-direction:column;gap:24px}
.quote-fields{--bs-gutter-x:24px;--bs-gutter-y:24px}
.form-label{display:block;font-size:16px;line-height:24px;font-weight:500;color:var(--ag-color-text-primary);margin-bottom:8px}
.form-control,.form-select{font-size:16px;line-height:26px;min-height:52px;padding:12px 16px;color:var(--ag-color-text-primary);background-color:var(--ag-color-bg-field);border:1px solid var(--ag-color-border-control);border-radius:4px;caret-color:var(--ag-color-accent);box-shadow:none;transition:border-color 160ms ease-out}
.form-control::placeholder{color:var(--ag-color-text-secondary);opacity:1}
.form-select{padding-right:44px;background-image:url("../images/chevron.svg");background-size:12px 8px}
.form-select:has(option[value=""]:checked){color:var(--ag-color-text-secondary)}
.form-select option{color:var(--ag-color-text-primary)}
.form-control:focus,.form-select:focus{background-color:var(--ag-color-bg-field);color:var(--ag-color-text-primary);border-color:var(--ag-color-accent);box-shadow:none;outline:2px solid var(--ag-color-accent);outline-offset:2px}
textarea.form-control{min-height:128px;height:128px;resize:vertical}
.field-error{display:block;color:var(--ag-color-error);font-size:14px;line-height:22px}
.field-error:not(:empty){margin-top:8px}
.input-validation-error,.form-control[aria-invalid="true"],.form-select[aria-invalid="true"]{border-color:var(--ag-color-error)}
.form-status{padding:24px;border:1px solid var(--ag-color-border-control);border-radius:8px;margin-bottom:24px;overflow-wrap:anywhere}
.form-status h3{margin-bottom:12px}
.form-status ul{padding-left:20px}
.form-status p:not(:first-child){margin-top:12px}
.form-errors{border-color:var(--ag-color-error);margin-bottom:0}
.form-errors ul,.form-errors li a{color:var(--ag-color-error)}
.bot-field{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.quote-submit{align-self:stretch}
.site-footer{padding-block:40px}
.footer-content{display:flex;flex-direction:column;gap:32px}
.footer-details{display:flex;flex-direction:column;gap:24px}
.brand-footer{width:180px}
.footer-brand p{margin-top:12px}
.footer-links{display:flex;flex-direction:column;gap:12px;font-size:14px;line-height:22px}
.footer-links a{color:var(--ag-color-text-primary);text-decoration:none;align-self:flex-start}
.footer-meta{display:flex;flex-direction:column;gap:16px}
.motion-preference{max-width:100%}
.motion-preference[hidden]{display:none}
.motion-preference-label{display:flex;align-items:center;gap:12px;min-height:44px;width:fit-content;max-width:100%;font-size:14px;line-height:22px;cursor:pointer}
.motion-preference-label input{width:18px;height:18px;flex-shrink:0;accent-color:var(--ag-color-accent)}
.motion-preference-label:has(input:disabled){cursor:default}
.motion-preference p{max-width:36ch}
hr{border:0;border-top:1px solid var(--ag-color-border-subtle);opacity:1;margin:0}
.error-page{min-height:50vh;display:flex;flex-direction:column;align-items:flex-start;gap:24px}
@media(hover:hover) and (pointer:fine){
    .btn-silver:hover{background:var(--ag-color-silver-hover);border-color:var(--ag-color-silver-hover);color:var(--ag-color-text-onSilver)}
    .btn-outline-silver:hover{background:var(--ag-color-bg-field);border-color:var(--ag-color-accent)}
    .nav-link:hover,.footer-links a:hover,.text-action:hover,.contact-email:hover{color:var(--ag-color-accent);text-decoration:underline}
}
@media(min-width:768px){
    .mobile-break{display:none}
    .site-container{width:calc(100% - 80px)}
    .hero-actions{flex-direction:row;align-items:center;gap:24px}
    .hero-actions .text-action{align-self:center}
    .hero-copy{max-width:700px}
    .quote-submit{align-self:flex-start}
}
@media(min-width:992px){
    .section{padding-block:80px}
    h2,.section-heading{font-size:44px;line-height:52px;letter-spacing:-1px}
    .desktop-break{display:initial}
    .header-content{display:flex;justify-content:space-between;gap:32px}
    .brand-header{width:216px}
    .service-nav{gap:32px}
    .service-nav .nav-link{font-size:16px;line-height:24px}
    .contact-nav{display:block}
    .split{flex-direction:row;gap:40px}
    .equal-split>.col-12,.managed-services>.col-12{flex:1;width:0}
    .software-intro{width:calc((100% - 40px) * .411)}
    .software-details{flex:1;width:0}
    .contact-intro{width:calc((100% - 40px) * .377)}
    .quote-form-wrap{flex:1;width:0}
    .client-band{padding-block:48px}
    .client-layout{flex-direction:row;align-items:center;justify-content:space-between}
    .client-layout h2{font-size:44px;line-height:52px;letter-spacing:-1px;font-weight:500}
    .client-layout>.btn{flex-shrink:0}
    .site-footer{padding-block:48px}
    .footer-details{flex-direction:row;align-items:center;justify-content:space-between}
    .footer-links{width:240px}
}
@media(min-width:1200px){
    .site-container{width:calc(100% - 120px)}
    .hero{padding-block:64px}
    .hero-layout{flex-direction:row;align-items:center;gap:48px}
    .hero-copy{width:calc((100% - 48px) * .583333);flex-shrink:0}
    h1{font-size:clamp(56px,5vw,72px);line-height:1.111111;letter-spacing:-2px}
    .hero-description{font-size:20px;line-height:30px}
    .orbital-art{width:auto;flex:1;min-width:0}
    .split{gap:80px}
    .software-intro{width:calc((100% - 80px) * .410959)}
    .contact-intro{width:calc((100% - 80px) * .376712)}
    .managed-services{gap:64px}
}
@media(min-width:1440px){.site-container{width:calc(100% - 192px)}}
@media(max-width:359.98px){
    .header-content{column-gap:12px}
    .brand-header{width:120px}
    .portal-header{padding-inline:12px;gap:8px;font-size:14px}
    .service-nav{gap:20px}
    h1{font-size:36px;line-height:42px}
}
@media(prefers-reduced-motion:reduce){
    *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
.reduce-motion *,.reduce-motion *::before,.reduce-motion *::after{scroll-behavior:auto!important;transition:none!important;animation-play-state:paused!important}
@media(forced-colors:active){
    .brand-mask{background:CanvasText}
    .btn{border:1px solid ButtonText}
}
