:root{--navy:#063c62;--blue:#056091;--sky:#e9f5fa;--orange:#ff8a3d;--ink:#102839;--muted:#627987;--line:#d8e6ec;--sand:#f6fafb;--white:#fff;--shadow:0 20px 70px rgba(13,61,84,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);font-family:Inter,"Noto Sans SC","Microsoft YaHei",sans-serif;color:var(--ink);font-size:16px;line-height:1.65}.skip-link{position:fixed;left:12px;top:-50px;background:var(--navy);color:#fff;padding:8px 14px;z-index:10}.skip-link:focus{top:12px}.site-header{height:78px;max-width:1240px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:24px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);font-weight:800;font-size:1.05rem}.brand img{height:39px;width:39px;object-fit:contain}.site-header nav{display:flex;gap:28px}.site-header nav a{color:#3b5666;text-decoration:none;font-size:.93rem}.site-header nav a:hover{color:var(--blue)}.header-cta,.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;text-decoration:none;border:0;cursor:pointer;font:inherit;border-radius:999px}.header-cta{background:var(--navy);color:#fff;padding:10px 18px;font-size:.88rem}.hero{min-height:600px;position:relative;overflow:hidden;background:linear-gradient(105deg,#eef9fc 0%,#f5fbfd 48%,#d2edf5 100%);display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,45%);align-items:center;padding:72px max(32px,calc((100vw - 1176px)/2));gap:42px}.hero-copy{max-width:580px;position:relative;z-index:2}.eyebrow{font-weight:700;color:var(--blue);letter-spacing:.1em;text-transform:uppercase;font-size:.78rem;margin:0 0 14px;display:flex;align-items:center;gap:8px}.eyebrow span{display:inline-block;width:24px;height:2px;background:var(--orange)}.hero h1{font-size:clamp(2.5rem,5vw,5rem);line-height:1.16;letter-spacing:-.06em;margin:0;color:var(--navy)}.hero-lead{font-size:1.1rem;max-width:490px;margin:26px 0 30px;color:#3c596a}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.button{padding:14px 22px;font-weight:700}.button-primary{background:var(--orange);color:#fff;box-shadow:0 12px 22px rgba(255,138,61,.26)}.button-quiet{color:var(--navy);border:1px solid #a6c9d8;background:rgba(255,255,255,.55)}.hero-image{position:absolute;right:0;top:0;width:47%;height:100%;background:linear-gradient(90deg,#e1f3f900 0%,#d9eef5aa 25%,#043d5d33 100%),url('assets/xiamen-coast.jpg') center/cover no-repeat;mix-blend-mode:multiply}.hero-mark{position:absolute;right:max(30px,calc((100vw - 1176px)/2));bottom:38px;color:rgba(6,60,98,.14);font-size:clamp(4rem,11vw,10rem);font-weight:900;line-height:.75;letter-spacing:-.1em;text-align:right}.hero-mark small{font-size:.25em;letter-spacing:.05em}.section{max-width:1176px;margin:auto;padding:112px 32px}.section-heading{max-width:650px}.section-heading h2{font-size:clamp(2rem,3.5vw,3.25rem);line-height:1.2;letter-spacing:-.045em;color:var(--navy);margin:0}.section-heading>p:last-child{color:var(--muted);margin:18px 0 0}.dashboard{margin-top:44px;border:1px solid var(--line);border-radius:28px;padding:42px;display:grid;grid-template-columns:1.1fr .85fr .85fr;align-items:center;gap:30px;background:linear-gradient(135deg,#fff,#f4fbfd);box-shadow:var(--shadow)}.metric-label,.metric-meta,.metric-line{margin:0;color:var(--muted);font-size:.88rem}.metric-number{color:var(--navy);font-weight:900;font-size:clamp(3.3rem,7vw,6.3rem);letter-spacing:-.09em;line-height:1;margin:12px 0}.metric-number small{font-weight:700;font-size:.17em;letter-spacing:0;margin-left:12px}.metric-meta{display:flex;gap:8px;align-items:center}.sync-dot{width:7px;height:7px;border-radius:50%;background:#a7bbc5}.sync-dot.live{background:#11a779;box-shadow:0 0 0 5px rgba(17,167,121,.12)}.metric-line{border-top:1px solid var(--line);margin-top:28px;padding-top:18px;display:flex;gap:7px;align-items:baseline}.metric-line strong{color:var(--orange);font-size:1.15rem}.earth-progress{width:min(250px,100%);aspect-ratio:1;position:relative;margin:auto}.earth-progress svg{width:100%;height:100%;transform:rotate(-90deg)}.orbit-base,.orbit-progress{fill:none;stroke-width:8}.orbit-base{stroke:#d7e9ef}.orbit-progress{stroke:var(--orange);stroke-linecap:round;stroke-dasharray:584.34;stroke-dashoffset:584.34;transition:stroke-dashoffset 1.2s cubic-bezier(.2,.8,.2,1)}.land{fill:#b9dfe9}.earth-center{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center}.earth-center strong{font-size:2rem;color:var(--navy);letter-spacing:-.07em}.earth-center span{font-size:.75rem;color:var(--muted)}.finish-flag{position:absolute;right:4px;top:15px;color:var(--orange);font-size:.72rem;font-weight:800;background:#fff;border:1px solid #ffd4bb;border-radius:6px;padding:2px 7px}.side-metrics{border-left:1px solid var(--line);padding-left:30px;display:grid;gap:22px}.side-metrics div{display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:baseline}.side-metrics span{font-size:.88rem;color:var(--muted)}.side-metrics strong{font-size:1.65rem;color:var(--navy);line-height:1}.side-metrics small{font-size:.75rem;color:var(--muted)}.city-map-card{margin-top:26px;border-radius:24px;padding:30px;background:var(--navy);color:#fff}.map-heading{display:flex;justify-content:space-between;gap:30px;align-items:end}.map-heading .eyebrow{color:#8bd1e7}.map-heading h3{font-size:1.6rem;margin:0;line-height:1.25}.map-heading>p{font-size:.84rem;color:#b8d4df;max-width:230px;margin:0}.map-surface{height:290px;margin:28px 0 18px;position:relative;overflow:hidden;border-radius:14px;border:1px solid rgba(178,224,237,.25);background:radial-gradient(circle at 25% 35%,#16729a 0 1px,transparent 2px),radial-gradient(circle at 70% 63%,#16729a 0 1px,transparent 2px),linear-gradient(135deg,#064d76,#0b3857)}.map-grid{position:absolute;inset:0;opacity:.2;background-image:linear-gradient(90deg,transparent 49.5%,#bce6f4 50%,transparent 50.5%),linear-gradient(0deg,transparent 49.5%,#bce6f4 50%,transparent 50.5%);background-size:11.11% 100%,100% 20%}.map-empty{position:absolute;inset:0;display:grid;place-items:center;color:#c5e3ed;font-size:.95rem}.map-pin{position:absolute;display:grid;gap:4px;transform:translate(-50%,-50%);text-align:center;cursor:default}.map-pin i{width:14px;height:14px;border-radius:50% 50% 50% 0;background:var(--orange);transform:rotate(-45deg);margin:auto;box-shadow:0 0 0 6px rgba(255,138,61,.16)}.map-pin b{font-size:.76rem;color:#fff;font-weight:700;white-space:nowrap}.map-pin.recent i{background:#6ee4b7;box-shadow:0 0 0 6px rgba(110,228,183,.16)}.map-legend{display:flex;gap:20px;color:#c5e3ed;font-size:.78rem}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--orange);margin-right:5px}.legend-dot.latest{background:#6ee4b7}.how{background:var(--sand);max-width:none;padding-left:max(32px,calc((100vw - 1112px)/2));padding-right:max(32px,calc((100vw - 1112px)/2))}.compact{max-width:760px}.steps{padding:0;margin:44px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;list-style:none}.steps li{background:#fff;padding:30px;border-radius:18px;border-top:3px solid #9fd6e7}.steps span{font-size:.82rem;color:var(--orange);font-weight:800}.steps h3{font-size:1.25rem;margin:13px 0 8px;color:var(--navy)}.steps p{color:var(--muted);font-size:.94rem;margin:0}.row-heading{max-width:none;display:flex;justify-content:space-between;gap:25px;align-items:end}.row-heading>p{font-size:.86rem;color:var(--muted);max-width:240px;margin:0}.story-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:18px;margin-top:42px}.story-card{min-height:296px;border:1px solid var(--line);border-radius:18px;padding:26px;display:flex;flex-direction:column;justify-content:end}.featured{background:#eef8fb;justify-content:space-between}.story-route{height:106px;position:relative;color:var(--blue);font-weight:800;font-size:1.05rem}.story-route span{position:absolute;left:0;top:0}.story-route b{position:absolute;right:0;bottom:5px;font-size:3rem;letter-spacing:-.1em;line-height:.9}.story-route small{position:absolute;right:0;bottom:-18px;color:var(--orange);font-size:.7rem}.route-line{position:absolute;left:12px;right:8px;top:46px;height:40px;border-top:4px solid var(--orange);border-radius:48% 52% 45% 55%;transform:rotate(-7deg)}.route-line:before,.route-line:after{content:"";position:absolute;width:11px;height:11px;border-radius:50%;background:var(--blue);top:-8px}.route-line:before{left:0}.route-line:after{right:0}.story-meta{font-size:.76rem;color:var(--blue);font-weight:700;margin:0 0 10px}.story-body h3,.story-card h3{font-size:1.36rem;line-height:1.25;color:var(--navy);margin:0 0 12px}.story-body>p:not(.story-meta),.story-card.coming>p:not(.story-meta){margin:0;color:var(--muted);font-size:.9rem}.story-note{display:block;margin-top:16px;color:#60808f;font-size:.73rem}.coming{background:#fff}.rules{padding-top:40px}.rule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:38px}.rule-grid article{padding:30px;border-radius:17px;background:var(--navy);color:#fff}.rule-grid article:nth-child(2){background:var(--blue)}.rule-grid article:nth-child(3){background:#164f65}.rule-grid p{color:#9fdae9;margin:0 0 26px;font-size:.85rem;font-weight:800}.rule-grid h3{font-size:1.25rem;margin:0 0 12px}.rule-grid strong{font-size:1rem;line-height:1.55;display:block}.rule-grid span{display:block;font-size:.87rem;color:#c3e5ed;margin-top:12px}.rule-footnote{margin:22px 0 0;color:var(--muted);font-size:.83rem}.join{padding:100px 32px;text-align:center;color:#fff;background:linear-gradient(120deg,#063c62,#08719b)}.join .eyebrow{justify-content:center;color:#9ed7e8}.join h2{font-size:clamp(2.2rem,5vw,4.2rem);line-height:1.1;letter-spacing:-.06em;margin:0}.join>p:not(.eyebrow){color:#d4eaf1;margin:18px 0 30px}.button-light{background:#fff;color:var(--navy);padding:15px 25px}.join-guide{margin:18px auto 0;max-width:440px;padding:14px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.23);border-radius:12px;font-size:.9rem}.join-guide span{display:block;color:#fff;font-weight:800;margin-top:3px}footer{max-width:1176px;margin:auto;padding:30px 32px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:#6c8290;font-size:.76rem}footer p{margin:0}footer a{color:#426878;text-decoration:none}@media(max-width:850px){.site-header{padding:0 20px;height:68px}.site-header nav{display:none}.hero{grid-template-columns:1fr;padding:68px 24px 300px;min-height:680px}.hero-image{top:auto;bottom:0;width:100%;height:310px;mix-blend-mode:normal;background:linear-gradient(0deg,rgba(234,248,252,.9),transparent 65%),url('assets/xiamen-coast.jpg') center/cover}.hero-mark{right:20px;bottom:30px;font-size:6.4rem}.section{padding:76px 20px}.dashboard{grid-template-columns:1fr;padding:28px;gap:28px}.earth-progress{width:220px;order:-1}.side-metrics{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.map-heading,.row-heading{display:block}.map-heading>p,.row-heading>p{margin-top:12px}.steps,.story-grid,.rule-grid{grid-template-columns:1fr}.steps{gap:10px;margin-top:28px}.story-card{min-height:220px}.how{padding-left:20px;padding-right:20px}.join{padding:74px 20px}footer{padding:25px 20px;display:block}footer p,footer a{display:block;margin:6px 0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.orbit-progress{transition:none}}
.story-media{margin:-26px -26px 24px;overflow:hidden;border-radius:18px 18px 0 0;background:#d7edf3;cursor:zoom-in}.story-media img{display:block;width:100%;height:330px;object-fit:cover;object-position:center top;background:#0a2535}.story-media figcaption{padding:9px 14px;color:#4f7180;font-size:.76rem}.story-body blockquote{margin:18px 0 0;padding:14px 16px;border-left:3px solid var(--orange);background:rgba(255,255,255,.6);color:var(--navy);font-size:.95rem;line-height:1.6}.image-modal{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:28px;background:rgba(3,18,28,.88)}.image-modal[hidden]{display:none}.image-modal img{max-width:min(92vw,760px);max-height:92vh;width:auto;height:auto;object-fit:contain;box-shadow:0 16px 60px rgba(0,0,0,.35)}.image-modal button{position:absolute;right:22px;top:14px;border:0;background:transparent;color:#fff;font-size:2.8rem;line-height:1;cursor:pointer}
.story-author{display:flex;align-items:center;gap:10px;margin:0 0 14px;color:var(--navy);font-weight:800;font-size:.92rem}.story-author img{width:36px;height:36px;border-radius:50%;object-fit:cover;object-position:center 25%;border:2px solid #fff;box-shadow:0 2px 8px rgba(6,60,98,.14)}
.leaderboard{padding-top:18px}.ranking-grid{margin-top:40px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ranking-card{border:1px solid var(--line);border-radius:22px;padding:28px;background:linear-gradient(135deg,#fff,#f4fbfd);box-shadow:0 12px 36px rgba(13,61,84,.06)}.ranking-heading{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding-bottom:16px;border-bottom:1px solid var(--line)}.ranking-heading>div{display:flex;gap:12px;align-items:baseline}.ranking-heading span{color:var(--orange);font-size:.78rem;font-weight:900}.ranking-heading h3{margin:0;color:var(--navy);font-size:1.3rem}.ranking-heading p{margin:0;color:var(--muted);font-size:.78rem}.ranking-list{margin:0;padding:8px 0 0;list-style:none}.ranking-list li{min-height:49px;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;border-bottom:1px solid #e6eff3}.ranking-list li:last-child{border-bottom:0}.rank-number{font-weight:900;color:#7192a1}.ranking-list li:nth-child(1) .rank-number{color:#e2a334}.ranking-list li:nth-child(2) .rank-number{color:#8195a0}.ranking-list li:nth-child(3) .rank-number{color:#b9794a}.rank-name{color:var(--ink);font-weight:700;font-size:.92rem}.ranking-list strong{color:var(--navy);font-size:1rem}.ranking-list small{color:var(--muted);font-size:.72rem;font-weight:400;margin-left:3px}.ranking-list .rank-empty{display:block;padding:24px 0;min-height:auto;color:var(--muted);font-size:.9rem;text-align:center;border-bottom:0}.story-grid-single{grid-template-columns:minmax(0,1fr)}.story-grid-single .featured{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:0;align-items:stretch;padding:0;overflow:hidden}.story-grid-single .story-media{margin:0;border-radius:0;min-height:100%;display:flex;flex-direction:column}.story-grid-single .story-media img{height:100%;min-height:420px;object-fit:cover;object-position:center top}.story-grid-single .story-body{padding:34px;align-self:center}.mobile-cta{display:none}.modal-open{overflow:hidden}.join-guide small{display:block;color:#c7e5ee;margin-top:8px;font-size:.78rem}@media(max-width:850px){.ranking-grid{grid-template-columns:1fr;margin-top:28px}.leaderboard{padding-top:10px}.story-grid-single .featured{display:block}.story-grid-single .story-media img{height:300px;min-height:0}.story-grid-single .story-body{padding:25px}.mobile-cta{display:flex;position:fixed;z-index:15;right:16px;bottom:16px;align-items:center;gap:8px;padding:11px 17px;border-radius:999px;background:var(--orange);color:#fff;box-shadow:0 12px 26px rgba(255,138,61,.38);font-size:.9rem;font-weight:800;text-decoration:none}.mobile-cta b{font-size:1rem}.ranking-heading p{font-size:.74rem}}
.story-author{display:flex;align-items:center;gap:10px;margin:0 0 14px;color:var(--navy);font-weight:800;font-size:.92rem}.story-author img{width:36px;height:36px;border-radius:50%;object-fit:cover;object-position:center 25%;border:2px solid #fff;box-shadow:0 2px 8px rgba(6,60,98,.14)}
@media(max-width:850px){.hero{min-height:610px;padding-bottom:250px}.hero-image{height:260px}.hero-mark{font-size:5.2rem}}

/* 把数字标识从海岸线中提起，既保留目标感，也让照片和文字更清晰。 */
.hero-image{background:linear-gradient(90deg,rgba(238,249,252,.98) 0%,rgba(238,249,252,.72) 31%,rgba(6,60,98,.22) 100%),url('assets/xiamen-coast.jpg') center/cover no-repeat;mix-blend-mode:normal}
.hero-mark{bottom:108px;color:rgba(6,60,98,.12);text-shadow:0 2px 0 rgba(255,255,255,.28)}
@media(max-width:850px){.hero-mark{bottom:205px;color:rgba(6,60,98,.13)}}

/* 2026 品牌与信息层级优化 */
.site-header{position:relative}.brand img{width:48px;height:48px}.brand-copy{display:flex;flex-direction:column;gap:0;line-height:1.05}.brand-copy strong{font-size:1.03rem}.brand-copy small{font-weight:700;color:#5e7b89;font-size:.66rem;letter-spacing:.05em;margin-top:4px}.mobile-menu{display:none}.project-name{margin-bottom:7px}.founder{margin:0 0 16px;color:#5a7786;font-size:.83rem;font-weight:700}.hero{min-height:640px;background:linear-gradient(106deg,#f8fdff 0%,#eff9fc 50%,#d8eff6 100%)}.hero-image{width:49%;background:linear-gradient(90deg,rgba(248,253,255,.92) 0%,rgba(240,249,252,.43) 31%,rgba(6,60,98,.04) 58%,rgba(6,60,98,.08) 100%),url('assets/xiamen-coast.webp') 58% center/cover no-repeat}.hero-snapshot{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;max-width:540px;margin:24px 0 24px;border:1px solid rgba(91,142,162,.28);border-radius:15px;background:rgba(255,255,255,.78);backdrop-filter:blur(8px);box-shadow:0 12px 28px rgba(13,61,84,.08);overflow:hidden}.hero-snapshot div{padding:12px 14px;border-right:1px solid rgba(91,142,162,.2)}.hero-snapshot div:last-of-type{border-right:0}.hero-snapshot span,.hero-snapshot small{display:block;color:var(--muted);font-size:.68rem;line-height:1.25}.hero-snapshot strong{display:inline-block;margin:3px 4px 0 0;color:var(--navy);font-size:1.18rem;line-height:1;font-weight:900;letter-spacing:-.04em}.hero-snapshot small{display:inline}.hero-snapshot p{grid-column:1/-1;margin:0;padding:7px 14px;border-top:1px solid rgba(91,142,162,.2);color:#597684;font-size:.7rem}.hero .button-primary{color:var(--navy)}.city-highlights{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none}.city-highlights li{display:flex;gap:6px;align-items:center;padding:6px 9px;border:1px solid rgba(184,223,235,.23);border-radius:999px;color:#d7ecf3;font-size:.72rem}.city-highlights strong{color:#fff;font-size:.75rem}.city-highlights span{color:#a8cedb}.map-pin b{display:none}.map-pin{cursor:help}.ranking-tabs{display:flex;gap:8px;margin-top:34px}.ranking-tabs button{border:1px solid var(--line);border-radius:999px;background:#fff;color:#587482;padding:8px 15px;font:inherit;font-size:.86rem;font-weight:800;cursor:pointer}.ranking-tabs button.active{background:var(--navy);color:#fff;border-color:var(--navy)}.ranking-note{margin:10px 0 0;color:var(--muted);font-size:.78rem}.ranking-grid{display:block;margin-top:18px;max-width:760px}.ranking-card{min-height:0}.story-grid-single .story-media img{object-position:center 18%}.hero-mark{display:none}
.campaign-period{display:inline-flex;align-items:center;margin:-7px 0 4px;padding:5px 10px;border-radius:999px;background:rgba(6,96,145,.09);color:var(--blue);font-size:.78rem;font-weight:800}.join-privacy{max-width:620px;margin:22px auto 0!important;color:#c7e5ee!important;font-size:.78rem;line-height:1.65}
.slogan-runway{position:relative;display:block;width:min(405px,78%);height:17px;margin:10px 0 2px 4px;border-top:3px solid var(--blue);border-radius:50% 55% 0 0;transform:rotate(-1deg)}.slogan-runway:after{content:'';position:absolute;right:-2px;top:-8px;width:13px;height:13px;border-top:3px solid var(--blue);border-right:3px solid var(--blue);transform:rotate(45deg)}
@media(max-width:850px){.site-header{height:68px;padding:0 18px;gap:12px}.site-header nav,.header-cta{display:none}.brand img{width:40px;height:40px}.brand-copy small{display:none}.brand-copy strong{font-size:.98rem}.mobile-menu{display:block;margin-left:auto}.mobile-menu summary{list-style:none;color:var(--navy);font-size:.86rem;font-weight:800;cursor:pointer}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary:after{content:'⌄';margin-left:5px}.mobile-menu[open] summary:after{content:'⌃'}.mobile-menu>div{position:absolute;top:59px;right:16px;z-index:12;display:grid;min-width:156px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 16px 36px rgba(13,61,84,.16)}.mobile-menu a{padding:8px 10px;color:var(--navy);font-size:.85rem;font-weight:700;text-decoration:none}.hero{min-height:720px;padding:52px 20px 302px;gap:20px}.hero-image{height:300px;background:linear-gradient(0deg,rgba(248,253,255,.88),rgba(248,253,255,0) 62%),url('assets/xiamen-coast.webp') 58% center/cover no-repeat}.hero h1{font-size:clamp(2.45rem,12vw,3.25rem)}.hero-lead{font-size:1rem;margin:20px 0}.hero-snapshot{margin:20px 0}.hero-snapshot div{padding:11px 9px}.hero-snapshot strong{font-size:1rem}.hero-snapshot span,.hero-snapshot small{font-size:.62rem}.hero-snapshot p{padding:7px 10px;font-size:.65rem}.city-highlights{gap:6px}.city-highlights li{padding:5px 7px}.ranking-tabs{margin-top:27px}.ranking-grid{max-width:none}.story-grid-single .story-media img{height:320px;object-position:center 17%}.mobile-cta{bottom:14px}}
@media(max-width:850px){.campaign-period{margin:-4px 0 4px;font-size:.72rem}.join-privacy{font-size:.72rem}}

/* 张完海故事：桌面用轨迹、叙事与越野现场照并列，手机端仍按自然阅读顺序展开。 */
.story-grid-single .featured{grid-template-columns:minmax(280px,1.05fr) minmax(330px,1fr) minmax(220px,.72fr)}
.story-grid-single .story-body{padding:32px}
.story-trail-media{position:relative;min-height:100%;margin:0;overflow:hidden;background:#d9e9e3}
.story-trail-media img{display:block;width:100%;height:100%;min-height:420px;object-fit:cover;object-position:center center}
.story-trail-media figcaption{position:absolute;right:0;bottom:0;left:0;margin:0;padding:30px 12px 10px;background:linear-gradient(transparent,rgba(3,30,27,.82));color:#fff;font-size:.76rem;line-height:1.45}
@media(max-width:850px){.story-trail-media img{height:360px;min-height:0;object-position:center 45%}}

/* 张完海故事改为两栏：左侧保留完整跑步记录，右侧按照片、文字讲述跑友故事。 */
.story-grid-single .featured{grid-template-columns:minmax(320px,.92fr) minmax(0,1.08fr)}
.story-grid-single .story-detail{display:flex;min-width:0;flex-direction:column;background:#eef8fb}
.story-grid-single .story-detail .story-body{padding:30px 34px 34px;align-self:auto}
.story-trail-media{background:#edf4ef}
.story-trail-media img{height:auto;min-height:0;object-fit:contain;object-position:center top}
.story-trail-media figcaption{position:static;padding:8px 14px;background:#e1f0e8;color:#426878}
.mini-program-link{padding:0;border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--blue);font:inherit;font-weight:800;line-height:inherit;cursor:pointer}
.mini-program-link:hover,.mini-program-link:focus-visible{color:var(--orange);outline-offset:3px}
@media(max-width:850px){.story-grid-single .story-detail .story-body{padding:25px}.story-trail-media img{height:auto;min-height:0}.story-trail-media figcaption{padding:8px 12px}}

/* 故事卡右栏采用“上图下文”的明确高度：完整展示人物照片，同时给正文预留稳定空间。 */
.story-grid-single .story-detail{height:100%;justify-content:flex-start}
.story-grid-single .story-detail .story-trail-media{display:flex;min-height:0;height:318px;align-items:center;justify-content:center;flex:0 0 auto;background:#e1f0e8}
.story-grid-single .story-detail .story-trail-media img{width:100%;height:280px;min-height:0;object-fit:contain;object-position:center center}
.story-grid-single .story-detail .story-body{display:block;flex:1 0 auto;min-height:300px}
@media(max-width:850px){.story-grid-single .story-detail .story-trail-media{height:318px}.story-grid-single .story-detail .story-trail-media img{height:280px}.story-grid-single .story-detail .story-body{min-height:0}}

/* 标准等距圆柱底图：经纬度可直接换算为地图上的 x/y 位置。 */
.map-surface{height:auto;aspect-ratio:2/1;margin:28px 0 18px;background:radial-gradient(circle at 72% 24%,rgba(42,149,189,.3),transparent 27%),linear-gradient(135deg,#073854,#082d46);border-color:rgba(178,224,237,.28)}
.map-grid{display:block;opacity:.13;background-image:linear-gradient(90deg,transparent 24.8%,#bce6f4 25%,transparent 25.2%,transparent 49.8%,#bce6f4 50%,transparent 50.2%,transparent 74.8%,#bce6f4 75%,transparent 75.2%),linear-gradient(0deg,transparent 24.8%,#bce6f4 25%,transparent 25.2%,transparent 49.8%,#bce6f4 50%,transparent 50.2%,transparent 74.8%,#bce6f4 75%,transparent 75.2%);background-size:100% 100%}.world-map{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;mix-blend-mode:screen;opacity:.8;filter:contrast(.92) brightness(1.35)}
.map-pin{z-index:2;display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;background:transparent;cursor:pointer;transform:translate(-50%,-50%)}
.map-pin i{width:13px;height:13px;background:var(--orange);box-shadow:0 0 0 5px rgba(255,138,61,.18);transition:transform .18s ease,box-shadow .18s ease}
.map-pin:hover i,.map-pin:focus-visible i{transform:rotate(-45deg) scale(1.22);box-shadow:0 0 0 8px rgba(255,138,61,.24)}
.map-pin:focus-visible{outline:2px solid #063c62;outline-offset:3px;border-radius:50%}
.map-pin.recent i{background:#0fa778;box-shadow:0 0 0 5px rgba(15,167,120,.18)}
.map-pin.recent:hover i,.map-pin.recent:focus-visible i{box-shadow:0 0 0 8px rgba(15,167,120,.24)}
.map-pin b{position:absolute;right:-6px;top:-5px;display:grid;place-items:center;min-width:15px;height:15px;padding:0 3px;border-radius:999px;background:var(--navy);color:#fff;font-size:.61rem;line-height:1;font-weight:800}
.map-pin b:empty{display:none}.map-tooltip{position:absolute;z-index:3;max-width:210px;padding:7px 10px;border-radius:9px;background:rgba(6,60,98,.94);box-shadow:0 8px 20px rgba(3,35,55,.24);color:#fff;font-size:.76rem;line-height:1.45;pointer-events:none}.map-tooltip[hidden]{display:none}.map-license{margin-left:auto;color:#a8cedb;font-size:.7rem;text-decoration:underline;text-underline-offset:3px}
@media(max-width:850px){.map-surface{aspect-ratio:2/1}.map-license{width:100%;margin-left:0}.map-legend{flex-wrap:wrap;gap:9px 15px}.map-tooltip{max-width:180px;font-size:.7rem}}

/* 全球与中国使用同一张等距圆柱底图；中国视图只是精确裁切 70°E–140°E、15°N–55°N。 */
.map-scope-tabs{display:flex;gap:8px;margin:22px 0 -10px}.map-scope-tabs button{min-width:64px;padding:7px 15px;border:1px solid rgba(184,223,235,.45);border-radius:999px;background:transparent;color:#c5e3ed;font:inherit;font-size:.84rem;font-weight:800;cursor:pointer}.map-scope-tabs button:hover,.map-scope-tabs button:focus-visible{border-color:#fff;color:#fff}.map-scope-tabs button.active{border-color:#fff;background:#fff;color:var(--navy)}.map-viewport{margin-top:18px;overflow:hidden;border-radius:14px}.map-viewport .map-surface{margin:0}.china-map-surface{aspect-ratio:7/4}.world-map.china-crop{inset:auto;right:auto;bottom:auto;width:514.285714%;height:auto;max-width:none;top:-87.5%;left:-357.142857%;object-fit:initial}.china-map-surface .map-grid{opacity:.09}.china-map-surface .map-pin i{width:12px;height:12px}.china-map-surface .map-pin{width:22px;height:22px}@media(max-width:850px){.map-scope-tabs{margin-top:18px}.china-map-viewport{overflow-x:auto;overflow-y:hidden;padding-bottom:6px;-webkit-overflow-scrolling:touch}.china-map-viewport .china-map-surface{width:900px;max-width:none}.china-map-surface .map-tooltip{position:fixed;left:18px!important;right:18px;top:auto!important;bottom:78px;max-width:none}.china-map-viewport .world-map.china-crop{width:514.285714%;}}

/* 与“30日共跑”小程序统一：绿色表示参与城市，橙色表示近 7 日有新增记录。 */
.map-pin i{background:#0fa778;box-shadow:0 0 0 5px rgba(15,167,120,.18)}.map-pin:hover i,.map-pin:focus-visible i{box-shadow:0 0 0 8px rgba(15,167,120,.24)}.map-pin.recent i{background:var(--orange);box-shadow:0 0 0 5px rgba(255,138,61,.18)}.map-pin.recent:hover i,.map-pin.recent:focus-visible i{box-shadow:0 0 0 8px rgba(255,138,61,.24)}.legend-dot{background:#0fa778}.legend-dot.latest{background:var(--orange)}

.join-guide{display:flex;align-items:center;gap:18px;max-width:560px;text-align:left}.join-guide img{width:176px;height:176px;flex:0 0 auto;border-radius:12px;background:#fff;padding:6px;object-fit:cover}.join-guide strong{display:block;margin:0;color:#fff;font-size:1.05rem}.join-guide span{display:block;margin-top:3px;color:#fff;font-weight:800}.join-guide small{margin-top:7px}@media(max-width:520px){.join-guide{align-items:flex-start;gap:14px}.join-guide img{width:148px;height:148px}.join-guide strong{font-size:.96rem}.join-guide span{font-size:.9rem}.join-guide small{font-size:.78rem}}
/* 2026-09 故事栏与手机阅读修复 */
.story-grid-single .featured{grid-template-columns:minmax(300px,.68fr) minmax(0,1.32fr);align-items:stretch}
.story-grid-single .story-media{display:flex;min-height:0;height:650px}
.story-grid-single .story-media img{height:610px;min-height:0;object-fit:cover;object-position:center top}
.story-grid-single .story-detail{height:650px;min-height:0}
.story-grid-single .story-detail .story-trail-media{display:flex;flex-direction:column;height:300px;min-height:0;align-items:center;justify-content:flex-start}
.story-grid-single .story-detail .story-trail-media img{flex:0 0 auto;width:100%;height:258px;min-height:0;object-fit:contain;object-position:center center}
.story-grid-single .story-detail .story-trail-media figcaption{flex:0 0 auto;width:100%;min-height:42px;padding:8px 14px;text-align:center}
.story-grid-single .story-detail .story-body{flex:1 1 auto;min-height:0;padding:26px 32px 28px}
.mobile-cta.is-hidden{opacity:0;transform:translateY(14px);pointer-events:none}
@media(max-width:850px){.story-grid-single .featured{display:block}.story-grid-single .story-media{height:auto;min-height:0}.story-grid-single .story-media img{height:320px;min-height:0}.story-grid-single .story-detail{height:auto;min-height:0}.story-grid-single .story-detail .story-trail-media{height:300px;min-height:0}.story-grid-single .story-detail .story-trail-media img{height:258px;min-height:0}.story-grid-single .story-detail .story-body{display:block;min-height:0;padding:24px 22px 28px;flex:none}.mobile-cta{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));padding:9px 13px;font-size:.82rem;transition:opacity .2s ease,transform .2s ease}}

/* 参加入口：先了解活动，再进入小程序 */
.join-guide{display:block;max-width:820px;padding:22px;text-align:left}
.join-guide-heading{margin:0 0 15px;color:#d4eaf1;font-size:.88rem;text-align:center}
.join-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.join-option{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;align-items:center;min-height:142px;padding:16px;border:1px solid rgba(255,255,255,.24);border-radius:14px;background:rgba(255,255,255,.09)}
.join-option img{width:112px;height:112px;max-width:none;flex:none;padding:4px;border-radius:10px;background:#fff;object-fit:cover}
.join-option-tag{position:absolute;top:10px;right:11px;color:#bfe3ee;font-size:.69rem;font-weight:800;letter-spacing:.06em}
.join-option strong{display:block;margin:0;color:#fff;font-size:1rem;line-height:1.35}
.join-option span{display:block;margin-top:3px;color:#fff;font-weight:800;font-size:.84rem;line-height:1.4}
.join-option small{display:block;margin-top:8px;color:#c7e5ee;font-size:.75rem;line-height:1.55}
.join-option-program{border-color:rgba(255,176,125,.72);background:rgba(255,138,61,.14)}
.join-option-program .join-option-tag{color:#ffd5bc}
@media(max-width:650px){.join-guide{padding:15px}.join-options{grid-template-columns:1fr}.join-option{grid-template-columns:96px minmax(0,1fr);min-height:120px;padding:14px}.join-option img{width:96px;height:96px}.join-option small{font-size:.74rem}}

/* 微信内置浏览器在部分机型会按约 950px 的版心宽度渲染。
   故事区与首屏在这一档提前转为单栏，避免继承桌面双栏和固定图片高度。 */
@media(max-width:1100px){
  .hero{grid-template-columns:1fr;min-height:720px;padding:52px 20px 302px;gap:20px}
  .hero-image{top:auto;bottom:0;width:100%;height:300px;mix-blend-mode:normal;background:linear-gradient(0deg,rgba(248,253,255,.88),rgba(248,253,255,0) 62%),url('assets/xiamen-coast.webp') 58% center/cover no-repeat}
  .hero-copy{max-width:620px}
  .story-grid-single .featured{display:block}
  .story-grid-single .story-media{display:block;height:auto;min-height:0}
  .story-grid-single .story-media img{width:100%;height:auto;min-height:0;object-fit:contain;object-position:center top}
  .story-grid-single .story-detail{display:block;height:auto;min-height:0}
  .story-grid-single .story-detail .story-trail-media{display:block;height:auto;min-height:0}
  .story-grid-single .story-detail .story-trail-media img{display:block;width:100%;height:auto;min-height:0;object-fit:contain;object-position:center top}
  .story-grid-single .story-detail .story-body{display:block;min-height:0;padding:24px 22px 28px}
}

@media(max-width:850px){
  .join h2{white-space:nowrap;font-size:clamp(1.65rem,7vw,2.15rem);letter-spacing:-.07em}
}

/* 地球跑道：与小程序统一的品牌、阅读层级和参与入口。 */
:root{--navy:#103e31;--blue:#08734e;--sky:#edf6f0;--ink:#18392e;--muted:#61766c;--line:#dce8df;--sand:#f5f8f5;--orange:#eb7844;--shadow:0 14px 42px rgba(20,61,42,.07)}
body{background:#fcfdfb}
button,a{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid #dd7947;outline-offset:4px}
[hidden]{display:none!important}
.site-header{height:80px;max-width:1240px}
.brand-copy strong{font-size:1.1rem;letter-spacing:.02em}
.brand-copy strong span{font-size:.8rem;font-weight:600}
.brand-copy small{color:var(--muted);font-size:.67rem;letter-spacing:.08em}
.site-header nav{gap:24px}.site-header nav a{color:#4a6558}
.header-cta{border:0;cursor:pointer;font-family:inherit;background:#0c7650;white-space:nowrap}
.hero{min-height:574px;display:block;padding:48px max(32px,calc((100vw - 1176px)/2)) 44px;background:#eef5ee}
.hero-copy{max-width:600px}.hero h1{max-width:600px;font-size:clamp(2.5rem,4.1vw,3.8rem);letter-spacing:-.045em;line-height:1.23}
.project-name{font-size:.72rem;letter-spacing:.16em}.founder{color:#567061;font-size:.8rem;margin-bottom:14px}
.hero-lead{font-size:1rem;line-height:1.85;margin:18px 0;color:#456151;max-width:480px}
.campaign-period{padding:0;background:transparent;font-size:.73rem;color:#647e6c;margin:0}
.hero-image{width:48%;top:0;bottom:auto;height:100%;mix-blend-mode:normal;background:linear-gradient(90deg,#eef5ee 0%,rgba(238,245,238,.75) 21%,rgba(238,245,238,.05) 52%),url('assets/xiamen-coast.webp') 58% center/cover no-repeat}
.slogan-runway{width:270px;margin-top:14px;opacity:.6}
.hero-snapshot{max-width:510px;margin:22px 0;border-color:#d0dfd1;background:rgba(255,255,255,.86);box-shadow:none}
.hero-snapshot div{padding:14px 16px;border-color:var(--line)}
.hero-snapshot strong{font-size:1.42rem;font-variant-numeric:tabular-nums;letter-spacing:-.035em}
.hero-snapshot span{font-size:.7rem}.hero-snapshot p{color:#607668;border-color:var(--line);font-size:.67rem}
.button-primary,.hero .button-primary{color:#fff;background:#0c7650;box-shadow:0 7px 18px rgba(12,118,80,.16)}
.button-quiet{background:rgba(255,255,255,.65);border-color:#c6d8cc;color:var(--navy)}
.button{padding:12px 20px;font-size:.88rem}.hero-actions{gap:10px}
.hero-join-card{position:absolute;right:max(32px,calc((100vw - 1176px)/2));bottom:44px;z-index:3;display:flex;align-items:center;gap:18px;width:350px;padding:18px;border:1px solid rgba(255,255,255,.85);border-radius:20px;background:rgba(255,255,255,.94);box-shadow:0 14px 40px rgba(11,53,62,.14)}
.hero-join-card img{width:112px;height:112px;object-fit:contain;border-radius:8px}
.scan-kicker{display:block;color:#0c7650;font-size:.68rem;letter-spacing:.12em;margin-bottom:4px}.hero-join-card strong{font-size:.94rem;color:#18392e}.hero-join-card p{font-size:.71rem;line-height:1.8;color:#61766c;margin:7px 0 0}
.section{padding:72px 32px}.section-heading h2{font-size:clamp(1.85rem,2.9vw,2.7rem);letter-spacing:-.035em;line-height:1.3}.section-heading>p:last-child{font-size:.93rem;line-height:1.85;margin-top:14px}.row-heading>p{font-size:.82rem!important;max-width:250px}
.dashboard{margin-top:30px;padding:32px;background:#fff;gap:25px;border-radius:24px}.metric-number{font-size:clamp(3.2rem,5.5vw,5.1rem);letter-spacing:-.07em;font-variant-numeric:tabular-nums}.metric-meta{font-size:.72rem}.metric-label{font-size:.8rem}.metric-line{margin-top:20px}.earth-progress{width:220px}.land{fill:#d2e6da}.orbit-base{stroke:#e1ece4}.side-metrics{padding-left:24px}.side-metrics span{font-size:.75rem}.side-metrics strong{font-size:1.6rem;font-variant-numeric:tabular-nums}
.data-freshness{font-size:.75rem;color:#4f7860;margin:14px 3px 0}.data-freshness.is-stale{color:#936529}.sync-dot.stale{background:#bf852e;box-shadow:0 0 0 4px rgba(191,133,46,.12)}
.city-map-card{padding:28px;background:#103d56}.map-heading h3{font-size:1.45rem}.map-heading .eyebrow{color:#9bd6e1}.map-coverage{margin:16px 0 0;color:#b9d8df;font-size:.73rem}.map-pin b{background:#103d56}.map-tooltip{background:rgba(6,48,70,.96)}
.leaderboard{padding-top:28px}.ranking-tabs{display:inline-flex;gap:4px;padding:5px;border-radius:16px;background:#eaf1eb;margin-top:26px}.ranking-tabs button{min-width:108px;padding:10px 23px;border:0;border-radius:12px;background:transparent;color:#577362;font-size:.87rem}.ranking-tabs button.active{background:#0c7650;color:#fff;box-shadow:0 4px 10px rgba(12,118,80,.13)}
.ranking-note{font-size:.81rem;max-width:760px;line-height:1.8;margin-top:14px}.ranking-updated{margin:5px 0 0;font-size:.71rem;color:#7b8b80}
.ranking-grid{max-width:none;margin-top:21px}.ranking-card{background:#fff;border-radius:22px;padding:24px 30px;box-shadow:var(--shadow)}.ranking-heading{padding-bottom:18px}.ranking-heading h3{font-size:1.12rem}.ranking-heading p{font-size:.73rem}.ranking-heading span{font-size:.9rem}
.ranking-list{padding-top:8px}.ranking-list li{min-height:62px;grid-template-columns:48px minmax(0,1fr) auto;gap:14px;padding:7px 12px;border-color:#edf2eb}.rank-number{color:#7c9284;font-size:1rem;font-variant-numeric:tabular-nums}.rank-name{min-width:0;overflow-wrap:anywhere;font-size:.93rem}.ranking-list strong{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1.1rem;letter-spacing:-.02em}.ranking-list small{font-size:.7rem}.ranking-list .rank-tied{display:inline-block;margin-left:8px;color:#687f70;font-size:.65rem;font-weight:500}.rank-top{border-radius:9px}.rank-top-1{background:#fbf5e7}.rank-top-2{background:#f1f5f3}.rank-top-3{background:#faf1ea}.ranking-list .rank-top-1 .rank-number{color:#a87217}.ranking-list .rank-top-2 .rank-number{color:#637e75}.ranking-list .rank-top-3 .rank-number{color:#aa7046}
.ranking-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:18px 3px 0;color:#75867b;font-size:.78rem}.text-link{border:0;padding:5px 0;background:none;color:#08734e;font:inherit;font-weight:700;cursor:pointer;text-align:left;text-underline-offset:4px}.text-link:hover{text-decoration:underline}
.how{padding-top:62px;padding-bottom:64px}.steps{margin-top:28px;gap:16px}.steps li{padding:25px;border-color:#b2d4bd}.steps p{font-size:.87rem}.steps h3{font-size:1.1rem}
.stories{padding-top:60px;padding-bottom:60px}.story-grid{margin-top:28px}.story-grid-single .featured{grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);background:#f0f6f0}
.story-grid-single .story-media{display:flex;height:460px;min-height:0;background:#eaf0e9}.story-grid-single .story-media img{height:420px;min-height:0;object-fit:contain;background:#eaf0e9}.story-grid-single .story-media figcaption{font-size:.68rem;padding:9px 12px}
.story-grid-single .story-detail{height:auto;min-height:0;background:#f0f6f0}.story-grid-single .story-detail .story-trail-media{height:180px;min-height:0;background:#e9f0e8}.story-grid-single .story-detail .story-trail-media img{height:150px;width:100%;object-fit:contain;min-height:0}.story-grid-single .story-detail .story-trail-media figcaption{font-size:.68rem;padding:5px 12px;min-height:30px;background:#e6eee4}.story-grid-single .story-detail .story-body{padding:22px 28px;min-height:0;flex:none}.story-body h3{font-size:1.2rem}.story-body>p:not(.story-meta){font-size:.84rem}.story-body blockquote{font-size:.85rem;margin-top:13px;padding:10px 13px}.story-author{font-size:.8rem;margin-bottom:10px}.story-note{font-size:.68rem;margin-top:10px}
.rules{padding-top:26px;padding-bottom:62px}.rule-grid{gap:16px;margin-top:28px}.rule-grid article{padding:25px;background:#103e31}.rule-grid article:nth-child(2){background:#145741}.rule-grid article:nth-child(3){background:#24634d}.rule-grid p{color:#bddfbd;font-size:.72rem;margin-bottom:22px}.rule-grid h3{font-size:1.15rem}.rule-grid strong{font-size:.88rem}.rule-grid span{color:#d1e6d8;font-size:.81rem}.rule-footnote{font-size:.76rem}
.join{padding:64px 28px;background:linear-gradient(115deg,#103e31,#155f44)}.join h2{font-size:clamp(1.9rem,4vw,3.1rem);white-space:normal}.join .eyebrow{color:#c4e3ae}.join-guide-heading{color:#d2e7d8}.join-guide{margin-top:20px;padding:0;background:none;border:0;max-width:820px}.join-options{grid-template-columns:1.15fr 1fr;gap:18px}.join-option{min-height:174px;border-color:#4b8364;background:rgba(255,255,255,.06);grid-template-columns:128px minmax(0,1fr);padding:20px}.join-option img{width:128px;height:128px}.join-option-program{order:-1;border-color:#b6d399;background:rgba(214,244,93,.08)}.join-option-program .join-option-tag{color:#d6eea6}.join-option small{color:#d0e4d5}.join-privacy{color:#c2d9ca!important;font-size:.73rem}
.join-dialog{width:min(430px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:30px;border:1px solid #d4e2d5;border-radius:24px;text-align:center;background:#fcfdfb;color:#18392e;box-shadow:0 24px 80px rgba(10,41,28,.25)}.join-dialog::backdrop{background:rgba(8,30,23,.65);backdrop-filter:blur(4px)}.join-dialog .eyebrow{display:block;font-size:.7rem;margin:5px 0 12px}.join-dialog h2{font-size:1.45rem;margin:0 0 20px;line-height:1.4}.join-dialog>img{display:block;margin:auto;width:min(230px,100%);height:auto}.join-dialog>p:not(.eyebrow){font-size:.8rem;color:#5d7466;line-height:1.9;margin-top:18px}.join-dialog small{display:block;font-size:.7rem;color:#7b8b80}.dialog-close{position:absolute;right:13px;top:10px;width:32px;height:32px;padding:0;border:0;background:#edf3ec;border-radius:50%;color:#426852;font-size:1.45rem;cursor:pointer}
footer{font-size:.71rem;padding-top:24px;padding-bottom:24px;color:#688070}.mobile-cta{background:#0c7650;box-shadow:0 8px 24px rgba(12,118,80,.23);color:white}
@media(min-width:851px) and (max-width:1100px){.hero{padding-left:32px;padding-right:32px}.hero-copy{max-width:55%}.hero h1{font-size:2.7rem}.hero-image{width:50%;height:100%;top:0;bottom:auto;background:linear-gradient(90deg,#eef5ee 0%,rgba(238,245,238,.6) 20%,rgba(238,245,238,.04) 70%),url('assets/xiamen-coast.webp') 58% center/cover no-repeat}.hero-join-card{width:310px;right:24px;bottom:38px;gap:12px;padding:14px}.hero-join-card img{width:96px;height:96px}.hero-join-card strong{font-size:.85rem}.hero-join-card p{font-size:.65rem}.hero-snapshot strong{font-size:1.2rem}.hero-lead{font-size:.93rem}.site-header nav{gap:15px}.site-header nav a{font-size:.82rem}}
@media(max-width:850px){
  .site-header{height:70px;padding:0 20px}.brand-copy strong{font-size:1rem}.brand-copy strong span{font-size:.73rem}.brand-copy small{display:block;font-size:.58rem;margin-top:5px}.brand img{width:38px;height:38px}
  .hero{min-height:0;display:block;padding:32px 22px 34px;background:#eef5ee}.hero-copy{max-width:none}.hero h1{font-size:clamp(2.05rem,6.9vw,3.1rem);line-height:1.28;max-width:560px}.hero-image{width:100%;height:100%;top:0;bottom:auto;opacity:.11;background:url('assets/xiamen-coast.webp') center/cover no-repeat}.hero-join-card{display:none}.hero-lead{font-size:.89rem;margin:17px 0}.project-name{font-size:.64rem}.founder{font-size:.72rem}.campaign-period{font-size:.67rem}.hero-snapshot{margin:20px 0;max-width:530px}.hero-snapshot div{padding:13px 10px}.hero-snapshot strong{font-size:1.25rem}.hero-snapshot span{font-size:.66rem}.hero-snapshot p{font-size:.62rem}.hero-actions{flex-wrap:nowrap}.button{font-size:.8rem;padding:12px 15px;gap:8px}.slogan-runway{width:230px}
  .section{padding:48px 20px}.section-heading h2{font-size:1.85rem}.section-heading>p:last-child{font-size:.83rem}.row-heading>p{max-width:none}.eyebrow{font-size:.68rem;margin-bottom:10px}.dashboard{padding:22px;margin-top:24px;gap:22px}.earth-progress{width:180px;order:0}.metric-number{font-size:3.8rem}.metric-meta{font-size:.67rem}.metric-label{font-size:.76rem}.metric-line{margin-top:16px;font-size:.76rem}.side-metrics{padding:19px 0 0;gap:17px}.side-metrics span{font-size:.75rem}.side-metrics strong{font-size:1.45rem}.data-freshness{font-size:.69rem;line-height:1.75}
  .city-map-card{padding:20px;margin-top:22px;border-radius:20px}.map-heading h3{font-size:1.2rem}.map-heading>p{font-size:.75rem;max-width:none}.map-legend{font-size:.68rem}.map-coverage{font-size:.65rem}.city-highlights{margin-top:15px}
  .leaderboard{padding-top:12px}.ranking-tabs{display:flex;width:100%;margin-top:22px}.ranking-tabs button{flex:1;min-width:0;padding:10px 8px;font-size:.8rem}.ranking-note{font-size:.75rem}.ranking-updated{font-size:.66rem;line-height:1.7}.ranking-card{padding:18px 15px;border-radius:18px}.ranking-heading h3{font-size:1.05rem}.ranking-heading p{font-size:.65rem}.ranking-heading>div{gap:8px}.ranking-list li{grid-template-columns:30px minmax(0,1fr) auto;gap:8px;padding:8px 7px;min-height:58px}.rank-name{font-size:.82rem}.ranking-list strong{font-size:.95rem}.ranking-list small{font-size:.6rem}.rank-number{font-size:.85rem}.ranking-list .rank-tied{display:block;margin:1px 0 0;font-size:.6rem}.ranking-footer{display:block;font-size:.73rem}.ranking-footer>span{display:none}.ranking-footer .text-link{padding:9px 0}.ranking-list .rank-empty{font-size:.8rem;line-height:1.8}
  .how{padding:44px 20px}.steps{margin-top:23px}.steps li{padding:22px}.steps h3{margin-top:8px}.steps p{font-size:.83rem}
  .story-grid-single .featured{display:block}.story-grid-single .story-media{height:auto;display:block}.story-grid-single .story-media img{height:240px;width:100%;object-fit:contain}.story-grid-single .story-detail{height:auto}.story-grid-single .story-detail .story-trail-media{height:185px}.story-grid-single .story-detail .story-trail-media img{height:155px}.story-grid-single .story-detail .story-body{padding:22px}.story-body h3{font-size:1.12rem}.story-body>p:not(.story-meta){font-size:.83rem}
  .rules{padding-top:8px}.rule-grid{margin-top:24px}.rule-grid article{padding:24px}.rule-grid p{margin-bottom:14px}.rule-grid span{font-size:.82rem}.join{padding:48px 20px}.join h2{font-size:1.85rem}.join>p:not(.eyebrow){font-size:.83rem}.join-options{grid-template-columns:1fr}.join-option{grid-template-columns:110px minmax(0,1fr);padding:16px;gap:15px;min-height:150px}.join-option img{width:110px;height:110px}.join-option strong{font-size:.92rem}.join-option span{font-size:.75rem}.join-option small{font-size:.69rem}.join-privacy{font-size:.68rem!important}.join-dialog{padding:30px 22px}.join-dialog h2{font-size:1.28rem}footer{padding:22px 20px 74px}
}
@media(max-width:370px){.hero{padding-left:18px;padding-right:18px}.hero h1{font-size:1.95rem}.hero-snapshot strong{font-size:1.09rem}.hero-actions .button{font-size:.73rem;padding:11px 13px}.brand-copy strong span{font-size:.65rem}.section-heading h2{font-size:1.65rem}.ranking-list strong{font-size:.85rem}.rank-name{font-size:.77rem}.join-option{grid-template-columns:94px minmax(0,1fr)}.join-option img{width:94px;height:94px}.metric-number{font-size:3.2rem}}
.hero-title-line{white-space:nowrap}.keep-together{white-space:nowrap}
@media(min-width:1101px){.hero h1{font-size:3.1rem}}
@media(min-width:851px) and (max-width:1100px){.hero h1{font-size:2.2rem}}
@media(max-width:850px){.hero-snapshot{grid-template-columns:1.7fr 1fr 1fr}.hero-snapshot strong{font-size:1.18rem}.hero-snapshot div:first-child strong{font-size:1.12rem}.hero-snapshot small{font-size:.6rem}.hero-title-line{font-size:.96em}.hero-lead{max-width:440px}}
@media(max-width:370px){.hero-snapshot div:first-child strong{font-size:1.02rem}.hero-snapshot div{padding-left:8px;padding-right:8px}.hero-title-line{font-size:.89em}}

/* 参加区的背景铺满页面，内层与其他栏目保持相同版心。 */
.how{padding-left:32px;padding-right:32px}.how-inner{max-width:1112px;margin:0 auto}
.join-guide{max-width:1112px}.join-options{grid-template-columns:repeat(3,minmax(0,1fr))}
.join-option-promo{border-color:#8bb796;background:rgba(255,255,255,.08)}
.qr-image-link{display:block;line-height:0;justify-self:center;border-radius:10px}
.join-option .qr-image-link img{object-fit:contain}
.promo-video-link{display:inline-block;margin-top:10px;color:#e1f2ce;text-decoration:underline;text-underline-offset:4px;font-size:13px;line-height:1.8}
.qr-image-link:focus-visible,.promo-video-link:focus-visible{outline:3px solid #f6cf77;outline-offset:5px}
@media(min-width:851px){
  .join-option{grid-template-columns:minmax(0,1fr);align-content:start;justify-items:center;padding:42px 24px 24px;text-align:center;gap:18px}
  .join-option img{width:144px;height:144px;object-fit:contain}
  .join-option>div{width:100%}.join-option strong{font-size:18px}
}
@media(max-width:850px){.how{padding-left:20px;padding-right:20px}.join-options{grid-template-columns:minmax(0,1fr)}}

/* 第二轮格式校正：整体保留数字与单位，按语义组织标题。 */
.heading-phrase{display:inline-block;white-space:nowrap}
.hero-snapshot{grid-template-columns:1.7fr 1fr 1fr}
.hero-snapshot div{white-space:nowrap;min-width:0}
.hero-snapshot small,.metric-number small,.metric-remainder{white-space:nowrap}
.hero-snapshot p{font-size:12px;line-height:1.6;white-space:normal}
.hero-snapshot span{font-size:12px}.hero-snapshot small{font-size:12px}
.metric-remainder{display:inline-flex;align-items:baseline;gap:5px}.metric-remainder small{font-size:12px}
.metric-meta{font-size:12px;line-height:1.7}.sync-dot{flex-shrink:0}
.ranking-updated,.ranking-heading p,.map-coverage,.map-license,.story-note,.rule-footnote{font-size:12px}
.ranking-note,.data-freshness,.map-heading>p,.join-privacy{font-size:13px;line-height:1.8}
.story-meta,.story-author{font-size:13px}
.join-label-mobile{display:none}
.story-grid-single .featured{display:grid;grid-template-columns:minmax(270px,.85fr) minmax(0,1.15fr);align-items:stretch}
.story-portrait{position:relative;margin:0;min-width:0;overflow:hidden;background:#dbe8d9;display:flex;flex-direction:column}
.story-portrait>img{display:block;width:100%;height:100%;min-height:420px;flex:1;object-fit:cover;object-position:50% 38%}
.story-portrait figcaption{position:absolute;right:0;bottom:0;left:0;padding:26px 18px 14px;background:linear-gradient(transparent,rgba(9,41,27,.8));color:#fff;font-size:12px;line-height:1.7}
.story-grid-single .story-detail{height:auto;min-width:0;display:flex;justify-content:center;background:#f1f6ef}
.story-grid-single .story-detail .story-body{padding:30px;min-height:0}
.story-body h3{font-size:1.6rem;line-height:1.45;margin-bottom:15px}
.story-body>p:not(.story-meta){font-size:15px;line-height:1.9}
.story-body blockquote{font-size:14px;line-height:1.8;padding:12px 15px}
.story-record{display:flex;align-items:center;gap:16px;width:100%;padding:12px;margin:18px 0 12px;text-align:left;font:inherit;border:1px solid #d6e2d3;border-radius:13px;color:var(--navy);background:#fff;cursor:zoom-in}
.story-record>img{width:58px;height:88px;flex-shrink:0;object-fit:contain;background:#edf2e9;border-radius:5px}
.story-record>span{min-width:0}.story-record strong{display:block;font-size:14px;line-height:1.6}.story-record small{display:block;font-size:12px;color:#56725e;margin-top:5px}
.story-record:hover{border-color:#76a68a;background:#fafdf7}
.join-dialog>p:not(.eyebrow){font-size:14px}.join-dialog small{font-size:12px}
.join-option small,.join-option-tag{font-size:12px}.join-option>div>span{font-size:13px}
@media(min-width:851px) and (max-width:1100px){
  .hero-snapshot{grid-template-columns:1.7fr 1fr 1fr}.hero-snapshot div{padding:13px 12px}
  .story-grid-single .featured{grid-template-columns:minmax(230px,.8fr) minmax(0,1.2fr)}
  .story-grid-single .story-detail .story-body{padding:25px}.story-body h3{font-size:1.4rem}
}
@media(max-width:850px){
  .heading-phrase{display:block}
  .section-heading h2{font-size:28px;line-height:1.4;letter-spacing:-.02em}
  .section-heading>p:last-child,.steps p,.rule-grid span{font-size:15px;line-height:1.85}
  .row-heading>p{font-size:13px!important;line-height:1.8}
  .hero-snapshot{grid-template-columns:1.9fr 1fr 1fr}.hero-snapshot div{padding:12px 9px}
  .hero-snapshot p{padding:8px 10px}.hero-snapshot span{font-size:12px}.hero-snapshot small{font-size:12px}
  .hero-snapshot strong{font-size:20px}.hero-snapshot div:first-child strong{font-size:19px}
  .hero-lead{font-size:15px;line-height:1.85}.campaign-period{font-size:12px;line-height:1.8}
  .join-label-desktop{display:none}.join-label-mobile{display:inline}
  .hero-actions .button{font-size:14px}
  .dashboard{grid-template-columns:130px minmax(0,1fr);gap:22px 18px;padding:22px;align-items:center}
  .progress-card{grid-column:1/-1}.metric-number{font-size:3.35rem}.metric-number small{font-size:13px;margin-left:8px}
  .metric-label{font-size:13px}.metric-meta{font-size:12px;align-items:flex-start}
  .metric-meta .sync-dot{margin-top:7px}.metric-line{font-size:13px;margin-top:16px;padding-top:14px;flex-wrap:wrap;gap:7px}.metric-line strong{font-size:18px}
  .earth-progress{grid-column:1;grid-row:2;width:130px;order:0}.earth-center strong{font-size:1.7rem}.earth-center span{font-size:12px}.finish-flag{font-size:11px;right:-5px;top:0}
  .side-metrics{grid-column:2;grid-row:2;border:0;padding:0;gap:13px}.side-metrics div{display:block}.side-metrics span{display:block;font-size:12px;line-height:1.5;margin-bottom:2px}.side-metrics strong{font-size:23px}.side-metrics small{font-size:12px;margin-left:5px}
  .data-freshness,.ranking-note{font-size:13px}.ranking-updated,.ranking-heading p{font-size:12px;line-height:1.7}
  .map-heading h3{font-size:20px;line-height:1.5}.map-heading>p,.map-legend,.map-license,.map-coverage{font-size:12px;line-height:1.8}
  .city-highlights{display:grid;grid-template-columns:1fr;gap:7px}.city-highlights li{padding:8px 10px;font-size:12px;flex-wrap:wrap;line-height:1.6}.city-highlights strong{font-size:13px}.city-highlights span{font-size:12px}
  .rank-name{font-size:14px}.ranking-list strong{font-size:16px}.ranking-list small,.ranking-list .rank-tied{font-size:12px}.ranking-list li{gap:8px;grid-template-columns:27px minmax(0,1fr) auto}
  .ranking-footer{font-size:14px}.ranking-footer .text-link{padding:12px 0;line-height:1.8}
  .story-grid-single .featured{display:block}.story-portrait{height:320px}.story-portrait>img{height:100%;min-height:0;max-height:none;flex:none;object-position:50% 35%}.story-portrait figcaption{padding:24px 15px 12px}
  .story-grid-single .story-detail .story-body{padding:24px 22px}.story-body h3{font-size:22px;line-height:1.5}.story-body>p:not(.story-meta){font-size:15px}.story-body blockquote{font-size:14px}.story-meta,.story-author,.story-note{font-size:12px;line-height:1.8}
  .story-record{gap:12px;padding:12px}.story-record strong{font-size:14px}.story-record small{font-size:12px}
  .rule-grid h3{font-size:19px}.rule-grid strong{font-size:15px}.rule-grid p{font-size:12px}.rule-footnote{font-size:12px;line-height:1.9}
  .join h2{font-size:28px;line-height:1.45}.join>p:not(.eyebrow){font-size:14px;line-height:1.85}
  .join-option{grid-template-columns:110px minmax(0,1fr);gap:15px;padding-top:40px}.join-option strong{font-size:16px}.join-option>div>span{font-size:13px}.join-option small,.join-option-tag{font-size:12px;line-height:1.8}
  .join-privacy{font-size:12px!important}.join-dialog small{font-size:12px}.join-dialog>p:not(.eyebrow){font-size:13px}
  footer{font-size:12px;line-height:1.8;padding-bottom:25px}
}
@media(max-width:370px){
  .section-heading h2{font-size:25px}.hero-snapshot div{padding:12px 8px}.hero-snapshot strong{font-size:18px}.hero-snapshot div:first-child strong{font-size:16px}.hero-snapshot small{font-size:12px}
  .hero-actions .button{font-size:13px}.dashboard{grid-template-columns:110px minmax(0,1fr);gap:20px 13px;padding:18px}.earth-progress{width:110px}.earth-center strong{font-size:1.4rem}.metric-number{font-size:2.85rem}
  .ranking-card{padding:18px 12px}.ranking-list li{grid-template-columns:24px minmax(0,1fr) auto;gap:6px;padding:8px 4px}.rank-name{font-size:13px}.ranking-list strong{font-size:15px}
  .join-option{grid-template-columns:1fr;text-align:center;padding-top:40px}.join-option img{width:150px;height:150px;margin:auto}.join-option>div{width:100%}.join-option-tag{font-size:12px}.story-portrait{height:290px}
}

/* 阅读规范：正文、辅助文字、标题分别使用固定层级；状态色保持独立。 */
:root{
  --navy:#143f32;
  --ink:#334a40;
  --muted:#53685b;
  --blue:#0c7650;
  --reading-size:16px;
  --support-size:13px;
  --reading-leading:1.8;
}
body{color:var(--ink);font-size:var(--reading-size);font-weight:400;line-height:var(--reading-leading)}
.hero h1{font-weight:700;letter-spacing:-.015em;line-height:1.28}
.section-heading h2{font-size:clamp(30px,2.8vw,40px);font-weight:700;letter-spacing:0;line-height:1.4}
.section-heading>p:last-child,.steps p,.story-body>p:not(.story-meta){font-size:var(--reading-size);font-weight:400;line-height:var(--reading-leading);color:var(--ink)}
.section-heading>p:last-child{max-width:46em}
.row-heading>p{font-size:14px!important;line-height:1.8;color:var(--muted);font-weight:400}
.hero-lead{font-size:16px;line-height:1.85;color:var(--ink);font-weight:400}
.founder,.campaign-period{font-size:13px;line-height:1.8;color:var(--muted);font-weight:400}
.site-header nav a{font-size:15px;font-weight:500;color:var(--muted)}
.hero-snapshot span,.hero-snapshot small,.hero-snapshot p{font-size:var(--support-size);font-weight:400;line-height:1.7;color:var(--muted)}
.hero-snapshot strong{font-weight:700;letter-spacing:0}
.hero-join-card p{font-size:13px;line-height:1.8;color:var(--muted)}
.hero-join-card strong{font-weight:600}.scan-kicker{font-size:12px;letter-spacing:.04em}
.metric-meta,.metric-label,.metric-remainder small,.metric-number small,.side-metrics span,.side-metrics small{font-size:13px;line-height:1.7;color:var(--muted);font-weight:400}
.metric-number{font-weight:700;letter-spacing:-.035em}
.data-freshness,.ranking-note,.ranking-updated,.ranking-heading p,.rule-footnote,.story-note,.story-record small{font-size:13px;line-height:1.8;color:var(--muted);font-weight:400}
.data-freshness.is-stale{color:#86591f}
.ranking-note{font-size:14px}
.ranking-tabs button{font-size:15px;font-weight:600}
.ranking-heading h3{font-size:19px;font-weight:700}
.rank-name{font-size:16px;font-weight:500;color:var(--ink);line-height:1.6}
.ranking-list strong{font-weight:600;letter-spacing:0}
.ranking-list small,.ranking-list .rank-tied{font-size:13px;font-weight:400;color:var(--muted)}
.rank-number{font-weight:600;color:#536b5d}
.ranking-list li:nth-child(1) .rank-number{color:#8b5b14}
.ranking-list li:nth-child(2) .rank-number{color:#53675e}
.ranking-list li:nth-child(3) .rank-number{color:#92562e}
.ranking-footer{font-size:14px;color:var(--muted)}
.steps h3,.rule-grid h3{font-size:20px;font-weight:700;line-height:1.5}
.steps>li>span{color:#a14b23;font-weight:600}
.mini-program-link,.text-link{font-weight:600}
.story-body h3{font-size:26px;font-weight:700;letter-spacing:0;line-height:1.5}
.story-author,.story-meta{font-size:13px;font-weight:600;line-height:1.8;color:var(--navy)}
.story-body blockquote{font-size:16px;font-weight:400;line-height:1.8;color:var(--ink)}
.story-record strong{font-size:15px;font-weight:600;line-height:1.7}
.story-portrait figcaption{font-size:13px;font-weight:400;line-height:1.7}
.rule-grid p{font-size:13px;font-weight:500;color:#d1e5d5}
.rule-grid strong{font-size:16px;line-height:1.8;font-weight:600}
.rule-grid span{font-size:16px;line-height:1.8;font-weight:400;color:#edf5ef}
.map-heading>p,.map-coverage,.map-legend,.map-license{font-size:13px;line-height:1.8;color:#d8e9ec;font-weight:400}
.join h2{font-weight:700;letter-spacing:0;line-height:1.4}
.join>p:not(.eyebrow){font-size:16px;line-height:1.8;font-weight:400;color:#e2eee5}
.join-option strong{font-weight:600;line-height:1.6}
.join-option>div>span{font-size:14px;font-weight:400;line-height:1.8;color:#edf5ef}
.join-option small,.join-option-tag,.promo-video-link{font-size:13px;line-height:1.8}
.join-option small{font-weight:400;color:#e2eee5}
.join-option-tag{font-weight:600;letter-spacing:0}
.join-privacy{font-size:13px!important;line-height:1.8;font-weight:400}
.join-dialog>p:not(.eyebrow){font-size:15px;line-height:1.8;color:var(--ink)}
.join-dialog small{font-size:13px;line-height:1.8;color:var(--muted)}
footer{font-size:13px;line-height:1.8;color:var(--muted)}
@media(max-width:850px){
  .section-heading h2{font-size:28px}
  .hero h1{font-size:clamp(26px,7.15vw,36px)}
  .hero-title-line{font-size:1em}
  .hero-snapshot{grid-template-columns:1.9fr 1fr 1fr}
  .hero-snapshot div{padding-left:8px;padding-right:8px}
  .rank-name{font-size:15px}
  .ranking-heading{gap:10px}.ranking-heading h3{font-size:18px}
  .ranking-list li{grid-template-columns:25px minmax(0,1fr) auto;gap:7px;min-height:62px}
  .ranking-list strong{font-size:16px}
  .story-body h3{font-size:23px}
  .join h2{font-size:28px}
  .join-option{padding-top:44px}
  .join-option strong{font-size:17px}
}
@media(max-width:370px){
  .section-heading h2{font-size:25px}
  .hero h1{font-size:26px}
  .hero-snapshot div{padding-left:6px;padding-right:6px}
  .hero-snapshot strong{font-size:18px}.hero-snapshot div:first-child strong{font-size:16px}
  .ranking-list li{grid-template-columns:23px minmax(0,1fr) auto;gap:5px}
  .ranking-list strong{font-size:15px}
}
