*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#171c18;color:#e9ebdf;font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid #b8cf91;outline-offset:7px}::selection{background:#c1d79c;color:#182218}.grain{position:fixed;inset:0;z-index:12;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.6' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}header{position:fixed;z-index:20;left:4vw;right:4vw;top:28px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand img{display:block;width:190px;height:auto}.top-index{display:flex;flex-direction:column;align-items:center;gap:12px;font-size:8px;letter-spacing:2px;position:absolute;left:50%;transform:translateX(-50%);color:#b9c3ad}.bars{width:120px;height:15px;display:block;background:repeating-linear-gradient(90deg,#d2dfbd77 0 1px,transparent 1px 5px);mask-image:linear-gradient(90deg,transparent,#000 15% 85%,transparent)}.nav-current{font-size:11px;letter-spacing:1px;border-bottom:1px solid #9eac8855;padding:9px 0}.overview{position:absolute;inset:0;transition:opacity .45s,transform .8s cubic-bezier(.2,.8,.2,1)}.intro{position:absolute;left:6vw;top:25%;z-index:2;pointer-events:none}.eyebrow{font:9px monospace;letter-spacing:2px;color:#9ca892;margin:0 0 28px}h1{font-size:clamp(46px,5.4vw,90px);font-weight:500;line-height:1.2;letter-spacing:-.055em;margin:0}h1 span{color:#bbcf9c}.intro-note{font-size:11px;line-height:1.9;margin:25px 0 0;color:#a7b09d;letter-spacing:1px}.gallery-wrap{position:absolute;left:47vw;right:6vw;top:37%;height:34%;max-height:350px}.strips{display:flex;gap:9px;align-items:center;height:100%;perspective:1200px;touch-action:pan-y}.strip{position:relative;flex:1;min-width:0;height:100%;overflow:hidden;transition:flex .8s cubic-bezier(.19,1,.22,1),transform .8s cubic-bezier(.19,1,.22,1),filter .6s;filter:saturate(.5) brightness(.8);transform:translateY(var(--offset,0));background:#263128;isolation:isolate}.strip:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#09120dba,transparent 60%);z-index:1}.strip img{height:100%;width:100%;object-fit:cover;object-position:var(--position,65%) center;display:block;transition:transform 1.1s cubic-bezier(.19,1,.22,1);transform:scale(1.12)}.strip:hover,.strip:focus-visible{flex:1.9;filter:saturate(.95) brightness(1);transform:translateY(-13px)}.strip:hover img{transform:scale(1.02)}.strip .number{position:absolute;top:12px;left:12px;font:9px monospace;color:#fff;z-index:2}.strip .title{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);writing-mode:vertical-rl;text-orientation:upright;font-size:12px;letter-spacing:5px;color:#fff;z-index:2;white-space:nowrap}.gallery-caption{display:flex;justify-content:space-between;margin-top:30px;gap:15px;font-size:9px;letter-spacing:1px;color:#a2ad97}.gallery-caption span:last-child{color:#d0ddbb}.overview-meta{position:absolute;left:6vw;right:6vw;bottom:17%;display:flex;justify-content:space-between;font:8px monospace;letter-spacing:2px;color:#7d8a75}.overview-meta:after{content:"";position:absolute;left:0;right:0;top:-16px;height:1px;background:#a3b58e22}footer{position:fixed;z-index:20;bottom:28px;left:4vw;right:4vw;display:flex;align-items:end;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:1px}.footer-brand{font-size:11px;line-height:1.6}.footer-brand span{font-size:8px;color:#899580;letter-spacing:.5px}.footer-hint{position:absolute;left:50%;transform:translateX(-50%);font:8px monospace;color:#8f9d84;letter-spacing:1px}footer a{display:flex;align-items:center;gap:35px;border-bottom:1px solid #b4c49a66;padding:8px 0}footer a span{font-size:24px;transition:transform .4s}footer a:hover span{transform:translate(4px,-4px)}.detail{position:absolute;inset:0;visibility:hidden;opacity:0;z-index:5;transition:opacity .4s,visibility .4s;pointer-events:none}.detail-count{position:absolute;top:18%;left:6vw;font:9px monospace;letter-spacing:3px;color:#9dab8f}.headline-wrap{position:absolute;left:6vw;right:5vw;top:25%;z-index:4;pointer-events:none}h2{font-size:clamp(56px,7.6vw,126px);font-weight:550;line-height:1.12;letter-spacing:-.055em;margin:0;text-shadow:0 2px 40px #0c180e44;outline:none}h2 em{font-style:normal;color:#c1dca0}.title-line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}.title-inner{display:block;transform:translateY(112%);transition:transform 1s cubic-bezier(.19,1,.22,1);transition-delay:calc(var(--n)*.1s)}.detail-copy{position:absolute;left:6vw;top:62%;max-width:31vw;z-index:4;opacity:0;transform:translateY(12px);transition:opacity .6s .35s,transform .8s .35s}.detail-kicker{font:8px monospace;letter-spacing:2px;color:#bace9f;margin:0 0 12px}.detail-description{font-size:12px;line-height:1.9;letter-spacing:.5px;margin:0;color:#c0c8b6}.detail-proof{font-size:9px;line-height:1.7;color:#8c9a80;margin:15px 0 0}.media-stage{position:fixed;z-index:3;overflow:hidden;pointer-events:none;display:none;background:#223026;box-shadow:0 20px 100px #0002}.media-stage img{width:100%;height:100%;object-fit:cover;object-position:65% center;display:block;will-change:transform}.media-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#15211733,transparent 50%);pointer-events:none}.detail-media-caption{position:absolute;left:41vw;right:6vw;bottom:18%;font:8px monospace;letter-spacing:2px;color:#8e9e82;display:flex;justify-content:space-between}.detail-bottom{position:absolute;left:6vw;right:6vw;bottom:11.5%;display:flex;justify-content:space-between;align-items:center;pointer-events:auto}.back{font-size:10px;letter-spacing:1px;border-bottom:1px solid #adbf9466;padding:8px 0}.detail-controls{display:flex;align-items:center;gap:22px}.detail-controls button{width:38px;height:32px;border:1px solid #b5c89b33;transition:background .3s}.detail-controls button:hover{background:#a4ba8222}.detail-controls span{font:9px monospace;color:#c2cfb1}.cursor{position:fixed;left:0;top:0;width:62px;height:62px;border-radius:50%;background:#d4e3bd;color:#172119;display:grid;place-items:center;z-index:30;pointer-events:none;opacity:0;scale:.6;transition:opacity .25s,scale .35s;font-size:10px;letter-spacing:1px}.cursor.active{opacity:1;scale:1}.is-detail .overview{opacity:0;transform:scale(.96);pointer-events:none}.is-detail .detail{opacity:1;visibility:visible}.is-detail.ready .title-inner{transform:translateY(0)}.is-detail.ready .detail-copy{opacity:1;transform:translateY(0)}.is-detail .footer-hint{opacity:0}.is-switching .title-inner{transition:transform .22s;transition-delay:0s;transform:translateY(-115%)}.is-switching .detail-copy{opacity:0;transition:opacity .2s;transform:translateY(-8px)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:1600px){.gallery-wrap{left:46vw;top:34%;height:39%}.intro{top:26%}.strips{gap:12px}}@media(max-width:1000px){.brand img{width:165px}.top-index{display:none}.intro{top:20%}h1{font-size:52px}.eyebrow{font-size:8px;margin-bottom:20px}.intro-note{font-size:10px}.gallery-wrap{left:43vw;right:5vw;top:39%;height:30%}.strips{gap:6px}.strip .number{left:7px;font-size:8px}.strip .title{font-size:10px;letter-spacing:3px}.gallery-caption{font-size:8px;letter-spacing:0;line-height:1.5;margin-top:24px}.overview-meta{bottom:17%}.footer-hint{display:none}.detail-count{top:18%;font-size:8px}h2{font-size:64px}.headline-wrap{top:27%;right:4vw}.detail-copy{top:62%;max-width:33vw}.detail-description{font-size:10px}.detail-kicker{font-size:7px}.detail-proof{font-size:8px;margin-top:10px}.detail-media-caption{bottom:19%;font-size:7px;letter-spacing:.5px}.detail-bottom{bottom:12%}}@media(max-width:600px){header{top:22px;left:6vw;right:6vw}.brand img{width:155px}.nav-current{font-size:9px}.intro{top:18%;left:7vw}.eyebrow{font-size:7px;letter-spacing:1.5px;margin-bottom:18px}h1{font-size:50px}.intro-note{font-size:10px;line-height:1.8;margin-top:20px}.gallery-wrap{left:7vw;right:7vw;top:51%;height:25%;max-height:none}.strips{gap:5px}.strip{transform:none}.strip:hover{flex:1.3;transform:translateY(-7px)}.strip .number{font-size:7px;left:5px;top:8px}.strip .title{font-size:10px;letter-spacing:3px;bottom:12px}.gallery-caption{margin-top:18px;font-size:8px}.overview-meta{display:none}footer{left:6vw;right:6vw;bottom:22px}.footer-brand{font-size:9px}.footer-brand span{font-size:7px}footer a{font-size:9px;gap:17px}.detail-count{top:16%;left:7vw}.headline-wrap{top:22%;left:7vw;right:5vw}h2{font-size:49px;line-height:1.15}.detail-copy{top:auto;bottom:22%;left:7vw;max-width:78vw;pointer-events:none}.detail-description{font-size:11px;line-height:1.8;max-width:310px}.detail-proof{font-size:8px;max-width:310px}.detail-kicker{font-size:8px;margin-bottom:10px}.detail-media-caption{display:none}.detail-bottom{left:7vw;right:7vw;bottom:13%}.back{font-size:9px}.detail-controls{gap:14px}.detail-controls button{width:33px}.detail-controls span{font-size:8px}.media-stage:after{background:linear-gradient(0deg,#101d16d9,transparent 70%)}.cursor{display:none}}@media(max-height:650px) and (min-width:601px){header{top:20px}.intro{top:22%}h1{font-size:47px}.eyebrow{font-size:7px;margin-bottom:18px}.intro-note{font-size:10px;margin-top:17px}.gallery-wrap{top:34%;height:35%}.gallery-caption{margin-top:22px}.overview-meta{bottom:17%}.headline-wrap{top:24%}h2{font-size:57px}.detail-copy{top:60%;max-width:34vw}.detail-kicker{margin-bottom:8px}.detail-description{font-size:10px;line-height:1.8}.detail-proof{font-size:8px;margin-top:8px}.detail-bottom{bottom:13%}.detail-media-caption{bottom:21%}footer{bottom:20px}.detail-count{top:17%}}@media(max-height:650px) and (max-width:600px){.intro{top:18%}h1{font-size:40px}.intro-note{display:none}.gallery-wrap{top:47%;height:27%}.headline-wrap{top:23%}h2{font-size:42px}.detail-copy{bottom:24%}.detail-proof{display:none}.detail-description{font-size:10px}.detail-bottom{bottom:13%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.cursor{display:none}}
@media(max-width:420px){h2{font-size:46px}}
/* Warm paper / forest green, applied to the overview and every expanded theme. */
body{background:#f4f3ed;color:#203d2a}.grain{opacity:.025;mix-blend-mode:multiply}.top-index{color:#526b48;font-size:10px;letter-spacing:3px}.bars{background:repeating-linear-gradient(90deg,#647e4677 0 1px,transparent 1px 5px)}.nav-current{border-color:#82936b55}.eyebrow{color:#67775e}h1 span{color:#6a883d}.intro-note{color:#64715c}.strip{filter:saturate(.8) brightness(.96);box-shadow:0 8px 22px #3443290a}.strip:hover,.strip:focus-visible{filter:saturate(1) brightness(1.03)}.strip:after{background:linear-gradient(0deg,#0b1b10bc,transparent 65%)}.gallery-caption{color:#66765c}.gallery-caption span:last-child{color:#3e5c2f}.overview-meta{color:#6e7c64}.overview-meta:after{background:#76866933}.footer-brand span{color:#75816b}.footer-hint{color:#78866c}footer a{border-color:#758c5c77}.detail-count{color:#6c7f5b}h2{text-shadow:0 1px 30px #f4f3ed22}h2 em{color:#64883b}.detail-kicker{color:#5f7b40}.detail-description{color:#43563a}.detail-proof{color:#77846c}.media-stage{background:#e2e4d8;box-shadow:0 20px 70px #273b1d13}.media-stage:after{background:linear-gradient(90deg,#f4f3ed22,transparent 45%)}.detail-media-caption{color:#748466}.back{border-color:#72895a66}.detail-controls button{border-color:#70875b44}.detail-controls button:hover{background:#829e5922}.detail-controls span{color:#4c663b}.cursor{background:#24462d;color:#f3f5e9}.intro{max-width:42vw}h1{font-size:clamp(44px,4.7vw,78px);line-height:1.22;letter-spacing:-.055em}.brand img{width:190px}@media(max-width:1000px){h1{font-size:43px}.brand img{width:165px}}@media(max-width:600px){.intro{max-width:90vw}h1{font-size:44px}.brand img{width:155px}.media-stage:after{background:linear-gradient(0deg,#f4f3ed99,transparent 65%)}}@media(max-height:650px) and (min-width:601px){h1{font-size:40px}}@media(max-height:650px) and (max-width:600px){h1{font-size:37px}}
.stage-bim{display:none;position:absolute;right:12px;bottom:12px;width:27%;height:34%;background:#fff;border:1px solid #c2ccb6;box-shadow:0 4px 20px #273b1d18;z-index:2}.stage-bim img{height:calc(100% - 18px);width:100%;object-fit:contain}.stage-bim span{display:block;font:7px monospace;text-align:center;letter-spacing:1px;color:#476136;line-height:18px}.media-stage[data-technical="true"] .stage-bim{display:block}.media-stage[data-technical="true"]{background:#f5f8f5}.media-stage[data-technical="true"]:after{display:none}.strip img.strip-secondary{position:absolute;left:0;bottom:0;width:100%;height:34%;object-fit:cover;object-position:50%;background:#f7f8f5;border-top:1px solid #d5dbce}.strip[data-technical="true"]>img:first-child{height:66%;object-position:50% center}.strip[data-technical="true"]:after{background:linear-gradient(0deg,#152710bb,transparent 65%)}@media(min-width:601px) and (max-width:1000px){.top-index{display:flex;font-size:8px}.bars{width:75px;height:12px}}@media(max-width:600px){.top-index{display:flex;top:58px;gap:0;font-size:9px;letter-spacing:3px}.bars{display:none}.stage-bim{width:33%;height:29%;right:8px;bottom:8px}.stage-bim span{font-size:6px;letter-spacing:0}}
/* Keep 城市合伙人计划 together; show the complete climbing figure. */
h1{font-size:clamp(32px,4.45vw,74px)}h1 span{white-space:nowrap}.intro{max-width:44vw}.media-stage[data-full-figure="true"]{background:#eeeae0;box-shadow:none}.media-stage[data-full-figure="true"]:after{display:none}@media(max-width:1000px){h1{font-size:clamp(29px,4.45vw,44px)}}@media(max-width:600px){h1{font-size:clamp(31px,8.4vw,46px)}.intro{max-width:90vw}}@media(max-height:650px) and (min-width:601px){h1{font-size:clamp(29px,4.3vw,44px)}}@media(max-height:650px) and (max-width:600px){h1{font-size:32px}}
/* A varied silhouette: eight independent heights and staggered baselines. */
.strip{height:var(--strip-height,100%)}.strip:hover,.strip:focus-visible{transform:translateY(calc(var(--offset,0px) - 10px))}@media(max-width:600px){.strip{height:var(--strip-height,100%);transform:translateY(calc(var(--offset,0px)*.55))}.strip:hover,.strip:focus-visible{transform:translateY(calc(var(--offset,0px)*.55 - 6px))}}
.gallery-caption{margin-top:44px}@media(max-height:650px) and (min-width:601px){.gallery-caption{margin-top:34px}}@media(max-width:600px){.gallery-caption{margin-top:34px}}
/* Hover lifts the whole panel in both axes; its neighbours keep their spacing. */
.strip{overflow:visible;z-index:1;transform-origin:center center;transition:transform .75s cubic-bezier(.19,1,.22,1),filter .6s,box-shadow .6s}.strip img{clip-path:inset(0);transform:scale(1)}.strip:hover,.strip:focus-visible{flex:1;z-index:8;transform:translateY(calc(var(--offset,0px) - 11px)) scale(1.15);box-shadow:0 22px 34px #26391f26;animation:panel-float 2.7s .65s ease-in-out infinite}.strip:hover img{transform:scale(1)}@keyframes panel-float{0%,100%{transform:translateY(calc(var(--offset,0px) - 11px)) scale(1.15)}50%{transform:translateY(calc(var(--offset,0px) - 18px)) scale(1.17)}}@media(max-width:600px){.strip:hover,.strip:focus-visible{flex:1;transform:translateY(calc(var(--offset,0px)*.55 - 8px)) scale(1.1);animation:none}}@media(prefers-reduced-motion:reduce){.strip:hover,.strip:focus-visible{animation:none;transform:translateY(var(--offset,0px));box-shadow:0 8px 20px #26391f20}}
/* Clear four-direction expansion and lift on pointer entry. */
@media(hover:hover){.strip:hover,.strip:focus-visible{flex:1;z-index:10;transform:translateY(calc(var(--offset,0px) - 22px)) scale(1.3,1.18);box-shadow:0 28px 45px #26391f38;animation:panel-rise 3s .65s ease-in-out infinite}.strip:hover img,.strip:focus-visible img{transform:scale(1)}}@keyframes panel-rise{0%,100%{transform:translateY(calc(var(--offset,0px) - 22px)) scale(1.3,1.18)}50%{transform:translateY(calc(var(--offset,0px) - 29px)) scale(1.32,1.2)}}@media(prefers-reduced-motion:reduce){.strip:hover,.strip:focus-visible{animation:none;transform:translateY(var(--offset,0px)) scale(1.12);box-shadow:0 18px 30px #26391f26}}
/* Campaign lettering: high-contrast Songti with a compact vertical plan seal. */
.art-heading{font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-weight:900;line-height:1.1;letter-spacing:-.06em;position:relative}.art-heading .welcome-line{display:block;color:#203d2a;font-size:clamp(36px,4.1vw,66px);font-weight:400;letter-spacing:.12em;margin:0 0 .35em .015em;white-space:nowrap}.art-heading .partner-line{display:flex;align-items:center;gap:0;white-space:nowrap;font-size:clamp(46px,6vw,98px);font-weight:900;line-height:1.14;letter-spacing:-.07em}.art-heading .city-word{color:#1e3b28}.art-heading .partner-word{color:#64853d}.art-heading .plan-mark{display:inline-block;flex:none;font-family:"Songti SC",serif;font-size:.225em;line-height:1.35;font-weight:600;letter-spacing:.05em;color:#5a753c;border:1px solid #788d5e99;padding:.33em .27em;margin-left:.65em;transform:translateY(.07em);white-space:normal}.art-heading:after{content:"";display:block;width:52px;height:2px;background:#7f965c;margin-top:25px}.intro-note{margin-top:22px}@media(max-width:1000px){.art-heading .welcome-line{font-size:clamp(32px,4.1vw,43px)}.art-heading .partner-line{font-size:clamp(43px,6vw,60px)}.art-heading:after{margin-top:22px}}@media(max-width:600px){.art-heading .welcome-line{font-size:36px;letter-spacing:.16em;margin-bottom:16px}.art-heading .partner-line{font-size:clamp(43px,11vw,62px)}.art-heading:after{margin-top:20px;width:42px}.intro-note{margin-top:18px}}@media(max-height:650px) and (min-width:601px){.art-heading .welcome-line{font-size:32px;margin-bottom:15px}.art-heading .partner-line{font-size:clamp(43px,5.8vw,63px)}.art-heading:after{margin-top:19px}.intro-note{margin-top:17px}}@media(max-height:650px) and (max-width:600px){.art-heading .welcome-line{font-size:29px;margin-bottom:10px}.art-heading .partner-line{font-size:43px}.art-heading:after{margin-top:15px}}
