:root{
  --purple:#2f1ab8;
  --purple-strong:#2f1ab8;
  --line:rgba(37,36,95,.16);
  --line-soft:rgba(37,36,95,.08);
  --muted:#9a9a9a;
  --text-muted:#6b6b6b;
  --bg:#fff;
  --soft:#fafafa;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html{scroll-behavior:auto}
html,body{margin:0;background:var(--bg);color:var(--purple);font-family:Helvetica,Arial,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision;font-weight:400}
body{min-height:100vh;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:100%;object-fit:cover}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
::selection{background:rgba(48,53,141,.12)}

#app{min-height:100vh;transition:opacity .24s var(--ease),filter .24s var(--ease);opacity:1}.fade{opacity:0!important;filter:blur(2px)}
.site-compliance-footer{padding:12px 24px 20px;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;text-align:center;font-size:10px;line-height:1.5;letter-spacing:.02em;color:rgba(37,36,95,.42)}
.site-compliance-footer a{transition:opacity .2s var(--ease)}
.site-compliance-footer a:hover{opacity:.55}
.site-compliance-separator{opacity:.7}
.public-security-filing{display:inline-flex;align-items:center;gap:4px}
.public-security-filing img{display:block;width:13px;height:auto;object-fit:contain}
.route-back{position:fixed;left:22px;top:18px;z-index:100;font-size:12px;line-height:1;color:var(--purple);opacity:0;pointer-events:none;transform:translateY(-3px);transition:opacity .2s var(--ease),transform .2s var(--ease)}
.route-back.is-visible{opacity:.72;pointer-events:auto;transform:translateY(0)}
.route-back:hover{opacity:1}
.edit-tip{position:fixed;left:20px;bottom:18px;font-size:10px;letter-spacing:.02em;color:rgba(37,36,95,.28);z-index:20;pointer-events:none}
.home{min-height:100vh;padding:38px 38px 72px;display:grid;grid-template-rows:auto 1fr auto;position:relative}
.home-header{grid-row:1;display:grid;grid-template-columns:1fr 1.18fr 1.55fr 1fr;column-gap:26px;align-items:start;font-size:15.5px;line-height:1.38;letter-spacing:-.018em}
.home-header .cn,.home-header .en{font-size:16.5px;line-height:1.45}.home-header .email{text-align:right;line-height:1.28;transition:opacity .22s var(--ease)}.home-header .email:hover{opacity:.48}.home-mark{width:max-content;cursor:default}
.home-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center}
.home-img{width:min(31vw,360px);min-width:280px;aspect-ratio:4/3;overflow:hidden;display:block;cursor:default;position:relative}.home-img-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;visibility:hidden;transition:none!important}.home-img-layer.is-active{visibility:visible}
.home-caption{margin-top:17px;font-size:18.5px;letter-spacing:-.025em}.home-nav{grid-row:3;width:100%;display:grid;grid-template-columns:repeat(3,1fr);text-align:center;font-size:19px;line-height:1.25;letter-spacing:-.025em}.home-nav a{display:inline-flex;gap:.35em;justify-content:center;transition:opacity .25s var(--ease),transform .25s var(--ease)}.home-nav a:hover{opacity:.45;transform:translateY(-1px)}
.home-static .home-anim{opacity:1;filter:none;transform:none}
.home-intro .home-anim{opacity:0;filter:blur(5px);will-change:opacity,transform,filter}
.home-intro .home-anim-mark{animation:homeTextMark .82s var(--ease) .18s forwards}
.home-intro .home-anim-cn{animation:homeTextCn .92s var(--ease) .34s forwards}
.home-intro .home-anim-en{animation:homeTextEn .88s var(--ease) .26s forwards}
.home-intro .home-anim-email{animation:homeTextEmail .84s var(--ease) .46s forwards}
.home-intro .home-anim-nav-1{animation:homeTextNavOne .76s var(--ease) .72s forwards}
.home-intro .home-anim-nav-2{animation:homeTextNavTwo .84s var(--ease) .84s forwards}
.home-intro .home-anim-nav-3{animation:homeTextNavThree .8s var(--ease) .96s forwards}

@keyframes homeTextMark{
  0%{opacity:0;filter:blur(5px);transform:translate(-22px,-8px)}
  100%{opacity:1;filter:blur(0);transform:translate(0,0)}
}
@keyframes homeTextCn{
  0%{opacity:0;filter:blur(5px);transform:translate(-10px,24px)}
  100%{opacity:1;filter:blur(0);transform:translate(0,0)}
}
@keyframes homeTextEn{
  0%{opacity:0;filter:blur(5px);transform:translate(18px,-20px)}
  100%{opacity:1;filter:blur(0);transform:translate(0,0)}
}
@keyframes homeTextEmail{
  0%{opacity:0;filter:blur(5px);transform:translate(26px,6px)}
  100%{opacity:1;filter:blur(0);transform:translate(0,0)}
}
@keyframes homeTextNavOne{
  0%{opacity:0;filter:blur(5px);transform:translate(-14px,22px)}
  100%{opacity:1;filter:blur(0);transform:translate(0,0)}
}
@keyframes homeTextNavTwo{
  0%{opacity:0;filter:blur(5px);transform:translate(0,30px)}
  100%{opacity:1;filter:blur(0);transform:translate(0,0)}
}
@keyframes homeTextNavThree{
  0%{opacity:0;filter:blur(5px);transform:translate(16px,18px)}
  100%{opacity:1;filter:blur(0);transform:translate(0,0)}
}
@media (prefers-reduced-motion: reduce){
  .home-intro .home-anim{animation:none!important;opacity:1;filter:none;transform:none}
}


.section-page-title{font-size:30px;line-height:1.1;font-weight:400;letter-spacing:-.03em;margin:0}.page{width:min(1328px,calc(100vw - 136px));margin:0 auto;padding:46px 0 118px}.page-title{transform:translateX(min(0px,calc(732px - 50vw)))}.tiny-note{color:var(--muted);font-size:12px;letter-spacing:.02em;margin-top:4px}

