:root{
  --ink: oklch(0.17 0.012 60);
  --ink-2: oklch(0.21 0.013 60);
  --ink-3: oklch(0.27 0.014 60);
  --bone: oklch(0.96 0.012 85);
  --bone-2: oklch(0.88 0.014 85);
  --bone-dim: oklch(0.66 0.012 85);
  --lime: oklch(0.72 0.17 248);          /* brand blue (bright)  ~#3B9CFF */
  --lime-deep: oklch(0.58 0.18 252);     /* brand blue (deep)   ~#1E78E0 */
  --navy: oklch(0.32 0.09 258);          /* brand navy outline  ~#1E3A5F */
  --rule: oklch(0.32 0.012 60);
  --rule-soft: oklch(0.25 0.012 60);
  --sans: 'Space Grotesk', system-ui, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;
  --serif: 'Instrument Serif', Georgia, serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--ink);color:var(--bone);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html{scroll-behavior:smooth}
body{overflow-x:hidden;cursor:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:none}
::selection{background:var(--lime);color:var(--ink)}

/* Cursor */
.cursor-dot, .cursor-ring{position:fixed;pointer-events:none;z-index:9999;border-radius:50%;mix-blend-mode:difference;transition:transform .12s ease-out, width .25s ease, height .25s ease, opacity .25s}
.cursor-dot{width:6px;height:6px;background:var(--bone);transform:translate(-50%,-50%)}
.cursor-ring{width:36px;height:36px;border:1px solid var(--bone);transform:translate(-50%,-50%);opacity:.7}
.cursor-ring.hover{width:64px;height:64px;opacity:1;background:rgba(255,255,255,.04)}
.cursor-dot.hover{opacity:0}
@media (hover:none),(pointer:coarse){
  .cursor-dot,.cursor-ring{display:none !important}
  html,body,*{cursor:auto !important}
  a,button,[role="button"],input[type="submit"]{cursor:pointer !important}
}

/* Nav */
nav.top{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:22px 36px;color:var(--bone);mix-blend-mode:difference;transition:background .35s ease, backdrop-filter .35s ease, padding .25s ease, border-color .35s ease;border-bottom:1px solid transparent}
nav.top.scrolled{mix-blend-mode:normal;background:oklch(0.17 0.012 60 / .72);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border-bottom-color:var(--rule-soft);padding-top:14px;padding-bottom:14px}
nav.top .brand{font-family:var(--sans);font-weight:600;letter-spacing:-.01em;font-size:18px;display:flex;align-items:center;gap:12px}
nav.top .brand .mark{width:30px;height:30px;display:inline-grid;place-items:center;flex-shrink:0}
nav.top .brand .mark img{width:100%;height:100%;object-fit:contain;display:block}
nav.top .brand .word{display:inline-flex;align-items:baseline;gap:1px}
nav.top .brand .word .b{color:var(--lime)}
nav.top ul{list-style:none;display:flex;gap:34px;font-size:13px;letter-spacing:.04em;text-transform:uppercase;font-family:var(--mono);margin:0;padding:0}
nav.top ul a{opacity:.78;transition:opacity .2s;position:relative;padding:4px 0}
nav.top ul a:hover{opacity:1}
nav.top ul a.active{opacity:1}
nav.top ul a.active::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--lime);box-shadow:0 0 10px var(--lime)}
nav.top .cta{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--bone);padding:10px 16px;border-radius:999px;transition:background .2s,color .2s;white-space:nowrap}
nav.top .cta:hover{background:var(--bone);color:var(--ink)}

/* Mobile menu button */
nav.top .hamburger{display:none;width:44px;height:44px;align-items:center;justify-content:center;background:transparent;border:1px solid var(--bone);border-radius:999px;flex-shrink:0}
nav.top .hamburger span{position:relative;width:16px;height:1.5px;background:var(--bone);display:block;transition:.3s}
nav.top .hamburger span::before,nav.top .hamburger span::after{content:"";position:absolute;left:0;width:16px;height:1.5px;background:var(--bone);transition:.3s}
nav.top .hamburger span::before{top:-5px}
nav.top .hamburger span::after{top:5px}
nav.top .hamburger.open span{background:transparent}
nav.top .hamburger.open span::before{top:0;transform:rotate(45deg)}
nav.top .hamburger.open span::after{top:0;transform:rotate(-45deg)}

