@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');:root{font-family:'DM Sans',sans-serif;color:#112640;background:#fff}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}img{max-width:100%}.wrap{max-width:1240px;margin:auto;padding:0 32px}.top{position:sticky;top:0;z-index:20;background:#fff;box-shadow:0 2px 12px #122b4320}.nav{display:flex;align-items:center;gap:26px;min-height:77px}.brand{display:block;width:220px;flex:none}.brand img{display:block;width:100%}nav{display:flex;gap:21px;align-items:center;margin-left:auto;font-size:13px;font-weight:700}nav a:hover,nav a.active{color:#1376ae}.pill{display:inline-flex;align-items:center;justify-content:center;border:1px solid #12304b;border-radius:30px;padding:11px 19px;font-size:13px;font-weight:700;white-space:nowrap;transition:.2s}.pill:hover{background:#dceef7}.pill.dark{background:#0b2943;color:white}.pill.white{background:white;color:#102e47;border-color:white}.pill.line{border-color:#ffffffa8;color:white}h1,h2,h3{font-family:Georgia,serif;font-weight:400;letter-spacing:-.035em}h1{font-size:clamp(38px,5.2vw,68px);line-height:1.08;margin:12px 0 20px}h2{font-size:clamp(31px,3vw,45px);line-height:1.16;margin:10px 0 22px}h3{font-size:24px;margin:12px 0}.eyebrow{font:700 12px 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.13em}.hero{position:relative;color:white;background:#143e5e;min-height:480px;display:flex;align-items:center;overflow:hidden}.hero.large{min-height:600px}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#08283fc9 0%,#0c355c8a 50%,#0a314826 100%),var(--hero) center/cover;z-index:0}.hero .wrap{width:100%;position:relative;z-index:1}.hero .copy{max-width:620px}.hero p{font-size:17px;line-height:1.6;max-width:550px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.section{padding:70px 0}.head-row{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}.head-row h2{margin:8px 0 0}.kicker{color:#1178b0;font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:12px}.grid{display:grid;gap:18px}.grid.four{grid-template-columns:repeat(4,1fr)}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.two{grid-template-columns:repeat(2,1fr)}.tile{border:1px solid #dbe5eb;border-radius:7px;overflow:hidden;background:white}.tile img{width:100%;height:205px;object-fit:cover;display:block}.tile .body{padding:18px}.tile h3{font:700 17px 'DM Sans',sans-serif;margin:0 0 7px}.tile p{font-size:14px;color:#53677b;line-height:1.5;margin:0 0 14px}.tile .pill{padding:7px 12px;font-size:12px}.photo-tile{min-height:300px;position:relative;display:flex;align-items:end;color:white;border-radius:7px;overflow:hidden;padding:20px;background:#123f59}.photo-tile img{position:absolute;width:100%;height:100%;object-fit:cover;inset:0}.photo-tile:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#06233cd9,transparent 75%)}.photo-tile>div{position:relative;z-index:1}.photo-tile b{font-size:16px}.photo-tile small{display:block;margin-top:4px}.strip{background:#0c2e49;color:white;padding:44px 0}.strip-inner{display:flex;align-items:center;justify-content:space-between;gap:25px}.strip h2{font-size:31px;margin:0}.strip p{margin:7px 0 0;line-height:1.5;color:#cee0e9}.split{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:48px}.split img{width:100%;height:360px;object-fit:cover;border-radius:8px}.split p,.lead{line-height:1.7;color:#4a6175;font-size:16px}.soft{background:#eff6fa}.benefits{display:flex;gap:35px;margin-top:22px;color:#0e456b;font-weight:700;font-size:13px}.benefits span:before{content:'✦';color:#1684bf;padding-right:7px}.filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:22px}.filters button{border:0;border-radius:30px;background:#edf3f8;padding:11px 19px;color:#183650;font:700 13px 'DM Sans';cursor:pointer}.filters button.active{background:#0d304b;color:white}.details{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.details>div{background:#eaf2f7;border-radius:7px;padding:20px;font-size:14px}.details b{display:block;margin-bottom:8px}.quote-layout{display:grid;grid-template-columns:1.4fr .7fr;gap:28px;align-items:start}.quote-box,.aside{border:1px solid #dce6ed;border-radius:8px;padding:28px;background:white}.quote-box h2{font-size:30px}.fields{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.fields label{display:grid;gap:7px;font-weight:700;font-size:13px}.fields .full{grid-column:1/-1}.fields input,.fields select,.fields textarea{width:100%;border:1px solid #d2dfe8;border-radius:5px;font:15px 'DM Sans';padding:13px;background:white}.fields textarea{min-height:130px;resize:vertical}.aside{background:#f1f7fa}.aside img{border-radius:6px;height:170px;width:100%;object-fit:cover}.aside p{line-height:1.55;color:#4e6678}.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px}.contact-panel{background:#edf5f9;border-radius:8px;padding:30px}.contact-panel a{text-decoration:underline;text-underline-offset:3px}.contact-panel p{line-height:1.7}.footer{background:#092a42;color:white;padding:53px 0 25px}.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:32px}.footer .brand{width:200px;filter:brightness(0) invert(1)}.footer p,.footer a{color:#ccdde8;line-height:1.7;font-size:13px}.footer b{font-size:14px}.foot-end{margin-top:38px;border-top:1px solid #ffffff33;padding-top:20px;color:#b7cbd7;font-size:12px}.small-note{font-size:13px;color:#668096;margin-top:16px}.icon-row{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;text-align:center;padding:33px 0}.icon-row a{font-size:13px;font-weight:700}.icon-row span{display:block;font-size:24px;color:#23688e;margin-bottom:10px}@media(max-width:900px){.nav{flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.brand{width:170px}nav{order:3;width:100%;margin:0;overflow:auto;padding:8px 0}.grid.four{grid-template-columns:repeat(2,1fr)}.split,.quote-layout,.contact-layout{grid-template-columns:1fr}.foot-grid{grid-template-columns:repeat(2,1fr)}.icon-row{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.wrap{padding:0 18px}.nav>.pill{margin-left:auto;padding:9px 12px;font-size:11px}.brand{width:145px}nav{gap:16px;font-size:12px}.hero.large{min-height:530px}.hero{min-height:400px}.hero p{font-size:15px}.section{padding:48px 0}.grid.four,.grid.three,.grid.two,.fields,.details{grid-template-columns:1fr}.fields .full{grid-column:auto}.head-row,.strip-inner{display:block}.head-row .pill,.strip-inner .pill{margin-top:15px}.foot-grid{grid-template-columns:1fr 1fr}.foot-grid>div:first-child{grid-column:1/-1}.photo-tile{min-height:240px}.split img{height:250px}.benefits{flex-wrap:wrap;gap:12px}}
[hidden]{display:none!important}

