/* Well Dweller Guide — site stylesheet.
   Tokens come from 02-design/20260924-well-dweller/tokens_Well-Dweller.css
   (approved visual system); structure follows the approved preview
   (02-design/20260924-well-dweller/preview/{index,conclusion}.html + preview.css).
   The consent / advertising block at the bottom is the template's generic
   engine CSS, kept verbatim so assets/consent.js keeps working. */

:root {
  /* ---- 页面地面：井水与腐坏王国的近黑蓝绿 ---- */
  --bg-page:        #0C1417;
  --bg-sunken:      #060A0C;
  --bg-raised:      #172327;

  /* ---- 文字 ---- */
  --ink-primary:    #F2EBDE;
  --ink-secondary:  #C3CDC9;
  --ink-muted:      #93A19E;

  /* ---- 品牌与强调 ---- */
  --brand:          #FFB25E;
  --brand-text:     #FFCB8F;
  --accent:         #8FD2C4;
  --label-on-flame: #2A1B08;

  /* ---- 线条 ---- */
  --border-strong:  #5F7C83;
  --border-hairline:#223336;

  /* ---- 语义状态 ---- */
  --state-verified: #8FCB6A;
  --state-pending:  #E8C05A;
  --state-absent:   #E5957F;

  /* ---- 火焰光池 ---- */
  --flame-core:     #FFE6BE;
  --flame-mid:      #F2953A;
  --flame-deep:     #7A3A10;
  --flame-glow:     rgba(242, 149, 58, 0.22);
  --flame-glow-soft:rgba(242, 149, 58, 0.09);

  /* ---- 排版 ---- */
  --font-display:   "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;
  --font-body:      -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-mono:      ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  --weight-display: 700;
  --weight-heading: 700;
  --weight-body:    400;

  --step-display:   clamp(2.6rem, 6.2vw, 4.6rem);
  --step-h1:        clamp(2rem, 4.2vw, 3rem);
  --step-h2:        clamp(1.45rem, 2.4vw, 1.9rem);
  --step-h3:        1.15rem;
  --step-body:      1.0625rem;
  --step-small:     0.875rem;
  --step-micro:     0.75rem;

  --leading-display:1.02;
  --leading-heading:1.18;
  --leading-body:   1.62;

  --track-display:  -0.015em;
  --track-eyebrow:  0.16em;

  /* ---- 尺度与形状 ---- */
  --shell:          76rem;
  --measure:        44rem;
  --gap-xs:         0.375rem;
  --gap-sm:         0.625rem;
  --gap-md:         1rem;
  --gap-lg:         1.75rem;
  --gap-xl:         3rem;
  --gap-2xl:        4.5rem;
  --pad-card:       1.35rem;
  --radius-sm:      2px;
  --radius-md:      4px;
  --radius-pill:    999px;

  /* ---- template-engine aliases (consent dialog + ad slot use these) ---- */
  --bg: var(--bg-page);
  --surface: var(--bg-raised);
  --surface-sunken: var(--bg-sunken);
  --ink: var(--ink-primary);
  --brand-ink: var(--label-on-flame);
  --border: var(--border-strong);
  --container: var(--shell);
  --radius: var(--radius-md);
  --space-section: 4rem;
  --header-safe: 76px;
}

/* 纸面片：故事书内页的隐喻（结论卡的官方原话摘录、来源凭证条） */
.paper {
  --surface-paper:      #F4EADB;
  --ink-on-paper:       #241F18;
  --ink-on-paper-muted: #5E5648;
  --brand-text:         #8F4A0E;
  --state-verified:     #3F6B2A;
  --state-pending:      #7A5A0F;
  --state-absent:       #A33A28;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: var(--header-safe); }
[id] { scroll-margin-top: var(--header-safe); }
body {
  margin: 0;
  background: var(--bg-page);
  color: var(--ink-primary);
  font: var(--weight-body) var(--step-body)/var(--leading-body) var(--font-body);
  overflow-x: hidden;
}
img, svg { max-width: 100%; }
a { color: var(--accent); text-underline-offset: 3px; }
a:hover { color: var(--brand-text); }
a:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; border-radius: var(--radius-sm); }