/* Mobile menu overlay */
.mobile-menu{position:fixed;inset:0;background:var(--ink);z-index:45;display:none;flex-direction:column;padding:96px 28px 40px;overflow-y:auto}
.mobile-menu.open{display:flex;animation:fade .35s ease forwards}
.mobile-menu ul{list-style:none;display:flex;flex-direction:column;gap:8px;padding:0;margin:0}
.mobile-menu ul a{display:block;font-family:var(--sans);font-size:34px;font-weight:500;letter-spacing:-.02em;line-height:1.1;color:var(--bone);padding:14px 0;border-bottom:1px solid var(--rule-soft);transition:color .2s,padding .2s}
.mobile-menu ul a:hover,.mobile-menu ul a.active{color:var(--lime)}
.mobile-menu .mobile-cta{margin-top:auto;padding-top:36px;display:flex;flex-direction:column;gap:10px}
.mobile-menu .mobile-cta a{display:inline-flex;align-items:center;justify-content:center;background:var(--lime);color:var(--ink);font-family:var(--sans);font-size:18px;font-weight:600;padding:18px;border-radius:999px}
.mobile-menu .mobile-cta .mail{background:transparent;color:var(--bone-2);border:1px solid var(--rule);font-family:var(--mono);font-size:13px;font-weight:400;text-transform:none;letter-spacing:0}

/* Layout */
section{position:relative;padding:140px 36px}
.container{max-width:1380px;margin:0 auto}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--bone-dim);display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:8px;height:8px;background:var(--lime);border-radius:50%;box-shadow:0 0 18px var(--lime)}

/* HERO (Home page only) */
.hero{min-height:100vh;padding:120px 36px 80px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(var(--rule-soft) 1px,transparent 1px),linear-gradient(90deg,var(--rule-soft) 1px,transparent 1px);background-size:80px 80px;mask-image:radial-gradient(ellipse 90% 70% at 50% 40%,black 35%,transparent 75%);opacity:.45;pointer-events:none}
.hero-orb{position:absolute;width:780px;height:780px;border-radius:50%;background:radial-gradient(circle at 30% 30%,oklch(0.88 0.17 248 / .35),transparent 60%);filter:blur(40px);pointer-events:none;top:-200px;right:-180px;animation:orb 18s ease-in-out infinite alternate}
@keyframes orb{0%{transform:translate(0,0) scale(1)}100%{transform:translate(-60px,40px) scale(1.08)}}
.hero-inner{position:relative;z-index:2;max-width:1380px;margin:0 auto;width:100%;flex:1;display:flex;flex-direction:column;justify-content:center;gap:48px}
.hero h1{font-size:clamp(56px,9.5vw,168px);line-height:.92;letter-spacing:-.04em;font-weight:500;font-feature-settings:"ss01"}
.hero h1 .serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.02em}
.hero h1 .accent{color:var(--lime)}
.hero h1 .reveal{display:inline-block;overflow:hidden;vertical-align:bottom}
.hero h1 .reveal > span{display:inline-block;transform:translateY(110%);animation:rise 1.05s cubic-bezier(.2,.7,.2,1) forwards}
.hero h1 .reveal:nth-child(1) > span{animation-delay:.1s}
.hero h1 .reveal:nth-child(2) > span{animation-delay:.22s}
.hero h1 .reveal:nth-child(3) > span{animation-delay:.34s}
.hero h1 .reveal:nth-child(4) > span{animation-delay:.46s}
@keyframes rise{to{transform:translateY(0)}}
.hero-sub-row{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:end}
.hero-sub{font-size:18px;line-height:1.55;color:var(--bone-2);max-width:42ch;opacity:0;animation:fade 1s .9s forwards}
@keyframes fade{to{opacity:1}}
.hero-meta{font-family:var(--mono);font-size:12px;color:var(--bone-dim);display:flex;flex-direction:column;gap:6px;opacity:0;animation:fade 1s 1.1s forwards}
.hero-meta .row{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--rule-soft);padding:10px 0}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;position:relative;z-index:2;padding-top:60px}
.scroll-cue{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--bone-dim);display:flex;flex-direction:column;align-items:center;gap:12px}
.scroll-cue .line{width:1px;height:54px;background:linear-gradient(var(--bone-dim),transparent);animation:scrollLine 1.8s ease-in-out infinite}
@keyframes scrollLine{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.4)}}

