:root{--cols:12;--gutter:24px;--margin:56px;--lh:24px;--maxw:1200px;--accent:#002fa7;--accent-dark:#00237a;--accent-soft:#e6ecff;--ink:#111;--paper:#fff;--muted:#666;--light:#f0f0f0;--f-display:"Space Grotesk", Arial, sans-serif;--f-body:"Inter", "Helvetica Neue", Arial, sans-serif;--f-mono:"Space Mono", "Courier New", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--f-body);background:var(--paper);color:var(--ink);line-height:var(--lh);-webkit-font-smoothing:antialiased}a{color:inherit}img{max-width:100%;height:auto;display:block}.wrap{max-width:var(--maxw);padding:0 var(--margin);grid-template-columns:repeat(var(--cols), 1fr);column-gap:var(--gutter);margin:0 auto;display:grid;position:relative}.band{grid-column:1/-1;grid-template-columns:subgrid;column-gap:var(--gutter);align-items:start;display:grid}@supports not (grid-template-columns:subgrid){.band{grid-template-columns:repeat(12,1fr)}}section{border-bottom:1px solid var(--ink)}.kicker{font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:11px;line-height:16px}.kicker--accent{color:var(--accent)}.h-display{font-family:var(--f-display);letter-spacing:-.03em;text-transform:uppercase;font-size:clamp(52px,9vw,108px);font-weight:700;line-height:1}.h1{font-family:var(--f-display);letter-spacing:-.02em;font-size:clamp(32px,4vw,48px);font-weight:700;line-height:1.1}.h2{font-family:var(--f-display);letter-spacing:-.01em;font-size:22px;font-weight:700;line-height:24px}.numeral{font-family:var(--f-display);letter-spacing:-.03em;color:var(--accent);font-size:72px;font-weight:700;line-height:72px}.small-mono{font-family:var(--f-mono);color:var(--muted);font-size:12px;line-height:16px}.btn{background:var(--accent);color:#fff;font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border:none;padding:16px 32px;font-size:12px;font-weight:700;text-decoration:none;transition:background .2s;display:inline-block}.btn:hover{background:var(--ink)}.btn--ghost{color:var(--ink);border:1px solid var(--ink);background:0 0}.btn--ghost:hover{background:var(--ink);color:#fff}.site-header{border-bottom:1px solid var(--ink);background:var(--paper);z-index:100;padding:16px 0;position:sticky;top:0}.site-header .band{align-items:center}.hdr-name{font-family:var(--f-display);letter-spacing:-.01em;grid-column:1/4;align-items:center;gap:7px;font-size:18px;font-weight:700;text-decoration:none;display:flex}.hdr-name .dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block}.hdr-nav{flex-wrap:wrap;grid-column:4/13;justify-content:flex-end;align-items:center;gap:24px;display:flex}.hdr-nav a{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);font-size:11px;text-decoration:none}.hdr-nav a:hover{color:var(--accent)}.hdr-nav a.nav-cta{background:var(--accent);color:#fff;letter-spacing:.1em;padding:9px 16px}.hdr-nav a.nav-cta:hover{background:var(--ink);color:#fff}.site-footer{border-top:1px solid var(--ink);padding:24px 0}.footer-left{grid-column:1/7}.footer-right{text-align:right;grid-column:7/13}.footer-right a{color:var(--muted);text-decoration:none}.footer-right a:hover{color:var(--accent)}.hero{padding-top:96px;padding-bottom:96px}.hero-tag{grid-column:1/5}.hero-text{grid-column:7/13;align-self:end}.hero-text p{color:#444;font-size:17px;line-height:26px}.hero-name{grid-column:1/-1}.hero-name .line1{color:var(--ink)}.hero-name .line2{color:var(--accent)}.hero-uvp{grid-column:1/9;padding-top:24px}.hero-uvp p{font-family:var(--f-display);letter-spacing:-.01em;font-size:clamp(20px,2.4vw,30px);font-weight:500;line-height:1.3}.hero-cta-wrap{flex-wrap:wrap;grid-column:1/9;gap:16px;padding-top:40px;display:flex}.hero-avail{text-align:right;grid-column:10/13;align-self:center;padding-top:40px}.stats{padding:64px 0}.stat{flex-direction:column;gap:8px;display:flex}.stat-n1{grid-column:1/4}.stat-n2{grid-column:4/7}.stat-n3{grid-column:7/10}.stat-n4{grid-column:10/13}.stat-label{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:8px;font-size:11px}.sec-head{grid-column:1/6;margin-bottom:56px}.sec-head .h1{margin-top:16px}.services{padding:88px 0}.svc-grid{grid-column:1/-1}.svc-items{grid-template-columns:repeat(4,1fr);display:grid}.svc-item{border-top:2px solid var(--accent);border-right:1px solid #e0e0e0;padding:32px 24px 32px 0}.svc-item:last-child{border-right:none}.svc-num{font-family:var(--f-mono);color:var(--accent);letter-spacing:.1em;margin-bottom:24px;font-size:11px}.svc-item h3{font-family:var(--f-display);margin-bottom:16px;font-size:18px;font-weight:700;line-height:24px}.svc-item p{color:#555;font-size:14px;line-height:24px}.svc-formation{background:var(--accent-soft);border-top:2px solid var(--accent);grid-template-columns:auto 1fr auto;align-items:center;gap:0 32px;margin-top:1px;padding:32px;display:grid}.svc-formation .svc-num{color:var(--accent);margin-bottom:0}.svc-formation h3{font-family:var(--f-display);margin-bottom:6px;font-size:20px;font-weight:700}.svc-formation p{color:#333;font-size:14px;line-height:22px}.svc-formation-body{grid-column:2/3}.svc-formation-tags{flex-wrap:wrap;gap:8px;display:flex}.svc-formation-tags span{font-family:var(--f-mono);letter-spacing:.08em;background:var(--accent);color:#fff;padding:4px 12px;font-size:11px}.stack-section{background:var(--ink);color:var(--paper);border-bottom:none;padding:80px 0}.stack-label{grid-column:1/4}.stack-label .kicker{color:#8aa0e0}.stack-label .h2{color:var(--paper);margin-top:16px}.stack-tags{grid-column:4/13;padding-top:8px}.tag-group{margin-bottom:24px}.tag-group-name{font-family:var(--f-mono);letter-spacing:.15em;text-transform:uppercase;color:#888;margin-bottom:10px;font-size:10px}.tags{flex-wrap:wrap;gap:8px;display:flex}.tag{font-family:var(--f-mono);letter-spacing:.06em;color:#ccc;border:1px solid #333;padding:8px 16px;font-size:12px}.tag.hi{background:var(--accent);border-color:var(--accent);color:#fff}.tag.med{color:#aaa;border-color:#555}.stack-advanced{display:none}.stack-advanced.open{display:block}.stack-toggle{color:#888;font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #555;margin-top:16px;padding:8px 16px;font-size:11px;transition:border-color .2s,color .2s}.stack-toggle:hover{border-color:var(--accent);color:var(--accent)}.projects{padding:88px 0}.proj-header{grid-column:1/-1;margin-bottom:48px}.proj-header .h1{margin-top:16px}.proj-list{grid-column:1/-1}.proj-item{gap:0 var(--gutter);border-top:1px solid #ddd;grid-template-columns:64px 2fr 3fr;align-items:start;padding:40px 0;display:grid}.proj-item:hover .proj-n{color:var(--accent)}.proj-n{font-family:var(--f-display);color:#ddd;font-size:40px;font-weight:700;line-height:40px;transition:color .2s}.proj-client-name{text-transform:uppercase;letter-spacing:.06em;font-size:13px;font-weight:700}.proj-year{font-family:var(--f-mono);color:var(--muted);margin-top:4px;font-size:11px}.proj-tags-top{margin-top:16px}.proj-body h3{font-family:var(--f-display);margin-bottom:20px;font-size:22px;font-weight:700;line-height:26px}.psr{gap:14px;display:grid}.psr-row{grid-template-columns:88px 1fr;align-items:baseline;gap:16px;display:grid}.psr-k{font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);padding-top:2px;font-size:10px}.psr-v{color:#444;font-size:14px;line-height:22px}.psr-v.result{color:var(--ink);font-weight:700}.proj-tag{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;background:var(--light);margin:3px 3px 3px 0;padding:4px 10px;font-size:10px;display:inline-block}.approach{background:#f8f8f8;padding:88px 0}.appr-header{grid-column:1/5}.appr-header .h1{margin-top:16px}.appr-items{grid-column:5/13}.appr-item{border-top:1px solid #ddd;padding:32px 0}.appr-item:first-child{border-top:none;padding-top:0}.appr-item h3{font-family:var(--f-display);margin-bottom:12px;font-size:18px;font-weight:700;line-height:24px}.appr-item p{color:#555;font-size:15px;line-height:24px}.offer{padding:88px 0}.offer-grid{gap:var(--gutter);grid-column:1/-1;grid-template-columns:repeat(4,1fr);margin-top:8px;display:grid}.offer-card{border:1px solid var(--ink);flex-direction:column;padding:36px 28px;display:flex}.offer-card.featured{background:var(--ink);color:var(--paper)}.offer-num{font-family:var(--f-mono);color:var(--accent);letter-spacing:.1em;margin-bottom:20px;font-size:11px}.offer-card.featured .offer-num{color:#8aa0e0}.offer-card h3{font-family:var(--f-display);margin-bottom:12px;font-size:20px;font-weight:700}.offer-desc{color:#555;margin-bottom:20px;font-size:14px;line-height:22px}.offer-card.featured .offer-desc{color:#cfd8f5}.offer-feat{margin-bottom:28px;list-style:none}.offer-feat li{color:#555;padding-left:18px;font-size:13px;line-height:28px;position:relative}.offer-feat li:before{content:"→";color:var(--accent);position:absolute;left:0}.offer-card.featured .offer-feat li{color:#cfd8f5}.offer-card.featured .offer-feat li:before{color:#8aa0e0}.offer-price{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:auto;margin-bottom:20px;font-size:12px}.offer-card.featured .offer-price{color:#8aa0e0}.offer-card .btn{text-align:center}.offer-card.featured .btn{background:var(--accent)}.offer-card.featured .btn:hover{color:var(--ink);background:#fff}.about{padding:88px 0}.about-head{grid-column:1/5}.about-head .h1{margin-top:16px}.about-body{grid-column:6/13}.about-body p{color:#444;margin-bottom:20px;font-size:16px;line-height:26px}.about-body p strong{color:var(--ink)}.about-sign{font-family:var(--f-mono);color:var(--muted);margin-top:4px;font-size:12px}.about-links{gap:16px;margin-top:24px;display:flex}.about-links a{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--accent);padding-bottom:2px;font-size:11px;text-decoration:none}.about-links a:hover{color:var(--ink);border-color:var(--ink)}.faq{background:#f8f8f8;padding:88px 0}.faq-head{grid-column:1/5}.faq-head .h1{margin-top:16px}.faq-list{grid-column:6/13}.faq-item{border-top:1px solid #ddd}.faq-item:last-child{border-bottom:1px solid #ddd}.faq-q{text-align:left;cursor:pointer;width:100%;font-family:var(--f-display);color:var(--ink);background:0 0;border:none;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;font-size:17px;font-weight:500;display:flex}.faq-q:hover{color:var(--accent)}.faq-icon{font-family:var(--f-mono);color:var(--accent);flex-shrink:0;font-size:22px;line-height:1;transition:transform .2s}.faq-item.open .faq-icon{transform:rotate(45deg)}.faq-a{max-height:0;transition:max-height .3s;overflow:hidden}.faq-a p{color:#555;padding-bottom:22px;font-size:15px;line-height:24px}.contact{padding:96px 0 112px}.contact-big{grid-column:1/7}.contact-big .kicker{margin-bottom:24px}.contact-sub{color:#444;max-width:420px;margin-top:24px;font-size:16px;line-height:26px}.contact-form{flex-direction:column;grid-column:8/13;gap:14px;padding-top:8px;display:flex}.contact-form input,.contact-form textarea{font-family:var(--f-body);color:var(--ink);background:#fff;border:1px solid #ccc;outline:none;width:100%;padding:14px 16px;font-size:15px}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent)}.contact-form textarea{resize:vertical;min-height:120px}.contact-form .btn{margin-top:4px}.form-consent{color:var(--muted);font-size:11px;line-height:16px}.form-consent a{color:var(--accent)}.form-status{color:var(--accent);font-size:13px;display:none}.form-status.show{display:block}.contact-alt{border-top:1px solid #ddd;grid-column:8/13;margin-top:20px;padding-top:20px}.contact-alt .kicker{margin-bottom:10px}.contact-alt a{color:var(--ink);font-size:14px;font-weight:700;text-decoration:none}.contact-alt a:hover{color:var(--accent)}.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(18px)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}.page-wrap{max-width:760px;margin:0 auto;padding:64px 32px 96px}.page-back{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:48px;font-size:11px;text-decoration:none;display:inline-block}.page-kicker{font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:16px;font-size:11px}.page-title{font-family:var(--f-display);letter-spacing:-.02em;margin-bottom:32px;font-size:clamp(28px,4vw,44px);font-weight:700;line-height:1.1}.page-meta{font-family:var(--f-mono);color:var(--muted);border-bottom:1px solid #ddd;flex-wrap:wrap;gap:16px;margin-bottom:48px;padding-bottom:24px;font-size:11px;display:flex}.page-tags{flex-wrap:wrap;gap:8px;margin-bottom:40px;display:flex}.page-tag{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;background:var(--light);padding:4px 10px;font-size:10px}.prose{color:#333;font-size:16px;line-height:1.75}.prose h2{font-family:var(--f-display);letter-spacing:-.01em;margin:40px 0 16px;font-size:24px;font-weight:700}.prose h3{font-family:var(--f-display);margin:32px 0 12px;font-size:20px;font-weight:700}.prose p{margin-bottom:20px}.prose ul,.prose ol{margin-bottom:20px;padding-left:24px}.prose li{margin-bottom:8px}.prose strong{color:var(--ink)}.prose a{color:var(--accent)}.prose blockquote{border-left:3px solid var(--accent);color:#555;margin:24px 0;padding-left:20px;font-style:italic}.prose code{font-family:var(--f-mono);background:#f5f5f5;padding:2px 6px;font-size:13px}.listing-head{max-width:var(--maxw);padding:64px var(--margin) 48px;border-bottom:1px solid var(--ink);margin:0 auto}.listing-head .kicker{margin-bottom:16px}.listing-grid{max-width:var(--maxw);padding:48px var(--margin) 96px;gap:40px var(--gutter);grid-template-columns:repeat(3,1fr);margin:0 auto;display:grid}.card{color:var(--ink);border:1px solid #ddd;flex-direction:column;padding:28px;text-decoration:none;transition:border-color .2s;display:flex}.card:hover{border-color:var(--accent)}.card-date{font-family:var(--f-mono);color:var(--muted);margin-bottom:16px;font-size:11px}.card-title{font-family:var(--f-display);letter-spacing:-.01em;margin-bottom:12px;font-size:18px;font-weight:700;line-height:1.3}.card-desc{color:#555;flex-grow:1;font-size:14px;line-height:22px}.card-cta{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-top:20px;font-size:11px}@media (width<=900px){:root{--cols:4;--gutter:16px;--margin:24px}.hdr-name{grid-column:1/3}.hdr-nav{grid-column:1/5;justify-content:flex-start;gap:14px;padding-top:12px}.hero-tag,.hero-text,.hero-uvp,.hero-cta-wrap,.hero-avail{grid-column:1/-1}.hero-text{padding-top:16px}.hero-avail{text-align:left;padding-top:8px}.stat-n1,.stat-n2{grid-column:1/3}.stat-n3,.stat-n4{grid-column:3/5;margin-top:24px}.sec-head,.svc-grid{grid-column:1/-1}.svc-items{grid-template-columns:1fr 1fr}.svc-item{border-bottom:1px solid #e0e0e0;border-right:none;padding:24px 0}.svc-formation{grid-template-columns:1fr;gap:16px}.stack-label,.stack-tags{grid-column:1/-1}.stack-tags{padding-top:24px}.proj-item{grid-template-columns:1fr;gap:16px}.appr-header,.appr-items{grid-column:1/-1}.offer-grid{grid-template-columns:1fr 1fr}.about-head,.about-body{grid-column:1/-1}.about-body{padding-top:24px}.faq-head,.faq-list{grid-column:1/-1}.faq-list{padding-top:24px}.contact-big,.contact-form,.contact-alt{grid-column:1/-1}.contact-form{padding-top:32px}.footer-left,.footer-right{text-align:left;grid-column:1/-1}.footer-right{margin-top:8px}.listing-grid{grid-template-columns:1fr 1fr}}@media (width<=560px){.svc-items,.offer-grid,.listing-grid{grid-template-columns:1fr}}
