.portfolio-links{display:flex;gap:25px;font-size:13px;font-weight:700}.portfolio-links a:hover{color:#166ca5}.portfolio-hero{background:linear-gradient(100deg,rgba(7,30,56,.96),rgba(9,42,72,.88)),url('assets/tts-banner.png') center/cover;color:white;padding:100px 0}.portfolio-hero h1{font-size:clamp(38px,5vw,65px);margin:15px 0}.portfolio-hero h1 span,.portfolio-intro h2 span{color:#90d0ee}.portfolio-hero p{max-width:620px;color:#d2e4f0}.portfolio-intro h2{font-size:42px;color:#082943;margin:0}.portfolio-intro p{color:#64788b}.portfolio-tabs{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0}.portfolio-tabs button,.portfolio-pages button{padding:13px 20px;background:white;border:1px solid #bdd1df;border-radius:7px;font-weight:800;color:#164c70;cursor:pointer}.portfolio-tabs button.selected{background:#092d50;color:white}.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.project-tile{border:1px solid #dbe6ec;background:#fff;border-radius:11px;overflow:hidden;box-shadow:0 7px 22px #163a5710;cursor:pointer;text-align:left;padding:0;color:#163954;font:inherit}.project-tile:focus-visible{outline:3px solid #539ac3}.project-tile img,.project-cover-placeholder{width:100%;height:205px;object-fit:cover;display:grid;place-items:center;background:linear-gradient(120deg,#123b60,#0b2847);color:#bbd9e9}.project-tile-copy{padding:23px}.project-tile-copy h3{font-size:19px;margin:9px 0;color:#0b2c4a}.project-tile-copy p{font-size:13px;color:#587389;margin:0}.small-tag{font-size:11px;font-weight:800;color:#2783b0;text-transform:uppercase;letter-spacing:.08em}.portfolio-pages{display:flex;justify-content:center;align-items:center;gap:25px;margin-top:35px}.portfolio-pages button:disabled{opacity:.4}.project-dialog{width:min(950px,calc(100% - 24px));max-height:91vh;border:0;border-radius:13px;padding:26px;background:#fff;color:#163954;box-shadow:0 10px 70px #06182e88}.project-dialog::backdrop{background:#061c30ba}.dialog-close{float:right;border:0;padding:11px;border-radius:7px;background:#eaf2f8;cursor:pointer}.detail-text{white-space:pre-line;color:#506a80}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.detail-grid div{background:#f2f7fa;padding:14px;border-radius:7px;overflow-wrap:anywhere}.detail-grid dt{font-size:12px;color:#668398}.detail-grid dd{margin:5px 0 0;font-weight:700}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px}.photo-grid a img{height:155px;width:100%;object-fit:cover;border-radius:7px}.contact-restriction{color:#677f93;font-size:13px}@media(max-width:850px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-links{gap:12px}}@media(max-width:620px){.portfolio-grid,.detail-grid,.photo-grid{grid-template-columns:1fr}.portfolio-hero{padding:65px 0}.portfolio-links a:nth-child(2),.portfolio-links a:nth-child(3){display:none}.project-dialog{padding:16px}}
/* v16 image viewer + latest cover summary */
.project-photo-button{border:0;background:transparent;padding:0;cursor:zoom-in;text-align:left;min-width:0}.project-photo-button img{display:block;width:100%;height:170px;object-fit:cover;border-radius:7px}.project-photo-caption{display:block;padding:7px 3px;font-size:12px;color:#49657b}.photo-lightbox{position:fixed;inset:0;max-width:100vw;max-height:100vh;width:100vw;height:100vh;margin:0;padding:55px 16px 22px;border:0;background:#061827f5;color:white}.photo-lightbox::backdrop{background:#061827ed}.photo-close{position:absolute;top:14px;right:25px;color:white;background:#1b405a;border:1px solid #7290a8;border-radius:6px;padding:9px 13px;cursor:pointer}.photo-viewer{display:flex;height:calc(100% - 65px);gap:12px;align-items:center;justify-content:center}.photo-viewer img{max-width:calc(100% - 95px);max-height:100%;object-fit:contain}.photo-viewer button{border:1px solid #66869e;color:white;border-radius:50%;background:#203f56;padding:10px 15px;font-size:22px;cursor:pointer}.photo-lightbox p{text-align:center;color:#d3e8f5;margin:12px auto;max-width:90%;overflow-wrap:anywhere}.project-tile-copy small{display:block;color:#1c6994;font-weight:700;margin-top:9px}

/* v17: photo cover opens a same-page full-screen overlay; details are separate */
.project-tile{cursor:default}.project-cover-button{position:relative;display:block;width:100%;padding:0;border:0;background:#0b2847;cursor:zoom-in;text-align:left}.project-cover-button img{width:100%;height:205px;object-fit:cover;display:block}.cover-hint{position:absolute;right:12px;bottom:11px;color:white;background:#082942d9;border-radius:5px;padding:7px 10px;font-size:12px;font-weight:700}.project-details-action{display:inline-block;margin-top:11px;padding:10px 13px;border:1px solid #bad5e7;border-radius:6px;background:#e9f5fc;color:#124b70;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.project-details-action:hover{background:#cfeaf9}.project-cover-button:focus-visible,.project-details-action:focus-visible,.project-photo-button:focus-visible,.photo-close:focus-visible{outline:3px solid #49b5ef;outline-offset:2px}.photo-lightbox[open]{display:block;z-index:10000}.photo-lightbox .photo-viewer img{width:auto;height:auto;max-width:calc(100vw - 135px);max-height:calc(100dvh - 140px);object-fit:contain}.photo-lightbox .photo-close{z-index:2}@media(max-width:620px){.photo-lightbox{padding:55px 8px 15px}.photo-viewer{gap:4px}.photo-viewer button{font-size:18px;padding:8px 10px}.photo-lightbox .photo-viewer img{max-width:calc(100vw - 90px)}}