/* Page Header (inner pages) */
.page-header{padding:180px 36px 80px;position:relative;overflow:hidden;border-bottom:1px solid var(--rule-soft)}
.page-header .orb{position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,oklch(0.88 0.17 248 / .18),transparent 65%);filter:blur(50px);pointer-events:none;top:-180px;right:-140px;animation:orb 18s ease-in-out infinite alternate}
.page-header .container{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto;gap:60px;align-items:end}
.page-header h1{font-size:clamp(56px,10vw,160px);line-height:.9;letter-spacing:-.045em;font-weight:500;margin-top:28px}
.page-header h1 .serif{font-family:var(--serif);font-style:italic;font-weight:400}
.page-header h1 .accent{color:var(--lime)}
.page-header .lede{margin-top:34px;font-size:18px;line-height:1.55;color:var(--bone-2);max-width:58ch}
.page-header .crumb{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--bone-dim);text-transform:uppercase;align-self:end;padding-bottom:14px}

/* Terminal */
.terminal{background:var(--ink-2);border:1px solid var(--rule);border-radius:14px;font-family:var(--mono);font-size:13px;width:min(520px,46vw);box-shadow:0 30px 80px -30px rgba(0,0,0,.6);overflow:hidden}
.terminal-bar{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--rule-soft);color:var(--bone-dim);font-size:11px;letter-spacing:.1em}
.terminal-bar .dots{display:flex;gap:6px;margin-right:10px}
.terminal-bar .dots span{width:10px;height:10px;border-radius:50%;background:var(--ink-3)}
.terminal-bar .dots span:nth-child(1){background:#ff6058}
.terminal-bar .dots span:nth-child(2){background:#ffbe2e}
.terminal-bar .dots span:nth-child(3){background:#27c941}
.terminal-body{padding:18px;min-height:220px;line-height:1.7}
.term-line{display:block;white-space:pre-wrap;word-break:break-word}
.term-prompt{color:var(--lime);margin-right:8px}
.term-out{color:var(--bone-2)}
.term-dim{color:var(--bone-dim)}
.term-caret{display:inline-block;width:8px;height:14px;background:var(--lime);vertical-align:-2px;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}

/* Marquee */
.marquee{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--ink);padding:28px 0;overflow:hidden}
.marquee-track{display:flex;gap:64px;width:max-content;animation:scroll 38s linear infinite;align-items:center}
.marquee-track:hover{animation-play-state:paused}
.marquee-item{font-family:var(--sans);font-size:36px;font-weight:500;letter-spacing:-.02em;color:var(--bone);white-space:nowrap;display:flex;align-items:center;gap:64px}
.marquee-item::after{content:"";width:10px;height:10px;background:var(--lime);border-radius:50%;display:inline-block}
.marquee-item.italic{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--bone-dim)}
@keyframes scroll{to{transform:translateX(-50%)}}

/* Section header */
.section-head{display:grid;grid-template-columns:auto 1fr;gap:80px;align-items:end;margin-bottom:80px}
.section-head h2{font-size:clamp(40px,5.5vw,86px);line-height:.95;letter-spacing:-.03em;font-weight:500;max-width:18ch}
.section-head h2 .serif{font-family:var(--serif);font-style:italic;font-weight:400}
.section-num{font-family:var(--mono);font-size:13px;color:var(--bone-dim);letter-spacing:.1em}

/* Services */
.services{border-top:1px solid var(--rule-soft)}
.service-row{display:grid;grid-template-columns:80px 1fr 1.3fr 1fr;gap:40px;padding:38px 0;border-bottom:1px solid var(--rule-soft);align-items:start;position:relative;transition:padding .4s ease}
.service-row:hover{padding-left:24px}
.service-row .num{font-family:var(--mono);font-size:13px;color:var(--bone-dim)}
.service-row .title{font-size:36px;letter-spacing:-.02em;font-weight:500;line-height:1.05;transition:color .3s}
.service-row:hover .title{color:var(--lime)}
.service-row .desc{color:var(--bone-2);font-size:15px;line-height:1.6;max-width:46ch}
.service-row .tags{display:flex;flex-wrap:wrap;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.service-row .tags span{padding:6px 10px;border:1px solid var(--rule);border-radius:999px;color:var(--bone-2)}
.service-row .arrow{position:absolute;right:0;top:42px;opacity:0;transform:translateX(-20px);transition:.35s cubic-bezier(.2,.7,.2,1);font-size:24px;color:var(--lime)}
.service-row:hover .arrow{opacity:1;transform:translateX(0)}

/* Process */
.process{background:var(--ink-2);position:relative}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule-soft);border:1px solid var(--rule-soft);margin-top:60px}
.process-step{background:var(--ink-2);padding:36px 28px 40px;min-height:280px;display:flex;flex-direction:column;justify-content:space-between;transition:background .3s}
.process-step:hover{background:var(--ink)}
.process-step .top{display:flex;justify-content:space-between;align-items:start}
.process-step .step-num{font-family:var(--mono);font-size:11px;color:var(--bone-dim);letter-spacing:.1em}
.process-step .dot{width:8px;height:8px;border-radius:50%;background:var(--rule);transition:background .3s}
.process-step:hover .dot{background:var(--lime);box-shadow:0 0 14px var(--lime)}
.process-step h3{font-size:26px;font-weight:500;letter-spacing:-.02em;line-height:1.1}
.process-step p{color:var(--bone-2);font-size:14px;line-height:1.55;margin-top:12px}

