:root{color-scheme:dark;--paper:#0a0c13;--surface:#10131e;--ink:#edf1f5;--muted:#939baa;--mint:#80f5d2;--violet:#b19aff;--line:#272b38;--page-inset:max(6%,calc((100% - 1280px)/2));--font:'DM Sans',Arial,sans-serif;--display:'Space Grotesk',Arial,sans-serif}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{position:relative;isolation:isolate;margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}
::selection{background:var(--mint);color:var(--paper)}
a{color:inherit;text-decoration:none}
button{font:inherit}
a:focus-visible,button:focus-visible{outline:2px solid var(--mint);outline-offset:6px}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:var(--display)}
.container{width:min(1280px,88%);margin-inline:auto;min-width:0}
.skip-link{position:fixed;top:-100px;left:20px;z-index:30;padding:12px;background:var(--mint);color:var(--paper)}
.skip-link:focus{top:12px}
.masthead{position:fixed;inset:0 0 auto;z-index:20;background:#0a0c13e8;backdrop-filter:blur(18px);border-bottom:1px solid #ffffff0c}
.header-inner{min-height:88px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px}
.wordmark{justify-self:start;flex-shrink:0;display:flex;align-items:center;gap:10px;font:600 26px var(--display);letter-spacing:-1px}
.wordmark img{width:42px;height:42px;flex-shrink:0;object-fit:contain}
.wordmark small{display:block;font:400 8px var(--font);color:var(--muted);letter-spacing:3.5px;margin-top:1px}
.masthead nav{display:flex;align-items:center;justify-content:center;gap:clamp(18px,2vw,28px);font-size:15px;line-height:1.5;font-weight:500;color:#bbc1ce}
.masthead nav a{display:flex;align-items:center;min-height:44px;white-space:nowrap;position:relative;padding:10px 0;transition:color .2s}
.masthead nav a:hover{color:var(--ink)}
.masthead nav a.active{color:var(--mint)}
.masthead nav a::after{content:'';position:absolute;bottom:3px;left:0;right:0;height:1px;background:var(--mint);transform:scaleX(0);transition:transform .25s}
.masthead nav a.active::after{transform:scaleX(1)}
.header-contact{justify-self:end;font-weight:500;line-height:1.5;padding:11px 18px;border:1px solid #80f5d24d;border-radius:4px;color:var(--mint);font-size:14px;white-space:nowrap;transition:background .2s}
.header-contact:hover{background:#80f5d214}
.menu-toggle{display:none}
.hero{position:relative;min-height:clamp(700px,100svh,1100px);height:auto;isolation:isolate;overflow:hidden;background:transparent}
.hero-content{min-height:inherit;display:flex;align-items:center;position:relative}
.hero-copy{padding:clamp(110px,12svh,150px) 0 130px;max-width:720px;min-width:0}
.eyebrow{font:400 10px var(--font);letter-spacing:2px;color:var(--mint);margin-bottom:24px;display:flex;align-items:center;gap:10px}
.signal-dot{width:6px;height:6px;background:var(--mint);box-shadow:0 0 12px #80f5d280}
.hero h1{font-size:clamp(72px,calc(36px + 8.5vw),158px);line-height:1.05;letter-spacing:-.06em;font-weight:500;display:flex;align-items:baseline;margin-left:-7px}
.hero h1>span:first-child{color:var(--mint)}
.title-pixel{width:15px;height:15px;background:var(--violet);margin-left:12px;align-self:flex-end;margin-bottom:24px}
.hero h2{font-size:clamp(30px,calc(23px + 1.6vw),46px);font-weight:400;line-height:1.17;letter-spacing:-1.6px;margin-top:27px}
.hero-description{font-family:var(--display);font-size:clamp(18px,2vw,26px);line-height:1.5;letter-spacing:.02em;color:var(--mint);margin-top:12px}
.hero-action{display:inline-flex;justify-content:center;gap:16px;align-items:center;min-height:48px;margin-top:32px;padding:13px 20px;border:1px solid #80f5d250;border-radius:6px;background:#80f5d208;font-size:14px;font-weight:500;line-height:20px;transition:background .2s,border-color .2s,color .2s}
.hero-action svg{width:18px;height:18px;flex-shrink:0;color:var(--mint);stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.hero-action:hover{color:var(--mint);background:#80f5d214;border-color:#80f5d290}
.about{position:relative;overflow:hidden;padding:140px 0;border-top:1px solid var(--line)}
.about-copy{width:62%;position:relative;z-index:1}
.about h2,.mission h2{font-size:clamp(32px,3.6vw,48px);line-height:1.15;letter-spacing:-1.8px;font-weight:400}
.about-copy>p:not(.eyebrow){font-size:17px;line-height:1.9;color:var(--muted);margin-top:25px;max-width:650px}
.pin-art{position:absolute;width:280px;right:7%;top:50%;transform:translateY(-50%) rotate(-8deg);opacity:.65}
.pin-art::before{content:'';position:absolute;inset:-50px;background:radial-gradient(#80f5d211,transparent 65%)}
.pin-art img{width:100%;filter:drop-shadow(0 0 40px #80f5d21c)}
.features{background:transparent;padding:100px 0;border-block:1px solid var(--line)}
.features>.container>h2{font-size:clamp(32px,3.6vw,48px);font-weight:400;line-height:1.15;letter-spacing:-1.8px}
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:48px}
.feature-card{isolation:isolate;position:relative;overflow:hidden;border:1px solid var(--line);border-radius:5px;padding:26px 22px;min-width:0;min-height:300px;background:linear-gradient(155deg,#141a26,#10131c);transition:border-color .25s,transform .25s}
.feature-card:hover{border-color:#80f5d260;transform:translateY(-4px)}
.feature-card h3{margin-top:20px;font-size:23px;font-weight:400;line-height:1.25;letter-spacing:-.5px}
.feature-card p{font-size:13px;line-height:1.8;margin-top:16px;color:var(--muted)}
.technology{padding:110px 0}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:45px}
.section-heading h2{font-size:clamp(30px,3.6vw,46px);font-weight:400;letter-spacing:-1.5px}
.section-heading>p{font-size:13px;line-height:1.8;color:var(--muted)}
.technology-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.technology-column{min-width:0;display:flex;flex-direction:column;gap:16px}
.technology-card{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:flex-end;border:1px solid var(--line);border-radius:5px;background:var(--surface);min-width:0;min-height:230px;padding:30px;flex:1}
.technology-card.tall{min-height:310px;flex:1.3}
.flow-card::before{content:'';position:absolute;inset:0;z-index:-1;background-image:var(--image);background-position:center;background-size:cover;transform:scale(1.05);transition:transform .5s}
.flow-card::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#10131ef5 0%,#10131ed9 42%,#10131e40 80%)}
.technology-card h3{font-size:30px;font-weight:400;line-height:1.15;letter-spacing:-.8px}
/* The signal field drifts continuously; the heading stays anchored. */
.flow-card::before { animation: signal-flow 12s ease-in-out infinite alternate; animation-play-state: paused; will-change: transform; }
.flow-card.is-flowing::before { animation-play-state: running; }
.flow-card:nth-child(even)::before { animation-delay: -6s; }
.flow-card.pattern-3::before, .flow-card.pattern-5::before { animation-direction: alternate-reverse; }
.signal-pin { position: absolute; z-index: -1; width: 6px; height: 6px; border-radius: 50%; top: 40%; left: -8px; background: var(--mint); box-shadow: 0 0 12px #80f5d260; animation: signal-travel 7s linear infinite; animation-play-state: paused; }
.flow-card.is-flowing .signal-pin { animation-play-state: running; }
.flow-card:nth-child(even) .signal-pin { background: var(--violet); animation-delay: -3.5s; animation-duration: 9s; }
@keyframes signal-flow { from { transform: scale(1.18) translate(-3%, -2%); } to { transform: scale(1.18) translate(3%, 2%); } }
@keyframes signal-travel { 0% { left: -8px; top: 40%; opacity: 0; } 10% { opacity: .8; } 50% { top: 55%; } 90% { opacity: .8; } 100% { left: calc(100% + 8px); top: 40%; opacity: 0; } }

.mission{padding:140px 0;position:relative;overflow:hidden;isolation:isolate;text-align:center;border-block:1px solid var(--line)}
.mission-copy{max-width:850px}
.mission .eyebrow{justify-content:center}
.mission h2{font-size:clamp(38px,5vw,68px)}
.mission-copy>p:not(.eyebrow){font-size:17px;line-height:1.85;margin:24px auto 0;color:#a6aebb;max-width:700px}
.contact-section{padding:100px 0;background:transparent}
.contact-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center}
.contact-section h2{font-size:clamp(32px,3.2vw,46px);font-weight:400;line-height:1.2;letter-spacing:-1.3px;max-width:620px;text-wrap:balance}
.contact-section h2 span{color:var(--mint)}
.contact-section p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:1.8;margin-top:20px}
.contact-details{border-left:1px solid var(--line);padding-left:60px}
.mail-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--violet);border:1px solid #b19aff35;border-radius:8px;background:#b19aff08}
.mail-icon svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.contact-details a{display:inline-block;font-size:clamp(16px,1.7vw,24px);margin-top:10px;overflow-wrap:anywhere;font-family:var(--display)}
.contact-details a:hover{color:var(--mint)}
footer{padding:60px 0 24px;background:transparent}
.footer-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:50px}
.footer-brand{display:inline-flex;align-items:center;gap:8px;font:500 26px var(--display);letter-spacing:-1px}
.footer-grid p{font-size:12px;line-height:1.8;color:var(--muted);margin-top:14px}
.footer-grid nav{display:flex;flex-direction:column;gap:12px;font-size:12px;color:var(--muted)}
.footer-grid nav a:hover{color:var(--mint)}
.footer-label{font-size:9px!important;letter-spacing:2px;margin-top:0!important;color:var(--mint)!important}
.copyright{margin-top:50px;padding-top:24px;border-top:1px solid var(--line);font-size:10px;color:#707989}
@keyframes scroll{0%,100%{transform:translateY(0);opacity:.5}
50%{transform:translateY(8px);opacity:1}
}


@media(max-width:1100px){
.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.feature-card{min-height:260px}
.pin-art{width:220px;right:5%}
.technology-card h3{font-size:26px}
.technology-card{padding:24px}
}

@media(max-width:760px){.hero-description{font-size:18px}

.about{padding:90px 0}
.about-copy{width:100%}
.about-copy>p:not(.eyebrow){font-size:15px}
.pin-art{right:-75px;width:240px;opacity:.06}
.features,.technology{padding:75px 0}
.feature-grid{gap:12px;margin-top:32px}
.feature-card{padding:22px 18px}
.feature-card h3{font-size:21px}
.section-heading{align-items:flex-start;flex-direction:column;gap:18px}
.technology-card,.technology-card.tall{min-height:230px;padding:24px 20px}
.technology-card h3{font-size:25px}
.mission{padding:100px 0}
.mission-copy>p:not(.eyebrow){font-size:15px}
.contact-section{padding:75px 0}
.contact-grid{grid-template-columns:1fr;gap:36px}
.contact-details{padding-left:0;padding-top:25px;border-left:0;border-top:1px solid var(--line)}
.contact-section h2{font-size:32px}
.footer-grid{grid-template-columns:1fr 1fr;gap:30px}
.footer-grid>div:first-child{grid-column:1/-1}
}

@media(max-width:600px){.feature-grid{grid-template-columns:1fr}
.feature-card{min-height:230px}
.technology-card,.technology-card.tall{min-height:240px}
}


.header-inner > * { min-width: 0; }

.feature-card h3, .technology-card h3 { overflow-wrap: anywhere; }



.footer-grid > *, .contact-grid > *, .section-heading > * { min-width: 0; }

.flow-card.pattern-1 { --image: url('../brand/pattern-1.svg'); }

.flow-card.pattern-2 { --image: url('../brand/pattern-2.svg'); }

.flow-card.pattern-3 { --image: url('../brand/pattern-3.svg'); }

.flow-card.pattern-4 { --image: url('../brand/pattern-4.svg'); }

.flow-card.pattern-5 { --image: url('../brand/pattern-5.svg'); }

.flow-card.pattern-6 { --image: url('../brand/pattern-6.svg'); }

@media (max-width: 1100px) {
  html { scroll-padding-top: 74px; }

  .header-inner { min-height: 74px; grid-template-columns: minmax(0, 1fr) auto; }

  .header-contact { display: none; }

  .wordmark { font-size: 23px; }

  .wordmark img { width: 36px; height: 36px; }

  .menu-toggle { justify-self: end; display: flex; flex-shrink: 0; flex-direction: column; gap: 5px; justify-content: center; align-items: center; width: 40px; height: 40px; background: none; border: 0; color: var(--mint); cursor: pointer; }

  .menu-toggle span { width: 23px; height: 1px; background: currentColor; }

  .masthead nav { display: none; position: absolute; top: 74px; left: 0; right: 0; max-height: calc(100dvh - 74px); overflow-y: auto; background: var(--paper); border-bottom: 1px solid var(--line); padding: 20px 6%; font-size: 15px; gap: 14px; }

  .masthead nav.open { display: flex; flex-direction: column; align-items: stretch; }

}

@media (max-width: 960px) {
  .technology-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }

  .technology-column { display: contents; }

  .technology-card, .technology-card.tall { min-height: 250px; }

  .section-heading { align-items: flex-start; flex-direction: column; gap: 18px; }

  .contact-grid { grid-template-columns: 1fr; gap: 36px; }

  .contact-details { padding-left: 0; padding-top: 25px; border-left: 0; border-top: 1px solid var(--line); }

}

@media (max-width: 600px) {
  .technology-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }

  .technology-card, .technology-card.tall { min-height: 240px; }

}


@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*::before,*::after{animation:none!important;transition:none!important}
}


.masthead nav .team-access-mobile { display: none; }
.header-contact { background: transparent; cursor: pointer; font-family: var(--font); }

@media (max-width: 1100px) {
  .masthead nav .team-access-mobile { display: block; align-self: flex-start; margin-top: 8px; padding: 11px 18px; background: transparent; border: 1px solid #80f5d24d; border-radius: 4px; font: 500 15px/1.5 var(--font); color: var(--mint); }
}

.engineering-card-copy { min-width: 0; width: 100%; }
.engineering-card-copy p { margin-top: 15px; font-size: 13px; line-height: 1.8; color: #a6aebb; max-width: 38ch; overflow-wrap: break-word; }

/* A single fixed field keeps direction and phase continuous across sections. */
.page-field { position: fixed; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; opacity: .65; }
main > section, .site-footer { position: relative; }

.policy-main { padding: 150px 0 100px; }
.policy-document { width: min(896px, 88%); margin-inline: auto; }
.policy-heading { padding-bottom: 36px; border-bottom: 1px solid var(--line); }
.policy-heading h1 { font-size: clamp(40px, 5vw, 64px); font-weight: 500; line-height: 1.15; letter-spacing: -.04em; }
.policy-heading h1 span { color: var(--mint); }
.policy-date { margin-top: 20px; font-size: 13px; color: var(--muted); }
.policy-intro { padding-block: 36px; }
.policy-document section { padding-block: 28px; border-top: 1px solid var(--line); }
.policy-document h2 { font-size: clamp(21px, 2vw, 26px); font-weight: 500; line-height: 1.4; letter-spacing: -.02em; margin-bottom: 18px; }
.policy-document section p, .policy-intro p, .policy-document li { font-size: 15px; line-height: 1.9; color: #b0b8c5; }
.policy-document p + p { margin-top: 16px; }
.policy-document ul { margin: 0 0 20px; padding-left: 22px; }
.policy-document li + li { margin-top: 14px; }
.policy-document li::marker { color: var(--mint); }
.policy-document strong { color: var(--ink); font-weight: 500; }
.policy-document p a { color: var(--mint); text-decoration: underline; text-decoration-color: #80f5d24d; text-underline-offset: 4px; overflow-wrap: anywhere; }
.privacy-page .page-field { opacity: .18; }
.footer-grid nav a[aria-current="page"] { color: var(--mint); }
@media (max-width: 760px) {
  .policy-main { padding-block: 114px 60px; }
  .policy-document section p, .policy-intro p, .policy-document li { font-size: 14px; }
}

.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.login-main { min-height: 100svh; display: grid; place-items: center; padding: 136px 6% 70px; }
.login-card { width: min(100%, 500px); min-width: 0; padding: 42px; background: #0d1019ef; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 30px 90px #0004; }
.login-icon { width: 48px; height: 48px; display: grid; place-items: center; margin: 0 auto 25px; color: var(--mint); border: 1px solid #80f5d230; background: #80f5d208; border-radius: 10px; }
.login-icon svg { width: 23px; height: 23px; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; }
.login-card > .eyebrow { justify-content: center; margin-bottom: 14px; font-size: 9px; }
.login-card h1 { font: 500 clamp(30px, 4vw, 38px)/1.2 var(--display); letter-spacing: -.04em; text-align: center; }
.login-card h1 span { color: var(--mint); }
#login-subtitle { margin-top: 12px; font-size: 13px; color: var(--muted); line-height: 1.7; text-align: center; }
.login-form { margin-top: 32px; }
.login-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.login-field + .login-field { margin-top: 22px; }
.login-field label { display: block; margin-bottom: 10px; font-size: 13px; color: #c7ced8; }
.login-field input { appearance: none; width: 100%; min-width: 0; height: 50px; border: 1px solid #323746; border-radius: 5px; padding: 0 15px; background: #0a0c13; color: var(--ink); font: 14px var(--font); }
.login-field input::placeholder { color: #7c8597; opacity: 1; }
.login-field input:disabled { opacity: .8; -webkit-text-fill-color: #7c8597; cursor: not-allowed; }
.login-submit { width: 100%; margin-top: 28px; display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 12px 16px; background: var(--mint); color: var(--paper); border: 0; border-radius: 5px; font: 600 14px var(--font); }
.login-submit:disabled { opacity: .45; cursor: not-allowed; }
.login-status { margin-top: 16px; font-size: 12px; line-height: 1.7; color: var(--muted); text-align: center; }
.login-help { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); text-align: center; }
.login-help p, .login-privacy { font-size: 12px; line-height: 1.8; color: var(--muted); }
.login-help a { display: inline-flex; gap: 16px; margin-top: 10px; font-size: 13px; color: var(--mint); }
.login-privacy { margin-top: 24px; text-align: center; }
.login-privacy a { color: #c7ced8; text-decoration: underline; text-underline-offset: 3px; }
.team-access[aria-current="page"] { background: #80f5d210; border-color: #80f5d270; }
@media (max-width: 600px) { .login-main { padding: 106px 6% 48px; } .login-card { padding: 30px 22px; } }

.login-dialog { width: min(420px, calc(100% - 40px)); max-height: calc(100svh - 40px); margin: auto; padding: 32px; border: 1px solid #80f5d240; border-radius: 12px; background: #0d1019; color: var(--ink); box-shadow: 0 24px 90px #0008; text-align: center; overflow-y: auto; }
.login-dialog::backdrop { background: #060810bd; backdrop-filter: blur(6px); }
.login-error-icon { display: grid; place-items: center; width: 44px; height: 44px; margin: 0 auto 20px; border: 1px solid #80f5d250; border-radius: 50%; color: var(--mint); background: #80f5d20a; font: 500 24px var(--display); }
.login-dialog h2 { font: 500 25px/1.3 var(--display); letter-spacing: -.03em; }
.login-dialog p { margin-top: 12px; color: var(--muted); font-size: 14px; line-height: 1.7; }
.login-dialog-close { width: 100%; margin-top: 26px; padding: 13px 18px; border: 0; border-radius: 5px; background: var(--mint); color: var(--paper); font: 600 14px var(--font); cursor: pointer; }
.login-dialog-close:focus-visible { outline: 2px solid var(--mint); outline-offset: 4px; }

.signal-pin::after { content: ""; position: absolute; width: 1px; height: 9px; top: 5px; left: 2.5px; background: inherit; }