/* Immersive nautical presentation; core tools keep their own workspace. */
:root{--ocean:#0a2b40;--cyan:#157eab;--ease:cubic-bezier(.2,.7,.2,1)}
html{scroll-behavior:smooth;scroll-padding-top:150px}
body{overflow-x:clip}
.skip-link{position:fixed;top:8px;left:16px;z-index:100;background:white;padding:12px 18px;transform:translateY(-150%)}
.skip-link:focus{transform:none}
a:focus-visible,button:focus-visible{outline:3px solid #289bc7;outline-offset:5px}
.top{background:rgba(255,255,255,.94);backdrop-filter:blur(18px);transition:box-shadow .3s}
.top.is-scrolled{box-shadow:0 8px 32px #082d401c}
nav{font-size:14px;gap:18px}nav a{position:relative;padding:8px 0}nav a:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}nav a:hover:after,nav a.active:after{transform:scaleX(1)}
.pill{font-size:14px;padding:13px 21px;transition:transform .3s var(--ease),box-shadow .3s,background .3s}
.pill:hover{transform:translateY(-3px);box-shadow:0 8px 22px #08283f20}.pill.line:hover{background:#ffffff1f}
.eyebrow,.kicker{font-size:13px;line-height:1.6}
.hero:before{inset:-45px 0;transform:translate3d(0,var(--hero-shift,0px),0) scale(1.04)}
.hero .copy>*{animation:arrival .85s var(--ease) both}.hero .copy>h1{animation-delay:.1s}.hero .copy>p{animation-delay:.2s}.hero .copy>.actions{animation-delay:.3s}
@keyframes arrival{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
.immersive-home .hero.large{min-height:700px;min-height:max(700px,calc(100svh - 77px));padding:75px 0 135px;background:#092c40}
.immersive-home .hero:before{background:linear-gradient(90deg,#042637e8 0%,#062c459c 55%,#0c355c22),linear-gradient(0deg,#082b42a8,transparent 35%),var(--hero) center/cover}
.immersive-home .hero .copy{max-width:950px}
.immersive-home h1{font-size:clamp(46px,6.5vw,88px);line-height:1.05;letter-spacing:-.045em;margin:25px 0}
.title-line{display:block}.title-light{font-style:italic;color:#dceaf2}
.immersive-home .hero p{max-width:510px;font-size:17px;color:#e3edf3}
.hero-bottom{position:absolute!important;bottom:34px;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:20px}
.scroll-cue{display:flex;align-items:center;gap:14px;font-size:14px}.scroll-track{display:block;width:24px;height:38px;border:1px solid #ffffff85;border-radius:20px;position:relative}.scroll-track:after{content:'';position:absolute;width:3px;height:9px;background:white;left:9px;top:8px;border-radius:3px;animation:scroll-hint 1.4s 3}
@keyframes scroll-hint{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(11px);opacity:1}}
.hero-caption{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#dfebf1}
.icon-row{padding-top:34px;padding-bottom:34px;gap:0}.icon-row a{padding:12px 8px;border-right:1px solid #dce7eb;font-size:14px;transition:color .3s,transform .3s}.icon-row a:last-child{border:0}.icon-row a:hover{color:#157eab;transform:translateY(-5px)}
.project-section{padding:100px 0 90px;background:#edf3f6}.project-section .head-row{margin-bottom:42px;align-items:center}.project-section h2{font-size:clamp(36px,4vw,55px)}
.project-gallery{gap:20px!important;align-items:start}.project-gallery .photo-tile{min-height:420px;border-radius:3px}.project-gallery .photo-tile:nth-child(even){margin-top:58px}.photo-tile{isolation:isolate}.photo-tile img,.tile img{transition:transform .8s var(--ease)}.photo-tile:hover img,.photo-tile:focus-visible img,.tile:hover img{transform:scale(1.06)}.photo-tile>div{transition:transform .5s var(--ease)}.photo-tile:hover>div{transform:translateY(-8px)}.photo-tile b{font-size:19px}.photo-tile small{font-size:14px}
.strip{padding:70px 0;background:linear-gradient(115deg,#071f32,#124762)}.strip h2{max-width:670px;font-size:clamp(30px,3.7vw,46px)}.strip p{max-width:610px;margin-top:18px}
.footer p,.footer a{font-size:14px}.fields label{font-size:14px}
.reveal-pending{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--reveal-delay,0ms)}.reveal-pending.is-visible{opacity:1;transform:none}
.reading-progress{position:fixed;top:0;left:0;height:3px;background:#218db4;z-index:50;width:100%;transform:scaleX(0);transform-origin:left;pointer-events:none}
@view-transition{navigation:auto}::view-transition-old(root){animation:fade-out .15s both}::view-transition-new(root){animation:arrival .3s both}@keyframes fade-out{to{opacity:0}}
@media(max-width:1100px){.nav{gap:15px}.nav>.pill{padding:11px 13px}.brand{width:180px}nav{gap:12px}.project-gallery .photo-tile{min-height:340px}}
@media(max-width:900px){.nav{padding-top:12px;padding-bottom:8px}.nav>.pill{margin-left:auto}nav{gap:22px}.immersive-home .hero.large{min-height:680px}.project-gallery .photo-tile:nth-child(even){margin-top:35px}.hero-caption{display:none}.project-section{padding:65px 0}.icon-row a:nth-child(3){border:0}}
@media(max-width:600px){html{scroll-padding-top:145px}.nav>.pill{font-size:12px}.nav .brand{width:142px}nav{font-size:14px;padding:8px 0}.immersive-home .hero.large{min-height:640px;padding:48px 0 110px}.immersive-home h1{font-size:clamp(42px,10.8vw,62px)}.immersive-home .hero p{font-size:16px}.hero .actions{gap:10px}.hero .pill{font-size:13px;padding:12px 16px}.hero-bottom{bottom:28px}.eyebrow{max-width:290px;font-size:12px}.project-gallery{grid-template-columns:1fr 1fr!important;gap:12px!important}.project-gallery .photo-tile{min-height:280px;padding:14px}.project-gallery .photo-tile:nth-child(even){margin-top:28px}.photo-tile b{font-size:16px}.photo-tile small{font-size:13px}.icon-row{padding-top:20px;padding-bottom:20px}.icon-row a{font-size:13px}.head-row .pill{margin-top:20px}.strip{padding:48px 0}.foot-grid{gap:24px}.footer a{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero:before{transform:none!important}.reveal-pending{opacity:1;transform:none}.pill:hover,.icon-row a:hover,.photo-tile:hover img,.tile:hover img,.photo-tile:hover>div{transform:none}::view-transition-group(*),::view-transition-new(*),::view-transition-old(*){animation:none!important}}

/* Product miniatures in the six category links. */
.icon-row{gap:12px;padding-top:28px;padding-bottom:28px}
.icon-row a{display:flex;flex-direction:column;align-items:center;gap:13px;border:0;padding:10px 4px;line-height:1.4}
.icon-row .category-thumb{display:block;width:144px;height:144px;max-width:100%;object-fit:contain;border-radius:14px;background:#eef4f7;box-shadow:0 5px 18px #12374b0b;transition:transform .4s var(--ease),box-shadow .4s}
.icon-row a:hover .category-thumb,.icon-row a:focus-visible .category-thumb{transform:scale(1.04);box-shadow:0 9px 24px #12374b1c}
@media(max-width:900px){.icon-row{gap:16px 12px}.icon-row .category-thumb{width:140px;height:140px}}
@media(max-width:600px){.icon-row{gap:15px 10px}.icon-row a{font-size:13px;gap:10px}.icon-row .category-thumb{width:100%;height:auto;aspect-ratio:1;border-radius:11px}}
@media(prefers-reduced-motion:reduce){.icon-row a:hover .category-thumb,.icon-row a:focus-visible .category-thumb{transform:none}}

[hidden]{display:none!important}.material-grid{grid-template-columns:repeat(4,1fr)}.photo-tile{margin:0}.photo-tile:after{display:none}.commune-options{width:100%;margin-top:8px;padding:10px;font:inherit}.layout-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.layout-presets button{background:#edf4f7;border:1px solid #ccdbe2;border-radius:9px;padding:8px;cursor:pointer;color:#12204a}.layout-presets svg{display:block;width:100%;height:65px}.layout-presets span{font-size:14px}@media(max-width:700px){.material-grid{grid-template-columns:repeat(2,1fr)}}
.material-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.material-grid .tile img{height:320px;object-fit:cover;cursor:zoom-in}.photo-tile{padding:0;border:0;background:#edf2f5;cursor:zoom-in;width:100%;text-align:left}.photo-tile img{width:100%;height:290px;object-fit:cover}.image-dialog{border:0;padding:16px;border-radius:14px;max-width:95vw;width:1100px;background:#0f1b29;color:white}.image-dialog::backdrop{background:#06101be6}.image-dialog img{width:100%;height:75vh;object-fit:contain}.image-dialog .viewer-controls{display:flex;align-items:center;justify-content:space-between;gap:10px}.image-dialog button{padding:12px 16px;border:0;border-radius:8px;cursor:pointer;font-size:16px}.zoom-image{display:block;border:0;background:transparent;padding:0;width:100%;cursor:zoom-in}.zoom-image img{display:block;width:100%}@media(max-width:700px){.material-grid{grid-template-columns:1fr}.material-grid .tile img{height:280px}.image-dialog img{height:65vh}}

.photo-tile .photo-caption{display:block;text-align:left;padding:14px 16px;background:white;color:#122b42;font-size:16px;line-height:1.5}.gallery-description{padding:12px 20px;margin:0;color:#fff;font-size:16px;text-align:center}.image-dialog .gallery-description:empty{display:none}

#projects .photo-tile{display:block;min-height:0;padding:0}#projects .photo-tile img{position:static;display:block;height:290px}#projects .photo-caption{position:relative;z-index:1}.image-dialog .gallery-description{color:#122b42}
/* Solution pages and classified photo galleries */
.tile>a:first-child{display:block;overflow:hidden}.tile>a:first-child img{display:block;transition:transform .25s}.tile>a:first-child:hover img{transform:scale(1.035)}.collection-photo{padding:0;text-align:left;cursor:pointer;font:inherit;color:inherit;background:white}.collection-photo .body{display:block}.collection-photo img{width:100%;height:260px;object-fit:cover}.slot fieldset{border:1px solid #dbe5eb;border-radius:8px;padding:12px;margin:14px 0}.slot fieldset label{margin:5px 0}.slot fieldset input{margin:0}.slot fieldset legend{font-weight:700}.nav nav{flex-wrap:wrap}a:focus-visible,button:focus-visible{outline:3px solid #369bc1;outline-offset:4px}

.immersive-home .project-gallery .photo-tile{display:block;min-height:0;padding:0;background:#edf2f5;color:#102e47;cursor:pointer}.immersive-home .project-gallery .photo-tile img{position:static;display:block;height:290px}.immersive-home .project-gallery .photo-tile>div{padding:18px 16px;background:#edf2f5;color:#102e47}.immersive-home .project-gallery .photo-tile b{color:#102e47}.immersive-home .project-gallery .photo-tile small{color:#36546b}.immersive-home .project-gallery .photo-tile:hover>div{transform:none}@media(max-width:600px){.immersive-home .project-gallery .photo-tile img{height:220px}}

#added-photo-manager{padding:24px 0;margin-bottom:30px;border-bottom:1px solid #cad9e2}#added-photo-manager>input{display:block;margin:16px 0;font:inherit;max-width:100%}#added-photo-list{margin:24px 0}.added-page-photos .collection-photo{align-self:start}.added-page-photos .pill{margin-top:20px}