/* Stack */
.stack-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:50px}
.stack-cell{aspect-ratio:1.1/1;background:var(--ink-2);border:1px solid var(--rule-soft);border-radius:14px;display:flex;flex-direction:column;justify-content:space-between;padding:16px;transition:transform .35s cubic-bezier(.2,.7,.2,1),background .35s,border-color .35s;position:relative;overflow:hidden}
.stack-cell:hover{transform:translateY(-4px);background:var(--ink-3);border-color:var(--lime)}
.stack-cell .label{font-family:var(--mono);font-size:11px;color:var(--bone-dim);letter-spacing:.05em}
.stack-cell .name{font-size:20px;font-weight:500;letter-spacing:-.01em}
.stack-cell .glyph{font-family:var(--serif);font-style:italic;font-size:30px;color:var(--lime);align-self:flex-end;opacity:.85}

/* Work */
.work-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:24px;margin-top:60px}
.work-card{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--rule-soft);background:var(--ink-2);min-height:380px;display:flex;flex-direction:column;justify-content:flex-end;padding:32px;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.work-card:hover{transform:translateY(-6px)}
.work-card.wide{min-height:520px}
.work-card .ph{position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,oklch(0.24 0.014 60) 0 18px,oklch(0.22 0.013 60) 18px 36px);opacity:.85}
.work-card .ph.a{background-image:repeating-linear-gradient(135deg,oklch(0.27 0.10 248 / .35) 0 22px,oklch(0.22 0.013 60) 22px 44px),radial-gradient(circle at 70% 30%,oklch(0.88 0.17 248 / .25),transparent 60%);background-color:var(--ink-2)}
.work-card .ph.b{background-image:repeating-linear-gradient(0deg,oklch(0.26 0.013 60) 0 2px,transparent 2px 28px),repeating-linear-gradient(90deg,oklch(0.26 0.013 60) 0 2px,transparent 2px 28px);background-color:oklch(0.2 0.013 60)}
.work-card .ph.c{background:radial-gradient(circle at 30% 80%,oklch(0.5 0.08 200 / .4),transparent 60%),repeating-linear-gradient(60deg,oklch(0.24 0.014 60) 0 1px,transparent 1px 14px);background-color:var(--ink-2)}
.work-card .ph.d{background-image:linear-gradient(135deg,oklch(0.28 0.07 50 / .4),transparent 60%),repeating-linear-gradient(0deg,oklch(0.25 0.014 60) 0 1px,transparent 1px 22px)}
.work-card .ph.e{background:radial-gradient(circle at 80% 20%,oklch(0.5 0.1 290 / .4),transparent 65%),repeating-linear-gradient(120deg,oklch(0.24 0.014 60) 0 2px,transparent 2px 22px)}
.work-card .ph.f{background:linear-gradient(45deg,oklch(0.3 0.06 80 / .35),transparent 60%),repeating-linear-gradient(90deg,oklch(0.25 0.014 60) 0 1px,transparent 1px 16px)}
.work-card .meta{position:relative;z-index:2;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--bone-dim);display:flex;justify-content:space-between;margin-bottom:14px}
.work-card h3{position:relative;z-index:2;font-size:34px;font-weight:500;letter-spacing:-.02em;line-height:1.05;max-width:18ch}
.work-card .desc{position:relative;z-index:2;color:var(--bone-2);font-size:14px;line-height:1.55;max-width:42ch;margin-top:12px}
.work-card .ph-label{position:absolute;top:24px;left:24px;font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--bone-dim);z-index:2;text-transform:uppercase}

