/* Front-facing UI, with explicit page controls. */
.portfolio-home .project-bioby{display:flex;flex-direction:column;align-items:stretch;gap:44px;padding-top:35px;padding-bottom:100px}
.project-bioby .project-copy{display:grid;grid-template-columns:.72fr 1.4fr;align-items:start;gap:24px 64px;max-width:none;order:0}
.project-bioby .project-copy h2,.project-bioby .project-copy>p{margin:0}
.project-bioby .project-copy h2{grid-row:1/3}
.project-bioby .project-copy .brand-wordmark{width:245px;max-width:100%}
.project-bioby .project-copy .text-link{grid-column:2;justify-self:start}
.project-bioby .project-media{width:100%;margin:0;order:1}
.ui-showcase{width:100%;min-width:0;background:#fff}
.showcase-artwork{display:block;width:100%;padding:0;overflow:hidden;cursor:zoom-in;background:#f5f8f0}
.showcase-artwork picture,.showcase-artwork img{display:block;width:100%}
.showcase-artwork img{aspect-ratio:1440/900;height:auto;object-fit:cover;object-position:top}
.showcase-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:70px;background:#fff}
.showcase-pages{display:flex;align-items:center;gap:30px;min-width:0}
.showcase-pages button{position:relative;min-height:52px;padding:12px 0;font-size:15px;color:var(--muted);white-space:nowrap}
.showcase-pages button::after{content:'';position:absolute;left:0;right:0;bottom:4px;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .18s ease}
.showcase-pages button[aria-pressed=true]{color:var(--ink)}
.showcase-pages button[aria-pressed=true]::after{transform:scaleX(1)}
.showcase-enlarge{display:flex;gap:24px;align-items:center;min-height:44px;padding:8px 0;font-size:14px;color:var(--muted);white-space:nowrap}
.showcase-artwork:focus-visible{outline:3px solid var(--green);outline-offset:5px}
.showcase-pages button:focus-visible,.showcase-enlarge:focus-visible{outline:2px solid var(--green);outline-offset:4px}
.portfolio-case-bioby .case-hero-visual{padding:0;background:#fff;overflow:visible}
.portfolio-case-bioby .case-hero-visual .ui-showcase{max-width:none}
.case-story .web-preview{padding:36px;background:#f3f5f2}
.case-story .scroll-preview-shell{border:1px solid #e1e6de;border-radius:6px;box-shadow:0 12px 28px -18px #26382b40}
.case-story .web-explorer[data-device=mobile] .scroll-preview-shell{border:1px solid #d9e0d5;border-radius:12px}
.case-story .web-explorer[data-device=mobile] .scroll-preview{scrollbar-width:none}
.case-story .preview-browser-bar{background:#fff;min-height:44px}
.case-story .preview-address{font-size:13px}
.preview-scroll-tools button{min-height:44px;font-size:13px}
.project-visual-link{display:block}
.project-visual-link:focus-visible{outline:2px solid var(--green);outline-offset:4px}
.case-story .state-description h3{font-size:26px;line-height:1.3}
.case-story .state-description .state-text{font-size:18px;line-height:1.65}
#viewer.long-capture.zoomed #large-image{display:block;width:100%;height:auto;max-width:1440px}
#viewer{overscroll-behavior:contain}
/* About: clear positioning, followed by evidence of experience and capability. */
.portfolio-profile .profile-hero{grid-template-columns:minmax(0,1fr) 360px;gap:80px;align-items:start;padding:72px 0 68px}
.portfolio-profile .profile-introduction{padding-top:6px}
.portfolio-profile .profile-introduction h1{font-size:clamp(40px,4.2vw,60px);line-height:1.12;letter-spacing:0;margin-bottom:32px}
.portfolio-profile .profile-intro{font-size:21px;line-height:1.75;max-width:600px;text-wrap:pretty}
.portfolio-profile .profile-links{margin-top:28px;gap:30px;flex-wrap:wrap}
.portfolio-profile .profile-links .text-link{padding:0;min-height:44px;background:transparent;border:0;border-radius:0;color:var(--ink);font-size:16px;gap:18px;text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}
.portfolio-profile .profile-portrait img{aspect-ratio:1279/1706;object-fit:contain}
.portfolio-profile .profile-narrative{padding:0 0 70px}
.portfolio-profile .profile-narrative .profile-copy{display:grid;grid-template-columns:260px minmax(0,1fr);gap:60px;max-width:none;padding:34px 0}
.portfolio-profile .profile-copy>h2{font-size:26px;line-height:1.4;margin:0}
.portfolio-profile .profile-copy>p{font-size:19px;line-height:1.8;max-width:730px;text-wrap:pretty}
@media(hover:hover) and (pointer:fine){.showcase-pages button:hover,.showcase-enlarge:hover{color:var(--ink)}.showcase-enlarge:hover{text-decoration:underline;text-underline-offset:6px}.profile-links .text-link:hover{text-decoration-thickness:2px}}
@media(max-width:1100px){.portfolio-profile .profile-hero{grid-template-columns:minmax(0,1fr) 30%;gap:48px;padding-top:60px}.portfolio-profile .profile-intro{font-size:19px}.portfolio-profile .profile-narrative .profile-copy{grid-template-columns:190px minmax(0,1fr);gap:40px}.portfolio-profile .profile-copy>h2{font-size:24px}.portfolio-profile .profile-copy>p{font-size:18px}.project-bioby .project-copy{gap:24px 40px}}
@media(max-width:760px){
 .portfolio-home .project-bioby{gap:28px;padding-top:15px;padding-bottom:65px}
 .project-bioby .project-copy{display:block}.project-bioby .project-copy h2{margin-bottom:22px}.project-bioby .project-copy>p{margin-bottom:22px}
 .showcase-controls{gap:12px;min-height:60px}.showcase-pages{gap:22px}.showcase-pages button{font-size:14px;min-height:48px}.showcase-enlarge{font-size:13px;gap:10px}
 .case-story .web-preview{padding:20px 12px}.case-story .scroll-preview{max-height:65svh}
 .case-story .state-description h3{font-size:24px}.case-story .state-description .state-text{font-size:16px;line-height:1.75}
 .portfolio-profile .profile-hero{grid-template-columns:1fr;gap:36px;padding:48px 0 32px}
 .portfolio-profile .profile-introduction{padding:0}.portfolio-profile .profile-introduction h1{font-size:40px;margin-bottom:24px}
 .portfolio-profile .profile-intro{font-size:17px;line-height:1.8}
 .portfolio-profile .profile-links{margin-top:20px}.portfolio-profile .profile-links .text-link{font-size:15px}
 .portfolio-profile .profile-portrait{width:min(100%,340px)}
 .portfolio-profile .profile-narrative .profile-copy{display:block;padding:28px 0}.portfolio-profile .profile-copy>h2{font-size:24px;margin-bottom:18px}.portfolio-profile .profile-copy>p{font-size:16px;line-height:1.85}
 .portfolio-profile .profile-narrative{padding-bottom:38px}
}
@media(max-width:600px){.showcase-artwork img{aspect-ratio:390/844}.showcase-controls{flex-wrap:wrap;gap:4px;padding-top:8px}.showcase-pages{justify-content:space-between;gap:24px;flex:1}.showcase-enlarge{margin-left:auto;min-height:44px}}
@media(max-width:360px){.portfolio-profile .profile-introduction h1{font-size:35px}.showcase-pages{width:100%;flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.showcase-pages button::after{transition:none}}
@media print{.ui-showcase{break-inside:avoid}.showcase-controls{display:none}}
