/* 司马迁.skill · 太史判词（s.caojuege.com）· 共享样式
   沿用线上「草诀歌 AI Labs」设计 token */
:root{
  --c-bg:#e5e5e5; --c-surface:#fff; --c-surface-40:rgba(255,255,255,0.40);
  --c-ink:#1a1a1a; --c-ink-pure:#000; --c-btn:#47494b;
  --c-border-soft:rgba(71,73,75,0.20); --c-border-strong:rgba(71,73,75,0.45);
  --c-muted:#5c5e60; --c-on-dark:#e5e5e5;
  --c-seal:#a8302d; --c-seal-shadow:#7d211e; --c-seal-tint:#f0dfc4;
  --font-sans:"Inter","PingFang SC","Hiragino Sans GB","Source Han Sans SC","Microsoft YaHei",ui-sans-serif,system-ui,-apple-system,sans-serif;
  --font-serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun","FangSong",Georgia,serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --container:1280px; --pad-x:24px; --pad-x-lg:48px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--c-bg);color:var(--c-ink);font-family:var(--font-sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
a{color:inherit;text-decoration:none}
::selection{background:var(--c-btn);color:var(--c-on-dark)}
button{font:inherit;cursor:pointer}
.ico{width:1em;height:1em;display:inline-block;vertical-align:-.14em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.container{max-width:var(--container);margin:0 auto;padding:0 var(--pad-x)}
@media(min-width:960px){.container{padding:0 var(--pad-x-lg)}}
.eyebrow{font-family:var(--font-mono);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.2em;color:var(--c-muted)}

/* nav */
.nav{position:sticky;top:0;z-index:30;background:var(--c-bg);border-bottom:1px solid var(--c-border-soft)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:64px;max-width:var(--container);margin:0 auto;padding:0 var(--pad-x)}
@media(min-width:960px){.nav-inner{padding:0 var(--pad-x-lg);height:72px}}
.lockup{display:flex;align-items:baseline;gap:10px}
.lockup .mark{font-family:var(--font-serif);font-weight:700;font-size:18px;letter-spacing:.04em}
.lockup .mark .dot{font-family:var(--font-sans);font-weight:400;font-size:13px;letter-spacing:.04em;color:var(--c-muted)}
.lockup .tag{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--c-muted)}
.nav-back{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--c-muted);display:inline-flex;align-items:center;gap:6px;transition:color .3s}
.nav-back:hover{color:var(--c-ink)}
@media(max-width:600px){.nav-back{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-sans);font-weight:500;font-size:14px;letter-spacing:.02em;padding:14px 22px;border:1px solid var(--c-btn);background:var(--c-btn);color:var(--c-on-dark);transition:background .3s,color .3s,border-color .3s;border-radius:0}
.btn:hover{background:var(--c-ink-pure);border-color:var(--c-ink-pure)}
.btn.ghost{background:transparent;color:var(--c-ink);border-color:var(--c-btn)}
.btn.ghost:hover{background:var(--c-btn);color:var(--c-on-dark)}
.btn.big{padding:16px 26px;font-size:15px}
.btn[disabled]{opacity:.5;cursor:default}