/* Stats */
.stats{border-top:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft);padding:80px 36px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.stat .num{font-size:clamp(56px,7vw,108px);font-weight:500;letter-spacing:-.04em;line-height:1;font-feature-settings:"ss01"}
.stat .num .serif{font-family:var(--serif);font-style:italic;font-weight:400}
.stat .num .accent{color:var(--lime)}
.stat .label{font-family:var(--mono);font-size:12px;color:var(--bone-dim);letter-spacing:.1em;text-transform:uppercase;margin-top:14px;border-top:1px solid var(--rule-soft);padding-top:12px}

/* Testimonial */
.quote{padding:140px 36px}
.quote blockquote{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(36px,5vw,72px);line-height:1.1;letter-spacing:-.02em;max-width:22ch;margin:0 auto;text-align:left;color:var(--bone)}
.quote .who{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--bone-dim);margin-top:40px;text-transform:uppercase;display:flex;gap:16px;align-items:center}
.quote .who::before{content:"";width:40px;height:1px;background:var(--bone-dim)}

/* Engagements */
.engagements{border-top:1px solid var(--rule-soft)}
.eng-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:60px}
.eng-card{background:var(--ink-2);border:1px solid var(--rule-soft);border-radius:18px;padding:32px;display:flex;flex-direction:column;gap:24px;min-height:440px;transition:transform .4s cubic-bezier(.2,.7,.2,1),border-color .3s,background .3s;position:relative;overflow:hidden}
.eng-card:hover{transform:translateY(-6px);border-color:var(--lime)}
.eng-card.featured{background:linear-gradient(180deg,oklch(0.23 0.10 248 / .25),var(--ink-2));border-color:var(--lime)}
.eng-card .tag{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--bone-dim);display:flex;justify-content:space-between;align-items:center}
.eng-card.featured .tag span{background:var(--lime);color:var(--ink);padding:4px 10px;border-radius:999px;font-weight:600;letter-spacing:.12em}
.eng-card h3{font-size:30px;font-weight:500;letter-spacing:-.02em;line-height:1.05}
.eng-card h3 .serif{font-family:var(--serif);font-style:italic;font-weight:400}
.eng-card .price{font-size:22px;letter-spacing:-.01em;color:var(--bone-2);font-feature-settings:"ss01"}
.eng-card .price strong{color:var(--bone);font-weight:500}
.eng-card ul{list-style:none;display:flex;flex-direction:column;gap:10px;color:var(--bone-2);font-size:14px;line-height:1.5;margin-top:auto}
.eng-card ul li{padding-left:22px;position:relative}
.eng-card ul li::before{content:"";position:absolute;left:0;top:8px;width:10px;height:1px;background:var(--lime)}

/* Careers */
.careers-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;margin-top:60px;align-items:start}
.careers-intro p{color:var(--bone-2);font-size:17px;line-height:1.6;max-width:42ch}
.careers-intro .perks{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:36px}
.careers-intro .perks div{padding:14px 16px;border:1px solid var(--rule-soft);border-radius:12px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--bone-2);display:flex;align-items:center;gap:10px}
.careers-intro .perks div::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--lime)}
.roles{display:flex;flex-direction:column;border-top:1px solid var(--rule-soft)}
.role{display:grid;grid-template-columns:1fr auto auto auto;gap:24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--rule-soft);transition:padding .35s ease,color .3s}
.role:hover{padding-left:14px}
.role .title{font-size:22px;font-weight:500;letter-spacing:-.01em;transition:color .3s}
.role:hover .title{color:var(--lime)}
.role .meta{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--bone-dim);text-transform:uppercase}
.role .apply{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--lime);opacity:0;transform:translateX(-12px);transition:.3s}
.role:hover .apply{opacity:1;transform:translateX(0)}

