@font-face{font-family:"DM Sans";src:url("../fonts/DMSans-Variable.ttf") format("truetype");font-style:normal;font-weight:100 1000;font-display:swap}
@font-face{font-family:"Manrope";src:url("../fonts/Manrope-Variable.ttf") format("truetype");font-style:normal;font-weight:200 800;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/JetBrainsMono-Variable.ttf") format("truetype");font-style:normal;font-weight:100 800;font-display:swap}
:root{--ink:#07101f;--ink2:#0b1729;--blue:#1677ff;--cyan:#55c7ff;--paper:#f5f7fb;--white:#fff;--text:#122039;--muted:#60708a;--line:rgba(18,32,57,.12);--radius:22px;--shell:min(1180px,calc(100% - 48px));--type-display:clamp(2.5rem,2rem + 2.2vw,4rem);--type-h1:clamp(2.15rem,1.8rem + 1.7vw,3.25rem);--type-h1-compact:clamp(1.8rem,1.55rem + .95vw,2.4rem);--type-h2:clamp(1.55rem,1.4rem + .75vw,2.125rem);--type-h3:clamp(1.2rem,1.1rem + .45vw,1.5rem);--type-article-h1:clamp(1.65rem,1.4rem + .85vw,2.2rem);--type-article-h2:clamp(1.4rem,1.25rem + .55vw,1.8rem);--type-body:1rem;--type-lead:1.0625rem;--type-small:.875rem;--type-heading-line-height:1.15;--type-body-line-height:1.62}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--text);font-family:"DM Sans",sans-serif;font-size:var(--type-body);line-height:var(--type-body-line-height);-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:"Manrope",sans-serif;letter-spacing:-.035em;line-height:var(--type-heading-line-height)}h1{font-size:var(--type-h1)}h2{font-size:var(--type-h2)}h3{font-size:var(--type-h3)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.shell{width:var(--shell);margin-inline:auto}.skip-link{position:fixed;top:-60px;left:20px;background:#fff;padding:12px 18px;z-index:999}.skip-link:focus{top:20px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.site-header{position:fixed;inset:0 0 auto;z-index:50;border-bottom:1px solid transparent;transition:.3s}.site-header.scrolled{background:rgba(7,16,31,.82);backdrop-filter:blur(18px);border-color:rgba(255,255,255,.1)}.nav{height:84px;display:flex;align-items:center;justify-content:space-between}.brand img{display:block;width:190px;filter:brightness(0) invert(1)}.nav-menu{display:flex;align-items:center;gap:34px;color:#c8d1df;font-size:.92rem}.nav-menu>a:not(.nav-cta):hover{color:#fff}.nav-cta{padding:11px 17px;border:1px solid rgba(255,255,255,.25);border-radius:100px;color:#fff}.nav-cta span,.button span,.inline-link span,.contact-direct span{margin-left:8px}.menu-toggle{display:none;background:none;border:0;padding:8px}.menu-toggle span{display:block;width:24px;height:2px;background:#fff;margin:5px}
.hero{min-height:900px;padding:170px 0 0;background:var(--ink);color:#fff;position:relative;overflow:hidden}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to bottom,#000,transparent 80%)}.hero-glow{position:absolute;width:700px;height:700px;border-radius:50%;right:-150px;top:-120px;background:radial-gradient(circle,rgba(22,119,255,.27),transparent 65%)}.hero-inner{position:relative;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:70px}.eyebrow,.kicker{font-size:.72rem;font-weight:700;letter-spacing:.16em}.eyebrow{color:#9fb0c9;display:flex;align-items:center;gap:10px}.eyebrow>span{width:26px;height:1px;background:var(--cyan)}.hero h1{font-size:var(--type-display);max-width:800px;margin:24px 0 28px}.hero h1 em{font-style:normal;color:var(--cyan)}.hero-lede{max-width:620px;font-size:var(--type-lead);color:#aebbd0}.hero-actions{display:flex;align-items:center;gap:32px;margin:38px 0 62px}.button{border:0;border-radius:100px;padding:15px 23px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;cursor:pointer;transition:.25s}.primary{background:var(--blue);color:#fff}.primary:hover{background:#368bff;transform:translateY(-2px)}.text-link{color:#d6dfed;font-weight:600}.trust-line{display:flex;align-items:center;gap:14px;color:#70819a;font-size:.63rem;letter-spacing:.16em}.trust-line i{width:4px;height:4px;background:#34465e;border-radius:50%}
.hero-system{height:530px;position:relative}.system-orbit{position:absolute;border:1px solid rgba(85,199,255,.22);border-radius:50%;inset:70px 30px}.orbit-two{inset:125px 85px;border-style:dashed;animation:spin 25s linear infinite}.system-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:190px;height:190px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#203f70,#0c1a30 65%);border:1px solid rgba(85,199,255,.4);box-shadow:0 0 70px rgba(22,119,255,.24);display:grid;place-content:center;text-align:center}.system-core span{font:bold 3.5rem Manrope;color:#fff;letter-spacing:-.08em}.system-core small{color:#6ed0ff;font-size:.55rem;letter-spacing:.25em}.signal{position:absolute;background:rgba(11,23,41,.78);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:13px 16px;display:flex;gap:12px;align-items:center;box-shadow:0 18px 40px rgba(0,0,0,.25);backdrop-filter:blur(12px)}.signal b{color:var(--cyan);font-size:.65rem}.signal span{font-size:.75rem;line-height:1.25;color:#d7e0ee}.signal-a{top:60px;left:0}.signal-b{top:160px;right:-10px}.signal-c{bottom:70px;left:30px}.system-status{position:absolute;right:10px;bottom:25px;font-size:.7rem;color:#8294ae}.system-status i{display:inline-block;width:7px;height:7px;background:#41e49c;border-radius:50%;margin-right:7px;box-shadow:0 0 12px #41e49c}.metrics{position:relative;margin-top:95px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.12)}.metrics div{padding:32px 0 38px;border-right:1px solid rgba(255,255,255,.12)}.metrics div+div{padding-left:36px}.metrics strong{font:700 2rem Manrope;display:block}.metrics span{color:#8493a9;font-size:.75rem}
.section{padding:125px 0}.intro{background:#fff}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:end}.kicker{color:var(--blue);margin-bottom:20px}.intro h2,.section-head h2,.approach h2{font-size:var(--type-h2);margin:0}.intro h2 span{color:#8491a4}.intro-copy>p{font-size:var(--type-lead);color:var(--muted)}.inline-link{display:inline-block;margin-top:14px;color:var(--blue);font-weight:700;border-bottom:1px solid #b8d6ff;padding-bottom:5px}.expertise{background:var(--paper)}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:55px}.section-head>p{max-width:310px;color:var(--muted);margin:0}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.service-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px 36px;min-height:385px;transition:.3s}.service-card:hover{transform:translateY(-5px);box-shadow:0 22px 50px rgba(22,43,80,.09)}.service-card.featured{background:var(--blue);color:#fff;border-color:var(--blue)}.card-top{display:flex;justify-content:space-between;color:#8491a4;font-size:.75rem}.featured .card-top{color:#b9d5ff}.card-top b{font-size:1.1rem}.service-card h3{font-size:var(--type-h3);margin:55px 0 18px}.service-card p{max-width:470px;color:var(--muted)}.featured p{color:#d4e4ff}.service-card ul{list-style:none;padding:18px 0 0;margin:22px 0 0;border-top:1px solid var(--line);display:flex;gap:18px;flex-wrap:wrap;color:#64748b;font-size:.78rem}.featured ul{border-color:rgba(255,255,255,.22);color:#fff}.service-card li:before{content:"+";margin-right:6px;color:var(--blue)}.featured li:before{color:var(--cyan)}
.approach{background:var(--ink2);color:#fff}.approach-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:120px}.approach-copy{position:sticky;top:130px;align-self:start}.approach-copy>p:not(.kicker){color:#9caac0;max-width:470px;margin:26px 0 32px}.light{background:#fff;color:var(--ink)}.steps{border-top:1px solid rgba(255,255,255,.15)}.step{display:grid;grid-template-columns:65px 1fr;padding:30px 0;border-bottom:1px solid rgba(255,255,255,.15)}.step>span{font-size:.7rem;color:var(--cyan)}.step h3{font-size:var(--type-h3);margin-bottom:8px}.step p{color:#92a0b5;margin:0}.why{background:#fff}.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.why-grid article{background:#fff;padding:45px 38px;min-height:260px}.why-grid span{font-size:.7rem;color:var(--blue)}.why-grid h3{font-size:var(--type-h3);margin:50px 0 14px}.why-grid p{color:var(--muted);font-size:.93rem}
.contact{position:relative;overflow:hidden;background:#081426;color:#fff;padding:120px 0}.contact-glow{position:absolute;width:650px;height:650px;background:radial-gradient(circle,rgba(22,119,255,.25),transparent 67%);left:-240px;bottom:-300px}.contact-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:110px}.contact-copy h2{font-size:var(--type-h2);margin:30px 0}.contact-copy>p:not(.eyebrow){color:#a4b1c4;max-width:530px}.contact-direct{display:flex;flex-direction:column;gap:8px;margin-top:45px;font-weight:600}.contact-direct .contact-email{color:var(--cyan)}.contact-form{background:#fff;color:var(--text);padding:34px;border-radius:var(--radius)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-form label{display:block;margin-bottom:18px}.contact-form label span{display:block;font-size:.72rem;font-weight:700;margin-bottom:7px}.contact-form input,.contact-form textarea{width:100%;border:1px solid #dce2eb;border-radius:10px;padding:13px 14px;background:#f8fafc;outline:none}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(22,119,255,.1)}.contact-form textarea{resize:vertical}.contact-form .button{width:100%}.form-note{font-size:.72rem;text-align:center;color:#7b8798;margin:12px 0 0}footer{background:#050c17;color:#8997aa;padding:60px 0}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:60px;align-items:end}.footer-brand img{width:170px}.footer-grid>div:first-child p{font-size:.8rem;margin:8px 0 0}.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px;color:#c1cad7;font-size:.85rem}.footer-meta{text-align:right;font-size:.75rem}.footer-meta p{margin:4px 0}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.orbit-two{animation:none}}
@media(max-width:900px){:root{--shell:min(100% - 32px,700px)}.nav-menu{position:fixed;inset:84px 0 auto;background:#0a1526;padding:28px;display:none;flex-direction:column;align-items:stretch}.nav-menu.open{display:flex}.menu-toggle{display:block}.hero{padding-top:140px;min-height:auto}.hero-inner,.intro-grid,.approach-grid,.contact-grid{grid-template-columns:1fr;gap:60px}.hero-system{height:420px;max-width:540px;width:100%;margin:auto}.metrics{grid-template-columns:1fr 1fr}.metrics div:nth-child(2){border-right:0}.metrics div+div{padding-left:20px}.intro-grid{align-items:start}.section{padding:90px 0}.approach-copy{position:static}.section-head{align-items:start;gap:30px}.footer-grid{grid-template-columns:1fr 1fr}.footer-meta{grid-column:1/-1;text-align:left}}
@media(max-width:600px){.brand img{width:160px}.nav{height:74px}.nav-menu{inset-block-start:74px}.hero h1{font-size:var(--type-display)}.hero-actions{align-items:flex-start;flex-direction:column}.hero-system{height:360px}.system-orbit{inset:55px 0}.orbit-two{inset:105px 50px}.system-core{width:150px;height:150px}.system-core span{font-size:2.7rem}.signal{padding:10px}.signal-b{right:0}.signal-c{left:0}.metrics{margin-top:55px}.metrics div{padding:24px 0}.metrics div+div{padding-left:14px}.metrics strong{font-size:1.5rem}.section-head{display:block}.section-head>p{margin-top:20px}.service-grid,.why-grid,.field-row{grid-template-columns:1fr}.service-card{padding:28px 25px;min-height:auto}.service-card h3{margin-top:38px}.why-grid article{min-height:auto}.contact-form{padding:24px}.footer-grid{grid-template-columns:1fr}.footer-meta{grid-column:auto}.trust-line{gap:9px;font-size:.53rem}}
.hero-art{margin:0;position:relative;display:flex;justify-content:center;min-width:52vw;transform:translateX(-8%)}.hero-art img{display:block;width:min(100%,900px);height:auto;object-fit:contain;filter:saturate(.88) contrast(1.05);mix-blend-mode:screen}@media(max-width:900px){.hero-art{width:100%;min-width:0;transform:none}}

/* Shared visual system */
:root{--ink:#0758b8;--ink2:#eaf3ff;--paper:#f5f9ff;--text:#102849;--muted:#58708f}
.hero{background:linear-gradient(135deg,#0754b5 0%,#0a75d1 58%,#1596de 100%)}
.hero-grid{background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px)}
.hero-glow{background:radial-gradient(circle,rgba(112,216,255,.42),transparent 66%)}
.expertise{background:#f4f8ff}
.approach{background:#eaf3ff;color:var(--text)}
.approach-copy>p:not(.kicker),.step p{color:#5e7390}
.steps{border-top-color:rgba(7,88,184,.18)}
.step{border-bottom-color:rgba(7,88,184,.18)}
.light{background:var(--blue);color:#fff}
.contact{background:linear-gradient(135deg,#0754b5,#0a7bd2)}
.contact-glow{background:radial-gradient(circle,rgba(112,216,255,.4),transparent 67%)}

/* Shared header, navigation, and footer */
.site-header{background:#fff;border-color:rgba(5,38,99,.1)}
.site-header.scrolled{background:rgba(255,255,255,.96);border-color:rgba(5,38,99,.12);box-shadow:0 8px 30px rgba(5,38,99,.08)}
.brand{position:relative;display:block;width:150px;height:auto;flex:none;overflow:visible}
.brand img{position:static;display:block;width:100%;max-width:100%;height:auto;filter:none}
.nav>.brand--tagged{display:flex;width:212px;height:78px;margin-left:8px;flex-direction:column;align-items:center;justify-content:center;overflow:visible}
.nav>.brand--tagged img{display:block;width:100%;height:66px;flex:none;object-fit:cover;object-position:center 51.5%;filter:none;image-rendering:auto;backface-visibility:hidden}

.nav-menu{gap:28px;color:#666a70;font-size:1rem;font-weight:600}
.nav-menu>a:not(.nav-cta):hover,.nav-menu>a[aria-current="page"]{color:#064fff}
.nav-cta{padding:11px 17px;background:#064fff;border-color:#064fff;color:#fff}
.menu-toggle span{background:#08265f}
footer{padding:46px 0;background:#064b9c;color:#c4ddf7}
.footer-nav{color:#fff}
.footer-brand{width:190px;height:62px;padding:0;overflow:hidden;background:transparent;border-radius:0;box-shadow:none}
.footer-brand img{display:block;width:100%;max-width:none;height:100%;object-fit:cover;object-position:center 52%;background:transparent;mix-blend-mode:normal}
.footer-grid>div:first-child .footer-relationship{margin-top:16px;color:#fff;font-weight:700}
.footer-resource-message{width:max-content;max-width:none;line-height:1.55;white-space:nowrap}
.footer-tagline{white-space:nowrap}
.footer-resource-link{display:inline;margin:0;color:#fff;font-size:inherit;font-weight:700;text-decoration:underline;text-decoration-color:rgba(255,255,255,.42);text-underline-offset:4px}
.footer-resource-link:hover,.footer-resource-link:focus-visible{color:#fff;text-decoration-color:#fff}

/* Shared component density */
.section{padding:68px 0}
.section-head{margin-bottom:38px}
.expertise-links{display:flex;align-items:center;gap:20px;max-width:100%;margin-top:9px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.expertise-links::-webkit-scrollbar{display:none}
.expertise-links .inline-link{flex:0 0 auto;margin-top:0;padding-bottom:2px;font-size:.82rem}
.intro-copy>p,.section-head>p,.service-card p,.why-grid p,.step p,.approach-copy>p:not(.kicker),.contact-copy>p:not(.eyebrow){font-size:var(--type-body)}
.service-grid{gap:14px}
.service-card{min-height:0;padding:22px 24px}
.service-card h3{margin:0 0 12px;font-size:var(--type-h3)}
.service-card p{margin-bottom:0;line-height:1.55}
.service-card ul{gap:10px 16px;margin:14px 0 0;padding:12px 0 0}
.service-card .practice-lead{display:flex;align-items:center;gap:8px;margin:0 0 18px;color:#5e7089;font-size:.73rem;font-weight:700;letter-spacing:.02em}
.service-card .practice-lead span{color:#e41f26;font-size:.62rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.service-card.featured .practice-lead,.service-card.featured .practice-lead span{color:#fff}
.why{padding:68px 0}
.why .section-head{margin-bottom:34px}
.why-grid article{min-height:0;padding:24px 26px}
.why-grid h3{margin:0 0 9px;font-size:var(--type-h3)}
.why-grid p{margin:0;line-height:1.55}
.contact{padding:72px 0}
.article-main .hero{min-height:0}
.projects-main{min-height:calc(100vh - 210px);padding-top:84px;background:#fff}

@media(max-width:1240px){
  .nav-menu{position:fixed;inset:84px 0 auto;background:#0a1526;padding:28px;display:none;flex-direction:column;align-items:stretch;gap:18px;color:#fff;font-size:1.04rem}
  .nav-menu.open{display:flex}
  .nav-menu a,.nav-menu>a:not(.nav-cta){color:#fff}
  .nav-menu>a:not(.nav-cta):hover,.nav-menu>a:not(.nav-cta):focus-visible{color:#fff}
  .menu-toggle{display:block}
}
@media(max-width:900px){
  .nav-menu{font-size:1.04rem;gap:18px}
  .nav-menu,.nav-menu a,.nav-menu>a:not(.nav-cta){color:#fff}
  .nav-menu>a:not(.nav-cta):hover,.nav-menu>a:not(.nav-cta):focus-visible{color:#fff}
  .section{padding:58px 0}
  .contact{padding:62px 0}
}
.form-note.is-success{color:#167048}.form-note.is-error{color:#b42318}
@media(max-width:600px){
  .nav>.brand--tagged{width:176px;height:64px;margin-left:4px}
  .nav>.brand--tagged img{height:53px}
  
  .footer-brand{width:170px;height:56px}
  .section{padding:50px 0}
  .service-card{padding:20px}
  .service-card h3{margin-top:0;font-size:var(--type-h3)}
  .why{padding:52px 0}
  .why .section-head{margin-bottom:28px}
  .why-grid article{padding:21px 20px}
  .contact{padding:54px 0}
  footer{padding:40px 0}
}

/* Projects */
.projects-main{min-height:calc(100vh - 210px);padding-top:84px;background:#fff}
.projects-hero{padding:78px 0 70px;background:linear-gradient(135deg,#063f91 0%,#0769c3 58%,#1194d8 100%);color:#fff;overflow:hidden}
.projects-hero-inner{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:72px;align-items:end}
.projects-eyebrow{margin:0 0 18px;color:#b9dcff;font-size:.72rem;font-weight:800;letter-spacing:.16em}
.projects-eyebrow span{padding-inline:7px;color:#fff}
.projects-hero h1{max-width:760px;margin:0 0 20px;font-size:clamp(2.15rem,1.7rem + 1.8vw,3.35rem)}
.projects-hero-lede{max-width:720px;margin:0;color:#d8eaff;font-size:1.08rem;line-height:1.65}
.projects-summary{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid rgba(255,255,255,.24);border-radius:18px;background:rgba(0,42,100,.22);backdrop-filter:blur(10px)}
.projects-summary div{padding:22px 18px}
.projects-summary div+div{border-left:1px solid rgba(255,255,255,.18)}
.projects-summary strong{display:block;margin-bottom:4px;font:700 1.75rem Manrope,sans-serif;color:#fff}
.projects-summary span{display:block;color:#c9e1fa;font-size:.72rem;line-height:1.35}
.projects-intro{padding:70px 0 62px;background:#fff}
.projects-intro-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;align-items:start}
.projects-intro h2{max-width:500px;margin:0;font-size:var(--type-h2)}
.projects-intro-copy{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.projects-intro-copy p{margin:0;color:var(--muted);line-height:1.72}
.projects-context{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:48px;border:1px solid var(--line);background:var(--line)}
.projects-context article{min-height:210px;padding:27px 28px;background:#fff}
.projects-context h3{margin:0 0 10px;font-size:1.12rem}
.projects-context p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.58}
.project-scale-legend{display:grid;grid-template-columns:minmax(260px,.7fr) 1.3fr;gap:46px;align-items:center;margin-top:34px;padding:24px 28px;border-radius:16px;background:#f3f7fd}
.project-scale-legend>p{margin:0;color:#4e6380;font-size:.83rem;line-height:1.55}
.project-scale-legend>div{display:flex;gap:14px 20px;flex-wrap:wrap}
.project-scale-legend>div>span{display:flex;align-items:center;gap:7px;color:#60708a;font-size:.72rem}
.scale{display:inline-flex;align-items:center;justify-content:center;width:max-content;border-radius:999px;padding:5px 10px;font-size:.68rem;font-weight:800;line-height:1.2;white-space:nowrap}
.scale-focused{background:#e8f6ed;color:#14743a}
.scale-standard{background:#e7f1ff;color:#0758b8}
.scale-complex{background:#fff0d8;color:#9a5700}
.scale-enterprise{background:#f3e9ff;color:#6f35aa}
.project-explorer{padding:70px 0 84px;background:#f4f8fe}
.project-explorer-heading{display:flex;justify-content:space-between;align-items:end;gap:48px;margin-bottom:32px}
.project-explorer-heading h2{margin:0}
.project-explorer-heading>p{max-width:520px;margin:0;color:var(--muted)}
.project-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin-bottom:18px}
.project-search{display:block;position:relative}
.project-search:before{content:"";position:absolute;left:19px;top:50%;width:12px;height:12px;border:2px solid #6b7e99;border-radius:50%;transform:translateY(-60%)}
.project-search:after{content:"";position:absolute;left:31px;top:55%;width:7px;height:2px;background:#6b7e99;transform:rotate(45deg)}
.project-search input{width:100%;min-height:50px;padding:13px 18px 13px 49px;border:1px solid #d4dfec;border-radius:12px;background:#fff;color:var(--text);outline:none}
.project-search input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(22,119,255,.12)}
.project-clear{min-height:50px;padding:12px 18px;border:1px solid #d4dfec;border-radius:12px;background:#fff;color:#35506f;font-weight:700;cursor:pointer}
.project-clear:hover,.project-clear:focus-visible{border-color:#9fbce0;color:var(--blue)}
.project-year-filter{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 12px;scrollbar-width:thin}
.project-year{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:9px 13px;border:1px solid #d4dfec;border-radius:999px;background:#fff;color:#3f5875;font-size:.82rem;font-weight:800;cursor:pointer;white-space:nowrap}
.project-year span{color:#8293a9;font-size:.68rem}
.project-year:hover,.project-year:focus-visible{border-color:#91b7e5;color:var(--blue)}
.project-year.is-active{border-color:var(--blue);background:var(--blue);color:#fff;box-shadow:0 7px 18px rgba(22,119,255,.2)}
.project-year.is-active span{color:#d8eaff}
.project-results-bar{display:flex;justify-content:space-between;gap:30px;margin:8px 0 18px;padding:0 3px;color:#73839a;font-size:.78rem}
.project-results-bar p{margin:0}
.project-results-bar p:first-child{color:#243c5b;font-weight:800}
.project-list{display:grid;gap:10px}
.project-card{content-visibility:auto;contain-intrinsic-size:92px;border:1px solid #dce5f0;border-radius:15px;background:#fff;box-shadow:0 4px 16px rgba(32,69,115,.035);overflow:hidden}
.project-card[hidden]{display:none}
.project-card summary{display:grid;grid-template-columns:minmax(0,1fr) auto 24px;gap:18px;align-items:center;min-height:92px;padding:17px 20px;cursor:pointer;list-style:none}
.project-card summary::-webkit-details-marker{display:none}
.project-card summary:hover{background:#f9fbfe}
.project-card summary:focus-visible{outline:3px solid rgba(22,119,255,.25);outline-offset:-3px}
.project-card-heading{display:flex;min-width:0;flex-direction:column}
.project-card-heading strong{overflow-wrap:anywhere;color:#142f52;font:700 1rem/1.35 Manrope,sans-serif;letter-spacing:-.015em}
.project-card-heading>span:last-child{margin-top:4px;color:#6e8098;font-size:.76rem}
.project-card-period{margin-bottom:3px;color:var(--blue);font-size:.68rem;font-weight:800;letter-spacing:.08em}
.project-card-toggle{position:relative;width:22px;height:22px;border-radius:50%;background:#edf4fd}
.project-card-toggle:before,.project-card-toggle:after{content:"";position:absolute;left:6px;top:10px;width:10px;height:2px;background:#176ec9}
.project-card-toggle:after{transform:rotate(90deg);transition:transform .2s ease}
.project-card[open]{border-color:#b8cce4;box-shadow:0 14px 34px rgba(32,69,115,.08)}
.project-card[open]>summary{border-bottom:1px solid #e3eaf3;background:#f9fbfe}
.project-card[open] .project-card-toggle:after{transform:rotate(0)}
.project-card-body{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,.65fr);gap:42px;padding:30px 38px 36px}
.project-card-description{color:#405875}
.project-card-description p{margin:0 0 14px;line-height:1.66}
.project-card-description p:last-child{margin-bottom:0}
.project-card-description strong{color:#17385f}
.project-card-technical{align-self:start;padding:24px;border-radius:13px;background:#eef5fd}
.project-card-label{margin:0 0 7px!important;color:#6d85a3!important;font-size:.67rem!important;font-weight:800;letter-spacing:.1em;line-height:1.4!important;text-transform:uppercase}
.project-card-technical h3{margin:0 0 8px;color:#17385f;font-size:1rem;letter-spacing:-.015em}
.project-card-technical>p:not(.project-card-label){margin:0 0 22px;color:#49627f;font-size:.82rem;line-height:1.58}
.project-drivers{display:flex;gap:7px;flex-wrap:wrap}
.project-drivers span{padding:5px 8px;border:1px solid #cbdcef;border-radius:999px;background:#fff;color:#49627f;font-size:.67rem;font-weight:700}
.project-empty{padding:55px 30px;border:1px dashed #b8c9dd;border-radius:16px;background:#fff;text-align:center}
.project-empty h3{margin-bottom:8px}
.project-empty p{margin:0;color:var(--muted)}
@media(max-width:900px){
  .projects-main{padding-top:84px}
  .projects-hero{padding:58px 0}
  .projects-hero-inner,.projects-intro-grid{grid-template-columns:1fr;gap:40px}
  .projects-summary{max-width:560px}
  .projects-intro-copy{grid-template-columns:1fr;gap:16px}
  .projects-context{grid-template-columns:1fr}
  .projects-context article{min-height:0}
  .project-scale-legend{grid-template-columns:1fr;gap:18px}
  .project-explorer-heading{display:block}
  .project-explorer-heading>p{margin-top:16px}
  .project-card-body{grid-template-columns:1fr;padding:28px 28px 32px}
}
@media(max-width:600px){
  .projects-main{padding-top:74px}
  .projects-hero{padding:46px 0}
  .projects-summary{grid-template-columns:1fr}
  .projects-summary div{display:flex;align-items:baseline;gap:10px;padding:14px 17px}
  .projects-summary div+div{border-top:1px solid rgba(255,255,255,.18);border-left:0}
  .projects-summary strong{margin:0;font-size:1.4rem}
  .projects-intro{padding:50px 0}
  .projects-context{margin-top:34px}
  .project-scale-legend{padding:20px}
  .project-scale-legend>div{align-items:flex-start;flex-direction:column}
  .project-explorer{padding:52px 0 62px}
  .project-controls{grid-template-columns:1fr}
  .project-clear{width:100%}
  .project-results-bar{display:block}
  .project-results-bar p+ p{margin-top:5px}
  .project-card summary{grid-template-columns:minmax(0,1fr) 22px;gap:10px;padding:16px 14px}
  .project-card summary>.scale{grid-column:1;margin-top:7px}
  .project-card-toggle{grid-column:2;grid-row:1/span 2}
  .project-card-body{display:block;padding:22px 18px 25px}
  .project-card-technical{margin-top:24px;padding:20px}
}

/* Visual site map */
.sitemap-main{min-height:calc(100vh - 210px);padding-top:84px;background:#fff}
.sitemap-hero{padding:68px 0;background:linear-gradient(135deg,#063f91 0%,#0769c3 58%,#1194d8 100%);color:#fff}
.sitemap-eyebrow{margin:0 0 16px;color:#c3e1ff;font-size:.72rem;font-weight:800;letter-spacing:.16em}
.sitemap-hero h1{margin:0 0 16px;font-size:clamp(2.15rem,1.8rem + 1.4vw,3.1rem)}
.sitemap-hero>div>p:last-child{max-width:720px;margin:0;color:#d9eaff;font-size:1.05rem;line-height:1.65}
.sitemap-content{padding:64px 0 78px;background:#f4f8fe}
.sitemap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.sitemap-card{padding:28px;border:1px solid #dce5f0;border-radius:18px;background:#fff}
.sitemap-card-label{margin:0 0 12px;color:var(--blue);font-size:.68rem;font-weight:800;letter-spacing:.13em}
.sitemap-card h2{margin:0 0 22px;font-size:1.25rem}
.sitemap-card ul{list-style:none;margin:0;padding:0;border-top:1px solid #e4eaf2}
.sitemap-card li{border-bottom:1px solid #e4eaf2}
.sitemap-card li:last-child{border-bottom:0}
.sitemap-card li a{display:flex;justify-content:space-between;gap:18px;padding:12px 0;color:#36516f;font-size:.88rem;font-weight:700}
.sitemap-card li a span,.sitemap-section-heading>a span{color:var(--blue)}
.sitemap-card li a:hover,.sitemap-card li a:focus-visible{color:var(--blue)}
.sitemap-journal{margin-top:48px;padding:34px 36px 38px;border:1px solid #dce5f0;border-radius:18px;background:#fff}
.sitemap-section-heading{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:24px}
.sitemap-section-heading h2{margin:0}
.sitemap-section-heading>a{color:#315271;font-size:.85rem;font-weight:800}
.sitemap-article-list{display:grid;grid-template-columns:1fr 1fr;gap:0 34px;margin:0;padding:0;list-style:none;border-top:1px solid #e3eaf3}
.sitemap-article-list li{border-bottom:1px solid #e3eaf3}
.sitemap-article-list a{display:block;padding:14px 2px;color:#294665;font-size:.86rem;font-weight:700;line-height:1.45}
.sitemap-article-list a:hover,.sitemap-article-list a:focus-visible{color:var(--blue)}
@media(max-width:900px){
  .sitemap-main{padding-top:84px}
  .sitemap-grid{grid-template-columns:1fr}
  .sitemap-article-list{grid-template-columns:1fr}
}
@media(max-width:600px){
  .sitemap-main{padding-top:74px}
  .sitemap-hero{padding:48px 0}
  .sitemap-content{padding:48px 0 60px}
  .sitemap-card{padding:23px}
  .sitemap-journal{margin-top:34px;padding:24px 21px 28px}
  .sitemap-section-heading{display:block}
  .sitemap-section-heading>a{display:inline-block;margin-top:13px}
}

/* Compact shared footer */
.contact-reference{display:inline-block;margin-top:17px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.45);color:#fff;font-weight:700}
.contact-reference span{margin-left:8px}
.contact-reference:hover{border-color:#fff}

footer{padding:28px 0}
.footer-grid{grid-template-columns:minmax(210px,.85fr) minmax(430px,1.45fr) minmax(235px,.75fr);gap:36px;align-items:start}
.footer-nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px 18px}
.footer-meta{padding-top:2px}
.footer-meta .footer-tagline{margin-top:10px;line-height:1.45}
.footer-meta a:hover,.footer-meta a:focus-visible{color:#fff}
.footer-visit-row{margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,255,255,.2);text-align:center}
.footer-visit{appearance:none;margin:0;padding:0;border:0;background:transparent;color:#e4f1ff;font:inherit;font-size:.75rem;line-height:1.55;text-decoration:underline;text-decoration-color:rgba(228,241,255,.45);text-underline-offset:4px;cursor:pointer}
.footer-visit:hover{color:#fff;text-decoration-color:#fff}
.footer-visit:focus-visible{outline:2px solid #fff;outline-offset:5px;border-radius:2px}
.footer-visit:disabled{cursor:default;text-decoration:none}
.visit-map-dialog{width:min(1120px,calc(100% - 32px));max-width:none;max-height:min(880px,calc(100vh - 32px));margin:auto;padding:0;border:0;border-radius:20px;background:#f5f8fc;color:#10213d;box-shadow:0 30px 90px rgba(2,18,46,.36);overflow:auto}
.visit-map-dialog::backdrop{background:rgba(3,14,31,.72);backdrop-filter:blur(5px)}
.visit-map-panel{padding:30px}
.visit-map-header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px}
.visit-map-heading{max-width:740px}
.visit-map-kicker{margin:0 0 8px;color:#0965ca;font-size:clamp(.82rem,1.6vw,.95rem);font-weight:800;letter-spacing:.16em}
.visit-map-heading h2{margin:0;font-size:clamp(1.7rem,4vw,2.55rem);letter-spacing:-.035em}
.visit-map-introduction{margin:10px 0 0;color:#52647c;font-size:.9rem;line-height:1.6}
.visit-map-close{appearance:none;padding:9px 13px;border:1px solid #cad6e5;border-radius:999px;background:#fff;color:#24405f;font:700 .72rem Manrope,sans-serif;cursor:pointer}
.visit-map-close:hover{border-color:#0965ca;color:#0965ca}
.visit-map-close:focus-visible{outline:3px solid rgba(9,101,202,.22);outline-offset:2px}
.visit-map-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0}
.visit-map-stat{padding:15px 17px;border:1px solid #dce5f0;border-radius:13px;background:#fff}
.visit-map-stat strong{display:block;color:#0754b5;font:800 1.45rem Manrope,sans-serif}
.visit-map-stat span{display:block;margin-top:2px;color:#66768a;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.visit-map-status{margin:30px 0;padding:28px;border:1px dashed #b9c9dc;border-radius:14px;background:#fff;text-align:center;color:#52647c}
.visit-map-status.is-error{border-color:#dca8ad;background:#fff7f7;color:#8b2631}
.visit-map-content{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.65fr);gap:22px;align-items:stretch}
.visit-map-figure{min-width:0;margin:0}
.visit-map-viewport{overflow:hidden;border:1px solid #cbd9e8;border-radius:16px;background:#ddecfa;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}
.visit-map-svg{display:block;width:100%;height:auto;aspect-ratio:2/1}
.visit-map-ocean{fill:#dcecf8}
.visit-map-graticule{stroke:#b5cfe2;stroke-width:.7;opacity:.7}
.visit-map-land{fill:#fff;stroke:#9db5c9;stroke-width:.75;vector-effect:non-scaling-stroke}
.visit-map-point{cursor:pointer;outline:none}
.visit-map-point-halo{fill:#0b68d4;opacity:.14;transform-box:fill-box;transform-origin:center;transition:opacity .2s,transform .2s}
.visit-map-point-circle{fill:#0754b5;stroke:#fff;stroke-width:2.5;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;transition:fill .2s,transform .2s}
.visit-map-point:hover .visit-map-point-halo,.visit-map-point:focus .visit-map-point-halo,.visit-map-point.is-active .visit-map-point-halo{opacity:.32;transform:scale(1.3)}
.visit-map-point:hover .visit-map-point-circle,.visit-map-point:focus .visit-map-point-circle,.visit-map-point.is-active .visit-map-point-circle{fill:#00a6d9;transform:scale(1.12)}
.visit-map-caption{margin-top:8px;color:#6a7889;font-size:.67rem}
.visit-map-caption a{color:#0754b5;text-decoration:underline;text-underline-offset:2px}
.visit-map-list-panel{display:flex;min-height:0;flex-direction:column;padding:16px;border:1px solid #d9e3ee;border-radius:16px;background:#fff}
.visit-map-list-panel h3{margin:0 0 12px;font-size:1rem}
.visit-map-list{display:flex;max-height:430px;overflow:auto;flex-direction:column;gap:7px;padding-right:4px}
.visit-map-location{appearance:none;width:100%;padding:11px 12px;border:1px solid #e0e7f0;border-radius:10px;background:#f8fafc;color:#203750;text-align:left;cursor:pointer}
.visit-map-location:hover,.visit-map-location.is-active{border-color:#7bb1e9;background:#eef6ff}
.visit-map-location:focus-visible{outline:3px solid rgba(9,101,202,.2);outline-offset:1px}
.visit-map-location strong,.visit-map-location span{display:block}
.visit-map-location strong{font-size:.79rem}
.visit-map-location span{margin-top:3px;color:#68798d;font-size:.68rem}
@media(max-width:900px){
  footer{padding:28px 0}
  .footer-grid{grid-template-columns:minmax(190px,.8fr) minmax(0,1.2fr);gap:26px 36px}
  .footer-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 16px}
  .footer-meta{grid-column:1/-1}
  .visit-map-panel{padding:24px}
  .visit-map-content{grid-template-columns:1fr}
  .visit-map-list{max-height:280px}
}
@media(max-width:600px){
  footer{padding:26px 0}
  .footer-grid{grid-template-columns:1fr;gap:20px}
  .footer-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 18px}
  .footer-meta{grid-column:auto}
  .visit-map-dialog{width:calc(100% - 18px);max-height:calc(100vh - 18px);border-radius:15px}
  .visit-map-panel{padding:18px}
  .visit-map-header{gap:14px}
  .visit-map-introduction{font-size:.8rem}
  .visit-map-close{padding:8px 10px}
  .visit-map-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:18px 0}
  .visit-map-stat{padding:11px}
  .visit-map-stat strong{font-size:1.1rem}
  .visit-map-stat span{font-size:.58rem}
}
