@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/source-serif-4-cyrillic-ext-400-normal.CWV284fw.woff2)format("woff2"),url(/_astro/source-serif-4-cyrillic-ext-400-normal.CYkrUebz.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/source-serif-4-cyrillic-400-normal.C44pakCn.woff2)format("woff2"),url(/_astro/source-serif-4-cyrillic-400-normal.DEwCKrdL.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/source-serif-4-greek-400-normal.Cw5-AHNN.woff2)format("woff2"),url(/_astro/source-serif-4-greek-400-normal.D_DO3bho.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/source-serif-4-vietnamese-400-normal.DFDfvBrN.woff2)format("woff2"),url(/_astro/source-serif-4-vietnamese-400-normal.9XEw6Pmr.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/source-serif-4-latin-ext-400-normal.B5LksYz5.woff2)format("woff2"),url(/_astro/source-serif-4-latin-ext-400-normal.DKmgyNre.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/source-serif-4-latin-400-normal.DJ5YJwmz.woff2)format("woff2"),url(/_astro/source-serif-4-latin-400-normal.C1O10bxN.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/source-serif-4-cyrillic-ext-600-normal.D_E8FDgP.woff2)format("woff2"),url(/_astro/source-serif-4-cyrillic-ext-600-normal.h2VnbV3V.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/source-serif-4-cyrillic-600-normal.BDP5YDHD.woff2)format("woff2"),url(/_astro/source-serif-4-cyrillic-600-normal.CHh5eQWW.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/source-serif-4-greek-600-normal.DdRkKr-1.woff2)format("woff2"),url(/_astro/source-serif-4-greek-600-normal.OkzgCkGB.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/source-serif-4-vietnamese-600-normal.B33FcZBi.woff2)format("woff2"),url(/_astro/source-serif-4-vietnamese-600-normal.CKUOBVO_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/source-serif-4-latin-ext-600-normal.pa-C5Dkf.woff2)format("woff2"),url(/_astro/source-serif-4-latin-ext-600-normal.B2fExS53.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/source-serif-4-latin-600-normal.DouSKlru.woff2)format("woff2"),url(/_astro/source-serif-4-latin-600-normal.DeJomR3S.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/figtree-latin-ext-400-normal.CXAzuTZb.woff2)format("woff2"),url(/_astro/figtree-latin-ext-400-normal.Gbh-3PTk.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/figtree-latin-400-normal.g7Dtegnw.woff2)format("woff2"),url(/_astro/figtree-latin-400-normal.BD4aNku5.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/figtree-latin-ext-600-normal.DJlfifZj.woff2)format("woff2"),url(/_astro/figtree-latin-ext-600-normal.CQqsimlV.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/figtree-latin-600-normal.Cv_xCTDl.woff2)format("woff2"),url(/_astro/figtree-latin-600-normal.BM_oTo4n.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ground:#e4ecf2;--mist:#c3d0da;--river:#86a6bf;--navy:#12294a;--sky:#a9cbe3;--sky-pale:#e0ebf3;--white:#fff;--text:#1c2733;--muted:#475766;--display:"Source Serif 4", Georgia, serif;--body:"Figtree", system-ui, sans-serif;--ease:cubic-bezier(.16, 1, .3, 1);--gutter:clamp(1rem, 4vw, 3.5rem);--bar-h:3.5rem;color-scheme:light;scrollbar-color:var(--mist) var(--ground)}*,:before,:after{box-sizing:border-box}::selection{background:var(--sky);color:var(--navy)}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--bar-h) + 1rem)}body{background:var(--ground);min-height:100svh;color:var(--text);font:400 1.0625rem/1.65 var(--body);flex-direction:column;margin:0;display:flex}main{flex-direction:column;flex:1;display:flex}h1,h2,h3{font-family:var(--display);letter-spacing:-.01em;color:var(--navy);text-wrap:balance;margin:0;font-weight:600;line-height:1.12}p{margin:0}img{max-width:100%;display:block}a{color:inherit;text-underline-offset:.2em}:focus-visible{outline:2px solid var(--navy);outline-offset:3px}.hull :focus-visible,.bar :focus-visible,.foot :focus-visible{outline-color:var(--sky)}.skip{z-index:10;background:var(--white);color:var(--navy);padding:.5rem 1rem;position:absolute;top:-4rem;left:1rem}.skip:focus{top:1rem}.todo{color:inherit;overflow-wrap:anywhere;background:0 0;border:1px dashed;border-radius:2px;padding:0 .25em;font-size:.85em;font-weight:600}.bar{z-index:20;min-height:var(--bar-h);padding:0 var(--gutter);background:var(--navy);color:var(--white);justify-content:space-between;align-items:center;gap:.5rem 1.5rem;display:flex;position:sticky;top:0;box-shadow:0 1px #ffffff14}.bar__name{font:600 1.25rem/1.2 var(--display);flex:none;align-items:center;gap:.6rem;text-decoration:none;display:inline-flex}.bar__mark{width:1.75rem;height:1.75rem;transition:transform .5s var(--ease)}.bar__name:hover .bar__mark{transform:rotate(-12deg)translate(2px)}.bar__nav{scrollbar-width:none;gap:.25rem;font-size:.975rem;font-weight:600;display:flex;overflow-x:auto}.bar__nav::-webkit-scrollbar{display:none}.bar__nav a{white-space:nowrap;min-height:2.75rem;transition:color .15s var(--ease);place-items:center;padding:0 .8rem;text-decoration:none;display:grid;position:relative}.bar__nav a:after{content:"";background:var(--sky);transform-origin:0;height:2px;transition:transform .3s var(--ease);position:absolute;bottom:.45rem;left:.8rem;right:.8rem;transform:scaleX(0)}.bar__nav a:hover,.bar__nav a[aria-current]{color:var(--sky)}.bar__nav a:hover:after,.bar__nav a[aria-current]:after{transform:scaleX(1)}.home{--hull-w:clamp(18rem, 30vw, 26rem);grid-template-columns:var(--hull-w) minmax(0, 1fr);background:linear-gradient(90deg, var(--navy) 0 calc(var(--hull-w) - 12px), var(--white) 0 calc(var(--hull-w) - 6px), var(--sky) 0 var(--hull-w), var(--ground) 0);flex:1;display:grid}.hull{padding:22svh var(--gutter) 3rem;color:var(--white)}.hull__inner{top:calc(var(--bar-h) + 22svh);will-change:transform;flex-direction:column;gap:clamp(1.5rem,4vh,2.5rem);display:flex;position:sticky}.hull h1{color:var(--white);font-size:clamp(2.75rem,4.6vw,4.25rem);line-height:1.04}.hull__role{color:var(--sky);margin-top:.75rem;font-size:1.125rem}.hull__jump{display:none}.hull__links{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.link{background:var(--white);color:var(--navy);text-align:center;transition:background-color .15s var(--ease), transform .2s var(--ease);padding:.7rem 1rem;font-weight:600;text-decoration:none;display:block}a.link:hover{background:var(--sky);transform:translateY(-2px)}.link--empty{color:inherit;cursor:not-allowed;background:0 0;border:1px dashed;font-weight:400}.water{flex-direction:column;justify-content:space-between;gap:2rem;min-width:0;display:flex}.sections{gap:clamp(3rem,8vh,5rem);max-width:64rem;padding:clamp(2rem,6vh,4rem) clamp(1.5rem,3.5vw,3rem) 0;display:grid}.section h2{margin-bottom:1.25rem;font-size:clamp(1.75rem,3vw,2.5rem)}.section h2:after{content:"";background:linear-gradient(90deg, var(--navy) 0 33.3%, var(--white) 33.3% 66.6%, var(--sky) 66.6%);width:6.75rem;height:7px;margin-top:.7rem;display:block}.about__grid{grid-template-columns:minmax(0,1fr) clamp(12rem,19vw,16rem);align-items:stretch;gap:1.5rem clamp(1.25rem,2.5vw,2rem);display:grid}.about__main{min-width:0}.portrait{border:6px solid var(--white);outline:3px solid var(--navy);outline-offset:-9px;background:var(--mist);min-height:22rem;margin:0;position:relative;overflow:hidden;box-shadow:0 18px 32px -20px #12294a99}.portrait img{object-fit:cover;object-position:50% 22%;width:100%;height:100%;transition:transform .9s var(--ease);position:absolute;inset:0}.portrait:after{content:"";pointer-events:none;background:linear-gradient(#0000 70%,#12294a47);position:absolute;inset:0}.portrait:hover img{transform:scale(1.04)}.about__lead{font:400 clamp(1.5rem, 2.6vw, 2.125rem)/1.28 var(--display);color:var(--navy);text-wrap:pretty;margin-bottom:1.5rem}.about__lead mark{background:linear-gradient(transparent 64%, var(--sky) 64%);color:inherit}.facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem;margin:0;display:grid}.facts div{background:var(--white);border-top:3px solid var(--navy);transition:transform .25s var(--ease), box-shadow .25s var(--ease);padding:.8rem 1rem}.facts div:hover{transform:translateY(-3px);box-shadow:0 8px 18px -10px #12294a73}.facts dt{color:var(--muted);font-size:.9375rem;font-weight:600}.facts dd{margin:0;line-height:1.4}.jobs{border-top:2px solid var(--navy);margin:0;padding:0;list-style:none}.jobs li{border-bottom:1px solid var(--mist);grid-template-columns:10rem minmax(0,1fr);gap:.25rem 1.5rem;padding:1.1rem 0;display:grid}.jobs__when{color:var(--muted);padding-top:.2rem;font-size:.9375rem;font-weight:600}.jobs h3{font-size:1.25rem}.jobs__org{color:var(--navy);margin-bottom:.35rem;font-weight:600}.skills{border-top:2px solid var(--navy);gap:0;margin:0;display:grid}.skills div{border-bottom:1px solid var(--mist);grid-template-columns:10rem minmax(0,1fr);gap:.25rem 1.5rem;padding:.7rem 0;display:grid}.skills dt{color:var(--navy);font-weight:600}.skills dd{margin:0}.oar{color:var(--navy);margin-top:1rem;text-decoration:none;display:block}.oar__label{font:600 clamp(1.5rem, 2.4vw, 2rem)/1.2 var(--display);margin-bottom:.25rem;padding-left:clamp(1.5rem,3.5vw,3rem);display:block}.oar__arrow{transition:transform .35s var(--ease);display:inline-block}.oar:hover .oar__arrow,.oar:focus-visible .oar__arrow{transform:translate(8px)}.oar__line{padding-right:var(--gutter);background:linear-gradient(transparent 50%, var(--river) 50%);align-items:center;display:flex;position:relative}.oar__depth{background:var(--river);contain:strict;height:clamp(1.25rem,5vh,2.75rem);display:block;position:relative;overflow:hidden}.oar__depth:before,.oar__depth:after{content:"";will-change:transform;height:2px;position:absolute;left:-13rem;right:0}.oar__depth:before{background:linear-gradient(90deg, var(--white) 0 3rem, transparent 3rem) 0 0 / 9rem 2px repeat-x;animation:7s linear infinite water-a;top:30%}.oar__depth:after{background:linear-gradient(90deg, var(--white) 0 2rem, transparent 2rem) 0 0 / 13rem 2px repeat-x;animation:11s linear infinite water-b;top:75%}@keyframes water-a{to{transform:translate(9rem)}}@keyframes water-b{to{transform:translate(13rem)}}.oar__shaft{background:linear-gradient(var(--sky) 0 1px, var(--navy) 1px 6px, #0b1b33 6px);flex:1;height:8px;position:relative}.oar__grip{background:repeating-linear-gradient(90deg,#0b1b33 0 5px,#1d3a66 5px 8px);border-radius:7px;width:clamp(5rem,10vw,9rem);height:14px;position:absolute;top:-3px;left:1.5rem}.oar__sleeve{background:linear-gradient(90deg, var(--white) 0 30%, var(--sky) 30% 55%, var(--navy) 55%);border-radius:2px;width:2.25rem;height:16px;position:absolute;top:-4px;right:0}.oar__stage{will-change:transform;perspective:900px;flex:none;width:clamp(9.5rem,20vw,17rem);margin-left:-1px;position:relative}.oar__blade{filter:drop-shadow(0 8px 6px #12294a47);width:100%;transition:transform .7s var(--ease);transform-origin:8%;display:block}.oar__ripple{opacity:0;border:2px solid #fffc;border-radius:50%;height:.7rem;position:absolute;bottom:-.9rem;left:12%;right:0;transform:scale(.6)}.paint-navy{fill:var(--navy)}.paint-white{fill:var(--white)}.paint-sky{fill:var(--sky)}.blade-edge{fill:none;stroke:#0b1b33;stroke-width:2px}.blade-rib{fill:none;stroke:#fff;stroke-opacity:.35;stroke-width:2px}@keyframes bob{50%{transform:translateY(-3px)rotate(-.6deg)}}@keyframes ripple{0%{opacity:.9;transform:scale(.5)}to{opacity:0;transform:scale(1.15)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.oar__blade{transform:rotateX(62deg)}.oar:hover .oar__blade,.oar:focus-visible .oar__blade{transform:rotateX(0)}.oar:hover .oar__ripple,.oar:focus-visible .oar__ripple{animation:ripple 1.1s var(--ease) both}}@media (prefers-reduced-motion:no-preference){.oar__stage{animation:4.5s ease-in-out infinite bob}}.js .reveal{opacity:0;transition:opacity .6s var(--ease) calc(var(--n,0) * 60ms), transform .6s var(--ease) calc(var(--n,0) * 60ms);transform:translateY(14px)}.js .reveal.is-in{opacity:1;transform:none}.js .reveal.instant{transition:none}.page{width:100%;max-width:72rem;padding:clamp(2rem, 5vw, 3.5rem) var(--gutter) clamp(3rem, 6vw, 4.5rem);margin-inline:auto}.page h1{margin-bottom:1.5rem;font-size:clamp(1.75rem,5.5vw,3rem)}.rows{border-top:2px solid var(--navy);margin:0;padding:0;list-style:none}.rows li{border-bottom:1px solid var(--mist)}.row{transition:background-color .2s var(--ease), padding .3s var(--ease);grid-template-columns:minmax(0,5fr) minmax(0,6fr) 3rem;align-items:center;gap:1rem 2rem;padding:clamp(1.25rem,3vw,2rem) 1rem;text-decoration:none;display:grid}.row:hover{background:var(--white);padding-left:1.5rem}.row h2{overflow-wrap:anywhere;font-size:clamp(1.375rem,2.6vw,2rem)}.row__tech{color:var(--muted);margin-top:.25rem}.row__arrow{fill:none;width:2.5rem;stroke:var(--navy);stroke-width:2px;transition:transform .3s var(--ease)}.row:hover .row__arrow{transform:translate(6px)}.case__back{color:var(--muted);transition:color .15s var(--ease);margin-bottom:.75rem;font-weight:600;display:inline-block}.case__back:hover{color:var(--navy)}.page.case{padding-top:clamp(1rem,2.5vw,1.75rem)}.case__grid{grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start;gap:clamp(1.5rem,4vw,3rem);display:grid}.case__summary{color:var(--navy);max-width:60ch;font-size:1.25rem;line-height:1.4}.case__links{flex-wrap:wrap;gap:.5rem;margin-top:1.25rem;display:flex}.case__links a.link{background:var(--navy);color:var(--white)}.case__links a.link:hover{background:var(--sky);color:var(--navy)}.case dl{gap:1rem;margin:1.75rem 0 0;display:grid}.case dt{color:var(--muted);font-weight:600}.case dd{margin:0}.case__grid:not(:has(.gallery)){grid-template-columns:minmax(0,46rem)}.case__more{border-top:2px solid var(--navy);grid-template-columns:1fr 1fr;gap:.75rem;margin-top:clamp(2.5rem,6vw,4rem);padding-top:1rem;display:grid}.case__more a{background:var(--white);font:600 1.25rem/1.2 var(--display);color:var(--navy);transition:background-color .2s var(--ease), transform .25s var(--ease);gap:.1rem;padding:.8rem 1rem;text-decoration:none;display:grid}.case__more a:last-child{text-align:right}.case__more a:hover{background:var(--sky);transform:translateY(-2px)}.case__more span{font:600 .875rem var(--body);color:var(--muted)}.gallery{--avail:calc(100svh - var(--bar-h) - 14rem);top:calc(var(--bar-h) + 1rem);min-width:0;margin:0;padding:.6rem;position:sticky}.gallery__panel{width:min(100%, max(calc(var(--avail) * var(--ratio)), 22rem));transition:width .45s var(--ease);margin-inline:auto}.gallery__frame{width:100%;aspect-ratio:var(--ratio);background:var(--navy);box-shadow:0 0 0 3px var(--navy), 0 0 0 9px var(--white), 0 22px 36px -22px #12294aa6;cursor:zoom-in;transition:aspect-ratio .45s var(--ease);position:relative}.gallery__frame:focus-visible{outline:3px solid var(--sky);outline-offset:12px}.gallery__slide{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .35s var(--ease);pointer-events:none;position:absolute;inset:0}.gallery__slide.is-active{opacity:1}.gallery__bar{justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.5rem;display:flex}.gallery__bar p{text-align:center;color:var(--navy);flex:1;font-weight:600;line-height:1.3}.gallery__count{color:var(--muted);font-weight:400}.gallery__hint{color:var(--muted);font-size:.8125rem;font-weight:400;display:block}.gallery__bar button{background:var(--navy);width:2.75rem;height:2.75rem;color:var(--white);cursor:pointer;transition:background-color .15s var(--ease), color .15s var(--ease);border:0;flex:none;place-items:center;padding:0;display:grid}.gallery__bar button:hover{background:var(--sky);color:var(--navy)}.gallery__bar svg{fill:none;stroke:currentColor;stroke-width:2.5px;width:1.25rem}.gallery__thumbs{scrollbar-width:none;gap:.5rem;margin-top:.75rem;padding:4px;display:flex;overflow-x:auto}.gallery__thumbs::-webkit-scrollbar{display:none}.gallery__thumbs button{background:var(--navy);cursor:pointer;opacity:.6;outline-offset:2px;width:4.5rem;height:3.25rem;transition:opacity .2s var(--ease), outline-color .2s var(--ease), transform .2s var(--ease);border:0;outline:2px solid #0000;flex:none;padding:0}.gallery__thumbs button:hover{opacity:1;transform:translateY(-2px)}.gallery__thumbs button[aria-selected=true]{opacity:1;outline-color:var(--navy)}.gallery__thumbs img{object-fit:cover;object-position:top;width:100%;height:100%}.foot{padding:1.25rem var(--gutter);background:var(--navy);color:var(--white);flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;font-size:.95rem;display:flex}.foot ul{flex-wrap:wrap;gap:.25rem 1.25rem;margin:0;padding:0;list-style:none;display:flex}.foot a{transition:color .15s var(--ease)}.foot a:hover{color:var(--sky)}.curtain{z-index:100;background:var(--navy);pointer-events:none;place-items:center;display:none;position:fixed;inset:0}.curtain:after{content:"";background:linear-gradient(var(--sky) 0 6px, var(--white) 6px 14px);height:14px;position:absolute;top:100%;left:0;right:0}.curtain svg{width:4rem;height:4rem}::view-transition-group(*){animation-duration:.42s;animation-timing-function:var(--ease)}::view-transition-old(root){display:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}:root{--push:cubic-bezier(.22, 1, .36, 1)}html[data-push]::view-transition-group(content){animation-duration:.52s!important;animation-timing-function:var(--push)!important}html[data-push]::view-transition-image-pair(content){isolation:auto}html[data-push]::view-transition-old(content),html[data-push]::view-transition-new(content){mix-blend-mode:normal;animation-duration:.52s!important;animation-timing-function:var(--push)!important;animation-fill-mode:both!important}html[data-push=left]::view-transition-old(content){animation-name:push-out-left!important}html[data-push=left]::view-transition-new(content){animation-name:push-in-left!important}html[data-push=right]::view-transition-old(content){animation-name:push-out-right!important}html[data-push=right]::view-transition-new(content){animation-name:push-in-right!important}.curtain{view-transition-name:curtain}::view-transition-group(curtain),::view-transition-old(curtain),::view-transition-new(curtain){animation:none!important}::view-transition-image-pair(curtain){isolation:auto}::view-transition-old(curtain){display:none}@keyframes push-out-left{to{opacity:0;filter:brightness(.9);transform:translate(-45%)scale(.94)}}@keyframes push-in-left{0%{opacity:0;transform:translate(55%)scale(.98)}}@keyframes push-out-right{to{opacity:0;filter:brightness(.9);transform:translate(45%)scale(.94)}}@keyframes push-in-right{0%{opacity:0;transform:translate(-55%)scale(.98)}}@keyframes settle{0%{opacity:0;transform:translateY(10px)}}@keyframes feather{0%{transform:rotateX(0)}}@keyframes bar-in{0%{transform:translateY(-100%)}}.first-load .bar{animation:bar-in .5s var(--ease) backwards}.first-load .hull__inner>*,.first-load .about__lead,.first-load .section:first-child h2,.first-load .page>*{animation:settle .6s var(--ease) backwards}.first-load .hull__inner>:nth-child(2){animation-delay:70ms}.first-load .hull__inner>:nth-child(3){animation-delay:.14s}.first-load .about__lead{animation-delay:.1s}.first-load .oar{animation:settle .6s var(--ease) .26s backwards}.first-load .page>:nth-child(2){animation-delay:70ms}.first-load .page>:nth-child(3){animation-delay:.14s}@media (hover:hover) and (prefers-reduced-motion:no-preference){.first-load .oar__blade{animation:feather .9s var(--ease) .5s backwards}}@media (width<=820px){.home{background:var(--ground);grid-template-columns:minmax(0,1fr)}.hull{padding:2rem var(--gutter) 2.25rem;background:var(--navy);box-shadow:inset 0 -6px 0 var(--sky), inset 0 -12px 0 var(--white)}.hull__inner{will-change:auto;gap:1.25rem;position:static}.bar{flex-wrap:nowrap;gap:.75rem}.bar__name span{display:none}.bar__nav{margin-right:-.5rem;font-size:.9rem}.bar__nav a{padding:0 .55rem}.bar__nav a:after{left:.55rem;right:.55rem}.about__grid{grid-template-columns:minmax(0,1fr)}.about__intro{padding-right:2rem}.portrait{aspect-ratio:4/4.4;order:-1;min-height:0;max-height:26rem}.facts,.jobs li,.skills div,.case__more{grid-template-columns:minmax(0,1fr)}.case__more a:last-child{text-align:left}.hull__jump{background:var(--white);color:var(--navy);text-align:center;padding:.6rem 1rem;font-weight:600;text-decoration:none;display:block}.sections{padding-inline:var(--gutter)}.oar__label{padding-left:var(--gutter)}.row{grid-template-columns:minmax(0,1fr) 2.5rem}.row h2{grid-column:1/-1}.case__grid,.case__grid:not(:has(.gallery)){grid-template-columns:minmax(0,1fr)}.gallery{--avail:70svh;position:static}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.curtain{display:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.row:hover .row__arrow{transform:none}html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none}.gallery__panel,.gallery__frame,.gallery__slide{transition:none}}.cv{max-width:66rem;padding-block:clamp(1rem,3vw,2rem)}.viewer{height:calc(100svh - var(--bar-h) - 7.5rem);background:var(--mist);border:1px solid var(--mist);flex-direction:column;min-height:30rem;display:flex;box-shadow:0 18px 40px -28px #12294a99}.viewer:fullscreen,.viewer.is-expanded{border:0;height:100svh}.viewer.is-expanded{z-index:50;position:fixed;inset:0}.viewer-open body{overflow:hidden}.viewer__bar{background:var(--navy);color:var(--white);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;padding:.5rem .75rem;display:flex}.viewer__group{align-items:center;gap:.25rem;display:flex}.viewer__bar button,.viewer__btn{min-width:2.75rem;min-height:2.75rem;color:inherit;font:600 .9375rem var(--body);cursor:pointer;transition:background-color .15s var(--ease), color .15s var(--ease);background:0 0;border:0;justify-content:center;align-items:center;gap:.5rem;padding:0 .7rem;text-decoration:none;display:inline-flex}.viewer__bar button:hover,.viewer__btn:hover{color:var(--sky);background:#ffffff24}.viewer__btn:last-child{background:var(--white);color:var(--navy)}.viewer__btn:last-child:hover{background:var(--sky);color:var(--navy)}.viewer__bar svg{fill:none;stroke:currentColor;stroke-width:2.25px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.25rem;height:1.25rem}.viewer__page{text-align:center;min-width:7.5rem;font-size:.9375rem}.viewer__zoom{font-variant-numeric:tabular-nums;min-width:4rem!important}.viewer__scroll{scroll-behavior:auto;overscroll-behavior:contain;flex:1;min-height:0;padding:12px;overflow:auto}.viewer__pages{justify-content:center;gap:12px;width:max-content;min-width:100%;display:grid}.viewer__sheet{animation:settle .5s var(--ease) backwards;background:var(--white);box-shadow:0 6px 24px -10px #12294a80}.viewer__sheet canvas{display:block}.viewer__status{text-align:center;color:var(--navy);padding:2rem}@media (width<=820px){.cv{padding-inline:0}.viewer{height:calc(100svh - var(--bar-h) - 1rem)}.viewer__btn span{display:none}.viewer__page{min-width:0;font-size:.875rem}.viewer__bar{justify-content:center}}.lightbox{background:var(--navy);width:min(96vw,80rem);max-width:none;height:92svh;max-height:none;color:var(--white);border:0;padding:0;overflow:hidden}.lightbox[open]{animation:settle .3s var(--ease);flex-direction:column;display:flex}.lightbox::backdrop{background:#0b1b33d1}.lightbox__close{background:var(--white);min-height:2.75rem;color:var(--navy);font:600 .9375rem var(--body);cursor:pointer;border:0;align-self:flex-end;margin:.5rem;padding:0 1.1rem}.lightbox__close:hover{background:var(--sky)}.lightbox__scroll{flex:1;justify-content:center;align-items:flex-start;min-height:0;padding:0 1rem 1rem;display:flex;overflow:auto}.lightbox__scroll img{background:var(--white);width:auto;max-width:100%;height:auto}@media (width<=1000px){.case__grid{grid-template-columns:minmax(0,1fr)}.gallery{--avail:70svh;position:static}}@media (width<=400px){.bar{gap:.25rem;padding-inline:.75rem}.bar__mark{width:1.5rem;height:1.5rem}.bar__nav{gap:0;margin-right:0;font-size:.85rem}.bar__nav a{padding:0 .45rem}.bar__nav a:after{left:.45rem;right:.45rem}}@media (width<=340px){.bar__nav{font-size:.8rem}.bar__nav a{padding:0 .35rem}.bar__nav a:after{left:.35rem;right:.35rem}}
