@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600&family=Instrument+Serif:ital@0;1&display=swap');

:root { --ink:#0b0d10; --paper:#f7f7f5; --soft:#e8e9e8; --muted:#62676d; --line:#cdd0d1; --blue:#246bff; --bright:#e9efff; --display:'Instrument Serif', Georgia, serif; --sans:'DM Sans', Arial, sans-serif; --mono:'DM Mono', monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.5; }
a { color:inherit; text-decoration:none; }
.skip-link { position:absolute; left:12px; top:-50px; padding:8px 12px; z-index:9; background:var(--blue); color:white; }.skip-link:focus { top:12px; }
.site-header { width:min(1400px, 100%); height:88px; margin:auto; padding:0 5.25vw; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; align-items:center; height:36px; flex-shrink:0; color:var(--ink); text-decoration:none; }.brand-wordmark { display:block; font:700 clamp(24px,2.7vw,30px)/1.1 Arial,Helvetica,sans-serif; letter-spacing:-.035em; white-space:nowrap; }.brand-wordmark>span { color:var(--blue); }.site-footer .brand { color:#fff; }
.primary-nav { display:flex; align-items:center; gap:30px; font-size:13px; }.primary-nav>a:not(.nav-cta) { position:relative; }.primary-nav>a:not(.nav-cta)::after { content:''; position:absolute; width:0; height:1px; bottom:-4px; left:0; background:var(--blue); transition:width .2s; }.primary-nav>a:hover::after,.primary-nav>[aria-current=page]:not(.nav-cta)::after { width:100%; }.nav-cta { margin-left:4px; padding:11px 15px; background:var(--ink); color:white; }.nav-cta span { color:#91b0ff; }
.menu-button { display:none; border:0; background:transparent; padding:8px 2px; }.menu-button>span:not(.sr-only) { display:block; height:1px; width:25px; margin:5px 0; background:var(--ink); }.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.section-grid { max-width:1400px; margin:auto; padding-left:5.25vw; padding-right:5.25vw; display:grid; grid-template-columns:1fr 1fr; gap:7vw; }
.hero { min-height:625px; padding-top:82px; align-items:center; overflow:hidden; }.eyebrow { margin:0 0 16px; font:500 11px/1.2 var(--mono); letter-spacing:.04em; text-transform:uppercase; color:var(--muted); }.eyebrow span { display:inline-block; width:17px; height:2px; margin:0 8px 3px 0; background:var(--blue); }
h1,h2,h3,p { margin-top:0; } h1,h2 { letter-spacing:-.055em; font-weight:400; line-height:.91; }h1 { font-size:clamp(3.75rem, 7vw, 7rem); margin-bottom:28px; } h2 { font-size:clamp(2.5rem, 4.7vw, 5rem); margin-bottom:0; } h1 em,h2 em { font-family:var(--display); font-weight:400; }h3 { letter-spacing:-.035em; }
.hero-lede { max-width:450px; color:var(--muted); font-size:18px; line-height:1.55; }.hero-actions { margin-top:37px; display:flex; align-items:center; gap:27px; }.button { display:inline-flex; gap:26px; align-items:center; padding:15px 18px; border:1px solid transparent; font-size:14px; cursor:pointer; }.button-primary { background:var(--blue); color:white; }.button-primary:hover { background:#0c52e5; }.button span { font-size:20px; line-height:0; }.text-link { display:inline-flex; gap:10px; align-items:center; font-size:14px; border-bottom:1px solid var(--ink); padding-bottom:3px; }.text-link:hover { color:var(--blue); border-color:var(--blue); }
.hero-art { align-self:stretch; min-height:365px; position:relative; }.core { position:absolute; z-index:2; left:50%; top:50%; transform:translate(-50%,-50%); height:164px; width:164px; border-radius:50%; display:grid; place-items:center; color:white; background:var(--blue); box-shadow:0 0 0 16px #dce6ff, 0 0 0 55px #e9edfc; }.core-signal { display:flex; align-items:center; gap:8px; }.core-signal i { display:block; width:11px; height:11px; border:2px solid white; border-radius:50%; }.core-signal i:nth-child(2) { width:28px; height:2px; border:0; border-radius:0; background:white; }.orbit { position:absolute; border:1px solid #bac8e7; border-radius:50%; left:50%; top:50%; transform:translate(-50%,-50%); }.orbit-one { height:385px; width:385px; }.orbit-two { height:510px; width:510px; border-style:dashed; opacity:.7; }.signal-card { position:absolute; z-index:3; width:112px; background:#fff; padding:13px; box-shadow:0 12px 30px #1d2c5914; }.signal-card i { display:block; height:5px; margin:7px 0; background:#dfe7fb; }.signal-card i:nth-child(2) { width:70%; background:var(--blue); }.signal-card i:nth-child(3) { width:85%; }.card-one { left:0; top:53px; transform:rotate(-7deg); }.card-two { right:0; bottom:52px; transform:rotate(6deg); }.art-caption { position:absolute; right:0; bottom:12px; font:11px var(--mono); text-transform:uppercase; color:var(--muted); }
.intro-band { max-width:1400px; margin:auto; padding:74px 5.25vw 82px; background:var(--ink); color:white; }.intro-band .eyebrow { color:#b1b7c2; }.statement { display:grid; grid-template-columns:1.3fr .7fr; gap:6vw; align-items:end; }.statement h2 { font-size:clamp(3rem, 5.2vw, 5.5rem); }.statement p { max-width:410px; color:#c5c9cf; }
.services-preview,.process-section,.principles,.demonstrations,.work-note { max-width:1400px; margin:auto; padding:82px 5.25vw; }.section-heading { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:40px; }.service-list { border-top:1px solid var(--ink); }.service-row { min-height:78px; display:grid; grid-template-columns:70px 1.1fr 1fr 30px; align-items:center; border-bottom:1px solid var(--line); transition:padding .2s, background .2s; }.service-row:hover { padding-left:15px; background:#eef3ff; }.service-no,.process-list>li>span,.principle-grid span { font:11px var(--mono); color:var(--muted); }.service-title { font-size:clamp(1.3rem,2.2vw,2rem); letter-spacing:-.04em; }.service-summary { font-size:14px; color:var(--muted); }.service-arrow { color:var(--blue); font-size:22px; }
.process-section { background:#e8e9e8; max-width:none; grid-template-columns:.8fr 1.2fr; padding-top:80px; padding-bottom:80px; }.process-list { list-style:none; padding:0; margin:0; }.process-list li { display:grid; grid-template-columns:60px 1fr; padding:20px 0; border-top:1px solid #adb2b5; }.process-list li:last-child { border-bottom:1px solid #adb2b5; }.process-list h3 { font-size:23px; margin:0 0 4px; }.process-list p { color:var(--muted); margin:0; max-width:330px; }
.cta-panel { min-height:365px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:var(--blue); color:white; padding:64px 24px; }.cta-panel .eyebrow { color:#d8e4ff; }.cta-panel h2 { font-size:clamp(3rem,5.1vw,5.5rem); margin-bottom:29px; }.cta-panel .button-primary { background:white; color:var(--ink); }.cta-panel .button-primary:hover { background:var(--ink); color:white; }
.site-footer { max-width:1400px; margin:auto; padding:35px 5.25vw 24px; background:var(--ink); color:#fff; }.footer-top { display:flex; justify-content:space-between; align-items:center; padding-bottom:35px; }.footer-top p { font:12px var(--mono); margin:0; color:#aeb4bd; text-transform:uppercase; }.footer-top i { font-style:normal; color:var(--blue); margin:0 6px; }.footer-bottom { display:flex; gap:22px; color:#aeb4bd; font-size:12px; }.footer-bottom a:hover { color:white; }
.page-hero { max-width:1400px; margin:auto; padding:82px 5.25vw 76px; }.page-hero>p:last-child { max-width:590px; margin-top:24px; font-size:18px; color:var(--muted); }.service-detail-list { max-width:1400px; margin:auto; padding:0 5.25vw 82px; }.service-detail { display:grid; grid-template-columns:80px 1fr 1fr; gap:35px; padding:32px 0 38px; border-top:1px solid var(--ink); }.service-detail:last-child { border-bottom:1px solid var(--ink); }.service-detail .eyebrow { margin-bottom:13px; }.service-detail h2 { font-size:clamp(1.9rem,3.3vw,3.15rem); line-height:.96; }.service-detail>div:last-child { color:var(--muted); }.service-detail ul { margin:18px 0 0; padding:0; list-style:none; color:var(--ink); font-size:14px; }.service-detail li { padding:6px 0; border-bottom:1px solid var(--line); }.service-detail li::before { content:'↗'; color:var(--blue); padding-right:9px; }
.demonstrations { display:grid; grid-template-columns:1fr 1fr 1fr; gap:18px; padding-top:0; }.demo-card { min-height:400px; display:flex; flex-direction:column; padding:26px; }.demo-card .eyebrow { color:inherit; opacity:.7; }.demo-card h2 { font-size:clamp(2rem,3vw,3.25rem); line-height:.95; margin:13px 0 15px; }.demo-number { font:11px var(--mono); }.demo-card>p:not(.eyebrow) { font-size:14px; max-width:330px; }.demo-blue { background:var(--blue); color:white; }.demo-dark { background:var(--ink); color:white; }.demo-light { background:#dfe4f5; }.demo-light .text-link { margin-top:auto; align-self:flex-start; }.demo-lines { margin-top:auto; display:grid; gap:9px; }.demo-lines i { height:1px; background:white; opacity:.8; }.demo-lines i:nth-child(2) { width:75%; }.demo-lines i:nth-child(3) { width:48%; }.mini-chart { height:100px; margin-top:auto; display:flex; align-items:end; gap:10px; }.mini-chart span { flex:1; background:#a4bbff; }.mini-chart span:nth-child(1) { height:27%; }.mini-chart span:nth-child(2) { height:45%; }.mini-chart span:nth-child(3) { height:35%; }.mini-chart span:nth-child(4) { height:72%; }.mini-chart span:nth-child(5) { height:100%; background:var(--blue); }.work-note { display:grid; grid-template-columns:.7fr 1.3fr; gap:55px; border-top:1px solid var(--line); }.work-note h2 { font-size:clamp(2.2rem,4vw,4rem); }.work-note p:last-child { max-width:550px; margin-top:19px; color:var(--muted); }
.about-story { padding-top:74px; padding-bottom:80px; }.about-story>div:last-child { padding-top:5px; font-size:18px; color:var(--muted); }.about-story p { max-width:510px; }.principles { background:#e8e9e8; max-width:none; }.principle-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:38px; }.principle-grid article { padding:20px 0; border-top:1px solid #aeb3b5; }.principle-grid h3 { font-size:25px; margin:27px 0 9px; }.principle-grid p { color:var(--muted); max-width:290px; }
.contact-layout { max-width:1400px; min-height:calc(100vh - 88px); margin:auto; padding:80px 5.25vw; display:grid; grid-template-columns:1fr 1fr; gap:7vw; }.contact-layout h1 { font-size:clamp(3.5rem,6vw,6rem); }.contact-layout>div>p:not(.eyebrow) { max-width:410px; font-size:18px; color:var(--muted); }.contact-note { margin-top:30px; max-width:410px; padding:17px; border-left:2px solid var(--blue); background:#e8edfc; font-size:13px; }.contact-note p { margin:4px 0 0; color:var(--muted); }.contact-form { background:white; padding:28px; align-self:start; box-shadow:0 8px 40px #0b0d100a; }.contact-form label { display:block; margin-bottom:16px; font-size:13px; }.contact-form input,.contact-form textarea { display:block; width:100%; margin-top:8px; border:1px solid var(--line); border-radius:0; padding:12px; font:16px var(--sans); color:var(--ink); background:#fff; }.contact-form input:focus,.contact-form textarea:focus { outline:2px solid var(--blue); outline-offset:1px; }.contact-form .honeypot { position:absolute; left:-100000px; width:1px; height:1px; overflow:hidden; }.turnstile-slot { min-height:0; margin:0 0 16px; }.contact-form .button:disabled { cursor:not-allowed; background:#a7b5d7; color:#f7f7f5; }.optional { color:var(--muted); }.form-status { min-height:22px; margin:14px 0 0; font-size:13px; color:var(--muted); }
.contact-success { max-width:1400px; min-height:calc(100vh - 260px); margin:auto; padding:90px 5.25vw; display:grid; align-items:center; }.contact-success>div { max-width:760px; }.contact-success h1 { font-size:clamp(3.5rem,6vw,6rem); }.contact-success>div>p:not(.eyebrow) { max-width:590px; margin-bottom:28px; color:var(--muted); font-size:20px; }.contact-success .button { margin-top:3px; }.contact-success:focus { outline:none; }
.privacy-page { max-width:900px; margin:auto; padding:80px 5.25vw 90px; }.privacy-page h1 { font-size:clamp(3.3rem,5.5vw,5.7rem); }.last-updated { font:12px var(--mono); color:var(--muted); margin-bottom:42px; }.privacy-page section { padding:20px 0; border-top:1px solid var(--line); }.privacy-page h2 { font:500 25px/1.1 var(--sans); letter-spacing:-.04em; }.privacy-page section p { color:var(--muted); max-width:690px; }
@media (max-width:760px) { .site-header { height:72px; padding:0 6vw; position:relative; }.menu-button { display:block; }.primary-nav { display:none; position:absolute; z-index:5; right:0; top:71px; left:0; padding:20px 6vw 25px; background:var(--paper); border-bottom:1px solid var(--line); flex-direction:column; align-items:flex-start; gap:21px; }.primary-nav.is-open { display:flex; }.nav-cta { margin-left:0; }.section-grid,.statement,.contact-layout { grid-template-columns:1fr; }.hero { min-height:auto; padding-top:58px; padding-bottom:60px; gap:18px; }.hero-art { min-height:300px; }.orbit-one { width:280px; height:280px; }.orbit-two { width:360px; height:360px; }.core { width:125px; height:125px; }.core span { font-size:28px; }.card-one { top:24px; }.card-two { bottom:28px; }.intro-band,.services-preview,.process-section,.principles,.demonstrations,.work-note { padding:58px 6vw; }.statement { gap:22px; }.section-heading { margin-bottom:28px; }.desktop-link { display:none; }.service-row { min-height:94px; grid-template-columns:38px 1fr 22px; gap:8px; }.service-row .service-summary { display:none; }.service-arrow { grid-column:3; grid-row:1; }.process-section { gap:36px; }.footer-top { align-items:flex-start; flex-direction:column; gap:16px; }.footer-bottom { flex-wrap:wrap; row-gap:8px; }.page-hero { padding:58px 6vw 54px; }.service-detail-list { padding:0 6vw 58px; }.service-detail { grid-template-columns:36px 1fr; gap:18px; }.service-detail>div:last-child { grid-column:2; }.demonstrations { grid-template-columns:1fr; gap:12px; padding-top:0; }.demo-card { min-height:340px; }.work-note { grid-template-columns:1fr; gap:20px; }.about-story { padding-top:58px; padding-bottom:60px; }.principle-grid { grid-template-columns:1fr; margin-top:24px; }.principle-grid h3 { margin-top:20px; }.contact-layout { min-height:auto; padding:58px 6vw; gap:36px; }.contact-success { min-height:calc(100vh - 240px); padding:64px 6vw; }.contact-success>div>p:not(.eyebrow) { font-size:18px; }.contact-form { padding:20px; }.privacy-page { padding:58px 6vw; } }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }
.field-hint { display:block; margin-top:7px; font-size:13px; color:var(--muted); }.field-hint[data-state="valid"] { color:#146c43; }.field-hint[data-state="invalid"] { color:#a82727; }.contact-form input.is-valid { border-color:#146c43; background:#f1fbf5; }.contact-form input.is-valid:focus { outline-color:#146c43; }.contact-form input[aria-invalid="true"] { border-color:#a82727; }
@media (min-width:761px) and (max-width:1000px) { .primary-nav { gap:14px; font-size:12px; }.nav-cta { padding:11px 12px; } }

@media (max-width:760px) { .about-hero { padding-bottom:24px; }.about-hero>p:last-child { margin-bottom:0; }.about-story { padding-top:24px; gap:24px; }.page-hero h1 { font-size:clamp(2.75rem,12vw,3.75rem); line-height:1.02; }.about-story h2 { line-height:1.04; }.hero-actions { flex-wrap:wrap; gap:16px; } }
