main[data-block-version="1"]{width:min(90%,1120px);margin:auto;padding-block:clamp(24px,4vw,64px)}
[data-block]{padding:clamp(22px,4vw,48px) 0;border-top:1px solid #c5a880;min-width:0;overflow-wrap:anywhere}
[data-block] :is(.wrap,.page-head,.hero,.breadcrumbs,.details,.team-section,.metrics,.case-overview){width:100%;max-width:none;margin:0;padding:0;border:0}
[data-block] :is(.hero,.case-overview,.details){display:block;min-height:0}
[data-block] .hero :is(.intro,figure){min-height:0;padding:0}
[data-block] .hero img{position:static;width:100%;height:auto}
[data-block] figure{margin:0}
[data-block="cover"]{border:0;padding-top:0}
[data-block="cover"] figure{margin-top:20px}
[data-block="cover"] figure img{display:block;max-height:65vh;width:100%;object-fit:contain;background:#e5e8ea}
[data-block="specs"] dl{max-width:850px}
[data-block] :is(.team-section,.metrics){background:transparent;color:inherit}
[data-block] :is(.team-section,.metrics) :is(p,label,small){color:#525b61}
[data-block] .pb-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:20px}
[data-block] .pb-items img{width:100%;height:auto}
@media(min-width:801px){
 [data-block="cover"]:has(>.page-head):has(>figure){display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:48px;align-items:center}
 [data-block="cover"]>figure{margin:0}
 [data-block="cover"] .hero{display:grid;grid-template-columns:1fr 1.15fr;gap:40px;align-items:center}
}
[data-block="specs"] .specs>div{grid-template-columns:minmax(6em,25%) 1fr}
[data-block] .image-zoom{max-width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}

/* Case detail pages: cover spread, facts ledger and editorial chapters. */
main[data-block-version]{width:min(91%,1160px);padding-block:clamp(24px,5vw,72px);color:#28343b}
[data-block]{border:0;padding-block:clamp(28px,4vw,58px)}
[data-block]+[data-block]{border-top:1px solid #c5a880}
[data-block="cover"] .crumb,[data-block="cover"] .breadcrumbs{font-size:13px;color:#667783;margin-bottom:20px}
[data-block="cover"] :is(.page-title,.intro h1){font-size:clamp(32px,4vw,60px);letter-spacing:.035em;line-height:1.25;margin:16px 0}
[data-block="cover"] .eyebrow{color:#49687d}
[data-block="cover"] figure{background:#e8e8e3}
[data-block="cover"] figcaption{position:static;background:transparent;color:#49575d;padding:10px 12px;font-size:13px}
[data-block="specs"] :is(.case-overview>div,.details){display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,2fr);column-gap:clamp(24px,5vw,72px);align-content:start}
[data-block="specs"] :is(.case-overview>div,.details)>*{grid-column:1}
[data-block="specs"] :is(.case-overview>div,.details)>dl{grid-column:2;grid-row:1/span 12;width:100%;margin:0}
[data-block="specs"] .specs>div{padding:12px 0;line-height:1.6}
[data-block="features"] :is(.case-highlights,.heping-highlights,.features,ul),[data-block="team"] .team{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px;padding:0;list-style:none}
[data-block="features"] :is(li,article),[data-block="team"] :is(.team>div,.pb-items>article){background:#eceeea;padding:20px;border:0;border-top:2px solid #b99e75}
[data-block="gallery"] :is(.gallery,.meeting-gallery,.pb-items),[data-block="journal"] :is(.heping-gallery,.taian-journal-grid,.pb-items){display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:22px;overflow:visible}
[data-block] :is(.meeting-gallery,.taian-journal-grid,.gallery,.heping-gallery)>*{width:100%;grid-column:auto}
[data-block="journal"] figcaption{border-left:2px solid #c5a880;padding-left:14px}
[data-block="story"] p{max-width:66ch;line-height:1.85}
@media(max-width:750px){
 [data-block="specs"] :is(.case-overview>div,.details){display:block}
 [data-block="specs"] dl{margin-top:20px}
 [data-block="cover"] figure img{max-height:55vh}
}

[data-block][data-layout="wide"] :is(.gallery,.heping-gallery,.meeting-gallery,.taian-journal-grid,.pb-items,.team,.features,.heping-highlights,.case-highlights,ul){grid-template-columns:1fr}

/* Keep project facts close to their heading, with a readable measure. */
[data-block="specs"] :is(.case-overview>div,.details){grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);column-gap:clamp(32px,5vw,76px);align-items:start}
[data-block="specs"] :is(.case-overview>div,.details)>dl{grid-row:1/span 20;max-width:720px}
[data-block="specs"] :is(.case-overview>div,.details)>:not(dl){max-width:440px}
[data-block="specs"] :is(.case-overview>div,.details) h2{margin:14px 0 26px;line-height:1.35}
[data-block="specs"] .case-amount{margin:8px 0 0;line-height:1.1}
[data-block="specs"] .specs>div{grid-template-columns:minmax(100px,32%) minmax(0,1fr);gap:18px;padding:10px 0;align-items:baseline}
[data-block="specs"] .specs>div:has(>dd:empty){display:none}
[data-block="specs"] .specs dd{overflow-wrap:normal;word-break:break-word}
@media(max-width:750px){
 [data-block="specs"] :is(.case-overview>div,.details){display:block}
 [data-block="specs"] :is(.case-overview>div,.details)>dl{max-width:none;margin-top:28px}
 [data-block="specs"] .specs>div{grid-template-columns:minmax(86px,32%) minmax(0,1fr)}
}

/* Open project profile: the amount leads, its label follows below. */
[data-block="specs"] .case-profile-summary{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:flex-start;min-width:0}
[data-block="specs"] .case-overview .case-profile-summary>h2{margin:14px 0 clamp(20px,3vw,38px)}
[data-block="specs"] .case-profile-summary>.case-amount+p{margin:12px 0 0;color:#62727c;font-size:clamp(14px,1.25vw,17px);line-height:1.6}
[data-block="specs"] .case-amount{
 position:relative;isolation:isolate;display:flex;align-items:baseline;gap:clamp(6px,1vw,14px);
 width:100%;max-width:440px;margin:0;padding:0;overflow:visible;
 background:none;color:#a9824a;box-shadow:none;text-shadow:none;
 font:400 clamp(92px,11vw,170px)/1 Georgia,"Noto Serif TC",serif;
 letter-spacing:-.065em;white-space:nowrap;font-variant-numeric:lining-nums;
}
[data-block="specs"] .case-amount:has(.amount-holo){perspective:900px}
[data-block="specs"] .amount-unit{
 flex:none;font:400 clamp(28px,3vw,42px)/1 "Noto Serif TC",Georgia,serif;
 letter-spacing:0;color:#a9824a;
}
[data-block="specs"] .amount-holo{
 position:relative;display:inline-block;transform-style:preserve-3d;
 animation:amount-holo-wobble 6.2s ease-in-out infinite;
}
[data-block="specs"] .amount-holo__layer{
 display:block;white-space:nowrap;line-height:1;
 background:linear-gradient(105deg,#785a32 0%,#cfae70 28%,#a7824d 52%,#edd4a0 68%,#8b683c 100%);
 -webkit-background-clip:text;background-clip:text;color:transparent;
 -webkit-text-stroke:1px #b5945d99;
 backface-visibility:hidden;transform-style:preserve-3d;
}
[data-block="specs"] .amount-holo__layer--back,
[data-block="specs"] .amount-holo__layer--mid{position:absolute;inset:0 auto auto 0;pointer-events:none}
[data-block="specs"] .amount-holo__layer--back{opacity:.2;filter:blur(1.5px);transform:translateZ(0)}
[data-block="specs"] .amount-holo__layer--mid{opacity:.48;filter:blur(.5px);transform:translateZ(22px)}
[data-block="specs"] .amount-holo__layer--front{
 position:relative;opacity:1;filter:drop-shadow(0 9px 13px #735d3e44);
 transform:translateZ(46px);
}
@keyframes amount-holo-wobble{
 0%,100%{transform:rotateX(16deg) rotateY(-18deg)}
 50%{transform:rotateX(18deg) rotateY(18deg)}
}

/* Project highlights: compact brand cards with a quiet corner reveal. */
[data-block="features"] :is(.case-highlights,.heping-highlights,ul){
 counter-reset:case-feature;display:flex;flex-wrap:wrap;justify-content:center;
 gap:clamp(14px,2vw,22px);max-width:none;margin:clamp(22px,3vw,36px) 0 0;padding:0;list-style:none;
}
[data-block="features"] :is(.case-highlights,.heping-highlights,ul)>li{
 counter-increment:case-feature;position:relative;z-index:0;isolation:isolate;display:flex;flex-direction:column;
 flex:0 1 calc((100% - 2 * clamp(14px,2vw,22px))/3);min-width:0;min-height:148px;
 margin:0;padding:clamp(22px,2.2vw,28px);overflow:hidden;border:1px solid #e2d8c8;border-radius:12px;
 background:#f3f1ec;color:#28343b;font-size:clamp(17px,1.35vw,19px);font-weight:500;letter-spacing:.025em;line-height:1.65;
 box-shadow:none;transition:color .3s ease,border-color .3s ease,transform .3s ease;
}
[data-block="features"] :is(.case-highlights,.heping-highlights,ul)>li::before{
 content:counter(case-feature,decimal-leading-zero);display:block;margin-bottom:12px;
 font:400 21px/1.2 Georgia,serif;color:#9c7d4e;letter-spacing:.02em;
 transition:color .3s ease;
}
 [data-block="features"] :is(.case-highlights,.heping-highlights,ul)>li::after{
 content:"";position:absolute;z-index:-1;top:-18px;right:-18px;width:36px;height:36px;
 border-radius:50%;background:#796443;transform:scale(1);transition:transform .38s ease-out;
 }
[data-block="features"][data-layout="wide"] :is(.case-highlights,.heping-highlights,ul)>li{flex-basis:100%;min-height:0}
@media(hover:hover){
 [data-block="features"] :is(.case-highlights,.heping-highlights,ul)>li:hover{color:#fff;border-color:#796443;transform:translateY(-3px)}
 [data-block="features"] :is(.case-highlights,.heping-highlights,ul)>li:hover::before{color:#ead6af}
 [data-block="features"] :is(.case-highlights,.heping-highlights,ul)>li:hover::after{transform:scale(32)}
}
@media(max-width:900px){
 [data-block="features"] :is(.case-highlights,.heping-highlights,ul)>li{flex-basis:calc((100% - clamp(14px,2vw,22px))/2)}
}
@media(max-width:750px){
 [data-block="specs"] .case-amount{font-size:clamp(82px,19vw,116px)}
 [data-block="specs"] .amount-unit{font-size:clamp(25px,6vw,34px)}
 [data-block="features"] :is(.case-highlights,.heping-highlights,ul){margin-top:20px}
}
@media(max-width:560px){
 [data-block="features"] :is(.case-highlights,.heping-highlights,ul)>li{flex-basis:100%;min-height:0;padding:22px;font-size:18px}
 [data-block="features"] :is(.case-highlights,.heping-highlights,ul)>li::before{margin-bottom:10px;font-size:20px}
}
@media(prefers-reduced-motion:reduce){[data-block="specs"] .amount-holo{animation:none;transform:none}[data-block="features"] :is(.case-highlights,.heping-highlights,ul)>li,[data-block="features"] :is(.case-highlights,.heping-highlights,ul)>li::after{transition:none}}
