:root{font-family:'Courier New',monospace;color:#171717;background:#fff;font-synthesis:none;font-size:16px}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}header{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:24px;padding:24px 28px;font-size:.875rem;line-height:1.25;align-items:start}header button,header a{text-align:left;width:fit-content}header button:hover,header a:hover{text-decoration:underline;text-underline-offset:4px}.brand{letter-spacing:-.035em}.current span{color:#777}.discipline{text-align:right}main{min-height:calc(100svh - 140px);display:flex;align-items:center;overflow:hidden;padding:65px 0 90px}.gallery{display:flex;gap:28px;align-items:center;overflow-x:auto;width:100%;padding:80px 5vw 105px;scrollbar-width:thin;scrollbar-color:#ddd transparent;scroll-snap-type:x proximity}.card{flex:0 0 clamp(165px,14.5vw,240px);position:relative;scroll-snap-align:center;transition:flex-basis .45s cubic-bezier(.2,.7,.2,1);outline:none}.card.active{flex-basis:clamp(220px,20vw,330px)}.visual{display:block;width:100%;height:clamp(235px,21vw,320px);transition:height .45s cubic-bezier(.2,.7,.2,1);background:#ededed;overflow:hidden}.active .visual{height:clamp(315px,28vw,425px)}.visual img{width:100%;height:100%;object-fit:cover;display:block}.card:first-child img{object-position:center 43%}.number{position:absolute;top:-28px;left:0;font-size:.875rem;opacity:0;transition:opacity .2s}.caption{position:absolute;top:100%;left:0;padding-top:12px;font-size:.875rem;line-height:1.3;opacity:0;transform:translateY(5px);transition:opacity .2s,transform .3s;text-align:left;max-width:300px}.caption strong{font-weight:400;display:block;margin-bottom:6px}.caption p{margin:0;font-size:.875rem;color:#666;line-height:1.4}.active .number,.active .caption{opacity:1;transform:none}.placeholder{display:flex;align-items:center;justify-content:center;background:#f1f1f1;color:#7b7b7b;font-size:.875rem;letter-spacing:.03em}.card:nth-child(4) .placeholder{background:#e5e5e5}.card:nth-child(5) .placeholder{background:#f5f5f5}.card:nth-child(6) .placeholder{background:#dedede}.card:focus-visible .visual{outline:2px solid #111;outline-offset:5px}footer{display:flex;justify-content:space-between;gap:20px;padding:20px 28px;font-size:.75rem;color:#777}dialog{border:0;padding:64px;width:min(600px,calc(100% - 32px));color:#111}dialog::backdrop{background:#ffffffd9;backdrop-filter:blur(8px)}.close{position:absolute;right:24px;top:24px;font-size:.875rem}dialog h2{font-size:1rem;font-weight:400;margin:25px 0}dialog p{line-height:1.7;font-family:Arial,sans-serif}dialog .small{color:#777;font-size:.875rem}@media(max-width:700px){header{padding:20px;grid-template-columns:1.5fr 1fr 1fr;gap:26px 15px}.brand{grid-row:span 2}.discipline{display:none}header button[data-panel=contact]{grid-column:2}main{min-height:calc(100svh - 180px);padding:0}.gallery{gap:22px;padding:70px 22px 125px}.card{flex-basis:52vw}.card.active{flex-basis:68vw}.visual{height:70vw;max-height:360px}.active .visual{height:88vw;max-height:450px}footer{padding:18px 20px;flex-wrap:wrap;font-size:.75rem}.instruction{display:none}dialog{padding:44px 25px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Instagram occupies a separate right-hand column, keeping the gallery scrollable. */
main{display:grid;grid-template-columns:minmax(0,1fr) minmax(326px,31vw);gap:32px;padding:40px 4vw 65px 0;overflow:visible}.gallery{min-width:0;padding-left:4vw;padding-right:35px}.instagram-panel{align-self:center;min-width:0;width:100%;max-width:540px}.instagram-heading{display:flex;flex-direction:column;gap:8px;font-size:.875rem;line-height:1.3;padding-bottom:18px}.instagram-heading>span{color:#777;font-size:.75rem}.instagram-heading a{overflow-wrap:anywhere}.instagram-window{min-height:440px;max-height:70svh;overflow:auto;border:1px solid #ededed;background:#fff}.instagram-window iframe{max-width:100%!important;min-width:0!important}.instagram-fallback{min-height:440px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:32px 15px;text-align:center;font-size:.875rem}.instagram-fallback p{font-family:Arial,sans-serif;font-size:1rem;line-height:1.6;color:#666;margin:28px 0}.instagram-fallback a{text-decoration:underline;text-underline-offset:5px}.instagram-bottom{display:inline-block;margin-top:16px;font-size:.75rem;text-decoration:underline;text-underline-offset:4px}@media(max-width:800px){main{display:flex;flex-direction:column;gap:20px;padding:0 0 40px;min-height:0}.gallery{padding-left:22px;padding-right:22px}.instagram-panel{width:calc(100% - 40px);max-width:500px}.instagram-window{max-height:none;min-height:400px}.instagram-fallback{min-height:400px}}@media(min-width:801px){.card{flex-basis:clamp(160px,13vw,220px)}.card.active{flex-basis:clamp(220px,18vw,300px)}}

/* Portfolio details and a gentle, reversible click zoom. */
.number{opacity:1}.visual img{transition:transform .3s ease}.card{cursor:pointer}
header{grid-template-columns:minmax(220px,1.7fr) 1fr 1fr 1fr 1fr}.brand{letter-spacing:-.04em;overflow-wrap:anywhere}
dialog{max-height:90svh;overflow:auto}dialog.about-dialog{width:min(1040px,calc(100% - 32px));padding:64px 36px 36px}.about-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:32px;align-items:center}.about-copy h2{overflow-wrap:anywhere}.about-copy p{margin-bottom:0}.about-photo{display:block;width:100%;height:auto;max-height:70svh;object-fit:contain}.contact-links{display:flex;flex-direction:column;gap:24px;margin-top:32px;line-height:1.5;overflow-wrap:anywhere}.contact-links a{text-decoration:underline;text-underline-offset:4px}
@media(max-width:700px){header{grid-template-columns:minmax(0,1.5fr) 1fr 1fr}.about-layout{grid-template-columns:1fr;gap:24px}dialog.about-dialog{padding:56px 24px 24px}.about-photo{max-height:none}footer>span:last-child{margin-left:auto}.brand{font-size:.875rem}}
@media(prefers-reduced-motion:reduce){.visual img{transition:none}}

/* Serif wordmark follows the supplied two-line lockup. */
header{grid-template-columns:minmax(260px,1.8fr) 1fr 1fr 1fr 1fr;align-items:center;gap:28px;padding-top:28px;padding-bottom:28px}
header .brand{display:flex;flex-direction:column;width:fit-content;min-width:0;color:#171717;font-family:Georgia,'Times New Roman',serif;text-align:center;letter-spacing:normal;white-space:nowrap}
header .brand:hover{text-decoration:none}.brand-kicker{display:flex;align-items:center;gap:12px;font-size:.8rem;font-weight:400;letter-spacing:.25em;line-height:1.4;width:100%}.brand-kicker::before,.brand-kicker::after{content:'';height:1px;background:currentColor;flex:1;opacity:.65}.brand-name{font-size:clamp(1.65rem,2.5vw,2.8rem);font-weight:700;letter-spacing:-.045em;line-height:1.12;margin-top:5px}
dialog{opacity:0;transition:opacity .24s ease}dialog.is-visible{opacity:1}dialog::backdrop{opacity:0;transition:opacity .24s ease}dialog.is-visible::backdrop{opacity:1}


@media(max-width:900px){header{grid-template-columns:minmax(210px,1.6fr) 1fr 1fr 1fr;gap:20px}.discipline{display:none}}
@media(max-width:700px){header{grid-template-columns:minmax(0,1.65fr) 1fr 1fr;gap:22px 16px;padding:22px 20px}.brand-name{font-size:clamp(1.12rem,4.6vw,1.9rem)}.brand-kicker{font-size:.65rem;letter-spacing:.16em;gap:7px}header .brand{white-space:nowrap;max-width:100%}.brand{grid-row:span 2}}
@media(prefers-reduced-motion:reduce){dialog,dialog::backdrop{transition:none}}

/* Home is the portfolio; portraits expand within its horizontal gallery. */
header{grid-template-columns:minmax(260px,1.8fr) 1fr 1fr 1fr}
.gallery-wrap{position:relative;min-width:0;width:100%}.gallery-wrap::after{content:'';position:absolute;right:0;top:0;bottom:26px;width:78px;background:linear-gradient(to right,rgba(255,255,255,0),#fff);pointer-events:none;z-index:2}.gallery{position:relative;scroll-snap-type:none;padding-right:90px}.card.expanded{flex-basis:clamp(340px,32vw,500px)}.card.expanded .visual{height:clamp(390px,38vw,560px)}.card.expanded .visual img{object-fit:contain;background:#f5f4f1}.card.expanded .caption,.card.expanded .number{opacity:1;transform:none}.card.expanded{cursor:zoom-out}#motion-toggle{font-size:.75rem;color:inherit;text-decoration:underline;text-underline-offset:4px}
@media(max-width:900px){header{grid-template-columns:minmax(210px,1.6fr) 1fr 1fr}}
@media(max-width:700px){header{grid-template-columns:minmax(0,1.65fr) 1fr 1fr}header .brand{grid-row:auto}header button[data-panel=contact]{grid-column:auto}.gallery-wrap::after{width:40px}.gallery{padding-right:55px}.card.expanded{flex-basis:84vw}.card.expanded .visual{height:100vw;max-height:540px}#motion-toggle{font-size:.75rem}}

.gallery{cursor:grab;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch;user-select:none}.gallery img{-webkit-user-drag:none;user-select:none}.gallery.dragging,.gallery.dragging .card{cursor:grabbing}.gallery.dragging .card{transition:none}

#spotlight{background:transparent;color:#fff;padding:44px 12px 12px;width:fit-content;max-width:calc(100vw - 24px);max-height:94svh;overflow:auto}#spotlight::backdrop{background:rgba(12,12,12,.86);backdrop-filter:blur(6px)}#spotlight .close{right:12px;top:6px;color:#fff;padding:6px 0}#spotlight figure{margin:0}#spotlight-image{display:block;width:auto;max-width:100%;max-height:76svh;object-fit:contain;margin:auto}#spotlight-caption{text-align:center;font-size:.875rem;line-height:1.5;padding-top:14px}
/* Keep the portfolio within the viewport; only its content panes scroll. */
html{height:100%;overflow:hidden}body{height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column}header,footer{flex:none}header{padding-top:20px;padding-bottom:20px}footer{padding-top:14px;padding-bottom:14px}
main{flex:1;min-height:0;width:100%;overflow:hidden;align-items:stretch;padding:12px 4vw 12px 0;grid-template-rows:minmax(0,1fr)}
.gallery-wrap{height:100%;min-height:0;container-type:size}.gallery{height:100%;padding-top:34px;padding-bottom:60px;align-items:center;overflow-y:hidden}.gallery-wrap::after{bottom:16px}
.card{flex-basis:clamp(130px,14vw,220px)}.card.active{flex-basis:clamp(165px,19vw,300px)}.visual{height:clamp(120px,55cqh,320px)}.active .visual{height:clamp(140px,68cqh,425px)}
.card.expanded{flex-basis:min(38vw,calc(100cqh - 110px))}.card.expanded .visual{height:min(38vw,calc(100cqh - 110px));max-height:none}.card.expanded .visual img{object-fit:contain}.caption{padding-top:10px}
.instagram-panel{height:100%;min-height:0;display:flex;flex-direction:column;align-self:stretch}.instagram-heading{flex:none;padding-bottom:12px}.instagram-window{flex:1;min-height:0;max-height:none;overflow:auto;overscroll-behavior:contain}.instagram-fallback{min-height:100%;padding:16px}
@media(max-width:800px){main{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(100px,30dvh);gap:8px;padding:0 0 8px}.instagram-panel{width:calc(100% - 40px);max-width:none;margin:0 auto}.instagram-heading{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 12px;padding-bottom:6px}.instagram-heading a{font-size:.75rem}.instagram-window{min-height:0;max-height:none}.instagram-fallback{min-height:100%;padding:12px}.instagram-fallback p{margin:10px 0}.card{flex-basis:min(48vw,48cqh)}.card.active{flex-basis:min(60vw,62cqh)}.visual{height:calc(100cqh - 105px);max-height:none}.active .visual{height:calc(100cqh - 90px);max-height:none}.card.expanded{flex-basis:min(75vw,calc(100cqh - 90px))}.card.expanded .visual{height:calc(100cqh - 90px);max-height:none}.gallery{padding-top:30px;padding-bottom:50px}header{padding:14px 20px}footer{padding:10px 20px;gap:8px 16px}footer>span:first-child{display:none}}
@media(max-height:600px) and (min-width:801px){header{padding-top:10px;padding-bottom:10px}.brand-name{font-size:1.8rem}footer{padding-top:8px;padding-bottom:8px}.visual{height:calc(100cqh - 120px)}.active .visual{height:calc(100cqh - 100px)}}
