:root{--ink:#111;--gray:#666;--soft:#999;--faint:#f9f9f9}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{color:var(--ink);-webkit-font-smoothing:antialiased;background:#fff;font-family:Noto Sans,Noto Sans SC,PingFang SC,Hiragino Sans GB,Arial,sans-serif;font-size:14px;line-height:1.5}button{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}img{max-width:100%;display:block}::selection{background:var(--ink);color:#fff}button:focus-visible{outline-offset:3px;outline:1px solid}.mobile-menu-dismiss{display:none}.container{width:100%;height:100dvh;display:flex}.sidebar{border-right:1px solid var(--faint);z-index:100;background:#fff;flex:0 0 260px;width:260px;height:100dvh;padding:50px 40px;position:relative;overflow-y:auto}.sidebar-level{flex-direction:column;min-height:100%;animation:.3s both section-in;display:flex}.city-menu{flex-direction:column;gap:9px;margin-top:34px;display:flex}.city-toggle{color:var(--gray);margin-top:30px;font-size:13px;display:none}.city-toggle:hover{text-decoration:underline}.city-link{color:var(--soft);font-size:12px;transition:color .3s,font-size .3s cubic-bezier(.22,1,.36,1)}.city-link:not(:disabled):hover{color:var(--ink)}.city-link.active{color:#000;text-underline-offset:3px;font-size:13.8px;text-decoration:underline}.city-link:disabled{opacity:.4;cursor:default}.city-menu-head{display:none}.sidebar-footer{margin-top:auto}.nav-back{margin-top:24px;margin-bottom:17px}.photo-desc{color:var(--gray);font-size:14px;line-height:1.8;animation:.3s both desc-in}@keyframes desc-in{0%{opacity:0}to{opacity:1}}.site-title button{transition:opacity .2s}.site-title button:active{opacity:.6}.site-title{letter-spacing:.5px;margin-bottom:5px;font-size:16px;font-weight:200}.site-subtitle{color:var(--soft);letter-spacing:.5px;margin-bottom:50px;font-size:12px}.site-brand-home{display:none}.menu-toggle{color:var(--gray);margin-bottom:10px;font-size:13px;display:none}.menu-toggle:hover{text-decoration:underline}.nav-category{color:var(--soft);letter-spacing:1px;text-transform:uppercase;margin:30px 0 10px;font-size:11px}.nav-category-link{text-underline-offset:3px;margin:30px 0 10px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:color .3s cubic-bezier(.22,1,.36,1),font-size .3s cubic-bezier(.22,1,.36,1),text-decoration-color .3s cubic-bezier(.22,1,.36,1);display:block}.nav-category-link:hover{color:var(--ink)}.nav-category-link.active{color:var(--ink);font-size:15px;text-decoration-color:currentColor}.nav-menu ul{list-style:none}.nav-menu li{margin-bottom:10px}.nav-link{color:var(--gray);text-underline-offset:3px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:color .3s cubic-bezier(.22,1,.36,1),font-size .3s cubic-bezier(.22,1,.36,1),text-decoration-color .3s cubic-bezier(.22,1,.36,1)}.nav-link:hover{color:var(--ink)}.nav-link:active{opacity:.6}.nav-link.active{color:#000;font-size:20px;text-decoration-color:currentColor}.content{flex:1;justify-content:center;align-items:center;min-width:0;height:100dvh;min-height:0;padding:40px;display:flex;position:relative;overflow:hidden}.nav-zone{z-index:50;width:50%;height:100%;position:absolute;top:0}.nav-left{cursor:w-resize;left:0}.nav-right{cursor:e-resize;right:0}.section-selected .nav-zone,.section-about .nav-zone{display:none}.slide-counter{color:var(--soft);letter-spacing:1px;z-index:60;font-size:11px;position:absolute;bottom:30px;right:40px}.section-selected .slide-counter,.section-about .slide-counter{display:none}.gallery-section{width:100%;min-width:0;height:100%;min-height:0;animation:.45s both section-in;position:relative;overflow:hidden}@keyframes section-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.artwork{opacity:0;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:absolute;inset:0}.artwork.active{opacity:1;z-index:1}.text-content{z-index:100;pointer-events:auto;flex-direction:column;align-items:center;display:flex;position:relative}.artwork img{object-fit:contain;-webkit-user-select:none;user-select:none;width:auto;max-width:100%;max-height:85dvh}.caption{color:#777;text-align:center;margin-top:15px;font-size:12px}.album-cover{justify-content:center;align-items:center;gap:clamp(40px,5vw,80px);max-height:100%;display:flex}.cover-grid{-webkit-user-select:none;user-select:none;scrollbar-width:none;align-self:center;gap:14px;width:min(46vw,640px);height:min(74dvh,780px);display:flex;overflow-y:auto}.cover-grid::-webkit-scrollbar{display:none}.cover-col{flex-direction:column;flex:1 1 0;gap:14px;min-width:0;display:flex}.cover-col img{width:100%;height:auto}.cover-info{max-width:420px}.cover-date{color:var(--soft);letter-spacing:2px;margin-bottom:18px;font-size:11px}.cover-title{color:var(--ink);font-size:clamp(28px,2.6vw,42px);font-weight:200;line-height:1.35}.cover-en{color:var(--soft);letter-spacing:2px;text-transform:uppercase;margin:16px 0 30px;font-size:10px}.cover-copy{color:var(--gray);margin-bottom:1.4em;font-size:13px;line-height:2}.cover-copy:last-child{margin-bottom:0}@media (max-width:800px),(max-width:1000px) and (max-height:500px){.album-cover{flex-direction:column;gap:24px;overflow-y:auto}.feed-block{padding-top:26px;padding-left:0}.feed-date{position:static}.photo-desc{margin-top:20px;padding-top:0}.nav-back{margin-top:20px;margin-bottom:0}.cover-grid{width:100%;height:auto;max-height:44dvh}.cover-info{max-width:100%}}.project-statement{color:#333;text-align:left;align-items:flex-start;max-width:500px;max-height:80dvh;font-size:14px;overflow-y:auto}.statement-title{color:var(--ink);margin-bottom:12px;font-size:16px;font-weight:200}.statement-en{color:var(--soft);letter-spacing:2px;text-transform:uppercase;margin-bottom:20px;font-size:10px}.statement-copy{color:var(--gray);line-height:1.8}.statement-contact{color:var(--soft);letter-spacing:1px;margin-top:26px;font-size:12px}.hero-section{height:100dvh;position:relative}.hero-slide{object-fit:cover;opacity:0;-webkit-user-select:none;user-select:none;width:100%;height:100%;transition:opacity 1.2s;position:absolute;inset:0}.hero-slide.active{opacity:1}.hero-welcome{position:absolute;bottom:5%;left:5%}.hero-welcome img{width:auto;height:clamp(96px,11vw,132px);display:block}.hero-scroll-hint{color:#fff;letter-spacing:.1em;font-size:clamp(15px,1.4vw,21px);font-weight:900;position:absolute;bottom:5%;right:5%}.grid-locked .selected-grid,.grid-locked .cover-grid,.grid-locked .about-section,.selected-grid-wrap{overflow:hidden}.selected-grid{z-index:80;pointer-events:auto;align-items:flex-start;gap:clamp(12px,1.6vw,20px);padding:clamp(10px,3vw,20px) clamp(12px,4vw,50px);display:flex;position:absolute;inset:0;overflow:hidden auto}.selected-column{flex-direction:column;flex:1 1 0;gap:clamp(12px,1.6vw,20px);min-width:0;display:flex}.selected-thumb{min-width:0;line-height:0;display:block;overflow:hidden}.selected-thumb img{width:100%;height:auto;transition:transform .28s,opacity .2s}.selected-thumb:hover img{transform:scale(1.04)}.selected-thumb:active img{opacity:.75}.feed-wrap{flex-direction:column;gap:56px;padding:20px clamp(12px,4vw,50px) 50px;display:flex;overflow-y:auto}.feed-block{min-width:0;padding-left:150px;position:relative}.feed-date{color:var(--soft);letter-spacing:2px;font-size:24px;font-weight:200;line-height:1.2;position:absolute;top:0;left:0}.feed-grid{align-items:flex-start;gap:clamp(12px,1.6vw,20px);max-width:min(1160px,100%);margin-left:auto;display:flex}.grid-locked .feed-wrap{overflow:hidden}.moment-section{align-items:flex-start;display:flex;overflow-y:auto}.moment-item{min-width:0;line-height:0;transition:transform .28s,opacity .2s;display:block;overflow:hidden}.moment-item:hover{transform:scale(1.02)}.moment-item:active{opacity:.75}.moment-item img{width:100%;height:auto}.moment-full{width:min(1160px,100%);margin:0 auto}.moment-grid{gap:clamp(12px,1.6vw,20px);width:min(1160px,100%);margin:0 auto;padding:20px 0 40px;display:grid}.moment-view{z-index:300;cursor:zoom-out;background:#000000eb;justify-content:center;align-items:center;animation:.25s both desc-in;display:flex;position:fixed;inset:0}.moment-view-img{object-fit:contain;max-width:92vw;max-height:92vh}.moment-view-close{top:max(12px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));color:#fff;text-align:center;width:44px;height:44px;font-size:26px;position:absolute}.about-section{display:flex;overflow-y:auto}.about-layout{z-index:100;align-items:stretch;gap:clamp(40px,6vw,70px);width:min(900px,100%);margin:auto;display:flex;position:relative}.about-layout .project-statement{flex-direction:column;flex:1 1 0;max-width:460px;display:flex}.about-layout .statement-contact{margin-top:auto}.about-photo{object-fit:contain;flex:none;width:auto;height:340px}@media (max-width:1100px) and (min-width:801px){.sidebar{flex-basis:220px;width:220px;padding:40px 28px}.content{padding:28px}.album-cover{flex-direction:column;gap:24px;overflow-y:auto}.cover-grid{width:100%;height:auto;max-height:44dvh}.cover-info{max-width:100%}}@media (max-width:800px),(max-width:1000px) and (max-height:500px){.container{flex-direction:column}.sidebar{--mobile-header-padding-y:10px;width:100%;height:auto;max-height:min(70dvh,680px);padding:var(--mobile-header-padding-y) max(20px, env(safe-area-inset-right)) var(--mobile-header-padding-y) max(20px, env(safe-area-inset-left));overscroll-behavior-y:contain;border-bottom:1px solid #f0f0f0;border-right:none;flex:none}:is(.sidebar:has(.sidebar-top),.sidebar:has(.album-photo-view)){overflow:visible}.mobile-menu-dismiss{z-index:90;touch-action:none;background:0 0;display:block;position:fixed;inset:0}.site-title{margin-bottom:4px;font-size:14px}.site-brand-title{display:none}.site-subtitle{margin-bottom:0}.sidebar-top{grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:44px;display:grid}.sidebar-top .site-subtitle{color:var(--gray)}.site-brand-static{display:none}.site-brand-home{align-items:center;min-width:44px;min-height:44px;display:inline-flex}.site-brand-home:active{opacity:.6}.menu-toggle{justify-content:flex-end;align-items:center;min-width:44px;min-height:44px;margin-bottom:0;display:inline-flex}.nav-menu{opacity:0;visibility:hidden;pointer-events:none;top:calc(100% + var(--mobile-header-padding-y) + 1px);left:calc(0px - max(20px, env(safe-area-inset-left)));right:calc(0px - max(20px, env(safe-area-inset-right)));z-index:2;max-height:min(70dvh, calc(100dvh - 45px - var(--mobile-header-padding-y) * 2 - env(safe-area-inset-bottom)));padding:12px max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));overscroll-behavior-y:contain;touch-action:pan-y;scrollbar-width:thin;background:#fffffffa;border-bottom:1px solid #0000000f;transition:opacity .2s,visibility 0s linear .2s;display:block;position:absolute;overflow-y:auto;box-shadow:0 8px 24px #0000000f}.menu-open .nav-menu{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .2s,visibility}.nav-menu ul{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;display:grid}.nav-menu .nav-link,.nav-menu .nav-category-link{align-items:center;width:100%;min-height:44px;line-height:1.5;display:flex}.nav-menu .nav-link.active{font-size:15px}.nav-category{margin:15px 0 8px;font-size:10px}.nav-menu li{min-width:0;margin-bottom:0}.nav-link{font-size:13px}.content{height:auto;padding:8px max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));touch-action:pan-y pinch-zoom;flex:1;min-height:0;container-type:size}.text-content{min-width:0;max-width:100%;max-height:100%}.text-content:has(img){pointer-events:none;justify-content:center;width:100%;height:100%}.caption{overflow-wrap:anywhere;flex:none;max-width:100%;margin-top:10px}.artwork{padding:0}.artwork img{object-fit:contain;width:100%;max-width:100%;height:auto;max-height:min(62dvh,100cqh - 48px)}.project-statement{max-width:100%;font-size:13px}.sidebar-level{animation:none;position:relative}.photo-desc{display:none}.nav-back{justify-content:flex-end;align-items:center;min-width:60px;min-height:44px;margin:0;font-size:13px;display:flex;position:absolute;top:0;right:0}.album-photo-view{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;min-height:44px;padding-right:72px;display:grid}.album-photo-view .site-title{grid-area:1/1;margin:0}.album-photo-view .site-subtitle{display:none}.city-toggle{white-space:nowrap;grid-area:1/2;justify-content:flex-end;align-items:center;min-width:44px;min-height:44px;margin:0;display:inline-flex}.album-photo-view .sidebar-footer{grid-column:1/-1;height:0;margin:0}.city-menu{top:calc(100% + var(--mobile-header-padding-y) + 1px);left:calc(0px - max(20px, env(safe-area-inset-left)));right:calc(0px - max(20px, env(safe-area-inset-right)));z-index:2;opacity:0;visibility:hidden;pointer-events:none;padding:12px max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));max-height:min(70dvh, var(--city-menu-available-height,calc(100dvh - 65px)));overscroll-behavior-y:contain;touch-action:pan-y;scrollbar-width:thin;background:#fffffffa;border-bottom:1px solid #f0f0f0;margin:0;transition:opacity .2s,visibility 0s linear .2s;display:flex;position:absolute;overflow-y:auto;box-shadow:0 8px 24px #0000000f}.city-menu.city-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .2s,visibility}.city-menu-head{color:var(--soft);letter-spacing:1px;flex:none;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:11px;display:flex}.city-menu-head button{color:var(--gray);text-align:right;min-width:44px;min-height:44px;font-size:20px}.city-link{min-height:44px;color:var(--gray);flex:none;align-items:center;font-size:13px;display:flex}.city-menu{gap:0}.slide-counter{font-size:10px;bottom:10px;right:15px}.section-selected .nav-zone,.section-about .nav-zone{display:none}.selected-grid{gap:10px;height:100%;padding:10px;position:relative;inset:auto}.selected-column{gap:10px}.feed-wrap{gap:36px;padding:10px 10px 28px}.feed-block{flex:none;padding-top:0;padding-left:0}.feed-date{margin-bottom:14px;font-size:18px;position:static}.feed-grid{gap:10px;width:100%;max-width:none}.about-section{overscroll-behavior-y:contain;padding:16px 12px 28px}.about-layout{flex-direction:column;gap:28px;width:100%;margin:0 auto}.about-layout .project-statement{flex:none;width:100%;max-width:none;max-height:none;font-size:14px;overflow:visible}.about-layout .statement-contact{margin-top:24px}.about-photo{flex:none;align-self:center;width:min(100%,320px);height:auto}.album-intro-view .artwork.active{pointer-events:auto;justify-content:flex-start;align-items:stretch;padding:12px 10px 44px;overflow-y:auto}.album-intro-view .album-cover{flex:none;width:100%;max-height:none;overflow:visible}.album-intro-view .cover-grid{flex:none;gap:10px;height:min(36dvh,260px);max-height:none;overflow-y:auto}.album-intro-view .cover-col{gap:10px}.album-intro-view .cover-info{width:100%}.content:has(.album-intro-view)>.nav-zone{height:44px;top:auto;bottom:0}.selected-grid,.feed-wrap,.cover-grid,.about-section{overscroll-behavior-y:contain}.grid-locked .selected-grid,.grid-locked .feed-wrap,.grid-locked .cover-grid,.grid-locked .about-section{overscroll-behavior-y:auto}}@media (max-width:1000px) and (max-height:500px) and (orientation:landscape){.sidebar{--mobile-header-padding-y:4px;max-height:76dvh}.hero-welcome img{height:clamp(64px,20dvh,96px)}.hero-scroll-hint{font-size:13px}.album-intro-view .album-cover{flex-direction:row;align-items:flex-start;gap:24px}.album-intro-view .cover-grid{width:50%;height:100%;max-height:60dvh}.album-intro-view .cover-info{width:50%}.artwork img{max-height:calc(100cqh - 42px)}}@media (hover:none){.selected-thumb:hover img{transform:none}}@media (prefers-reduced-motion:reduce){.artwork,.selected-thumb img,.hero-slide,.gallery-section,.nav-menu,.menu-open .nav-menu,.city-menu,.city-menu.city-open{transition:none;animation:none}}.section-photobook .content{--album-surface:#fafafa;background:#fff}.section-photobook .content:has(.stage-opening){background:var(--album-surface);transition:background-color .55s .45s}.section-photobook .content:has(.album-scene-reader){background:var(--album-surface)}:is(.section-photobook .content:has(.album-return-out),.section-photobook .content:has(.album-return-in)){background:#fff;transition:background-color .22s}.section-photobook .content:has(.album-scene-closing){animation:1.4s both album-close-background}.grid-locked .album-scroll{overflow-y:hidden}@media (max-width:800px),(max-width:1000px) and (max-height:500px){.section-photobook .content{height:auto}}
