/* Shared visual system for Projects and About. No external dependencies. */
:root{--blue:#1e4e8c;--ink:#172938;--muted:#526574;--line:#d8e2e9;--light:#f1f5f8;--white:#fff}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--white);line-height:1.65}
a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}figure,p,h1,h2,h3{margin:0}button[hidden],[hidden]{display:none!important}
.container{width:min(1180px,90%);margin-inline:auto}main:focus{outline:none}[id]{scroll-margin-top:112px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #3784c8;outline-offset:5px}.skip-link{position:fixed;left:12px;top:-100px;background:var(--ink);color:white;padding:10px 18px;z-index:1000}.skip-link:focus{top:12px}
header{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);z-index:100}.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:82px}.brand{display:block;flex-shrink:0}.brand-logo{width:230px;height:auto;max-width:42vw}
header nav{display:flex;align-items:center;gap:15px;font-size:12px;font-weight:700}header nav>a:not(.btn):hover,header nav>[aria-current="page"]:not(.btn){color:var(--blue);text-decoration:underline;text-underline-offset:7px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;border:1px solid var(--blue);font-size:12px;line-height:1.5;letter-spacing:.5px;font-weight:700;text-transform:uppercase;transition:background .15s}
.btn-primary{background:var(--blue);color:white}.btn-primary:hover{background:#163b6b}.btn-outline{border-color:#8fa8bb;color:#fff}.btn-outline:hover{background:#ffffff12}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.menu-toggle{display:none;width:44px;height:44px;padding:9px;border:1px solid var(--line);background:#fff}.menu-toggle span{display:block;height:2px;background:var(--ink);margin:5px 0}
.x-hero{padding:65px 0 58px;background:#14232f;color:#fff}.hero-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:52px}.eyebrow{color:var(--blue);font-size:11px;font-weight:700;letter-spacing:2.2px;text-transform:uppercase;margin-bottom:16px}.x-hero .eyebrow,.closing .eyebrow{color:#b3cfe5}
h1{font-size:clamp(38px,4.3vw,61px);line-height:1.06;letter-spacing:-1.8px;font-weight:700}h2{font-size:clamp(30px,3.2vw,43px);line-height:1.14;letter-spacing:-1px}h3{font-size:22px;line-height:1.25}.lead{font-size:17px;line-height:1.8;color:#d5e0e8;margin-top:24px;max-width:600px}
.hero-image{min-width:0}.hero-image>img{width:100%;height:auto;border:1px solid #617888}.hero-image figcaption{font-size:11px;color:#c0cfdb;padding-top:10px}.section-white,.section-light{padding:72px 0}.section-light{background:var(--light)}
.experience-disclosure{background:#e8eff4;border-bottom:1px solid var(--line)}.experience-disclosure .container{display:grid;grid-template-columns:.34fr 1.66fr;gap:38px;padding-top:24px;padding-bottom:24px}.experience-disclosure strong{color:var(--blue);font-size:13px}.experience-disclosure p{color:var(--muted);font-size:13px}
.section-intro{display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:end;margin-bottom:34px}.section-intro>p{color:var(--muted);max-width:440px}.gallery-filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.gallery-filters button{background:#fff;border:1px solid #b7c8d4;color:var(--ink);min-height:44px;padding:10px 23px;font-weight:700;font-size:13px}.gallery-filters button[aria-pressed="true"]{color:#fff;background:var(--blue);border-color:var(--blue)}.gallery-count{font-size:12px;color:var(--muted);margin:18px 0}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.portfolio-card{background:#fff;border:1px solid var(--line);min-width:0;overflow:hidden}.gallery-open{display:block;position:relative;background:#e6edf2}.gallery-open img{width:100%;height:250px;object-fit:contain}.zoom-label{position:absolute;bottom:12px;right:12px;background:#152938ed;color:#fff;font-size:11px;padding:6px 11px}.portfolio-card figcaption{padding:22px}.card-category{font-size:10px;letter-spacing:1.5px;color:var(--blue);text-transform:uppercase;font-weight:700;margin-bottom:11px}.portfolio-card h3{font-size:20px;margin-bottom:10px}.portfolio-card figcaption>p:last-child{color:var(--muted);font-size:14px}.source-note{font-size:12px;color:var(--muted);margin-top:26px;max-width:950px;border-left:2px solid #9eb6c8;padding-left:15px}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.steps article{border-top:2px solid var(--blue);padding-top:20px}.steps span{color:#7894a8;font-size:27px;font-weight:700}.steps h3{margin:18px 0 10px}.steps p{color:var(--muted);font-size:15px}
.closing{background:#172c3c;color:white;padding:60px 0}.closing-grid{display:flex;align-items:center;justify-content:space-between;gap:40px}.closing p:not(.eyebrow){margin-top:17px;color:#d1dfe9;max-width:690px}.closing .btn{flex-shrink:0}
.focus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.focus-grid article{display:flex;flex-direction:column;border:1px solid var(--line);padding:28px}.focus-number{font-size:10px;letter-spacing:1.4px;color:var(--blue);font-weight:700;margin-bottom:27px}.focus-grid h3{margin-bottom:15px}.focus-grid p{font-size:15px;color:var(--muted);margin-bottom:24px}.text-link{color:var(--blue);font-size:13px;font-weight:700;margin-top:auto}.text-link:hover{text-decoration:underline}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.detail-image img{width:100%;height:auto;border:1px solid var(--line)}.detail-image figcaption{font-size:11px;color:var(--muted);margin-top:10px}.body-copy{font-size:16px;color:var(--muted);margin-top:22px}.detail-rows{margin-top:28px}.detail-rows>div{border-top:1px solid #cbd9e3;padding:17px 0}.detail-rows strong{font-size:14px;color:var(--blue)}.detail-rows p{font-size:14px;color:var(--muted);margin-top:3px}
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.faq details{border-top:1px solid var(--line);padding:20px 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;font-size:16px;font-weight:700;list-style-position:outside;margin-left:18px;padding-left:5px}.faq details>p{padding:15px 0 0 23px;color:var(--muted);font-size:15px}
footer{background:#f5f7f9;padding:45px 0 26px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}.footer-grid h2{font-size:15px;letter-spacing:0;line-height:1.4;margin-bottom:14px}.footer-grid .footer-brand{font-size:20px}.footer-grid p,.footer-grid a{font-size:13px;color:var(--muted);margin-bottom:7px}.footer-grid a{display:block}.footer-grid a:hover{color:var(--blue);text-decoration:underline}.copyright{border-top:1px solid var(--line);padding-top:20px;margin-top:32px;font-size:11px;letter-spacing:.5px;color:var(--muted)}
.image-dialog{margin:auto;border:1px solid #4b6273;padding:22px;background:#fff;color:var(--ink);width:min(820px,92vw);max-height:90vh;overflow:auto}.image-dialog::backdrop{background:#081a29d9}.dialog-toolbar{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:20px}.dialog-toolbar h2{font-size:20px;letter-spacing:0}.dialog-close{border:1px solid var(--line);padding:9px 14px;background:#fff;flex-shrink:0;color:var(--ink)}.image-dialog>img{margin:auto;width:auto;max-width:100%;max-height:65vh;object-fit:contain}.image-dialog>p{font-size:12px;color:var(--muted);margin-top:15px}
@media(min-width:851px) and (max-width:1150px){.nav{flex-wrap:wrap;padding:10px 0;gap:8px}header nav{width:100%;justify-content:space-between}}
@media(max-width:850px){.nav{position:relative;min-height:82px}.brand-logo{width:190px;max-width:60vw}.menu-toggle{display:block;flex-shrink:0}header nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border:1px solid var(--line);padding:15px 5%;flex-direction:column;align-items:stretch;gap:3px;box-shadow:0 12px 24px #152c3c15;max-height:calc(100dvh - 95px);overflow-y:auto}header nav.is-open{display:flex}header nav>a{padding:11px 3px}header nav .btn{margin-top:7px}.hero-grid,.section-intro,.detail-grid,.faq-grid,.experience-disclosure .container{grid-template-columns:1fr;gap:28px}.x-hero{padding:38px 0}.hero-image{max-width:620px}h1{font-size:clamp(37px,7vw,55px);letter-spacing:-1px}.lead{font-size:16px}.section-white,.section-light{padding:45px 0}.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.portfolio-card figcaption{padding:18px}.gallery-open img{height:220px}.steps,.focus-grid{grid-template-columns:1fr;gap:24px}.closing-grid{display:block}.closing .btn{margin-top:25px}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:520px){.portfolio-grid{grid-template-columns:1fr}.gallery-open img{height:260px}.actions .btn{flex:1;padding:13px 15px}.gallery-filters button{padding:9px 16px}.footer-grid{gap:25px}.dialog-toolbar{align-items:start}.dialog-toolbar h2{font-size:18px}.image-dialog{padding:17px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
