@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Ma+Shan+Zheng&family=Noto+Serif+SC:wght@400;500;600&display=swap');
:root{--ink:#173e31;--ink-soft:#52735d;--gold:#b88e42;--cream:#f6f0df;--glass:rgba(203,228,191,.34)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#d3dfc2;color:var(--ink);font-family:'Noto Serif SC',serif}
button,a{font:inherit}.portraits{position:relative;min-height:100vh;overflow:hidden;padding:112px clamp(28px,6vw,92px) 30px;background:linear-gradient(180deg,#f6f0df 0%,#e8ead5 30%,#bdcfaa 66%,#6e9567 100%)}
.landscape{position:absolute;inset:0;background:linear-gradient(90deg,rgba(249,244,226,.72),rgba(255,255,255,.08) 58%),url('assets/landscape.png') center 34%/cover no-repeat;mix-blend-mode:multiply;opacity:.52}
.land-copy{position:relative;z-index:3;min-height:calc(100vh - 142px);display:flex;flex-direction:column;justify-content:center;max-width:520px}.land-copy h1{margin:0;font:clamp(55px,7vw,100px) 'Ma Shan Zheng',cursive;line-height:1.1}.land-copy h1 em{color:#315f45;font-style:normal}.land-copy>p:not(.home-kicker){max-width:360px;color:var(--ink-soft);line-height:1.9;font-size:14px;margin:24px 0}.land-copy .home-cta{align-self:flex-start}
.grain{position:absolute;inset:0;pointer-events:none;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.72' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.25'/%3E%3C/svg%3E")}
.home{position:relative;z-index:3;min-height:calc(100vh - 142px);display:flex;align-items:center;padding:8vh 0 12vh}.home-copy{max-width:650px}.home-kicker{margin:0 0 18px;color:var(--gold);font:10px 'DM Mono',monospace;letter-spacing:.24em}.home h1{margin:0;color:var(--ink);font:clamp(47px,6.2vw,92px) 'Ma Shan Zheng',cursive;line-height:1.12;text-shadow:0 3px 20px rgba(255,250,222,.35)}.home h1 em{color:#315f45;font-style:normal}.home-lead{max-width:370px;margin:24px 0 28px;color:var(--ink-soft);font-size:14px;line-height:1.9}.home-cta{display:inline-flex;align-items:center;gap:18px;padding:12px 18px;border:1px solid rgba(184,142,66,.7);border-radius:22px;color:#785c2b;text-decoration:none;font-size:12px;background:rgba(239,239,208,.2);box-shadow:inset 0 1px rgba(255,255,255,.8),0 10px 22px rgba(60,94,57,.1);backdrop-filter:blur(8px);transition:.25s}.home-cta:hover{transform:translateY(-3px);background:rgba(239,239,208,.45)}.home-cta span{font-size:18px}.home-mark{position:absolute;right:4vw;bottom:11vh;display:flex;align-items:center;gap:12px;color:var(--ink-soft);font:9px 'DM Mono',monospace;letter-spacing:.12em}.home-mark span{font-size:22px;color:var(--gold)}.home-mark i{display:block;width:42px;height:1px;background:var(--gold)}
.nav{position:absolute;z-index:10;left:clamp(28px,6vw,92px);right:clamp(28px,6vw,92px);top:25px;height:58px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;border:1px solid rgba(255,255,240,.65);border-radius:8px;background:rgba(226,237,210,.22);box-shadow:inset 0 1px rgba(255,255,255,.72),0 12px 35px rgba(43,75,48,.08);backdrop-filter:blur(15px)}
.brand{color:var(--ink);text-decoration:none}.brand span{display:block;font:25px 'Ma Shan Zheng',cursive;line-height:1}.brand small{display:block;margin-top:6px;font:7px 'DM Mono',monospace;letter-spacing:.22em}.nav-links{display:flex;gap:36px;font-size:12px}.nav-links a{position:relative;padding:21px 2px;color:var(--ink);text-decoration:none}.nav-links a.active:after{content:'✦ ───';position:absolute;left:50%;bottom:3px;transform:translateX(-50%);white-space:nowrap;color:var(--gold);font-size:8px}
.heading-row{position:relative;z-index:3;display:grid;grid-template-columns:minmax(300px,1fr) minmax(330px,39vw);gap:5vw;align-items:start;min-height:155px}.intro p{margin:0;color:var(--gold);font:10px 'DM Mono',monospace;letter-spacing:.2em}.intro h1{margin:6px 0 4px;font:clamp(52px,5.5vw,82px) 'Ma Shan Zheng',cursive;line-height:1;color:var(--ink)}.intro span{font-size:13px;color:var(--ink-soft)}
.detail{justify-self:end;width:100%;min-height:142px;padding:18px 22px;border:1px solid rgba(242,249,221,.8);border-radius:20px;background:linear-gradient(135deg,rgba(225,239,209,.58),rgba(132,179,132,.25));box-shadow:inset 0 1px rgba(255,255,255,.85),0 18px 40px rgba(37,77,47,.12);backdrop-filter:blur(16px)}
.detail-top{display:flex;align-items:flex-start;gap:18px}.detail-num{color:var(--gold);font:13px 'DM Mono',monospace}.detail h2{margin:0;font-size:24px;font-weight:500}.detail h2 i{margin-left:8px;color:var(--ink-soft);font-size:13px;font-style:normal}.detail p{margin:8px 0 0;font-size:11px;line-height:1.75;color:var(--ink-soft)}.detail button{margin-top:11px;padding:7px 12px;border:1px solid rgba(184,142,66,.55);border-radius:14px;background:rgba(247,242,218,.18);color:#8b682d;font-size:10px;cursor:pointer}
.gallery{position:relative;z-index:3;margin-top:10px}.people-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px 28px}.person{position:relative;min-width:0;cursor:grab;transition:opacity .32s ease,filter .32s ease,transform .32s ease}.person:active{cursor:grabbing}.stage{position:relative;height:clamp(190px,19vw,278px)}
.glass-frame{position:absolute;inset:0;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}
.glass-frame:after{display:none}
.figure{position:absolute;z-index:3;left:0;bottom:27px;width:100%;height:66%;max-width:none;object-fit:cover;object-position:left center;filter:drop-shadow(0 12px 8px rgba(29,65,37,.24));transform-origin:50% 78%;transition:transform .38s cubic-bezier(.2,.7,.2,1),filter .35s}
.figure-video{object-fit:contain;object-position:center bottom;background:transparent}
.cover-figure{object-fit:cover;object-position:left center;clip-path:inset(0 66.67% 0 0);transform:scale(3);transform-origin:16.67% 78%;width:300%;}
.single-figure{left:0;width:100%;height:66%;object-fit:contain;object-position:center bottom;mix-blend-mode:normal;}
.person:nth-child(7) .single-figure{height:70%;}
.source-video{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.figure-canvas{object-fit:contain;object-position:center bottom;height:80%;width:100%;image-rendering:auto}.person:hover .figure-canvas{transform:translateY(-8px) scale(1.12)}
.aura{position:absolute;z-index:1;left:10%;right:10%;top:7%;height:88%;border-radius:50% 50% 18% 18%/40% 40% 10% 10%;border:1px solid transparent;background:linear-gradient(180deg,rgba(211,239,190,0),rgba(143,201,145,.08));transition:.35s}.platform{position:absolute;z-index:2;left:13%;right:13%;bottom:11px;height:33px;border:1px solid rgba(225,245,198,.76);border-radius:50%;background:radial-gradient(ellipse at 50% 18%,rgba(242,250,215,.78),rgba(89,151,99,.38) 70%);box-shadow:inset 0 5px 8px rgba(255,255,230,.55),0 10px 11px rgba(31,73,42,.2);transition:.35s}
.label{position:relative;z-index:5;width:min(150px,92%);margin:-3px auto 0;padding:8px 18px;text-align:center;border:1px solid rgba(235,246,215,.7);border-radius:16px;background:linear-gradient(110deg,rgba(224,242,210,.5),rgba(184,220,178,.25));box-shadow:inset 0 1px rgba(255,255,255,.82),0 8px 19px rgba(38,76,44,.1);backdrop-filter:blur(12px);transition:.32s}.label b,.label span,.label small{display:block}.label b{color:var(--gold);font:9px 'DM Mono',monospace}.label span{font-size:14px}.label small{font-size:9px;color:var(--ink-soft)}.label i{position:absolute;top:50%;color:var(--gold);font-size:9px;font-style:normal;transform:translateY(-50%)}.label i:first-child{left:7px}.label i:last-child{right:7px}
.rotate-hint{display:none}
.people-grid:has(.person.preview) .person:not(.preview):not(.active),.people-grid.has-active .person:not(.active){opacity:.55;filter:saturate(.72);transform:scale(.94)}.person.preview,.person.active{z-index:8}.person.preview .figure,.person.active .figure{transform:translateY(-11px) scale(1.18) rotateY(var(--turn,0deg));filter:drop-shadow(0 15px 10px rgba(29,65,37,.24)) drop-shadow(0 0 18px rgba(132,206,128,.6))}.person.preview .aura,.person.active .aura{top:-2%;height:101%;border-color:rgba(221,239,190,.68);background:linear-gradient(180deg,rgba(211,239,190,.3),rgba(82,158,102,.18));box-shadow:0 0 32px rgba(166,220,151,.34)}.person.preview .platform,.person.active .platform{border-color:rgba(210,166,69,.95);box-shadow:inset 0 5px 8px rgba(255,255,230,.6),0 0 20px rgba(210,166,69,.48),0 10px 11px rgba(31,73,42,.2)}.person.preview .label,.person.active .label{transform:translateY(-5px);background:rgba(231,240,209,.62);box-shadow:0 0 16px rgba(221,191,108,.23)}.person.preview .rotate-hint,.person.active .rotate-hint{opacity:1;transform:none}
.footer{position:relative;z-index:4;display:flex;justify-content:center;align-items:center;margin-top:20px;min-height:48px}.counter{text-align:center}.counter b{font:10px 'DM Mono',monospace;letter-spacing:.14em}.dots{display:flex;gap:7px;margin-top:8px}.dots i{width:12px;height:2px;border-radius:2px;background:rgba(31,71,47,.3);transition:.3s}.dots i.on{width:24px;background:var(--gold)}.next{position:absolute;right:0;width:46px;height:46px;border:1px solid rgba(239,246,218,.85);border-radius:50%;background:rgba(211,232,196,.42);box-shadow:inset 0 1px rgba(255,255,255,.8),0 8px 20px rgba(39,77,44,.12);color:var(--ink);font-size:21px;cursor:pointer;backdrop-filter:blur(10px)}
@media(max-width:900px){.portraits{overflow:visible}.heading-row{grid-template-columns:1fr}.detail{max-width:430px;justify-self:start}.people-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stage{height:250px}}
@media(max-width:600px){.portraits{padding:96px 16px 28px}.nav{left:16px;right:16px;top:16px;padding:0 14px}.nav-links{gap:13px;font-size:10px}.nav-links a:last-child{display:none}.heading-row{gap:18px}.intro h1{font-size:48px}.detail{min-width:0}.people-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 10px}.stage{height:220px}.rotate-hint{right:0}.footer{margin-top:25px}.next{right:3px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.hehuoren-layout{grid-template-columns:minmax(320px,.8fr) minmax(400px,1fr)}
.hehuoren-copy{grid-column:1;grid-row:1}
.hehuoren-layout>.letter-shell{grid-column:2;grid-row:1}
.letter-paper select{background-color:rgba(194,222,185,.52);color:var(--ink)}
.letter-paper select option{background:#d9e8d0;color:#173e31}
@media(max-width:800px){.hehuoren-copy{grid-column:1;grid-row:1}.hehuoren-layout>.letter-shell{grid-column:1;grid-row:2}}
.hehuoren-copy{align-self:start;padding-top:5vh}
.hehuoren-copy h2 em{color:var(--gold);font-size:1.12em}
.hehuoren-layout>.letter-shell{aspect-ratio:4 / 3;width:100%;max-width:620px}
.hehuoren-layout>.letter-shell .letter-paper{height:100%;overflow:auto}
@media(max-width:800px){.hehuoren-copy{padding-top:0}.hehuoren-layout>.letter-shell{aspect-ratio:auto}.hehuoren-layout>.letter-shell .letter-paper{height:auto;overflow:visible}}
.hehuoren-layout{position:relative;z-index:3;min-height:calc(100vh - 110px);display:grid;grid-template-columns:minmax(400px,1fr) minmax(320px,.8fr);gap:8vw;align-items:center;padding:95px 6vw 55px}.letter-shell{max-width:620px;padding:14px;border:1px solid rgba(238,247,218,.8);border-radius:24px;background:rgba(198,224,190,.25);box-shadow:inset 0 1px rgba(255,255,255,.8),0 25px 55px rgba(39,77,44,.18);backdrop-filter:blur(18px);transform:rotate(-1.5deg)}.letter-paper{padding:38px 44px;background:linear-gradient(135deg,rgba(245,244,218,.7),rgba(193,222,183,.38));border-radius:16px;box-shadow:inset 0 1px rgba(255,255,255,.8)}.letter-kicker{margin:0;color:var(--gold);font:10px 'DM Mono',monospace;letter-spacing:.18em}.letter-paper h1{margin:10px 0 4px;font:clamp(40px,5vw,68px) 'Ma Shan Zheng',cursive;color:var(--ink)}.letter-subtitle{margin:0 0 24px;color:var(--ink-soft);font-size:13px}.letter-paper label{display:grid;gap:7px;margin:16px 0;color:var(--ink);font-size:13px}.letter-paper input,.letter-paper select,.letter-paper textarea{width:100%;padding:10px 12px;border:1px solid rgba(130,166,119,.45);border-radius:10px;background:rgba(247,247,224,.3);color:var(--ink);font:13px 'Noto Serif SC',serif;outline:none}.letter-paper textarea{resize:vertical;min-height:112px}.date-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.letter-send{display:block;margin:25px auto 0;padding:11px 26px;border:1px solid rgba(184,142,66,.65);border-radius:22px;background:rgba(225,238,207,.4);color:#82632e;cursor:pointer;box-shadow:inset 0 1px rgba(255,255,255,.8),0 8px 18px rgba(54,94,55,.12);transition:.3s}.letter-send:hover{transform:translateY(-3px);background:rgba(235,239,206,.65)}.letter-status{min-height:18px;margin:14px 0 0;text-align:center;color:var(--gold);font-size:12px}.hehuoren-copy{position:relative;align-self:center;max-width:460px;color:var(--ink)}.hehuoren-copy h2{margin:12px 0 20px;font:clamp(44px,5.4vw,82px) 'Ma Shan Zheng',cursive;line-height:1.12}.hehuoren-copy h2 em{color:#315f45;font-style:normal}.hehuoren-copy>p:not(.home-kicker){color:var(--ink-soft);font-size:14px;line-height:2}.wheat-totem{position:absolute;right:4vw;bottom:-13vh;color:#6e9c67;font-size:65px;line-height:.55;transform:rotate(-20deg)}.listening{transition:.6s}.listening.is-hearing{color:var(--gold)!important;text-shadow:0 0 18px rgba(184,142,66,.55);transform:translateX(10px)}.letter-paper:after{content:'✦';display:block;text-align:right;color:var(--gold);font-size:18px;opacity:.7}.letter-send span{margin-left:8px}.letter-paper form.is-sent{animation:letter-glow .8s ease-in-out 3}@keyframes letter-glow{50%{filter:drop-shadow(0 0 14px rgba(184,142,66,.5))}}@media(max-width:800px){.hehuoren-layout{grid-template-columns:1fr;gap:38px;padding:95px 20px 40px}.letter-shell{width:100%;transform:none}.letter-paper{padding:28px 22px}.hehuoren-copy{padding:0 12px 70px}.wheat-totem{right:20px;bottom:0}.nav-links{gap:12px}.nav-links a{font-size:10px}}
.land-timeline-trigger{font:inherit;cursor:pointer}
.land-modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:28px;background:rgba(15,55,39,.62);backdrop-filter:blur(14px);opacity:0;transition:opacity .28s ease}.land-modal.is-visible{opacity:1}.land-timeline-card{position:relative;width:min(920px,94vw);max-height:88vh;overflow:auto;padding:38px 54px 30px;border:1px solid rgba(241,245,211,.72);border-radius:26px;background:linear-gradient(135deg,rgba(224,239,207,.72),rgba(135,178,133,.42));box-shadow:inset 0 1px rgba(255,255,255,.8),0 28px 80px rgba(10,52,34,.35);backdrop-filter:blur(22px);transform:translateY(22px) scale(.97);transition:transform .4s cubic-bezier(.2,.8,.2,1)}.land-modal.is-visible .land-timeline-card{transform:none}.land-close{position:absolute;right:18px;top:16px;width:38px;height:38px;border:1px solid rgba(239,244,214,.8);border-radius:50%;background:rgba(238,245,220,.28);color:var(--ink);font-size:25px;cursor:pointer}.land-timeline-head{text-align:center}.land-timeline-head p{margin:0;color:var(--gold);font:10px 'DM Mono',monospace;letter-spacing:.22em}.land-timeline-head h2{margin:8px 0 2px;font:clamp(40px,6vw,68px) 'Ma Shan Zheng',cursive;color:var(--ink)}.land-timeline-head span{color:var(--ink-soft);font-size:12px}.land-track{display:flex;align-items:center;gap:15px;margin:28px 0 24px}.land-line{position:relative;display:flex;justify-content:space-between;align-items:flex-start;flex:1;padding:0 7%;height:62px}.land-line:before{content:'';position:absolute;left:8%;right:8%;top:15px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),#7eaa78,var(--gold),transparent)}.land-dot{position:relative;z-index:1;display:grid;justify-items:center;gap:8px;padding:0;border:0;background:none;color:var(--ink-soft);font-size:11px;cursor:pointer}.land-dot i{display:block;width:13px;height:13px;border:1px solid var(--gold);border-radius:50%;background:rgba(227,239,205,.78);box-shadow:0 0 0 5px rgba(184,142,66,0);transition:.3s}.land-dot.active{color:var(--ink);font-weight:600}.land-dot.active i{width:20px;height:20px;margin-top:-3px;background:var(--gold);box-shadow:0 0 0 6px rgba(184,142,66,.18),0 0 18px rgba(184,142,66,.5)}.land-dot span{white-space:nowrap}.land-dot small{display:block;margin-top:3px;font-size:9px;color:var(--ink-soft);font-weight:400}.land-arrow{width:34px;height:34px;border:1px solid rgba(184,142,66,.6);border-radius:50%;background:rgba(238,244,215,.36);color:var(--gold);cursor:pointer}.land-arrow:disabled{opacity:.28;cursor:default}.land-stage-content{padding:22px 28px 18px;border-top:1px solid rgba(184,142,66,.42);border-bottom:1px solid rgba(184,142,66,.32);background:linear-gradient(110deg,rgba(243,245,218,.2),rgba(107,159,111,.12));animation:land-rise .4s ease}.land-phase{margin:0;color:var(--gold);font:10px 'DM Mono',monospace;letter-spacing:.18em}.land-title{margin:6px 0 0;font:38px 'Ma Shan Zheng',cursive;color:var(--ink)}.land-years{margin:2px 0 15px;color:var(--ink-soft);font:11px 'DM Mono',monospace}.land-intro{margin:0 0 4px;color:var(--ink);font-size:15px}.land-story{margin:0 0 14px;color:var(--ink-soft);font-size:13px;line-height:1.85}.land-events{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 26px;margin:0;padding:0;list-style:none}.land-events li{display:grid;grid-template-columns:auto 1fr;gap:8px;color:var(--ink-soft);font-size:12px;line-height:1.7}.land-events b{color:var(--ink);white-space:nowrap}.land-node{margin:17px 0 7px;padding-left:12px;border-left:2px solid var(--gold);color:var(--ink);font-size:12px;line-height:1.7}.land-achievement{margin:0;color:var(--ink-soft);font-size:12px;line-height:1.8}.land-ending{margin:20px 0 0;text-align:center;color:var(--gold);font:25px 'Ma Shan Zheng',cursive}@keyframes land-rise{from{opacity:.4;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:700px){.land-modal{padding:12px}.land-timeline-card{width:100%;max-height:92vh;padding:32px 20px 24px}.land-track{gap:7px}.land-line{padding:0 2%;height:72px}.land-line:before{left:4%;right:4%}.land-dot span{font-size:9px}.land-dot small{font-size:8px}.land-stage-content{padding:18px 12px}.land-title{font-size:34px}.land-events{grid-template-columns:1fr;gap:7px}.land-events li{font-size:11px}}
.land-finale{min-height:230px;display:grid;place-items:center;text-align:center;align-content:center;gap:8px}.land-finale-line{margin:0;color:var(--ink);font-size:18px;letter-spacing:.08em}.land-finale h3{margin:0;color:var(--gold);font:clamp(38px,6vw,64px) 'Ma Shan Zheng',cursive;text-shadow:0 2px 14px rgba(184,142,66,.18)}.land-doodles{display:flex;align-items:center;justify-content:center;gap:26px;margin-top:12px;color:#6e9c67;font-size:34px;line-height:1}.land-doodles span{display:inline-block;opacity:.85}.doodle-wheat{font-size:52px;transform:rotate(-18deg)}.doodle-house{font-size:45px}.doodle-flower{font-size:27px;color:#82a96f}.doodle-sprig{font-size:50px;transform:rotate(12deg)}
.stage,.glass-frame,.person.preview,.person.active{overflow:visible}
.modal-open{overflow:hidden}.profile-modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:28px;background:rgba(12,48,35,.68);backdrop-filter:blur(12px);opacity:0;transition:opacity .28s ease}.profile-modal.is-visible{opacity:1}.profile-card{position:relative;display:grid;grid-template-columns:minmax(280px,.9fr) minmax(360px,1.1fr);width:min(900px,94vw);min-height:520px;overflow:hidden;border:1px solid rgba(238,239,203,.72);border-radius:24px;background:rgba(218,235,202,.66);box-shadow:0 30px 80px rgba(11,49,31,.32),inset 0 1px rgba(255,255,255,.82);backdrop-filter:blur(22px);transform:translateY(22px) scale(.97);transition:transform .4s cubic-bezier(.2,.8,.2,1)}.profile-modal.is-visible .profile-card{transform:none}.profile-close{position:absolute;z-index:4;right:18px;top:16px;width:38px;height:38px;border:1px solid rgba(239,244,214,.8);border-radius:50%;background:rgba(238,245,220,.3);color:var(--ink);font-size:25px;line-height:1;cursor:pointer}.profile-portrait{position:relative;display:flex;align-items:flex-end;justify-content:center;min-height:470px;overflow:hidden;padding:30px 20px 0;background:var(--profile-bg);isolation:isolate}.profile-portrait:before{content:'';position:absolute;inset:12% 12% 0;border-radius:50% 50% 0 0;background:var(--profile-glow);filter:blur(18px);z-index:-1}.profile-portrait:after{content:'✦  ✦  ✦';position:absolute;left:24px;bottom:22px;color:var(--profile-accent);font-size:14px;letter-spacing:12px;opacity:.8}.profile-portrait img{position:relative;z-index:1;width:92%;height:88%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 18px 14px rgba(22,63,40,.25));animation:profile-breathe 5s ease-in-out infinite}.profile-portrait>span{position:absolute;left:24px;top:24px;color:var(--profile-accent);font:11px 'DM Mono',monospace;letter-spacing:.18em}.profile-portrait small{position:absolute;right:26px;bottom:24px;color:var(--profile-accent);font:9px 'DM Mono',monospace;letter-spacing:.16em}.profile-copy{padding:76px 58px 44px;color:var(--ink);background:linear-gradient(120deg,rgba(255,255,245,.18),rgba(117,167,119,.12));}.profile-kicker{margin:0;color:var(--profile-accent);font:10px 'DM Mono',monospace;letter-spacing:.18em}.profile-copy h2{margin:18px 0 8px;font:clamp(38px,5vw,62px) 'Ma Shan Zheng',cursive;line-height:1}.profile-copy h2 i{display:block;margin-top:10px;color:var(--ink-soft);font:13px 'Noto Serif SC',serif;font-style:normal}.profile-role{margin:0;color:var(--profile-accent);font-size:14px}.profile-rule{width:100%;height:1px;margin:26px 0;background:linear-gradient(90deg,var(--profile-accent),transparent)}.profile-bio{max-width:370px;color:var(--ink-soft);font-size:14px;line-height:2}.profile-meta{display:flex;gap:28px;margin-top:30px;color:var(--ink-soft);font-size:11px}.profile-meta span{display:grid;gap:6px}.profile-meta b{color:var(--ink);font-weight:500}.profile-copy blockquote{margin:32px 0 0;color:var(--profile-accent);font:18px/1.7 'Ma Shan Zheng',cursive}.theme-wilderness{--profile-bg:linear-gradient(145deg,#bdd0b2,#477057);--profile-glow:rgba(212,220,153,.35);--profile-accent:#b88e42}.theme-sun{--profile-bg:linear-gradient(145deg,#d5d99d,#779d58);--profile-glow:rgba(249,208,99,.4);--profile-accent:#a47725}.theme-earth{--profile-bg:linear-gradient(145deg,#c4c5a1,#665f3d);--profile-glow:rgba(190,178,115,.32);--profile-accent:#a5854c}.theme-film{--profile-bg:linear-gradient(145deg,#dce3ce,#8ba99a);--profile-glow:rgba(242,239,210,.55);--profile-accent:#a28255}.theme-wind{--profile-bg:linear-gradient(145deg,#d6e9d9,#8ab7aa);--profile-glow:rgba(244,250,238,.65);--profile-accent:#758e79}.theme-coral{--profile-bg:linear-gradient(145deg,#b8d5b8,#d79c8e);--profile-glow:rgba(255,208,163,.4);--profile-accent:#a86c5e}.theme-kitchen{--profile-bg:linear-gradient(145deg,#d8e0c9,#a5ad82);--profile-glow:rgba(255,244,205,.55);--profile-accent:#88744a}.theme-echo{--profile-bg:linear-gradient(145deg,#afd4c5,#6caa9e);--profile-glow:rgba(224,250,218,.45);--profile-accent:#b8924a}.theme-forest{--profile-bg:linear-gradient(145deg,#a9bea0,#3d624d);--profile-glow:rgba(201,218,151,.32);--profile-accent:#b38b42}.theme-sprout{--profile-bg:linear-gradient(145deg,#d8e5a4,#8fb25e);--profile-glow:rgba(255,229,130,.45);--profile-accent:#9c7b32}@keyframes profile-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(max-width:700px){.profile-modal{padding:12px;align-items:start;overflow:auto}.profile-card{grid-template-columns:1fr;width:100%;min-height:0;margin:3vh 0}.profile-portrait{min-height:330px;height:45vh}.profile-copy{padding:34px 26px 34px}.profile-copy h2{font-size:48px}.profile-bio{font-size:13px}.profile-meta{margin-top:22px}.profile-close{right:12px;top:12px}}
.profile-facts{max-height:290px;overflow:auto;color:var(--ink-soft);font-size:12px;line-height:1.75}.profile-facts p{margin:0 0 12px}.profile-facts b{display:block;margin-bottom:2px;color:var(--profile-accent);font-size:10px;letter-spacing:.08em}.profile-facts ul{margin:3px 0 0;padding-left:17px}.profile-facts li{margin:2px 0}
.profile-facts{line-height:1.65}.profile-facts p{margin:0}.profile-facts b{display:block;margin:0;color:var(--profile-accent);font-family:'DM Mono',monospace;font-size:11px;font-weight:500;letter-spacing:.08em;line-height:1.45}.profile-facts p+ p{margin-top:8px}.profile-facts ul{margin:0;padding-left:17px}.profile-facts li{margin:0;line-height:1.55}
.home .home-cta{position:absolute;right:5vw;bottom:9vh;background:rgba(214,234,210,.2);border-color:rgba(241,247,220,.7);backdrop-filter:blur(18px)}
.profile-role{color:var(--gold)!important}.profile-facts p{color:var(--ink-soft)}.profile-facts b{display:block;color:var(--gold);font-family:'Noto Serif SC',serif;font-size:14px;font-weight:700;line-height:1.5}.profile-facts li{color:var(--ink-soft);font-weight:400}.profile-facts p+ p{margin-top:8px}.profile-copy blockquote{color:var(--profile-support)!important}.theme-wilderness{--profile-support:#e2b52f}.theme-sun{--profile-support:#63b8e8}.theme-earth{--profile-support:#258ad7}.theme-film{--profile-support:#e68baa}.theme-wind{--profile-support:#4b8fd1}.theme-coral{--profile-support:#a61fc7}.theme-kitchen{--profile-support:#b88e42}.theme-echo{--profile-support:#e23b3b}.theme-forest{--profile-support:#e785a9}.theme-sprout{--profile-support:#24a889}
/* Land photo wall */
.land-photo-wall{position:absolute;z-index:3;right:4vw;top:17vh;width:min(48vw,650px);height:72vh}.land-photo{position:absolute;width:clamp(145px,15vw,220px);padding:9px 9px 28px;margin:0;border:1px solid rgba(218,241,204,.72);border-radius:5px;background:linear-gradient(135deg,rgba(196,226,187,.68),rgba(116,171,119,.38));box-shadow:inset 0 1px rgba(255,255,245,.78),0 15px 28px rgba(31,74,43,.2);backdrop-filter:blur(13px);transition:transform .35s cubic-bezier(.2,.8,.2,1),z-index .1s,box-shadow .35s}.land-photo img{display:block;width:100%;aspect-ratio:1.36;object-fit:cover;filter:saturate(.88) contrast(.96);border:1px solid rgba(238,246,220,.52)}.paperclip{position:absolute;z-index:2;left:50%;top:-15px;width:17px;height:34px;border:2px solid #b88e42;border-bottom-color:transparent;border-radius:9px 9px 0 0;transform:translateX(-50%) rotate(6deg)}.photo-1{left:2%;top:2%;transform:rotate(-8deg)}.photo-2{left:27%;top:0;transform:rotate(5deg)}.photo-3{left:54%;top:5%;transform:rotate(-4deg)}.photo-4{left:72%;top:27%;transform:rotate(8deg)}.photo-5{left:5%;top:46%;transform:rotate(6deg)}.photo-6{left:31%;top:43%;transform:rotate(-7deg)}.photo-7{left:57%;top:51%;transform:rotate(4deg)}.photo-8{left:18%;top:76%;transform:rotate(-3deg)}.land-photo:hover{z-index:20;transform:translateY(-10px) scale(1.13) rotate(0deg);box-shadow:inset 0 1px rgba(255,255,245,.9),0 25px 45px rgba(31,74,43,.35),0 0 20px rgba(184,142,66,.25)}
@media(max-width:900px){.land-photo-wall{right:2vw;width:48vw;opacity:.9}.land-photo{width:clamp(110px,14vw,170px)}}
@media(max-width:600px){.land-photo-wall{position:relative;right:auto;top:auto;width:100%;height:460px;margin:28px 0 0}.land-photo{width:145px}.land-copy{min-height:58vh}.photo-1{left:0}.photo-2{left:28%}.photo-3{left:56%}.photo-4{left:65%;top:25%}.photo-5{left:5%;top:47%}.photo-6{left:33%;top:45%}.photo-7{left:60%;top:52%}.photo-8{left:19%;top:75%}}
.land-timeline-card{width:min(1120px,96vw);padding-left:44px;padding-right:44px}.land-story,.land-achievement{max-width:980px}.land-events{column-gap:38px}
/* Letter dimensions follow its content so the complete form stays visible. */
.hehuoren-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,5vw,76px)}
.hehuoren-layout>.letter-shell{grid-column:2;grid-row:1;aspect-ratio:auto;max-width:760px;justify-self:end;transform:none}
.hehuoren-layout>.letter-shell .letter-paper{height:auto;overflow:visible}
.hehuoren-copy{grid-column:1;grid-row:1;align-self:start;padding-top:4vh}
.hehuoren-copy h2 em{color:var(--gold)}
.letter-paper input[type=number]{appearance:textfield;-moz-appearance:textfield}
.letter-paper input[type=number]::-webkit-inner-spin-button,.letter-paper input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.hehuoren-layout{grid-template-columns:minmax(270px,.75fr) minmax(0,1.4fr);gap:clamp(24px,4vw,60px);padding-left:clamp(24px,4vw,64px);padding-right:clamp(24px,4vw,64px)}
.hehuoren-layout>.letter-shell{max-width:780px;min-width:0}
.hehuoren-layout .letter-paper{padding:26px 32px 18px}
.hehuoren-layout .letter-paper h1{font-size:clamp(40px,4vw,58px);margin:5px 0 2px}
.hehuoren-layout .letter-subtitle{margin-bottom:12px}
.hehuoren-layout .letter-paper label{margin:10px 0}
.letter-fields-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:end}
.letter-fields-row label{min-width:0}
.letter-fields-row .date-fields{grid-template-columns:minmax(0,1.35fr) repeat(2,minmax(0,.8fr))}
.letter-fields-row .date-fields input{min-width:0}
.hehuoren-layout .letter-paper textarea{min-height:95px}
.hehuoren-layout .letter-send{margin-top:12px}
.hehuoren-layout .letter-status{margin-top:6px;min-height:16px}
@media(max-width:800px){.hehuoren-layout{grid-template-columns:minmax(0,1fr)}.letter-fields-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:560px){.letter-fields-row{grid-template-columns:1fr}.hehuoren-layout .letter-paper{padding:26px 22px}}
.hehuoren-layout>.letter-shell{align-self:start;margin-top:-1.5cm;transform:rotate(-2deg);transition:filter .4s ease,transform .4s ease}
.hehuoren-layout>.letter-shell.is-blurred{filter:blur(8px);pointer-events:none}
.letter-send:disabled{cursor:wait;opacity:.65}
.letter-thanks-overlay{position:fixed;z-index:30;inset:0;display:grid;place-items:center;padding:20px;background:rgba(25,63,42,.24);backdrop-filter:blur(3px)}
.letter-thanks{position:relative;isolation:isolate;width:min(470px,90vw);padding:55px 35px 45px;text-align:center;overflow:hidden;border:1px solid rgba(211,183,111,.7);border-radius:20px;background:linear-gradient(135deg,rgba(228,241,210,.88),rgba(169,208,166,.84));box-shadow:inset 0 1px rgba(255,255,255,.9),0 20px 55px rgba(21,70,38,.24);backdrop-filter:blur(20px);animation:land-rise .45s ease}
.letter-thanks:before,.letter-thanks:after{content:'✳  ✦  ✳  ✦  ✳';position:absolute;z-index:-1;color:rgba(81,138,76,.28);font-size:42px;letter-spacing:12px;white-space:nowrap;transform:rotate(-28deg)}
.letter-thanks:before{top:34px;left:-70px}.letter-thanks:after{bottom:25px;right:-90px}
.letter-thanks h2{margin:25px 0;color:#315f45;font:clamp(36px,5vw,55px)/1.35 'Ma Shan Zheng',cursive}
.letter-thanks-wheat{color:#6e9c67;font-size:19px;letter-spacing:8px}
.letter-thanks-close{position:absolute;top:13px;right:15px;width:34px;height:34px;border:1px solid rgba(114,157,100,.55);border-radius:50%;background:rgba(232,242,214,.6);color:var(--ink);font-size:22px;cursor:pointer}
@media(max-width:800px){.hehuoren-layout>.letter-shell{margin-top:0;transform:rotate(-1deg)}}
.edge-credit{position:fixed;z-index:80;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:4px;height:42px;background:#6e9567;font-size:11px;line-height:1.5;text-align:center;pointer-events:none;visibility:hidden;transition:transform .24s ease,visibility .24s}
.edge-credit.at-bottom{bottom:0;transform:translateY(100%)}.edge-credit.at-top{top:0;transform:translateY(-100%)}
.edge-credit.is-visible{visibility:visible;transform:translateY(0)}
.edge-credit span{color:#c8e5bb}.edge-credit strong{color:#e3c47c;font-weight:500}
@media(max-width:800px){.hehuoren-layout{grid-template-columns:minmax(0,1fr)}.hehuoren-copy{grid-column:1;grid-row:1;padding-top:0}.hehuoren-layout>.letter-shell{grid-column:1;grid-row:2;justify-self:stretch}}
@media(max-width:700px){.land-timeline-card{width:100%;padding-left:20px;padding-right:20px}.land-events{column-gap:0}}
.profile-portrait .profile-video{position:absolute;z-index:1;left:50%;top:50%;width:116%;height:86%;object-fit:contain;object-position:center center;transform:translate(-50%,-50%);background:transparent;filter:none;mask-image:linear-gradient(to bottom,transparent 0%,#000 9%,#000 91%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 9%,#000 91%,transparent 100%);animation:profile-video-breathe 5s ease-in-out infinite}.profile-glass-stage{display:none}@keyframes profile-video-breathe{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - 5px))}}
.profile-portrait .profile-video{display:block;left:50%;top:50%;width:100%;height:100%;object-fit:cover;object-position:center center;mask-image:none;-webkit-mask-image:none;transform:translate(-50%,-50%);filter:none}.profile-portrait small{z-index:4;text-shadow:0 1px 5px rgba(20,58,38,.45)}
.profile-portrait img{display:none}.profile-portrait:after{z-index:3;text-shadow:0 1px 5px rgba(20,58,38,.45)}
.profile-portrait .profile-video{display:block}
