@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,ital,wght@9..144,0,300;9..144,0,400;9..144,1,300;9..144,0,600&family=Inter+Tight:wght@400;500;600&family=Space+Mono:wght@400;700&display=swap');

/* ══ CovenantCheck · TJ·MO 白色莫兰迪 ═══════════════════════════════
   赤陶是全站唯一满饱和色，其余一律脱饱和暖灰。
   光学一致：所有高光左上、所有阴影右下（2px 4px），一个矛盾都不留。
   同时动的不超过一个：hero 相机在极缓地绕，其余全静止。
   ═════════════════════════════════════════════════════════════════ */
:root{
  --paper:#F8F6F2;
  --paper-2:#F1EDE6;
  --paper-3:#EAE5DC;
  --card:#FDFCFA;
  --ink:#1C1A17;
  --ink-2:#514C45;
  --mist:#8A847A;
  --line:#DCD8D0;
  --line-soft:#E8E4DC;
  --terra:#B85C38;
  --terra-deep:#9C4A2A;
  --terra-wash:#F4E5DD;
  --terra-line:#E2C4B5;
  --evid:#6C7A5E;          /* 证据绿：语义色，不算强调色 */
  --evid-wash:#EAEEE3;
  --warn:#A8783A;
  --warn-wash:#F5EBDC;
  --display:'Fraunces',Georgia,'Times New Roman',serif;
  --body:'Inter Tight',system-ui,-apple-system,sans-serif;
  --mono:'Space Mono',ui-monospace,'SF Mono',monospace;
  --shadow-sm:2px 4px 14px rgba(28,26,23,.05);
  --shadow-md:3px 6px 26px rgba(28,26,23,.07);
  --ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:light;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img,canvas{max-width:100%;display:block}
button,input,select{font:inherit;color:inherit}
a{color:inherit}
:focus-visible{outline:2.5px solid var(--terra);outline-offset:3px;border-radius:2px}

.skip{position:fixed;left:1rem;top:-5rem;z-index:99;background:var(--ink);color:var(--paper);
  padding:.75rem 1.2rem;border-radius:6px;text-decoration:none}
.skip:focus{top:1rem}

/* ══ 三级极端排版 ══ */
.eyebrow{font:700 .67rem/1 var(--mono);letter-spacing:.24em;text-transform:uppercase;
  color:var(--terra);margin:0 0 1rem}
h1{
  font-family:var(--display);font-weight:300;
  font-size:clamp(2.75rem,6.6vw,6.2rem);line-height:.88;letter-spacing:-.035em;
  margin:0 0 1.5rem;text-wrap:balance;
}
h1 em{font-style:italic;font-weight:300;color:var(--terra)}
h2{font-family:var(--display);font-weight:300;font-size:clamp(2rem,4.2vw,3.5rem);
  line-height:.98;letter-spacing:-.028em;margin:0 0 .9rem;text-wrap:balance}
h3{font-family:var(--display);font-weight:600;font-size:1.16rem;line-height:1.3;
  letter-spacing:-.012em;margin:0 0 .4rem}
.lede{font-size:clamp(1.02rem,1.3vw,1.22rem);color:var(--ink-2);max-width:56ch;margin:0 0 1.9rem}
.micro{font:400 .74rem/1.55 var(--mono);color:var(--mist);letter-spacing:.02em}

/* ══ header ══ */
.site-head{
  position:sticky;top:0;z-index:40;height:70px;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:0 clamp(1.1rem,4.5vw,4rem);
  background:rgba(248,246,242,.9);backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-weight:600;letter-spacing:-.02em}
.brand-mark{width:34px;height:34px;border-radius:9px;flex:none;
  background:var(--terra);box-shadow:var(--shadow-sm);
  display:grid;place-items:center;color:#FDF8F5;font:700 .62rem var(--mono);letter-spacing:.02em}
.site-head nav{display:flex;gap:1.75rem;font-size:.87rem;color:var(--ink-2)}
.site-head nav a{text-decoration:none;padding:.2rem 0;border-bottom:1px solid transparent;
  transition:color .2s var(--ease),border-color .2s var(--ease)}
.site-head nav a:hover{color:var(--terra);border-bottom-color:var(--terra)}
.lang{border:1px solid var(--line);background:var(--card);border-radius:999px;
  padding:.36rem .9rem;font-size:.79rem;cursor:pointer;transition:all .2s var(--ease)}
.lang:hover{border-color:var(--terra);color:var(--terra)}

/* ══ hero ══ */
.hero{
  display:grid;grid-template-columns:minmax(320px,1.02fr) minmax(300px,.98fr);
  gap:clamp(1.6rem,4vw,4.5rem);align-items:center;
  padding:clamp(3rem,6.5vw,6rem) clamp(1.1rem,4.5vw,4rem) clamp(2.6rem,5vw,4.5rem);
}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:0 0 1.15rem}
.button{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  min-height:52px;padding:.8rem 1.6rem;border-radius:999px;
  border:1px solid var(--line);background:var(--card);
  font-weight:600;font-size:.96rem;text-decoration:none;cursor:pointer;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease);
}
.button:hover{transform:translateY(-1.5px)}
.button.primary{background:var(--terra);border-color:var(--terra);color:#FDF8F5;
  box-shadow:2px 4px 20px rgba(184,92,56,.24)}
