/* AIGEO 智能名片 · 移动端优先。依赖 SiteTheme 输出的 CSS 变量。 */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--card-page);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--font-head);font-weight:var(--head-weight);color:var(--heading);margin:0;letter-spacing:var(--head-track)}
p{margin:0}
.cd{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative;overflow:hidden;padding-bottom:96px}
/* hero variants */
.cd-cover{height:220px;background:var(--art);position:relative}
.cd-cover img{width:100%;height:100%;object-fit:cover}
.cd-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.25))}
.cd-profile{position:relative;margin:-84px 16px 0;padding:22px 20px 20px;border-radius:calc(var(--r-card)*1.1);background:var(--surface);box-shadow:0 0 0 1px var(--line),var(--sh-2);z-index:2}
.cd-row{display:flex;gap:16px;align-items:center}
.cd-av{width:76px;height:76px;flex:none;border-radius:calc(var(--r-card)*.9);background:var(--grad);display:grid;place-items:center;color:var(--on-primary);font-family:var(--font-head);font-size:30px;font-weight:700;overflow:hidden;box-shadow:var(--glow)}
.cd-av img{width:100%;height:100%;object-fit:cover}
.cd-name{font-size:24px;line-height:1.2}
.cd-title{font-size:13.5px;color:var(--muted);margin-top:4px}
.cd-co{display:flex;align-items:center;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:13.5px;color:var(--heading);font-weight:600}
.cd-co i{width:22px;height:22px;border-radius:7px;background:var(--grad);flex:none}
.cd-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.cd-tags span{font-size:11.5px;padding:3px 10px;border-radius:999px;background:var(--tint);color:var(--primary-text)}
/* center variant */
.v-center .cd-top{padding:48px 20px 26px;text-align:center;position:relative;background:var(--hero-fx),var(--bg)}
.v-center .cd-av{width:104px;height:104px;border-radius:50%;margin:0 auto;border:4px solid var(--surface);font-size:40px}
.v-center .cd-name{font-size:28px;margin-top:16px}
.v-center .cd-co,.v-center .cd-tags{justify-content:center;border:0;padding-top:0;margin-top:12px}
.v-center .cd-line{width:40px;height:2px;margin:16px auto 0;background:var(--grad)}
/* split variant (editorial) */
.v-split .cd-top{display:grid;grid-template-columns:1fr 132px;gap:16px;padding:40px 20px 24px;align-items:end;border-bottom:1px solid var(--line)}
.v-split .cd-av{width:132px;height:168px;border-radius:var(--r-media);font-size:44px}
.v-split .cd-name{font-size:34px;line-height:1.1}
.v-split .cd-kick{font-size:11px;letter-spacing:4px;color:var(--accent-text);text-transform:uppercase;margin-bottom:14px}
/* poster variant */
.v-poster .cd-top{position:relative;height:420px;background:var(--art);display:flex;align-items:flex-end}
.v-poster .cd-top::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 30%,rgba(0,0,0,.78))}
.v-poster .cd-top .in{position:relative;z-index:2;padding:24px 20px;color:#fff;width:100%}
.v-poster .cd-name{color:#fff;font-size:32px}
.v-poster .cd-title{color:rgba(255,255,255,.8)}
.v-poster .cd-av{position:absolute;inset:0;width:auto;height:auto;border-radius:0;box-shadow:none;font-size:120px;opacity:.9;background:transparent}
/* actions */
.cd-acts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:18px 16px 4px}
.cd-act{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:12.5px;color:var(--heading);background:none;border:0;padding:0;font-family:inherit;cursor:pointer}
.cd-act span{width:54px;height:54px;border-radius:calc(var(--r-card)*.75);display:grid;place-items:center;background:var(--surface);box-shadow:0 0 0 1px var(--line),var(--sh-1);color:var(--primary);transition:transform .2s}
.cd-act:first-child span{background:var(--grad);color:var(--on-primary);box-shadow:var(--glow)}
.cd-act:active span{transform:scale(.94)}
.cd-act svg{width:22px;height:22px}
/* sections */
.cd-sec{padding:22px 16px 0}
.cd-sec h2{font-size:17px;display:flex;align-items:center;gap:10px;margin-bottom:12px}
.cd-sec h2::before{content:"";width:4px;height:16px;border-radius:4px;background:var(--grad)}
.cd-box{background:var(--surface);border-radius:var(--r-card);box-shadow:0 0 0 1px var(--line);padding:16px 18px}
.cd-intro{font-size:14.5px;color:var(--text);line-height:1.85}
.cd-info div{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.cd-info div:last-child{border:0}
.cd-info b{flex:none;width:44px;color:var(--muted);font-weight:500}
.cd-info a{color:var(--heading);word-break:break-all}
.cd-prods{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cd-prod{background:var(--surface);border-radius:var(--r-card);overflow:hidden;box-shadow:0 0 0 1px var(--line)}
.cd-prod .art{aspect-ratio:4/3;background:var(--art)}
.cd-prod .art img{width:100%;height:100%;object-fit:cover}
.cd-prod div.t{padding:10px 12px 12px;font-size:13.5px;font-weight:600;color:var(--heading)}
.cd-prod div.t small{display:block;font-weight:400;color:var(--muted);font-size:12px;margin-top:2px}
.cd-gal{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.cd-gal i{aspect-ratio:1;border-radius:calc(var(--r-card)*.5);background:var(--art);display:block;overflow:hidden}
.cd-gal i img{width:100%;height:100%;object-fit:cover}
.cd-honor{display:flex;flex-wrap:wrap;gap:8px}
.cd-honor span{font-size:12.5px;padding:7px 12px;border-radius:calc(var(--r-card)*.5);background:var(--surface2);color:var(--heading)}
/* bottom bar */
.cd-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(480px,100%);padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:10px;background:var(--nav-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);z-index:20}
.cd-bar button,.cd-bar a{height:46px;border-radius:var(--r-btn);border:0;font:inherit;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--surface2);color:var(--heading);cursor:pointer}
.cd-bar .p{background:var(--grad);color:var(--on-primary);box-shadow:var(--glow)}
.cd-bar svg{width:18px;height:18px}
.cd-foot{text-align:center;font-size:11.5px;color:var(--muted);padding:26px 0 8px}
.cd-toast{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%);background:rgba(0,0,0,.82);color:#fff;padding:12px 18px;border-radius:12px;font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:30}
.cd-toast.on{opacity:1}
.cd-sheet{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:flex-end;justify-content:center;z-index:40}
.cd-sheet.on{display:flex}
.cd-sheet .in{width:min(480px,100%);background:var(--surface);border-radius:20px 20px 0 0;padding:22px 20px calc(22px + env(safe-area-inset-bottom));text-align:center}
.cd-sheet .qr{width:180px;height:180px;margin:14px auto;border-radius:14px;background:var(--surface2);display:grid;place-items:center;color:var(--muted);font-size:12px;overflow:hidden}
.cd-sheet .qr img{width:100%;height:100%}
.cd-sheet button{margin-top:10px;width:100%;height:46px;border:0;border-radius:var(--r-btn);background:var(--grad);color:var(--on-primary);font:inherit;font-weight:600}