.shell { max-width: var(--shell); margin: 0 auto; padding: 0 1.5rem; }
.skip-link { position: absolute; left: -9999px; top: 0; background: var(--brand); color: var(--label-on-flame); padding: 10px 16px; z-index: 99; }
.skip-link:focus { left: 12px; top: 12px; }

.eyebrow { margin: 0 0 var(--gap-sm); font: 600 var(--step-micro)/1.3 var(--font-mono); letter-spacing: var(--track-eyebrow); text-transform: uppercase; color: var(--brand-text); }
.eyebrow--quiet { color: var(--ink-muted); }

h1, h2, h3 { margin: 0; line-height: var(--leading-heading); font-weight: var(--weight-heading); }
h2 { font-size: var(--step-h2); }
h3 { font-size: var(--step-h3); }
p { margin: 0 0 var(--gap-md); }
p:last-child { margin-bottom: 0; }

/* ---------------------------------------------------------------- 顶部导航 */
.topbar { position: sticky; top: 0; z-index: 40; background: rgba(6, 10, 12, 0.92); backdrop-filter: blur(6px); border-bottom: 1px solid var(--border-hairline); }
.topbar__inner { display: flex; align-items: center; gap: var(--gap-lg); min-height: 58px; }
.brandmark { display: inline-flex; align-items: center; gap: 9px; font: 700 var(--step-small)/1 var(--font-mono); letter-spacing: 0.13em; text-transform: uppercase; color: var(--ink-primary); text-decoration: none; white-space: nowrap; }
.brandmark:hover { color: var(--ink-primary); text-decoration: none; }
.brandmark svg { width: 15px; height: 24px; flex: none; }
.topnav { display: flex; gap: var(--gap-md); margin-left: auto; flex-wrap: wrap; }
.topnav a { font: 500 var(--step-small)/1 var(--font-body); color: var(--ink-secondary); text-decoration: none; padding: 6px 2px; }
.topnav a:hover { color: var(--brand-text); text-decoration: none; }
.topnav a[aria-current="page"] { color: var(--ink-primary); box-shadow: inset 0 -2px 0 var(--brand); }
[data-language-switcher] { display: flex; gap: var(--gap-md); flex-wrap: wrap; align-items: center; }
[data-language-switcher] a { font: 500 var(--step-small)/1 var(--font-body); color: var(--ink-secondary); }
[data-language-switcher] [aria-current="page"] { text-decoration: underline; text-underline-offset: 4px; }

/* --------------------------------------------------- 火焰光池（签名组件 1） */
.lightpool { position: relative; isolation: isolate; overflow: hidden; }
.lightpool::before {
  content: ""; position: absolute; inset: auto -10% -55% -10%; height: 92%;
  background:
    radial-gradient(58% 100% at 26% 100%, var(--flame-glow) 0%, transparent 68%),
    radial-gradient(34% 78% at 21% 100%, rgba(255, 230, 190, 0.16) 0%, transparent 72%);
  z-index: -1; pointer-events: none;
}
.lightpool--page { --flame-glow: var(--flame-glow-soft); }

/* ------------------------------------------------------------------- hero */
.hero { padding: clamp(2.6rem, 6vw, 5.2rem) 0 clamp(2.2rem, 4vw, 3.4rem); border-bottom: 1px solid var(--border-hairline); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: end; }
.hero__title { margin: 0 0 var(--gap-md); font-family: var(--font-display); font-weight: var(--weight-display); font-size: var(--step-display); line-height: var(--leading-display); letter-spacing: var(--track-display); text-wrap: balance; }
.hero__display { margin: 0 0 var(--gap-md); font-family: var(--font-display); font-weight: var(--weight-display); font-size: clamp(1.25rem, 2.6vw, 1.75rem); line-height: 1.25; letter-spacing: -0.01em; text-wrap: balance; color: var(--brand-text); }
.vstamp { display: inline-block; margin: 0 0 var(--gap-lg); font: 500 var(--step-small)/1.4 var(--font-mono); color: var(--ink-muted); border-left: 2px solid var(--brand); padding-left: 10px; }
.hero__lede { font-size: 1.15rem; color: var(--ink-secondary); max-width: 38rem; }
.hero__actions { display: flex; flex-wrap: wrap; gap: var(--gap-sm); margin-top: var(--gap-lg); }

