@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700;750&display=swap');

:root{--blue:#244ee8;--ink:#17202f;--muted:#5d6779;--line:#dce1e9;--paper:#fff;--surface:#f3f5fa;--font:'DM Sans',Arial,sans-serif;color-scheme:light;font-family:var(--font);color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0}a{color:inherit;text-decoration:none}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:6px;border-radius:3px}::selection{background:#d7e0ff;color:#1533a7}.shell{width:min(1280px,calc(100% - 112px));margin-inline:auto}.skip-link{position:absolute;z-index:10;top:-100px;left:20px;background:var(--blue);color:white;padding:14px 22px}.skip-link:focus{top:12px}.site-header{height:110px;display:flex;align-items:center;justify-content:space-between}.wordmark{font-size:36px;letter-spacing:-3px;font-weight:750;line-height:1}.wordmark span{color:var(--blue)}nav{display:flex;gap:38px;font-size:15px;font-weight:550}nav a,.header-contact{padding-block:12px}nav a:hover{color:var(--blue)}.header-contact{font-size:15px;font-weight:600}.header-contact span{margin-left:13px;color:var(--blue)}.hero{padding-top:66px;padding-bottom:88px}.hero-intro{display:flex;align-items:center;justify-content:space-between;font-size:16px}.hero-intro p{margin:0}.hero-location{color:var(--muted)}h1{font-size:clamp(5rem,10.9vw,9.8rem);font-weight:550;letter-spacing:-.075em;line-height:.99;margin:30px 0 38px;max-width:100%;}h1>span{padding-left:17.5%;color:var(--blue)}.name-period{color:var(--blue)}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;padding-left:18%}.hero-bottom p{font-size:19px;line-height:1.65;max-width:520px;margin:0;color:var(--muted);letter-spacing:-.015em}.primary-link{display:inline-flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:32px;padding:17px 21px;background:var(--blue);color:#fff;font-size:15px;font-weight:600;border-radius:6px}.primary-link:hover{background:#163bc4}.primary-link span{font-size:21px;line-height:1}.section-heading{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);padding-top:28px;padding-bottom:34px;gap:20px}.section-heading h2{font-size:26px;letter-spacing:-.035em;font-weight:600;margin:0}.section-heading p{font-size:14px;margin:0;color:var(--muted)}.project{display:grid;grid-template-columns:1.15fr 1fr;gap:72px;padding-bottom:60px;align-items:start}.project+.project{border-top:1px solid var(--line);padding-top:60px}.project-visual{min-height:380px;border-radius:10px;padding:30px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.visual-top,.visual-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px}.visual-top>span:first-child{font-size:25px;font-weight:650;letter-spacing:-.045em}.visual-tag,.visual-bottom{font-size:13px}.vantic-visual{background:#e6edff;color:#1a3bab}.visual-tag{border:1px solid currentColor;border-radius:99px;padding:5px 10px}.league-stack{display:flex;gap:10px;padding-block:54px;align-items:center;justify-content:center}.league-stack span{font-size:clamp(28px,3.8vw,53px);font-weight:650;letter-spacing:-.06em;line-height:1.1}.league-stack span+span{border-left:1px solid #91a6df;padding-left:15px}.project-copy{padding-top:10px}.project-meta{font-size:13px;display:flex;align-items:center;flex-wrap:wrap;gap:15px;color:var(--muted)}.status{background:#f0f3f8;padding:5px 9px;border-radius:4px;color:#45516a}.project h3{font-size:clamp(28px,3vw,39px);font-weight:550;line-height:1.15;letter-spacing:-.045em;margin:22px 0 18px}.project-copy>p{font-size:16px;line-height:1.75;color:var(--muted);margin:0 0 22px;max-width:480px}.tech-list{display:flex;flex-wrap:wrap;gap:7px 17px;padding:0;margin:0 0 26px;list-style:none;font-size:13px;color:#3f4c63}.project-details{border-top:1px solid var(--line)}summary{list-style:none;cursor:pointer;padding:19px 0;display:flex;align-items:center;justify-content:space-between;font-size:15px;font-weight:600}summary::-webkit-details-marker{display:none}summary:hover{color:var(--blue)}.expand-icon{font-size:24px;font-weight:400;line-height:1}.project-details[open] .expand-icon{transform:rotate(45deg)}.detail-body{padding:4px 0 16px}.detail-body h4{font-size:15px;margin:12px 0 7px;font-weight:600}.detail-body p{font-size:15px;line-height:1.75;margin:0 0 16px;color:var(--muted)}.detail-body .detail-note{font-size:13px;margin-top:22px}.site-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding-block:28px;font-size:13px;color:var(--muted)}.site-footer a:hover{color:var(--blue)}
.project-index{display:flex;flex-wrap:wrap;gap:10px 25px;padding-bottom:35px;font-size:14px;color:var(--muted)}.project-index a{padding-block:4px}.project-index a:hover{color:var(--blue)}.city-visual{background:#edf3ec;color:#284832}.city-flow{padding-block:26px;max-width:350px;margin-inline:auto;width:100%}.city-flow>div{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff9;border:1px solid #ceddcd;padding:13px 16px;border-radius:4px}.flow-step{font-size:12px;color:#426347}.city-flow strong{font-size:14px;font-weight:550}.flow-connector{display:block;text-align:center;font-size:16px;line-height:1.6;color:#638066}.greyline-visual{background:#293548;color:#fff}.greyline-visual .visual-tag{border-color:#627089;color:#dae1ed}.greyline-flow{padding-block:35px}.flow-source{font-size:15px;background:#40516a;border:1px solid #66768e;border-radius:5px;text-align:center;padding:14px;margin-bottom:12px}.greyline-outputs{display:grid;grid-template-columns:1fr 1fr;gap:10px}.greyline-outputs span{padding:13px 9px;text-align:center;font-size:13px;background:#35435a;border-radius:4px;color:#e7edf8}.validation-row{display:flex;align-items:center;justify-content:center;gap:10px;font-size:13px;padding-top:20px;color:#b9dbd7}.check-symbol{font-size:17px}.adopted{background:#eaf2ee;color:#326347}.about-section{background:var(--surface);margin-top:24px;padding:66px 0 54px}.about-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:72px}.section-label{font-size:14px;color:var(--muted);margin:0 0 22px}.about-grid h2{font-size:clamp(30px,3.1vw,42px);font-weight:550;line-height:1.2;letter-spacing:-.045em;margin:0;max-width:500px}.about-copy p{font-size:17px;line-height:1.75;color:var(--muted);margin:0 0 20px}.text-link{font-size:15px;font-weight:550;display:inline-flex;gap:23px;align-items:center;padding-block:7px}.text-link:hover{color:var(--blue)}.text-link span{color:var(--blue)}.background-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:38px;margin-top:48px;padding-top:30px;border-top:1px solid var(--line)}.background-grid h3{font-size:13px;font-weight:500;color:var(--muted);margin:0 0 13px}.background-grid p{font-size:16px;font-weight:550;margin:0 0 10px;line-height:1.5}.background-grid span{font-size:14px;line-height:1.8;color:var(--muted)}.contact-section{display:flex;justify-content:space-between;gap:40px;padding-block:88px;align-items:flex-end}.contact-section h2{font-size:clamp(38px,5vw,65px);line-height:1.08;letter-spacing:-.06em;font-weight:550;margin:0}.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:20px;padding-bottom:8px}.email-link{font-size:clamp(17px,2vw,24px);font-weight:500;letter-spacing:-.03em;border-bottom:1px solid var(--ink);padding-bottom:12px}.email-link:hover{color:var(--blue);border-color:var(--blue)}.email-link span{margin-left:18px;color:var(--blue)}
.csm-visual{background:#eaf2f4;color:#26535d}.screenshot-link{display:block;margin-block:25px;border:1px solid #c5d8de;border-radius:5px;overflow:hidden;box-shadow:0 8px 18px #21465214}.screenshot-link img{display:block;width:100%;height:auto}.csm-visual .visual-bottom a{white-space:nowrap;border-bottom:1px solid #a7c5ce;padding-block:4px}.csm-visual .visual-bottom a:hover{border-color:currentColor}
@media(min-width:1500px){h1{font-size:156px}}
@media(max-width:1000px){.shell{width:calc(100% - 64px)}.hero{padding-top:48px}.hero-bottom{padding-left:0}.project{gap:38px;grid-template-columns:1fr 1fr}.project-visual{padding:24px;min-height:345px}.visual-bottom{font-size:12px;gap:12px}.visual-tag{font-size:12px}.project h3{font-size:32px}.hero-bottom p{font-size:18px}}
@media(max-width:720px){.shell{width:calc(100% - 40px)}.site-header{height:86px}nav{gap:24px;font-size:14px}.header-contact{display:none}.hero{padding-top:35px;padding-bottom:62px}.hero-intro{font-size:14px}.hero-location{display:none}h1{font-size:clamp(3.5rem,14.3vw,6.4rem);line-height:1.04;margin:25px 0 30px}h1>span{padding-left:9%}.hero-bottom{display:block}.hero-bottom p{font-size:17px;line-height:1.7;max-width:450px}.primary-link{margin-top:25px;padding:15px 18px}.section-heading{display:block;padding-top:23px;padding-bottom:26px}.section-heading h2{font-size:25px}.section-heading p{margin-top:9px;font-size:13px}.project{grid-template-columns:1fr;gap:24px;padding-bottom:36px}.project+.project{padding-top:36px}.project-visual{min-height:305px;padding:24px}.league-stack{padding-block:35px}.league-stack span{font-size:48px}.visual-top>span:first-child{font-size:25px}.project-copy{padding-top:0}.project h3{font-size:32px;margin-top:18px}.project-copy>p{max-width:none}.site-footer{align-items:flex-start;font-size:12px;gap:20px;padding-block:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(max-width:720px){.league-stack span{font-size:clamp(32px,10.7vw,48px)}}
@media(max-width:1000px){.about-grid{gap:38px;grid-template-columns:1fr 1fr}.city-flow>div{padding:11px 12px;gap:12px}.city-flow strong{font-size:13px}.project-meta{gap:8px}.contact-section{gap:28px}.email-link{font-size:18px}.email-link span{margin-left:8px}}
@media(max-width:720px){.project-index{gap:13px 23px;padding-bottom:26px;font-size:13px}.about-section{padding:45px 0 38px;margin-top:8px}.about-grid{grid-template-columns:1fr;gap:27px}.about-grid h2{font-size:33px;max-width:380px}.section-label{margin-bottom:18px}.about-copy p{font-size:16px}.background-grid{grid-template-columns:1fr;gap:26px;margin-top:28px;padding-top:27px}.background-grid span br{display:none}.background-grid h3{margin-bottom:7px}.background-grid p{margin-bottom:4px}.contact-section{display:block;padding-block:55px}.contact-section h2{font-size:45px}.contact-links{margin-top:32px;gap:15px}.email-link{font-size:clamp(15px,4.9vw,21px)}.city-flow{max-width:380px}.city-flow strong{font-size:14px}}

.csm-flow>div{border-color:#c5d8de}.csm-flow .flow-step,.csm-flow .flow-connector{color:#426c75}
