﻿@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=DM+Sans:wght@400;500;600&display=swap');
:root{font-family:'DM Sans',Arial,sans-serif;color:#f0f0f8;background:#07080d;font-synthesis:none;--ink:#07080d;--panel:#11121b;--muted:#a2a3b5;--line:#292a35;--signal:#0079fc;--display:'Space Grotesk',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;-webkit-font-smoothing:antialiased}::selection{background:var(--signal);color:var(--ink)}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}svg{flex-shrink:0}a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--signal);outline-offset:6px}.container{width:min(1280px,calc(100% - 96px));margin-inline:auto}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:var(--signal);color:var(--ink);padding:15px}.skip-link:focus{top:10px}.nav{position:sticky;top:0;z-index:50;background:#07080df5;border-bottom:1px solid var(--line)}.nav-inner{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;width:204px;flex-shrink:0}.brand img{width:100%;height:auto;object-fit:contain}.nav-links{display:flex;align-items:center;gap:26px}.nav-links a{font-size:14px;color:#b1b1c3;padding-block:15px;transition:color .2s}.nav-links a:hover,.nav-links a[aria-current]{color:var(--signal)}.button{display:inline-flex;justify-content:center;align-items:center;gap:24px;padding:18px 27px;min-height:56px;background:var(--signal);border:1px solid transparent;color:#061428;border-radius:100px;font-size:16px;font-weight:600;transition:background .2s,transform .2s}.button:hover{background:#3394ff;transform:translateY(-3px)}.nav-cta{font-size:14px;min-height:44px;padding:12px 21px}.menu-button{display:none;background:transparent;color:white;border:1px solid #505162;padding:10px;border-radius:50%}.hero{position:relative;padding:28px 0 0;background-image:linear-gradient(#ffffff03 1px,transparent 1px),linear-gradient(90deg,#ffffff03 1px,transparent 1px);background-size:72px 72px}.hero-topline{display:flex;justify-content:space-between;color:var(--muted);font:12px monospace;letter-spacing:.09em;text-transform:uppercase}.hero-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:32px;padding:68px 0 62px;align-items:end}.eyebrow{font:12px monospace;color:var(--signal);letter-spacing:.09em;text-transform:uppercase;margin:0 0 32px}.hero h1{font-family:var(--display);font-size:clamp(58px,7.7vw,112px);font-weight:600;line-height:1.02;letter-spacing:-.065em;margin:0}.hero h1>.hero-outline{color:transparent;-webkit-text-stroke:1.5px #d9d9e7}.hero h1 .hero-period{color:var(--signal)}.hero-description{font-size:18px;line-height:1.7;max-width:580px;color:var(--muted);margin:32px 0}.hero-actions{display:flex;align-items:center;gap:28px}.text-link{display:inline-flex;align-items:center;gap:14px;font-size:14px;font-weight:500;padding-block:12px}.text-link:hover{color:var(--signal)}.hero-note{border-top:1px solid #4a4b57;padding-top:27px;margin-bottom:6px}.hero-note>svg{color:var(--signal);margin-bottom:44px}.note-label{display:block;font:12px monospace;color:var(--muted);line-height:1.6}.hero-note p{font-family:var(--display);font-size:22px;line-height:1.5;letter-spacing:-.025em}.hero-scroll{display:grid;place-items:center;width:58px;height:58px;border:1px solid #484953;border-radius:50%;font-size:25px;margin-top:28px}.hero-scroll:hover{background:var(--signal);color:var(--ink)}.hero-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;padding:30px 0;color:#bfbfce;font:12px monospace;text-transform:uppercase;letter-spacing:.04em}.hero-bottom span::before{content:'+';margin-right:16px;color:var(--signal)}.section{padding:110px 0;border-top:1px solid var(--line)}.split{display:grid;grid-template-columns:1fr 2.4fr;gap:50px}.section-label{font:12px monospace;letter-spacing:.11em;text-transform:uppercase;color:var(--signal);padding-top:7px}h2{font-family:var(--display);font-size:clamp(36px,4.5vw,64px);line-height:1.08;letter-spacing:-.05em;font-weight:500;margin:0}h2 span{color:var(--muted)}p{line-height:1.7}.about-copy{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:32px}.about-copy p,.section-description{font-size:16px;color:var(--muted);margin:0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:46px}.section-heading .section-label{margin-bottom:25px}.section-heading>p{color:var(--muted);font-size:16px;margin:0;max-width:330px}.services{background:#0b0c13}.service-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.service-row{background:var(--panel);border:1px solid var(--line);padding:32px;min-height:310px;display:flex;flex-direction:column;transition:border-color .25s,background .25s}.service-row:nth-child(1),.service-row:nth-child(4){grid-column:span 2}.service-row:hover{border-color:#2469ae;background:#161820}.service-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:42px}.row-number{font:12px monospace;color:var(--muted)}.service-top svg{color:#d0d1db}.service-row h3{font-family:var(--display);font-size:28px;letter-spacing:-.035em;font-weight:500;margin:0 0 14px}.service-row:nth-child(1) h3,.service-row:nth-child(4) h3{font-size:36px}.service-row p{font-size:16px;color:var(--muted);margin:0 0 30px;max-width:510px}.service-bottom{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-top:auto}.service-tags{display:flex;flex-wrap:wrap;gap:8px}.service-tags span{font:12px monospace;border:1px solid #393a44;border-radius:50px;padding:7px 10px;color:#c6c7d1}.row-arrow{color:var(--signal)}.projects .section-heading{margin-bottom:25px}.project-grid{margin-top:42px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.project-card{position:relative;border:1px solid var(--line);padding:32px;background:#111a25;min-height:350px;display:flex;flex-direction:column;overflow:hidden;transition:border-color .25s,transform .25s}.project-card:nth-child(2){background:#171827}.project-card:nth-child(3){background:#131f2c}.project-card:nth-child(4){background:#201a24}.project-card:hover{transform:translateY(-4px);border-color:#356ea8}.project-meta{display:flex;justify-content:space-between;align-items:center;color:#c3c4cf;font:12px monospace}.project-meta span:first-child{border:1px solid #ffffff30;padding:7px 12px;border-radius:30px}.project-meta span:last-child{font-family:var(--display);font-size:48px;color:#ffffff22;line-height:1}.project-category{font:12px monospace;color:var(--signal);letter-spacing:.07em;text-transform:uppercase;margin:48px 0 15px}.project-card h3{font-family:var(--display);font-size:34px;font-weight:500;letter-spacing:-.04em;margin:0 0 13px}.project-card p{font-size:16px;color:#bcbecd;margin:0 0 28px}.project-link{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff25;padding-top:20px;font-size:14px;margin-top:auto}.project-link:hover{color:var(--signal)}.technologies .section-description{max-width:520px;margin-top:24px}.tech-list{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.tech-list span{font-family:var(--display);font-size:19px;padding:15px 21px;border:1px solid var(--line);font-weight:500;letter-spacing:-.025em}.process{background:#0b0c13}.process .container{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:start}.process .section-heading{position:sticky;top:135px;display:block}.process .section-heading>p{margin-top:27px}.steps{border-left:1px solid #243c58;margin-left:14px}.steps article{position:relative;padding:0 0 52px 45px;min-height:195px}.steps article:last-child{padding-bottom:0}.step-number{position:absolute;left:-16px;top:0;display:grid;place-items:center;width:32px;height:32px;font:12px monospace;color:var(--signal);border:1px solid #326ca7;background:#0b0c13;border-radius:50%}.steps h3{font-family:var(--display);font-size:30px;font-weight:500;letter-spacing:-.03em;margin:0 0 17px}.steps p{font-size:16px;color:var(--muted);margin:0;max-width:460px}.contact{padding:100px 0;background:var(--signal);color:var(--ink)}.contact-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:65px;align-items:end}.contact .section-label{color:#061a35;margin-bottom:28px}.contact h2{font-size:clamp(42px,5.1vw,74px);letter-spacing:-.06em}.contact h2 span{color:#071b36}.contact p{color:#06172f;font-size:16px;margin:27px 0 32px}.contact .button{background:var(--ink);color:white}.contact .button:hover{background:#132640}.contact-details{display:flex;flex-direction:column;align-items:start;gap:18px;padding:28px 0 4px;border-top:1px solid #174b84}.contact-details>span{font:12px monospace;color:#061a35;text-transform:uppercase;letter-spacing:.07em}.contact-details a{font-size:clamp(14px,1.45vw,20px);overflow-wrap:anywhere;max-width:100%}.contact-details a:hover{text-decoration:underline}.contact-details .location{margin-top:26px;text-transform:none;letter-spacing:0;font:14px 'DM Sans',sans-serif}.contact a:focus-visible{outline-color:var(--ink)}footer{background:#07080d;padding:48px 0 0}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-bottom:42px}.footer-top p{color:var(--muted);font-size:14px;margin:0}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:25px 0;color:var(--muted);font:12px monospace}.entered{animation:enter .55s ease-out both}@keyframes enter{from{transform:translateY(16px)}to{transform:translateY(0)}}
@media(max-width:1100px){.container{width:calc(100% - 56px)}.nav-links{gap:20px}.nav-cta{display:none}.hero-layout{grid-template-columns:minmax(0,1fr) 180px}.hero h1{font-size:8.5vw}.hero-actions{gap:18px}.hero-actions .button{padding:17px 22px;gap:12px}.hero-bottom{flex-wrap:wrap;justify-content:start;gap:18px 32px}.service-row{padding:25px}.service-row h3{font-size:25px}.service-row:nth-child(1) h3,.service-row:nth-child(4) h3{font-size:32px}.service-bottom{align-items:start}.process .container{gap:45px}.contact-layout{grid-template-columns:1fr 1fr;gap:35px}}
@media(max-width:800px){.nav-inner{min-height:76px}.brand{width:180px}.menu-button{display:flex}.nav-links{display:none;position:absolute;top:100%;left:0;right:0;padding:18px 28px 24px;background:var(--ink);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0}.nav-links.open{display:flex}.nav-links a{font-size:16px}.hero-layout{grid-template-columns:1fr;padding:55px 0}.hero-note{display:none}.hero h1{font-size:clamp(55px,11vw,86px)}.hero-topline{gap:25px;line-height:1.5}.hero-topline span:last-child{max-width:190px;text-align:right}.hero-bottom{font-size:12px;gap:18px}.section{padding:72px 0}.split{grid-template-columns:1fr;gap:28px}.section-heading{align-items:start;flex-direction:column;gap:23px}.service-list{grid-template-columns:1fr 1fr}.service-row:nth-child(1),.service-row:nth-child(4){grid-column:span 1}.service-row:nth-child(1) h3,.service-row:nth-child(4) h3{font-size:28px}.service-row h3{font-size:28px}.project-card{padding:25px;min-height:360px}.project-card h3{font-size:28px}.project-category{margin-top:36px}.process .container{grid-template-columns:1fr;gap:25px}.process .section-heading{position:static}.steps article{min-height:170px}.contact-layout{grid-template-columns:1fr;gap:48px}.contact{padding:68px 0}.contact-details a{font-size:18px}.footer-top{flex-wrap:wrap}}
@media(max-width:480px){.container{width:calc(100% - 40px)}.hero-topline{font-size:12px}.hero-topline span:last-child{max-width:145px}.hero-layout{padding:42px 0}.eyebrow{font-size:12px;line-height:1.6;margin-bottom:25px}.hero h1{font-size:clamp(44px,11.2vw,56px);letter-spacing:-.06em}.hero-description{font-size:16px}.hero-actions{align-items:start;flex-direction:column;gap:13px}.hero-actions .button{font-size:14px}.hero-bottom{display:grid;grid-template-columns:1fr 1fr;font-size:12px;line-height:1.5;gap:18px 12px}.hero-bottom span::before{margin-right:8px}.about-copy,.project-grid,.service-list{grid-template-columns:1fr}.about-copy{gap:18px}.service-row{min-height:300px}.service-top{margin-bottom:30px}.project-card{min-height:340px}.section-heading{margin-bottom:30px}.tech-list{gap:10px}.tech-list span{font-size:16px;padding:12px 15px}.desktop-break{display:none}.contact h2{font-size:42px}.contact-details a{font-size:16px}.footer-top{align-items:start;flex-direction:column;gap:24px}.footer-bottom{flex-direction:column;gap:14px}.steps article{padding-left:32px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}@media(forced-colors:active){.hero h1>.hero-outline{color:CanvasText;-webkit-text-stroke:0}}

/* Nexus-inspired motion, shared by React and the standalone PHP site. */
.hero h1>.hero-line{display:block;color:inherit;-webkit-text-stroke:0}
.hero h1>.hero-outline{color:transparent;-webkit-text-stroke:1.5px #d9d9e7}
.motion-word{display:inline-block;transform-origin:center bottom}
.hero .hero-period{color:var(--signal);-webkit-text-stroke:0}
.reading-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--signal);transform-origin:left;z-index:100;pointer-events:none}
.motion-enabled .hero-copy{transform:translateY(var(--hero-y,0px)) scale(var(--hero-scale,1));opacity:var(--hero-opacity,1);transform-origin:left top}
.motion-enabled .hero-note>svg{animation:icon-float 5s ease-in-out infinite}
.motion-enabled .hero-scroll{animation:scroll-cue 2.4s ease-in-out infinite}
.motion-enabled .hero-scroll:hover,.motion-enabled .hero-scroll:focus-visible{animation-play-state:paused}
.motion-enabled .steps{position:relative}
.motion-enabled .steps::before{content:'';position:absolute;left:-2px;top:0;width:3px;height:var(--timeline-height,100%);background:var(--signal);transform:scaleY(var(--timeline-fill,0));transform-origin:top;pointer-events:none}
.step-number{transition:background .35s,color .35s,border-color .35s}
.step-reached .step-number{background:var(--signal);color:var(--ink);border-color:var(--signal)}
.service-top svg,.row-arrow,.project-link svg{transition:transform .35s ease}
.service-row:hover .service-top svg,.service-row:focus-visible .service-top svg{transform:translateY(-4px) rotate(-7deg)}
.service-row:hover .row-arrow,.project-link:hover svg{transform:translate(3px,-3px)}
.motion-cursor{display:none}
@keyframes icon-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-9px) rotate(5deg)}}
@keyframes scroll-cue{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@media(hover:hover) and (pointer:fine){
 .motion-enabled .button{transform:translate(var(--pointer-x,0px),var(--pointer-y,0px));transition:transform .2s ease-out,background .2s}
 .motion-enabled .project-card{transform:perspective(1000px) rotateX(var(--pointer-y,0deg)) rotateY(var(--pointer-x,0deg));transition:transform .3s ease-out,border-color .25s;transform-style:preserve-3d}
 .motion-cursor{display:block;position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;z-index:95;opacity:0;transition:opacity .2s}
 .motion-cursor.visible{opacity:1}
 .motion-cursor::after{content:'';position:absolute;left:-15px;top:-15px;width:30px;height:30px;border:1px solid var(--signal);border-radius:50%;transition:scale .2s,opacity .2s;opacity:.65}
 .motion-cursor.over-link::after{scale:1.65;opacity:1}
}
@media(prefers-reduced-motion:reduce){.reading-progress,.motion-cursor{display:none!important}.hero-copy,.button,.project-card{transform:none!important;opacity:1!important}.steps::before{display:none}}
@media(forced-colors:active){.hero h1>.hero-outline{color:CanvasText;-webkit-text-stroke:0}.motion-cursor{display:none}}