.photo-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:30px}.photo-layout-unit{margin-bottom:58px}.photo-layout-unit:last-child{margin-bottom:0}.photo-grid{display:grid;column-gap:31px;row-gap:58px;align-items:start}.photo-grid-opening{grid-template-columns:145px 145px 145px 246px 246px 246px;grid-template-rows:145px 145px;margin-bottom:58px}.photo-grid-opening-mirror{grid-template-columns:246px 246px 246px 145px 145px 145px}.photo-grid-lower{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:51px;row-gap:64px;margin-top:4px}.photo-card{display:block;transition:opacity .22s var(--ease),transform .22s var(--ease)}.photo-card:hover{opacity:.74;transform:translateY(-2px)}.thumb{background:var(--soft);border:1px solid var(--line);overflow:hidden}.thumb img{transition:transform .8s var(--ease)}.photo-card:hover img,.design-card:hover img,.video-item:hover img{transform:scale(1.018)}.square .thumb{aspect-ratio:1/1}.lower-wide .thumb{aspect-ratio:569/379}.photo-grid-opening .portrait{align-self:stretch}.photo-grid-opening .portrait .thumb{height:100%;aspect-ratio:auto}.photo-grid-opening .slot-g{grid-column:4;grid-row:1 / span 2}.photo-grid-opening .slot-h{grid-column:5;grid-row:1 / span 2}.photo-grid-opening .slot-i{grid-column:6;grid-row:1 / span 2}.photo-grid-opening-mirror .slot-g{grid-column:1;grid-row:1 / span 2}.photo-grid-opening-mirror .slot-h{grid-column:2;grid-row:1 / span 2}.photo-grid-opening-mirror .slot-i{grid-column:3;grid-row:1 / span 2}.photo-grid-opening-mirror .slot-a{grid-column:4;grid-row:1}.photo-grid-opening-mirror .slot-b{grid-column:5;grid-row:1}.photo-grid-opening-mirror .slot-c{grid-column:6;grid-row:1}.photo-grid-opening-mirror .slot-d{grid-column:4;grid-row:2}.photo-grid-opening-mirror .slot-e{grid-column:5;grid-row:2}.photo-grid-opening-mirror .slot-f{grid-column:6;grid-row:2}.portrait .thumb{aspect-ratio:246/367}.wide{grid-column:span 2}.wide .thumb{aspect-ratio:371/249}.caption{margin-top:8px;font-size:11px;line-height:1.2;letter-spacing:-.01em}.placeholder{background:linear-gradient(135deg,#fbfbfb,#f6f6f6);position:relative}.placeholder:after{content:"";position:absolute;inset:50% auto auto 50%;width:38%;height:1px;background:var(--line-soft);transform:translate(-50%,-50%)}

.caption-meta{margin-top:4px;font-size:10px;line-height:1.25;color:#999999;letter-spacing:-.005em}
.photo-series-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:31px;row-gap:58px;align-items:start}
.photo-series-card{display:block}
.photo-series-card .thumb{width:100%}
.photo-series-card.series-slot-a{grid-column:span 4}
.photo-series-card.series-slot-a .thumb{aspect-ratio:4/3}
.photo-series-card.series-slot-b{grid-column:span 2}
.photo-series-card.series-slot-b .thumb{aspect-ratio:246/367}
.photo-series-card.series-slot-c{grid-column:span 2}
.photo-series-card.series-slot-c .thumb{aspect-ratio:246/367}
.photo-series-card.series-slot-d{grid-column:span 4}
.photo-series-card.series-slot-d .thumb{aspect-ratio:4/3}
.photo-series-card.series-slot-e{grid-column:span 3}
.photo-series-card.series-slot-e .thumb{aspect-ratio:569/379}

.series-cover{margin:0;width:100%;background:#f7f7f7;border:1px solid var(--line);overflow:hidden}
.series-cover img{width:100%;height:auto;object-fit:contain}
.series-cover figcaption,.series-frame figcaption{margin-top:8px;font-size:10px;line-height:1;color:#999999;letter-spacing:-.005em}
.series-flow{margin-top:68px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:36px;row-gap:58px;align-items:start}
.series-frame{margin:0;background:#f7f7f7;border:1px solid var(--line);overflow:hidden}
.series-frame img{width:100%;height:auto;object-fit:contain}
.series-frame.is-landscape{grid-column:span 7}
.series-frame.is-portrait{grid-column:span 5}
.series-frame.is-square{grid-column:span 5}
.series-flow .series-frame:nth-child(3n+1).is-landscape{grid-column:span 12}
.series-flow .series-frame:nth-child(4n+2).is-portrait{grid-column:2 / span 5}

.video{width:100%;height:100vh;padding:46px 38px 48px;overflow:hidden}.video-title{margin-left:30px}.video-gallery{position:relative;margin-top:88px;width:100%;height:calc(100vh - 206px);min-height:0;display:flex;align-items:center}.video-track-viewport{width:100%;overflow:hidden;cursor:default;outline:0;touch-action:pan-y;overscroll-behavior:none}.video-track{width:max-content;display:flex;align-items:center;gap:42px;padding:0 calc((100vw - 76px - 420px) / 2);will-change:transform;transform:translate3d(0,0,0)}.video-slide-item{display:block;flex:0 0 auto;transition:opacity .25s var(--ease),transform .25s var(--ease)}.video-slide-item:hover{opacity:.78;transform:translateY(-2px)}.video-slide-item.is-poster{width:230px}.video-slide-item.is-wide{width:420px}.video-thumb.is-poster{width:100%;aspect-ratio:260/370}.video-thumb.is-wide{width:100%;aspect-ratio:470/270}.video-caption{margin-top:14px;font-size:15px;line-height:1.12;letter-spacing:-.025em}.video-meta{margin-top:5px;font-size:11px;color:var(--muted);letter-spacing:-.01em}.video-loop-arrow{position:fixed;bottom:38px;z-index:20;font-size:18px;line-height:1;color:var(--purple);opacity:.7;transition:opacity .2s var(--ease),transform .2s var(--ease)}.video-loop-arrow:hover{opacity:1;transform:translateY(-1px)}.video-loop-arrow-left{left:72px}.video-loop-arrow-right{right:72px}

.design{width:100%;min-height:100vh;padding:40px 0 120px}.design-title{position:fixed;top:46px;left:68px;z-index:10}.design-stream{width:410px;margin:0 auto;display:flex;flex-direction:column;gap:48px}.design-card{display:block;transition:opacity .25s var(--ease),transform .25s var(--ease)}.design-card:hover{opacity:.8;transform:translateY(-2px)}.design-thumb{width:100%;background:#f7f7f7;overflow:hidden;border:1px solid var(--line)}.design-meta{margin-top:10px;display:flex;justify-content:space-between;gap:18px;font-size:10.5px;line-height:1.25;color:var(--purple);letter-spacing:-.01em}.design-desc{margin-top:8px;font-size:11px;line-height:1.42;color:var(--text-muted);letter-spacing:-.01em}

.video-detail{min-height:100vh;width:min(1180px,calc(100vw - 136px));margin:0 auto;padding:46px 0 120px}.video-detail-nav{margin-bottom:54px}.video-detail-header{margin-bottom:34px}.video-detail-title{font-size:30px;font-weight:400;letter-spacing:-.035em;margin:0 0 8px}.video-detail-english-title{margin:0;color:var(--muted);font-size:13px;line-height:1.4}.video-player-shell{position:relative;width:100%;aspect-ratio:16/9;background:#f6f6f6;border:1px solid var(--line);overflow:hidden}.video-player{position:absolute;inset:0;width:100%;height:100%;display:none;background:#000}.video-player.is-visible{display:block}.video-player-placeholder{position:absolute;inset:0;background:#f7f7f7}.video-player-placeholder.is-hidden{display:none}.video-player-placeholder img{width:100%;height:100%;object-fit:contain}.video-player-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.06)}.video-play-button{font-size:14px;letter-spacing:.02em;color:var(--purple);background:rgba(255,255,255,.88);border:1px solid rgba(47,26,184,.16);padding:12px 22px;transition:opacity .2s var(--ease),transform .2s var(--ease)}.video-play-button:hover{opacity:.72;transform:translateY(-1px)}.video-missing-copy{max-width:480px;padding:24px;text-align:center;color:var(--muted);font-size:12px;line-height:1.65;background:rgba(255,255,255,.82)}.video-missing-copy span,.video-missing-copy strong{display:block}.video-missing-copy strong{margin-top:4px;color:var(--purple);font-weight:400}.video-detail-info{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(240px,.6fr);gap:80px;margin-top:46px}.video-detail-description{margin:0;max-width:640px;color:#666;font-size:14px;line-height:1.7;white-space:pre-line}.video-credit-list{margin:0}.video-credit-list div{display:grid;grid-template-columns:86px 1fr;gap:18px;padding:7px 0;border-bottom:1px solid var(--line-soft);font-size:11px;line-height:1.4}.video-credit-list dt{color:var(--muted)}.video-credit-list dd{margin:0;color:var(--purple)}

.detail{min-height:100vh;width:min(1060px,calc(100vw - 120px));margin:0 auto;padding:68px 0 120px}.detail-nav{display:flex;justify-content:flex-end;align-items:flex-start;margin-bottom:78px}.detail-back{font-size:13px;display:inline-block}.detail-pager{display:flex;gap:18px;align-items:center;font-size:11px;color:rgba(37,36,95,.58)}.detail-pager a{transition:opacity .2s}.detail-pager a:hover{opacity:.5}.detail-title{font-size:38px;font-weight:400;letter-spacing:-.035em;margin:0 0 28px}.detail-meta{font-size:13px;line-height:1.5;color:rgba(37,36,95,.72);margin-bottom:42px}.detail-hero{width:100%;aspect-ratio:16/9;background:#f7f7f7;border:1px solid var(--line);overflow:hidden}.detail-text{margin-top:52px;max-width:560px;color:#666;font-size:14px;line-height:1.65}.detail-next{margin-top:78px;font-size:16px;display:inline-block;transition:opacity .2s}.detail-next:hover{opacity:.52}

@media(max-width:900px){.route-back{left:16px;top:14px}.edit-tip{display:none}.home{padding:26px 24px 56px;display:block;position:static}.home-header{grid-template-columns:1fr;row-gap:16px;font-size:14px}.home-header .cn,.home-header .en{font-size:15px}.home-header .email{text-align:left}.home-center{position:static;margin-top:92px;transform:none}.home-img{width:min(340px,68vw);min-width:0}.home-nav{grid-row:auto;margin-top:92px;grid-template-columns:1fr;row-gap:20px;font-size:18px}.page{width:calc(100vw - 48px);padding-top:58px}.page-title{transform:none}.photo-head{margin-bottom:36px;gap:24px}.photo-layout-unit{margin-bottom:64px}.photo-grid,.photo-grid-opening,.photo-grid-opening-mirror,.photo-grid-lower{grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:34px 24px}.photo-grid-lower{column-gap:24px;row-gap:42px}.photo-grid-opening .portrait{grid-column:auto;grid-row:auto;align-self:start}.photo-grid-opening-mirror .slot-a,.photo-grid-opening-mirror .slot-b,.photo-grid-opening-mirror .slot-c,.photo-grid-opening-mirror .slot-d,.photo-grid-opening-mirror .slot-e,.photo-grid-opening-mirror .slot-f,.photo-grid-opening-mirror .slot-g,.photo-grid-opening-mirror .slot-h,.photo-grid-opening-mirror .slot-i{grid-column:auto;grid-row:auto}.photo-grid-opening .portrait .thumb{height:auto;aspect-ratio:246/367}.wide{grid-column:span 2}.photo-spacer{display:none}.video{height:100vh;padding:58px 24px 40px}.video-title{margin-left:0}.video-gallery{margin-top:42px;height:calc(100vh - 188px);min-height:0}.video-track{gap:32px;padding:0 calc((100vw - 48px - 320px) / 2)}.video-slide-item.is-poster{width:180px}.video-slide-item.is-wide{width:320px}.video-loop-arrow{bottom:28px}.video-loop-arrow-left{left:32px}.video-loop-arrow-right{right:32px}.design{padding-top:58px}.design-title{position:static;margin:0 0 30px 24px}.design-stream{width:calc(100vw - 48px);gap:42px}.video-detail{width:calc(100vw - 48px);padding:58px 0 96px}.video-detail-header{display:block;margin-bottom:26px}.video-detail-index{margin-top:14px}.video-detail-title{font-size:32px}.video-detail-info{grid-template-columns:1fr;gap:34px;margin-top:34px}.detail{width:calc(100vw - 48px);padding-top:56px}.detail-nav{display:block;margin-bottom:62px}.detail-pager{margin-top:18px}.detail-title{font-size:32px}}

.home-img img{transition:none!important}

@media(max-width:900px){
  .photo-series-grid{grid-template-columns:1fr 1fr;gap:42px 24px}
  .photo-series-card.series-slot-a,
  .photo-series-card.series-slot-b,
  .photo-series-card.series-slot-c,
  .photo-series-card.series-slot-d,
  .photo-series-card.series-slot-e{grid-column:span 2}
  .photo-series-card.series-slot-a .thumb,
  .photo-series-card.series-slot-d .thumb,
  .photo-series-card.series-slot-e .thumb{aspect-ratio:4/3}
  .photo-series-card.series-slot-b .thumb,
  .photo-series-card.series-slot-c .thumb{aspect-ratio:4/3}
  .series-flow{grid-template-columns:1fr;gap:42px;margin-top:48px}
  .series-frame.is-landscape,
  .series-frame.is-portrait,
  .series-frame.is-square,
  .series-flow .series-frame:nth-child(3n+1).is-landscape,
  .series-flow .series-frame:nth-child(4n+2).is-portrait{grid-column:auto}
}

/* v2.9.31 — Photography mixed series/single layout */
.photo-mixed-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:28px;row-gap:52px;align-items:start}
.photo-mix-card{display:block}
.photo-mix-card .thumb{width:100%}
.photo-mix-card.is-series .caption{margin-top:10px}
.photo-mix-card.is-single .caption{margin-top:8px}
.photo-mix-card.mix-series-a{grid-column:span 7}
.photo-mix-card.mix-series-a .thumb{aspect-ratio:4/3}
.photo-mix-card.mix-series-b{grid-column:span 5}
.photo-mix-card.mix-series-b .thumb{aspect-ratio:246/367}
.photo-mix-card.mix-series-c{grid-column:2 / span 8}
.photo-mix-card.mix-series-c .thumb{aspect-ratio:16/10}
.photo-mix-card.mix-single-a{grid-column:span 3}
.photo-mix-card.mix-single-b{grid-column:span 4}
.photo-mix-card.mix-single-c{grid-column:span 3}
.photo-mix-card.mix-single-d{grid-column:span 2}
.photo-mix-card.mix-single-e{grid-column:span 4}
.photo-mix-card.is-single.orientation-portrait .thumb{aspect-ratio:3/4}
.photo-mix-card.is-single.orientation-landscape .thumb{aspect-ratio:4/3}
.photo-mix-card.is-single.orientation-square .thumb{aspect-ratio:1/1}
.photo-mix-card.is-series.orientation-portrait .thumb{aspect-ratio:4/5}
.photo-mix-card.is-series.orientation-landscape .thumb{aspect-ratio:4/3}
.detail-single-photo .detail-hero{background:#f7f7f7;border:1px solid var(--line)}
.detail-single-photo .detail-hero img{object-fit:contain}
.detail-single-photo .detail-hero.orientation-portrait{max-width:min(54vw,620px);margin-left:auto;margin-right:auto}
.detail-single-photo .detail-hero.orientation-landscape{max-width:min(76vw,980px)}
.detail-single-photo .detail-hero.orientation-square{max-width:min(58vw,680px);margin-left:auto;margin-right:auto}
@media(max-width:900px){
  .photo-mixed-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 24px}
  .photo-mix-card.mix-series-a,.photo-mix-card.mix-series-b,.photo-mix-card.mix-series-c,.photo-mix-card.mix-single-a,.photo-mix-card.mix-single-b,.photo-mix-card.mix-single-c,.photo-mix-card.mix-single-d,.photo-mix-card.mix-single-e{grid-column:span 2}
  .photo-mix-card.is-series .thumb,.photo-mix-card.is-single .thumb{aspect-ratio:4/3}
  .detail-single-photo .detail-hero,.detail-single-photo .detail-hero.orientation-portrait,.detail-single-photo .detail-hero.orientation-landscape,.detail-single-photo .detail-hero.orientation-square{max-width:none}
}


/* v2.9.32 — viewport-aware photography sizing */
.page-photography{padding-bottom:96px}

.photo-mixed-grid{
  row-gap:48px;
}

.photo-mix-card .thumb{
  max-height:min(58vh,640px);
}

.photo-mix-card.is-series.mix-series-a .thumb,
.photo-mix-card.is-series.mix-series-c .thumb{
  max-height:min(54vh,600px);
}

.photo-mix-card.is-series.mix-series-b .thumb{
  max-height:min(60vh,660px);
}

.photo-mix-card.is-single .thumb{
  max-height:min(44vh,460px);
}

.photo-mix-card.is-single.mix-single-d .thumb{
  max-height:min(36vh,380px);
}

.photo-mix-card .thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.detail-single-photo{
  padding-top:92px;
}

.detail-single-photo .detail-title,
.detail-single-photo .detail-meta{
  position:relative;
  z-index:2;
}

.detail-single-photo .detail-hero{
  width:fit-content;
  max-width:min(78vw,1080px);
  max-height:calc(100vh - 230px);
  margin-left:auto;
  margin-right:auto;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}

.detail-single-photo .detail-hero img{
  width:auto;
  height:auto;
  max-width:100%;
  max-height:calc(100vh - 230px);
  object-fit:contain;
}

.detail-single-photo .detail-hero.orientation-portrait{
  max-width:min(48vw,560px);
}

.detail-single-photo .detail-hero.orientation-square{
  max-width:min(56vw,660px);
}

.detail-single-photo .detail-text{
  max-width:420px;
  margin-top:22px;
}

.detail-series-page .series-cover{
  max-height:calc(100vh - 240px);
  display:flex;
  align-items:center;
  justify-content:center;
}

.detail-series-page .series-cover img{
  width:auto;
  height:auto;
  max-width:100%;
  max-height:calc(100vh - 260px);
  object-fit:contain;
}

@media(max-width:900px){
  .photo-mix-card .thumb,
  .photo-mix-card.is-series.mix-series-a .thumb,
  .photo-mix-card.is-series.mix-series-b .thumb,
  .photo-mix-card.is-series.mix-series-c .thumb,
  .photo-mix-card.is-single .thumb,
  .photo-mix-card.is-single.mix-single-d .thumb{
    max-height:none;
  }

  .detail-single-photo{
    padding-top:82px;
  }

  .detail-single-photo .detail-hero,
  .detail-single-photo .detail-hero.orientation-portrait,
  .detail-single-photo .detail-hero.orientation-landscape,
  .detail-single-photo .detail-hero.orientation-square{
    max-width:100%;
    max-height:none;
    width:100%;
  }

  .detail-single-photo .detail-hero img{
    width:100%;
    max-height:none;
  }

  .detail-series-page .series-cover,
  .detail-series-page .series-cover img{
    max-height:none;
  }
}

/* v2.9.33 - unified layout system */
.page{
  max-width:1280px;
  margin:0 auto;
  padding:0 40px;
  box-sizing:border-box;
}

.page-photography,
.page-video,
.page-design{
  width:100%;
}

/* force alignment consistency */
.photo-head,
.photo-mixed-grid,
.photo-mix-card{
  width:100%;
}

/* ensure header and grid share same alignment baseline */
.photo-head{
  margin-bottom:48px;
}

/* kill any accidental full-width bleed */
body{
  overflow-x:hidden;
}

/* v2.9.34 - fix 3rd page hero full bleed */

.detail-series-page{
  padding-top:0;
}

/* remove framed box feeling */
.series-cover{
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(-50vw + 50%);
  display:flex;
  align-items:center;
  justify-content:center;
  height: 100vh;
}

/* image fully clean */
.series-cover img{
  width: 100%;
  height: 100%;
  max-height: 100vh;
  object-fit: contain;
}

/* also ensure single photo hero is clean if reused */
.detail-hero{
  background: transparent !important;
  border: none !important;
}

/* kill any inner padding constraints */
.detail-series-page .series-flow{
  margin-top: 80px;
}


/* v2.9.35 — series readability fix */
.detail-series-readable{
  padding-top:88px;
}

.series-readable-head{
  max-width:min(1280px, calc(100vw - 80px));
  margin:0 auto 44px;
}

.series-readable-head .detail-title{
  max-width:760px;
}

.series-cover-readable{
  margin:0 auto;
  width:min(72vw,1040px);
  min-height:0;
  background:transparent!important;
  border:none!important;
  padding:0!important;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

.series-cover-readable img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:calc(100vh - 220px);
  object-fit:contain;
}

.series-cover-readable figcaption{
  align-self:flex-end;
  margin-top:10px;
  font-size:10px;
  line-height:1;
  color:#999999;
}

.series-next-hint{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:max-content;
  margin:28px auto 0;
  color:#999999;
  font-size:11px;
  line-height:1;
  text-decoration:none;
  letter-spacing:-.01em;
  opacity:.76;
  transition:opacity .2s ease, transform .2s ease;
}

.series-next-hint:hover{
  opacity:1;
  transform:translateY(2px);
}

.series-readable-text{
  margin-top:70px;
}

.series-readable-flow{
  margin-top:76px;
}

.series-readable-flow .series-frame{
  background:transparent!important;
  border:none!important;
  padding:0!important;
  overflow:visible;
}

.series-readable-flow .series-frame img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:calc(100vh - 180px);
  object-fit:contain;
}

.series-readable-flow .series-frame figcaption{
  margin-top:10px;
  font-size:10px;
  color:#999999;
}

html{
  scroll-behavior:auto;
}

@media(max-width:900px){
  .detail-series-readable{
    padding-top:82px;
  }

  .series-readable-head{
    width:auto;
    max-width:none;
    margin:0 20px 34px;
  }

  .series-cover-readable{
    width:calc(100vw - 40px);
  }

  .series-cover-readable img,
  .series-readable-flow .series-frame img{
    max-height:none;
    width:100%;
  }

  .series-next-hint{
    margin-top:22px;
  }
}


/* v2.9.36 — preserve original image aspect ratio on photography detail pages */

/* Single-image detail:
   remove the inherited 16:9 stage and let the image define its own geometry. */
.detail-single-photo .detail-hero,
.detail-single-photo .detail-hero.orientation-portrait,
.detail-single-photo .detail-hero.orientation-landscape,
.detail-single-photo .detail-hero.orientation-square{
  aspect-ratio:auto !important;
  width:max-content !important;
  height:auto !important;
  min-height:0 !important;
  max-width:min(78vw,1080px) !important;
  max-height:none !important;
  margin-left:auto !important;
  margin-right:auto !important;
  display:block !important;
  overflow:visible !important;
  background:transparent !important;
  border:0 !important;
}

.detail-single-photo .detail-hero.orientation-portrait{
  max-width:min(48vw,560px) !important;
}

.detail-single-photo .detail-hero.orientation-square{
  max-width:min(58vw,680px) !important;
}

.detail-single-photo .detail-hero img{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:calc(100vh - 220px) !important;
  object-fit:contain !important;
}

/* Group-image detail:
   remove any inherited fixed frame dimensions and keep each source ratio intact. */
.detail-series-readable .series-cover-readable,
.detail-series-readable .series-frame,
.detail-series-readable .series-cover,
.detail-series-readable .series-flow .series-frame{
  aspect-ratio:auto !important;
  height:auto !important;
  min-height:0 !important;
  background:transparent !important;
  border:0 !important;
  overflow:visible !important;
}

.detail-series-readable .series-cover-readable img,
.detail-series-readable .series-frame img,
.detail-series-readable .series-cover img,
.detail-series-readable .series-flow .series-frame img{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:calc(100vh - 180px) !important;
  object-fit:contain !important;
}

/* Keep portrait works visually narrower without rotating or cropping them. */
.detail-series-readable .series-cover-readable.is-portrait,
.detail-series-readable .series-frame.is-portrait{
  max-width:min(48vw,560px);
  margin-left:auto;
  margin-right:auto;
}

.detail-series-readable .series-cover-readable.is-square,
.detail-series-readable .series-frame.is-square{
  max-width:min(60vw,720px);
  margin-left:auto;
  margin-right:auto;
}

@media(max-width:900px){
  .detail-single-photo .detail-hero,
  .detail-single-photo .detail-hero.orientation-portrait,
  .detail-single-photo .detail-hero.orientation-landscape,
  .detail-single-photo .detail-hero.orientation-square{
    width:auto !important;
    max-width:calc(100vw - 40px) !important;
  }

  .detail-single-photo .detail-hero img,
  .detail-series-readable .series-cover-readable img,
  .detail-series-readable .series-frame img,
  .detail-series-readable .series-cover img,
  .detail-series-readable .series-flow .series-frame img{
    max-width:100% !important;
    max-height:none !important;
  }

  .detail-series-readable .series-cover-readable.is-portrait,
  .detail-series-readable .series-frame.is-portrait,
  .detail-series-readable .series-cover-readable.is-square,
  .detail-series-readable .series-frame.is-square{
    max-width:calc(100vw - 40px);
  }
}


/* v2.9.37 — Photography series vertical reading refinement */

.series-reading-page{
  padding-top:88px;
  padding-bottom:110px;
}

.series-reading-head{
  width:min(1280px, calc(100vw - 80px));
  margin:0 auto 52px;
}

.series-reading-head .detail-title{
  max-width:760px;
  margin-bottom:24px;
}

.series-reading-cover,
.series-reading-frame{
  margin-left:auto;
  margin-right:auto;
  background:transparent;
  border:0;
  padding:0;
  overflow:visible;
}

.series-reading-cover img,
.series-reading-frame img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:calc(100vh - 180px);
  object-fit:contain;
}

.series-reading-cover figcaption,
.series-reading-frame figcaption{
  margin-top:10px;
  font-size:10px;
  line-height:1;
  color:#999999;
  text-align:right;
}

.series-reading-cover.is-landscape{
  width:min(76vw,1120px);
}

.series-reading-cover.is-portrait{
  width:min(46vw,560px);
}

.series-reading-cover.is-square{
  width:min(58vw,720px);
}


.series-reading-flow{
  width:100%;
  margin-top:86px;
  display:flex;
  flex-direction:column;
  align-items:center;
}

.series-reading-frame{
  scroll-margin-top:80px;
}

/* Different widths by source orientation */
.series-reading-frame.is-landscape{
  width:min(72vw,1080px);
}

.series-reading-frame.is-portrait{
  width:min(42vw,520px);
}

.series-reading-frame.is-square{
  width:min(54vw,680px);
}

/* Editorial rhythm: deliberate but not repetitive */
.series-reading-frame:nth-child(4n+1){
  margin-top:84px;
}

.series-reading-frame:nth-child(4n+2){
  margin-top:132px;
}

.series-reading-frame:nth-child(4n+3){
  margin-top:96px;
}

.series-reading-frame:nth-child(4n){
  margin-top:150px;
}

/* Slight alternating alignment without breaking reading flow */
.series-reading-frame:nth-child(3n+2).is-landscape{
  transform:translateX(-4vw);
}

.series-reading-frame:nth-child(3n).is-landscape{
  transform:translateX(4vw);
}

.series-reading-frame:nth-child(4n+2).is-portrait{
  transform:translateX(8vw);
}

.series-reading-frame:nth-child(4n).is-portrait{
  transform:translateX(-8vw);
}

.series-reading-footer{
  width:min(1280px, calc(100vw - 80px));
  margin:120px auto 0;
  padding-top:24px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  border-top:1px solid #ececec;
  font-size:12px;
}

.series-reading-footer a{
  color:var(--purple);
  text-decoration:none;
}

.series-reading-footer a:nth-child(2){
  justify-self:center;
}

.series-reading-footer a:last-child{
  justify-self:end;
}

html{
  scroll-behavior:auto;
}

@media(max-width:900px){
  .series-reading-page{
    padding-top:82px;
    padding-bottom:80px;
  }

  .series-reading-head,
  .series-reading-footer{
    width:calc(100vw - 40px);
  }

  .series-reading-cover.is-landscape,
  .series-reading-cover.is-portrait,
  .series-reading-cover.is-square,
  .series-reading-frame.is-landscape,
  .series-reading-frame.is-portrait,
  .series-reading-frame.is-square{
    width:calc(100vw - 40px);
    transform:none !important;
  }

  .series-reading-cover img,
  .series-reading-frame img{
    width:100%;
    max-height:none;
  }

  .series-reading-flow{
    margin-top:64px;
  }

  .series-reading-frame:nth-child(n){
    margin-top:74px;
  }

  .series-reading-footer{
    grid-template-columns:1fr 1fr;
    row-gap:18px;
  }

  .series-reading-footer a:nth-child(2){
    display:none;
  }
}


/* v2.9.38 — hide empty project descriptions */
.detail-text:empty{
  display:none;
  margin:0;
}


/* v2.9.44 — 阳光底下沐浴03 保持完整展示，但在二级页缩小一点，兼顾整体和谐 */
.photo-mix-card.thumb-natural-portrait{
  width:min(84%, 320px);
  justify-self:center;
}

.photo-mix-card.thumb-natural-portrait .thumb{
  aspect-ratio:2 / 3 !important;
  max-height:none !important;
  background:transparent;
}

.photo-mix-card.thumb-natural-portrait .thumb img{
  width:100%;
  height:100%;
  object-fit:contain !important;
}

@media(max-width:900px){
  .photo-mix-card.thumb-natural-portrait{
    width:min(100%, 320px);
  }

  .photo-mix-card.thumb-natural-portrait .thumb{
    aspect-ratio:2 / 3 !important;
  }
}


/* v2.9.46 — instant Photography return restoration */
.page-photography.is-restoring-position{
  visibility:hidden !important;
}

.page-photography{
  transition:none !important;
}


/* Motion Studies design project */
.motion-design-detail .motion-hero{width:100%;margin:50px 0 90px;overflow:hidden;background:#f7f7f7}
.motion-design-detail .motion-hero video{width:100%;display:block;aspect-ratio:16/9;object-fit:cover}
.motion-section{max-width:720px;margin-bottom:90px}
.motion-section h2{font-size:28px;font-weight:400;margin-bottom:30px}
.motion-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.motion-grid video{width:100%;aspect-ratio:4/3;object-fit:cover}
@media(max-width:900px){.motion-grid{grid-template-columns:1fr}}

.motion-design-detail .motion-hero{margin:60px 0 120px}.motion-design-detail .motion-hero video{width:100%;aspect-ratio:16/9;object-fit:contain;background:#fafafa}.motion-copy{max-width:720px;margin:90px 0}.motion-copy h2,.motion-process h2{font-size:28px;font-weight:400}.motion-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.motion-grid video{width:100%;aspect-ratio:4/3;object-fit:contain;background:#fafafa}.motion-grid figcaption{margin-top:14px;color:#999;font-size:12px}.motion-process img{width:100%;margin-top:40px;display:block}.motion-process{margin:120px 0}@media(max-width:900px){.motion-grid{grid-template-columns:1fr}}


/* v2.9.53 — Solar Terms on Wood design case */
.solar-detail{width:min(1180px,calc(100vw - 120px));}
.solar-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:80px;align-items:start;margin-bottom:72px;}
.solar-subtitle{margin:-20px 0 0;font-size:20px;line-height:1.2;color:rgba(47,26,184,.58);letter-spacing:-.025em;}
.solar-info{margin:0;display:grid;gap:0;border-top:1px solid var(--line-soft);}
.solar-info div{display:grid;grid-template-columns:88px 1fr;gap:24px;padding:12px 0;border-bottom:1px solid var(--line-soft);font-size:11px;line-height:1.4;}
.solar-info dt{color:var(--muted);}
.solar-info dd{margin:0;color:var(--purple);}
.solar-hero{width:min(860px,78vw);margin:0 auto 120px;background:#050505;}
.solar-hero img{width:100%;height:auto;object-fit:contain;}
.solar-copy{margin:110px 0;max-width:900px;}
.solar-copy h2,.solar-symbols h2,.solar-section h2{font-size:28px;font-weight:400;letter-spacing:-.035em;margin:0 0 32px;color:var(--purple);}
.solar-copy-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;}
.solar-copy p,.solar-section-intro{margin:0;max-width:640px;font-size:14px;line-height:1.75;color:#666;letter-spacing:-.01em;}
.solar-process-line{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 34px;}
.solar-process-line span{border:1px solid var(--line);padding:9px 12px;font-size:11px;color:rgba(47,26,184,.72);background:#fafafa;}
.solar-symbols{margin:120px 0;}
.solar-symbol-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.solar-symbol-grid article{padding:22px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);}
.solar-symbol-grid strong{display:block;font-size:18px;font-weight:400;color:var(--purple);letter-spacing:-.03em;margin-bottom:8px;}
.solar-symbol-grid span{display:block;font-size:12px;color:rgba(47,26,184,.62);margin-bottom:18px;}
.solar-symbol-grid p{margin:0;font-size:12px;line-height:1.55;color:#777;}
.solar-section{margin:130px 0;}
.solar-wide-frame{width:100%;margin:0 0 74px;background:#050505;}
.solar-wide-frame img{width:100%;height:auto;object-fit:contain;}
.solar-poster-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;align-items:start;}
.solar-poster-card{margin:0;}
.solar-poster-card img{width:100%;height:auto;object-fit:contain;background:#fafafa;}
.solar-poster-card figcaption{margin-top:14px;display:grid;gap:5px;font-size:11px;line-height:1.35;color:rgba(47,26,184,.72);}
.solar-poster-card figcaption small{font-size:11px;color:#999;}
.solar-application-grid{display:grid;grid-template-columns:1fr;gap:52px;margin-top:42px;}
.solar-application-frame{margin:0;background:#f7f7f7;}
.solar-application-frame img{width:100%;height:auto;object-fit:contain;}
.solar-application-frame figcaption{margin-top:12px;font-size:12px;color:#999;}
.solar-final-section{margin-bottom:90px;}
.solar-final-overview{width:min(900px,86vw);margin-left:auto;margin-right:auto;}
@media(max-width:900px){.solar-detail{width:calc(100vw - 48px);}.solar-head{grid-template-columns:1fr;gap:34px;margin-bottom:54px;}.solar-subtitle{margin-top:-16px;font-size:18px;}.solar-hero{width:100%;margin-bottom:86px;}.solar-copy{margin:82px 0;}.solar-copy-grid,.solar-symbol-grid,.solar-poster-grid{grid-template-columns:1fr;gap:28px;}.solar-section{margin:90px 0;}.solar-wide-frame{margin-bottom:46px;}.solar-process-line{display:grid;grid-template-columns:1fr 1fr;}.solar-info div{grid-template-columns:76px 1fr;}}

/* v2.9.54 — Eǰine qosiɣu VIS design case */
.vi-detail{width:min(1180px,calc(100vw - 120px));}
.vi-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:80px;align-items:start;margin-bottom:72px;}
.vi-subtitle{margin:-20px 0 0;font-size:20px;line-height:1.2;color:rgba(47,26,184,.58);letter-spacing:-.025em;}
.vi-info{margin:0;display:grid;gap:0;border-top:1px solid var(--line-soft);}
.vi-info div{display:grid;grid-template-columns:88px 1fr;gap:24px;padding:12px 0;border-bottom:1px solid var(--line-soft);font-size:11px;line-height:1.4;}
.vi-info dt{color:var(--muted);}
.vi-info dd{margin:0;color:var(--purple);}
.vi-hero{width:min(860px,78vw);margin:0 auto 120px;background:#f7f7f7;}
.vi-hero img{width:100%;height:auto;object-fit:contain;display:block;}
.vi-copy{margin:110px 0;max-width:900px;}
.vi-copy h2,.vi-section h2{font-size:28px;font-weight:400;letter-spacing:-.035em;margin:0 0 32px;color:var(--purple);}
.vi-copy-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;}
.vi-copy p,.vi-section-intro{margin:0;max-width:700px;font-size:14px;line-height:1.75;color:#666;letter-spacing:-.01em;}
.vi-section{margin:130px 0;}
.vi-symbol-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:58px;}
.vi-symbol-grid article{padding:22px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);}
.vi-symbol-grid strong{display:block;font-size:15px;font-weight:400;color:var(--purple);letter-spacing:-.03em;margin-bottom:14px;line-height:1.3;}
.vi-symbol-grid p{margin:0;font-size:12px;line-height:1.55;color:#777;}
.vi-page-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;margin-top:42px;align-items:start;}
.vi-page-grid-four{grid-template-columns:repeat(4,1fr);}
.vi-page-frame{margin:0;background:#f7f7f7;}
.vi-page-frame img{width:100%;height:auto;display:block;object-fit:contain;}
.vi-application-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;margin-top:42px;align-items:start;}
.vi-wide-frame{width:min(900px,86vw);margin:42px auto 0;background:#f7f7f7;}
.vi-wide-frame img{width:100%;height:auto;display:block;object-fit:contain;}
.vi-final-section{margin-bottom:90px;}
@media(max-width:900px){.vi-detail{width:calc(100vw - 48px);}.vi-head{grid-template-columns:1fr;gap:34px;margin-bottom:54px;}.vi-subtitle{margin-top:-16px;font-size:18px;}.vi-hero{width:100%;margin-bottom:86px;}.vi-copy{margin:82px 0;}.vi-copy-grid,.vi-symbol-grid,.vi-page-grid,.vi-page-grid-four,.vi-application-grid{grid-template-columns:1fr;gap:28px;}.vi-section{margin:90px 0;}.vi-info div{grid-template-columns:76px 1fr;}}

/* v2.9.55 - Ejina VIS: page-by-page manual layout */
.vi-manual-section{margin-top:130px;}
.vi-manual-flow{display:grid;grid-template-columns:1fr;gap:56px;width:min(980px,100%);margin:42px auto 0;}
.vi-page-single{margin:0;background:#f7f7f7;}
.vi-page-single img{display:block;width:100%;height:auto;object-fit:contain;}
@media(max-width:900px){.vi-manual-flow{gap:28px;width:100%;}}

/* v2.9.56 — Mountain Fever website demo detail */
.mf-detail{width:min(1180px,calc(100vw - 120px));}
.mf-head{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:70px;align-items:start;margin-bottom:78px;}
.mf-subtitle{margin:8px 0 0;font-size:20px;line-height:1.2;color:var(--text-muted);letter-spacing:-.025em;}
.mf-info{margin:0;display:grid;gap:14px;font-size:11px;line-height:1.35;color:var(--purple);}
.mf-info div{display:grid;grid-template-columns:92px 1fr;gap:22px;}
.mf-info dt{color:var(--text-muted);}
.mf-info dd{margin:0;}
.mf-hero{width:100%;margin:0 0 120px;background:#f7f7f7;border:1px solid var(--line);}
.mf-hero img{display:block;width:100%;height:auto;}
.mf-copy{margin:104px 0;}
.mf-copy h2,.mf-system h2,.mf-screens h2{font-size:15px;font-weight:400;letter-spacing:-.02em;margin:0 0 24px;color:var(--purple);}
.mf-copy-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;font-size:14px;line-height:1.78;color:#4a4a4a;}
.mf-copy-grid p{margin:0;}
.mf-system{margin:112px 0;}
.mf-system-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;}
.mf-system-grid article{border-top:1px solid var(--line);padding-top:18px;min-height:128px;}
.mf-system-grid strong{display:block;font-size:13px;font-weight:400;color:var(--purple);margin-bottom:18px;}
.mf-system-grid p{margin:0;font-size:12px;line-height:1.65;color:var(--text-muted);}
.mf-screens{margin:120px 0 90px;}
.mf-screen-flow{display:flex;flex-direction:column;gap:104px;}
.mf-screen-frame{margin:0;}
.mf-screen-frame img{display:block;width:100%;height:auto;border:1px solid var(--line);background:#fff;}
.mf-screen-frame figcaption{display:flex;justify-content:space-between;gap:30px;margin-top:12px;font-size:11px;line-height:1.35;color:var(--text-muted);}
.mf-screen-frame figcaption strong{font-weight:400;color:var(--purple);}
.mf-screen-frame figcaption span{max-width:360px;text-align:right;}
.mf-screen-2,.mf-screen-3{width:min(820px,100%);margin-left:auto;margin-right:auto;}

@media(max-width:900px){
  .mf-detail{width:calc(100vw - 48px);}
  .mf-head{grid-template-columns:1fr;gap:34px;margin-bottom:54px;}
  .mf-subtitle{font-size:18px;}
  .mf-hero{margin-bottom:86px;}
  .mf-copy{margin:82px 0;}
  .mf-copy-grid,.mf-system-grid{grid-template-columns:1fr;gap:28px;}
  .mf-screens{margin:90px 0;}
  .mf-screen-flow{gap:64px;}
  .mf-screen-frame figcaption{display:block;}
  .mf-screen-frame figcaption span{display:block;max-width:none;text-align:left;margin-top:6px;}
}


/* v2.9.60 — For Good Design APP UI detail */
.appui-detail{width:min(1180px,calc(100vw - 120px));}
.appui-head{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:70px;align-items:start;margin-bottom:78px;}
.appui-subtitle{margin:8px 0 0;font-size:20px;line-height:1.2;color:var(--text-muted);letter-spacing:-.025em;}
.appui-info{margin:0;display:grid;gap:14px;font-size:11px;line-height:1.35;color:var(--purple);}
.appui-info div{display:grid;grid-template-columns:92px 1fr;gap:22px;}
.appui-info dt{color:var(--text-muted);}
.appui-info dd{margin:0;}
.appui-hero{width:min(900px,86vw);margin:0 auto 120px;background:#f7f7f7;border:1px solid var(--line);}
.appui-hero img{display:block;width:100%;height:auto;object-fit:contain;}
.appui-copy{margin:104px 0;}
.appui-copy h2,.appui-flow-section h2,.appui-system-section h2{font-size:15px;font-weight:400;letter-spacing:-.02em;margin:0 0 24px;color:var(--purple);}
.appui-copy-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;max-width:920px;}
.appui-copy-grid p{margin:0;font-size:14px;line-height:1.78;color:#666;letter-spacing:-.01em;}
.appui-flow-section{margin:130px 0 90px;}
.appui-page-flow{display:grid;grid-template-columns:1fr;gap:56px;width:min(1040px,100%);margin:44px auto 0;}
.appui-page-frame{margin:0;background:#f7f7f7;}
.appui-page-frame img{display:block;width:100%;height:auto;object-fit:contain;}
.appui-page-frame figcaption{margin-top:10px;font-size:11px;color:#999;}
@media(max-width:900px){.appui-detail{width:calc(100vw - 48px);}.appui-head{grid-template-columns:1fr;gap:34px;margin-bottom:54px;}.appui-copy-grid{grid-template-columns:1fr;gap:28px;}.appui-page-flow{gap:28px;width:100%;}.appui-hero{width:100%;margin-bottom:86px;}.appui-info div{grid-template-columns:76px 1fr;}}

.appui-video-hero{width:min(980px,88vw);margin:0 auto 120px;background:#f7f7f7;border:1px solid var(--line);}
.appui-video-hero video{display:block;width:100%;height:auto;max-height:78vh;object-fit:contain;background:#fff;}
.appui-system-section{margin:112px 0 126px;}
.appui-system-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;}
.appui-system-grid article{border-top:1px solid var(--line);padding-top:18px;}
.appui-system-grid strong{display:block;font-size:13px;font-weight:400;letter-spacing:-.01em;margin-bottom:12px;color:var(--purple);}
.appui-system-grid p{margin:0;font-size:12px;line-height:1.72;color:#666;letter-spacing:-.005em;}
@media(max-width:900px){.appui-video-hero{width:100%;margin-bottom:82px;}.appui-system-grid{grid-template-columns:1fr;gap:26px;}}

/* v2.9.62 - Baisui Mountain poster design */
.baisui-detail{width:min(1180px,calc(100vw - 120px));}
.baisui-head{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:70px;align-items:start;margin-bottom:78px;}
.baisui-subtitle{margin:8px 0 0;font-size:20px;line-height:1.2;color:var(--text-muted);letter-spacing:-.025em;}
.baisui-info{margin:0;display:grid;gap:14px;font-size:11px;line-height:1.35;color:var(--purple);}
.baisui-info div{display:grid;grid-template-columns:92px 1fr;gap:22px;}
.baisui-info dt{color:var(--text-muted);}
.baisui-info dd{margin:0;}
.baisui-hero{width:min(760px,78vw);margin:0 auto 120px;background:#fff;}
.baisui-hero img{display:block;width:100%;height:auto;object-fit:contain;}
.baisui-copy{margin:104px 0;}
.baisui-copy h2,.baisui-system-section h2,.baisui-poster-section h2{font-size:15px;font-weight:400;letter-spacing:-.02em;margin:0 0 24px;color:var(--purple);}
.baisui-copy-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;max-width:920px;}
.baisui-copy-grid p{margin:0;font-size:14px;line-height:1.78;color:#666;letter-spacing:-.01em;}
.baisui-system-section{margin:112px 0 126px;}
.baisui-system-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;}
.baisui-system-grid article{border-top:1px solid var(--line);padding-top:18px;}
.baisui-system-grid strong{display:block;font-size:13px;font-weight:400;letter-spacing:-.01em;margin-bottom:12px;color:var(--purple);}
.baisui-system-grid p{margin:0;font-size:12px;line-height:1.72;color:#666;letter-spacing:-.005em;}
.baisui-poster-section{margin:130px 0 90px;}
.baisui-poster-flow{display:grid;grid-template-columns:1fr;gap:74px;width:min(760px,100%);margin:44px auto 0;}
.baisui-poster-frame{margin:0;background:#fff;}
.baisui-poster-frame img{display:block;width:100%;height:auto;object-fit:contain;}
.baisui-poster-frame figcaption{margin-top:12px;display:grid;gap:5px;font-size:11px;line-height:1.35;color:rgba(47,26,184,.72);}
.baisui-poster-frame figcaption small{font-size:11px;color:#999;}
@media(max-width:900px){.baisui-detail{width:calc(100vw - 48px);}.baisui-head{grid-template-columns:1fr;gap:34px;margin-bottom:54px;}.baisui-copy-grid{grid-template-columns:1fr;gap:28px;}.baisui-system-grid{grid-template-columns:1fr;gap:26px;}.baisui-hero{width:100%;margin-bottom:86px;}.baisui-poster-flow{width:100%;gap:36px;}.baisui-info div{grid-template-columns:76px 1fr;}}


/* v2.9.64 — readable single-work media standard for Design detail pages
   单个作品优先完整进入首屏，避免观众为了看完整海报/单页而立即滑动。 */
.baisui-hero{
  width:100%;
  display:flex;
  justify-content:center;
  align-items:flex-start;
  margin:0 auto 120px;
  background:#fff;
}
.baisui-hero img{
  width:auto;
  max-width:min(560px,72vw);
  max-height:calc(100vh - 178px);
  height:auto;
  object-fit:contain;
  margin:0 auto;
}
.baisui-poster-flow{
  width:100%;
  gap:90px;
}
.baisui-poster-frame img{
  width:auto;
  max-width:min(560px,72vw);
  max-height:calc(100vh - 150px);
  height:auto;
  object-fit:contain;
  margin:0 auto;
}
.baisui-poster-frame figcaption{
  width:min(560px,72vw);
  margin-left:auto;
  margin-right:auto;
}
.solar-poster-card img,
.vi-page-single img,
.appui-page-frame img{
  width:auto;
  max-width:100%;
  max-height:88vh;
  height:auto;
  object-fit:contain;
  margin-left:auto;
  margin-right:auto;
}
.motion-grid video{
  max-height:72vh;
  object-fit:contain;
}
@media(max-width:900px){
  .baisui-hero img,
  .baisui-poster-frame img,
  .baisui-poster-frame figcaption{
    max-width:100%;
    width:100%;
  }
  .baisui-hero img,
  .baisui-poster-frame img{
    max-height:none;
  }
}

/* v2.9.67 — white-background artwork surface only, non-white artworks keep original v2.9.64 display.
   只对白底作品加浅灰底色与弱边框；其余作品不套底、不加边。 */
:root{
  --white-artwork-surface:#f7f7f7;
  --white-artwork-border:rgba(37,36,95,.10);
}
.white-artwork-surface{
  background:var(--white-artwork-surface) !important;
  border:1px solid var(--white-artwork-border);
  padding:22px;
  box-sizing:border-box;
}
.white-artwork-surface > img{
  background:#fff;
}
@media(max-width:900px){
  .white-artwork-surface{
    padding:14px;
  }
}

/* v2.9.68 — Design detail media refinement
   白底作品不再加浅灰底，只保留弱边框；同时统一控制作品高度，让单张作品优先完整进入一屏。 */
:root{
  --white-artwork-border:rgba(37,36,95,.10);
}
.white-artwork-surface{
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
  box-sizing:border-box;
}
.white-artwork-surface > img,
.white-artwork-surface > video{
  border:1px solid var(--white-artwork-border) !important;
  box-sizing:border-box;
  background:#fff;
}

/* single-work full-view reading rule for completed Design detail pages */
.motion-design-detail .motion-hero,
.motion-design-detail .motion-grid figure,
.solar-hero,
.solar-wide-frame,
.solar-poster-card,
.solar-application-frame,
.vi-hero,
.vi-page-single,
.vi-wide-frame,
.mf-hero,
.mf-screen-frame,
.appui-video-hero,
.appui-page-frame,
.baisui-hero,
.baisui-poster-frame{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

.motion-design-detail .motion-hero video,
.motion-design-detail .motion-grid video,
.solar-hero img,
.solar-wide-frame img,
.solar-poster-card img,
.solar-application-frame img,
.vi-hero img,
.vi-page-single img,
.vi-wide-frame img,
.mf-hero img,
.mf-screen-frame img,
.appui-video-hero video,
.appui-page-frame img,
.baisui-hero img,
.baisui-poster-frame img{
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:calc(100vh - 190px) !important;
  object-fit:contain !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* hero media has slightly more headroom because it appears after project metadata */
.motion-design-detail .motion-hero video,
.appui-video-hero video,
.baisui-hero img,
.vi-hero img,
.solar-hero img,
.mf-hero img{
  max-height:calc(100vh - 220px) !important;
}

/* keep long website screenshots readable but still complete within one viewport */
.mf-screen-frame img{
  max-height:calc(100vh - 210px) !important;
}

@media(max-width:900px){
  .motion-design-detail .motion-hero video,
  .motion-design-detail .motion-grid video,
  .solar-hero img,
  .solar-wide-frame img,
  .solar-poster-card img,
  .solar-application-frame img,
  .vi-hero img,
  .vi-page-single img,
  .vi-wide-frame img,
  .mf-hero img,
  .mf-screen-frame img,
  .appui-video-hero video,
  .appui-page-frame img,
  .baisui-hero img,
  .baisui-poster-frame img{
    max-height:none !important;
    width:100% !important;
  }
}

/* v2.9.69 — Design media readability refinement
   不改变作品原始比例，只通过 max-width / max-height 缩放，让单张作品在当前视口内完整可读。
   白底作品仅对图片本身添加弱边框，不加浅灰底色；非白底作品保留原样。 */
:root{
  --white-artwork-border:rgba(37,36,95,.10);
}

.white-artwork-surface{
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
}
.white-artwork-surface > img,
.white-artwork-surface > video{
  border:1px solid var(--white-artwork-border) !important;
  background:#fff !important;
  box-sizing:border-box !important;
}

/* reset previous flex wrapping on work frames: the artwork ratio must come from the media itself */
.motion-design-detail .motion-hero,
.motion-design-detail .motion-grid figure,
.solar-hero,
.solar-wide-frame,
.solar-poster-card,
.solar-application-frame,
.vi-hero,
.vi-page-single,
.vi-wide-frame,
.mf-hero,
.mf-screen-frame,
.appui-video-hero,
.appui-page-frame,
.baisui-hero,
.baisui-poster-frame{
  display:block !important;
  text-align:center !important;
}

/* universal design-work media rule: never crop, never distort, only scale down */
.motion-design-detail .motion-hero video,
.motion-design-detail .motion-grid video,
.motion-process img,
.solar-hero img,
.solar-wide-frame img,
.solar-poster-card img,
.solar-application-frame img,
.vi-hero img,
.vi-page-single img,
.vi-wide-frame img,
.mf-hero img,
.mf-screen-frame img,
.appui-video-hero video,
.appui-page-frame img,
.baisui-hero img,
.baisui-poster-frame img{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:calc(100vh - 172px) !important;
  object-fit:contain !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* project-opening media appears below metadata, so leave extra viewport space */
.motion-design-detail .motion-hero video,
.solar-hero img,
.vi-hero img,
.mf-hero img,
.appui-video-hero video,
.baisui-hero img{
  max-height:calc(100vh - 220px) !important;
}

/* long website and PPT/demo pages should still fit the viewport without changing ratio */
.vi-page-single img,
.mf-screen-frame img,
.appui-page-frame img,
.solar-wide-frame img,
.solar-application-frame img{
  max-height:calc(100vh - 150px) !important;
}

/* preserve existing layout widths; only center the scaled artwork inside them */
.solar-hero,
.solar-wide-frame,
.solar-application-frame,
.vi-hero,
.vi-wide-frame,
.mf-hero,
.mf-screen-frame,
.appui-video-hero,
.appui-page-frame,
.baisui-hero,
.baisui-poster-frame{
  margin-left:auto !important;
  margin-right:auto !important;
}

@media(max-width:900px){
  .motion-design-detail .motion-hero video,
  .motion-design-detail .motion-grid video,
  .motion-process img,
  .solar-hero img,
  .solar-wide-frame img,
  .solar-poster-card img,
  .solar-application-frame img,
  .vi-hero img,
  .vi-page-single img,
  .vi-wide-frame img,
  .mf-hero img,
  .mf-screen-frame img,
  .appui-video-hero video,
  .appui-page-frame img,
  .baisui-hero img,
  .baisui-poster-frame img{
    width:100% !important;
    height:auto !important;
    max-height:none !important;
  }
}

/* v2.9.70 — preserve original artwork ratio and fit the full work into one viewport.
   不改变作品原始比例；只缩放尺寸，确保单张作品完整可读。 */
:root{
  --design-white-border:rgba(37,36,95,.10);
}

/* 白底作品只保留弱边框，不增加底色。 */
.white-artwork-surface{
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
}
.white-artwork-surface > img,
.white-artwork-surface > video{
  border:1px solid var(--design-white-border) !important;
  background:#fff !important;
  box-sizing:border-box !important;
}

/* 所有设计详情页：容器不裁切，作品本身居中显示。 */
.motion-design-detail .motion-hero,
.motion-design-detail .motion-grid figure,
.motion-process,
.solar-hero,
.solar-wide-frame,
.solar-poster-card,
.solar-application-frame,
.vi-hero,
.vi-page-single,
.vi-wide-frame,
.mf-hero,
.mf-screen-frame,
.appui-video-hero,
.appui-page-frame,
.baisui-hero,
.baisui-poster-frame{
  overflow:visible !important;
  text-align:center !important;
  background:transparent;
}

/* 核心规则：只按 max-width / max-height 缩放，不使用 width:100% 强行撑开。 */
.motion-design-detail .motion-hero video,
.motion-design-detail .motion-grid video,
.motion-process img,
.solar-hero img,
.solar-wide-frame img,
.solar-poster-card img,
.solar-application-frame img,
.vi-hero img,
.vi-page-single img,
.vi-wide-frame img,
.mf-hero img,
.mf-screen-frame img,
.appui-video-hero video,
.appui-page-frame img,
.baisui-hero img,
.baisui-poster-frame img{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:72vh !important;
  object-fit:contain !important;
  object-position:center center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* 首屏/页头媒体下方还有标题信息，给它更克制的高度，避免一打开就看不完整。 */
.motion-design-detail .motion-hero video,
.solar-hero img,
.vi-hero img,
.mf-hero img,
.appui-video-hero video,
.baisui-hero img{
  max-height:64vh !important;
}

/* 单页手册、PPT页面、整页截图保持原图比例完整出现。 */
.solar-wide-frame img,
.solar-application-frame img,
.vi-page-single img,
.vi-wide-frame img,
.mf-screen-frame img,
.appui-page-frame img{
  max-height:74vh !important;
}

/* 单张竖版海报稍微压低高度，避免视觉上顶住上下边缘。 */
.solar-poster-card img,
.baisui-poster-frame img{
  max-height:72vh !important;
}

@media(max-width:900px){
  .motion-design-detail .motion-hero video,
  .motion-design-detail .motion-grid video,
  .motion-process img,
  .solar-hero img,
  .solar-wide-frame img,
  .solar-poster-card img,
  .solar-application-frame img,
  .vi-hero img,
  .vi-page-single img,
  .vi-wide-frame img,
  .mf-hero img,
  .mf-screen-frame img,
  .appui-video-hero video,
  .appui-page-frame img,
  .baisui-hero img,
  .baisui-poster-frame img{
    max-width:100% !important;
    max-height:none !important;
    width:100% !important;
    height:auto !important;
  }
}

/* v2.9.71 — Design detail media readability tuning
   保持作品原始比例；不裁切、不拉伸。根据不同作品长宽比酌情放大/缩放，优先保证单张作品在当前视口内完整可读。 */
.solar-head{
  margin-bottom:48px !important;
}

/* 节气映木首张竖版总览：保持原始比例，较 v2.9.70 适度放大，但仍控制在一屏内。 */
.solar-hero{
  width:min(980px, calc(100vw - 360px)) !important;
  max-width:100% !important;
}
.solar-hero img{
  max-height:70vh !important;
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  object-fit:contain !important;
}

/* Final Output 中再次出现的整张总览图，可在非首屏区域放得更大。 */
.solar-final-overview{
  width:min(980px, 88vw) !important;
}
.solar-final-overview img{
  max-height:82vh !important;
}

/* 节气映木应用图、横构图/竖构图各按自身比例显示，不统一强压为同一长宽。 */
.solar-application-frame,
.solar-wide-frame{
  width:auto !important;
  max-width:100% !important;
}
.solar-application-frame img,
.solar-wide-frame img{
  width:auto !important;
  height:auto !important;
  max-width:min(100%, 88vw) !important;
  max-height:76vh !important;
  object-fit:contain !important;
}

/* 其他已完成 Design 详情页：继续使用完整可读规则，但不强制改变原始比例。 */
.vi-page-single img,
.vi-wide-frame img,
.mf-screen-frame img,
.appui-page-frame img,
.baisui-poster-frame img{
  width:auto !important;
  height:auto !important;
  max-width:min(100%, 88vw) !important;
  max-height:76vh !important;
  object-fit:contain !important;
}

/* 白底作品仅保留弱边框，不加灰底。 */
.white-artwork-surface > img,
.white-artwork-surface > video{
  border:1px solid var(--design-white-border) !important;
  background:#fff !important;
}

@media(max-width:900px){
  .solar-head{margin-bottom:38px !important;}
  .solar-hero,
  .solar-final-overview,
  .solar-application-frame,
  .solar-wide-frame{
    width:100% !important;
    max-width:100% !important;
  }
  .solar-hero img,
  .solar-final-overview img,
  .solar-application-frame img,
  .solar-wide-frame img,
  .vi-page-single img,
  .vi-wide-frame img,
  .mf-screen-frame img,
  .appui-page-frame img,
  .baisui-poster-frame img{
    width:100% !important;
    height:auto !important;
    max-width:100% !important;
    max-height:none !important;
  }
}

/* v2.9.73 — Sanzao Crane Dance motion poster project */
.sanzao-detail{
  width:min(1180px,calc(100vw - 120px));
}
.sanzao-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,420px);
  gap:80px;
  align-items:start;
  margin-bottom:64px;
}
.sanzao-subtitle{
  margin:-20px 0 0;
  font-size:20px;
  line-height:1.2;
  color:rgba(47,26,184,.58);
  letter-spacing:-.025em;
}
.sanzao-info{
  margin:0;
  display:grid;
  gap:0;
  border-top:1px solid var(--line-soft);
}
.sanzao-info div{
  display:grid;
  grid-template-columns:88px 1fr;
  gap:24px;
  padding:12px 0;
  border-bottom:1px solid var(--line-soft);
  font-size:11px;
  line-height:1.4;
}
.sanzao-info dt{color:var(--muted);}
.sanzao-info dd{margin:0;color:var(--purple);}
.sanzao-video-hero{
  width:min(520px,72vw);
  margin:0 auto 110px;
  background:#fff;
}
.sanzao-video-hero video{
  display:block;
  width:100%;
  height:auto;
  max-height:calc(100vh - 190px);
  object-fit:contain;
  background:#fff;
}
.sanzao-copy{margin:104px 0;}
.sanzao-copy h2,.sanzao-system-section h2{
  font-size:15px;
  font-weight:400;
  letter-spacing:-.02em;
  margin:0 0 24px;
  color:var(--purple);
}
.sanzao-copy-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  max-width:920px;
}
.sanzao-copy-grid p{
  margin:0;
  font-size:14px;
  line-height:1.78;
  color:#666;
  letter-spacing:-.01em;
}
.sanzao-system-section{margin:118px 0 90px;}
.sanzao-action-flow{
  display:grid;
  gap:110px;
}
.sanzao-action-block{margin:0;}
.sanzao-action-block>header{
  display:grid;
  grid-template-columns:52px minmax(0,1fr) minmax(120px,180px);
  gap:22px;
  align-items:end;
  margin-bottom:24px;
  color:var(--purple);
}
.sanzao-action-block>header span{
  font-size:11px;
  color:rgba(47,26,184,.45);
}
.sanzao-action-block h3{
  margin:0;
  font-size:28px;
  line-height:1.08;
  font-weight:400;
  letter-spacing:-.035em;
}
.sanzao-action-block>header p{
  margin:0;
  font-size:12px;
  line-height:1.4;
  color:rgba(47,26,184,.62);
  text-align:right;
}
.sanzao-action-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr .9fr;
  gap:28px;
  align-items:center;
}
.sanzao-media{
  margin:0;
  background:#fff;
}
.sanzao-media img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:72vh;
  object-fit:contain;
  margin:0 auto;
}
.sanzao-media.final img,
.sanzao-media.sketch img{
  max-height:calc(100vh - 180px);
}
.sanzao-media figcaption{
  margin-top:10px;
  font-size:11px;
  line-height:1.35;
  color:#999;
  text-align:center;
}
.sanzao-action-note{
  width:min(620px,100%);
  margin:22px 0 0 52px;
  font-size:12px;
  line-height:1.7;
  color:#666;
  letter-spacing:-.005em;
}
@media(max-width:900px){
  .sanzao-detail{width:calc(100vw - 48px);}
  .sanzao-head{grid-template-columns:1fr;gap:34px;margin-bottom:48px;}
  .sanzao-subtitle{margin-top:-16px;font-size:18px;}
  .sanzao-video-hero{width:100%;margin-bottom:82px;}
  .sanzao-video-hero video{max-height:none;}
  .sanzao-copy-grid{grid-template-columns:1fr;gap:28px;}
  .sanzao-action-block>header{grid-template-columns:1fr;gap:8px;align-items:start;}
  .sanzao-action-block>header p{text-align:left;}
  .sanzao-action-grid{grid-template-columns:1fr;gap:36px;}
  .sanzao-media img{width:100%;max-height:none;}
  .sanzao-action-note{margin-left:0;}
  .sanzao-info div{grid-template-columns:76px 1fr;}
}

/* v2.9.75 — Natura Venture outdoor brand poster detail */
.natura-detail{width:min(1180px,calc(100vw - 120px));}
.natura-head{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:70px;align-items:start;margin-bottom:78px;}
.natura-subtitle{margin:8px 0 0;font-size:20px;line-height:1.2;color:var(--text-muted);letter-spacing:-.025em;}
.natura-info{margin:0;display:grid;gap:0;border-top:1px solid var(--line-soft);}
.natura-info div{display:grid;grid-template-columns:92px 1fr;gap:22px;padding:12px 0;border-bottom:1px solid var(--line-soft);font-size:11px;line-height:1.35;color:var(--purple);}
.natura-info dt{color:var(--text-muted);}
.natura-info dd{margin:0;}
.natura-hero{width:min(820px,78vw);margin:0 auto 112px;}
.natura-hero img{display:block;width:100%;height:auto;object-fit:contain;}
.natura-copy{margin:104px 0;}
.natura-copy h2,.natura-system-section h2,.natura-poster-section h2{font-size:15px;font-weight:400;letter-spacing:-.02em;margin:0 0 24px;color:var(--purple);}
.natura-copy-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;max-width:920px;}
.natura-copy-grid p{margin:0;font-size:14px;line-height:1.78;color:#666;letter-spacing:-.01em;}
.natura-system-section{margin:112px 0 126px;}
.natura-system-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;}
.natura-system-grid article{border-top:1px solid var(--line);padding-top:18px;}
.natura-system-grid strong{display:block;font-size:13px;font-weight:400;letter-spacing:-.01em;margin-bottom:12px;color:var(--purple);}
.natura-system-grid p{margin:0;font-size:12px;line-height:1.72;color:#666;letter-spacing:-.005em;}
.natura-poster-section{margin:130px 0 90px;}
.natura-poster-flow{display:grid;grid-template-columns:1fr;gap:76px;width:min(760px,100%);margin:44px auto 0;}
.natura-poster-frame{margin:0;display:grid;place-items:center;}
.natura-poster-frame img{display:block;width:auto;height:auto;max-width:min(760px,82vw);max-height:calc(100vh - 190px);object-fit:contain;}
.natura-poster-frame figcaption{margin-top:12px;font-size:11px;line-height:1.35;color:rgba(47,26,184,.72);text-align:center;}
@media(max-width:900px){.natura-detail{width:calc(100vw - 48px);}.natura-head{grid-template-columns:1fr;gap:34px;margin-bottom:54px;}.natura-copy-grid,.natura-system-grid{grid-template-columns:1fr;gap:28px;}.natura-hero{width:100%;margin-bottom:86px;}.natura-poster-flow{width:100%;gap:42px;}.natura-poster-frame img{max-width:100%;max-height:none;}.natura-info div{grid-template-columns:76px 1fr;}}

/* v2.9.76 — Water Wedding poster project + Sanzao rename.
   白底作品只加弱边框，不加灰底；所有作品保持原始比例完整阅读。 */
.white-artwork-surface{
  background:transparent !important;
  border:0 !important;
}
.white-artwork-surface > img,
.white-artwork-surface > video{
  border:1px solid rgba(37,36,95,.10) !important;
  background:#fff !important;
}

.water-wedding-detail{
  width:min(1180px,calc(100vw - 120px));
}
.water-wedding-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,420px);
  gap:80px;
  align-items:start;
  margin-bottom:64px;
}
.water-wedding-subtitle{
  margin:8px 0 0;
  font-size:20px;
  line-height:1.2;
  color:rgba(47,26,184,.58);
  letter-spacing:-.025em;
}
.water-wedding-info{
  margin:0;
  display:grid;
  gap:0;
  border-top:1px solid var(--line-soft);
}
.water-wedding-info div{
  display:grid;
  grid-template-columns:88px 1fr;
  gap:24px;
  padding:12px 0;
  border-bottom:1px solid var(--line-soft);
  font-size:11px;
  line-height:1.4;
}
.water-wedding-info dt{color:var(--muted);}
.water-wedding-info dd{margin:0;color:var(--purple);}
.water-wedding-hero{
  width:min(760px,78vw);
  margin:0 auto 110px;
}
.water-wedding-hero img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:76vh;
  margin:0 auto;
  object-fit:contain;
}
.water-wedding-copy{margin:104px 0;}
.water-wedding-copy h2,
.water-wedding-system-section h2,
.water-wedding-sketch-section h2,
.water-wedding-poster-section h2{
  font-size:15px;
  font-weight:400;
  letter-spacing:-.02em;
  margin:0 0 24px;
  color:var(--purple);
}
.water-wedding-copy-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  max-width:940px;
}
.water-wedding-copy-grid p{
  margin:0;
  font-size:14px;
  line-height:1.78;
  color:#666;
  letter-spacing:-.01em;
}
.water-wedding-system-section{margin:112px 0 120px;}
.water-wedding-system-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:28px;
}
.water-wedding-system-grid article{
  border-top:1px solid var(--line);
  padding-top:18px;
}
.water-wedding-system-grid strong{
  display:block;
  font-size:13px;
  font-weight:400;
  letter-spacing:-.01em;
  margin-bottom:12px;
  color:var(--purple);
}
.water-wedding-system-grid p{
  margin:0;
  font-size:12px;
  line-height:1.72;
  color:#666;
}
.water-wedding-sketch-section,
.water-wedding-poster-section{margin:120px 0;}
.water-wedding-sketch-flow,
.water-wedding-poster-flow{
  display:grid;
  grid-template-columns:1fr;
  gap:70px;
  width:min(800px,100%);
  margin:44px auto 0;
}
.water-wedding-sketch-frame,
.water-wedding-poster-frame{
  margin:0;
}
.water-wedding-sketch-frame img,
.water-wedding-poster-frame img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:76vh;
  margin:0 auto;
  object-fit:contain;
}
.water-wedding-sketch-frame figcaption,
.water-wedding-poster-frame figcaption{
  margin-top:12px;
  display:grid;
  gap:5px;
  font-size:11px;
  line-height:1.35;
  color:rgba(47,26,184,.72);
}
.water-wedding-poster-frame figcaption small{font-size:11px;color:#999;}

@media(max-width:900px){
  .water-wedding-detail{width:calc(100vw - 48px);}
  .water-wedding-head{grid-template-columns:1fr;gap:34px;margin-bottom:54px;}
  .water-wedding-copy-grid,.water-wedding-system-grid{grid-template-columns:1fr;gap:28px;}
  .water-wedding-hero,
  .water-wedding-sketch-flow,
  .water-wedding-poster-flow{width:100%;}
  .water-wedding-hero img,
  .water-wedding-sketch-frame img,
  .water-wedding-poster-frame img{max-width:100%;max-height:none;width:100%;height:auto;}
  .water-wedding-info div{grid-template-columns:76px 1fr;}
}

/* Shared secondary-page title system */
:root{
  --section-title-x:68px;
  --section-title-y:46px;
  --video-page-x:38px;
}
.section-page-title{
  margin:0;
  font-size:30px;
  line-height:1.1;
  font-weight:400;
  letter-spacing:-.03em;
  white-space:nowrap;
}
.page{padding-top:var(--section-title-y);}
.page-title{transform:none;}
.photo-head{
  width:calc(100vw - 136px);
  margin-left:calc(50% - 50vw + var(--section-title-x));
}
.video{
  padding-top:var(--section-title-y);
  padding-left:var(--video-page-x);
  padding-right:var(--video-page-x);
}
.video-title{margin-left:calc(var(--section-title-x) - var(--video-page-x));}
.design-title{
  top:var(--section-title-y);
  left:var(--section-title-x);
}

@media(max-width:900px){
  :root{
    --section-title-x:24px;
    --section-title-y:58px;
    --video-page-x:24px;
  }
  .photo-head{
    width:100%;
    margin-left:0;
  }
  .video-title{margin-left:0;}
  .design{padding-top:var(--section-title-y);}
  .design-title{margin-left:var(--section-title-x);}
}

/* v3.2.1 — Photography catalog: series first, singles second. */
.page-photography{
  width:100%;
  max-width:none;
  padding:var(--section-title-y) var(--section-title-x) 120px;
}
.page-photography .photo-head{
  width:100%;
  margin:0 0 72px;
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:32px;
}
.page-photography .tiny-note{
  color:#999;
  font-size:11px;
  line-height:1.4;
  letter-spacing:.02em;
  white-space:nowrap;
}
.photo-catalog-section + .photo-catalog-section{margin-top:120px;}
.photo-catalog-head{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:24px;
  margin-bottom:32px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(47,26,184,.14);
}
.photo-catalog-title{
  margin:0;
  display:flex;
  align-items:baseline;
  gap:9px;
  font-size:16px;
  line-height:1.2;
  font-weight:400;
  letter-spacing:-.02em;
}
.photo-section-index,
.photo-section-en,
.photo-section-count{
  font-size:10px;
  line-height:1.2;
  letter-spacing:.1em;
}
.photo-catalog-series .photo-catalog-title{color:#2f1ab8;}
.photo-catalog-singles .photo-catalog-title{color:#333;}
.photo-catalog-singles .photo-catalog-head{border-bottom-color:rgba(51,51,51,.14);}
.photo-section-count{color:#999;white-space:nowrap;}
.photo-catalog-grid{
  display:grid;
  align-items:start;
}
.photo-series-catalog-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:64px 32px;
}
.photo-single-catalog-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:56px 28px;
}
.photo-section-card{
  display:block;
  width:100%;
  min-width:0;
  color:var(--purple);
  text-decoration:none;
}
.photo-section-card .thumb{
  width:100%;
  height:auto;
  max-height:none;
  aspect-ratio:auto;
  overflow:visible;
  border:0;
  background:transparent;
}
.photo-section-card .thumb img{
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  transform:none;
}
.photo-section-card:hover .thumb img{transform:none;}
.photo-section-card:hover{opacity:.78;}
.photo-section-card .caption{
  margin-top:12px;
  font-size:13px;
  line-height:1.35;
  color:var(--purple);
}
.photo-section-card .caption-meta{
  margin-top:5px;
  font-size:10px;
  line-height:1.4;
  color:#999;
}
.photo-section-card.is-untitled .caption-meta{margin-top:12px;}
.photo-section-card.is-series .photo-type-label{color:#2f1ab8;}
.photo-section-card.is-single .photo-type-label{color:#333;}
.photo-meta-detail{color:#999;}

@media(max-width:1200px){
  .photo-single-catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}

@media(max-width:900px){
  .page-photography{padding-bottom:88px;}
  .page-photography .photo-head{margin-bottom:56px;}
  .photo-catalog-section + .photo-catalog-section{margin-top:96px;}
  .photo-series-catalog-grid,
  .photo-single-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .photo-series-catalog-grid{gap:52px 20px;}
  .photo-single-catalog-grid{gap:46px 18px;}
}

@media(max-width:600px){
  .page-photography .photo-head{display:block;}
  .page-photography .tiny-note{margin-top:12px;}
  .photo-catalog-head{margin-bottom:24px;}
  .photo-series-catalog-grid,
  .photo-single-catalog-grid{grid-template-columns:1fr;gap:44px;}
}