.btn { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 1.15rem; border-radius: var(--radius-md); text-decoration: none; font: 600 var(--step-small)/1 var(--font-body); border: 1px solid var(--border-strong); color: var(--ink-primary); background: transparent; cursor: pointer; }
.btn:hover { color: var(--ink-primary); border-color: var(--brand-text); text-decoration: none; }
.btn--primary, .btn.primary { background: var(--brand); border-color: var(--brand); color: var(--label-on-flame); }
.btn--primary:hover, .btn.primary:hover { background: var(--flame-core); border-color: var(--flame-core); color: var(--label-on-flame); }
.buttons { display: flex; flex-wrap: wrap; gap: var(--gap-sm); }

.hero__mark { display: flex; flex-direction: column; align-items: flex-start; gap: var(--gap-md); }
.matchstick { width: 100%; max-width: 15rem; height: auto; }

.statrow { display: flex; flex-wrap: wrap; gap: 0 var(--gap-lg); margin: 0; padding: 0; list-style: none; }
.statrow li { font: 500 var(--step-small)/1.5 var(--font-mono); color: var(--ink-secondary); padding: 4px 0; border-bottom: 1px solid var(--border-hairline); }
.statrow--hero li { border-bottom-color: var(--border-strong); }

/* -------------------------------------------------------- 平台事实条 (facts) */
.facts { padding: var(--gap-lg) 0; border-bottom: 1px solid var(--border-hairline); background: var(--bg-sunken); }
.facts__row { display: flex; flex-wrap: wrap; gap: var(--gap-sm); }
.chip { display: inline-flex; align-items: baseline; gap: 8px; padding: 7px 11px; border: 1px solid var(--border-strong); border-radius: var(--radius-md); background: var(--bg-raised); text-decoration: none; font: 500 var(--step-small)/1.3 var(--font-body); color: var(--ink-primary); }
.chip:hover { border-color: var(--brand-text); color: var(--ink-primary); text-decoration: none; }
.chip__state { font: 600 var(--step-micro)/1 var(--font-mono); letter-spacing: 0.06em; text-transform: uppercase; }
.chip--ok .chip__state { color: var(--state-verified); }
.chip--note .chip__state { color: var(--state-pending); }
.chip--plain { color: var(--ink-secondary); border-style: dashed; }
.chip--plain:hover { border-color: var(--border-strong); }

/* ------------------------------------------------------------------- 通用节 */
.section { padding: clamp(2.4rem, 5vw, 4rem) 0; border-bottom: 1px solid var(--border-hairline); }
.section--sunken { background: var(--bg-sunken); }
.section__head { margin-bottom: var(--gap-lg); }
.section__head p { color: var(--ink-muted); font-size: var(--step-small); margin-top: var(--gap-xs); }
.cols { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3rem); }

/* ------------------------------------------------------- aboutGame 事实表 */
.about__facts { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--border-hairline); }
.about__facts li { display: flex; justify-content: space-between; gap: var(--gap-md); padding: 9px 0; border-bottom: 1px solid var(--border-hairline); }
.about__facts .k { color: var(--ink-muted); font-size: var(--step-small); }
.about__facts .v { font: 500 var(--step-small)/1.4 var(--font-mono); color: var(--ink-primary); text-align: right; }
.about__facts .v em { font-style: normal; color: var(--ink-muted); }
.coverage { margin-top: var(--gap-md); padding: 10px 12px; border-left: 2px solid var(--state-pending); background: var(--bg-raised); color: var(--ink-secondary); font-size: var(--step-small); }

