:root{--brand:#243c78;--brand-deep:#16244f;--accent:#3d7ac9;--mist:#d8dce8;--cloud:#f3f5f9;--white:#fff;--ink:#1a2748;--muted:#5c6b86;--surface:var(--cloud);--navy:var(--brand);--blue:var(--accent);--dark:var(--brand-deep);--radius:14px;--nav-h:4.25rem;--font-display:"Sora", system-ui, sans-serif;--font-body:"DM Sans", system-ui, sans-serif;--shadow:0 12px 40px #243c7824;--ease:cubic-bezier(.22, 1, .36, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--ink);background:var(--white);margin:0;font-size:1.0625rem;line-height:1.6;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.skip-link{background:var(--navy);color:var(--white);z-index:1000;padding:.75rem 1rem;position:absolute;top:0;left:-999px}.skip-link:focus{top:1rem;left:1rem}.site-nav{z-index:100;height:var(--nav-h);transition:background .35s var(--ease), box-shadow .35s var(--ease), backdrop-filter .35s var(--ease);align-items:center;display:flex;position:fixed;inset:0 0 auto}.site-nav.is-scrolled{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;box-shadow:0 1px #273d7f14}.site-nav .nav-inner{justify-content:space-between;align-items:center;gap:1rem;width:min(1120px,100% - 2rem);margin:0 auto;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.02em;color:var(--white);transition:color .3s var(--ease);font-size:1.15rem;font-weight:700;text-decoration:none}.site-nav.is-scrolled .brand,.site-nav.is-scrolled .nav-links a,.site-nav.is-scrolled .nav-toggle{color:var(--navy)}.nav-links{gap:1.75rem;margin:0;padding:0;list-style:none;display:flex}.nav-links a{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;color:#ffffffe6;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--blue);text-decoration:none}.nav-toggle{color:var(--white);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.5rem;line-height:1;display:none}@media (width<=720px){.nav-toggle{display:block}.nav-links{top:var(--nav-h);opacity:0;pointer-events:none;transition:transform .35s var(--ease), opacity .35s var(--ease);box-shadow:var(--shadow);background:#fffffffa;flex-direction:column;gap:0;padding:.5rem 0;position:fixed;left:0;right:0;transform:translateY(-120%)}.site-nav.is-open .nav-links{opacity:1;pointer-events:auto;transform:translateY(0)}.nav-links a{color:var(--navy);padding:.9rem 1.5rem;display:block}.site-nav.is-open .brand,.site-nav.is-open .nav-toggle{color:var(--navy)}.site-nav.is-open{background:#fffffffa}}.hero{text-align:center;min-height:100dvh;color:var(--white);background:linear-gradient(155deg, var(--brand-deep) 0%, var(--brand) 48%, #2f5499 78%, var(--accent) 100%);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;background-image:radial-gradient(circle at 20% 30%,#ffffff1f 0%,#0000 45%),radial-gradient(circle at 80% 70%,#3d7ac961 0%,#0000 40%),repeating-linear-gradient(-18deg,#0000,#0000 28px,#ffffff08 28px 29px);position:absolute;inset:0}.hero:after{content:"";pointer-events:none;background:radial-gradient(at 50% 0,#dee2ef2e 0%,#0000 70%),repeating-linear-gradient(90deg,#0000,#0000 60px,#ffffff0a 60px 61px);height:42%;animation:18s ease-in-out infinite alternate wave-drift;position:absolute;bottom:-8%;left:-20%;right:-20%;-webkit-mask-image:linear-gradient(#0000 10%,#000 80%);mask-image:linear-gradient(#0000 10%,#000 80%)}@keyframes wave-drift{0%{transform:translate(-2%)}to{transform:translate(2%)}}.hero-inner{z-index:1;padding:calc(var(--nav-h) + 2rem) 1.5rem 4rem;max-width:720px;position:relative}.hero-logo{filter:drop-shadow(0 8px 24px #0003);width:min(140px,28vw);animation:fade-up .9s var(--ease) both;margin:0 auto 1.5rem}.hero h1{font-family:var(--font-display);letter-spacing:-.04em;animation:fade-up .9s .1s var(--ease) both;margin:0;font-size:clamp(2.75rem,9vw,5.5rem);font-weight:700;line-height:1.05}.hero-tagline{opacity:.92;animation:fade-up .9s .2s var(--ease) both;margin:1.1rem 0 0;font-size:clamp(1.1rem,2.5vw,1.35rem);font-weight:400}.hero-cta{font-family:var(--font-display);color:var(--navy);background:var(--white);transition:transform .25s var(--ease), box-shadow .25s var(--ease);animation:fade-up .9s .3s var(--ease) both;border-radius:999px;margin-top:2.25rem;padding:.9rem 1.75rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 8px 28px #0000002e}.hero-cta:hover{text-decoration:none;transform:translateY(-2px);box-shadow:0 12px 32px #00000038}@keyframes fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.section{padding:5.5rem 1.5rem}.section-inner{width:min(1120px,100%);margin:0 auto}.section-title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--navy);text-align:center;margin:0 0 .5rem;font-size:clamp(1.75rem,4vw,2.35rem);font-weight:700}.section-lead{text-align:center;max-width:36rem;color:var(--muted);margin:0 auto 2.75rem}.about{background:var(--surface)}.about-grid{grid-template-columns:auto 1fr;align-items:center;gap:2.5rem 3rem;max-width:880px;margin:0 auto;display:grid}.about-photo{object-fit:cover;object-position:center 18%;border:5px solid var(--navy);width:180px;height:180px;box-shadow:var(--shadow);border-radius:50%}.about-copy p{color:var(--ink);margin:0 0 1rem}.about-copy p:last-child{margin-bottom:0}@media (width<=640px){.about-grid{text-align:center;grid-template-columns:1fr;justify-items:center}}.project-group{margin-bottom:3rem}.project-group:last-child{margin-bottom:0}.project-group-title{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin:0 0 1.25rem;font-size:.8rem;font-weight:700}.project-group.is-secondary .project-group-title{color:var(--muted)}.project-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.25rem;display:grid}.project-card{appearance:none;text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:var(--white);border-radius:var(--radius);transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);border:1px solid #273d7f1a;flex-direction:column;align-items:stretch;gap:.85rem;margin:0;padding:1.25rem;display:flex;box-shadow:0 4px 16px #273d7f0a}.project-card:hover,.project-card:focus-visible{box-shadow:var(--shadow);border-color:#4d79ff59;outline:none;transform:translateY(-4px)}.project-card img{object-fit:contain;background:var(--mist);border-radius:16px;width:72px;height:72px}.project-card h3{font-family:var(--font-display);color:var(--navy);letter-spacing:-.02em;margin:0;font-size:1.05rem;font-weight:700}.project-card p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.45}.project-group.is-secondary .project-card{background:var(--surface);box-shadow:none}.project-group.is-secondary .project-card img{width:56px;height:56px}.project-dialog{border-radius:calc(var(--radius) + 4px);background:var(--white);border:none;width:min(560px,100% - 2rem);max-height:calc(100% - 3rem);padding:0;box-shadow:0 24px 64px #23314047}.project-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2331408c}.project-dialog[open]{animation:dialog-in .3s var(--ease)}@keyframes dialog-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.dialog-body{text-align:center;padding:2rem 1.75rem 1.75rem}.dialog-body img{object-fit:contain;background:var(--mist);border-radius:20px;width:96px;height:96px;margin:0 auto 1.25rem}.dialog-body h2{font-family:var(--font-display);color:var(--navy);letter-spacing:-.03em;margin:0 0 .75rem;font-size:1.65rem}.dialog-body p{color:var(--ink);text-align:left;margin:0 0 1rem}.dialog-meta{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:.75rem 1.5rem;margin:0 0 1.25rem;padding:0;font-size:.9rem;list-style:none;display:flex}.dialog-meta strong{color:var(--navy)}.dialog-links{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.dialog-links a{font-family:var(--font-display);background:var(--mist);color:var(--navy);border-radius:999px;padding:.55rem 1rem;font-size:.85rem;font-weight:600;text-decoration:none}.dialog-links a:hover{background:var(--blue);color:var(--white)}.dialog-close{appearance:none;font-family:var(--font-display);background:var(--navy);color:var(--white);cursor:pointer;border:none;border-radius:999px;padding:.7rem 1.4rem;font-size:.9rem;font-weight:600;transition:background .2s}.dialog-close:hover{background:var(--blue)}.contact{background:var(--dark);color:#ffffffe0;padding:4.5rem 1.5rem 2rem}.contact .section-title{color:var(--white)}.contact .section-lead{color:#ffffffa6}.contact-grid{text-align:center;grid-template-columns:repeat(3,1fr);gap:2rem;margin-bottom:3rem;display:grid}.contact-grid h3{font-family:var(--font-display);color:var(--white);margin:0 0 .5rem;font-size:1rem;font-weight:700}.contact-grid p{margin:0;font-size:.95rem}.social-links{justify-content:center;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.social-links a{width:44px;height:44px;color:var(--white);border:1.5px solid #ffffff59;border-radius:50%;place-items:center;text-decoration:none;transition:background .2s,border-color .2s;display:grid}.social-links a:hover{background:var(--blue);border-color:var(--blue)}.social-links svg{fill:currentColor;width:18px;height:18px}.footer-copy{text-align:center;color:#ffffff80;border-top:1px solid #ffffff1f;padding-top:1.5rem;font-size:.85rem}@media (width<=640px){.contact-grid{grid-template-columns:1fr;gap:1.75rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
