:root{--ink:#18352f;--muted:#708078;--forest:#1d4b3e;--forest2:#315d4c;--cream:#fbf4ea;--paper:#fffefa;--line:#e7e8de;--gold:#bb9254;--red:#ad594c;--shadow:0 18px 45px rgba(27,53,45,.09)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif;color:var(--ink);background:#fbf4ea}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,textarea:focus-visible,input:focus-visible{outline:3px solid #b9aa67;outline-offset:3px}a{color:inherit;text-decoration:none}
.share-cover{position:fixed;left:-9999px;top:-9999px;width:300px;height:300px;object-fit:cover;pointer-events:none}
.app{width:100%;max-width:440px;min-height:100dvh;margin:auto;background:var(--cream);box-shadow:none;position:relative;overflow:hidden}
.hidden{display:none!important}.home{position:relative;min-height:100dvh;background:#fbf4ea;overflow:hidden}.home-bg{display:block;width:100%;height:100dvh;object-fit:fill}.map-hotspot{position:absolute;left:82%;top:42%;width:17%;height:9%;border:0;background:transparent;border-radius:16px}.map-hotspot::after{content:"";display:block;position:absolute;left:31%;top:46%;width:18px;height:18px;border:2px solid var(--forest);border-radius:50%;background:rgba(255,255,255,.55);box-shadow:0 0 0 8px rgba(255,255,255,.36);animation:pulse 2s ease-in-out infinite}.map-hotspot span{position:absolute;left:-9999px}.home-cta{position:absolute;bottom:12%;left:50%;transform:translateX(-50%);white-space:nowrap;border:1px solid #d5d6c6;background:rgba(255,254,248,.93);color:var(--forest);border-radius:100px;padding:10px 18px;font-size:13px;font-weight:700;box-shadow:0 7px 20px rgba(33,56,45,.13)}@keyframes pulse{50%{box-shadow:0 0 0 13px rgba(255,255,255,.1)}}
.village{min-height:100dvh}.topbar{position:sticky;top:0;z-index:20;background:rgba(251,244,234,.97);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.brand-row{display:flex;align-items:center;gap:10px;min-height:66px;padding:12px 18px 6px}.back{border:0;background:transparent;width:32px;height:32px;display:grid;place-items:center;color:var(--forest)}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--forest);color:#efd8a2;font-family:serif;font-size:20px}.brand-name{font-size:18px;font-weight:800;letter-spacing:.045em;white-space:nowrap}.brand-sub{margin-left:auto;color:var(--gold);font-size:10px;letter-spacing:.15em}.tabs{display:flex;gap:10px;justify-content:space-between;overflow:auto;padding:0 16px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:none;border:0;background:none;padding:10px 1px 13px;color:#6f7e74;font-size:13px;font-weight:600;white-space:nowrap;position:relative}.tab.active{color:var(--forest);font-weight:800}.tab.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;border-radius:3px;background:var(--forest)}
.panel{display:none;padding-bottom:50px}.panel.active{display:block}.lead{padding:23px 20px 18px}.eyebrow{font-size:10px;letter-spacing:.24em;font-weight:700;color:var(--gold);text-transform:uppercase}.lead h1{font-family:"Noto Serif SC","Songti SC",serif;font-size:32px;line-height:1.22;letter-spacing:.1em;margin:8px 0 10px}.lead p{font-size:13px;line-height:1.75;color:var(--muted);margin:0}.hero{position:relative;margin:0 16px;border-radius:22px;overflow:hidden;height:220px;background:linear-gradient(125deg,#809f85,#446552)}.hero img{width:100%;height:100%;object-fit:cover;display:block;opacity:1;transition:opacity .2s ease}.hero img.is-loading{opacity:0}.hero:after{content:"";position:absolute;inset:42% 0 0;background:linear-gradient(transparent,rgba(17,34,29,.76));pointer-events:none}.play{position:absolute;z-index:1;left:50%;top:44%;display:grid;place-items:center;transform:translate(-50%,-50%);width:58px;height:58px;padding:0;border:1px solid #fff;background:rgba(255,255,255,.22);backdrop-filter:blur(8px);border-radius:50%;color:white}.play svg{display:block;width:70%;height:70%;fill:currentColor;overflow:visible;transform:translateX(4px)}.play svg path{stroke:currentColor;stroke-width:2.4;stroke-linejoin:round}.hero-label{position:absolute;z-index:1;bottom:18px;left:20px;color:white}.hero-label strong{display:block;font-size:18px}.hero-label small{display:block;font-size:11px;opacity:.84;margin-top:4px}.hero-tag{position:absolute;z-index:1;right:14px;top:14px;font-size:10px;padding:6px 10px;background:rgba(255,255,255,.82);border-radius:100px;color:#3d5c51}.nav-card{margin:14px 16px 0;background:#e7ede4;border:1px solid #d5e1d5;border-radius:18px;display:flex;align-items:center;padding:16px 17px;gap:12px}.nav-icon{display:grid;place-items:center;flex:none;border-radius:14px;background:var(--forest);color:#efd8a2;width:42px;height:42px}.nav-icon svg{display:block;width:22px;height:22px;fill:currentColor;transform:translateY(-.5px)}.nav-card div:nth-child(2){flex:1}.nav-card strong{font-size:14px}.nav-card small{display:block;color:#748479;font-size:11px;margin-top:3px}.nav-card a{background:var(--forest);color:white;border-radius:100px;padding:10px 13px;font-size:12px;font-weight:700;white-space:nowrap}.section{padding:28px 20px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:14px}.section h2{font-family:"Noto Serif SC","Songti SC",serif;font-size:22px;margin:0;letter-spacing:.05em}.section-kicker{color:var(--gold);font-size:10px;letter-spacing:.16em;font-weight:700}.intro-text{font-size:13px;line-height:1.9;color:#52655a;margin:0 0 18px}.fact-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fact{background:var(--paper);border:1px solid #eeeee5;border-radius:16px;padding:16px 13px;min-height:126px;box-shadow:0 8px 22px rgba(26,45,36,.035)}.fact .number{color:#bfa16b;font-family:Georgia,serif;font-size:17px}.fact strong{display:block;margin:10px 0 5px;font-size:14px}.fact p{font-size:11px;line-height:1.55;color:#77857b;margin:0}.more{width:100%;border:1px solid var(--forest);border-radius:13px;background:transparent;color:var(--forest);font-weight:800;padding:13px;margin-top:16px}.mini-strip{display:flex;align-items:center;gap:12px;margin-top:28px;padding:13px;background:#eee9d9;border-radius:15px}.mini-strip .seal{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:2px solid var(--red);color:var(--red);font-size:11px;line-height:1.1;transform:rotate(-11deg);font-family:serif}.mini-strip p{margin:0;color:#6e6954;font-size:12px;line-height:1.55}.detail-view{padding:20px}.detail-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.text-back{border:0;background:none;color:var(--forest);font-weight:700;padding:7px 0}.speak{border:1px solid #bed4c6;background:#edf5ed;color:var(--forest);border-radius:100px;padding:8px 12px;font-size:12px;font-weight:700}.detail-view h1{font-family:"Noto Serif SC","Songti SC",serif;font-size:29px;line-height:1.4;margin:20px 0 6px}.detail-note{font-size:11px;color:#84918a;margin-bottom:23px}.detail-body h2{font-family:"Noto Serif SC","Songti SC",serif;font-size:19px;margin:30px 0 12px;padding-top:12px;border-top:1px solid var(--line)}.detail-body h3{font-size:15px;margin:18px 0 8px}.detail-body p{font-size:13px;line-height:1.95;color:#4a5c52;margin:0 0 12px}
.season-head{padding:27px 20px 14px}.season-head h1,.simple-head h1{font-family:"Noto Serif SC","Songti SC",serif;margin:6px 0 5px;font-size:29px}.season-head p,.simple-head p{color:var(--muted);font-size:12px;line-height:1.7;margin:0}.season-list{padding:0 16px;display:grid;gap:17px}.season-card{overflow:hidden;border-radius:19px;background:var(--paper);box-shadow:var(--shadow);border:1px solid #ecebe4}.season-card img{display:block;width:100%;height:210px;object-fit:cover;background:#dce5dc}.season-card .caption{display:flex;align-items:center;justify-content:space-between;padding:18px 21px}.season-card strong{font-family:"Noto Serif SC","Songti SC",serif;font-size:23px}.season-card span{color:#9aaa9f;font-size:11px;letter-spacing:.13em}
.simple-head{padding:27px 20px 18px}.record-step{margin:0 16px 13px;background:var(--paper);border:1px solid #edece5;border-radius:18px;padding:17px;box-shadow:0 7px 25px rgba(25,50,39,.035)}.step-title{display:flex;align-items:center;gap:10px;margin-bottom:13px}.step-num{background:#eaf0e7;color:var(--forest);width:27px;height:27px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800}.step-title strong{font-size:15px}.photo-pick{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;width:100%;height:150px;border:1.5px dashed #afc5b5;border-radius:13px;background:#f4f8f2;color:var(--forest);overflow:hidden;position:relative}.photo-pick img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.photo-pick span{font-size:28px}.photo-pick small{font-size:12px}.photo-input{position:absolute;opacity:0;width:1px;height:1px}.stamp-row{display:flex;align-items:center;gap:14px}.stamp-preview{width:74px;height:74px;border:3px double var(--red);border-radius:50%;display:grid;place-items:center;text-align:center;color:var(--red);font-size:11px;line-height:1.2;transform:rotate(-14deg);font-family:serif;opacity:.35}.stamp-preview.on{opacity:1}.stamp-copy{flex:1}.stamp-copy p{color:var(--muted);font-size:11px;line-height:1.6;margin:4px 0 0}.stamp-action{border:1px solid var(--red);border-radius:100px;padding:8px 12px;background:white;color:var(--red);font-size:11px;white-space:nowrap}.thoughts{width:100%;min-height:106px;resize:vertical;border:1px solid #e3e6dd;background:#fcfcf9;border-radius:11px;padding:12px;color:var(--ink);font-size:13px;line-height:1.6}.counter{text-align:right;font-size:10px;color:#9aaba0;margin-top:5px}.generate{margin:7px 16px 0;width:calc(100% - 32px);background:var(--forest);color:white;border:0;border-radius:15px;padding:15px;font-weight:800;box-shadow:0 9px 23px rgba(29,75,62,.2)}.record-foot{padding:13px 23px;font-size:11px;line-height:1.7;color:#819086;text-align:center}
.legend-feature{margin:0 16px;background:var(--paper);border-radius:20px;box-shadow:var(--shadow);overflow:hidden}.legend-art{height:194px;background:#68816d;position:relative}.legend-art img{width:100%;height:100%;object-fit:cover;display:block}.legend-art:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(14,33,27,.65))}.legend-index{position:absolute;z-index:1;bottom:14px;left:18px;color:white;font:14px Georgia,serif;letter-spacing:.15em}.legend-body{padding:19px}.legend-body h2{font-family:"Noto Serif SC","Songti SC",serif;font-size:22px;margin:0 0 10px}.legend-body p{font-size:13px;line-height:1.9;color:#56685e;margin:0}.legend-actions{display:flex;align-items:center;justify-content:space-between;margin-top:18px}.legend-actions small{font-size:11px;color:#a08b68}.share{background:#eaf0e8;color:var(--forest);border:0;border-radius:100px;padding:9px 14px;font-size:12px;font-weight:700}.legend-switch{padding:20px 16px 0;display:grid;gap:10px}.legend-option{width:100%;display:flex;align-items:center;gap:12px;border:1px solid #e5e9df;background:var(--paper);padding:10px;border-radius:14px;text-align:left}.legend-option.active{border-color:#789f87;background:#edf4ec}.legend-option img{width:72px;height:56px;object-fit:cover;border-radius:9px}.legend-option strong{display:block;font-size:13px}.legend-option small{color:#99a59b;font-size:10px}.legend-option .arrow{margin-left:auto;color:var(--forest)}
.history-hero{margin:0 16px;border-radius:20px;overflow:hidden;background:#ced7c5}.history-hero img{display:block;width:100%;height:235px;object-fit:cover}.history-hero figcaption{padding:11px 13px;background:#e8ede4;color:#6c7e70;font-size:10px}.history-copy{padding:7px 22px 30px}.history-copy p{font-size:13px;line-height:1.95;color:#52645a;margin:14px 0}.history-highlight{border-left:3px solid var(--gold);padding:3px 13px;margin:17px 0;font-family:"Noto Serif SC","Songti SC",serif;font-size:18px;color:var(--forest)}
.modal-overlay{position:fixed;z-index:60;inset:0;background:rgba(9,28,21,.62);display:flex;align-items:center;justify-content:center;padding:18px}.modal{background:var(--paper);border-radius:22px;width:min(100%,410px);max-height:90dvh;overflow:auto;padding:20px;box-shadow:0 25px 70px rgba(0,0,0,.25)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-head strong{font-size:17px}.modal-close{border:0;background:#eef2ed;border-radius:50%;width:32px;height:32px;color:var(--forest);font-size:19px}.modal p{font-size:13px;line-height:1.8;color:var(--muted)}.result-img{width:100%;display:block;border-radius:12px;margin:12px 0}.modal-actions{display:flex;gap:9px}.modal-actions button{flex:1;border-radius:11px;border:1px solid var(--forest);background:var(--forest);color:white;padding:12px 5px;font-weight:700;font-size:12px}.modal-actions button.secondary{color:var(--forest);background:transparent}.toast{position:fixed;z-index:90;bottom:26px;left:50%;transform:translateX(-50%);border-radius:100px;background:#1e3f35;color:white;padding:10px 16px;font-size:12px;box-shadow:var(--shadow);white-space:nowrap}
.village-video-wrap{background:#07100d}.village-video{display:block;width:100%;max-height:72dvh;background:#07100d;object-fit:contain}.modal.video-modal{width:min(100%,720px);padding:0;overflow:hidden}.modal.video-modal .modal-head{padding:16px 18px 4px;margin:0;background:var(--paper)}.village-video-note{margin:0!important;padding:9px 14px 12px;text-align:center;background:var(--paper)}
.scroll-top{position:fixed;z-index:35;right:max(16px,calc((100vw - 440px)/2 + 16px));bottom:calc(18px + env(safe-area-inset-bottom));display:grid;place-items:center;width:46px;height:46px;padding:0;border:1px solid #efd8a2;border-radius:50%;background:rgba(29,75,62,.3);color:#f1dca9;box-shadow:0 5px 16px rgba(19,48,39,.08);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .22s ease,transform .22s ease,visibility .22s}.scroll-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.scroll-top svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}@media(prefers-reduced-motion:reduce){.scroll-top{transition:none}}
.copyright-close{position:absolute;right:3.4cqw;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:9.2cqw;height:9.2cqw;min-width:36px;min-height:36px;padding:0;border:1px solid rgba(29,75,62,.2);border-radius:50%;background:rgba(29,75,62,.08);color:var(--forest);font-size:6.4cqw;font-weight:300;line-height:1}.copyright-close:focus-visible{outline:none}
@media(min-width:550px){.app{margin:0 auto;min-height:100dvh;border-radius:0}.home,.home-bg{min-height:100dvh;height:100dvh}.topbar{top:0}}
@media print{body{background:white}.app,.modal-overlay,.modal{box-shadow:none}.app{display:none!important}.modal-overlay{position:static;background:white;padding:0}.modal{width:100%;max-height:none;padding:0}.modal-head,.modal p,.modal-actions{display:none!important}.result-img{width:100%;max-width:180mm;margin:auto}}
.loading{position:relative;height:100dvh;overflow:hidden;background:#fbf4ea;touch-action:pan-y}.loading-enter{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;color:transparent;cursor:pointer}.loading-enter:focus-visible{outline:3px solid #092543;outline-offset:-5px}.home-heading{position:absolute;z-index:1;left:11%;top:8.9%;width:78%;height:12.3%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fbf4ea;mask-image:radial-gradient(ellipse 72% 58% at center,#000 66%,transparent 100%);pointer-events:none}.home-heading h1{margin:0;color:#112b3c;font-family:"Noto Serif SC","Songti SC","SimSun",serif;font-size:clamp(22px,6.3vw,31px);font-weight:800;letter-spacing:.035em;white-space:nowrap}.home-heading p{margin:7px 0 0;color:#626978;font-family:"Noto Serif SC","Songti SC","SimSun",serif;font-size:clamp(13px,3.8vw,18px);font-weight:700;letter-spacing:.14em;white-space:nowrap}.home-text-cover{position:absolute;z-index:1;left:24%;width:52%;background:#fbf4ea;mask-image:radial-gradient(ellipse 76% 70% at center,#000 68%,transparent 100%);pointer-events:none}.home-text-cover.location{top:61.7%;height:5%}.home-text-cover.subline{top:73%;height:4.1%}@media(min-width:550px){.loading{height:100dvh}}

/* Loading page: background, title, then brand marks and scroll cue. */
.loading-scene{isolation:isolate;background:#fbf4ea}.loading-scene::after{content:"";position:absolute;z-index:1;inset:0;background:rgba(251,244,234,.22);pointer-events:none}
.loading-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%;filter:saturate(.72) contrast(.88) brightness(1.06);opacity:0;animation:loading-bg-in 1.5s ease-out forwards}
.loading-fund-logo,.loading-title-logo,.loading-publisher,.loading-cue{position:absolute;z-index:2;left:50%;opacity:0;pointer-events:none}
.loading-fund-logo{top:4%;width:40%;max-width:176px;transform:translate(-50%,-8px);animation:loading-item-in 1s ease-out 2.35s forwards}
.loading-title-logo{top:23%;width:40%;max-width:176px;height:36%;object-fit:contain;transform:translate(-50%,10px);animation:loading-title-in 1.1s ease-out 1.15s forwards}
.loading-publisher{bottom:3%;width:32%;max-width:142px;transform:translate(-50%,8px);display:flex;flex-direction:column;align-items:center;gap:6px;animation:loading-item-in 1s ease-out 2.35s forwards}.loading-publisher-logo{display:block;width:100%;height:auto}.loading-fund-logo,.loading-publisher-logo{filter:contrast(1.08) saturate(1.05)}.loading-publisher p{width:100%;margin:0;color:#384947;font-size:11px;line-height:1;letter-spacing:.02em;text-align:justify;text-align-last:justify;white-space:nowrap}
.loading-cue{top:78%;transform:translate(-50%,8px);display:flex;flex-direction:column;align-items:center;gap:7px;color:#173a56;white-space:nowrap;animation:loading-item-in 1s ease-out 2.35s forwards}
.loading-cue span{display:block;height:auto;line-height:1.4;font-family:"Noto Serif SC","Songti SC","SimSun",serif;font-size:13px;font-weight:700;letter-spacing:.12em;animation:none}
.loading-cue i{display:block;width:10px;height:10px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);animation:loading-cue-drop 1.5s ease-in-out 3.4s infinite}
.loading-enter{z-index:5}
/* Loading-to-home page transition. */
.app.loading-transition{height:100dvh;overflow:hidden}.loading.loading-leaving,.home.home-entering{position:absolute;inset:0;width:100%;height:100dvh}.loading.loading-leaving{z-index:10;pointer-events:none;animation:loading-page-out .72s cubic-bezier(.4,0,.2,1) forwards}.home.home-entering{z-index:1;animation:home-page-in .72s cubic-bezier(.2,.7,.2,1) both}
@keyframes loading-bg-in{from{opacity:0;filter:blur(5px) saturate(.72) contrast(.88) brightness(1.06);transform:scale(1.025)}to{opacity:1;filter:blur(0) saturate(.72) contrast(.88) brightness(1.06);transform:scale(1)}}
@keyframes loading-title-in{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes loading-item-in{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes loading-cue-drop{0%,100%{opacity:.35;translate:0 0}55%{opacity:1;translate:0 5px}}
@keyframes loading-page-out{from{opacity:1;transform:translateY(0)}to{opacity:.08;transform:translateY(-100%)}}
@keyframes home-page-in{from{opacity:.2;transform:translateY(10%)}to{opacity:1;transform:translateY(0)}}
@media(max-height:680px){.loading-fund-logo{top:4%;width:35%}.loading-title-logo{top:21%;width:37%;height:36%}.loading-cue{top:75%}.loading-publisher{bottom:2.5%;width:32%}}
@media(prefers-reduced-motion:reduce){.loading-background,.loading-fund-logo,.loading-title-logo,.loading-publisher,.loading-cue,.loading.loading-leaving,.home.home-entering{animation-duration:.01ms;animation-delay:0s}.loading-cue i{animation:none}}
