*,:before,:after{box-sizing:border-box}html,body,h1,h2,h3,p,ul,ol,li,figure,dl,dt,dd{margin:0;padding:0}ul,ol{list-style:none}img{max-width:100%;height:auto;display:block}[hidden]{display:none!important}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}:root{--ink:#000;--paper:#fff;--ease:.36s;--header-h:134px;--edge:56px;--content-left:17vw;--content-right:10vw;--track:.075em}html{scroll-padding-top:var(--header-h);font-size:62.5%}body{letter-spacing:var(--track);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Helvetica Neue,Helvetica,Arial,Hiragino Kaku Gothic ProN,sans-serif;font-size:1.4rem;line-height:1;overflow-y:scroll}a,.menu-btn,.gnav-close{color:var(--ink);transition:opacity var(--ease), border-color var(--ease);text-decoration:none}@media (hover:hover){a:hover,.menu-btn:hover,.gnav-close:hover{opacity:.6}}:focus-visible{outline:1px solid var(--ink);outline-offset:4px}.skip{position:absolute;left:-9999px}.skip:focus{left:var(--edge);z-index:300;background:var(--paper);padding:8px;top:10px}.header{height:var(--header-h);background:var(--paper);z-index:100;position:fixed;inset:0 0 auto}.logo{top:18px;left:calc(var(--edge) - 14px);display:block;position:absolute}.logo-mark{width:100px;height:100px}.menu-btn{top:56px;right:calc(var(--edge) + 40px);width:30px;height:22px;position:absolute}.menu-btn span{background:var(--ink);width:100%;height:2px;position:absolute;left:0}.menu-btn span:first-child{top:0}.menu-btn span:nth-child(2){top:10px}.menu-btn span:nth-child(3){bottom:0}.cats{top:304px;left:var(--edge);z-index:110;position:fixed}.cats li,.gnav li{font-size:1.7rem;line-height:2.38}.cats a,.gnav a{border-bottom:1px solid #0000;padding-bottom:3px}.cats a:hover,.cats a.current,.gnav a:hover,.gnav a.current{border-bottom-color:var(--ink);opacity:1}.gnav-bg{z-index:190;background:#fff6;position:fixed;inset:0}.gnav{background:var(--paper);visibility:hidden;width:315px;transition:transform var(--ease), visibility var(--ease);z-index:200;padding:140px 50px 45px;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.gnav.active{visibility:visible;transform:none;box-shadow:-1px 0 #e2e2e2}.gnav-close{top:50px;right:calc(var(--edge) + 40px);width:32px;height:32px;position:absolute}.gnav-close:before,.gnav-close:after{content:"";background:var(--ink);width:2px;height:40px;position:absolute;top:50%;left:50%}.gnav-close:before{transform:translate(-50%,-50%)rotate(45deg)}.gnav-close:after{transform:translate(-50%,-50%)rotate(-45deg)}.contents{margin:var(--header-h) var(--content-right) 0 var(--content-left);min-height:calc(100vh - var(--header-h));flex-direction:column;animation:.7s both fade-in;display:flex}@keyframes fade-in{0%{opacity:0}}.single-column{width:100%;max-width:max(700px,108vh);margin:0 auto}.grid{flex-wrap:wrap;column-gap:5%;display:flex}.grid .entry{width:47.5%}.entry{margin-bottom:64px}.entry-thumb{background:#f2f2f2;margin-bottom:15px;display:block;position:relative;overflow:hidden}.entry-thumb:hover{opacity:1}.entry-thumb img{width:100%}.entry--grid .entry-thumb{aspect-ratio:3/2}.entry--grid .entry-thumb img{object-fit:cover;height:100%}.entry-mark{opacity:0;transition:opacity var(--ease);background:#fff6;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.entry-thumb .entry-mark img{object-fit:contain;width:140px;height:140px}@media (hover:hover){.entry-thumb:hover .entry-mark,.entry:has(h2 a:hover) .entry-mark{opacity:1}}@media (hover:none){.entry-mark{display:none}}.entry-ttl{min-height:43px}.entry-ttl h2{font-size:1.7rem;font-weight:400;line-height:1.25}.entry-year{letter-spacing:.05em;font-size:1.36rem;line-height:1.5}.page{width:100%;max-width:860px;margin:0 auto}.gallery>*+*{margin-top:30px}.gallery img{background:#f2f2f2;width:100%}.page-ttl{margin-top:18px}.page-ttl h1{font-size:1.7rem;font-weight:400;line-height:1.25}.page-ttl .entry-year a{border-bottom:1px solid #0000}.entry-year .admin-link{border-bottom:1px solid var(--ink)}.page-ttl .entry-year a:hover{border-bottom-color:var(--ink);opacity:1}.lead{max-width:34em;padding:1.85em 0 1.6em;font-size:2.1rem;line-height:1.82}.cols{grid-template-columns:1fr 1fr;column-gap:6%;padding-top:1.6em;display:grid}.cols>.full{grid-column:1/-1}.specs,.prose{letter-spacing:.06em;font-size:1.4rem;line-height:1.95}.specs dt,.specs dd{display:inline}.specs dt:after{content:": "}.specs div+div{margin-top:0}.prose p+p{margin-top:1.95em}.prose a,.text-link{border-bottom:1px solid var(--ink);padding-bottom:1px}.prose h2{margin:2.6em 0 .6em;font-size:1.4rem;font-weight:400}.arrow-link{align-items:center;gap:12px;font-size:1.4rem;line-height:1.95;display:inline-flex}.arrow-link:before{content:"";border-top:1px solid var(--ink);border-right:1px solid var(--ink);width:11px;height:11px;margin-left:-3px;transform:rotate(45deg)}.arrow-link.back:before{margin-left:3px;transform:rotate(-135deg)}.pager{justify-content:space-between;gap:30px;margin-top:90px;display:flex}.footer{letter-spacing:.1em;color:#959595;margin-top:auto;padding:90px 0 56px;font-size:1.1rem}@media screen and (width<=1023px){:root{--header-h:96px;--edge:30px}.logo{top:2px;left:calc(var(--edge) - 8px)}.logo-mark{width:56px;height:56px}.menu-btn{top:21px;right:var(--edge);width:24px;height:17px}.menu-btn span{height:1px}.menu-btn span:nth-child(2){top:8px}.cats{top:58px}.cats ul{flex-wrap:wrap;display:flex}.cats li{font-size:1.3rem;line-height:1.6}.cats li:not(:last-child):after{content:"/";margin:0 .5em}.cats a,.gnav a{padding-bottom:1px}.gnav{padding:90px 30px 30px}.gnav-close{top:18px;right:var(--edge);width:23px;height:23px}.gnav-close:before,.gnav-close:after{width:1px;height:32px}.gnav li{font-size:1.3rem;line-height:3.4}.contents{margin:var(--header-h) var(--edge) 0}.single-column{max-width:none}.entry{margin-bottom:29px}.entry-thumb{margin-bottom:11px}.entry-ttl{min-height:30px}.entry-ttl h2,.page-ttl h1{font-size:1.3rem}.entry-year{font-size:1.1rem}.entry-thumb .entry-mark img{width:96px;height:96px}.gallery>*+*{margin-top:16px}.lead{padding:1.4em 0 .6em;font-size:1.5rem;line-height:1.94}.specs,.prose{font-size:1.3rem}.pager{margin-top:56px}.footer{padding:56px 0 30px}}@media screen and (width<=666px){.gnav{width:60%}.grid .entry{width:100%}.cols{grid-template-columns:1fr;row-gap:2.4em}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.entry-locked{aspect-ratio:3/2;color:#959595;letter-spacing:.2em;text-transform:uppercase;background:#f2f2f2;justify-content:center;align-items:center;font-size:1.3rem;display:flex}.project{width:100%}.project-head{justify-content:space-between;align-items:flex-end;gap:30px;margin:0 0 22px;display:flex}button.btn-line{text-align:left}.project .lead{padding-top:0}.locked-preview{background:#f2f2f2;width:100%;max-width:520px;margin-bottom:30px}.project .cols{max-width:860px;padding-top:3.2em}.btn-line{letter-spacing:var(--track);white-space:nowrap;border-bottom:1px solid var(--ink);padding-bottom:2px;font-size:1.3rem;line-height:1.5;display:inline-block}.btn-line small{color:#959595;margin-left:.6em;font-size:1.1rem}.gallery-grid{--gap:14px}.g-item{cursor:zoom-in;background:#f2f2f2;display:block;overflow:hidden}.g-item:hover{opacity:1}.g-item img{object-fit:cover;width:100%;height:100%}.gallery-grid[data-layout=masonry]{columns:var(--cols);column-gap:var(--gap)}.gallery-grid[data-layout=masonry]>.g-item{margin-bottom:var(--gap);break-inside:avoid}.gallery-grid[data-layout=masonry].ready{columns:auto;gap:var(--gap);align-items:flex-start;display:flex}.gallery-grid .m-col{gap:var(--gap);flex-direction:column;flex:1 1 0;min-width:0;display:flex}.gallery-grid[data-layout=grid]{grid-template-columns:repeat(var(--cols), 1fr);gap:var(--gap);display:grid}.gallery-grid[data-layout=grid] .g-item{aspect-ratio:1!important}.gallery-grid[data-layout=column]{flex-direction:column;gap:30px;max-width:max(700px,108vh);margin:0 auto;display:flex}.loupe{z-index:500;background:var(--paper);opacity:0;visibility:hidden;transition:opacity var(--ease), visibility var(--ease);grid-template-rows:auto 1fr auto;display:grid;position:fixed;inset:0}.loupe.open{opacity:1;visibility:visible}.loupe-bar{justify-content:space-between;align-items:center;padding:22px 30px;font-size:1.3rem;display:flex}.loupe-actions{align-items:center;gap:28px;display:flex}.loupe-close{width:26px;height:26px;position:relative}.loupe-close:before,.loupe-close:after{content:"";background:var(--ink);width:1px;height:32px;position:absolute;top:50%;left:50%}.loupe-close:before{transform:translate(-50%,-50%)rotate(45deg)}.loupe-close:after{transform:translate(-50%,-50%)rotate(-45deg)}.loupe-stage{min-height:0;padding:0 70px;position:relative}.loupe-stage img{object-fit:contain;user-select:none;-webkit-user-drag:none;width:100%;height:100%}.loupe-nav{cursor:pointer;width:50%;position:absolute;top:0;bottom:0}.loupe-nav:hover{opacity:1}.loupe-nav.prev{cursor:w-resize;left:0}.loupe-nav.next{cursor:e-resize;right:0}.loupe-nav:before{content:"";border-top:1px solid var(--ink);border-right:1px solid var(--ink);opacity:.35;width:16px;height:16px;transition:opacity var(--ease);position:absolute;top:50%}.loupe-nav:hover:before,.loupe-nav:focus-visible:before{opacity:1}.loupe-nav.prev:before{left:30px;transform:translateY(-50%)rotate(-135deg)}.loupe-nav.next:before{right:30px;transform:translateY(-50%)rotate(45deg)}.loupe-nav[disabled]{visibility:hidden}.loupe-strip{scrollbar-width:none;gap:6px;padding:18px 30px 22px;display:flex;overflow-x:auto}.loupe-strip::-webkit-scrollbar{display:none}.loupe-strip button{opacity:.35;height:54px;transition:opacity var(--ease);flex:none}.loupe-strip button:hover,.loupe-strip button[aria-current=true]{opacity:1}.loupe-strip img{width:auto;height:100%}body.loupe-open{overflow:hidden}.field{margin-bottom:22px;font-size:1.3rem;display:block}.field>span{color:#595757;margin-bottom:9px;display:block}.field small{color:#959595;margin-top:8px;font-size:1.2rem;line-height:1.6;display:block}input[type=text],input[type=password],input[type=number],select,textarea{width:100%;font:inherit;letter-spacing:.04em;color:var(--ink);transition:border-color var(--ease);background:0 0;border:0;border-bottom:1px solid #ccc;border-radius:0;outline:none;padding:10px 0;font-size:1.5rem}textarea{resize:vertical;border:1px solid #ccc;padding:10px 12px;line-height:1.7}input:focus,select:focus,textarea:focus{border-color:var(--ink)}.check{cursor:pointer;align-items:flex-start;gap:10px;margin-bottom:14px;font-size:1.4rem;line-height:1.5;display:flex}.check input{accent-color:#000;margin-top:3px}.check small{color:#959595;font-size:1.2rem;display:block}.btn{letter-spacing:.12em;text-transform:uppercase;color:var(--paper);background:var(--ink);border:1px solid var(--ink);transition:opacity var(--ease);padding:12px 26px;font-size:1.3rem;display:inline-block}.btn:hover{opacity:.7}.btn[disabled]{opacity:.3;cursor:default}.btn.ghost{color:var(--ink);background:0 0}.btn.small{padding:6px 12px;font-size:1.1rem}.form-msg{color:#595757;min-height:1.6em;margin-top:14px;font-size:1.3rem;line-height:1.6}.form-msg.error{color:#b3261e}.narrow{max-width:380px}.admin-bar{z-index:100;background:var(--paper);border-bottom:1px solid #e2e2e2;justify-content:space-between;align-items:center;height:60px;padding:0 30px;font-size:1.3rem;display:flex;position:fixed;inset:0 0 auto}.admin-bar nav{align-items:center;gap:26px;display:flex}.admin-bar .name{letter-spacing:.28em;text-transform:uppercase}.admin{max-width:1100px;margin:0 auto;padding:100px 30px 80px;animation:.5s both fade-in}.admin h1{margin-bottom:34px;font-size:2.1rem;font-weight:400}.admin h2{letter-spacing:.2em;text-transform:uppercase;color:#959595;border-top:1px solid #e2e2e2;margin:54px 0 22px;padding-top:22px;font-size:1.3rem;font-weight:400}.admin-head{justify-content:space-between;align-items:baseline;gap:20px;display:flex}.two{grid-template-columns:1fr 1fr;gap:0 40px;display:grid}.three{grid-template-columns:2fr 1fr 1fr;gap:0 40px;display:grid}.table{border-collapse:collapse;width:100%;font-size:1.4rem}.table th{text-align:left;letter-spacing:.15em;text-transform:uppercase;color:#959595;padding:0 12px 12px 0;font-size:1.1rem;font-weight:400}.table td{vertical-align:middle;border-top:1px solid #e2e2e2;padding:10px 12px 10px 0;line-height:1.4}.table .thumb{object-fit:cover;background:#f2f2f2;width:72px;height:48px}.tag{letter-spacing:.1em;white-space:nowrap;border:1px solid #ccc;margin-right:4px;padding:3px 7px;font-size:1.1rem;display:inline-block}.tag.on{border-color:var(--ink)}.save-bar{background:var(--paper);z-index:5;border-top:1px solid #e2e2e2;align-items:center;gap:20px;margin-top:30px;padding:16px 0;display:flex;position:sticky;bottom:0}.save-bar .form-msg{margin:0}.drop{text-align:center;color:#595757;cursor:pointer;transition:background var(--ease);border:1px dashed #999;padding:34px 20px;font-size:1.4rem;line-height:1.7;display:block}.drop.over{background:#f2f2f2}.drop input{opacity:0;width:1px;height:1px;position:absolute}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:22px;display:grid}.photo-tile{cursor:grab;background:#f2f2f2;position:relative}.photo-tile img{aspect-ratio:1;object-fit:cover;pointer-events:none;width:100%}.photo-tile.dragging{opacity:.3}.photo-tile.is-cover{outline:2px solid var(--ink);outline-offset:2px}.photo-tile .tile-actions{background:var(--paper);justify-content:space-between;padding:6px 2px;font-size:1.1rem;display:flex}.photo-tile .tile-actions button{border-bottom:1px solid #0000}.photo-tile .tile-actions button:hover{border-bottom-color:var(--ink)}.photo-tile.is-cover .set-cover{color:#959595;pointer-events:none}.muted{color:#959595;font-size:1.3rem;line-height:1.7}@media screen and (width<=1023px){.gallery-grid{--gap:8px}.gallery-grid[data-layout=grid]{grid-template-columns:repeat(min(var(--cols), 3), 1fr)}.gallery-grid[data-layout=column]{gap:16px}.loupe-bar{padding:16px 20px}.loupe-stage{padding:0}.loupe-nav:before{display:none}.loupe-strip{padding:12px 20px 16px}.loupe-strip button{height:40px}}@media screen and (width<=666px){.gallery-grid[data-layout=grid]{grid-template-columns:repeat(2,1fr)}.project-head{flex-direction:column;align-items:flex-start;gap:14px}.two,.three{grid-template-columns:1fr}.admin-bar .name{display:none}}@media screen and (height<=520px){.loupe-strip{display:none}}
