:root{--bg:#fff;--text:#171717;--muted:#737373;--line:#dedede;--safe-bottom:env(safe-area-inset-bottom,0px);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color-scheme:light}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#fff;color:var(--text)}body{display:flex;justify-content:center}button,input,textarea,select{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,[tabindex]:focus-visible{outline:2px solid #171717;outline-offset:5px}button{touch-action:manipulation}.app{width:100%;max-width:720px;position:relative;min-height:100svh}.screen{height:100svh;overflow-y:auto;overflow-x:hidden;padding:0 16px calc(90px + var(--safe-bottom));scrollbar-width:none}.screen::-webkit-scrollbar{display:none}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;background:#fff;position:relative;z-index:10}.brand{border:0;background:transparent;padding:0 4px;font-family:Georgia,serif;font-weight:700;letter-spacing:.13em;font-size:15px;min-height:44px;white-space:nowrap}.brand span{font-family:Arial,sans-serif;font-weight:400;font-size:9px;letter-spacing:.35em;margin-left:8px}.top-link{padding:10px 4px;background:transparent;border:0;min-height:44px;font-size:14px}.home-intro{padding:13px 6px 17px}.home-intro h1{font-size:25px;line-height:1.3;letter-spacing:-.04em;font-weight:700;margin:0 0 9px}.home-intro p{font-size:14px;color:var(--muted);line-height:1.5;margin:0}.home-tabs{display:flex;gap:14px;border-bottom:1px solid var(--line);margin-top:4px;margin-bottom:13px}.home-tabs button{background:transparent;border:0;border-bottom:1px solid transparent;padding:12px 8px 11px;min-height:44px;font-size:15px;color:#757575}.home-tabs button.active{color:#171717;font-weight:600;border-bottom-color:#171717}.home-works{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.work-card{padding:0;border:0;background:transparent;text-align:left;min-width:0}.work-card .photo-frame{aspect-ratio:2/3}.info{display:block;padding:9px 5px 14px}.info strong{font-size:14px;font-weight:500;line-height:1.5;display:block}.all-works{width:100%;min-height:44px;margin:1px 0 13px;padding:13px 0;background:none;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px;font-weight:500}.album-feature{margin:0 -16px 20px}.album-feature-link{padding:0;border:0;background:none;width:100%;text-align:left;display:block}.album-feature .photo-frame{aspect-ratio:var(--photo-ratio,3/2)}.album-feature-info{padding:13px 21px 24px;display:flex;flex-direction:column;gap:5px}.album-feature-info>span{font-size:12px;color:var(--muted)}.album-feature-info strong{font-size:21px;line-height:1.4;font-weight:600}.photo-frame{position:relative;width:100%;overflow:hidden;background:#f4f3f1;aspect-ratio:var(--photo-ratio,2/3);isolation:isolate}.photo-image{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:contain;object-position:center;opacity:0;transition:opacity .15s}.photo-frame.is-loaded .photo-image{opacity:1}.photo-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#656565;font-size:12px;padding:10px;text-align:center}.photo-frame.is-loaded .photo-status{display:none}.photo-frame.is-failed .photo-status{padding-bottom:50px}.photo-retry{position:absolute;top:50%;left:50%;transform:translate(-50%,10px);border:1px solid #bcbcbc;background:#fff;padding:10px 12px;font-size:12px;min-height:44px;white-space:nowrap}.photo-retry[hidden]{display:none}.bottom-nav{position:fixed;z-index:50;bottom:0;left:50%;transform:translateX(-50%);width:min(720px,100%);height:calc(56px + var(--safe-bottom));padding:0 16px var(--safe-bottom);display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #e4e4e4;background:#fff}.nav-btn{border:0;background:none;position:relative;display:flex;justify-content:center;align-items:center;font-size:14px;color:#707070;min-height:44px}.nav-btn.active{font-weight:650;color:#171717}.nav-btn.active span{padding:13px 0 11px;border-bottom:2px solid #171717}.page-title{padding:20px 5px 21px}.eyebrow{font-size:10px;letter-spacing:.16em;color:#777;margin-bottom:9px}.page-title h1{font-size:28px;font-weight:700;line-height:1.3;margin:0}.page-title p{font-size:14px;line-height:1.7;color:#737373;margin:10px 0 0}.chips{display:flex;gap:12px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:20px;scrollbar-width:none}.chip{border:0;border-bottom:2px solid transparent;background:none;white-space:nowrap;padding:12px 5px;min-height:44px;font-size:14px;color:#737373}.chip.active{color:#171717;border-bottom-color:#171717;font-weight:600}.works-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 10px;align-items:start}.tile{border:0;background:none;min-width:0;cursor:pointer}.tile.is-landscape{grid-column:1/-1}.tile-info{padding:10px 4px 0;display:flex;flex-direction:column;gap:6px}.tile-info strong{font-size:14px;font-weight:500;line-height:1.5}.tile-info span{font-size:12px;color:#737373}.album-card{display:grid;grid-template-columns:105px minmax(0,1fr);gap:18px;padding:16px 0;border-bottom:1px solid var(--line);cursor:pointer}.album-card .photo-frame{height:132px;aspect-ratio:auto}.album-card h3{font-size:16px;font-weight:600;line-height:1.5;margin:3px 0 7px;overflow-wrap:anywhere}.album-card p{font-size:12px;line-height:1.65;color:#737373;margin:4px 0}.package{padding:24px 5px;border-top:1px solid var(--line);margin-bottom:12px}.package-head{display:flex;justify-content:space-between;align-items:start;gap:16px}.package h3{font-size:20px;line-height:1.4;font-weight:600;margin:0}.price{font-size:22px;font-weight:600;white-space:nowrap}.features{padding-left:19px;margin:20px 0;color:#646464;font-size:14px;line-height:1.9}.tier{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:14px 0;font-size:14px}.btn{border:1px solid #171717;background:#171717;color:#fff;padding:12px 20px;min-height:44px;font-size:14px;font-weight:500;border-radius:0}.btn.secondary{background:#fff;color:#171717}.package .btn{width:100%}.modal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.5);display:none;align-items:center;justify-content:center}.modal.show{display:flex}.sheet{width:min(720px,100%);max-height:100svh;overflow-y:auto;background:#fff;padding-bottom:calc(20px + var(--safe-bottom));position:relative}.sheet-close{position:sticky;top:12px;float:right;z-index:10;margin:12px 12px -56px 0;min-width:52px;min-height:44px;border:1px solid #d8d8d8;background:rgba(255,255,255,.96);font-size:13px}.sheet-hero .photo-frame{aspect-ratio:var(--photo-ratio,2/3)}.sheet-body{padding:24px 20px}.sheet-body h2{font-size:25px;line-height:1.4;margin:0 0 12px}.sheet-body p{font-size:14px;line-height:1.8;color:#686868}.gallery{display:flex;flex-direction:column;gap:20px;margin-top:25px}.gallery .photo-frame{aspect-ratio:var(--photo-ratio,2/3)}.fav{border:1px solid var(--line);background:#fff;padding:11px 14px;font-size:14px;min-height:44px}.fav.on{border-color:#171717}.form-card{padding:5px}.field{margin-bottom:20px}.field label{display:block;font-size:14px;margin-bottom:8px}.field input,.field select,.field textarea{width:100%;padding:13px 12px;font-size:16px;background:#fff;border:1px solid #b7b7b7;color:#171717;border-radius:0}.field textarea{min-height:110px;resize:vertical}.form-msg{margin-top:16px;font-size:14px;line-height:1.7}.form-msg.ok{color:#2d633a}.form-msg.warn{color:#795420}.empty,.loading{text-align:center;padding:45px 12px;color:#737373;font-size:14px;line-height:1.8}.loading-skeleton{display:grid;grid-template-columns:1fr 1fr;gap:10px}.loading-skeleton>div{aspect-ratio:2/3;background:#f3f3f3}.loading-skeleton>div:last-child{display:none}.splash{display:none}.toast{position:fixed;z-index:150;left:50%;top:25px;transform:translateX(-50%);background:#171717;color:#fff;padding:12px 16px;font-size:14px;opacity:0;pointer-events:none;transition:opacity .15s;max-width:90%}.toast.show{opacity:1}@media(min-width:700px){.screen{padding-left:32px;padding-right:32px}.topbar{height:82px}.home-intro{padding-top:25px;padding-bottom:30px}.home-intro h1{font-size:38px}.home-intro p{font-size:17px}.home-tabs{margin-bottom:20px}.home-works{gap:18px}.info{padding:13px 5px 22px}.info strong{font-size:17px}.all-works{margin-bottom:24px;padding:18px;font-size:16px}.album-feature{margin-left:-32px;margin-right:-32px}.album-feature-info{padding:20px 37px 30px}.bottom-nav{height:calc(68px + var(--safe-bottom))}.sheet{max-height:94svh}.works-grid{gap:28px 20px}.album-card{grid-template-columns:150px 1fr}.album-card .photo-frame{height:180px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media(max-width:699px){.topbar{height:48px}.home-intro{padding:5px 6px 0}.home-intro h1{font-size:23px;line-height:1.3;margin-bottom:6px}.home-tabs{margin-top:0;margin-bottom:10px}.home-tabs button{padding-top:9px;padding-bottom:9px}}
/* A compact album preview preserves the whole landscape photograph inside its slot. */
.album-feature .photo-frame{aspect-ratio:2.25;background:#fff}.album-feature-info strong{font-size:18px}.album-feature-info{padding-bottom:16px}
@media(max-width:699px){.album-feature .photo-frame{aspect-ratio:2.5}.album-feature-info{padding-top:10px}.all-works{margin-bottom:10px}}

/* Detail quality revision: natural composition, restrained native-size display. */
.detail-sheet{max-height:100svh;padding:0}.detail-bar{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.97);border-bottom:1px solid #eee;display:flex;align-items:center;justify-content:space-between;padding:8px 16px;gap:12px;font-size:12px;color:#737373}.detail-bar .sheet-close{position:static;float:none;margin:0;border:0;background:none;font-size:14px;min-width:44px}.detail-intro{padding:30px 24px 22px}.detail-intro h2{font-size:28px;line-height:1.35;margin:0 0 12px;overflow-wrap:anywhere}.detail-intro p{margin:10px 0;line-height:1.85}.detail-meta{font-size:13px;color:#777}.detail-description{font-size:16px;color:#454545;white-space:pre-wrap;overflow-wrap:anywhere}.detail-hint{font-size:12px;color:#777}.detail-gallery{margin:0;gap:28px}.detail-frame{margin:0}.detail-photo-link{cursor:zoom-in;background:#fafafa}.detail-photo{max-width:var(--native-width,100%);margin-inline:auto;background:#fafafa}.detail-frame figcaption{display:flex;justify-content:space-between;gap:12px;padding:12px 20px;font-size:11px;color:#777}.detail-actions{position:sticky;bottom:0;display:flex;gap:12px;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid #eee;z-index:9}.detail-actions .btn{flex:1}.detail-actions .fav{min-width:100px}.photo-viewer{position:fixed;inset:0;z-index:200;background:#111;color:#fff;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.photo-viewer header,.photo-viewer footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;flex-shrink:0;font-size:12px}.photo-viewer button{min-height:44px;border:1px solid #666;background:#222;color:#fff;padding:8px 14px}.photo-viewer button:focus-visible{outline:2px solid #fff}.photo-viewer button:disabled{opacity:.4}.viewer-stage{flex:1;min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center}.viewer-stage img{display:block;max-width:min(100%,var(--image-width));max-height:100%;object-fit:contain;flex-shrink:0}.viewer-stage.actual-size{display:block}.viewer-stage.actual-size img{max-width:none;max-height:none;width:var(--image-width);height:auto;margin:0 auto}.viewer-error{text-align:center;color:#fff}.photo-viewer footer>span{color:#aaa}@media(min-width:700px){.detail-intro{padding:40px 32px 28px}.detail-intro h2{font-size:34px}.detail-description{font-size:17px}.detail-frame figcaption{padding:14px 32px}.detail-actions{padding-left:32px;padding-right:32px}}

/* White editorial homepage, scoped to preserve gallery and details. */
.home-editorial{margin:0 -16px;background:#fff;color:#171717}.home-editorial .topbar{padding:0 23px;height:64px}.home-masthead{padding:20px 36px 17px}.home-masthead h1{font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-weight:400;font-size:clamp(39px,10.4vw,58px);line-height:1.22;letter-spacing:.015em;margin:0 0 12px}.home-masthead p{font-family:Georgia,serif;font-size:10px;letter-spacing:.34em;line-height:1.9;margin:0}.home-hero{cursor:pointer}.home-hero .photo-frame{aspect-ratio:1.13}.home-hero .photo-image{object-fit:cover;object-position:center 47%}.home-action{text-align:center;padding:13px 24px 21px}.home-primary{border:1px solid #555;border-radius:999px;background:#fff;min-height:44px;padding:8px 35px;font-family:"Songti SC","STSong",serif;font-size:18px;letter-spacing:.14em}.home-primary span{margin-left:10px}.home-stories{padding:0 23px}.home-story-heading{display:flex;align-items:center;gap:15px;margin-bottom:12px}.home-story-heading h2{margin:0;font-family:"Songti SC","STSong",serif;font-size:20px;font-weight:400;white-space:nowrap}.home-rule{height:1px;background:#bcbcbc;flex:1}.home-story-heading button{font-size:12px;min-height:44px;border:0;background:none;padding:0;white-space:nowrap}.home-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px;align-items:start;padding:14px 3px 22px}.home-story{display:block;margin:0;cursor:pointer;min-width:0}.home-mat{padding:13px;border:1px solid #e5e5e2;background:#fff}.home-story:nth-child(even){margin-top:26px}.home-story .photo-frame{aspect-ratio:var(--photo-ratio,2/3)}.home-story .photo-image{object-fit:contain;object-position:center}.home-story-caption{display:flex;flex-direction:column;gap:4px;padding-top:10px}.home-story-caption strong{font-size:14px;font-weight:500}.home-story-caption span{font-size:12px;color:#737373}.home-album-entry{margin:6px 23px 20px;width:calc(100% - 46px);display:flex;justify-content:space-between;align-items:center;border:0;border-top:1px solid #dedede;background:#fff;min-height:66px;font-size:14px}.home-album-entry span:last-child{font-size:12px;color:#737373}@media(min-width:600px){.home-masthead{padding:32px 44px 26px}.home-editorial .topbar{padding:0 32px}.home-hero .photo-frame{aspect-ratio:1.4}.home-stories{padding:0 32px}.home-action{padding:22px 24px 28px}}

.contact-page{padding:22px 8px 30px;max-width:440px;margin:auto}.contact-page h1{font-family:"Songti SC","STSong",serif;font-weight:400;font-size:32px;line-height:1.35;margin:8px 0 12px}.contact-lead{font-size:15px;line-height:1.7;color:#737373;margin:0 0 20px}.contact-qr{margin:0 auto 26px;max-width:340px}.contact-qr img{width:100%;height:auto;display:block;object-fit:contain}.contact-qr figcaption{font-size:13px;line-height:1.7;text-align:center;color:#737373;margin:12px 0 0}.contact-phone{border-top:1px solid #dedede;padding-top:23px;display:flex;flex-direction:column;align-items:center;gap:12px}.contact-phone>span{font-size:13px;color:#737373}.contact-phone input{border:0;background:#fff;color:#171717;font-size:25px;font-family:Georgia,serif;letter-spacing:.06em;text-align:center;width:100%;padding:4px}.contact-copy{background:#fff;color:#171717;border:1px solid #555;border-radius:999px;font-size:15px;min-height:44px;padding:10px 28px}#contactCopyStatus{min-height:24px;margin:0;font-size:13px;line-height:1.6;text-align:center;color:#737373}
