:root{font-family:Arial,Helvetica,sans-serif;color:#555;background:#fff;font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}a:hover,button:hover{color:#ff4c35}a:focus-visible,button:focus-visible{outline:2px solid #5c879a;outline-offset:4px}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;padding:7px 8px}button:disabled{opacity:.3;cursor:default}header{position:fixed;top:0;left:0;padding:24px 20px;z-index:3;background:#fff}.brand{font-size:21px;letter-spacing:.5px;font-weight:400}nav{position:fixed;left:20px;top:47%;width:145px;z-index:3;display:flex;flex-direction:column;align-items:flex-start;gap:16px;font-size:16px;line-height:1.2}nav a[aria-current=page]{color:#ff4c35}#gallery-nav{padding:9px 0 1px 5px;font-size:12px}#gallery-nav a{display:block;margin:0 0 8px}main{margin:0 20px 0 185px;min-height:100svh;outline:none}.single-image{height:calc(100svh - 48px);display:flex;align-items:center;justify-content:center;padding:42px 0 25px}.single-image img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none}.home-image img{max-width:100%;max-height:100%}.image-link{display:flex;align-items:center;justify-content:center;width:100%;height:100%;cursor:pointer}.image-link:hover{color:inherit}.grid{padding:85px 0 65px;max-width:1800px;margin:0 auto}.photo-row{display:flex;gap:10px;margin-bottom:10px}.photo-card{display:block;min-width:0;padding:0;flex-basis:0;overflow:hidden;background:#f6f6f6;position:relative}.photo-card img{display:block;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none;transition:opacity .18s}.photo-card:hover img{opacity:.78}.photo-card:focus-visible{outline-offset:2px}.about{max-width:850px;margin:0 auto;padding:38px 0 75px;font-size:14px;line-height:1.5}.about>img{display:block;width:100%;height:auto;margin-bottom:25px}.about p{margin:0 0 17px}.about p:empty{display:none}.about a{border-bottom:1px solid #777}.about strong{font-weight:600}.contact-page{min-height:calc(100svh - 48px);display:flex;align-items:center;justify-content:center;padding:60px 25px}.contact-copy{font-size:14px;line-height:1.8;max-width:480px;width:100%}.contact-copy h1{font-size:26px;font-weight:400;margin:0 0 25px}.contact-copy p{margin:0 0 22px}.contact-copy a{border-bottom:1px solid #aaa;padding-bottom:3px}footer{position:fixed;bottom:0;left:185px;right:0;background:rgba(255,255,255,.97);min-height:37px;z-index:4;display:flex;justify-content:flex-end;align-items:center;padding:0 20px 0 0;gap:15px;font-size:11px;color:#777}.copyright{display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:10px}.copyright a{display:inline-flex;padding:3px 0}.copyright svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.5}.copyright .dot{fill:currentColor;stroke:none}#viewer-controls{display:flex;align-items:center;gap:2px;font-size:12px}#viewer-controls[hidden],[hidden]{display:none!important}.control-separator{height:13px;width:1px;background:#ddd;margin:0 4px}.counter{min-width:55px;text-align:center;font-variant-numeric:tabular-nums}.image-status{position:fixed;left:50%;top:20px;background:#fff;padding:8px 14px;font-size:12px;z-index:5}.skip{position:fixed;top:-100px;left:20px;z-index:10;background:white;padding:10px}.skip:focus{top:10px}.no-script{margin:100px 30px 50px 220px}body:fullscreen{background:#fff}body:fullscreen header,body:fullscreen nav{display:none}body:fullscreen main{margin:0 18px}body:fullscreen footer{left:18px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(min-width:1700px){.single-image{padding:60px 30px 40px}.about{max-width:950px}}
@media(max-width:760px){header{position:relative;padding:22px 20px 16px}.brand{font-size:20px}nav{position:relative;top:auto;left:auto;width:auto;flex-direction:row;align-items:flex-start;gap:24px;padding:0 20px 15px;font-size:14px;min-height:38px}.portfolio-nav{flex:1}#gallery-nav{display:flex;flex-wrap:wrap;gap:8px 14px;padding:13px 0 0;font-size:12px;margin-right:-130px}#gallery-nav a{margin:0 0 4px}main{margin:0 16px;min-height:0}.single-image{height:calc(100svh - 145px);min-height:260px;padding:5px 0 30px}.gallery-view .single-image{height:calc(100svh - 190px)}.grid{padding:12px 0 75px}.photo-row{gap:6px;margin-bottom:6px}.about{padding:10px 4px 80px;font-size:14px}.about>img{margin-bottom:22px}.contact-page{min-height:calc(100svh - 160px);padding:35px 10px 80px}.contact-copy h1{font-size:25px}footer{left:0;padding:7px 12px;flex-wrap:wrap;justify-content:center;gap:2px 15px;font-size:10px;min-height:36px}.gallery-view footer{min-height:64px}#viewer-controls{width:100%;justify-content:center}.copyright{font-size:9px}.no-script{margin:40px 20px}.image-status{left:20px;right:20px;top:10px;text-align:center}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* V02: unobtrusive slideshow and large-photo navigation. */
.single-image{position:relative}
.home-slideshow{position:relative;width:100%;height:100%}
.home-slideshow .image-link{position:relative}
.home-slideshow img.slide{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity 1.1s ease}
.home-slideshow img.slide.current{opacity:1}
.slideshow-toggle{position:absolute;right:9px;bottom:8px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.82);color:#626262;font-size:13px;z-index:2;box-shadow:0 1px 5px #0000000d}
.slideshow-toggle:hover{background:white;color:#333}
.image-arrow{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:48px;padding:10px;border-radius:3px;background:rgba(255,255,255,.72);color:#555;opacity:.62;z-index:2;transition:opacity .15s,background .15s}
.image-arrow-left{left:8px}.image-arrow-right{right:8px}
.image-arrow svg{width:20px;height:26px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.image-arrow:hover,.image-arrow:focus-visible{opacity:1;background:rgba(255,255,255,.95);color:#333}
.image-arrow:disabled{opacity:.18;cursor:default}
@media(max-width:760px){.image-arrow{width:36px;height:44px;padding:9px}.image-arrow-left{left:0}.image-arrow-right{right:0}.image-arrow svg{width:18px;height:24px}}
@media(prefers-reduced-motion:reduce){.home-slideshow img.slide,.image-arrow{transition:none}}