/* -------------------------------------------------------------- start 卡片 */
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: var(--gap-md); }
.card { display: flex; flex-direction: column; gap: 8px; padding: var(--pad-card); border: 1px solid var(--border-hairline); border-radius: var(--radius-md); background: var(--bg-raised); text-decoration: none; color: var(--ink-primary); }
.card:hover { border-color: var(--brand-text); color: var(--ink-primary); text-decoration: none; }
.card__n { font: 600 var(--step-micro)/1 var(--font-mono); letter-spacing: 0.1em; color: var(--brand-text); }
.card h3 { font-size: 1.05rem; }
.card p { color: var(--ink-secondary); font-size: var(--step-small); margin: 0; }

/* --------------------------------------------------- 结论卡（签名组件 2） */
.verdict { display: grid; gap: var(--gap-sm); padding: clamp(1.1rem, 2.5vw, 1.6rem); border: 1px solid var(--brand); border-left-width: 5px; border-radius: var(--radius-md); background: var(--bg-raised); }
.verdict__label { font: 700 var(--step-micro)/1 var(--font-mono); letter-spacing: 0.18em; text-transform: uppercase; color: var(--brand-text); margin: 0; }
.verdict__answer { font-family: var(--font-display); font-weight: var(--weight-display); font-size: clamp(1.4rem, 3vw, 2.05rem); line-height: 1.12; letter-spacing: -0.01em; margin: 0; }
.verdict__body { color: var(--ink-secondary); max-width: 46rem; margin: 0; }
.verdict__body strong { color: var(--ink-primary); }
.verdict__foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--gap-sm); }

/* ------------------------------------------- 事实印章 / 纸面片（签名组件 3） */
.stamp { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; font: 500 var(--step-micro)/1.4 var(--font-mono); letter-spacing: 0.04em; padding: 4px 8px; border: 1px solid currentColor; border-radius: var(--radius-sm); }
.stamp--verified { color: var(--state-verified); }
.stamp--pending { color: var(--state-pending); }
.stamp--absent { color: var(--state-absent); }
.stamp__src { color: inherit; opacity: 0.85; }

.slip { background: var(--surface-paper); color: var(--ink-on-paper); border-radius: var(--radius-md); padding: clamp(1rem, 2.4vw, 1.4rem); border: 1px solid #d9cbb4; margin: 0 0 var(--gap-lg); }
.slip__label { font: 700 var(--step-micro)/1 var(--font-mono); letter-spacing: 0.16em; text-transform: uppercase; color: var(--brand-text); margin: 0; }
.slip blockquote { margin: var(--gap-sm) 0 0; font-family: var(--font-display); font-size: 1.12rem; line-height: 1.5; }
.slip__by { margin-top: var(--gap-sm); font-size: var(--step-small); color: var(--ink-on-paper-muted); margin-bottom: 0; }
.slip__by a { color: var(--brand-text); }

/* ------------------------------------------------------------------- 表格 */
.table-wrap, .tablewrap { overflow-x: auto; border: 1px solid var(--border-hairline); border-radius: var(--radius-md); margin: 0 0 var(--gap-md); }
.table-wrap:focus-visible, .tablewrap:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; }
table { border-collapse: collapse; width: 100%; min-width: 32rem; font-size: var(--step-small); }
th, td { text-align: left; padding: 11px 12px; border-bottom: 1px solid var(--border-hairline); vertical-align: top; }
thead th { background: var(--bg-sunken); color: var(--ink-secondary); font: 600 var(--step-micro)/1.3 var(--font-mono); letter-spacing: 0.06em; text-transform: uppercase; }
tbody tr:nth-child(odd) { background: rgba(255, 255, 255, 0.018); }
tbody tr:last-child td { border-bottom: 0; }
td.num, th.num { text-align: right; font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.price { margin: var(--gap-sm) 0 0; max-width: var(--measure); font-size: var(--step-small); color: var(--ink-secondary); }
.price em { font-style: normal; color: var(--ink-muted); }
.swipehint { margin: var(--gap-xs) 0 0; font-size: var(--step-micro); color: var(--ink-muted); }
.scroll-hint { display: none; margin: var(--gap-xs) 0 0; font-size: var(--step-micro); color: var(--ink-muted); }

/* -------------------------------------------------------------------- FAQ */
.faq { border-top: 1px solid var(--border-hairline); }
.faq details { border-bottom: 1px solid var(--border-hairline); }
.faq summary { cursor: pointer; padding: 14px 0; font-weight: 600; font-size: 1.02rem; display: flex; justify-content: space-between; gap: var(--gap-md); align-items: baseline; }
.faq summary::marker, .faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "\25BE"; color: var(--brand-text); flex: none; }
.faq details[open] summary::after { content: "\25B4"; }
.faq__body { padding: 0 0 16px; color: var(--ink-secondary); max-width: 46rem; }

