*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:#f7f8fa;color:#10283d;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit}a:focus-visible,summary:focus-visible{outline:3px solid #bc7711;outline-offset:5px}.skip{position:absolute;top:-80px;background:white;padding:12px;z-index:9}.skip:focus{top:0}.topbar{position:sticky;top:0;z-index:5;background:#f7f8faf5;backdrop-filter:blur(12px);padding:17px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d8dfe5;gap:20px}.brand{display:flex;align-items:center;gap:16px;text-decoration:none}.brand b{font-size:30px;letter-spacing:-2px;line-height:1}.brand b span{color:#bf7b11}.brand>span{font-size:12px;letter-spacing:1.8px;font-weight:700}.topbar nav{display:flex;gap:26px}.topbar nav a{font-size:14px;text-decoration:none}.topbar nav a:hover{text-decoration:underline;text-underline-offset:5px}.hero{display:grid;grid-template-columns:1fr 1.08fr;background:#0c2034;color:#fff;min-height:630px}.hero-copy{padding:75px 7% 65px 10%}.eyebrow{font-size:12px;font-weight:700;letter-spacing:2px}.hero .eyebrow{color:#dcbf86}h1{font-size:clamp(60px,6.5vw,102px);line-height:.98;letter-spacing:-4px;margin:32px 0}h1 span{color:#f4b544}.intro{font-size:23px;line-height:1.35;max-width:340px}.hero-detail{max-width:365px;color:#b9c9d7}.primary{display:inline-flex;justify-content:space-between;gap:44px;align-items:center;background:#f4b544;color:#10283d;padding:14px 20px;text-decoration:none;font-weight:700;margin-top:18px}.primary:hover{background:#ffd17a}.hero-visual{position:relative;min-width:0}.hero-visual>img{width:100%;height:100%;object-fit:cover;object-position:54% center;position:absolute}.hero-caption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:12px;background:#0c2034df;color:white;padding:18px 25px;font-size:12px;letter-spacing:1px}.index{display:flex;gap:30px;align-items:center;justify-content:space-between;padding:27px 5%;border-bottom:1px solid #ccd4dd;flex-wrap:wrap}.index>span{font-size:12px;letter-spacing:1.5px;color:#526475}.index>a{font-size:14px;text-decoration:none;font-weight:700}.work-section{padding:70px 5% 0;scroll-margin-top:25px}.section-heading{display:flex;justify-content:space-between;align-items:end;border-bottom:2px solid #142b40;padding-bottom:26px;gap:30px}.section-heading .eyebrow{color:#63717d}h2{font-size:clamp(34px,4vw,55px);line-height:1.1;letter-spacing:-1.7px;margin:14px 0 0}.section-heading>p{max-width:290px;font-size:14px;color:#526475;text-align:right;margin:0}.project{display:grid;grid-template-columns:1fr 1.7fr;gap:7%;padding:46px 0;border-bottom:1px solid #d6dde3}.project-num{font-size:12px;letter-spacing:2px;color:#6c7b87}h3{font-size:29px;line-height:1.2;letter-spacing:-.7px;margin:14px 0 18px}.project-copy p{color:#526475;max-width:390px;margin:0}.image-link{display:block;position:relative;background:#e9edf1;overflow:hidden;text-decoration:none}.image-link>img{display:block;width:100%;max-height:530px;object-fit:contain;transition:transform .25s}.image-link:hover>img{transform:scale(1.015)}.image-link>span{position:absolute;right:10px;bottom:10px;background:#0c2034e8;color:white;padding:5px 9px;font-size:12px}details{margin-top:13px}summary{cursor:pointer;font-size:14px;padding:12px 0;border-top:1px solid #c8d2dc;font-weight:700}summary span{float:right;font-weight:400;color:#526475}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding-top:14px}.gallery .image-link>img{height:240px}.gallery .image-link{background:#e4e9ee}.gallery .image-link:only-child{grid-column:1/-1}.gallery .image-link:only-child img{height:auto;max-height:700px}footer{margin-top:80px;background:#0c2034;color:white;padding:35px 5%;display:flex;align-items:center;justify-content:space-between;gap:25px}footer p,footer>a:last-child{font-size:14px;color:#c2cdd8}footer .brand b span{color:#f4b544}@media(min-width:1600px){main,.topbar,footer{padding-left:max(5%,calc((100vw - 1440px)/2));padding-right:max(5%,calc((100vw - 1440px)/2))}.hero-copy{padding-left:7%}}@media(max-width:800px){.topbar{position:relative;flex-direction:column;align-items:flex-start;padding:20px 6%}.topbar nav{flex-wrap:wrap;gap:10px 20px}.hero{grid-template-columns:1fr}.hero-copy{padding:48px 6%}.hero h1{font-size:76px}.hero-visual{height:390px}.hero-detail{max-width:420px}.index{padding:25px 6%;gap:16px 24px}.index>span{width:100%}.work-section{padding:50px 6% 0}.section-heading{display:block}.section-heading>p{text-align:left;margin-top:15px;max-width:none}.project{grid-template-columns:1fr;gap:25px;padding:32px 0}.project-copy p{max-width:none}.project-copy h3{font-size:26px}.gallery .image-link>img{height:190px}footer{flex-wrap:wrap;padding:30px 6%}.hero-caption{font-size:12px;padding:14px}}@media(max-width:420px){h1{letter-spacing:-3px}.hero h1{font-size:64px}.hero-visual{height:290px}.gallery{grid-template-columns:1fr}.gallery .image-link>img{height:auto;max-height:450px}.hero-caption{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.image-link>img{transition:none}}
.hero-links{display:flex;gap:25px;flex-wrap:wrap;margin-top:24px;font-size:14px}.hero-links a{text-underline-offset:5px}.topbar nav{gap:20px;flex-wrap:wrap}.current-work{padding:35px 0;border-bottom:1px solid #d6dde3}.current-work p{max-width:800px;color:#526475}.resume-button{font-size:14px;font-weight:700;text-underline-offset:5px}.resume-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:9%;padding:35px 0}.resume-grid h3{margin-top:30px}.resume-grid h4{margin:25px 0 4px;font-size:17px}.resume-grid p,.skills dd{color:#526475}.resume-grid strong{color:#10283d}.dates{font-size:14px;margin-top:0}.skills dt{font-weight:700;margin-top:24px}.skills dd{margin:6px 0 25px}.contact-section{margin:50px 5% 0;padding:45px;background:#e7edf3;display:grid;grid-template-columns:1fr 1.4fr;gap:40px}.contact-section h2{margin-top:15px}.contact-links a{display:block;text-decoration:none;padding:12px 0;border-bottom:1px solid #c1ced9;overflow-wrap:anywhere;font-size:20px}.contact-links a:hover{text-decoration:underline}.contact-links a span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:1.5px;color:#526475}@media(max-width:800px){.resume-grid{grid-template-columns:1fr;gap:0}.contact-section{grid-template-columns:1fr;margin:35px 6% 0;padding:25px;gap:15px}.contact-links a{font-size:17px}.resume-button{display:inline-block;margin-top:20px}}

button.image-link{width:100%;padding:0;border:0;text-align:inherit;font:inherit;color:inherit;cursor:zoom-in}.image-viewer{width:calc(100vw - 32px);max-width:1600px;height:calc(100dvh - 32px);max-height:calc(100dvh - 32px);padding:16px;border:1px solid #506173;border-radius:8px;background:#0c2034;color:#fff;overflow:auto}.image-viewer::backdrop{background:rgba(0,8,18,.9)}.image-viewer[open]{display:flex;flex-direction:column}.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0;padding-bottom:12px}.viewer-toolbar p{margin:0;font-size:16px}.viewer-close{background:#fff;color:#10283d;border:0;border-radius:4px;min-height:44px;padding:10px 16px;cursor:pointer;font:inherit;white-space:nowrap}.viewer-stage{min-height:0;flex:1;display:flex;align-items:center;justify-content:center}.viewer-stage img{display:block;max-width:100%;max-height:100%;object-fit:contain}.viewer-close:focus-visible{outline:3px solid #f4b544;outline-offset:3px}body.viewer-open{overflow:hidden}@media(max-width:600px){.image-viewer{padding:12px;width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}.viewer-toolbar p{font-size:14px}}

.upright-photo{position:relative;width:min(100%,390px);aspect-ratio:439 / 576;margin:auto;overflow:hidden}.upright-photo img{position:absolute;left:50%;top:50%;width:calc(100% * 576 / 439);max-width:none;height:auto;transform:translate(-50%,-50%) rotate(90deg)}.gallery .upright-photo{width:min(100%,240px)}.gallery .upright-photo img{height:auto}.viewer-stage{position:relative;overflow:hidden;touch-action:pan-y pinch-zoom}.viewer-stage img{position:absolute;left:50%;top:50%;max-width:none;max-height:none;transform:translate(-50%,-50%);user-select:none}.viewer-stage img[hidden]{display:none}.viewer-navigation{display:flex;align-items:center;justify-content:center;gap:28px;padding-top:12px;flex-shrink:0}.viewer-navigation button{font:inherit;color:white;background:#213d56;border:1px solid #567089;border-radius:4px;min-height:44px;padding:8px 16px;cursor:pointer}.viewer-navigation button:hover{background:#355772}.viewer-navigation button:focus-visible{outline:3px solid #f4b544;outline-offset:3px}.viewer-navigation p{font-size:14px;margin:0;min-width:65px;text-align:center}.experience-entry{border-left:2px solid #c6d3df;padding:0 0 6px 20px;margin:26px 0}.resume-grid .experience-entry h4{margin:0 0 5px}.experience-entry .experience-role{color:#10283d;margin:0 0 4px;font-size:15px}.experience-entry p{margin-top:10px}.experience-entry .dates{margin-top:4px}@media(max-width:600px){.viewer-navigation{gap:12px}.viewer-navigation button{padding:8px 12px;font-size:14px}}

.image-link,.gallery .image-link,.image-link img,.viewer-stage img{background:#fff}.viewer-heading{min-width:0;max-width:1100px}.viewer-heading #viewer-caption{font-size:clamp(22px,2.3vw,34px);font-weight:800;text-transform:uppercase;letter-spacing:.045em;line-height:1.15;margin:0 0 10px}.viewer-heading #viewer-description{font-size:16px;line-height:1.45;color:#c6d5e2;margin:0;max-width:1000px}.viewer-toolbar{align-items:flex-start}.viewer-close{flex-shrink:0}.certificate-project+ .certificate-project{margin-top:30px}.certificate-project h4{font-size:19px;margin:0 0 8px}.certificate-project>p{font-size:16px;color:#526475;margin:0 0 15px}.certificate-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}.certificate-pair .image-link{display:flex;align-items:center;justify-content:center;min-height:220px}.certificate-pair img{max-height:350px;object-fit:contain}.employment-dates{font-weight:700;color:#10283d!important}@media(max-width:600px){.viewer-heading #viewer-caption{font-size:20px}.viewer-heading #viewer-description{font-size:14px;max-height:105px;overflow:auto}.viewer-toolbar{gap:12px}.certificate-pair{gap:8px}.certificate-pair .image-link{min-height:160px}.certificate-pair .image-link>span{font-size:12px;padding:3px 5px;right:4px;bottom:4px}}@media(max-height:500px){.viewer-heading #viewer-description{max-height:55px;overflow:auto}.viewer-heading #viewer-caption{font-size:20px;margin-bottom:4px}}
