*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}html,body{min-height:100%}body{color:#eef1ff;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:#04030c;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,sans-serif}img{max-width:100%}button{font-family:inherit}.space-root{color:#eef1ff;background:radial-gradient(1200px 800px at 78% -10%,#1a1550 0%,#1a155000 60%),radial-gradient(1000px 900px at 10% 110%,#0a2a4a 0%,#0a2a4a00 55%),linear-gradient(#05060f 0%,#070512 45%,#04030c 100%);width:100%;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,sans-serif;position:relative;overflow-x:clip}.starfield-canvas{z-index:0;pointer-events:none;position:fixed;inset:0}.nebula{z-index:0;pointer-events:none;filter:blur(6px);background:radial-gradient(420px 420px at 20% 30%,#7f77dd29,#0000 70%),radial-gradient(520px 520px at 82% 68%,#4a89dc24,#0000 70%),radial-gradient(360px 360px at 60% 12%,#c56cd61a,#0000 70%);animation:44s ease-in-out infinite alternate nebula-drift;position:fixed;inset:-20%}@keyframes nebula-drift{0%{transform:translate(-2%,-1%)scale(1)}to{transform:translate(2%,2%)scale(1.08)}}.window-field{z-index:2;width:100%;min-height:var(--field-min,145vh);position:relative}.proj-window{-webkit-backdrop-filter:blur(10px);box-shadow:0 20px 50px -20px #000000b3, 0 0 0 1px #ffffff0a inset, 0 14px 34px -18px color-mix(in srgb, var(--accent) 55%, transparent);color:inherit;cursor:pointer;text-align:left;animation:float-window var(--float-dur,24s) ease-in-out var(--float-delay,0s) infinite;will-change:transform;background:linear-gradient(#181a30b8,#0c0d1cb8);border:1px solid #ffffff1f;border-radius:14px;flex-direction:column;gap:0;padding:0;transition:transform .25s,box-shadow .3s,border-color .3s;display:flex;position:absolute;overflow:hidden;transform:translate(0,0)}.proj-window:hover,.proj-window:focus-visible{border-color:color-mix(in srgb, var(--accent) 70%, white 10%);box-shadow:0 28px 60px -18px #000c, 0 0 0 1px #ffffff14 inset, 0 20px 46px -12px color-mix(in srgb, var(--accent) 80%, transparent);z-index:5;outline:none;animation-play-state:paused;transform:translateY(-8px)scale(1.07)}@keyframes float-window{0%{transform:translate3d(0, 0, 0) rotate(calc(var(--rot,1deg) * -1))}20%{transform:translate3d(var(--fx,20px), calc(var(--fy,22px) * -1), 0) rotate(var(--rot,1deg))}40%{transform:translate3d(calc(var(--fx,20px) * .25), calc(var(--fy,22px) * -1.5), 0) rotate(calc(var(--rot,1deg) * -.6))}60%{transform:translate3d(calc(var(--fx,20px) * -.85), calc(var(--fy,22px) * -.7), 0) rotate(var(--rot,1deg))}80%{transform:translate3d(calc(var(--fx,20px) * -.4), calc(var(--fy,22px) * .35), 0) rotate(calc(var(--rot,1deg) * -.5))}to{transform:translate3d(0, 0, 0) rotate(calc(var(--rot,1deg) * -1))}}.pw-titlebar{background:#ffffff0a;border-bottom:1px solid #ffffff12;align-items:center;gap:8px;padding:9px 12px;display:flex}.pw-lights{gap:5px;display:inline-flex}.pw-lights span{background:#ffffff2e;border-radius:50%;width:9px;height:9px}.pw-lights span:first-child{background:#ff5f57}.pw-lights span:nth-child(2){background:#febc2e}.pw-lights span:nth-child(3){background:#28c840}.pw-glyph{margin-left:4px;font-size:14px;line-height:1}.pw-name{color:#eaecff;white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.pw-status,.modal-status{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:color-mix(in srgb, var(--accent) 72%, white 28%);background:color-mix(in srgb, var(--accent) 20%, transparent);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);border-radius:999px;flex:none;padding:3px 8px;font-size:11px;font-weight:700}.pw-status{margin-left:auto}.modal-status{margin-left:2px;padding:4px 10px}.pw-preview{padding:12px 12px 0;display:block}.pw-shot{aspect-ratio:16/10;object-fit:cover;object-position:top center;border:1px solid #ffffff14;border-radius:8px;width:100%;display:block}.pw-tagline{color:#b7bde6;padding:10px 14px 2px;font-size:12.5px;line-height:1.4;display:block}.pw-hint{letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb, var(--accent) 70%, white 20%);opacity:0;padding:4px 14px 12px;font-size:11px;transition:opacity .25s;display:block}.proj-window:hover .pw-hint,.proj-window:focus-visible .pw-hint{opacity:1}.shot-placeholder{aspect-ratio:16/10;background:radial-gradient(120% 100% at 20% 0%, color-mix(in srgb, var(--accent) 38%, #0b0d1f) 0%, #0b0d1f 70%);border:1px solid #ffffff14;border-radius:8px;width:100%;position:relative;overflow:hidden}.shot-chrome{background:#00000040;gap:5px;padding:8px 10px;display:flex}.shot-chrome .dot{background:#ffffff40;border-radius:50%;width:7px;height:7px}.shot-body{padding:14px 16px}.shot-glyph{filter:drop-shadow(0 4px 12px color-mix(in srgb, var(--accent) 60%, transparent));margin-bottom:12px;font-size:30px}.shot-bars{flex-direction:column;gap:7px;margin-bottom:14px;display:flex}.shot-bars span{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 60%, white 5%), transparent);border-radius:4px;height:7px}.shot-tiles{gap:8px;display:flex}.shot-tiles span{background:#ffffff0f;border:1px solid #ffffff12;border-radius:6px;flex:1;height:34px}.shot-watermark{letter-spacing:.16em;text-transform:uppercase;color:#ffffff47;font-size:11px;position:absolute;bottom:6px;right:8px}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(8px);background:#04040cad;justify-content:center;align-items:center;padding:20px;animation:.2s fade-in;display:flex;position:fixed;inset:0}.pf-modal{width:min(920px,100%);max-height:88vh;box-shadow:0 40px 120px -30px #000000e6, 0 24px 60px -20px color-mix(in srgb, var(--accent) 45%, transparent);background:linear-gradient(#16182ef5,#0b0c1afa);border:1px solid #ffffff24;border-radius:16px;flex-direction:column;animation:.28s cubic-bezier(.2,.9,.3,1) modal-in;display:flex;overflow:hidden}.modal-titlebar{background:#ffffff0a;border-bottom:1px solid #ffffff14;align-items:center;gap:10px;padding:12px 16px;display:flex}.modal-glyph{margin-left:4px;font-size:16px}.modal-name{color:#eef1ff;font-size:15px;font-weight:700}.modal-close{color:#cfd4f5;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:9px;width:36px;height:36px;margin-left:auto;font-size:13px;transition:background .2s,color .2s}.modal-close:hover{color:#fff;background:#ffffff1f}.modal-body{grid-template-columns:minmax(0,300px) 1fr;align-items:stretch;gap:0;display:grid;overflow:auto}.modal-gallery{background:#0003;border-right:1px solid #ffffff0f;flex-direction:column;justify-content:center;align-self:start;padding:24px 20px;display:flex;position:sticky;top:0}.gallery-stage{border-radius:12px;position:relative;overflow:hidden}.gallery-stage img{border-radius:12px;width:100%;display:block}.gallery-stage img.zoomable{cursor:zoom-in}.gallery-stage:has(img.zoomable):after{content:"⤢";color:#fff;opacity:0;pointer-events:none;background:#0a0c1ab8;border:1px solid #ffffff2e;border-radius:8px;place-items:center;width:28px;height:28px;font-size:14px;transition:opacity .2s;display:grid;position:absolute;bottom:10px;right:10px}.gallery-stage:has(img.zoomable):hover:after{opacity:1}.lightbox{z-index:60;-webkit-backdrop-filter:blur(6px);cursor:zoom-out;background:#03030ae6;place-items:center;padding:clamp(16px,4vw,48px);animation:.18s fade-in;display:grid;position:fixed;inset:0}.lightbox img{border:1px solid #ffffff24;border-radius:12px;width:auto;max-width:min(1040px,92vw);height:auto;max-height:86vh;animation:.22s cubic-bezier(.2,.9,.3,1) modal-in;box-shadow:0 40px 120px -30px #000000e6}.lightbox-close{color:#fff;cursor:pointer;background:#141628cc;border:1px solid #ffffff2e;border-radius:11px;width:44px;height:44px;font-size:16px;transition:background .2s;position:fixed;top:18px;right:20px}.lightbox-close:hover{background:#282c4ae6}.lightbox-nav{color:#fff;cursor:pointer;background:#141628b8;border:1px solid #ffffff2e;border-radius:50%;place-items:center;width:48px;height:48px;font-size:26px;line-height:1;transition:background .2s;display:grid;position:fixed;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{background:#282c4aeb}.lightbox-nav.prev{left:clamp(10px,3vw,32px)}.lightbox-nav.next{right:clamp(10px,3vw,32px)}.lightbox-count{font-variant-numeric:tabular-nums;color:#cfd4f5;background:#141628b8;border:1px solid #ffffff24;border-radius:999px;padding:5px 12px;font-size:13px;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.gallery-nav{color:#fff;cursor:pointer;background:#0a0c1ab3;border:1px solid #ffffff29;border-radius:50%;place-items:center;width:36px;height:36px;font-size:20px;line-height:1;transition:background .2s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.gallery-nav:hover{background:#1e2242e6}.gallery-nav.prev{left:10px}.gallery-nav.next{right:10px}.gallery-dots{justify-content:center;gap:7px;margin-top:14px;display:flex}.gallery-dots button{cursor:pointer;background-color:#ffffff40;background-clip:content-box;border:none;border-radius:50%;width:8px;height:8px;padding:8px;transition:background-color .2s,transform .2s}.gallery-dots button.on{background-color:var(--accent);transform:scale(1.3)}.modal-detail{padding:22px 24px 26px}.modal-tagline{text-transform:uppercase;letter-spacing:.1em;color:color-mix(in srgb, var(--accent) 65%, white 25%);margin-bottom:12px;font-size:13px;font-weight:600}.modal-desc{color:#c7ccf0;font-size:14.5px;line-height:1.65}.modal-detail h3{text-transform:uppercase;letter-spacing:.12em;color:#9aa2d8;margin:22px 0 10px;font-size:13px}.modal-highlights{flex-direction:column;gap:9px;list-style:none;display:flex}.modal-highlights li{color:#cbd0f2;padding-left:22px;font-size:14px;line-height:1.5;position:relative}.modal-highlights li:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:7px;left:3px}.modal-tech{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.tech-chip{color:#d3d8f6;background:#ffffff0d;border:1px solid #ffffff1f;border-radius:999px;padding:5px 11px;font-size:12px}.modal-links{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.modal-link{color:#0a0b1a;background:color-mix(in srgb, var(--accent) 82%, white 18%);border-radius:10px;padding:9px 16px;font-size:13.5px;font-weight:600;text-decoration:none;transition:transform .15s,filter .2s}.modal-link:hover{filter:brightness(1.08);transform:translateY(-2px)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (max-width:860px){.modal-body{grid-template-columns:1fr}.modal-gallery{border-bottom:1px solid #ffffff0f;border-right:none}.window-field{flex-direction:column;align-items:center;gap:20px;min-height:0;padding:24px 16px 40px;display:flex}.proj-window{animation:none;width:min(340px,100%)!important;position:static!important}.proj-window:hover,.proj-window:focus-visible{transform:translateY(-4px)scale(1.01)}.pw-hint{opacity:1}}@media (prefers-reduced-motion:reduce){.proj-window,.nebula,.pf-modal,.modal-backdrop{animation:none!important}}:root{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}.space-root{--brand-1:#8b5cf6;--brand-2:#4c9bf5}.brand-gradient{background:linear-gradient(120deg, var(--brand-1), var(--brand-2))}.site-nav,.hero,.services,.work,.about,.contact,.site-footer{z-index:2;position:relative}.services,.work,.about,.contact{scroll-margin-top:84px}.fcl-lockup{align-items:center;gap:12px;display:inline-flex}.fcl-wordmark{text-transform:uppercase;letter-spacing:.2em;color:#f4f5ff;white-space:nowrap;font-size:15px;font-weight:800;line-height:1}.fcl-orbit-dot{transform-box:view-box;transform-origin:50px 50px;animation:16s linear infinite fcl-orbit}@keyframes fcl-orbit{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.fcl-orbit-dot{animation:none}}.hero-hyperspace{pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%}.hs-ray{width:var(--ray-width,1px);transform-origin:50% 100%;height:7px;transform:translate(-50%, -100%) rotate(var(--ray-angle)) scaleY(0);background:linear-gradient(to top, transparent, rgba(203, 193, 255, var(--ray-opacity,.8)) 55%, #fffffff2 90%, transparent);opacity:0;border-radius:2px;position:absolute;top:0;left:0}.hs-core{opacity:0;background:radial-gradient(circle,#fffffff2,#c4b5fd8c 55%,#0000 75%);border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute;top:0;left:0}@media (prefers-reduced-motion:no-preference){.hs-ray{animation:fcl-ray-shoot .85s cubic-bezier(.11, .6, .2, 1) var(--ray-delay,0s) forwards}.hs-core{animation:.9s ease-out forwards fcl-core-flash}.fcl-mark-intro{opacity:0;animation:.18s steps(2,jump-none) .92s forwards fcl-mark-zap;transform:scale(.6)}.fcl-mark-intro .fcl-orbit-dot{animation:16s linear infinite fcl-orbit}}@keyframes fcl-ray-shoot{0%{transform:translate(-50%, -100%) rotate(var(--ray-angle)) scaleY(0);opacity:0}10%{opacity:1}70%{opacity:.85}to{transform:translate(-50%, -100%) rotate(var(--ray-angle)) scaleY(var(--ray-len,70));opacity:0}}@keyframes fcl-core-flash{0%{opacity:0;transform:scale(.4)}25%{opacity:1;transform:scale(1)}75%{opacity:.75;transform:scale(1.4)}to{opacity:0;transform:scale(1.8)}}@keyframes fcl-mark-zap{0%{opacity:0;transform:scale(.55)}55%{opacity:1;transform:scale(1.14)}to{opacity:1;transform:scale(1)}}.btn-primary,.btn-ghost{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:12px 22px;font-size:14.5px;font-weight:600;text-decoration:none;transition:transform .15s,filter .2s,background .2s,border-color .2s;display:inline-flex}.btn-primary{color:#0a0b1a;background:linear-gradient(120deg, var(--brand-1), var(--brand-2));box-shadow:0 10px 30px -10px color-mix(in srgb, var(--brand-1) 70%, transparent)}.btn-primary:hover{filter:brightness(1.07);transform:translateY(-2px)}.btn-primary:disabled{opacity:.6;cursor:default;filter:none;transform:none}.btn-ghost{color:#dfe3ff;background:#ffffff0a;border-color:#ffffff29}.btn-ghost:hover{background:#ffffff14;border-color:#ffffff4d;transform:translateY(-2px)}.btn-sm{border-radius:9px;padding:9px 16px;font-size:13.5px}.site-nav{z-index:40;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:20px;padding:14px clamp(16px,5vw,56px);transition:background .3s,border-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;display:flex;position:sticky;top:0}.site-nav.scrolled{-webkit-backdrop-filter:blur(14px);background:#080814b8;border-bottom-color:#ffffff14}.nav-logo{text-decoration:none}.nav-links{align-items:center;gap:clamp(14px,2.5vw,30px);display:flex}.nav-links>a:not(.btn-primary){color:#b7bde6;font-size:14px;font-weight:500;text-decoration:none;transition:color .2s}.nav-links>a:not(.btn-primary):hover{color:#fff}.hero{text-align:center;flex-direction:column;align-items:center;max-width:900px;margin:0 auto;padding:clamp(56px,12vh,130px) clamp(20px,6vw,40px) clamp(40px,8vh,80px);display:flex}.hero-mark{filter:drop-shadow(0 10px 30px #7c5cf659);margin-bottom:26px;position:relative}.hero-mark svg{z-index:1;position:relative}.hero-headline{letter-spacing:-.025em;text-wrap:balance;color:#f4f6ff;font-size:clamp(36px,6.4vw,68px);font-weight:800;line-height:1.03}.hero-subhead{color:#aab1da;max-width:62ch;margin-top:22px;font-size:clamp(15px,2vw,18px);line-height:1.65}.hero-cta{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:34px;display:flex}@media (prefers-reduced-motion:no-preference){.hero-headline,.hero-subhead,.hero-cta{opacity:0;animation:.5s cubic-bezier(.16,1,.3,1) forwards fcl-hero-in;transform:translateY(10px)}.hero-headline{animation-delay:1.05s}.hero-subhead{animation-delay:1.15s}.hero-cta{animation-delay:1.25s}}@keyframes fcl-hero-in{to{opacity:1;transform:translateY(0)}}.section-head{text-align:center;max-width:720px;margin:0 auto clamp(34px,5vw,56px)}.section-title{letter-spacing:-.02em;color:#f2f3ff;text-wrap:balance;font-size:clamp(27px,4.2vw,44px);font-weight:800;line-height:1.08}.section-lead{color:#a2a9d2;margin-top:16px;font-size:clamp(14.5px,1.7vw,17px);line-height:1.65}.services{padding:clamp(40px,8vh,90px) clamp(20px,5vw,56px)}.service-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;max-width:1120px;margin:0 auto;display:grid}.service-card{-webkit-backdrop-filter:blur(8px);background:linear-gradient(#181a3099,#0c0d1c8c);border:1px solid #ffffff1a;border-radius:16px;padding:26px 24px 28px;transition:transform .2s,border-color .25s,box-shadow .25s}.service-card:hover{border-color:#8b5cf666;transform:translateY(-4px);box-shadow:0 24px 50px -24px #000000b3,0 16px 40px -18px #7c5cf659}.service-head{align-items:center;gap:12px;margin-bottom:12px;display:flex}.service-glyph{font-size:24px;line-height:1}.service-card h3{color:#eef0ff;font-size:17px;font-weight:700}.service-card p{color:#a1a8cf;font-size:14px;line-height:1.6}.work{padding:clamp(40px,8vh,90px) 0 clamp(20px,4vh,40px)}.work .section-head{padding:0 20px}.about{padding:clamp(40px,8vh,90px) clamp(20px,5vw,56px)}.about-inner{text-align:center;-webkit-backdrop-filter:blur(8px);background:linear-gradient(#14162c80,#0a0b1a66);border:1px solid #ffffff14;border-radius:20px;max-width:760px;margin:0 auto;padding:clamp(30px,5vw,52px)}.about-body{color:#b3b9de;margin-top:18px;font-size:clamp(15px,1.9vw,18px);line-height:1.75}.contact{padding:clamp(40px,8vh,96px) clamp(20px,5vw,56px) clamp(60px,10vh,110px)}.contact-inner{grid-template-columns:.85fr 1.15fr;align-items:start;gap:clamp(28px,5vw,64px);max-width:1080px;margin:0 auto;display:grid}.contact-copy .section-title,.contact-copy .section-lead{text-align:left}.contact-copy .section-title{font-size:clamp(26px,3.6vw,40px)}.contact-email{color:color-mix(in srgb, var(--brand-2) 70%, white 20%);border-bottom:1px solid color-mix(in srgb, var(--brand-2) 40%, transparent);margin-top:22px;padding-bottom:2px;font-size:15px;font-weight:600;text-decoration:none;display:inline-block}.contact-email:hover{color:#fff}.contact-form{-webkit-backdrop-filter:blur(10px);background:linear-gradient(#16182ea8,#0b0c1ab3);border:1px solid #ffffff1a;border-radius:18px;flex-direction:column;gap:16px;padding:clamp(22px,3vw,32px);display:flex}.field-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.field{flex-direction:column;gap:7px;display:flex}.field>span{color:#c2c7ea;letter-spacing:.01em;font-size:12.5px;font-weight:600}.field>span em{color:#7f86ac;font-style:normal;font-weight:400}.field input,.field select,.field textarea{font:inherit;color:#eef0ff;background:#00000040;border:1px solid #ffffff24;border-radius:10px;width:100%;padding:11px 13px;font-size:14.5px;transition:border-color .2s,box-shadow .2s}.field textarea{resize:vertical;min-height:108px}.field select{appearance:none;cursor:pointer}.field input::placeholder,.field textarea::placeholder{color:#6f76a0}.field input:focus,.field select:focus,.field textarea:focus{border-color:color-mix(in srgb, var(--brand-1) 70%, transparent);outline:none;box-shadow:0 0 0 3px #8b5cf62e}.contact-form .btn-primary{align-self:flex-start;margin-top:4px}.hp-field{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.form-error{color:#f5b6b6;font-size:13.5px;line-height:1.5}.form-error a{color:#f5c4b3}.contact-sent{background:linear-gradient(#16182eb3,#0b0c1abf);border:1px solid #8b5cf64d;border-radius:18px;flex-direction:column;align-items:flex-start;gap:12px;padding:clamp(26px,4vw,40px);display:flex}.contact-sent-mark{color:#0a0b1a;background:linear-gradient(120deg, var(--brand-1), var(--brand-2));border-radius:50%;place-items:center;width:46px;height:46px;font-size:22px;display:grid}.contact-sent h3{color:#f2f3ff;font-size:20px;font-weight:700}.contact-sent p{color:#aab1da;font-size:14.5px;line-height:1.6}.contact-sent a{color:color-mix(in srgb, var(--brand-2) 75%, white 15%)}.site-footer{border-top:1px solid #ffffff12;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:28px clamp(20px,5vw,56px) 40px;display:flex}.footer-copy{color:#6f77a6;letter-spacing:.03em;font-size:12.5px}@media (max-width:760px){.nav-links>a:not(.btn-primary){display:none}.contact-inner,.field-row{grid-template-columns:1fr}.fcl-wordmark{letter-spacing:.16em;font-size:13px}}