.button.primary:hover{background:var(--terra-deep);box-shadow:3px 7px 26px rgba(184,92,56,.28)}
.button.ghost:hover{border-color:var(--terra);color:var(--terra)}
.button[disabled]{opacity:.45;cursor:not-allowed;transform:none}
.honesty{font-size:.81rem;color:var(--mist);max-width:50ch;margin:0}

/* 3D 场：无 WebGL 时这层暖灰渐变底图仍在，hero 不会开天窗 */
.hero-visual{
  position:relative;min-height:440px;border-radius:24px;overflow:hidden;
  border:1px solid var(--line-soft);box-shadow:var(--shadow-md);
  background:
    radial-gradient(120% 90% at 22% 18%, #FBF9F5 0%, #F1EDE6 46%, #E5E0D6 100%);
}
#parcelField{position:absolute;inset:0}
#parcelField canvas{width:100%!important;height:100%!important}
.hero-visual figcaption{
  position:absolute;left:1rem;right:1rem;bottom:1rem;
  display:flex;gap:.85rem;align-items:baseline;flex-wrap:wrap;
  padding:.85rem 1.05rem;border-radius:13px;
  background:rgba(253,252,250,.9);backdrop-filter:blur(10px);
  border:1px solid var(--line-soft);box-shadow:var(--shadow-sm);
  font-size:.79rem;color:var(--ink-2);
}
.hero-visual figcaption b{font:700 .68rem var(--mono);color:var(--terra);letter-spacing:.06em}
.legend-dot{width:9px;height:9px;border-radius:2px;display:inline-block;margin-right:.4rem;
  vertical-align:baseline;box-shadow:1px 1px 3px rgba(28,26,23,.14)}

/* ══ 数据条 ══ */
.strip{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  margin:0 clamp(1.1rem,4.5vw,4rem);
}
.strip div{padding:1.5rem 1.5rem;border-right:1px solid var(--line)}
.strip div:last-child{border-right:0}
.strip strong{display:block;font:300 2.15rem/1 var(--display);color:var(--terra);
  letter-spacing:-.025em;margin-bottom:.35rem;font-variant-numeric:tabular-nums}
.strip span{font:400 .72rem/1.45 var(--mono);color:var(--mist);letter-spacing:.03em}

/* ══ section ══ */
section{padding:clamp(3.4rem,6.5vw,6rem) clamp(1.1rem,4.5vw,4rem)}
.tone{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-head{max-width:1160px;margin:0 auto 2.4rem;
  display:grid;grid-template-columns:auto 1fr;gap:.9rem 2.2rem;align-items:baseline}
.sec-no{font:700 .74rem var(--mono);letter-spacing:.16em;color:var(--terra);padding-top:.5rem}
.sec-head p{grid-column:2;margin:.2rem 0 0;color:var(--ink-2);max-width:62ch}
.wrap{max-width:1160px;margin:0 auto}

/* ══ 查询台 ══ */
.console{
  background:var(--card);border:1px solid var(--line);border-radius:20px;
  padding:clamp(1.3rem,3vw,2.2rem);box-shadow:var(--shadow-md);
}
.addr-row{display:grid;grid-template-columns:1fr 190px auto;gap:.8rem;align-items:end}
label>span{display:block;font:600 .77rem var(--body);color:var(--ink-2);margin-bottom:.42rem}
input[type=text],select{
  width:100%;background:#fff;border:1px solid var(--line);border-radius:11px;
  padding:.85rem .95rem;transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
input[type=text]:focus,select:focus{border-color:var(--terra);box-shadow:0 0 0 3px var(--terra-wash);outline:none}
.addr-row .button{min-height:50px}
.console .hint{font-size:.79rem;color:var(--mist);margin:.85rem 0 0}

/* 结果 */
.result{margin-top:1.3rem;border-radius:16px;border:1px solid var(--line);overflow:hidden}
.result[hidden]{display:none}
.result-head{display:flex;flex-wrap:wrap;gap:.7rem 1.1rem;align-items:center;
  padding:1.05rem 1.3rem;border-bottom:1px solid var(--line-soft)}
.verdict-pill{font:700 .68rem var(--mono);letter-spacing:.09em;text-transform:uppercase;
  padding:.32rem .78rem;border-radius:999px;white-space:nowrap}
.v-yes{background:var(--terra-wash);color:var(--terra-deep);border:1px solid var(--terra-line)}
.v-likely{background:var(--warn-wash);color:var(--warn);border:1px solid #E3CDA9}
.v-no{background:var(--evid-wash);color:var(--evid);border:1px solid #C9D3BC}
.result-head .addr{font-weight:600;letter-spacing:-.01em}
.result-body{padding:1.2rem 1.3rem;background:var(--card)}
.assoc-name{font:600 1.28rem/1.25 var(--display);letter-spacing:-.015em;margin:0 0 .2rem}

/* 证据行 —— 本页的视觉主角：每条结论都必须挂着它的实证 */
.evidence{list-style:none;margin:1.1rem 0 0;padding:0;display:grid;gap:.55rem}
.evidence li{
  display:grid;grid-template-columns:auto 1fr;gap:.85rem;align-items:start;
  padding:.8rem 1rem;border-radius:11px;background:var(--paper-2);
  border-left:2.5px solid var(--evid);
}
.evidence li[data-kind="weak"]{border-left-color:var(--warn);background:var(--warn-wash)}
.evidence .tag{font:700 .63rem var(--mono);letter-spacing:.07em;color:var(--evid);
  padding-top:.15rem;white-space:nowrap}
.evidence li[data-kind="weak"] .tag{color:var(--warn)}
.evidence .val{font-size:.9rem;color:var(--ink-2)}
.evidence .val b{color:var(--ink);font-weight:600}

.conf-row{display:flex;align-items:center;gap:.85rem;margin-top:1.15rem;
  padding-top:1rem;border-top:1px solid var(--line-soft)}
.conf-bar{flex:1;height:6px;border-radius:999px;background:var(--paper-3);overflow:hidden}
.conf-fill{height:100%;background:var(--terra);border-radius:999px;transition:width .5s var(--ease)}
.conf-num{font:700 .82rem var(--mono);color:var(--terra);font-variant-numeric:tabular-nums}

/* ══ 方法 / 证据链 ══ */
.method{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.mcard{background:var(--card);border:1px solid var(--line-soft);border-top:2px solid var(--terra);
  border-radius:0 0 15px 15px;padding:1.4rem 1.5rem;box-shadow:var(--shadow-sm)}
.mcard b.step{font:700 .66rem var(--mono);letter-spacing:.13em;color:var(--terra)}
.mcard p{color:var(--ink-2);font-size:.9rem;margin:.5rem 0 0}

/* ══ 付费包 ══ */
.pack{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:1.12fr .88fr;
  border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--card);
  box-shadow:var(--shadow-md)}
.pack-list{padding:clamp(1.4rem,3vw,2.3rem)}
.pack-list ol{list-style:none;counter-reset:pk;margin:1.05rem 0 0;padding:0}
.pack-list li{counter-increment:pk;display:grid;grid-template-columns:auto 1fr;gap:1rem;
  padding:1.05rem 0;border-top:1px solid var(--line-soft)}
.pack-list li::before{content:counter(pk,decimal-leading-zero);
  font:700 .72rem var(--mono);color:var(--terra);padding-top:.22rem}
.pack-list li p{margin:.2rem 0 0;color:var(--ink-2);font-size:.9rem}
.pack-buy{background:var(--paper-2);border-left:1px solid var(--line);
  padding:clamp(1.4rem,3vw,2.3rem);display:flex;flex-direction:column;gap:.7rem}
.pack-buy .price{font:300 3.9rem/1 var(--display);letter-spacing:-.035em;margin:0}
.pack-buy .price small{font:400 .74rem var(--mono);color:var(--mist);letter-spacing:.06em;
  display:block;margin-top:.5rem}
.pack-buy .keeps{font-size:.9rem;color:var(--ink-2);margin:.2rem 0}
.pack-buy .keeps b{color:var(--terra)}
.tj-operator{font-size:.73rem;color:var(--mist);line-height:1.6;margin:.3rem 0 0}
.tj-operator a{color:var(--ink-2)}

/* ══ 覆盖范围 / 诚实边界 ══ */
.scope{max-width:1160px;margin:1.5rem auto 0;border-left:3px solid var(--terra);
  background:var(--card);border-radius:0 13px 13px 0;padding:1.15rem 1.45rem;
  font-size:.9rem;color:var(--ink-2);box-shadow:var(--shadow-sm)}
.scope b{color:var(--ink)}
.routes{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.route{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:1.3rem 1.4rem}
.route a{font-weight:600;color:var(--terra);text-decoration:none;border-bottom:1px solid transparent}
.route a:hover{border-bottom-color:var(--terra)}
.route p{color:var(--ink-2);font-size:.88rem;margin:.45rem 0 0}

/* ══ FAQ ══ */
.faq-wrap{max-width:860px;margin:0 auto}
.faq-wrap details{border-top:1px solid var(--line);padding:1.15rem 0}
.faq-wrap details:last-of-type{border-bottom:1px solid var(--line)}
.faq-wrap summary{font:600 1.1rem var(--display);cursor:pointer;letter-spacing:-.012em;
  list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:baseline}
.faq-wrap summary::-webkit-details-marker{display:none}
.faq-wrap summary::after{content:'+';font:400 1.3rem var(--mono);color:var(--terra);flex:none}
.faq-wrap details[open] summary::after{content:'\2212'}
.faq-wrap details p{color:var(--ink-2);max-width:70ch;margin:.7rem 0 0}

@media (max-width:1000px){
  .hero{grid-template-columns:1fr}
  .hero-visual{min-height:330px;order:-1}
  .strip{grid-template-columns:1fr 1fr}
  .strip div:nth-child(2){border-right:0}
  .method,.routes{grid-template-columns:1fr}
  .pack{grid-template-columns:1fr}
  .pack-buy{border-left:0;border-top:1px solid var(--line)}
  .addr-row{grid-template-columns:1fr}
}
@media (max-width:700px){
  .site-head nav{display:none}
  body{font-size:16.5px}
  .strip div{padding:1.2rem}
  .evidence li{grid-template-columns:1fr;gap:.3rem}
}
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* ══ 社区档案（$29 交付物本体） ═══════════════════════════════════
   这是买家真正拿到手的东西，所以它按「可以打印出来带去谈判桌」来排版：
   纸面留白、表格对齐、数字等宽、信件像信。 */
.dossier{font-size:.95rem;line-height:1.7;color:var(--ink)}
.d-head{border-bottom:2px solid var(--terra);padding-bottom:1.1rem;margin-bottom:1.8rem}
.d-kicker{font:700 .66rem var(--mono);letter-spacing:.2em;color:var(--terra);margin:0 0 .5rem}
.dossier h3{font:300 2.1rem/1.1 var(--display);letter-spacing:-.025em;margin:0 0 .35rem}
.d-sub{font:400 .82rem/1.6 var(--body);color:var(--mist);margin:0}
.d-sec{margin:0 0 2.2rem}
.d-secno{font:700 .68rem var(--mono);letter-spacing:.14em;color:var(--terra);
  border-bottom:1px solid var(--line);padding-bottom:.5rem;margin:0 0 1rem}
.dossier h4{font:600 1.02rem var(--display);margin:1.2rem 0 .3rem;letter-spacing:-.01em}
.d-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.d-table{width:100%;border-collapse:collapse;font-size:.85rem;margin:.6rem 0 1rem}
.d-table th{text-align:left;font:700 .64rem var(--mono);letter-spacing:.07em;color:var(--mist);
  border-bottom:1px solid var(--line);padding:.5rem .6rem;white-space:nowrap}
.d-table td{padding:.5rem .6rem;border-bottom:1px solid var(--line-soft);vertical-align:top}
.d-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.d-dates td:first-child{color:var(--ink-2)}
.d-flag{background:var(--paper-2);border-left:2.5px solid var(--terra);border-radius:0 8px 8px 0;
  padding:.75rem 1rem;font-size:.85rem;color:var(--ink-2);margin:.8rem 0}
.d-flag.d-strong{background:var(--terra-wash);border-left-color:var(--terra-deep);color:var(--ink)}
.d-none{color:var(--mist);font-size:.88rem;font-style:italic}
.d-layers{list-style:none;padding:0;margin:.6rem 0 0;display:grid;gap:.7rem}
.d-layers li{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start;
  background:var(--paper-2);border-radius:10px;padding:.85rem 1rem}
.d-tag{font:700 .6rem var(--mono);letter-spacing:.08em;color:#FDF8F5;background:var(--terra);
  border-radius:4px;padding:.2rem .5rem;white-space:nowrap;margin-top:.15rem}
.d-tag.sub{background:var(--mist)}
.d-layers strong{display:block;font-size:.95rem}
.d-layers p{margin:.25rem 0 0;font-size:.85rem;color:var(--ink-2)}
.d-letter{background:#fff;border:1px solid var(--line);border-radius:10px;
  padding:1.7rem 1.9rem;font-size:.88rem;line-height:1.75}
.d-letter p{margin:0 0 .85rem;max-width:none}
.d-l-right{text-align:right;color:var(--mist)}
.d-letter ol{margin:.4rem 0 .9rem;padding-left:1.3rem}
.d-letter li{margin:.28rem 0}
.d-check{list-style:none;counter-reset:none;padding:0;margin:.4rem 0 1rem}
.d-check li{display:grid;grid-template-columns:auto 1fr;gap:.8rem;padding:.4rem 0;
  border-bottom:1px solid var(--line-soft);font-size:.87rem;color:var(--ink-2)}
.d-num{font:700 .68rem var(--mono);color:var(--terra);padding-top:.18rem}
.d-foot{border-top:1px solid var(--line);margin-top:2rem;padding-top:1rem}
.d-foot p{font-size:.76rem;color:var(--mist);margin:.3rem 0;max-width:none}
.d-hint{color:var(--mist);font-size:.88rem;margin:0}

@media print{
  .site-head,.hero,.strip,#check,#method,#dossier .pack,#faq,site-footer,.builder-actions,
  .sec-head,.routes,.scope,.builder>h3,.builder>.hint,.builder .grid2{display:none!important}
  body{background:#fff;font-size:11pt}
  .builder,.builder-out{border:0!important;padding:0!important;max-height:none!important;
    overflow:visible!important;background:#fff!important;opacity:1!important}
  .d-sec{break-inside:avoid}
  .d-letter{border:0;padding:0}
}
