*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:#fff;color:#222;font-family:Arial,'Helvetica Neue','Noto Sans JP',sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:1px solid #444;outline-offset:8px}
header{position:fixed;z-index:100;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:28px 3.5vw 40px;background:linear-gradient(white 65%,#ffffff00);pointer-events:none}
header a{pointer-events:auto}
.header-links{display:flex;align-items:center;gap:28px;pointer-events:auto}
.header-links a{white-space:nowrap}
.header-links a[aria-current="page"]{text-decoration:underline;text-underline-offset:5px}
.wordmark{display:block;width:80px;line-height:1}
.brand-crop{display:block;position:relative;width:100%;aspect-ratio:838 / 855;overflow:hidden}
.brand-crop img{position:absolute;max-width:none;width:244.27207637%;height:auto;left:-72.31503580%;top:-34.61988304%}
.brand-crop--wordmark{aspect-ratio:669 / 217}
.brand-crop--wordmark img{width:306.12855007%;left:-106.12855007%;top:-282.48847926%}
.opening-logo{position:relative;width:min(40vw,280px);margin:14vh auto 18vh}
.is-stacked .opening-logo{position:absolute;left:50%;top:50%;width:var(--logo-width,248px);margin:0;transform:translate(-50%,calc(-50% + var(--center-shift,18px)));pointer-events:none;z-index:0}
.nav{font-size:14px}
main{padding-top:130px}
.home{padding-top:0}
.works{position:relative}
.works-stage{position:relative;padding:130px 3.5vw 60px}
.photo-stack{position:relative}
.work{position:relative;margin:10vh auto 20vh;width:min(55vw,330px)}
.project-link{display:block}
figure{margin:0}
figure img{width:100%;height:auto;display:block}
figcaption{display:flex;gap:16px;justify-content:space-between;align-items:center;margin-top:14px;font-size:12px;line-height:1.4;letter-spacing:.02em}
.home .project-link figure{position:relative}
.home figcaption{display:flex;justify-content:center;align-items:center;margin:14px 0 0;color:#111;font-size:12px;font-weight:600;line-height:1.4;text-align:center;pointer-events:none}
.home .is-stacked figcaption{position:absolute;top:100%;left:0;right:0;margin:0;padding:9px 4px;background:rgba(255,255,255,.8);opacity:0;transition:opacity .2s}
.home .project-link:hover figcaption,.home .project-link:focus-visible figcaption{opacity:1}
.stage-meta{display:none}
/* A single pinned canvas: every new photograph travels up into the same space. */
.works.is-stacked{height:calc(var(--stage-height,100svh) + var(--scroll-span,3500px))}
.is-stacked .works-stage{position:sticky;top:0;height:var(--stage-height,100svh);padding:0;overflow:hidden;isolation:isolate}
.viewport-probe{position:fixed;inset:0;pointer-events:none;visibility:hidden}
.is-stacked .photo-stack{position:absolute;inset:0;pointer-events:none}
.is-stacked .work{position:absolute;top:50%;left:50%;margin:0;width:var(--photo-width,300px);z-index:var(--layer);visibility:hidden;pointer-events:none}

.is-stacked .project-link{pointer-events:auto;background:#fff}
.is-stacked .work.is-pending .project-link{pointer-events:none}
.is-stacked.is-complete .work:hover,.is-stacked .work:focus-within{z-index:40}
.is-stacked .stage-meta{position:absolute;left:3.5vw;right:3.5vw;bottom:30px;display:flex;justify-content:space-between;gap:20px;color:#626262;font-size:12px;letter-spacing:.02em;pointer-events:none}
.scroll-cue{margin-left:auto;transition:opacity .2s}
footer{padding:28px 3.5vw;display:flex;justify-content:flex-end;gap:20px;font-size:12px;color:#666}
.detail{padding:160px 8vw 60px}
.detail-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;margin-bottom:40px;gap:16px;font-size:12px}
.detail-heading h1{font-size:16px;font-weight:400;margin:0;line-height:1.4;grid-column:1/-1;grid-row:2}
.detail-photo{width:min(100%,800px);margin:0 auto 70px}
.detail-photo img{max-height:calc(100svh - 140px);width:auto;max-width:100%;margin:auto;object-fit:contain}
/* Project text follows the complete photo gallery. */
.project-description{width:min(100%,800px);margin:0 auto 36px;font-size:14px;line-height:1.6}
.project-description h2{font-size:16px;font-weight:400;line-height:1.4;margin:0 0 18px}
.project-credits{margin:0 0 32px;font-size:14px;line-height:1.5}
.project-credits>div{display:flex;gap:0;margin-bottom:2px}
.project-credits dt{flex-shrink:0;white-space:pre}
.project-credits dt,.project-credits dd{margin:0}
.project-credits dd{overflow-wrap:anywhere}
.project-credits a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.project-prose p{margin:0 0 16px}
.project-prose p:last-child{margin-bottom:0}
.project-prose--en{margin-top:28px;line-height:1.5}
.project-nav{display:flex;justify-content:space-between;align-items:start;gap:24px;font-size:14px;line-height:1.4;padding:40px 0 24px}
.next-project{display:grid;gap:4px;max-width:65%;text-align:right}
@media(max-width:700px){
 header{padding:24px 6vw 35px;gap:20px}.wordmark{width:68px;flex-shrink:0}.header-links{gap:14px}.nav{font-size:13px}
 .works-stage{padding:115px 6vw 40px}
 .is-stacked .stage-meta{left:6vw;right:6vw;bottom:24px}
 .work{width:68vw}figcaption{gap:8px;font-size:12px}
  footer{padding:24px 6vw;flex-wrap:wrap;font-size:12px}footer span{display:none}
 .detail{padding:130px 6vw 30px}.detail-heading{margin-bottom:40px}.detail-photo{margin-bottom:30px}
 .detail-photo img{max-height:none;width:100%}.project-nav{font-size:13px;gap:20px;padding-top:35px}
}
@media(max-height:540px){header{padding-top:18px;padding-bottom:22px}.wordmark{width:60px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* About */
.about{max-width:1150px;margin:0 auto;padding:160px 7vw 100px;min-height:calc(100svh - 75px)}
.about h1{font-size:14px;font-weight:400;line-height:1.4;margin:0 0 40px}
.about-intro{width:100%;margin-bottom:72px;font-size:1rem;line-height:1.9;overflow-wrap:break-word}
.about-intro p{margin:0 0 1.25em}
.about-intro p:last-child{margin-bottom:0}
.about-intro-en{margin-top:32px;line-height:1.65}
@media(max-width:700px){.about-intro{margin-bottom:48px}.about-intro-en{margin-top:28px}}
.about-team{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:65px}
.person-image{position:relative;width:100%;aspect-ratio:1;overflow:hidden;margin:0 0 26px}
.person-image img{position:absolute;max-width:none;height:auto}
.portrait-chihiro img{width:250.85784314%;left:-74.75490196%;top:-38.60294118%}
.portrait-tatsuya img{width:238.30034924%;left:-69.44121071%;top:-34.22584400%}
.portrait-photo img{width:100%;height:100%;left:0;top:0;object-fit:cover}
.person h2{font-size:17px;font-weight:700;letter-spacing:.08em;line-height:1.4;margin:0 0 17px}
.bio-grid{display:grid;grid-template-columns:5.5rem minmax(0,1fr);column-gap:1.25rem;row-gap:4px;margin:0;font-size:14px;line-height:1.45}
.bio-grid dt,.bio-grid dd{margin:0}
.bio-grid dt{white-space:nowrap;font-variant-numeric:tabular-nums}
.about-back{display:inline-block;margin-top:60px;font-size:13px}
.profile-en{margin-top:34px}
.profile-en h3{font-size:16px;font-weight:700;letter-spacing:.015em;margin:0 0 17px;line-height:1.35}
.profile-en .bio-grid{line-height:1.4}
/* Contact */
.contact{max-width:1080px;margin:0 auto;padding:160px 7vw 100px;min-height:calc(100svh - 75px)}
.contact h1{font-size:16px;font-weight:400;line-height:1.4;margin:0 0 40px}
.contact-address .email{font-size:clamp(20px,2.2vw,27px);line-height:1.35;letter-spacing:.015em;margin:0 0 8px;user-select:all}
.contact-address .email-note{font-size:13px;line-height:1.4;color:#686868;margin:0}
@media(max-width:700px){.about,.contact{padding:125px 6vw 60px}.about h1,.contact h1{margin-bottom:32px}.about-team{grid-template-columns:1fr;gap:48px}.person-image{margin-bottom:22px}.person h2{margin-bottom:14px}.bio-grid{column-gap:14px;row-gap:3px}.profile-en{margin-top:28px}.profile-en h3{margin-bottom:14px}.about-back{margin-top:42px}.contact-address .email{font-size:23px}}

.home-contact{padding:16vh 6vw 20vh;text-align:center}
.home-contact .email{margin:0;font-size:14px}

/* Contact form */
.contact-form-section[hidden]{display:none}
.contact-intro{font-size:16px;line-height:1.5;margin:0 0 30px}
.contact-form{font-size:14px}
.form-row{display:grid;grid-template-columns:225px minmax(0,1fr);gap:20px;align-items:start;margin-bottom:18px}
.form-row label{line-height:1.4;padding-top:9px}
.form-row input:not([type=file]),.form-row textarea{display:block;width:100%;min-width:0;border:1px solid #bbb;border-radius:0;background:#fff;color:#222;padding:8px 10px;font:inherit;font-size:16px;line-height:1.4}
.form-row textarea{resize:vertical;min-height:132px}
.form-row input:focus-visible,.form-row textarea:focus-visible{outline:1px solid #222;outline-offset:2px}
.form-row input[type=file]{font:inherit;width:100%;max-width:100%;padding-top:6px}
.form-row input[type=file]::file-selector-button{font:inherit;color:inherit;background:#fff;border:1px solid #bbb;border-radius:0;padding:7px 10px;margin-right:10px;cursor:pointer}
.form-note{font-size:12px;line-height:1.4;color:#666;margin:8px 0 0}
.form-error{font-size:13px;line-height:1.4;color:#ad2727;margin:6px 0 0}
.form-error:empty{display:none}
.form-actions{margin-left:245px}
.form-actions button{display:block;min-width:160px;margin:20px 0 0;border:1px solid #222;border-radius:0;padding:12px 30px;background:#222;color:#fff;font:inherit;font-size:14px;line-height:1.4;cursor:pointer}
.form-actions button:disabled{opacity:.5;cursor:not-allowed}
.form-actions button:focus-visible{outline:1px solid #222;outline-offset:4px}
.form-honeypot{display:none!important}
.contact-address--with-form{margin-top:48px}
.contact-address--with-form .email{font-size:14px}
.contact-address--with-form .email-note{font-size:12px}
@media(max-width:700px){.form-row{grid-template-columns:1fr;gap:6px;margin-bottom:20px}.form-row label{padding-top:0}.form-row label br{display:none}.form-actions{margin-left:0}.form-actions button{width:100%}.contact-intro{margin-bottom:24px}}