/* generic head/hero */
.hero{padding:64px 0 76px;border-bottom:1px solid var(--c-border-soft);position:relative;overflow:hidden}
.hero-wm{position:absolute;right:-22px;top:18px;font-family:var(--font-serif);font-weight:900;font-size:clamp(150px,22vw,300px);line-height:.9;color:rgba(0,0,0,.04);writing-mode:vertical-rl;pointer-events:none;user-select:none;letter-spacing:-.14em}
.hero-grid{display:grid;grid-template-columns:1fr;gap:44px;align-items:center;position:relative;z-index:1}
@media(min-width:880px){.hero-grid{grid-template-columns:1.05fr minmax(280px,360px);gap:60px}}
.hero h1{font-family:var(--font-serif);font-weight:700;font-size:clamp(40px,7vw,74px);line-height:1.03;letter-spacing:-.03em;margin:14px 0 18px}
.hero h1 em{font-style:italic;font-weight:500;color:var(--c-btn)}
.hero .lead{font-family:var(--font-serif);font-weight:300;font-size:clamp(16px,2vw,20px);line-height:1.75;color:var(--c-muted);max-width:480px;margin:0 0 30px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.side-card{border:1px solid var(--c-border-soft);background:var(--c-surface-40);padding:14px}
.side-card canvas{width:100%;height:auto;display:block;box-shadow:0 16px 40px rgba(0,0,0,.14)}

/* steps */
.steps{padding:60px 0}
.steps .eyebrow{margin-bottom:22px}
.steps-grid{display:grid;grid-template-columns:1fr;border:1px solid var(--c-border-soft)}
@media(min-width:760px){.steps-grid{grid-template-columns:repeat(3,1fr)}}
.step{padding:28px}
.step:not(:last-child){border-bottom:1px solid var(--c-border-soft)}
@media(min-width:760px){.step:not(:last-child){border-bottom:0;border-right:1px solid var(--c-border-soft)}}
.step .n{font-family:var(--font-serif);font-style:italic;color:var(--c-muted);font-size:22px;margin-bottom:12px}
.step h3{font-family:var(--font-serif);font-weight:700;font-size:20px;margin:0 0 8px;letter-spacing:-.01em}
.step p{margin:0;color:var(--c-muted);font-family:var(--font-serif);font-weight:300;font-size:14.5px;line-height:1.7}

/* flow (create) */
.flow{padding:48px 0 64px}
.flow-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:start}
@media(min-width:880px){.flow-grid{grid-template-columns:1fr minmax(340px,420px);gap:56px}}
.hook{font-family:var(--font-serif);font-weight:700;font-size:18px;line-height:1.6;margin:0 0 26px;padding:14px 16px;border-left:3px solid var(--c-seal);background:rgba(168,48,45,.06)}
.subject{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:26px;font-family:var(--font-serif)}
.subject .for{font-family:var(--font-sans);font-size:13px;color:var(--c-muted)}
.field{margin-bottom:20px}
.label-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px}
.label{font-size:14.5px;color:var(--c-ink)}
.hint{font-family:var(--font-sans);font-size:11.5px;color:var(--c-muted)}
input,textarea{width:100%;border:1px solid var(--c-border-soft);background:var(--c-surface-40);padding:13px 14px;color:var(--c-ink);font-family:var(--font-serif);font-size:17px;line-height:1.7;outline:none;border-radius:0;transition:border-color .25s,background .25s}
.subject input{max-width:170px;font-size:17px;padding:9px 12px}
textarea{min-height:80px;resize:vertical}
input:focus,textarea:focus{border-color:var(--c-seal);background:var(--c-surface)}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.actions .btn{width:100%;padding:16px 22px}

/* card stage + stacked CTA (shared by create & receive) */
.stage{position:sticky;top:96px}
.stage-frame{border:1px solid var(--c-border-soft);background:var(--c-surface-40);padding:14px}
.vcard{width:100%;height:auto;display:block;box-shadow:0 16px 40px rgba(0,0,0,.16)}
.cta-stack{margin-top:16px;display:flex;flex-direction:column;gap:10px}
.cta-stack .btn{width:100%;padding:16px 22px}
.savehint{margin-top:10px;font-family:var(--font-serif);font-size:12.5px;color:var(--c-muted);text-align:center}
.savehint b{color:var(--c-ink);font-weight:500}

/* receive */
.recv{padding:52px 0 68px}
.recv-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:start}
@media(min-width:880px){.recv-grid{grid-template-columns:minmax(300px,380px) 1fr;gap:56px}}
.recv h1{font-family:var(--font-serif);font-weight:700;font-size:clamp(32px,5vw,56px);line-height:1.05;letter-spacing:-.02em;margin:14px 0 16px}
.recv h1 em{font-style:italic;font-weight:500;color:var(--c-btn)}
.recv .lead{color:var(--c-muted);font-family:var(--font-serif);font-weight:300;font-size:16px;line-height:1.75;margin:0 0 28px;max-width:420px}

/* footer */
.foot{padding:40px 0;border-top:1px solid var(--c-border-soft);color:var(--c-muted)}
.foot-inner{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:14px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-family:var(--font-mono)}
.foot-inner a{color:var(--c-ink);border-bottom:1px solid var(--c-border-soft);padding-bottom:2px}

/* toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(16px);opacity:0;pointer-events:none;background:var(--c-ink);color:var(--c-on-dark);padding:11px 16px;font-family:var(--font-sans);font-size:13px;transition:.18s ease;z-index:40;max-width:86vw;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media(max-width:880px){
  .hero{padding:32px 0 40px}.hero-wm{display:none}
  .hero h1{font-size:38px}
  .flow{padding:28px 0 48px}
  .stage{position:static}
  .recv{padding:28px 0 48px}
}