/* ---------------------------------------------------------------- 内页/面包屑 */
.crumbs, .crumb { padding: var(--gap-md) 0 0; font-size: var(--step-small); color: var(--ink-muted); }
.crumbs a, .crumb a { color: var(--ink-muted); }
.crumbs a:hover, .crumb a:hover { color: var(--brand-text); }
.pagehead { padding: clamp(1.6rem, 3.5vw, 2.6rem) 0 clamp(1.4rem, 3vw, 2.2rem); border-bottom: 1px solid var(--border-hairline); }
.pagehead h1 { font-family: var(--font-display); font-weight: var(--weight-display); font-size: var(--step-h1); letter-spacing: var(--track-display); text-wrap: balance; margin: 0 0 var(--gap-md); }
.article { max-width: var(--shell); margin: 0 auto; padding: clamp(1.8rem, 4vw, 3rem) clamp(1.25rem, 4vw, 1.5rem); }
.article h2, .article > .shell > h3, .article .section-head { margin: var(--gap-xl) 0 var(--gap-sm); }
.article h3 { margin: var(--gap-xl) 0 var(--gap-sm); font-family: var(--font-display); font-size: var(--step-h2); font-weight: var(--weight-display); letter-spacing: -0.01em; }
.article h3:first-child { margin-top: 0; }
.article p, .article ul, .article ol { max-width: var(--measure); color: var(--ink-secondary); }
.article ul, .article ol { padding-left: 1.15rem; }
.article li { margin-bottom: 6px; }
.article strong { color: var(--ink-primary); }
.article .lead { font-size: 1.15rem; color: var(--ink-secondary); max-width: 46rem; }
.callout { margin: 28px 0; padding: 18px 20px; border-left: 4px solid var(--brand); border-radius: var(--radius-md); background: var(--bg-raised); max-width: var(--measure); color: var(--ink-secondary); }
.byline { font: 500 var(--step-small)/1.5 var(--font-mono); color: var(--ink-muted); margin: 0 0 var(--gap-lg); }
.related { border-top: 1px solid var(--border-hairline); margin-top: var(--gap-xl); padding-top: var(--gap-md); }
.related h2 { font-size: var(--step-h3); margin: 0 0 var(--gap-md); }
.related ul { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--gap-sm); }
.related a { display: inline-block; border-top: 2px solid var(--brand); padding-top: 10px; min-height: 44px; font-weight: 700; }
.sources { margin-top: var(--gap-lg); font-size: var(--step-small); }
.sources h2 { font: 700 var(--step-micro)/1.3 var(--font-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--brand-text); margin: 0 0 var(--gap-sm); }
.sources ul { margin: 0; padding-left: 18px; }
.sources li { margin: 6px 0; }
.notecard { padding: var(--gap-md); border: 1px solid var(--border-hairline); border-radius: var(--radius-md); background: var(--bg-raised); font-size: var(--step-small); color: var(--ink-secondary); }

