:root{--ink:#17312f;--muted:#53615d;--paper:#fffaf0;--paper-deep:#f8f1df;--line:#d9cdb3;--teal:#2d7a79;--red:#dd4b39;--blue:#2767a3;--green:#375f3b;--shadow:0 18px 50px rgba(23,49,47,0.14)}*{box-sizing:border-box}html{background:var(--paper-deep);color:var(--ink)}body{margin:0;min-height:100vh;font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif;letter-spacing:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}img{display:block;max-width:100%}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px clamp(18px,5vw,56px);border-bottom:1px solid rgba(23,49,47,.12);background:rgba(255,250,240,.92);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{display:inline-flex;align-items:center;gap:8px;font-weight:800}.brand span{display:inline-grid;width:38px;height:30px;place-items:center;border:2px solid var(--ink);background:var(--teal);color:var(--paper);font-size:13px}.site-header nav{display:flex;gap:16px;color:var(--muted);font-size:14px}.site-footer{padding:clamp(28px,5vw,56px) clamp(18px,6vw,88px);border-top:1px solid var(--line)}.wechat-follow{display:grid;grid-template-columns:minmax(0,1fr) 156px;grid-gap:clamp(18px,4vw,36px);gap:clamp(18px,4vw,36px);align-items:center;max-width:1040px;margin:0 auto;border:2px solid var(--ink);background:linear-gradient(90deg,rgba(23,49,47,.05) 1px,transparent 1px),linear-gradient(rgba(23,49,47,.05) 1px,transparent 1px),var(--paper);background-size:20px 20px;padding:clamp(18px,4vw,28px);box-shadow:7px 7px 0 rgba(23,49,47,.2)}.wechat-follow-copy{display:grid;grid-gap:8px;gap:8px}.wechat-follow-copy .eyebrow{margin-bottom:0}.wechat-follow-copy strong{font-size:clamp(28px,5vw,48px);line-height:1.05}.wechat-follow-copy span{max-width:620px;color:var(--muted);line-height:1.75}.wechat-follow img{width:156px;height:156px;border:2px solid var(--ink);background:#ffffff;padding:8px;object-fit:contain}.hero-band{display:grid;grid-template-columns:minmax(0,.95fr) minmax(340px,.85fr);grid-gap:clamp(28px,5vw,72px);gap:clamp(28px,5vw,72px);align-items:center;min-height:calc(100vh - 62px);padding:clamp(36px,7vw,92px) clamp(18px,6vw,88px);border-bottom:1px solid var(--line)}.hero-copy{max-width:720px}.eyebrow,.page-title p,.section-heading p{margin:0 0 12px;color:var(--red);font-size:13px;font-weight:800;text-transform:uppercase}h1,h2,p{margin-top:0}.hero-copy h1{margin-bottom:16px;font-size:clamp(54px,9vw,112px);line-height:.95}.hero-lede{max-width:520px;color:var(--muted);font-size:clamp(19px,3vw,28px);line-height:1.55}.search-box{display:flex;align-items:center;width:min(100%,620px);min-height:58px;margin:28px 0 18px;border:2px solid var(--ink);background:var(--paper);box-shadow:8px 8px 0 var(--ink)}.search-box svg{flex:0 0 auto;margin-left:18px;color:var(--teal)}.search-box input{min-width:0;flex:1 1;border:0;outline:0;padding:0 14px;background:transparent;color:var(--ink)}.search-box button{align-self:stretch;border:0;border-left:2px solid var(--ink);padding:0 22px;background:var(--red);color:var(--paper);cursor:pointer;font-weight:800}.hero-actions,.profile-actions{display:flex;flex-wrap:wrap;gap:12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:2px solid var(--ink);padding:0 16px;cursor:pointer;font-weight:800}.button:disabled{cursor:not-allowed;opacity:.72}.button.primary{background:var(--ink);color:var(--paper)}.button.secondary{background:var(--teal);color:var(--paper)}.button.ghost{background:var(--paper);color:var(--ink)}.button.memory-light{background:var(--paper-deep);color:var(--ink)}.button.memory-light.is-lit{background:var(--red);color:var(--paper)}.memory-light-wrap{display:inline-grid;gap:6px}.memory-light-notice{max-width:220px;color:var(--red);font-size:12px;font-weight:800;line-height:1.4}.button.wide{width:100%}.avatar-wall{display:grid;grid-template-columns:repeat(7,minmax(38px,1fr));grid-gap:10px;gap:10px;padding:16px;border:2px solid var(--ink);background:linear-gradient(90deg,rgba(23,49,47,.06) 1px,transparent 1px),linear-gradient(rgba(23,49,47,.06) 1px,transparent 1px),var(--paper);background-size:22px 22px;box-shadow:var(--shadow)}.avatar{position:relative;display:inline-grid;flex:0 0 auto;place-items:center;overflow:hidden;border:2px solid var(--ink);background:var(--green);color:var(--paper);font-weight:800}.avatar-sm{width:44px;height:44px;font-size:15px}.avatar-md{width:58px;height:58px;font-size:20px}.avatar-lg{width:132px;height:132px;font-size:42px}.quote-card .avatar{color:var(--paper)}.quote-card .avatar-sm{font-size:15px}.quote-card .avatar-md{font-size:20px}.quote-card .avatar-lg{font-size:42px}.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}.avatar img.loaded{opacity:1}.avatar:has(img.loaded) .avatar-text{opacity:0}.avatar-text{z-index:1;display:grid;grid-auto-flow:column;grid-auto-columns:min-content;justify-content:center;align-items:center;grid-gap:1px;gap:1px;color:var(--paper);font-weight:900;line-height:1.05;text-shadow:0 1px 0 rgba(23,49,47,.45)}.avatar-text[data-length="3"],.avatar-text[data-length="4"]{grid-auto-flow:row;grid-template-columns:repeat(2,min-content);grid-auto-columns:auto}.avatar-text>span{min-width:.75em;color:var(--paper);text-align:center}.quote-card .avatar-text>span{color:var(--paper);font-size:inherit}.avatar-sm .avatar-text[data-length="3"]{font-size:13px}.avatar-sm .avatar-text[data-length="4"]{font-size:12px}.avatar-md .avatar-text[data-length="3"]{font-size:17px}.avatar-md .avatar-text[data-length="4"]{font-size:16px}.avatar-lg .avatar-text[data-length="3"]{font-size:36px}.avatar-lg .avatar-text[data-length="4"]{font-size:32px}.stats-band{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.stats-band div{padding:clamp(24px,4vw,42px);border-right:1px solid var(--line);background:var(--paper)}.stats-band div:last-child{border-right:0}.stats-band strong{display:block;margin-bottom:8px;font-size:clamp(30px,5vw,54px)}.stats-band span{color:var(--muted)}.page-shell,.profile-shell,.quote-band{padding:clamp(28px,5vw,72px) clamp(18px,6vw,88px)}.page-title,.section-heading{max-width:780px;margin-bottom:28px}.about-panel h1,.page-title h1,.section-heading h2{margin:0;font-size:clamp(34px,6vw,68px);line-height:1}.section-heading .quote-title{font-size:58px;white-space:nowrap}.quote-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.quote-card,.roster-card{border:2px solid var(--ink);background:var(--paper);box-shadow:5px 5px 0 rgba(23,49,47,.2)}.quote-card{display:grid;grid-gap:14px;gap:14px;padding:18px}.quote-card p{min-height:72px;margin:0;color:var(--ink);line-height:1.6}.quote-card span{color:var(--muted);font-size:13px}.explorer{display:grid;grid-gap:18px;gap:18px}.explorer-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) minmax(130px,170px) minmax(150px,210px) 48px;grid-gap:10px;gap:10px}.explorer-filters{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));grid-gap:10px;gap:10px}.toolbar-input,.toolbar-select{display:flex;align-items:center;min-height:48px;border:2px solid var(--ink);background:var(--paper)}.toolbar-input svg,.toolbar-select svg{flex:0 0 auto;margin-left:14px;color:var(--teal)}.toolbar-input input,.toolbar-select select{min-width:0;width:100%;border:0;outline:0;padding:0 12px;background:transparent;color:var(--ink)}.icon-link{display:grid;min-height:48px;place-items:center;border:2px solid var(--ink);background:var(--red);color:var(--paper)}.result-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted)}.result-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px}.result-actions button,.result-meta a{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--blue);cursor:pointer;font-weight:800}.roster-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.roster-card{position:relative;display:grid;grid-template-columns:58px 1fr;grid-gap:12px;gap:12px;min-height:116px;padding:14px}.roster-card p,.roster-card span,.roster-card strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-card span{margin-top:5px;color:var(--muted);font-size:13px}.roster-card p{margin:10px 0 0;color:var(--muted);font-size:14px}.roster-card em{position:absolute;right:10px;top:10px;color:rgba(23,49,47,.28);font-size:12px;font-style:normal;font-weight:800}.load-more{min-height:48px;cursor:pointer;font-weight:800}.about-panel,.empty-state,.load-more{border:2px solid var(--ink);background:var(--paper)}.about-panel,.empty-state{padding:clamp(22px,4vw,38px);box-shadow:var(--shadow)}.about-panel p,.empty-state p{color:var(--muted);line-height:1.8}.about-page{padding:clamp(28px,5vw,72px) clamp(18px,6vw,88px)}.about-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);grid-gap:clamp(24px,5vw,64px);gap:clamp(24px,5vw,64px);align-items:end;padding-bottom:clamp(28px,5vw,56px);border-bottom:1px solid var(--line)}.about-hero-copy{max-width:850px}.about-hero-copy h1{margin:0 0 20px;font-size:clamp(44px,8vw,92px);line-height:.98}.about-closing p,.about-hero-copy p:not(.eyebrow),.about-letter p{color:var(--muted);font-size:clamp(17px,2vw,21px);line-height:1.85}.about-keepsake{position:relative;display:grid;grid-gap:14px;gap:14px;border:2px solid var(--ink);background:linear-gradient(90deg,rgba(23,49,47,.06) 1px,transparent 1px),linear-gradient(rgba(23,49,47,.06) 1px,transparent 1px),var(--paper);background-size:20px 20px;padding:22px;box-shadow:8px 8px 0 var(--ink)}.about-keepsake span{display:inline-grid;width:56px;height:40px;place-items:center;border:2px solid var(--ink);background:var(--teal);color:var(--paper);font-size:14px;font-weight:900}.about-keepsake strong{font-size:clamp(30px,4vw,46px);line-height:1.05}.about-keepsake p{margin:0;color:var(--muted);line-height:1.8}.about-letter{display:grid;grid-gap:20px;gap:20px;max-width:900px;padding:clamp(32px,6vw,72px) 0}.about-closing p,.about-letter p{margin:0}.about-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.about-values article{display:grid;grid-gap:12px;gap:12px;align-content:start;border:2px solid var(--ink);background:var(--paper);padding:18px;box-shadow:5px 5px 0 rgba(23,49,47,.2)}.about-values svg{color:var(--red)}.about-values h2{margin:0;font-size:22px;line-height:1.25}.about-values p{margin:0;color:var(--muted);line-height:1.8}.about-closing{display:grid;grid-gap:22px;gap:22px;max-width:820px;padding-top:clamp(32px,6vw,72px)}.profile-shell{display:grid;place-items:center}.profile-hero{width:min(100%,860px);border:2px solid var(--ink);background:var(--paper);box-shadow:10px 10px 0 var(--ink)}.profile-topline{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--ink);padding:12px 16px;color:var(--muted);font-size:13px;font-weight:800}.profile-card{position:relative;display:grid;grid-template-columns:132px 1fr;grid-gap:22px;gap:22px;align-items:center;padding:clamp(22px,5vw,46px)}.profile-label{margin-bottom:8px;color:var(--red);font-size:13px;font-weight:800}.profile-main h1{margin-bottom:10px;overflow-wrap:anywhere;font-size:clamp(40px,7vw,76px);line-height:.98}.profile-identity{margin:0;color:var(--muted);font-size:18px}.profile-stamp{position:absolute;right:26px;top:24px;transform:rotate(9deg);border:3px solid var(--red);padding:8px 12px;color:var(--red);font-weight:900}.profile-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}.profile-facts div{display:grid;grid-gap:6px;gap:6px;padding:18px;border-right:2px solid var(--ink)}.profile-facts div:last-child{border-right:0}.profile-facts span{color:var(--muted);font-size:13px}.profile-facts strong{overflow-wrap:anywhere}blockquote{margin:0;padding:clamp(22px,5vw,42px);color:var(--ink);font-size:clamp(22px,4vw,34px);line-height:1.55}.profile-actions{border-top:2px solid var(--ink);padding:18px}.profile-actions>.button{flex:0 1 auto}.memorial-actions{display:contents}.memorial-more{position:relative}.memorial-more summary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:2px solid var(--ink);padding:0 16px;background:var(--paper);color:var(--muted);cursor:pointer;font-weight:800;list-style:none}.memorial-more summary::-webkit-details-marker{display:none}.memorial-more[open] summary{color:var(--ink)}.memorial-more .button{margin-top:8px}.memorial-status{cursor:default;background:var(--ink);color:var(--paper)}.memorial-notice{flex-basis:100%;margin:0;border:2px solid var(--ink);background:rgba(232,78,57,.08);padding:12px 14px;color:var(--ink);font-weight:800}.poster-panel{display:grid;justify-items:start;flex:1 0 100%;width:100%;max-width:360px;border:2px solid var(--ink);background:var(--paper-deep);padding:12px}.poster-panel img{width:100%;margin-bottom:10px;border:1px solid var(--line);background:var(--paper)}.create-layout{display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr);grid-gap:28px;gap:28px;align-items:start}.create-form{display:grid;grid-gap:16px;gap:16px;border:2px solid var(--ink);background:var(--paper);padding:18px;box-shadow:6px 6px 0 rgba(23,49,47,.22)}.create-form label,.form-group{display:grid;grid-gap:8px;gap:8px}.create-form label span,.form-group>span,.preview-title{color:var(--muted);font-size:13px;font-weight:800}.create-form input,.create-form textarea,.field-with-icon{width:100%;border:2px solid var(--ink);background:var(--paper-deep)}.create-form input,.create-form textarea{outline:0;padding:12px;color:var(--ink)}.create-form textarea{min-height:98px;resize:vertical}.form-error{margin:0;border:2px solid var(--red);background:#fff2ed;color:var(--red);padding:10px 12px;font-size:14px;line-height:1.5}.claim-panel{display:grid;grid-gap:16px;gap:16px;border:2px solid var(--ink);background:var(--paper);padding:18px;box-shadow:6px 6px 0 rgba(23,49,47,.22)}.claim-panel p{margin:0;color:var(--muted);line-height:1.8}.auth-panel label{display:grid;grid-gap:8px;gap:8px}.auth-panel label span{color:var(--muted);font-size:13px;font-weight:800}.auth-panel input{width:100%;border:2px solid var(--ink);background:var(--paper-deep);color:var(--ink);outline:0;padding:12px}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.field-with-icon{display:flex;align-items:center}.field-with-icon svg{margin-left:12px;color:var(--teal)}.field-with-icon input{border:0}.chip-options,.role-options{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px}.chip-options button,.role-options button{min-height:42px;border:2px solid var(--ink);background:var(--paper-deep);cursor:pointer;font-weight:800;padding:0 8px}.chip-options button.selected,.role-options button.selected{background:var(--teal);color:var(--paper)}.preview-pane{display:grid;grid-gap:12px;gap:12px}.preview-title{display:inline-flex;align-items:center;gap:8px}.preview-pane .profile-shell{padding:0}.preview-pane .profile-hero{box-shadow:none}@media (max-width:980px){.create-layout,.hero-band{grid-template-columns:1fr}.hero-band{min-height:auto}.avatar-wall{grid-template-columns:repeat(7,1fr)}.about-values,.quote-grid,.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.explorer-toolbar{grid-template-columns:minmax(220px,1fr) minmax(130px,170px) minmax(150px,210px) 48px}.section-heading .quote-title{font-size:46px}.about-hero{grid-template-columns:1fr}}@media (max-width:640px){.site-header{padding:12px 16px}.site-header nav{gap:10px}.about-page,.hero-band,.page-shell,.profile-shell,.quote-band,.site-footer{padding:26px 16px}.wechat-follow{grid-template-columns:1fr;justify-items:start}.wechat-follow img{width:136px;height:136px}.hero-copy h1{font-size:54px}.section-heading .quote-title{font-size:26px}.search-box{box-shadow:5px 5px 0 var(--ink)}.search-box button{padding:0 14px}.avatar-wall{grid-template-columns:repeat(6,1fr);gap:8px}.about-values,.explorer-filters,.explorer-toolbar,.profile-facts,.quote-grid,.roster-grid,.stats-band{grid-template-columns:1fr}.result-meta{align-items:flex-start;flex-direction:column}.result-actions{justify-content:flex-start}.about-keepsake{box-shadow:6px 6px 0 var(--ink)}.profile-facts div,.stats-band div{border-right:0;border-bottom:1px solid var(--line)}.profile-card{grid-template-columns:1fr}.profile-stamp{right:16px}.profile-hero{box-shadow:6px 6px 0 var(--ink)}}@media (max-width:360px){.section-heading .quote-title{font-size:22px}}