/* ===========================================================
   活字 LIVETYPE · 产品定义课 / Define 工作坊
   复用 styles.css 的设计令牌（ElevenLabs 迁移版）
   仅补充本页专用组件：定义公式、五问、三刀、画布、样例演化
   =========================================================== */

/* ---------- Hero ---------- */
.df-hero{
  position:relative;overflow:hidden;
  background:var(--grad-hero),var(--bg);
  border-bottom:1px solid var(--line);
  padding-block:clamp(56px,11vw,118px) clamp(40px,7vw,68px);
}
.df-hero .wrap{position:relative;z-index:2;max-width:920px}
.df-codename{
  font-family:var(--display);font-weight:600;
  font-size:.8125rem;letter-spacing:2px;text-transform:uppercase;
  color:var(--ink-soft);
  display:inline-flex;align-items:center;gap:8px;
  background:var(--bg-soft);border:1px solid var(--line-2);
  padding:7px 14px;border-radius:var(--r-pill);margin:0 0 22px;
}
.df-hero h1{
  font-family:var(--display);font-weight:500;
  font-size:clamp(2.1rem,6.5vw,3.1rem);line-height:1.06;letter-spacing:-1px;
  margin:0 0 18px;
}
.df-hero h1 span{
  font-family:var(--display);font-weight:600;
  background:linear-gradient(100deg,#1a1a1a,#6b6258);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.df-hero .lede{max-width:var(--paragraph);font-size:clamp(1.0625rem,2.4vw,1.25rem);color:var(--ink-soft);margin:0 0 24px}
.df-hero .hero-tags{display:flex;flex-wrap:wrap;gap:10px}
.df-hero .hero-tags span{
  font-size:.875rem;color:var(--ink);background:var(--bg-soft);
  border:1px solid var(--line-2);padding:8px 14px;border-radius:var(--r-pill);
}

/* ---------- 一句话定义公式 ---------- */
.sentence{
  background:var(--grad-warm);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:clamp(22px,4vw,34px);box-shadow:var(--sh-1);
}
.sentence .stem{
  font-family:var(--display);font-weight:500;
  font-size:clamp(1.15rem,3.4vw,1.5rem);line-height:1.8;color:var(--ink);
  letter-spacing:-.3px;
}
.sentence .stem .blank{
  display:inline-block;font-weight:600;
  color:#5b5248;border-bottom:2px dashed #b8ab99;
  padding:0 6px;margin:0 2px;
}
.sentence .note{color:var(--ink-soft);font-size:.95rem;margin:18px 0 0;max-width:var(--paragraph)}

/* ---------- 互动造句器 ---------- */
.builder{
  margin-top:22px;background:var(--bg);border:1px solid var(--line-2);
  border-radius:var(--r-lg);padding:clamp(18px,4vw,26px);
}
.builder .brow{display:grid;gap:14px;grid-template-columns:1fr}
.builder label{display:block}
.builder .blab{
  display:block;font-size:.75rem;font-weight:600;letter-spacing:.4px;
  text-transform:uppercase;color:var(--ink-soft);margin:0 0 6px;
}
.builder input{
  width:100%;font-family:var(--sans);font-size:1rem;color:var(--ink);
  background:var(--bg-soft);border:1px solid var(--line-2);
  border-radius:var(--r-md);padding:12px 14px;min-height:46px;
  transition:border-color var(--t-micro) var(--ease),box-shadow var(--t-micro) var(--ease);
}
.builder input:focus{outline:none;border-color:#8a7f6e;box-shadow:0 0 0 3px rgba(138,127,110,.15)}
.builder input::placeholder{color:#b3aca2}
.sb-out{
  margin-top:20px;background:var(--bg-quiet);border:1px solid var(--line);
  border-radius:var(--r-md);padding:18px 20px;
  font-size:clamp(1rem,2.6vw,1.15rem);line-height:1.8;color:var(--ink);
}
.sb-out b{font-weight:600;color:#5b5248}
.sb-out .ph{color:var(--ink-soft);font-weight:400}

/* ---------- 五个必答问题 ---------- */
.qgrid{display:grid;gap:16px;grid-template-columns:1fr}
.qcard{
  position:relative;background:var(--bg-soft);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:24px 22px 22px;box-shadow:var(--sh-1);
  transition:box-shadow var(--t-small) var(--ease),transform var(--t-small) var(--ease);
}
.qcard:hover{box-shadow:var(--sh-2),var(--sh-ring);transform:translateY(-2px)}
.qcard .qk{
  font-family:var(--display);font-weight:700;font-size:2rem;letter-spacing:-1px;
  color:#c9bca6;line-height:1;display:block;margin-bottom:10px;
}
.qcard h3{margin:0 0 8px;font-size:1.0625rem}
.qcard p{margin:0;color:var(--ink-soft);font-size:.9375rem;line-height:1.6}
.qcard .bad{
  margin-top:12px;font-size:.875rem;color:#7a4a42;
  background:#f3eae8;border:1px solid #e6d4d0;border-radius:var(--r-sm);
  padding:8px 11px;line-height:1.55;
}
.qcard .bad b{color:#5e352e}

/* ---------- 三刀法 ---------- */
.cuts{display:grid;gap:16px;grid-template-columns:1fr;counter-reset:c}
.cut{
  position:relative;background:var(--bg-soft);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:22px 22px 22px 70px;box-shadow:var(--sh-1);
}
.cut::before{
  counter-increment:c;content:"刀" counter(c);
  position:absolute;left:16px;top:20px;
  width:40px;height:40px;border-radius:var(--r-md);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--display);font-weight:600;font-size:.7rem;letter-spacing:.5px;
  color:#fff;background:var(--ink);text-align:center;line-height:1.1;
}
.cut h3{margin:0 0 6px;font-size:1.0625rem}
.cut p{margin:0;color:var(--ink-soft);font-size:.9375rem}
.cut p .from{color:#9b938a;text-decoration:line-through;text-decoration-color:#c9beb0}
.cut p .to{color:var(--ink);font-weight:600}

/* ---------- 样例演化 模糊 → 锋利 ---------- */
.evo{display:grid;gap:18px;grid-template-columns:1fr}
.evo .col{
  border:1px solid var(--line);border-radius:var(--r-lg);
  padding:clamp(20px,4vw,28px);box-shadow:var(--sh-1);
}
.evo .col.vague{background:var(--bg-quiet)}
.evo .col.sharp{background:var(--grad-warm)}
.evo .tag{
  display:inline-block;font-family:var(--display);font-weight:600;font-size:.75rem;
  letter-spacing:.4px;text-transform:uppercase;padding:5px 12px;border-radius:var(--r-pill);
  margin-bottom:14px;
}
.evo .vague .tag{background:#ded8d0;color:#6b6258}
.evo .sharp .tag{background:#5b5248;color:#fff}
.evo .col p{margin:0 0 12px;color:var(--ink-soft);line-height:1.7}
.evo .col p:last-child{margin-bottom:0}
.evo .col b{color:var(--ink)}
.evolist{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.evolist li{
  display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:baseline;
  font-size:.9375rem;color:var(--ink-soft);line-height:1.55;
}
.evolist li .k{font-family:var(--display);font-weight:600;color:var(--ink);white-space:nowrap}
.evolist li b{color:var(--ink)}

/* ---------- 产品定义画布 ---------- */
.canvas{
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:clamp(18px,4vw,28px);box-shadow:var(--sh-1);
}
.cv-grid{display:grid;gap:14px;grid-template-columns:1fr}
.cv-field{
  background:var(--bg);border:1px solid var(--line-2);
  border-radius:var(--r-md);padding:14px 16px;
  display:flex;flex-direction:column;
}
.cv-field.span2{grid-column:1/-1}
.cv-field .cv-lab{
  font-family:var(--display);font-weight:600;font-size:.9375rem;color:var(--ink);
  display:flex;align-items:center;gap:8px;margin-bottom:8px;
}
.cv-field .cv-lab .em{font-size:1.05rem}
.cv-field .cv-hint{font-size:.8125rem;color:var(--ink-soft);font-weight:400;margin-left:auto}
.cv-field textarea{
  width:100%;resize:vertical;min-height:64px;
  font-family:var(--sans);font-size:.9688rem;line-height:1.6;color:var(--ink);
  background:transparent;border:0;padding:0;
}
.cv-field textarea:focus{outline:none}
.cv-field textarea::placeholder{color:#b3aca2}
.cv-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:20px}
.cv-save{font-size:.8125rem;color:var(--ink-soft);margin-left:auto}
.cv-save b{color:#4a7a55}

/* ---------- 课堂工作坊流程 ---------- */
.flow{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.flow li{
  display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:var(--r-md);padding:16px 18px;
}
.flow .t{
  font-family:var(--display);font-weight:700;font-size:.9375rem;color:#fff;
  background:var(--ink);border-radius:var(--r-pill);
  padding:6px 12px;white-space:nowrap;align-self:start;
}
.flow .body h4{margin:0 0 4px;font-size:1rem}
.flow .body p{margin:0;color:var(--ink-soft);font-size:.9375rem;line-height:1.55}

/* ---------- 自检清单（本页自带，不依赖 handbook.css）---------- */
.checklist{max-width:var(--paragraph);margin:0;padding:0;list-style:none;display:grid;gap:12px}
.checklist li{
  display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;
  background:var(--bg-soft);border:1px solid var(--line);
  border-radius:var(--r-md);padding:16px 18px;color:var(--ink-soft);line-height:1.6;
}
.checklist li b{color:var(--ink)}
.checklist .box{
  width:24px;height:24px;border-radius:6px;border:2px solid var(--ink);
  display:flex;align-items:center;justify-content:center;
  font-weight:700;color:var(--ink);font-size:.95rem;flex:none;margin-top:1px;
}

/* ---------- CTA ---------- */
.cta{
  background:var(--grad-cool);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:clamp(28px,5vw,44px);text-align:center;box-shadow:var(--sh-1);
}
.cta h2{margin:0 0 10px}
.cta p{max-width:560px;margin:0 auto 22px;color:var(--ink-soft)}
.btnrow{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.btn-ghost{
  font-family:var(--sans);font-weight:500;font-size:1rem;
  color:var(--ink);background:var(--bg);border:1px solid var(--line-2);
  border-radius:var(--r-pill);padding:13px 26px;min-height:48px;
  display:inline-flex;align-items:center;cursor:pointer;
  transition:transform var(--t-micro) var(--ease),box-shadow var(--t-micro) var(--ease);
}
.btn-ghost:hover{transform:translateY(-1px);box-shadow:var(--sh-2)}
.btn.sm,.btn-ghost.sm{font-size:.9375rem;padding:11px 20px;min-height:44px}

/* ---------- 响应式 ---------- */
@media (min-width:680px){
  .builder .brow{grid-template-columns:1fr 1fr}
  .qgrid{grid-template-columns:1fr 1fr}
  .evo{grid-template-columns:1fr 1fr}
  .cv-grid{grid-template-columns:1fr 1fr}
}
@media (min-width:1024px){
  .qgrid{grid-template-columns:repeat(3,1fr)}
}
