/* Otium: cool whites, the two supplied blues, and generous readable typography.
   Shape rule: 4px controls, 8px media, circles only for directional controls.
   Design variance 5 / motion 3 / density 3: calm, accessible brand evolution. */
:root{--blue:#004e89;--sky:#1a659e;--ink:#16364b;--muted:#536b7b;--light:#edf4f8;--line:#ccdce6;--white:#fff;--font:'Manrope',Arial,sans-serif;--ease:cubic-bezier(.22,1,.36,1);--page:1420px;--gutter:clamp(24px,4.5vw,76px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;font:400 1.0625rem/1.75 var(--font);background:var(--white);color:var(--ink)}body.modal-open{overflow:hidden}
button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button{border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid var(--sky);outline-offset:5px}button:focus-visible{outline-offset:4px}p,h1,h2,h3{margin:0}h1,h2,h3{font-weight:500;letter-spacing:-.045em;line-height:1.13;text-wrap:balance}h1{font-size:clamp(2.75rem,4.25vw,4.125rem);color:var(--blue)}h2{font-size:clamp(2.25rem,3.7vw,3.75rem)}h3{font-size:1.875rem}em{font-style:normal;color:var(--sky)}p{text-wrap:pretty}img{display:block;max-width:100%}
.header{height:80px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 var(--gutter);position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid #dce7ed;transition:box-shadow .3s}
.header.is-scrolled{box-shadow:0 6px 24px #16364b08}.brand{display:block;flex-shrink:0}.brand img{width:118px;height:57px;object-fit:contain}.header nav{display:flex;align-items:center;gap:clamp(16px,2.1vw,32px);font-size:.875rem;font-weight:600}.header nav a{position:relative;white-space:nowrap;padding:10px 0}.header nav a::after{content:'';position:absolute;bottom:4px;left:0;right:0;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.header nav a:hover::after,.header nav a[aria-current="location"]::after{transform:scaleX(1)}.header nav a[aria-current="location"]{color:var(--blue)}.menu-toggle{display:none}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;background:var(--blue);color:#fff;padding:16px 23px;border-radius:4px;font-size:1rem;line-height:1.5;font-weight:600;min-height:56px;transition:background .25s,transform .3s var(--ease);white-space:nowrap}.button.small{font-size:.875rem;min-height:44px;padding:10px 17px;gap:25px}.button>span{font-size:1.375rem;font-weight:400;line-height:1;display:inline-block;transition:transform .3s var(--ease)}.button:hover{background:var(--sky)}.button:active{transform:scale(.98)}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;color:var(--blue);font-weight:600;font-size:.9375rem;border:0;border-bottom:1px solid #004e8945;background:none;padding:9px 0;line-height:1.6;min-height:44px;transition:border-color .3s}.text-link:hover{border-color:var(--blue)}.text-link>span{display:inline-block;font-size:1.375rem;transition:transform .3s var(--ease)}
.hero{max-width:var(--page);margin:0 auto;display:grid;grid-template-columns:1.05fr 1fr;gap:40px;padding:38px var(--gutter) 0;align-items:start}.hero-copy{padding:55px 0 40px;min-width:0}.hero-description{font-size:.875rem;line-height:1.6;color:var(--blue);font-weight:600;margin-bottom:29px;max-width:30ch}.hero h1{margin-bottom:26px;max-width:none;text-wrap:initial}.hero h1 em{display:inline}.hero-intro{font-size:1.0625rem;color:var(--muted);max-width:37ch;line-height:1.8}.actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-top:31px}.hero-image{align-self:stretch;display:flex;flex-direction:column;min-width:0}.hero-image>img{width:100%;height:clamp(430px,38vw,575px);object-fit:cover;object-position:50% 45%;border-radius:8px}.image-caption{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}.image-caption div{display:flex;flex-direction:column;gap:3px}.image-caption strong{font-size:1.125rem;font-weight:600;color:var(--blue)}.image-caption small{font-size:.875rem;line-height:1.65;color:var(--muted)}.circle{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;color:var(--blue);font-size:1.25rem;transition:background .25s,color .25s,transform .3s}
.section{max-width:var(--page);margin:0 auto;padding:110px var(--gutter);scroll-margin-top:10px}.section-label{font-size:.875rem;line-height:1.5;font-weight:600;color:var(--blue);margin-bottom:25px}.intro{display:grid;grid-template-columns:1fr 2.45fr;gap:40px;padding-top:120px;padding-bottom:110px}.intro>.section-label{margin-top:10px}.intro h2{max-width:22ch}.intro-text{margin-top:34px;display:grid;grid-template-columns:1fr 1fr;gap:40px;color:var(--muted);font-size:1rem;max-width:850px}
.concepts{position:relative;background:#f6f9fb;border-radius:8px;padding-top:75px;padding-bottom:75px}.section-heading{max-width:730px;margin-bottom:44px}.section-heading .section-label{margin-bottom:18px}.section-heading h2{margin-bottom:20px}.section-heading p:not(.section-label){color:var(--muted);max-width:53ch;font-size:1rem}.concept-grid{display:grid;grid-template-columns:1.1fr 1fr;grid-template-rows:auto auto;gap:0 55px}.concept{min-width:0;position:relative;padding:26px 0;display:flex;flex-direction:column;border-top:1px solid var(--line)}.concept:first-child{grid-row:span 2;border:0;padding:40px;background:#e5eff5;border-radius:8px;justify-content:flex-start}.concept-top{font-size:.875rem;line-height:1.6;font-weight:500;color:var(--sky);margin-bottom:15px}.concept h3{color:var(--blue);margin-bottom:16px;letter-spacing:-.035em}.concept:first-child h3{font-size:clamp(2rem,3.1vw,2.875rem)}.concept>p:not(.concept-top){font-size:1rem;color:var(--muted);max-width:42ch;margin-bottom:22px}.concept:first-child>p:not(.concept-top){font-size:1.125rem;line-height:1.8;max-width:29ch}.concept-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;padding-top:45px;margin-top:auto;color:var(--blue);font-size:.875rem}.concept-bottom a{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;border:1px solid #adc5d5;border-radius:50%;font-size:1.375rem;transition:background .25s,color .25s}.concept-link{display:flex;justify-content:space-between;align-items:center;font-size:.9375rem;font-weight:600;color:var(--blue);background:none;min-height:44px;padding:4px 0;width:100%;text-align:left;gap:16px}.concept-link span{font-size:1.375rem;transition:transform .3s var(--ease)}
.project{display:grid;grid-template-columns:1.2fr 1fr;gap:8%;align-items:center;padding-top:120px;padding-bottom:120px}.project-image{height:660px;overflow:hidden;border-radius:8px}.project-image img{height:100%;width:100%;object-fit:cover;object-position:45% center;transition:transform .9s var(--ease)}.project-copy .section-label{margin-bottom:16px}.tag{display:inline-block;font-size:.875rem;line-height:1.5;color:var(--muted);margin-bottom:28px}.tag::before{content:'';display:inline-block;width:20px;height:1px;background:var(--sky);margin-right:10px;vertical-align:middle}.project-copy h2{margin-bottom:26px;font-size:clamp(2.5rem,3.9vw,3.75rem)}.project-copy>p:not(.section-label){color:var(--muted);font-size:1rem;max-width:43ch;margin-top:18px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:30px 0 20px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.facts div{display:flex;flex-direction:column;gap:3px}.facts strong{font-size:2.125rem;line-height:1.35;font-weight:500;letter-spacing:-.035em;color:var(--blue);font-variant-numeric:tabular-nums}.facts span{font-size:.875rem;color:var(--muted)}
.partners{display:grid;grid-template-columns:1.1fr 1fr;gap:8%;align-items:center;background:#eaf2f7;border-radius:8px;padding-top:80px;padding-bottom:85px}.partners .section-label{margin-bottom:30px}.partners h2{color:var(--blue);font-size:clamp(2.4rem,3.9vw,3.75rem);line-height:1.15}.partners>div>p:not(.section-label){color:var(--muted);max-width:42ch;font-size:1rem}.partners .partner-audience{color:var(--blue)!important;font-size:.875rem!important;font-weight:600;margin-bottom:20px;line-height:1.7}.partners .button{margin-top:27px;min-width:210px}.interest{display:grid;grid-template-columns:1fr auto;gap:60px;align-items:center;padding-top:110px;padding-bottom:110px}.interest h2{font-size:clamp(2.25rem,3.7vw,3.5rem)}.interest p:not(.section-label){color:var(--muted);font-size:1rem;margin-top:22px;max-width:46ch}.interest .button{min-width:230px}
footer{max-width:var(--page);margin:auto;padding:0 var(--gutter) 24px}.footer-main{display:flex;gap:60px;align-items:center;border-top:1px solid var(--line);padding:38px 0}.footer-main img{width:124px;height:60px;object-fit:contain}.footer-main p{color:var(--blue);font-size:.9375rem;line-height:1.6}.footer-main .text-link{margin-left:auto}.footer-bottom{border-top:1px solid var(--line);padding-top:20px;display:flex;gap:20px;justify-content:space-between;align-items:center;font-size:.875rem;color:var(--muted)}.footer-bottom button{background:none;font-size:.875rem;color:var(--muted);min-height:40px;padding:4px 0;text-decoration:underline;text-underline-offset:5px}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:#fff;padding:12px}.skip:focus{top:12px}
dialog{border:0;border-radius:8px;padding:44px;width:min(600px,calc(100% - 32px));color:var(--ink);max-height:90dvh;overflow:auto;box-shadow:0 24px 100px #16364b25}dialog::backdrop{background:#16364b99}dialog h2{font-size:2.125rem;margin-bottom:20px;line-height:1.2}dialog>p{font-size:1rem;line-height:1.7;margin-bottom:18px}.eyebrow{font-size:.875rem;line-height:1.5;color:var(--sky);font-weight:600;margin-bottom:20px}.close{position:absolute;right:14px;top:12px;display:grid;place-items:center;width:40px;height:40px;background:transparent;font-size:1.75rem;color:var(--blue);border-radius:4px;transition:background .25s}.close:hover{background:var(--light)}.demo-note{background:var(--light);padding:12px 16px;border-radius:4px;font-size:.875rem}form label{display:flex;flex-direction:column;font-size:.875rem;font-weight:600;line-height:1.5;margin-bottom:17px}label span{font-weight:400;color:var(--muted)}input,select,textarea{width:100%;border:1px solid #8eaaba;border-radius:4px;background:#fff;color:var(--ink);padding:12px 13px;font-size:1rem;font-weight:400;min-width:0;margin-top:7px;transition:border-color .2s,background-color .2s,box-shadow .2s}input::placeholder,textarea::placeholder{color:#607584;opacity:1}input:not([type="radio"]):focus,select:focus,textarea:focus{outline:none;border-color:#79a9c9;background:#f7fbfe;box-shadow:inset 0 0 0 1px #79a9c9}input:not([type="radio"]):focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:inset 0 0 0 1px #79a9c9}textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:17px}.submit{width:100%;margin-top:10px}.form-result h3{margin:24px 0 18px;font-size:1.625rem}.form-result p{font-size:1rem;margin-bottom:24px}.form-result[hidden]{display:none}
@media(hover:hover) and (pointer:fine){.button:hover{transform:translateY(-2px)}.button:hover>span,.text-link:hover>span,.concept-link:hover>span{transform:translate(3px,-3px)}.image-caption:hover .circle,.concept-bottom a:hover{background:var(--blue);color:white}.project-image:hover img{transform:scale(1.025)}}
@media(min-width:1550px){.hero{gap:56px}.hero h1{font-size:4.125rem}.hero-image>img{height:575px}}
@media(max-width:1100px){:root{--gutter:32px}.header{gap:20px}.header nav{gap:17px;font-size:.875rem}.brand img{width:102px}.button.small{gap:12px;padding:10px 13px}.hero{gap:28px;padding-top:30px}.hero h1{font-size:3rem}.hero-image>img{height:480px}.hero-intro{font-size:1rem}.actions{gap:17px}.section{padding-top:85px;padding-bottom:85px}.concept-grid{gap:0 32px}.concept:first-child{padding:30px}.project{gap:6%}.project-image{height:580px}.partners{padding-top:65px;padding-bottom:65px}.footer-main{gap:35px}}
@media(max-width:900px){.header nav{display:none;position:absolute;top:79px;left:0;right:0;background:#fff;padding:24px var(--gutter);box-shadow:0 12px 30px #16364b12;border-bottom:1px solid var(--line)}.header nav.open{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.header nav a{font-size:1rem}.header>.button{margin-left:auto}.menu-toggle{display:flex;gap:10px;align-items:center;order:3;padding:10px 0;background:none;font-size:.875rem;font-weight:600;min-height:44px}.hero{grid-template-columns:1fr 1fr;gap:24px}.hero h1{font-size:2.5rem}.hero-copy{padding:15px 0 30px}.hero-image>img{height:470px}.hero-description{margin-bottom:22px}.actions{flex-direction:column;align-items:flex-start;margin-top:24px}.intro{grid-template-columns:1fr;gap:0}.intro>.section-label{margin-top:0}.intro h2{max-width:24ch}.partners{grid-template-columns:1fr;gap:32px}.partners h2{max-width:25ch}.partners>div>p:not(.section-label){max-width:57ch}.interest{gap:40px}.footer-bottom>span:nth-child(2){display:none}}
@media(max-width:680px){:root{--gutter:24px}.header{height:76px;gap:15px}.header nav{top:75px}.brand img{width:101px;height:50px}.hero{grid-template-columns:1fr;padding-top:26px;gap:26px}.hero-copy{padding:13px 0 0}.hero h1{font-size:clamp(2.6rem,8.7vw,3.75rem);max-width:15ch;line-height:1.12;margin-bottom:24px}.hero h1 em{display:inline}.hero-description{max-width:none;font-size:.875rem;margin-bottom:23px}.hero-intro{max-width:39ch;font-size:1rem}.actions{flex-direction:row;gap:24px;align-items:center;margin-top:26px}.hero-image>img{height:390px;object-position:center 60%}.image-caption{padding:16px 0}.image-caption small{max-width:29ch}.section{padding-top:70px;padding-bottom:70px}.intro-text{grid-template-columns:1fr;gap:20px;margin-top:26px;font-size:1rem}.intro h2{font-size:2.375rem}.concepts{margin-left:12px;margin-right:12px;padding-left:24px;padding-right:24px}.section-heading{margin-bottom:30px}.section-heading h2{font-size:2.5rem}.concept-grid{grid-template-columns:1fr;gap:16px}.concept:first-child{grid-row:auto;padding:28px;margin-bottom:12px}.concept:first-child h3{font-size:2rem}.concept:first-child>p:not(.concept-top){font-size:1rem;max-width:none}.concept-bottom{padding-top:20px}.concept{padding:24px 0 10px}.concept h3{font-size:1.75rem}.concept>p:not(.concept-top){max-width:none}.concept-link{width:100%}.project{grid-template-columns:1fr;gap:35px;padding-top:70px}.project-image{height:440px}.project-copy h2{font-size:2.5rem}.tag{margin-bottom:20px}.partners{margin:0 12px;padding:46px 24px;gap:28px}.partners h2{font-size:2.5rem}.partners .section-label{margin-bottom:24px}.partner-audience{max-width:32ch!important}.interest{grid-template-columns:1fr;gap:30px}.interest h2{font-size:2.5rem}.interest .button{min-width:210px;justify-self:start}.footer-main{flex-wrap:wrap;gap:24px}.footer-main img{width:108px;height:52px}.footer-main>p{font-size:.875rem}.footer-main .text-link{margin-left:0}.footer-bottom{font-size:.8125rem}.footer-bottom button{font-size:.8125rem}dialog{padding:42px 24px 26px}dialog h2{font-size:1.875rem}.form-row{grid-template-columns:1fr;gap:0}}
@media(max-width:390px){:root{--gutter:20px}.header{gap:12px}.header .button{font-size:.8125rem;padding:10px 12px;gap:10px}.header .button>span{display:none}.menu-toggle{font-size:0;gap:0}.menu-toggle span{font-size:1.25rem}.hero h1{font-size:2.5rem}.actions{flex-direction:column;align-items:flex-start;gap:14px}.hero-image>img{height:345px}.image-caption strong{font-size:1rem}.image-caption small{font-size:.8125rem}.concepts,.partners{padding-left:20px;padding-right:20px}.project-image{height:370px}.footer-main p{max-width:21ch}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.button:hover,.project-image:hover img,.button:hover>span,.text-link:hover>span,.concept-link:hover>span{transform:none}}
@media print{.header{position:static}.menu-toggle,.button,dialog{display:none}.section{padding-top:40px;padding-bottom:40px}.hero{display:block}.hero-image>img{height:300px}.project-image{height:350px}}
/* Role selection is a native radio group with a consistent clickable surface. */
.role-picker{border:0;padding:0;margin:0 0 24px;min-width:0}
.role-picker legend{padding:0;margin-bottom:10px;font-size:.875rem;font-weight:600;line-height:1.5;color:var(--ink)}
.role-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
form .role-option{position:relative;display:block;margin:0;cursor:pointer;min-width:0}
.role-option input[type="radio"]{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.role-content{display:grid;grid-template-columns:minmax(0,1fr) 20px;align-items:center;gap:12px;min-height:68px;height:100%;padding:15px 16px;border:1px solid #8eaaba;border-radius:4px;background:#fff;color:var(--ink);font-size:.9375rem;font-weight:600;line-height:1.5;transition:background .2s,border-color .2s,box-shadow .2s}
.role-content>span:first-child{color:inherit;font-weight:inherit;text-wrap:balance;overflow-wrap:anywhere}
.role-marker{display:grid;place-items:center;width:20px;height:20px;border:1.5px solid #7895a8;border-radius:50%;background:#fff}
.role-marker::after{content:'';width:10px;height:10px;background:var(--blue);border-radius:50%;transform:scale(0);transition:transform .2s var(--ease)}
.role-option input:checked+.role-content{border-color:var(--blue);background:var(--light);box-shadow:inset 0 0 0 1px var(--blue);color:var(--blue)}
.role-option input:checked+.role-content .role-marker{border-color:var(--blue)}
.role-option input:checked+.role-content .role-marker::after{transform:scale(1)}
.role-option input:focus-visible+.role-content{outline:3px solid var(--sky);outline-offset:3px}
.role-option:hover .role-content{border-color:var(--blue);background:#f6f9fb}
.role-option input:checked+.role-content:hover{background:var(--light)}
form label .field-label{display:block;color:var(--ink);font-weight:600;line-height:1.5}
form label .field-label>span{display:inline;color:var(--muted);font-weight:400}
#contact-form input:not([type="radio"]){height:50px;min-height:50px;line-height:1.5;appearance:none;-webkit-appearance:none}
#contact-form textarea{line-height:1.5;min-height:108px;appearance:none;-webkit-appearance:none}
#contact-form .form-row{align-items:start}
@media(max-width:480px){.role-options{gap:10px}.role-content{padding:13px 12px;gap:9px;font-size:.875rem;min-height:72px}}
@media(forced-colors:active){.role-option input[type="radio"]{position:absolute;clip-path:none;width:20px;height:20px;right:16px;top:50%;transform:translateY(-50%);appearance:auto}.role-marker{visibility:hidden}.role-option input:checked+.role-content{border:2px solid Highlight}.role-option input:focus-visible+.role-content{outline-color:Highlight}}

@media(max-width:360px){.role-options{grid-template-columns:1fr}.role-content{min-height:60px}}
@media(max-width:480px){#contact-form .submit{font-size:.875rem;padding:14px 16px;gap:12px;white-space:normal;text-align:left}}

@media(forced-colors:active){input:not([type="radio"]):focus,select:focus,textarea:focus{outline:2px solid Highlight;outline-offset:2px}}

.series.section{padding-top:0;padding-bottom:90px}.series-panel{background:var(--light);border-radius:8px;padding:clamp(28px,5vw,64px)}.series-meta{font-size:.875rem;color:var(--sky);font-weight:600;margin-bottom:20px}.series h2{color:var(--blue);margin-bottom:20px}.series-intro{font-size:clamp(1.125rem,2vw,1.375rem);line-height:1.6;margin-bottom:12px}.series-description{max-width:64ch;color:var(--muted);line-height:1.8;margin-bottom:30px}.series .button{max-width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@media(max-width:680px){.series.section{padding-bottom:70px}.series .button{font-size:.9375rem;gap:16px}.series-meta{font-size:.8125rem}}

.series-panel{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:center}.series-copy{min-width:0}.series-image{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:50% 45%;border-radius:6px}@media(max-width:900px){.series-panel{grid-template-columns:1fr}.series-image{aspect-ratio:3/2}}@media(max-width:680px){.series-image{aspect-ratio:6/5}}