/* -------------------------------------------------------------------- 页脚 */
.foot { padding: var(--gap-xl) 0; background: var(--bg-sunken); margin-top: var(--gap-2xl); }
.foot__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); gap: var(--gap-lg); }
.foot h2 { font: 700 var(--step-small)/1.3 var(--font-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--brand-text); margin: 0 0 var(--gap-sm); }
.foot p { color: var(--ink-muted); font-size: var(--step-small); }
.foot ul { list-style: none; margin: 0; padding: 0; }
.foot li { margin-bottom: 6px; font-size: var(--step-small); }
.foot a { color: var(--ink-secondary); }
.foot a:hover { color: var(--brand-text); }
.foot__legal { margin-top: var(--gap-lg); padding-top: var(--gap-md); border-top: 1px solid var(--border-hairline); font-size: var(--step-micro); color: var(--ink-muted); }
.foot time { color: var(--ink-secondary); }

/* the page's direct answer is rendered inside the verdict card */
.verdict .lead { color: var(--ink-secondary); max-width: 46rem; font-size: 1.08rem; margin: 0; }
.stamp-note { margin: var(--gap-xs) 0 0; font-size: var(--step-micro); line-height: 1.5; color: var(--ink-muted); }
.stamp-note .stamp__src { color: var(--ink-secondary); }
.foot h2 strong { font: inherit; color: inherit; letter-spacing: inherit; }
.crumbs [aria-current="page"] { color: var(--ink-secondary); }

/* ---- consent choices entry point + section ---- */
.consent-settings-button { margin-top: 16px; padding: 12px 18px; min-height: 48px; border: 1px solid var(--border-strong); border-radius: var(--radius-md); background: transparent; color: var(--ink-secondary); font: 600 var(--step-small) var(--font-body); cursor: pointer; }
.foot .consent-settings-button { width: 100%; text-align: left; }
.consent-choices { border: 1px solid var(--border-hairline); border-radius: var(--radius-md); background: var(--bg-raised); margin: 28px 0 34px; padding: 22px 24px; }
.consent-choices h2 { font-size: 1.25rem; margin: 0 0 8px; }
.consent-choices p { font-size: var(--step-small); color: var(--ink-muted); margin: 0; }

/* ---- mandatory-choice page lock ---- */
html.consent-choice-required,
body.consent-choice-required {
  overflow: hidden !important;
  overscroll-behavior: none;
}
body.consent-choice-required{
  position:fixed;
  inset:0;
  width:100%;
}

/* ---- self-hosted consent dialog ---- */
html body #tarteaucitronRoot #tarteaucitronAlertBig{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--ink);box-shadow:0 24px 90px rgba(0,0,0,.45);font-family:var(--font-body)}
html body #tarteaucitronRoot.tarteaucitronSize-middle.tarteaucitronBeforeVisible::before{background:rgba(8,10,12,.82) !important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:auto}
html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig{box-sizing:border-box !important;width:min(700px,calc(100% - 48px)) !important;min-width:0 !important;max-width:700px !important;max-height:calc(100dvh - 48px);padding:clamp(30px,4.6vw,48px) !important;overflow-y:auto;border-radius:var(--radius)}
html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig::before{display:block;margin-bottom:18px;color:var(--ink);font-family:var(--font-display);font-size:clamp(29px,4.4vw,42px);font-weight:800;line-height:1.05;letter-spacing:-1px;text-align:center}
html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronDisclaimerAlert{display:block;max-width:58ch;margin:0 auto 26px;padding:0;color:var(--ink);font-size:18px;line-height:1.6;text-align:center}
html body #tarteaucitronRoot #tarteaucitronAlertBig button.tarteaucitronCTAButton{min-height:48px;padding:13px 18px !important;border-radius:8px;border:1px solid var(--brand);background:var(--brand);color:var(--brand-ink);font:700 15px/1.3 var(--font-body);cursor:pointer}
html body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2{border:1px solid var(--border);background:var(--surface-sunken);color:var(--ink)}
/* Pre-script fallback: the Personalize control is removed at runtime and the
   privacy control is replaced by a real link, so neither can flash as a
   third button. */