/* FAQ */
.faq-list{margin-top:40px;border-top:1px solid var(--rule-soft)}
.faq-item{border-bottom:1px solid var(--rule-soft);padding:22px 0;cursor:none}
.faq-q{display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:24px;font-weight:500;letter-spacing:-.01em;line-height:1.25}
.faq-q .plus{flex-shrink:0;width:28px;height:28px;border-radius:50%;border:1px solid var(--rule);display:grid;place-items:center;font-size:18px;color:var(--bone);transition:transform .3s,background .3s,color .3s,border-color .3s}
.faq-item.open .faq-q .plus{transform:rotate(45deg);background:var(--lime);color:var(--ink);border-color:var(--lime)}
.faq-item.open .faq-q{color:var(--lime)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.2,.7,.2,1)}
.faq-a-inner{color:var(--bone-2);font-size:15px;line-height:1.6;padding:14px 0 6px;max-width:62ch}

/* Contact */
.contact{padding:160px 36px 60px;background:var(--ink);position:relative;overflow:hidden}
.contact-orb{position:absolute;bottom:-300px;left:-200px;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,oklch(0.88 0.17 248 / .15),transparent 60%);filter:blur(60px);pointer-events:none}
.contact-inner{position:relative;z-index:2;max-width:1380px;margin:0 auto}
.contact h2{font-size:clamp(64px,11vw,200px);line-height:.88;letter-spacing:-.045em;font-weight:500}
.contact h2 .serif{font-family:var(--serif);font-style:italic;font-weight:400}
.contact h2 .accent{color:var(--lime)}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:80px;padding-top:40px;border-top:1px solid var(--rule-soft);align-items:start}
.contact-info{display:flex;flex-direction:column;gap:36px}
.contact-col .label{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--bone-dim);text-transform:uppercase;margin-bottom:14px}
.contact-col .val{font-size:22px;font-weight:500;letter-spacing:-.01em}
.contact-col .val a{display:inline-block;position:relative;transition:color .25s}
.contact-col .val a:hover{color:var(--lime)}

/* Form */
.form{display:flex;flex-direction:column;gap:22px}
.field{display:flex;flex-direction:column;gap:8px;position:relative}
.field label{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone-dim)}
.field input, .field textarea, .field select{background:transparent;border:none;border-bottom:1px solid var(--rule);color:var(--bone);font-family:var(--sans);font-size:18px;padding:10px 0;outline:none;transition:border-color .3s, color .3s;width:100%;font-weight:400;letter-spacing:-.01em;border-radius:0;cursor:none}
.field input::placeholder, .field textarea::placeholder{color:var(--bone-dim);opacity:.5}
.field input:focus, .field textarea:focus, .field select:focus{border-bottom-color:var(--lime)}
.field textarea{resize:none;min-height:90px;font-family:var(--sans)}
.field select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--bone-dim) 50%),linear-gradient(135deg,var(--bone-dim) 50%,transparent 50%);background-position:calc(100% - 14px) 18px,calc(100% - 8px) 18px;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:30px}
.field select option{background:var(--ink-2);color:var(--bone)}
.field .error{font-family:var(--mono);font-size:11px;color:#ff8b85;letter-spacing:.04em;min-height:14px;margin-top:2px;opacity:0;transition:opacity .25s}
.field.invalid input,.field.invalid textarea,.field.invalid select{border-bottom-color:#ff8b85}
.field.invalid .error{opacity:1}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.budget-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.chip{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:8px 14px;border:1px solid var(--rule);border-radius:999px;color:var(--bone-2);transition:.25s;cursor:none;background:transparent}
.chip:hover{border-color:var(--bone-2);color:var(--bone)}
.chip.active{background:var(--lime);color:var(--ink);border-color:var(--lime)}
.submit-row{display:flex;justify-content:space-between;align-items:center;margin-top:14px;gap:24px;flex-wrap:wrap}
.submit{display:inline-flex;align-items:center;gap:14px;background:var(--lime);color:var(--ink);font-family:var(--sans);font-size:17px;font-weight:600;letter-spacing:-.01em;padding:18px 28px;border-radius:999px;transition:transform .25s cubic-bezier(.2,.7,.2,1),background .25s;cursor:none;border:none}
.submit:hover{transform:translateY(-2px);background:oklch(0.92 0.17 248)}
.submit .arr{display:inline-block;transition:transform .25s}
.submit:hover .arr{transform:translate(4px,-4px)}
.form-note{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--bone-dim);text-transform:uppercase}
.form-success{background:linear-gradient(180deg,oklch(0.23 0.10 248 / .35),var(--ink-2));border:1px solid var(--lime);border-radius:18px;padding:40px;display:none}
.form-success.show{display:block;animation:fade .8s forwards}
.form-success h3{font-size:30px;font-weight:500;letter-spacing:-.02em;line-height:1.1;margin-bottom:14px}
.form-success h3 .serif{font-family:var(--serif);font-style:italic;font-weight:400}
.form-success p{color:var(--bone-2);font-size:15px;line-height:1.55}

/* CTA strip (for inter-page calls) */
.cta-strip{padding:120px 36px;border-top:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft);position:relative;overflow:hidden;background:var(--ink)}
.cta-strip .container{display:grid;grid-template-columns:1.4fr auto;gap:60px;align-items:center}
.cta-strip h3{font-size:clamp(40px,5vw,72px);line-height:.95;letter-spacing:-.03em;font-weight:500}
.cta-strip h3 .serif{font-family:var(--serif);font-style:italic;font-weight:400}
.cta-strip h3 .accent{color:var(--lime)}
.cta-strip .cta-btn{display:inline-flex;align-items:center;gap:14px;background:var(--lime);color:var(--ink);font-family:var(--sans);font-size:17px;font-weight:600;letter-spacing:-.01em;padding:20px 30px;border-radius:999px;transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.cta-strip .cta-btn:hover{transform:translateY(-2px)}
.cta-strip .cta-btn .arr{transition:transform .25s}
.cta-strip .cta-btn:hover .arr{transform:translate(4px,-4px)}

/* Footer */
footer{padding:60px 36px 36px;border-top:1px solid var(--rule-soft)}
footer .foot-top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;margin-bottom:60px}
footer .foot-top .col h4{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--bone-dim);margin-bottom:18px}
footer .foot-top .col a{display:block;font-size:15px;color:var(--bone-2);margin-bottom:10px;transition:color .2s}
footer .foot-top .col a:hover{color:var(--lime)}
footer .foot-top .brand-col p{font-size:14px;line-height:1.55;color:var(--bone-dim);max-width:28ch;margin-top:14px}
footer .foot-brand{display:flex;align-items:center;gap:12px;font-weight:600;font-size:18px;letter-spacing:-.01em}
footer .foot-brand .mark{width:32px;height:32px;display:inline-grid;place-items:center;flex-shrink:0}
footer .foot-brand .mark img{width:100%;height:100%;object-fit:contain;display:block}
footer .foot-brand .word .b{color:var(--lime)}
footer .foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;border-top:1px solid var(--rule-soft);font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--bone-dim);text-transform:uppercase}

