@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.853070df.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_2ae47f08-module__h69qWW__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_2ae47f08-module__h69qWW__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.dbea232f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_eb58308d-module__w_p2Lq__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_eb58308d-module__w_p2Lq__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
.contact-btn{background-color:var(--brand-white);color:var(--brand-blue);text-transform:uppercase;cursor:pointer;text-align:center;border:none;border-radius:2.5rem;outline:none;margin-top:2vw;padding:1rem 2.5vw;font-family:monospace;font-size:1.2rem;font-weight:900;transition:color .2s,background .2s,box-shadow .2s,transform .2s;box-shadow:0 10px 20px #0000000d}.contact-btn:hover{transform:translateY(-3px);box-shadow:0 10px 20px #0000001a}.comms-banner.highlight{animation:1s cubic-bezier(.22,.61,.36,1) commsScale}@keyframes commsScale{0%{transform:scale(1)}50%{transform:scale(1.075)}to{transform:scale(1)}}:root{--brand-blue:#3a78e9;--brand-dark:#333;--brand-white:#fff;--brand-red:#e82325;--bg-body:#e8ecef;--text-grey:#adadad;--rad-lg:32px;--rad-pill:100px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-body);color:var(--brand-dark);-webkit-font-smoothing:antialiased;z-index:1;background-image:radial-gradient(circle at 10% 0,#fff 0%,#0000 40%),radial-gradient(circle at 90% 100%,#fff 0%,#0000 40%);background-attachment:fixed;flex-direction:column;gap:2vw;width:100%;max-width:1600px;margin:0 auto;padding:4vw;font-family:Inter,sans-serif;display:flex;position:relative}.bg-watermark{color:#00000008;letter-spacing:-10px;pointer-events:none;z-index:-1;white-space:nowrap;font-size:clamp(40rem,50vw,60rem);font-weight:1000;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-5deg)}.hud-frame{pointer-events:none;z-index:50;border:1px solid #0000001a;position:fixed;inset:1.5vw}.calibration-strip{opacity:.5;gap:4px;display:flex;position:absolute;top:20px;right:20px}.cal-block{width:20px;height:10px}.ui-crosshair{opacity:.4;pointer-events:none;z-index:3;font-family:monospace;font-size:1.2rem;font-weight:400;line-height:1;position:absolute}.ui-crosshair.top-left{top:2vw;left:2vw}.ui-crosshair.top-right{top:2vw;right:2vw}.ui-crosshair.bottom-left{bottom:2vw;left:2vw}.ui-crosshair.bottom-right{bottom:2vw;right:2vw}.tech-mono{letter-spacing:1px;text-transform:uppercase;font-family:monospace;font-size:.85rem;font-weight:700}.pill-tag{border-radius:var(--rad-pill);border:1px solid;align-items:center;gap:1vw;padding:8px 20px;font-size:.85rem;font-weight:900;transition:background .2s,color .2s,border .2s;display:inline-flex;box-shadow:0 4px 12px #0000000d}.pill-tag.blue{background-color:var(--brand-white);color:var(--brand-dark);border-color:var(--brand-dark)}.pill-tag.dark{background-color:var(--brand-dark);color:var(--brand-white);border-color:var(--brand-white)}.hero-banner{background-color:var(--brand-blue);color:var(--brand-white);border-radius:var(--rad-lg);flex-direction:column;justify-content:space-between;min-height:30vh;padding:4vw 5vw;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 40px #3a78e933}.comms-banner{background-color:var(--brand-red);min-height:40vh;box-shadow:0 20px 40px #e8232533}.hero-header{z-index:2;justify-content:space-between;align-items:flex-start;margin-bottom:4rem;display:flex;position:relative}.hero-title{letter-spacing:-4px;z-index:2;font-size:clamp(4rem,10vw,8rem);font-weight:900;line-height:.9;position:relative}.hero-desc{opacity:.9;z-index:2;max-width:500px;margin-top:1.5rem;font-size:1.25rem;font-weight:700;line-height:1.5;position:relative}.comms-info-grid{z-index:2;opacity:.9;flex-wrap:wrap;gap:2vw;max-width:800px;margin-top:2vw;margin-bottom:2vw;display:flex;position:relative}.comms-info-grid .tech-mono{white-space:nowrap;font-size:.95rem}.hero-big-one{letter-spacing:-.05em;color:#fff;opacity:.05;z-index:1;-webkit-user-select:none;user-select:none;pointer-events:none;white-space:nowrap;font-family:Inter,monospace;font-size:clamp(10rem,44vw,44rem);font-weight:900;line-height:1;position:absolute;top:50%;right:3vw;transform:translateY(-50%)}.comms-banner .hero-big-one{opacity:.1}.hero-banner:after{content:"";z-index:1;background:repeating-linear-gradient(-45deg,#fff,#fff 10px,#333 10px 20px);width:20px;height:100%;position:absolute;top:0;right:0}.vertical-tag{writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:2px;opacity:.5;white-space:nowrap;pointer-events:none;z-index:2;font-family:monospace;font-size:.75rem;font-weight:900;position:absolute;top:50%;right:25px;transform:translateY(-50%)rotate(180deg)}.hero-links .contact-btn{background-color:var(--brand-white);color:var(--brand-blue);text-transform:uppercase;text-align:center;cursor:pointer;border:none;border-radius:2.5rem;padding:1rem 2.5vw;font-size:1.2rem;font-weight:900;transition:transform .2s,box-shadow .2s}.hero-links .contact-btn:hover{transform:translateY(-3px);box-shadow:0 10px 20px #0000001a}.hero-links a{background-color:var(--brand-white);color:var(--brand-blue);border-radius:var(--rad-pill);text-transform:uppercase;text-align:center;padding:16px 32px;font-size:1.1rem;font-weight:900;text-decoration:none;transition:transform .2s,box-shadow .2s}.hero-links a:hover{transform:translateY(-3px);box-shadow:0 10px 20px #0000001a}.stack-section{background-color:var(--brand-white);border-radius:var(--rad-lg);flex-direction:column;align-items:stretch;gap:2vw;padding:3vw 5vw;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px #00000008}.stack-title{z-index:2;align-items:center;gap:15px;width:100%;font-size:1.5rem;font-weight:900;display:flex}.stack-items{z-index:2;flex-wrap:wrap;gap:1vw;display:flex}.stack-item{background-color:var(--bg-body);border-radius:var(--rad-pill);color:var(--brand-dark);border:2px solid #0000;padding:12px 24px;font-size:1rem;font-weight:800;transition:all .2s}.projects-grid{grid-template-columns:repeat(6,1fr);gap:2vw;display:grid}.project-card{background-color:var(--brand-dark);color:var(--brand-white);border-radius:var(--rad-lg);flex-direction:column;grid-column:span 3;padding:4rem 3rem;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 40px #0000001a}.card-header{z-index:2;justify-content:space-between;align-items:flex-start;margin-bottom:2vw;display:flex;position:relative}.card-title{letter-spacing:-1px;max-width:80%;font-size:2.5rem;font-weight:900;line-height:1.1}.project-card p{color:var(--text-grey);z-index:2;flex-grow:1;margin-bottom:1vw;font-size:1.1rem;font-weight:700;line-height:1.6;position:relative}.card-links{z-index:2;gap:1vw;margin-top:auto;margin-bottom:2vw;display:flex;position:relative}.card-link{color:var(--brand-white);background-color:var(--brand-blue);border-radius:var(--rad-pill);border-bottom:1px solid #0000;padding:12px 24px;font-family:monospace;font-size:1.1rem;font-weight:900;text-decoration:none;transition:all .2s}.project-card:not(.proj-feature) .card-link{color:var(--brand-white)}.card-link:hover{transform:translateY(-4px);box-shadow:0 10px 20px #0000001a}.details-link{border-radius:var(--rad-pill);color:var(--brand-white);background-color:var(--brand-dark);border:1px solid #ffffff80;padding:12px 24px;font-family:monospace;font-size:1.1rem;font-weight:900;transition:all .2s}.project-card.proj-feature .details-link{background-color:var(--brand-white);color:var(--brand-dark);border:1px solid var(--brand-dark)}.details-link:hover{transform:translateY(-4px);box-shadow:0 10px 20px #0000001a}.card-footer{z-index:2;justify-content:space-between;align-items:flex-end;margin-top:2vw;display:flex;position:relative}.ce-marks{letter-spacing:2px;opacity:.4;gap:1vw;font-size:1rem;font-weight:900;display:flex}.dark-hazard{background:repeating-linear-gradient(-45deg,#333,#333 10px,#111 10px 20px);width:100%;height:8px;position:absolute;bottom:0;left:0}.proj-feature{background-color:var(--brand-white);color:var(--brand-dark);grid-column:span 6}.proj-feature .dark-hazard{background:repeating-linear-gradient(-45deg,#e5e7eb,#e5e7eb 10px,#fff 10px 20px)}.proj-feature p{color:#555;max-width:60%}.filter-controls{flex-wrap:wrap;align-items:center;gap:1vw;margin-top:1vw;margin-bottom:1vw;padding:0 10px;display:flex}.visual-separator{justify-content:center;align-items:center;width:100%;margin:2vw 0;display:flex}.separator-line{background:linear-gradient(90deg,var(--brand-blue),var(--brand-red));border-radius:var(--rad-pill);opacity:.85;width:60%;height:4px;box-shadow:0 2px 16px #3a78e914}.filter-btn{border-radius:var(--rad-pill);cursor:pointer;background:0 0;border:1px solid #0000001a;padding:8px 16px;font-family:monospace;font-weight:700;transition:all .2s}.filter-btn.active,.filter-btn:hover{background:var(--brand-dark);color:var(--brand-white)}.project-card.hide{display:none}.comms-links{z-index:2;flex-flow:wrap;gap:1vw;margin-top:2vw;display:flex;position:relative}.comms-links a{background-color:var(--brand-white);color:var(--brand-red);border-radius:var(--rad-pill);text-transform:uppercase;text-align:center;padding:16px 32px;font-size:1.1rem;font-weight:900;text-decoration:none;transition:transform .2s,box-shadow .2s}.comms-links a:hover{transform:translateY(-3px);box-shadow:0 10px 20px #0000001a}@media (max-width:1024px){.hero-header{flex-direction:column;gap:1vw}.project-card,.proj-feature{grid-column:span 6}.proj-feature p{max-width:100%}}@media (max-width:600px){body{gap:6vw;max-width:100%;padding:6vw}.bg-watermark,.hud-frame,.ui-crosshair,.vertical-tag,.calibration-strip{display:none!important}.hero-banner{border-radius:calc(var(--rad-lg)/2);min-height:auto;padding:8vw 6vw}.hero-header{align-items:flex-start;margin-bottom:3vw}.hero-title{letter-spacing:-1px;font-size:clamp(2.2rem,9vw,3.6rem);line-height:1.05}.hero-desc{max-width:100%;font-size:1rem}.hero-big-one{display:none}.hero-links .contact-btn,.hero-links a,.comms-links a,.card-link,.details-link,.contact-btn{padding:10px 14px;font-size:1rem}.hero-links,.comms-links{flex-direction:column;gap:.75rem;display:flex}.stack-section{padding:6vw 4vw}.stack-title{margin-bottom:1rem;font-size:1.35rem}.stack-items{flex-direction:column;align-items:stretch;gap:1rem}.projects-grid{grid-template-columns:repeat(1,1fr);gap:6vw}.project-card,.proj-feature{grid-column:span 1;padding:2.5rem 1.5rem}.card-title{max-width:100%;font-size:1.5rem}.project-card p{font-size:1rem}.card-links{flex-direction:column;gap:1rem;width:100%}.card-footer{flex-direction:column;align-items:flex-start;gap:1rem}.pill-tag{gap:10px;padding:8px 14px;font-size:.85rem}.filter-controls{flex-direction:column;align-items:stretch;gap:10px;padding:0}.separator-line{width:90%}.hero-banner:after{width:12px}.comms-info-grid{flex-direction:column;gap:1rem;max-width:100%}.hero-banner,.stack-section,.projects-grid,.comms-banner{margin-bottom:2.5rem}}.modal-overlay{-webkit-backdrop-filter:blur(8px)saturate(.7);backdrop-filter:blur(8px)saturate(.7);z-index:200;background:#0a0c0e80;justify-content:center;align-items:center;animation:.18s ease-out modalFadeIn;display:flex;position:fixed;inset:0}.modal-panel{border-radius:var(--rad-lg);transform-origin:50%;animation:.24s cubic-bezier(.22,1,.36,1) modalPop;position:relative}.modal-panel.hero-banner{background-color:var(--brand-white);width:min(720px,92%);max-width:720px;color:var(--brand-dark);border:1px solid #0000000f;padding:2.5rem;box-shadow:0 20px 40px #00000014}.modal-close{cursor:pointer;color:var(--brand-dark);background:0 0;border:none;border-radius:8px;padding:6px 10px;font-size:1.5rem;line-height:1;position:absolute;top:12px;right:12px}.modal-close:hover{background:#0000000a}.modal-title{color:var(--brand-blue);letter-spacing:1px;text-transform:uppercase;margin-bottom:.5rem;font-family:monospace;font-size:1rem;font-weight:900}.modal-body{color:#444;margin-bottom:1.25rem}.modal-actions{gap:1rem;display:flex}@keyframes modalPop{0%{opacity:0;transform:translateY(8px)scale(.98)}60%{opacity:1;transform:translateY(-6px)scale(1.02)}to{transform:translateY(0)scale(1)}}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-overlay.closing{animation:.2s ease-in forwards modalFadeOut}.modal-panel.closing{animation:.2s cubic-bezier(.22,1,.36,1) forwards modalPopExit}@keyframes modalPopExit{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(10px)scale(.98)}}@keyframes modalFadeOut{0%{opacity:1}to{opacity:0}}
