*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#E9EEF9;color:#151a2c;font-family:"DM Sans",sans-serif}
a{color:inherit;text-decoration:none}
header{height:76px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(34,56,164,.16);position:sticky;top:0;background:rgba(233,238,249,.92);backdrop-filter:blur(16px);z-index:4}
.logo{font:800 25px Manrope;letter-spacing:-2px;color:#2238A4}
nav{display:flex;gap:36px;font-size:12px}nav a:last-child{color:#2238A4}
.hero{min-height:680px;background:linear-gradient(128deg,#A0ACDC 0%,#7182C7 43%,#2238A4 100%);color:#fff;padding:72px 8vw 58px;position:relative;overflow:hidden;isolation:isolate}
.eyebrow{font:500 10px "DM Mono";letter-spacing:.13em;position:relative;z-index:2}
.eyebrow i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#E9EEF9;margin-right:9px}
.hero h1{font:700 clamp(76px,11vw,148px)/.88 Manrope;letter-spacing:-.09em;margin:110px 0 55px;position:relative;z-index:2;max-width:1100px}
.hero h1 em,h2 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.08em}
.hero-foot{display:flex;justify-content:space-between;align-items:end;position:relative;z-index:2}
.hero-foot p{max-width:440px;font-size:15px;line-height:1.7;color:#E9EEF9;margin:0}
.hero-foot a{font:10px "DM Mono";letter-spacing:.1em;border-bottom:1px solid rgba(233,238,249,.65);padding-bottom:10px}
.hero-foot b{margin-left:20px}
.hero-atmosphere{position:absolute;inset:-20%;z-index:0;overflow:hidden;pointer-events:none}
.hero-atmosphere span{position:absolute;display:block;filter:blur(34px);border-radius:48% 52% 63% 37% / 44% 38% 62% 56%;opacity:.42;mix-blend-mode:screen}
.hero-atmosphere span:nth-child(1){width:58vw;height:28vw;min-height:220px;left:45%;top:7%;background:linear-gradient(90deg,#E9EEF9,#7182C7,#A0ACDC);transform:rotate(-24deg);animation:driftA 19s ease-in-out infinite alternate}
.hero-atmosphere span:nth-child(2){width:48vw;height:23vw;min-height:190px;left:-4%;top:58%;background:linear-gradient(90deg,#A0ACDC,#E9EEF9);transform:rotate(18deg);animation:driftB 24s ease-in-out infinite alternate}
.hero-atmosphere span:nth-child(3){width:35vw;height:32vw;min-height:220px;right:-8%;top:37%;background:linear-gradient(145deg,#E9EEF9,#4A5DB5);animation:driftC 27s ease-in-out infinite alternate}
@keyframes driftA{to{transform:translate(-8%,13%) rotate(-8deg) scale(1.12)}}
@keyframes driftB{to{transform:translate(11%,-10%) rotate(32deg) scale(1.08)}}
@keyframes driftC{to{transform:translate(-13%,8%) rotate(-15deg) scale(1.13)}}
.ticker{height:62px;background:#A0ACDC;display:flex;align-items:center;justify-content:space-around;font:10px "DM Mono";letter-spacing:.12em;white-space:nowrap;overflow:hidden;color:#2238A4}
.work{padding:105px 8vw 125px}
.section-top{display:flex;justify-content:space-between;align-items:end;margin-bottom:68px}
.section-top h2,.about h2,.contact h2{font:650 clamp(56px,7vw,92px)/.93 Manrope;letter-spacing:-.08em;margin:0}
.section-top>p{max-width:370px;color:#626d89;font-size:14px;line-height:1.75;margin:0 2vw 5px 35px}
.category-section{margin:0 0 78px}
.category-heading{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid rgba(34,56,164,.2);padding:0 0 13px;margin-bottom:22px}
.category-heading h3{font:italic 500 20px Georgia,serif;margin:0;color:#2238A4}
.category-heading span{font:9px "DM Mono";letter-spacing:.1em;color:#7782a4}
 .category-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;}
.work-tile{border:0;padding:0;position:relative;overflow:hidden;background:#2238A4;cursor:pointer;grid-column:span 7;min-width:0;aspect-ratio:2.25 / 1;}
.category-section:nth-of-type(2n) .work-tile{grid-column:span 9;}
.category-section:nth-of-type(3n) .work-tile{grid-column:span 6;}
.work-tile img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s;}
.work-tile:hover img{transform:scale(1.09);filter:saturate(.94);}
.category-card-caption{position:absolute;left:22px;bottom:20px;padding:0;color:#fff;font:500 clamp(17px,2vw,25px) Manrope;letter-spacing:-.03em;text-shadow:0 2px 18px rgba(12,22,66,.45);}
.tile-arrow{position:absolute;right:18px;top:18px;color:#2238A4;background:rgba(233,238,249,.94);width:36px;height:36px;display:grid;place-items:center;border-radius:50%;opacity:0;transition:.25s}
.work-tile:hover .tile-arrow{opacity:1;}
.about{background:#E9EEF9;padding:100px 8vw 90px;border-top:1px solid rgba(34,56,164,.12)}
.about-grid{display:grid;grid-template-columns:1fr .8fr;gap:9vw}
.about-copy{padding-top:10px}
.about-copy p{font-size:14px;line-height:1.8;color:#626d89}
.about-copy .lead{font:500 23px/1.35 Manrope;letter-spacing:-.03em;color:#151a2c}
.underlink{display:inline-block;color:#2238A4;font:10px "DM Mono";border-bottom:1px solid #2238A4;padding-bottom:10px;margin-top:15px}
.capabilities{border-top:1px solid #A0ACDC;margin-top:80px;padding-top:23px;display:flex;flex-wrap:wrap;gap:18px 34px;font:9px "DM Mono";letter-spacing:.1em;color:#4A5DB5}
.contact{background:linear-gradient(115deg,#4A5DB5 0%,#2238A4 100%);color:#fff;padding:105px 8vw 115px}
.contact h2{font-size:clamp(60px,9vw,118px);margin:0 0 42px}
.contact>a{font:10px "DM Mono";letter-spacing:.08em;border-bottom:1px solid #A0ACDC;padding-bottom:11px}
.contact b{margin-left:26px}
footer{height:82px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;font:9px "DM Mono";letter-spacing:.08em;color:#737b9b}
.modal{display:none;position:fixed;inset:0;z-index:8;background:#172B83;overflow:auto;padding:76px 7vw 90px;color:white}
.modal.open{display:block}
.close{position:fixed;right:4vw;top:17px;background:none;border:0;color:white;font-size:40px;cursor:pointer}
.modal-inner{max-width:1100px;margin:auto}
.modal-inner .eyebrow{color:#A0ACDC}
.modal-inner h2{font:650 clamp(45px,7vw,82px) Manrope;letter-spacing:-.07em;margin:10px 0 30px}
.modal-image{width:100%;height:auto;display:block;background:#fff}
@media(max-width:700px){
 header{height:65px;padding:0 6vw}nav{gap:18px}
 .hero{min-height:650px;padding:60px 7vw 42px}.hero h1{font-size:clamp(64px,15vw,105px);margin-top:125px}
 .hero-foot{display:block}.hero-foot p{max-width:330px;margin-bottom:27px}
 .ticker{justify-content:flex-start;gap:17px;padding:0 6vw;font-size:9px}
 .work{padding:78px 6vw}.section-top{display:block}.section-top>p{margin:24px 0 0}
 .category-section{margin-bottom:58px}.category-grid{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:54px;gap:9px}
 .work-tile,.work-tile.tile-1,.work-tile.tile-2,.work-tile.tile-3,.work-tile.tile-4{grid-column:span 3;grid-row:span 3}
 .work-tile.tile-0{grid-column:span 6;grid-row:span 4}
 .work-tile:nth-child(5n){grid-column:span 3;grid-row:span 4}
 .about{padding:78px 6vw}.about-grid{grid-template-columns:1fr;gap:28px}.capabilities{margin-top:55px;gap:15px 20px}
 .contact{padding:80px 6vw}.contact h2{font-size:clamp(54px,12vw,85px)}
 footer{padding:0 6vw;font-size:8px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-atmosphere span,.work-tile img{animation:none;transition:none}}

/* Category case-study overlay */
.modal-inner{max-width:1240px;margin:auto}
.modal-kicker{font:10px "DM Mono";letter-spacing:.14em;color:#A0ACDC;text-transform:uppercase}
.modal-inner h2{font:650 clamp(48px,8vw,100px)/.95 Manrope;letter-spacing:-.075em;margin:12px 0 22px}
.modal-intro{max-width:700px;font:500 clamp(17px,2vw,22px)/1.55 Manrope;color:#E9EEF9;margin:0 0 42px}
.modal-gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;margin:0 0 70px}
.modal-gallery figure{grid-column:span 4;margin:0;overflow:hidden;background:#2238A4;aspect-ratio:1.28/1;}
.modal-gallery figure:nth-child(5n+1){grid-column:span 7;aspect-ratio:1.75/1}
.modal-gallery figure:nth-child(5n+2){grid-column:span 5;aspect-ratio:1.25/1}
.modal-gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s;}
.modal-gallery figure:hover img{transform:scale(1.055)}
.project-details{border-top:1px solid rgba(233,238,249,.32);padding-top:26px;display:grid;grid-template-columns:1fr 2fr;gap:40px}
.project-details h3{font:500 11px "DM Mono";letter-spacing:.12em;text-transform:uppercase;color:#A0ACDC;margin:0}
.project-details p{font:500 clamp(19px,2.5vw,27px)/1.45 Manrope;max-width:760px;color:#fff;margin:0}
.project-scope{font:10px "DM Mono";letter-spacing:.08em;color:#C7D1F3;margin-top:18px}
@media(max-width:700px){.category-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.work-tile,.category-section:nth-of-type(2n) .work-tile,.category-section:nth-of-type(3n) .work-tile{grid-column:span 6;aspect-ratio:1.55/1}.modal{padding:75px 6vw 60px}.modal-gallery{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.modal-gallery figure,.modal-gallery figure:nth-child(5n+1),.modal-gallery figure:nth-child(5n+2){grid-column:span 3;aspect-ratio:1.05/1}.modal-gallery figure:nth-child(odd){grid-column:span 6;aspect-ratio:1.65/1}.project-details{grid-template-columns:1fr;gap:15px}}


/* Selected work category grid refinement */
.work{padding-left:8vw;padding-right:8vw}
.selected-work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 24px;padding:0 1.2vw}
.work-category{min-width:0}
.work-category h3{font:600 17px/1.2 "DM Sans",sans-serif;letter-spacing:-.025em;color:#2238A4;margin:0 0 13px}
.work-category .work-tile{display:block;width:100%;grid-column:auto;aspect-ratio:1.45/1;border:0;overflow:hidden;background:#2238A4}
.work-category .work-tile img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform .75s cubic-bezier(.2,.7,.2,1)}
.work-category .work-tile:hover img{transform:scale(1.1)}
.category-card-caption{display:none!important}
.work-category .tile-arrow{display:none!important}
.modal{background:#172B83}
.modal-gallery figure{background:#172B83}
.modal-gallery img{object-fit:cover}
.modal-category-nav{border-top:1px solid rgba(233,238,249,.3);margin-top:76px;padding-top:28px}
.modal-category-nav h3{font:10px "DM Mono";letter-spacing:.14em;text-transform:uppercase;color:#A0ACDC;margin:0 0 20px}
.modal-category-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.modal-category-item{border:1px solid rgba(233,238,249,.28);background:transparent;color:white;padding:17px 16px;display:flex;justify-content:space-between;align-items:center;text-align:left;font:500 14px "DM Sans",sans-serif;cursor:pointer;transition:background .2s,border-color .2s}
.modal-category-item:hover,.modal-category-item.active{background:rgba(160,172,220,.18);border-color:#A0ACDC}
.modal-arrows{display:flex;gap:10px;margin-top:18px;justify-content:flex-end}
.modal-arrows button{width:44px;height:44px;border:1px solid rgba(233,238,249,.4);background:transparent;color:white;font-size:22px;cursor:pointer}
.modal-arrows button:hover{background:#4A5DB5}
@media(max-width:900px){.selected-work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 18px}.modal-category-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.work{padding-left:6vw;padding-right:6vw}.selected-work-grid{grid-template-columns:1fr;gap:30px;padding:0}.work-category .work-tile{aspect-ratio:1.5/1}.modal-category-list{grid-template-columns:1fr 1fr}.modal-arrows button{width:42px;height:42px}}
