@charset "UTF-8";
@font-face{font-family:"IBM Plex Sans JP";font-style:normal;font-weight:400;font-display:swap;src:url("assets/ibm-plex-sans-jp.ttf") format("truetype")}
:root{--paper:#f8f8f5;--ink:#1e2420;--muted:#747b75;--line:#d9ddd6;--ease:cubic-bezier(.22,1,.36,1);--gutter:clamp(22px,3.9vw,72px);--header:88px;--sans:"Helvetica Neue",Arial,"IBM Plex Sans JP",sans-serif;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.65 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}a,button{-webkit-tap-highlight-color:transparent}button,a,input,select,textarea{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #4c6350;outline-offset:6px}button:disabled{cursor:default}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}h2{font-size:23px;line-height:1.2;letter-spacing:-.03em}p{line-height:1.9}sup{font:10px/1 var(--mono);vertical-align:super;margin-left:5px}[hidden]{display:none!important}::selection{background:#dbe3d7;color:#1e2420}.section-shell{max-width:1800px;padding-inline:var(--gutter);margin-inline:auto}.index-label{font:10px/1.5 var(--mono);letter-spacing:.055em}.quiet,.pending,.form-note{color:var(--muted)}.skip{position:fixed;top:8px;left:8px;padding:10px;background:var(--ink);color:white;z-index:100;transform:translateY(-150%)}.skip:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.header{height:var(--header);padding:0 var(--gutter);display:flex;align-items:center;gap:32px;position:fixed;inset:0 0 auto;z-index:30;background:rgba(248,248,245,.94);transition:box-shadow .3s,background .3s;backdrop-filter:blur(14px)}.header.scrolled{box-shadow:0 1px 0 rgba(30,36,32,.08)}.brand{flex:none;width:108px}.brand img{width:108px;height:auto}.header-note{font-size:10px;line-height:1.4;letter-spacing:.015em}.desktop-nav{display:flex;gap:30px;align-items:center;margin-left:auto;font-size:12px}.desktop-nav a,.contact-nav,.text-link,.back-top{position:relative}.desktop-nav a:after,.text-link:after{content:"";height:1px;position:absolute;bottom:-5px;left:0;right:0;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}.desktop-nav a:hover:after,.text-link:hover:after{transform:scaleX(1)}.nav-count{font:9px var(--mono);vertical-align:super;margin-left:4px}.header-tools{display:flex;align-items:center;gap:30px;font-size:12px}.languages{display:flex;gap:7px;font-size:11px}.languages span{color:#b3b8b1}.languages button{color:var(--muted);min-height:32px}.languages button[aria-pressed=true]{color:var(--ink);text-decoration:underline;text-underline-offset:4px}.contact-nav{display:flex;gap:22px;align-items:center}.contact-nav span{transition:transform .3s}.contact-nav:hover span{transform:translate(3px,-3px)}.menu-toggle{display:none}.mobile-menu{position:fixed;top:var(--header);inset-inline:0;background:var(--paper);padding:32px var(--gutter);z-index:29;box-shadow:0 12px 18px #00000008}.mobile-menu a{display:block;font-size:23px;padding:14px 0}.mobile-menu small{font-size:11px}
.intro{padding-top:150px;padding-bottom:36px;display:grid;grid-template-columns:1.1fr 1fr;column-gap:70px;row-gap:40px}.intro-left .index-label{display:block;margin-bottom:26px;color:var(--muted)}.intro h1{font-size:23px;line-height:1.65;letter-spacing:.035em}.intro-right{max-width:460px;justify-self:end;padding-top:3px}.intro-english{font-size:16px;line-height:1.65;letter-spacing:-.012em;text-wrap:pretty}.intro-link{display:inline-flex;gap:50px;margin-top:27px;font-size:12px;align-items:center}.elbow{font-size:25px;line-height:1;transition:transform .5s var(--ease)}.intro-link:hover .elbow{transform:translateY(5px)}.intro-bottom{color:var(--muted)}.intro-bottom-right{text-align:right;color:var(--muted)}
.section-top{display:flex;justify-content:space-between;align-items:baseline;padding-top:26px;border-top:1px solid var(--line)}.section-top .index-label{color:var(--muted)}.filter-row{display:flex;justify-content:space-between;align-items:center;margin:25px 0 34px;gap:20px}.filters{display:flex;gap:24px}.filters button{font-size:12px;min-height:32px;position:relative;color:var(--muted)}.filters button:after{content:"";position:absolute;height:1px;bottom:2px;left:0;right:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.filters button[aria-pressed=true]{color:var(--ink)}.filters button[aria-pressed=true]:after{transform:scaleX(1)}.filters sup{font-size:8px;margin-left:3px}.filter-note{font-size:11px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:1.12fr .88fr;column-gap:clamp(32px,5.4vw,88px);align-items:start;row-gap:66px}.project{min-width:0;scroll-margin-top:112px}.project-culture{grid-column:1;grid-row:1 / span 2}.project-film{grid-column:2;grid-row:1;padding-top:114px}.project-cassette{grid-column:2;grid-row:2}.project-grid.is-filtered{grid-template-columns:1fr 1fr}.project-grid.is-filtered .project{grid-column:auto;grid-row:auto;padding-top:0}.image-link{display:block;position:relative;isolation:isolate;overflow:hidden;background:#e2e5dd}.project-image{overflow:hidden}.portrait{aspect-ratio:3/4}.landscape{aspect-ratio:16/10}.project-image img{width:100%;height:100%;object-fit:cover;transform:none}.image-corner{position:absolute;bottom:18px;right:20px;color:white;font-size:22px;line-height:1;z-index:2;transition:transform .4s var(--ease)}.image-link:hover .image-corner{transform:translate(3px,-3px)}.image-hint{position:absolute;left:20px;bottom:18px;color:white;font:11px var(--mono);opacity:0;transform:translateY(6px);transition:opacity .3s,transform .4s var(--ease);text-shadow:0 1px 9px #0008}.image-link:hover .image-hint,.image-link:focus-visible .image-hint{opacity:1;transform:none}.project-caption{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-top:17px}.project-caption>div{display:flex;gap:14px;align-items:baseline;min-width:0}.project-number{font:9px var(--mono);color:var(--muted);flex:none}.project-caption h3{font-size:14px;line-height:1.5;letter-spacing:.025em}.project-kind{font-size:10px;line-height:1.4;color:var(--muted);white-space:nowrap}.relation-teaser{display:flex;align-items:center;gap:20px;margin-top:25px;font-size:11px;color:var(--muted)}.relation-teaser .index-label{font-size:8px}.relation-teaser a{color:var(--ink);display:flex;gap:14px}.relation-teaser a span{display:inline-block;transition:transform .3s}.relation-teaser a:hover span{transform:translate(3px,-3px)}
.type-cover{aspect-ratio:1.16;background:#e8e9e0;padding:28px;position:relative;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.cover-top{font-size:9px;line-height:1.65;position:relative;z-index:2}.cover-mark{height:45%;position:absolute;left:17%;right:17%;top:26%;display:flex;align-items:center;justify-content:space-between}.cover-mark span{width:33%;aspect-ratio:1;border:1px solid #87927f;border-radius:50%;position:relative;transition:transform 1s var(--ease)}.cover-mark span:before{content:"";position:absolute;inset:12%;border:1px solid #87927f;border-radius:50%}.cover-mark span:after{content:"";position:absolute;inset:44%;background:#87927f;border-radius:50%}.cover-mark i{position:absolute;height:1px;left:16%;right:16%;top:calc(50% + 24%);background:#87927f;transform:rotate(-8deg);transform-origin:left;transition:transform 1s var(--ease)}.type-link:hover .cover-mark i{transform:rotate(8deg)}.cover-bottom{font-size:18px;line-height:1.55;letter-spacing:.04em;margin-top:auto;z-index:2;max-width:85%}.cover-note{font-size:8px;margin-top:16px;opacity:.65}.type-link .image-corner,.type-link .image-hint{color:var(--ink);text-shadow:none}.type-link .image-hint{left:auto;right:22px;bottom:48px;font-size:9px}.project-detail{padding-top:28px;overflow:hidden;font-size:13px;outline:none}.detail-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;border-top:1px solid var(--line);padding-top:19px}.close-detail{font-size:11px;min-height:30px}.project-detail p{max-width:430px;margin-bottom:13px}.project-detail .pending{font-size:11px}.detail-related{display:flex;flex-direction:column;gap:10px;margin:28px 0}.detail-related .index-label{font-size:8px;color:var(--muted)}.detail-related a{font-size:12px}.project-detail>.text-link{display:inline-block;font-size:11px;margin-top:22px;margin-bottom:12px}.project.is-open .image-corner{transform:rotate(-45deg)}.collection-end{margin-top:70px;display:flex;justify-content:space-between;align-items:center;font-size:12px;padding-bottom:68px}.collection-end .index-label{font-size:9px;color:var(--muted)}
.editorial-section{display:grid;grid-template-columns:1fr 1fr;column-gap:8%;padding-block:72px;position:relative}.editorial-section:before{content:"";position:absolute;height:1px;top:0;left:var(--gutter);right:var(--gutter);background:var(--line)}.section-label>.index-label{color:var(--muted);display:block;margin-bottom:24px}.section-label h2{margin-bottom:30px}.section-label>p{font-size:13px}.section-content{max-width:580px}.about .section-content{padding-top:36px}.section-content>p{font-size:13px;max-width:450px}.section-content>p.statement{font-size:18px;line-height:1.6;margin-bottom:25px;letter-spacing:.025em}.section-content>p.quiet{font-size:11px;margin-top:28px}.services{width:100%}.service{display:grid;grid-template-columns:30px 1fr 24px;gap:20px;padding:26px 0;border-bottom:1px solid var(--line)}.service:first-child{padding-top:0}.service h3{font-size:18px;line-height:1.3;letter-spacing:-.02em}.service p{font-size:11px;color:var(--muted);margin-top:7px}.service>.index-label{color:var(--muted);padding-top:3px}.service-arrow{font-size:21px;transition:transform .4s var(--ease)}.service:hover .service-arrow{transform:translate(4px,-4px)}.preview-label{font:9px/1.7 var(--mono);color:var(--muted);display:block;margin-top:32px}.contact-form{width:100%;max-width:580px}.field{display:flex;flex-direction:column;margin-bottom:22px}.field label{font-size:11px;margin-bottom:6px}.field input,.field select,.field textarea{border:0;border-bottom:1px solid #bfc6bc;border-radius:0;background:transparent;padding:10px 0;width:100%;min-height:44px;outline-offset:4px;font-size:14px}.field textarea{resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.form-note{font-size:10px;line-height:1.8;margin-top:14px}.submit{display:flex;justify-content:space-between;width:100%;border-bottom:1px solid var(--ink);padding:20px 0;margin-top:18px;font-size:12px}.submit>span:last-child{font-size:20px;transition:transform .3s}.submit:hover>span:last-child{transform:translate(3px,-3px)}#project-context{display:flex;gap:15px;align-items:center;font-size:11px;margin-bottom:20px;padding:10px 12px;background:#e9ede6}#context-name{flex:1}#clear-context{font-size:20px;min-width:28px}.footer{padding-block:40px;display:flex;gap:30px;align-items:center;border-top:1px solid var(--line);font-size:11px}.footer img{width:95px;height:auto}.footer .index-label{font-size:9px;color:var(--muted);margin-left:20px}.footer button{margin-left:auto;font-size:11px}.back-top{margin-left:25px}dialog{border:0;background:var(--paper);padding:42px;max-width:560px;width:calc(100% - 40px);color:var(--ink);box-shadow:0 12px 60px #0002}dialog::backdrop{background:#171f1c66;backdrop-filter:blur(3px)}.dialog-close{display:block;margin-left:auto;margin-bottom:36px;font-size:12px}dialog h2{font-size:20px;margin-bottom:22px}dialog p{font-size:13px;margin-top:14px}dialog dl{font-size:12px}dialog dt{color:var(--muted);margin-top:16px}dialog dd{margin:4px 0;white-space:pre-wrap;overflow-wrap:anywhere}
@media(min-width:1600px){.intro{padding-top:200px;padding-bottom:70px}.intro-right{max-width:510px}.intro-english{font-size:18px}.project-film{padding-top:150px}}
@media(max-width:1050px){.header-note{display:none}.desktop-nav{gap:22px}.header{gap:24px}.header-tools{gap:22px}.project-grid{gap:44px 36px}.project-caption{gap:8px;flex-wrap:wrap}.project-kind{margin-left:25px}.relation-teaser{align-items:flex-start;flex-direction:column;gap:7px}.intro{gap:50px}.intro-english{font-size:14px}.intro h1{font-size:24px}.project-film{padding-top:80px}.cover-bottom{font-size:16px}.type-cover{padding:22px}.editorial-section{column-gap:7%}}
@media(max-width:700px){:root{--header:72px;--gutter:22px}html{scroll-padding-top:90px}.header{gap:16px}.brand,.brand img{width:87px}.desktop-nav,.contact-nav{display:none}.header-tools{margin-left:auto;gap:24px}.menu-toggle{display:flex;gap:13px;font-size:12px;align-items:center;min-height:44px}.menu-toggle span{font-size:19px}.languages{gap:9px}.intro{padding-top:124px;padding-bottom:36px;grid-template-columns:1fr;gap:28px}.intro-left .index-label{font-size:9px;margin-bottom:21px}.intro h1{font-size:24px;line-height:1.65}.intro-right{justify-self:start;max-width:360px;padding:0}.intro-english{font-size:13px;line-height:1.7}.intro-link{margin-top:18px}.intro-bottom{font-size:8px;margin-top:10px}.intro-bottom-right{display:none}h2{font-size:21px}.section-top{padding-top:24px}.section-top>.index-label{display:none}.filter-row{margin:18px 0 26px}.filters{gap:25px}.filter-note{display:none}.project-grid,.project-grid.is-filtered{display:flex;flex-direction:column;gap:45px}.project{width:100%;scroll-margin-top:92px}.project-film{padding-top:0}.project-image img{transform:none!important}.portrait{aspect-ratio:3/4}.landscape{aspect-ratio:16/10}.image-corner{font-size:19px;right:17px;bottom:15px}.image-hint{display:none}.project-caption{margin-top:13px;flex-wrap:nowrap;gap:10px}.project-caption h3{font-size:13px}.project-caption>div{gap:10px}.project-kind{font-size:9px;margin:0;white-space:normal;text-align:right;max-width:90px}.project-number{font-size:8px}.relation-teaser{flex-direction:row;gap:14px;margin-top:18px;align-items:center}.relation-teaser .index-label{font-size:7px;max-width:65px}.relation-teaser a{font-size:10px;gap:8px}.type-cover{aspect-ratio:1.25;padding:25px}.cover-bottom{font-size:18px}.cover-top{font-size:8px}.project-detail{padding-top:17px}.detail-head{margin-bottom:17px}.collection-end{margin-top:40px;padding-bottom:43px;align-items:start;gap:25px}.collection-end .index-label{font-size:8px;max-width:100px}.collection-end>a{font-size:11px}.editorial-section{grid-template-columns:1fr;gap:28px;padding-block:43px}.section-label>.index-label{font-size:9px;margin-bottom:16px}.section-label h2{margin-bottom:18px}.about .section-content{padding-top:0}.section-content>p.statement{font-size:17px;margin-bottom:18px}.section-content>p{font-size:12px}.service h3{font-size:17px}.service p{font-size:10px}.service{gap:12px;grid-template-columns:25px 1fr 20px;padding:23px 0}.service:first-child{padding-top:0}.preview-label{margin-top:18px;font-size:8px}.field input,.field select,.field textarea{font-size:16px}.form-grid{gap:20px}.footer{display:grid;grid-template-columns:1fr 1fr;gap:27px;font-size:10px}.footer .index-label{margin:0;text-align:right}.footer button{margin:0;text-align:left;font-size:10px}.back-top{margin:0;text-align:right}.footer img{width:85px}dialog{padding:25px}}
/* Gallery architecture: one continuous column, framed by persistent information. */
.gallery-layout{max-width:1800px;margin-inline:auto;padding:116px var(--gutter) 0;display:grid;grid-template-columns:clamp(190px,19vw,260px) minmax(0,1fr) clamp(172px,17vw,240px);column-gap:clamp(28px,3.8vw,60px);align-items:start}
.gallery-layout>.section-shell{padding-inline:0;margin-inline:0;min-width:0;width:100%}
.gallery-layout>.intro{grid-column:1;grid-row:1/span 4;position:sticky;top:116px;display:flex;flex-direction:column;gap:0;padding-block:0;max-height:calc(100dvh - 142px);overflow:auto;scrollbar-width:thin}
.rail-logo{width:145px;height:auto;margin-bottom:29px}
.intro h1{font-size:19px;line-height:1.6;letter-spacing:.02em}
.intro-right{max-width:none;padding:0;margin-top:22px}
.intro-english{font-size:12px;line-height:1.75;letter-spacing:0}
.intro-link{font-size:11px;margin-top:19px;gap:24px}
.rail-nav{display:flex;flex-direction:column;margin-top:39px;gap:0}
.rail-nav a{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}
.rail-nav span{transition:transform .35s var(--ease)}
.rail-nav a:hover span{transform:translate(3px,-3px)}
.intro-bottom{margin-top:27px;font-size:8px;line-height:1.9}
.gallery-layout>.projects{grid-column:2;grid-row:1}
.section-top{padding-top:0;border-top:0}
.section-top h2{font-size:21px;letter-spacing:-.025em}
.section-top>.index-label{display:none}
.filter-row{margin:18px 0 27px}
.filters{flex-wrap:wrap;column-gap:18px;row-gap:0}
.filters button{font-size:11px;min-height:36px}
.filters button:hover{color:var(--ink)}
.filters button[data-empty=true]{color:#969c96}
.filters button[data-empty=true][aria-pressed=true]{color:var(--ink)}
.project-grid,.project-grid.is-filtered{display:flex;flex-direction:column;gap:58px}
.project-grid>.project{width:100%;grid-column:auto;grid-row:auto;padding-top:0}
.landscape{aspect-ratio:16/9}
.project-caption{flex-wrap:nowrap;gap:12px}
.project-caption h3{font-size:14px}
.project-kind{margin-left:0;font-size:10px}
.relation-teaser{flex-direction:row;align-items:center;gap:16px}
.project-rail{grid-column:3;grid-row:1/span 4;position:sticky;top:116px;max-height:calc(100dvh - 142px);overflow:auto;scrollbar-width:thin}
.rail-block+.rail-block{margin-top:45px}
.rail-block h2{font-size:19px;line-height:1.4;margin-bottom:21px;letter-spacing:-.025em}
.project-index{border-top:1px solid var(--line)}
.project-index a{display:grid;grid-template-columns:21px 1fr 12px;align-items:baseline;gap:8px;padding:16px 0;border-bottom:1px solid var(--line);font-size:11px;line-height:1.7;color:var(--muted);transition:color .3s}
.project-index a>.index-label{font-size:8px}
.index-arrow{opacity:0;transform:translate(3px,-3px);transition:transform .4s var(--ease),opacity .3s}
.project-index a:hover,.project-index a[aria-current=true]{color:var(--ink)}
.project-index a:hover .index-arrow,.project-index a[aria-current=true] .index-arrow{opacity:1;transform:none}
.project-index a:focus-visible .index-arrow{opacity:1}
.rail-service{display:block;position:relative;font-size:13px;line-height:1.5;padding:0 20px 18px 0}
.rail-service>span{position:absolute;right:0;top:0;transition:transform .35s var(--ease)}
.rail-service:hover>span{transform:translate(3px,-3px)}
.rail-service small{display:block;font-size:10px;color:var(--muted);margin-top:7px;line-height:1.65}
.empty-selection{padding:70px 0;min-height:360px;border-block:1px solid var(--line)}
.empty-selection>.index-label{color:var(--muted);font-size:9px}
.empty-selection p{font-size:13px;margin:21px 0}
.empty-selection button{font-size:12px;min-height:44px}
.gallery-layout>.editorial-section{grid-column:2;grid-template-columns:1fr;gap:24px;padding-block:45px}
.editorial-section:before{left:0;right:0}
.section-label h2{margin-bottom:18px;font-size:21px}
.section-label>.index-label{margin-bottom:15px}
.about .section-content{padding-top:0}
.section-content,.contact-form{max-width:none}
.footer{margin-top:30px}
@media(min-width:1000px){.header>.brand{display:none}.header-note{display:block;font-size:10px;line-height:1.5}}
@media(max-width:999px){
  .gallery-layout{display:block;max-width:760px;padding-top:112px}
  .gallery-layout>.intro{position:static;display:block;max-height:none;overflow:visible;padding:0 0 32px}
  .intro-link,.rail-nav,.intro-bottom,.project-rail{display:none}
  .intro-left{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .intro-right{margin:0;max-width:490px;justify-self:start}
  .intro-english{font-size:13px;line-height:1.75}
  .section-top{padding-top:22px;border-top:1px solid var(--line)}
  .gallery-layout>.editorial-section{display:grid}
}
@media(max-width:700px){
  .gallery-layout{padding-top:105px}
  .gallery-layout>.intro{padding-bottom:26px}
  .intro-english{font-size:12px;line-height:1.8}
  .section-top h2{font-size:20px}
  .filter-row{margin:14px 0 20px}
  .filters{column-gap:14px;row-gap:0;width:100%}
  .filters button{font-size:11px;min-height:44px}
  .filters sup{font-size:7px;margin-left:2px}
  .project-grid,.project-grid.is-filtered{gap:44px}
  .project-caption h3{font-size:13px}
  .project-kind{font-size:9px}
  .relation-teaser{gap:14px}
  .rail-logo{display:none}
  .empty-selection{min-height:310px;padding:48px 0}
  .collection-end{gap:18px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.project-image img{transform:none!important}}
/* Language versions are real links, also available without JavaScript. */
.languages a{color:var(--muted);min-height:32px;display:inline-flex;align-items:center}
.languages a[aria-current=page]{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
