*{box-sizing:border-box}html{color:#454545;background:#fff;font-family:Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}body{margin:0}a{color:inherit}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #444;outline-offset:5px}.skip{position:fixed;top:-80px;left:20px;background:white;padding:12px;z-index:10}.skip:focus{top:10px}.site-header{padding:64px 3.7% 0}.portrait{display:block;width:157px;height:156px;object-fit:cover;margin-left:36px}.header-row{display:flex;justify-content:space-between;align-items:center;margin-top:33px;min-height:26px}.name{font-size:16px;font-weight:700;letter-spacing:.6px;text-decoration:none}.nav{display:flex;gap:30px;margin-right:14px}.nav a{font-size:14px;line-height:26px;font-weight:700;text-decoration:none}.nav a[aria-current=page],.nav a:hover{color:#888}main{margin-top:98px}.gallery{margin:0 3.7%;position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:60px}.gallery.ready{display:block}.work{display:block;position:relative;min-width:0;border-radius:8px;overflow:hidden;align-self:start;transition:opacity .2s}.gallery.ready .work{position:absolute}.work:hover{opacity:.8}.work img{display:block;width:100%;height:auto}.content{width:520px;max-width:calc(100% - 40px);margin:146px auto 0;font-size:15px;line-height:2.1}.content h1{font-size:17px;font-weight:400;margin:0 0 5px}.content .job{margin:0 0 32px;font-size:14px}.content p{margin:0 0 34px}.company{margin-top:35px}.contact{width:410px;margin-top:118px;max-width:calc(100% - 40px)}.contact-info{text-align:center;line-height:1.8;margin-bottom:25px!important}.contact-info a{text-decoration:none}.contact label{display:block;font-size:14px;line-height:1.5;margin:15px 0 5px}.contact input,.contact textarea{width:100%;border:1px solid #999;background:#fff;border-radius:0;padding:8px;color:#333}.contact input{height:38px}.contact textarea{resize:vertical;min-height:130px}.submit{display:block;background:#454545;color:#fff;border:0;padding:10px 20px;margin:14px 0 0 auto;cursor:pointer}.contact .note{font-size:13px;line-height:1.8;margin:18px 0}.site-footer{text-align:center;font-size:13px;padding:65px 20px 35px}.detail{max-width:1100px;margin:80px auto 0;padding:0 25px}.detail img{display:block;max-width:100%;height:auto;margin:0 auto;max-height:none}.credits{white-space:pre-line;font-size:14px;line-height:1.8;margin:30px auto;max-width:750px}.detail-nav{display:flex;justify-content:space-between;gap:20px;margin:35px auto;font-size:14px}.detail-nav a{text-underline-offset:4px}
@media(min-width:1600px){.gallery{gap:70px}}
@media(max-width:900px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.nav{gap:22px}.site-header{padding-top:40px}.portrait{margin-left:10px}.content{margin-top:95px}}
@media(max-width:600px){.site-header{padding:30px 22px 0}.portrait{width:108px;height:108px;margin-left:0}.header-row{display:block;margin-top:22px}.name{font-size:15px;letter-spacing:.2px}.nav{margin:27px 0 0;gap:28px}.nav a{font-size:14px}main{margin-top:44px}.gallery{margin:0 22px;grid-template-columns:1fr;gap:25px}.content{margin-top:55px;max-width:calc(100% - 44px);font-size:15px;line-height:2}.content h1{font-size:16px}.contact{margin-top:50px}.site-footer{padding-top:50px}.detail{margin-top:45px;padding:0 22px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Full-screen artwork viewer: wide image on the left, credits on the right. */
html{scrollbar-gutter:stable}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.scroll-lock{overflow:hidden}
.work-viewer{position:fixed;inset:0;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;background:#fff;color:#454545}
.work-viewer::backdrop{background:#fff}
.viewer-layout{display:grid;grid-template-columns:70% 30%;align-items:start;min-height:100%;padding:clamp(64px,5vw,100px) 0}
.viewer-media{width:58%;margin:0 auto;min-width:0}
.lightbox-image{display:block;width:100%;height:auto;max-width:100%;margin:0}
.viewer-info{position:sticky;top:clamp(80px,10vw,190px);padding-right:clamp(25px,5vw,90px);margin-top:5vw;min-width:0}
.lightbox-caption{font-size:14px;line-height:1.4;white-space:pre-line;overflow-wrap:anywhere;margin:0}
.viewer-close,.viewer-arrow{position:fixed;display:grid;place-items:center;width:48px;height:48px;padding:0;background:transparent;border:0;color:#454545;cursor:pointer;z-index:2}
.viewer-close{top:25px;right:20px}
.viewer-close::before,.viewer-close::after{content:"";position:absolute;width:35px;height:1px;background:currentColor;transform:rotate(45deg)}
.viewer-close::after{transform:rotate(-45deg)}
.viewer-arrow{top:50%;transform:translateY(-50%)}
.viewer-arrow::before{content:"";width:19px;height:19px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg)}
.viewer-prev{left:1.7%}
.viewer-prev::before{transform:rotate(-135deg)}
.viewer-next{left:calc(70% - 48px)}
.viewer-close:hover,.viewer-arrow:hover{color:#999}
.detail-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:8%;align-items:start}
.detail-layout img{width:100%;margin:0}
.detail-layout .credits{position:sticky;top:70px;margin:45px 0 0;white-space:pre-line;overflow-wrap:anywhere}
/* Animate only while entering the viewport; never hide content when JS is off. */
.reveal-pending{opacity:0;transform:translateY(22px)}
.reveal-enter{animation:soft-reveal 1.6s cubic-bezier(.22,.45,.3,1) both}
@keyframes soft-reveal{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.viewer-layout{grid-template-columns:68% 32%}.viewer-media{width:74%}.viewer-next{left:calc(68% - 43px)}.viewer-info{padding-right:22px}.lightbox-caption{font-size:14px}.detail-layout{gap:5%}}
@media(max-width:600px){.viewer-layout{display:flex;flex-direction:column;min-height:100%;padding:74px 42px 42px;gap:28px}.viewer-media{width:100%;margin:0}.viewer-info{position:static;order:-1;padding:0;margin:0}.viewer-info:has(.lightbox-caption:empty){display:none}.viewer-close{top:12px;right:10px}.viewer-close::before,.viewer-close::after{width:28px}.viewer-arrow{width:38px;height:48px;background:rgba(255,255,255,.9)}.viewer-prev{left:1px}.viewer-next{left:auto;right:1px}.viewer-arrow::before{width:14px;height:14px}.detail-layout{display:flex;flex-direction:column;gap:25px}.detail-layout .credits{position:static;margin:0}.lightbox-caption{line-height:1.65}}
@media(prefers-reduced-motion:reduce){.reveal-pending{opacity:1;transform:none}.reveal-enter{animation:none}}
@media print{.reveal-pending{opacity:1;transform:none}.reveal-enter{animation:none}}
/* Keep uncaptioned artwork centered in the entire viewing area. */
.work-viewer.no-credits .viewer-layout{grid-template-columns:1fr}
.work-viewer.no-credits .viewer-media{width:40.6%}
.work-viewer.no-credits .viewer-info{display:none}
.work-viewer.no-credits .viewer-next{left:auto;right:1.7%}
.detail-layout.no-credits{display:block}
.detail-layout.no-credits img{width:61.333333%;margin-inline:auto}
@media(max-width:900px){.work-viewer.no-credits .viewer-media{width:50.32%}.detail-layout.no-credits img{width:63.333333%}}
@media(max-width:600px){.work-viewer.no-credits .viewer-media,.detail-layout.no-credits img{width:100%}.work-viewer.no-credits .viewer-next{right:1px}}
