:root{--bg:#091226;--bg-elevated:#111f38;--bg-soft:#162845;--surface:#14213a;--surface-strong:#0f1a2e;--text:#f5fbff;--text-muted:#b8c9dc;--cyan:#4dd5ff;--teal:#39dfc8;--line:#86acd166;--radius:1.1rem;--shadow:0 24px 52px #00000052}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;padding:0;font-family:Sora,Segoe UI,sans-serif;line-height:1.6}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:.09em}a:hover,a:focus-visible{color:var(--cyan)}h1,h2,h3,h4{letter-spacing:.01em;margin:0;font-family:Space Grotesk,Segoe UI,sans-serif;line-height:1.14}p{color:var(--text-muted);margin:0}.site-backdrop{z-index:-1;background:radial-gradient(95% 90% at 10% 0,#26b7d729,#0000 58%),radial-gradient(75% 65% at 100% 100%,#39dfc81f,#0000 60%),linear-gradient(#0b1730 0%,#081124 100%);position:fixed;inset:0}.shell{width:min(1120px,100% - 2.25rem);margin-inline:auto}.skip-link{background:var(--cyan);color:#041122;z-index:1000;border-radius:.6rem;padding:.6rem 1rem;font-weight:700;position:absolute;top:1rem;left:-999px}.skip-link:focus{left:1rem}.site-header{backdrop-filter:blur(8px);z-index:40;background:#081124c2;border-bottom:1px solid #5d8dba38;padding:1rem 0 0;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:1rem;padding-bottom:.9rem;display:flex}.brand{border:1px solid var(--line);background:linear-gradient(145deg,#ffffff14,#ffffff05);border-radius:.9rem;flex-direction:column;padding:.75rem 1rem;text-decoration:none;display:inline-flex}.brand-top{color:#fff;font-family:Space Grotesk,Segoe UI,sans-serif;font-size:2rem;font-weight:700;line-height:.95}.brand-bottom{color:#9cb5cf;font-family:Space Grotesk,Segoe UI,sans-serif;font-size:1.35rem;font-weight:500;line-height:1}.desktop-nav{display:none}.desktop-nav ul,.mobile-nav ul,.footer-links,.chip-list{margin:0;padding:0;list-style:none}.desktop-nav ul{border:1px solid var(--line);background:#111f38b8;border-radius:999px;gap:.45rem;padding:.3rem;display:flex}.desktop-nav a,.mobile-nav a{color:var(--text);border-radius:999px;padding:.56rem .95rem;font-weight:600;text-decoration:none;transition:background-color .16s;display:block}.desktop-nav a:hover,.desktop-nav a:focus-visible,.mobile-nav a:hover,.mobile-nav a:focus-visible,.desktop-nav a.active,.mobile-nav a.active{color:#f9fdff;background:linear-gradient(130deg,#4dd5ff42,#39dfc85c)}.mobile-nav{position:relative}.mobile-nav summary{cursor:pointer;border:1px solid var(--line);user-select:none;background:#14223ce0;border-radius:999px;padding:.58rem .95rem;font-weight:600;list-style:none}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav nav{border:1px solid var(--line);min-width:10rem;box-shadow:var(--shadow);background:#0c182bf7;border-radius:.85rem;padding:.3rem;animation:.19s lift-in;position:absolute;top:calc(100% + .5rem);right:0}.site-main{gap:5rem;padding:3.5rem 0 4.5rem;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:#d3ecff;background:#244a705c;border:1px solid #5ca9d973;border-radius:999px;padding:.35rem .8rem;font-size:.82rem;font-weight:700;display:inline-flex}.hero{gap:1.3rem;max-width:48rem;display:grid}.hero h1{text-wrap:balance;text-shadow:0 10px 24px #00000054;font-size:clamp(2.2rem,6vw,4.25rem)}.hero p{max-width:42rem;font-size:clamp(1rem,1.7vw,1.2rem)}.button-row{flex-wrap:wrap;gap:.85rem;display:flex}.button{cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;padding:.72rem 1.2rem;font-weight:700;text-decoration:none;transition:transform .18s;display:inline-flex}.button:hover,.button:focus-visible{transform:translateY(-1px)}.button-primary{color:#031121;background:linear-gradient(120deg, var(--cyan), var(--teal));box-shadow:0 10px 24px #39dfc840}.button-secondary{border:1px solid var(--line);color:var(--text);background:#121f36bd}.split{grid-template-columns:repeat(auto-fit,minmax(16.5rem,1fr));gap:1rem;display:grid}.panel{border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(#14233cb8,#0d192cf2);padding:1.3rem}.section-head{gap:.8rem;max-width:42rem;margin-bottom:1.6rem;display:grid}.section-head h2{font-size:clamp(1.75rem,3.9vw,2.8rem)}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr));gap:1rem;display:grid}.project-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);grid-template-rows:minmax(0,1fr) auto;display:grid;overflow:clip;box-shadow:0 14px 32px #0000003d}.project-shot{letter-spacing:.08em;color:#f1f9ffeb;border-bottom:1px solid var(--line);place-items:center;height:10.4rem;font-family:Space Grotesk,Segoe UI,sans-serif;font-size:2rem;font-weight:700;display:grid;position:relative}.project-shot:after{content:"Screenshot placeholder";letter-spacing:.06em;text-transform:uppercase;color:#f1f9ffe0;background:#050a1247;border-radius:.45rem;padding:.15rem .45rem;font-size:.72rem;font-weight:600;position:absolute;bottom:.65rem;left:.85rem}.project-shot.has-image:after{content:""}.project-shot img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.project-shot.cyan{background:radial-gradient(130% 85% at 100% 0,#40e1ff80,#0000 55%),linear-gradient(145deg,#164571,#18316a)}.project-shot.teal{background:radial-gradient(120% 85% at 100% 0,#39dfc880,#0000 55%),linear-gradient(145deg,#0f2f49,#173b5f)}.project-shot.slate{background:radial-gradient(95% 80% at 100% 0,#84a1c470,#0000 62%),linear-gradient(145deg,#213855,#1a2840)}.project-copy{align-content:start;gap:.82rem;padding:1rem;display:grid}.project-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.55rem;display:flex}.project-heading h3{font-size:1.35rem}.project-category{color:#cfe2f4;font-size:.92rem;font-weight:600}.status-badge{letter-spacing:.03em;white-space:nowrap;border-radius:999px;padding:.18rem .54rem;font-size:.78rem;font-weight:700}.status-live{color:#8ff8e8;background:#39dfc833;border:1px solid #39dfc873}.status-dev{color:#92e7ff;background:#4dd5ff33;border:1px solid #4dd5ff66}.chip-list{flex-wrap:wrap;gap:.45rem;display:flex}.chip-list li{color:#d3e8fc;background:#11233ea6;border:1px solid #81a8d070;border-radius:999px;padding:.27rem .6rem;font-size:.79rem}.services-grid{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;display:grid}.service-card{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(#14233cb8,#0d192cf2);gap:.9rem;padding:1.2rem;display:grid}.service-card h3{font-size:1.32rem}.service-card ul{color:#d7e9fb;margin:0;padding-left:1.1rem}.service-card li+li{margin-top:.42rem}.service-collab{color:#a9c2d8;font-size:.93rem}.contact-layout{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;display:grid}.contact-panel{border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(#101e34c2,#0b1728f5);padding:1.3rem}.contact-form{gap:.85rem;display:grid}.form-alert{color:#c2fff5;background:#39dfc821;border:1px solid #39dfc873;border-radius:.72rem;padding:.75rem .85rem;font-weight:600}.form-note{color:#9db6cc;font-size:.86rem}.visually-hidden{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.form-two-up{gap:.85rem;display:grid}label{color:#daebfb;font-size:.94rem;font-weight:600}input,textarea,select{width:100%;color:var(--text);font:inherit;background:#0a1526d6;border:1px solid #759fcc73;border-radius:.72rem;padding:.7rem .8rem}textarea{resize:vertical;min-height:9rem}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:1px}.cta{border-radius:calc(var(--radius) + .1rem);background:radial-gradient(80% 95% at 0 0,#4dd5ff33,#0000 60%),linear-gradient(170deg,#0b1b33f2,#081122f2);border:1px solid #5fa9d475;gap:1rem;padding:clamp(1.25rem,3vw,2rem);display:grid}.footer-inner{border-top:1px solid #5d8dba59;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1rem;padding:.6rem 0 1rem;display:grid}.site-footer{backdrop-filter:blur(5px);background:#08101f9e;padding:1.5rem 0 1.2rem}.footer-title{color:#eff9ff;margin-bottom:.3rem;font-family:Space Grotesk,Segoe UI,sans-serif;font-weight:700}.footer-links{gap:.35rem;display:grid}.footer-meta{border-top:1px solid #527ca645;padding-top:.9rem;font-size:.88rem}@keyframes lift-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media (width>=48rem){.mobile-nav{display:none}.desktop-nav{display:block}.form-two-up{grid-template-columns:1fr 1fr}}
