.personal-strip{width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x pan-y;cursor:grab}
.personal-strip::-webkit-scrollbar{display:none}
.personal-strip:active{cursor:grabbing}
.personal-track{display:flex;width:max-content;height:clamp(260px,31vw,490px);gap:0}
.personal-track a{display:block;flex:none;height:100%;width:calc(clamp(260px,31vw,490px) * var(--photo-ratio));overflow:hidden;cursor:inherit}
.personal-track img{display:block;width:100%;height:100%;object-fit:contain;max-width:none;user-select:none;pointer-events:none}
.personal-track a:focus-visible{outline:3px solid #1868c0;outline-offset:-5px}
.personal-strip:focus-visible{outline:3px solid #1868c0;outline-offset:-3px}
.photo-viewer-open{overflow:hidden;scrollbar-gutter:stable}
.photo-viewer{position:fixed;inset:0;margin:auto;border:0;padding:60px 72px 48px;width:100%;height:100%;max-width:none;max-height:none;background:#071827ed;color:#fff;overflow:hidden}
.photo-viewer::backdrop{background:#071827ed}
.photo-viewer[open]{display:grid;place-items:center}
.photo-viewer img{display:block;max-width:100%;max-height:calc(100dvh - 108px);width:auto;height:auto;object-fit:contain}
.photo-viewer .photo-control{position:absolute;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid #ffffff75;border-radius:50%;color:#fff;background:#ffffff18;cursor:pointer}
.photo-control:hover{background:#ffffff35}
.photo-control:focus-visible{outline:3px solid #48d8e0;outline-offset:4px}
.photo-control svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8}
.photo-close{top:15px;right:20px}
.photo-prev{top:50%;left:14px}
.photo-next{top:50%;right:14px}
.photo-counter{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:14px;pointer-events:none}
.quote-section{background:radial-gradient(ellipse at 5% 7%,#1868c055 0%,#1868c01a 33%,transparent 61%),radial-gradient(ellipse at 96% 98%,#48d8e06b 0%,#48d8e01f 35%,transparent 63%),#f4f9fd}
.header .brand:hover,.header .brand:focus-visible,.header.is-fixed .brand:hover,.header.is-fixed .brand:focus-visible{color:#1868c0}
.header .brand{transition:color .2s}
.signature-writing{width:270px;max-width:100%;height:auto;filter:brightness(0);overflow:visible}
.signature-stroke{stroke-dasharray:1;stroke-dashoffset:0}
.signature-ready .signature-stroke{stroke-dashoffset:1}
@media(max-width:600px){
 .photo-viewer{padding:64px 12px 70px}
 .photo-viewer img{max-height:calc(100dvh - 134px)}
 .photo-prev,.photo-next{top:auto;bottom:12px}
 .photo-counter{bottom:26px}
 .signature-writing{width:250px}
}
@media(prefers-reduced-motion:reduce){.signature-ready .signature-stroke{stroke-dashoffset:0!important}}
.signature-writing:not(.signature-ready) image{mask:none}
.hero-project-badges{position:absolute;right:0;bottom:50px;display:flex;isolation:isolate;z-index:8}
.hero-project-badge{position:relative;margin-left:-10px}
.hero-project-badge:first-child{margin-left:0}
.hero-project-badge button{display:grid;place-items:center;width:78px;height:78px;border:0;border-radius:50%;padding:12px;background:#0e2d50;cursor:default}
.hero-project-badge img{width:100%;height:100%;object-fit:contain}
.hero-project-badge.badge-company button{padding:1px;background:#1868c0}
.hero-project-badge.badge-club button{padding:7px}
.hero-project-badge:has(button:hover),.hero-project-badge:focus-within{z-index:2}
.hero-project-badge button:focus-visible{outline:2px solid #48d8e0;outline-offset:3px}
.badge-tooltip{position:absolute;bottom:calc(100% + 12px);right:0;width:max-content;max-width:280px;padding:12px 16px;border-radius:12px;background:#fff;color:#172330;font-size:13px;font-weight:500;line-height:1.7;box-shadow:0 7px 24px #17395326;opacity:0;visibility:hidden;transition:opacity .15s}
.hero-project-badge:hover .badge-tooltip,.hero-project-badge:focus-within .badge-tooltip{opacity:1;visibility:visible}
@media(min-width:1700px){.hero-project-badge button{width:88px;height:88px}}
@media(max-width:850px){
 .hero-project-badges{bottom:24px;right:0}
 .hero-project-badge button{width:62px;height:62px;padding:9px}
 .hero-project-badge:first-child .badge-tooltip{left:0;right:auto}
}
@media(max-width:380px){.hero-project-badge button{width:56px;height:56px}}
/* Keep existing story arrows outside its content, but inside the viewport scrollbar. */
@media(min-width:1250px){
 .gallery-arrow[data-prev]{left:calc(-1 * clamp(52px,calc((100vw - 1312px)/2 - 16px),88px))}
 .gallery-arrow[data-next]{right:calc(-1 * clamp(52px,calc((100vw - 1312px)/2 - 16px),88px))}
}
/* V27: text-only contrast and a soft light behind the three blue wordmarks. */
.project-logo-stack{position:relative;display:block;width:80%;max-width:295px;isolation:isolate}
.project-logo-stack .project-logo{display:block;width:100%;max-width:none;max-height:none;height:auto;transform:none;position:relative;z-index:1}
.project-logo-stack .logo-text-light{position:absolute;inset:0;z-index:2;pointer-events:none;width:100%;height:100%;filter:brightness(0) invert(1);opacity:.88;object-fit:contain;clip-path:inset(0 0 0 39%);transition:opacity .35s}
.project-logo-stack:before{content:none}
.project:hover .project-logo-stack:before,.project:focus-within .project-logo-stack:before{content:none}
.project:hover .logo-text-light,.project:focus-within .logo-text-light{opacity:1}
.logo-stack-0{transform:translate(-1.231%,-3.137%)}
.logo-stack-1{transform:translate(-1.111%,-.989%)}
.logo-stack-2{transform:translate(-2.389%,-.706%)}
.hero-project-badge .badge-lettering{display:flex;flex-direction:column;align-items:center;width:100%;gap:3px}
.hero-project-badge .badge-lettering img{width:100%;height:auto;aspect-ratio:2;object-fit:contain}
.hero-project-badge .badge-lettering>span{display:block;width:100%;color:#fff;font:800 11px/1.1 Manrope,sans-serif;text-align:justify;text-align-last:justify}
.hero-project-badge.badge-club button{padding:12px}
@media(max-width:850px){.hero-project-badge .badge-lettering>span{font-size:9px}.hero-project-badge.badge-club button{padding:9px}}
@media(prefers-reduced-motion:reduce){.project-logo-stack:before,.project-logo-stack .logo-text-light{transition:none}}

.badge-business .badge-lettering>span{letter-spacing:.04em;text-align:center;text-align-last:center}
.badge-club .badge-lettering>span{letter-spacing:.43em;text-indent:.43em;text-align:center;text-align-last:center}

/* V28: an inset glass viewer keeps the page visible behind the photograph. */
.photo-viewer{width:min(1100px,calc(100% - 56px));height:calc(100dvh - 64px);max-width:1100px;max-height:900px;padding:60px 70px 48px;border-radius:24px;background:transparent;box-shadow:none;color:#173953;backdrop-filter:none}
.photo-viewer::backdrop{background:#142e494d;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.photo-viewer img{max-height:100%;min-height:0;max-width:100%;height:100%;object-fit:contain}
.photo-viewer .photo-control{background:#ffffffb3;border-color:#a5bfd499;color:#185f9f;z-index:2}
.photo-viewer .photo-control:hover{background:#fff}
.footer .footer-identity{min-width:0}
.footer .hero-socials{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:12px 18px;margin-top:24px;max-width:none;align-self:auto;justify-self:auto}
.footer .hero-socials .social-handle{font-size:17px}
.footer .hero-socials .social-glass svg{width:52px;height:52px;flex:none}
.footer .hero-socials .social-glass{gap:8px}
.journey small{display:block;font-size:16px;font-weight:400;line-height:1.5;color:#466075;max-width:30ch}
html{scrollbar-color:#1868c0 #edf6fc}
::-webkit-scrollbar-thumb{background:#1868c0}
::-webkit-scrollbar-thumb:hover{background:#145ba8}
@media(max-width:600px){.photo-viewer{width:calc(100% - 20px);height:calc(100dvh - 32px);padding:60px 12px 76px;border-radius:18px}.footer .hero-socials{gap:10px 14px}.journey small{font-size:14px}}.footer .hero-socials .social-handle{color:#304258}.footer .hero-socials .social-rim{fill:#ffffff30;stroke:#8bb6d866}

/* V30: keep the seated portrait and contact section more compact. */
.contact-photo{width:88%;justify-self:center;align-self:center}
.contact-content{padding-block:28px 38px}
.contact{padding-top:16px}
@media(max-width:600px){.contact{padding-top:22px}.contact-photo{width:86%;margin-top:18px}.contact-content{padding:0}}