html body #tarteaucitronRoot #tarteaucitronCloseAlert,
html body #tarteaucitronRoot #tarteaucitronPersonalize,
html body #tarteaucitronRoot #tarteaucitronPrivacyUrl,
html body #tarteaucitronRoot #tarteaucitronPrivacyUrlDialog{display:none !important}
html body #tarteaucitronRoot [data-consent-privacy-link]{display:block;width:fit-content;margin:16px auto 0;color:var(--ink-muted);font-size:13px;line-height:1.4;text-align:center;text-decoration:underline;text-underline-offset:3px}
html body #tarteaucitronRoot [data-consent-privacy-link]:focus-visible{outline:3px solid var(--brand);outline-offset:3px}

/* ---- inert advertising placeholder (site-ads.md §4) ----
   Fixed min-height in both breakpoints, never wider than the viewport, and
   wrapping ids/urls/status copy so a blocked or empty ad keeps the layout
   stable. */
.ad-slot{--ad-slot-height:120px;display:grid;place-items:center;gap:6px;min-height:var(--ad-slot-height);margin:32px 0;padding:14px;overflow:hidden;border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface-sunken);color:var(--ink-muted);text-align:center}
.ad-slot--banner{--ad-slot-height:96px;width:100%}
.ad-slot--rectangle{--ad-slot-height:280px;width:min(100%,360px);margin-right:auto;margin-left:auto}
.ad-slot-label{font:700 11px/1.4 var(--font-mono);letter-spacing:2px;text-transform:uppercase}
.ad-consent-note{margin:0;max-width:38ch;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.ad-slot-body{width:100%;overflow-wrap:anywhere}
.ad-slot-body iframe,.ad-slot-body img,.ad-slot-body ins{max-width:100%}
/* The "Ad" marker always stays visible; only the status copy is retired once
   the network script has actually loaded. No creative is ever claimed. */
.ad-slot[data-ad-state="loaded"] > .ad-consent-note{display:none}
.ad-slot[data-ad-state="error"]{border-style:solid;border-color:var(--border)}

/* ------------------------------------------------------------------ 断点 */
@media (max-width: 1023px) {
  .hero__grid, .cols { grid-template-columns: 1fr; }
  .hero__mark { order: -1; }
  .matchstick { max-width: 11rem; }
  .foot__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
  .topbar__inner { flex-wrap: wrap; gap: var(--gap-sm); padding: 8px 0; }
  .topnav { margin-left: 0; width: 100%; gap: var(--gap-sm); overflow-x: auto; }
  .topnav a { white-space: nowrap; }
  .hero { padding-top: 1.6rem; }
  .hero__title { font-size: clamp(2.15rem, 10.5vw, 2.9rem); }
  .statrow { gap: 0 var(--gap-md); }
  .statrow li { flex: 1 1 44%; }
  .foot__grid { grid-template-columns: 1fr; }
  .btn { width: 100%; justify-content: center; }
  .buttons { flex-direction: column; }
  .verdict__answer { font-size: 1.6rem; }
  .tablewrap, .table-wrap { border-radius: 0; }
  .scroll-hint { display: block; }
}
@media(max-width:1260px){.shell{padding:0 28px}}
@media(max-width:760px){
  html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig{width:calc(100% - 20px) !important;max-height:calc(100dvh - 20px);padding:26px 14px 20px !important}
  html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig::before{margin-bottom:14px;font-size:clamp(25px,8vw,34px)}
  html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronDisclaimerAlert{margin-bottom:20px;font-size:16px;line-height:1.5}
  html body #tarteaucitronRoot.tarteaucitronSize-middle #tarteaucitronAlertBig button{width:100% !important;margin:0 0 10px !important}
  .ad-slot{margin:26px 0;padding:12px}
  .ad-slot--rectangle{--ad-slot-height:250px}
  .shell{padding:0 20px}
}
