@font-face{font-family:PuHui;src:url(/assets/fonts/puhui-light-full.woff2) format("woff2");font-weight:100 900;font-display:swap}:root{font-family:PuHui,Helvetica Neue,sans-serif;font-weight:300;color:#191919;background:#fafafa;font-synthesis:none;font-smooth:always;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;background:#fafafa;transition:background-color .6s ease,color .6s ease}body.page-dark-surface{background:#080808;color:#f9f9f9}body.no-scroll{overflow:hidden}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.25}a{color:inherit;text-decoration:none}button{background:none;border:0}img{display:block;object-fit:cover;max-width:100%}h1,h2,p{margin:0}h1,h2,h3,h4,h5,h6,button,input,textarea,select,a{font-weight:300}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid #919191;outline-offset:6px}.dark{background:#080808;color:#f9f9f9;transition:background-color .6s ease,color .6s ease}.route{min-height:100svh;background:transparent}@keyframes page-in{0%{opacity:.5}to{opacity:1}}.navigation{position:fixed;top:0;left:0;width:100%;z-index:40;padding:clamp(20px,2.4vw,46px) clamp(20px,2.3vw,44px) 12px;background:linear-gradient(#000b,transparent);color:#fff;transform:none;opacity:0;transition:transform .3s ease,opacity .6s ease;pointer-events:auto}.navigation.visible{transform:translateY(0);opacity:1}.navigation.disabled{opacity:0;pointer-events:none}.navigation nav{display:flex;gap:clamp(14px,2.8vw,54px);width:fit-content;pointer-events:auto}.navigation a{border:1px solid #ffffffb0;border-radius:100px;padding:clamp(8px,.8vw,15px) clamp(16px,1.2vw,24px);font-size:clamp(18px,1.88vw,36px);white-space:nowrap;transition:background .2s}.navigation a:hover,.navigation a.active{background:#ffffff36}.nav-hotzone{position:fixed;left:0;right:0;top:100%;height:30px;pointer-events:auto}.navigation.visible .nav-hotzone{top:0}.hero-stage{--hero-blur: 0px;--hero-scale: 1;height:100svh;position:sticky;top:0;background:#080808;overflow:hidden}.hero{display:flex;width:100%;height:100svh;overflow:hidden;filter:blur(var(--hero-blur));transform:scale(var(--hero-scale));transform-origin:center;will-change:filter,transform}.hero-strip{position:relative;min-width:0;padding:0;height:100%;flex-shrink:0;overflow:hidden;transition:flex-basis .6s cubic-bezier(.65,0,.35,1)}.hero-strip img{height:100%;width:100%;max-width:none;object-fit:cover}.color-veil{position:absolute;inset:0;opacity:0;transition:opacity .2s;background:var(--veil)}.hero-strip:hover .color-veil{opacity:1}.hero.expanded .color-veil{opacity:0}.strip-0{--veil: #ff000040}.strip-1{--veil: #ff5e0040}.strip-2{--veil: #ffd00059}.strip-3{--veil: #57ff1440}.strip-4{--veil: #00b6a73b}.strip-5{--veil: #0066ff36}.strip-6{--veil: #5500ff3d}.scroll-cue{position:absolute;bottom:24px;left:50%;color:#fff;mix-blend-mode:difference;font-size:28px;pointer-events:none}.category-panels{position:relative;z-index:2;background:#090909}.category-panel{display:block;position:relative;height:100svh;overflow:hidden}.category-panel>img{width:100%;height:100%;object-fit:cover}.category-caption{position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;padding:0 8vw 8vh;background:radial-gradient(ellipse at bottom right,#000c,#0007 30%,#0000 72%);color:#fff;opacity:0;transition:opacity .3s}.category-panel:has(.category-reveal-zone:hover) .category-caption,.category-panel:focus-visible .category-caption{opacity:1}.category-caption>span{font-size:clamp(68px,6.67vw,128px);line-height:1.4}.category-caption i{height:2px;width:12vw;min-width:110px;background:#fff;margin:14px 0 22px}.category-caption small{font-size:clamp(18px,1.67vw,32px)}.category-caption small span{margin-left:28px}.featured-hero{height:100svh;position:relative;background:#080808}.featured-hero>img{width:100%;height:100%;object-fit:cover}.featured-close{position:absolute!important;right:5vw;top:16vh;color:#fff;background:#0004!important;z-index:42;font-size:32px}.more{background:#0b0b0b;color:#f4f4f4;padding:100px 8vw 0;min-height:100svh}.more.standalone{padding-top:180px}.more-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:55px}.more h1{font-size:clamp(44px,5.5vw,104px);letter-spacing:.04em}.more-heading>span{font-size:14px;color:#aaa;letter-spacing:.08em}.more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:56px 28px;align-items:start}.work-card img{width:100%;height:32vw;max-height:620px;object-fit:cover;transition:filter .3s}.work-card:nth-child(3n+2){padding-top:90px}.work-card:hover img{filter:brightness(1.12)}.work-card>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:18px}.work-card h2{font-size:23px}.work-card span{font-size:13px;color:#999;white-space:nowrap}.end-note{text-align:center;padding:90px 0;color:#777;font-size:13px;letter-spacing:.15em}footer{border-top:1px solid #333;display:flex;justify-content:space-between;padding:30px 0;color:#aaa;font-size:13px}.round{border:1px solid currentColor;border-radius:50%;width:clamp(36px,2.61vw,50px);height:clamp(36px,2.61vw,50px);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s}.round:hover:not(:disabled){background:#8882}.round svg{width:50%;height:60%}.page-controls{display:flex;justify-content:space-between;align-items:center}.page-controls>div{display:flex;gap:18px}.album-page{width:54.67vw;margin-left:auto;margin-right:auto;padding:5vw 0 8vw;min-height:100svh}.album-heading{margin:5vw 0 4vw}.album-heading h1{font-size:clamp(48px,6.67vw,128px);letter-spacing:.04em;line-height:1.3;margin-bottom:20px}.album-heading time{font-size:clamp(20px,2.08vw,40px)}.album-heading p{font-size:clamp(18px,1.67vw,32px);line-height:1.7;max-width:1100px;margin-top:16px;white-space:pre-wrap}.album-images{display:flex;flex-direction:column;gap:26px}.photo-row{display:flex;gap:26px;align-items:flex-start}.photo-row>a{min-width:0;display:block;overflow:hidden}.photo-row img{width:100%;height:auto;background:#8881;transition:filter .25s}.photo-row a:hover img{filter:brightness(1.05)}.photo-detail{min-height:100svh;overflow:visible;padding:6.4vh 5.6vw 9vh;display:grid;grid-template-columns:32% 1fr;gap:3.5vw;align-items:stretch}.photo-info{display:flex;flex-direction:column;min-width:0}.photo-copy{margin-top:10vh}.photo-copy h1{font-size:clamp(34px,4.67vw,90px);line-height:1.28;overflow-wrap:anywhere;font-weight:300}.photo-copy p{font-size:clamp(16px,1.25vw,24px);line-height:1.6;margin-top:25px;white-space:pre-wrap}.photo-meta{margin-top:auto;padding-top:50px;font-size:clamp(13px,1.1vw,21px);line-height:1.7;color:#888}.photo-meta p{margin-top:5px}.photo-display{display:flex;justify-content:flex-end;align-items:center;padding-top:0;min-width:0}.photo-display img{max-height:70vh;width:auto;height:auto;object-fit:contain;max-width:100%}.photo-fullscreen-trigger{display:block;width:fit-content;height:fit-content;max-width:100%;margin-left:auto;padding:0}.album-page,.album-page.dark,.photo-detail,.photo-detail.dark{background:transparent}.photo-fullscreen-trigger img{cursor:zoom-in}.fullscreen-photo{position:fixed;inset:0;z-index:60;overflow:hidden;background:#000000b3}.fullscreen-image{position:absolute;inset:0;width:100%;height:100%;padding:0;display:flex;align-items:center;justify-content:center;cursor:zoom-out}.fullscreen-image img{width:100%;height:100%;object-fit:contain}.fullscreen-controls{position:absolute;top:max(112px,6.4vh);left:5.6vw;z-index:2;display:flex;align-items:center;gap:24px;color:#fff;opacity:0;pointer-events:none;transition:opacity .25s ease}.fullscreen-controls.visible{opacity:1;pointer-events:auto}.fullscreen-controls>div{display:flex;gap:20px;border-left:1px solid currentColor;padding-left:24px}.photo-detail.portrait{grid-template-columns:43% 1fr}.photo-detail.portrait .photo-display{padding-top:0;align-items:center}.photo-detail.portrait .photo-display img{max-height:84vh}.category-detail{height:100svh;overflow:hidden;background:#fff;position:relative;padding-top:1px}.category-top{height:19vh;display:flex;align-items:center;padding:5vh 5.5vw 0;justify-content:space-between;gap:20px}.category-top h1{font-size:clamp(26px,2.08vw,40px);text-align:center}.category-top>span{color:#999;font-size:13px;min-width:40px}.tape-window{height:68vh;outline:none;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.tape-window:active{cursor:grabbing}.photo-tape{display:flex;gap:20px;height:100%;width:max-content;transition:transform .25s cubic-bezier(.2,.8,.2,1);will-change:transform}.tape-item{height:100%;position:relative;flex-shrink:0;background:#eee;overflow:hidden}.tape-item img{height:100%;width:100%;object-fit:cover}.tape-open{position:absolute;bottom:24px;left:50%;transform:translate(-50%);white-space:nowrap;background:#fffd;padding:10px 24px;border-radius:40px;font-size:15px;opacity:0;transition:opacity .2s}.tape-item.current:hover .tape-open,.tape-open:focus-visible{opacity:1}.dial{position:absolute;bottom:0;left:50%;width:182px;height:91px;border-radius:200px 200px 0 0;transform:translate(-50%);background:#b6b6b6a6;transition:width .2s,height .2s;z-index:5;touch-action:none}.dial.open{width:382px;height:191px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dial-toggle{width:100%;height:100%;position:absolute;inset:0;border-radius:inherit}.dial-toggle span{position:absolute;top:18px;left:50%;transform:translate(-50%);color:#fff;font-size:25px}.dial.open .dial-toggle span{opacity:0}.dial-ticks{opacity:0;pointer-events:none;transition:opacity .15s}.dial.open .dial-ticks{opacity:1;pointer-events:auto}.tick{position:absolute;left:calc(50% - 14px);bottom:0;width:28px;height:180px;transform-origin:50% 100%;padding:0;pointer-events:none}.tick i{display:block;position:absolute;top:12px;left:0;width:28px;height:164px;clip-path:polygon(0 0,100% 0,50% 100%);pointer-events:auto}.tick i:after{content:"";display:block;width:2px;height:22px;background:#3338;margin:auto}.tick.selected i:after{background:#fff;height:30px}.tick.preview i:after{background:#fffa;height:26px}.dial-label{position:absolute;bottom:26px;left:50%;transform:translate(-50%);background:#fffd;border-radius:16px;padding:8px 18px;font-size:14px;max-width:70%;white-space:nowrap;pointer-events:none;color:#333}.about{min-height:100svh;display:flex;align-items:center;padding:20vh 9.3vw 12vh;gap:9.2vw}.avatar{width:18.5vw;height:18.5vw;border-radius:50%;object-fit:cover}.about>div{max-width:900px}.about h1{font-weight:400;font-size:clamp(28px,1.88vw,36px);margin-bottom:24px}.about p{font-size:clamp(20px,1.88vw,36px);line-height:1.8;white-space:pre-wrap}.about .about-categories{font-size:16px;color:#777;margin-top:35px}.contact{display:inline-block;margin-top:30px;border-bottom:1px solid #777;padding-bottom:8px}.empty-page,.loading-screen{min-height:100svh;display:grid;place-content:center;gap:28px;text-align:center}.loading-screen{background:#080808;color:#aaa;letter-spacing:.4em}.empty{text-align:center;padding:40px}.text-button{display:block;padding:18px 0;text-decoration:underline;text-underline-offset:6px}.image-failure{display:grid;place-content:center;background:#ddd;color:#555;min-height:160px;width:100%;height:100%;font-size:14px}.admin,.login{max-width:1500px;margin:auto;padding:50px 7vw 100px}.login{max-width:680px;padding-top:15vh}.admin h1,.login h1{font-size:clamp(36px,4vw,70px);margin:40px 0 25px}.login p{margin-bottom:20px;color:#777}.login small{display:block;margin-top:30px;color:#888}.admin button:not(.solid),.upload-controls{font-size:16px}.admin-bar,.admin-actions{display:flex;justify-content:space-between;align-items:center;gap:20px}.admin label,.login label{display:flex;flex-direction:column;gap:12px;font-size:18px}.admin input,.admin textarea,.admin select,.login input{width:100%;border:1px solid #aaa;border-radius:14px;padding:16px;background:transparent;color:inherit;min-width:0}.admin textarea{min-height:130px;resize:vertical}.solid{background:#161616;color:#fff;border:1px solid #161616;border-radius:40px;padding:14px 30px}.login .solid{margin-top:25px}.status{min-height:35px;font-size:15px;color:#755d37}.admin-list{margin:35px 0}.admin-list>button{display:flex;align-items:center;gap:24px;width:100%;border-bottom:1px solid #ddd;padding:16px 0;text-align:left}.admin-list img{width:90px;height:85px;object-fit:cover}.admin-list>button>span:nth-child(2){flex:1;font-size:23px}.admin-list small{display:block;color:#888;font-size:13px;margin-top:8px}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:25px 0 45px}.editor-grid .full{grid-column:1/-1}.upload-controls{margin:24px 0;display:flex;align-items:center;gap:20px}.upload-controls input{width:auto;flex:1}.upload-controls button{border:1px solid #999;border-radius:30px;padding:12px 20px}.photo-editor{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}.photo-editor img{width:100%;height:210px;object-fit:cover;border-radius:10px}.photo-editor article>button{width:100%;padding:10px;border:1px solid #ddd;border-radius:20px;margin:10px 0}.photo-editor .chosen{background:#171717;color:#fff}.photo-editor article>div{display:flex;justify-content:space-between;align-items:center;gap:5px;font-size:14px}.photo-editor article>div button{font-size:13px}.save-bar{display:flex;justify-content:flex-end;gap:30px;padding:30px 0;position:sticky;bottom:0;background:#fafafaf5;margin-top:30px}.profile-editor{margin-top:60px;border-top:1px solid #ccc;padding-top:25px}.profile-editor summary{font-size:24px;cursor:pointer;margin-bottom:25px}.profile-editor label{margin-bottom:24px}.preview-banner{background:#eee;padding:12px 9vw;position:sticky;top:0;z-index:50;display:flex;justify-content:space-between}@media(max-width:900px){.navigation nav{gap:14px}.navigation a{font-size:17px;padding:8px 16px}.more-grid{grid-template-columns:repeat(2,1fr)}.work-card:nth-child(3n+2){padding-top:0}.work-card:nth-child(2n){padding-top:60px}.work-card img{height:48vw}.photo-editor{grid-template-columns:repeat(3,1fr)}.photo-detail{grid-template-columns:34% 1fr;gap:4vw}.photo-copy h1{font-size:42px}.about{gap:10vw}.avatar{width:25vw;height:25vw}}@media(max-width:600px){.category-panel{height:auto;aspect-ratio:16 / 9}.navigation{padding:16px 10px 10px}.navigation nav{gap:7px;justify-content:space-between;width:100%}.navigation a{padding:7px 10px;font-size:14px}.hero{flex-direction:column}.hero-strip{width:100%;height:auto;min-height:0;contain:paint;will-change:flex-basis;transform:translateZ(0);backface-visibility:hidden}.hero-strip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:translateZ(0);backface-visibility:hidden}.hero-strip .color-veil{display:none}.category-caption{opacity:1;padding:0 6vw 5vw;inset:0}.category-caption>span{font-size:42px;line-height:1.2}.category-caption i{width:84px;min-width:0;margin:9px 0 12px}.category-caption small{font-size:14px}.category-caption small span{margin-left:8px}.more{padding:65px 6vw 0}.more-heading{display:block;margin-bottom:35px}.more-heading>span{display:block;margin-top:18px;font-size:12px}.more-grid{gap:28px 14px}.work-card:nth-child(2n){padding-top:35px}.work-card>div{display:block;margin-top:10px}.work-card h2{font-size:18px}.work-card span{font-size:11px}.work-card img{height:60vw}.end-note{padding:65px 0}footer{font-size:11px}.album-page{padding:28px 6vw 50px}.album-heading{margin:45px 0 30px}.album-heading h1{font-size:48px}.album-images,.photo-row{gap:10px}.photo-row{flex-wrap:nowrap}.photo-detail,.photo-detail.portrait{display:flex;flex-direction:column;padding:24px 6vw 45px;gap:24px;min-height:100svh}.photo-info{display:contents}.photo-info .page-controls{order:0}.photo-copy{order:2;margin-top:5px}.photo-copy h1{font-size:36px}.photo-copy p{font-size:16px;margin-top:15px}.photo-display,.photo-detail.portrait .photo-display{order:1;padding-top:14px;justify-content:center}.photo-fullscreen-trigger{margin-left:auto;margin-right:auto}.photo-display img,.photo-detail.portrait .photo-display img{width:auto;max-height:65svh;max-width:100%}.photo-meta{order:3;padding-top:0;margin-top:0;font-size:13px}.category-top{height:19svh;padding:4vh 6vw 0;gap:10px}.category-top h1{font-size:25px}.category-top>span{font-size:11px}.tape-window{height:66svh}.photo-tape{gap:12px}.dial{width:150px;height:75px}.dial.open{width:330px;height:165px}.tick{height:158px}.dial-label{bottom:18px}.tape-open{font-size:13px;padding:8px 16px;opacity:1}.about{flex-direction:column;align-items:flex-start;padding:23vh 10vw 10vh;gap:40px}.avatar{width:44vw;height:44vw}.about h1{font-size:29px}.about p{font-size:21px}.featured-close{top:110px;right:6vw}.admin,.login{padding:30px 6vw 70px}.login{padding-top:15vh}.admin-list>button{gap:12px}.admin-list img{width:65px;height:70px}.admin-list>button>span:nth-child(2){font-size:18px}.admin-list>button>span:last-child{font-size:12px}.editor-grid{grid-template-columns:1fr}.editor-grid .full{grid-column:auto}.photo-editor{grid-template-columns:repeat(2,1fr);gap:14px}.photo-editor img{height:180px}.upload-controls{flex-wrap:wrap}.upload-controls input{width:100%;flex:auto;font-size:13px}.save-bar{gap:18px;font-size:14px}.save-bar .solid{padding:12px 20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.navigation nav{pointer-events:none}.navigation.visible nav{pointer-events:auto}.featured-hero{display:block;width:100%;padding:0;border:0;text-align:inherit;color:inherit}.photo-editor label{font-size:14px;margin-top:14px;gap:7px}.photo-editor input,.photo-editor textarea{font-size:14px;padding:10px;border-radius:9px}.photo-editor textarea{min-height:90px}.category-reveal-zone{position:absolute;inset:50% 0 0;z-index:2}.category-caption{pointer-events:none}.scroll-cue{display:flex;flex-direction:column;align-items:center;gap:10px;transform:translate(-50%);color:#fff;mix-blend-mode:normal;bottom:25px;text-shadow:0 1px 8px #0009;white-space:nowrap}.scroll-cue small{font-size:16px;letter-spacing:.12em}.scroll-cue svg{width:48px;height:28px;filter:drop-shadow(0 1px 4px #0006)}.save-feedback{margin-right:auto;align-self:center;font-size:14px;color:#8a4a27;max-width:50%}@media(max-width:600px){.navigation nav{gap:5px}.navigation a{font-size:12px;padding:7px 8px}.save-bar{flex-wrap:wrap}.save-feedback{max-width:100%;width:100%}.scroll-cue small{font-size:13px}.scroll-cue svg{width:38px;height:24px}}.navigation{width:100%;max-width:100%;padding:14px 16px;display:flex;align-items:center;background:linear-gradient(to bottom,#000000a6,#0000004d 50%,#0000)}.navigation nav{width:100%;align-items:center;justify-content:flex-start;gap:clamp(16px,2.8vw,46px)}.navigation a{font-size:clamp(22px,2vw,32px);line-height:1.15;padding:3px clamp(14px,1.15vw,20px)}.navigation .nav-about{margin-left:auto;flex-shrink:0}.navigation.hover-origin:not(.visible){transition:opacity .6s ease}.category-top{min-height:146px;padding-top:48px}@media(max-width:600px){.navigation{padding:8px}.navigation nav{gap:4px}.navigation a{font-size:13px;line-height:20px;padding:4px 6px}.category-top{padding-top:42px;min-height:108px}}@media(max-width:360px){.navigation nav{gap:3px}.navigation a{font-size:12px;padding:4px}}@media(min-width:901px){.navigation a{font-size:clamp(24px,1.88vw,36px);line-height:1.15;padding:clamp(10px,.8vw,15px) clamp(18px,1.2vw,24px)}.navigation nav{gap:clamp(20px,2.8vw,54px)}.category-top{min-height:166px;padding-top:64px}}@media(min-width:601px)and (max-width:900px){.navigation a{font-size:20px;line-height:1.15;padding:8px 12px}.navigation nav{gap:14px}}@media(min-width:901px){.navigation{padding:20px 26px}.navigation a{font-size:clamp(24px,1.85vw,32px);line-height:1.15;padding:12px 20px}.navigation nav{gap:clamp(26px,3.1vw,54px)}.category-top{min-height:190px;padding-top:64px}}.page-controls{justify-content:flex-start;gap:24px}.page-controls>div{border-left:1px solid currentColor;padding-left:24px;gap:20px}.album-page{padding-top:max(112px,6.4vw)}.photo-detail{padding-top:max(112px,6.4vh)}.dial.open .dial-ticks{opacity:0;pointer-events:none}.dial.open.ticks-ready .dial-ticks{opacity:1;pointer-events:auto}.dial:not(.ticks-ready) .tick i{pointer-events:none}.dial:not(.ticks-ready) .dial-ticks{transition:none}.dial-toggle span{top:50%;transform:translate(-50%,-50%);width:48px;height:28px}.dial-toggle svg{display:block;width:100%;height:100%}.tape-item:hover .tape-open{opacity:1}.work-card:nth-child(n){padding-top:0}@media(max-width:600px){.page-controls{gap:18px}.page-controls>div{padding-left:18px;gap:16px}.album-page,.photo-detail,.photo-detail.portrait{padding-top:74px}.dial-toggle span{width:42px;height:26px}.fullscreen-controls{top:74px;left:20px;gap:16px}.fullscreen-controls>div{gap:12px;padding-left:16px}}@media(max-width:900px){.album-page{width:auto;margin-left:0;margin-right:0}}@media(min-width:901px){.photo-detail.portrait .photo-display img{max-height:calc(91svh - max(112px,6.4vh))}}