/* Reveal on scroll */
.reveal-up{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal-up.in{opacity:1;transform:none}

/* Responsive — tablets and below */
@media (max-width: 1280px){
  nav.top ul{gap:24px}
  nav.top{padding:20px 28px}
  section{padding:120px 28px}
}
@media (max-width: 1100px){
  .hero-sub-row{grid-template-columns:1fr;gap:30px}
  .terminal{width:100%}
  .page-header .container{grid-template-columns:1fr;gap:30px}
  .section-head{grid-template-columns:1fr;gap:24px;margin-bottom:50px}
  .service-row{grid-template-columns:50px 1fr;gap:18px}
  .service-row .desc,.service-row .tags{grid-column:2}
  .service-row .arrow{display:none}
  .process-grid{grid-template-columns:repeat(2,1fr)}
  .stack-grid{grid-template-columns:repeat(3,1fr)}
  .work-grid{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:30px}
  .eng-grid{grid-template-columns:1fr}
  .careers-grid{grid-template-columns:1fr;gap:40px}
  .role{grid-template-columns:1fr auto;gap:8px 16px}
  .role .meta:nth-of-type(2){display:none}
  .contact-layout{grid-template-columns:1fr;gap:50px}
  .form-row{grid-template-columns:1fr}
  .cta-strip{padding:80px 28px}
  .cta-strip .container{grid-template-columns:1fr;gap:30px;text-align:left}
  footer .foot-top{grid-template-columns:1fr 1fr;gap:40px 24px}
  footer .foot-top .brand-col{grid-column:1/-1}
  nav.top ul{display:none}
  nav.top .cta{display:none}
  nav.top .hamburger{display:flex}
  .service-row .title{font-size:28px}
  .work-card h3{font-size:28px}
  .eng-card{min-height:auto;padding:28px}
  .marquee-item{font-size:28px;gap:42px}
  .marquee-track{gap:42px}
}
@media (max-width: 768px){
  section{padding:90px 22px}
  nav.top{padding:16px 20px}
  .hero{padding:100px 22px 50px;min-height:calc(100svh - 0px)}
  .hero h1{font-size:clamp(40px,11vw,72px);line-height:.95}
  .hero-sub{font-size:16px}
  .hero-meta{font-size:11px}
  .hero-foot{flex-direction:column;align-items:stretch;padding-top:40px;gap:30px}
  .scroll-cue{flex-direction:row;align-items:center;gap:12px;align-self:flex-start}
  .scroll-cue .line{width:40px;height:1px;background:linear-gradient(90deg,var(--bone-dim),transparent);animation:none}
  .terminal{width:100%;font-size:11px}
  .terminal-body{padding:14px;min-height:160px}
  .page-header{padding:120px 22px 50px}
  .page-header h1{font-size:clamp(40px,12vw,72px)}
  .page-header .lede{font-size:15px;margin-top:24px}
  .page-header .crumb{display:none}
  .section-head h2{font-size:clamp(34px,8vw,52px);max-width:none}
  .stack-grid{grid-template-columns:repeat(2,1fr)}
  .stats-grid{grid-template-columns:1fr 1fr;gap:24px}
  .stat .num{font-size:clamp(48px,12vw,72px)}
  .stat .label{font-size:11px}
  .faq-q{font-size:17px}
  .faq-q .plus{width:24px;height:24px;font-size:16px}
  .quote blockquote{font-size:clamp(28px,7vw,40px)}
  .quote .who{font-size:11px;margin-top:24px}
  .service-row{padding:28px 0}
  .service-row .title{font-size:24px}
  .service-row .num{font-size:11px}
  .service-row .desc{font-size:14px}
  .service-row .tags{margin-top:8px}
  .service-row .tags span{font-size:10px;padding:5px 8px}
  .work-card{padding:22px;min-height:300px}
  .work-card.wide{min-height:380px}
  .work-card h3{font-size:22px}
  .work-card .desc{font-size:13px}
  .work-card .meta{font-size:10px}
  .process-grid{grid-template-columns:1fr}
  .process-step{min-height:auto;padding:28px 22px}
  .process-step h3{font-size:22px}
  .eng-card h3{font-size:24px}
  .role .title{font-size:18px}
  .careers-intro .perks{grid-template-columns:1fr}
  .marquee{padding:20px 0}
  .marquee-item{font-size:22px;gap:32px}
  .marquee-track{gap:32px}
  .cta-strip{padding:70px 22px}
  .cta-strip h3{font-size:clamp(30px,7vw,44px)}
  .cta-strip .cta-btn{padding:16px 24px;font-size:15px;width:100%;justify-content:center}
  .field input,.field textarea,.field select{font-size:16px}
  .submit{width:100%;justify-content:center;font-size:16px;padding:16px 22px}
  .submit-row{flex-direction:column;align-items:stretch}
  .submit-row .form-note{text-align:center}
  footer{padding:40px 22px 30px}
  footer .foot-top{grid-template-columns:1fr;gap:30px;margin-bottom:40px}
  footer .foot-top .brand-col{grid-column:auto}
  footer .foot-bottom{flex-direction:column;gap:14px;text-align:center;font-size:10px}
  .mobile-menu ul a{font-size:28px;padding:12px 0}
}
@media (max-width: 420px){
  section{padding:80px 18px}
  nav.top{padding:14px 18px}
  .hero{padding:90px 18px 40px}
  .hero h1{font-size:36px}
  .page-header{padding:110px 18px 40px}
  .page-header h1{font-size:38px}
  .stack-grid{grid-template-columns:1fr 1fr;gap:10px}
  .stack-cell{padding:12px}
  .stack-cell .name{font-size:16px}
  .terminal{font-size:10px}
  .terminal-bar{padding:10px 12px;font-size:10px}
  .work-card{padding:18px}
  .work-card .ph-label{top:16px;left:16px}
  .contact h2{font-size:54px}
  footer{padding:32px 18px 24px}
}

/* Disable hover-lift transforms on touch where they'd clip content */
@media (pointer:coarse){
  .work-card:hover,.eng-card:hover,.stack-cell:hover,.lang-chip:hover,.terminal-card:hover{transform:none}
  .service-row:hover{padding-left:0}
  .service-row:hover .title{color:inherit}
  .role:hover{padding-left:0}
  .role:hover .title{color:inherit}
  .role .apply{opacity:.6;transform:none}
}
