/* Tension Test — "The Workbench" design system. See design-tokens.json. */
:root{
  --paper:#FAF7F0; --paper-deep:#F1EBDD; --card:#FFFFFF;
  --ink:#1C1917; --ink-soft:#44403C; --muted:#57534E;
  --accent:#B91C1C; --accent-deep:#7F1D1D;
  --rule:#D9D1BF; --line:#E7E0D0; --focus:#1D4ED8;
  --sans:"Avenir Next","Segoe UI","Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:1.05rem; line-height:1.65;
  font-variant-numeric:tabular-nums;
}
.wrap{max-width:72rem; margin:0 auto; padding:0 1.25rem}
.measure{max-width:68ch}
/* ---------- masthead ---------- */
.site-header{background:var(--paper-deep); border-bottom:1px solid var(--rule)}
.masthead{padding:1.4rem 1.25rem 1rem}
.wordmark{
  font-weight:800; font-size:1.9rem; letter-spacing:-0.02em; color:var(--ink);
  text-decoration:none; text-transform:uppercase;
}
.wordmark .tt-mark{color:var(--accent)}
.tagline{font-family:var(--mono); font-size:0.8rem; color:var(--muted); margin:0.15rem 0 0.9rem}
.site-nav{display:flex; flex-wrap:wrap; gap:0.25rem 1.25rem; padding-bottom:0.9rem}
.site-nav a{
  font-family:var(--mono); font-size:0.82rem; text-transform:uppercase; letter-spacing:0.08em;
  color:var(--ink-soft); text-decoration:none; padding:0.25rem 0; border-bottom:2px solid transparent;
}
.site-nav a:hover{color:var(--accent); border-bottom-color:var(--accent)}
.site-nav a[aria-current="page"]{color:var(--accent); border-bottom-color:var(--accent)}
hr.stitch-rule{border:0; border-top:2px dashed var(--accent); margin:2.2rem 0; opacity:0.85}
/* ---------- article chrome ---------- */
.kicker{
  font-family:var(--mono); font-size:0.78rem; text-transform:uppercase; letter-spacing:0.14em;
  color:var(--accent); margin:2rem 0 0.5rem;
}
.kicker::before{content:"--- "; letter-spacing:0}
h1.page-title{font-size:clamp(1.7rem,3.6vw,2.4rem); line-height:1.15; letter-spacing:-0.015em; margin:0 0 0.6rem}
.meta-row{font-family:var(--mono); font-size:0.8rem; color:var(--muted); margin-bottom:1.2rem}
.meta-row .draft{color:var(--accent); font-weight:700}
.honesty-box{
  border:1px solid var(--rule); border-left:4px solid var(--accent);
  background:var(--card); padding:0.9rem 1.1rem; margin:1.4rem 0; font-size:0.95rem;
}
.honesty-box strong{color:var(--accent-deep)}
h2{font-size:1.35rem; margin:2.2rem 0 0.7rem; letter-spacing:-0.01em}
h3{font-size:1.1rem; margin:1.8rem 0 0.5rem}
h4{font-size:1rem; margin:1.5rem 0 0.4rem}
p{margin:0 0 1.1rem}
a{color:var(--accent-deep); text-decoration:underline; text-underline-offset:2px}
a:hover{color:var(--accent)}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:3px solid var(--focus); outline-offset:2px;
}
/* verdict badge */
.verdict{
  border:1px solid var(--rule); border-left:5px solid var(--accent);
  background:rgba(185,28,28,0.06); padding:1rem 1.2rem; margin:1.4rem 0;
}
.verdict::before{
  content:"VERDICT"; display:block; font-family:var(--mono); font-size:0.75rem;
  letter-spacing:0.14em; color:var(--accent); margin-bottom:0.4rem;
}
.verdict p:last-child{margin-bottom:0}
/* ---------- tables ---------- */
.table-scroll{overflow-x:auto; margin:1.2rem 0; border:1px solid var(--rule); background:var(--card)}
table{border-collapse:collapse; width:100%; font-size:0.92rem; min-width:34rem}
thead th{
  position:sticky; top:0; background:var(--paper-deep); z-index:1;
  font-family:var(--mono); font-size:0.78rem; text-transform:uppercase; letter-spacing:0.06em;
  text-align:left; padding:0.7rem 0.8rem; border-bottom:2px solid var(--accent); white-space:nowrap;
}
tbody td{padding:0.6rem 0.8rem; border-bottom:1px solid var(--line); vertical-align:top}
tbody tr:last-child td{border-bottom:0}
tbody tr:nth-child(even){background:rgba(28,25,23,0.025)}
td:first-child{font-family:var(--mono); font-size:0.82rem}
/* ---------- cards / indexes ---------- */
.card-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(17rem,1fr)); gap:1.1rem; margin:1.5rem 0}
.card{
  background:var(--card); border:1px solid var(--rule); padding:1.1rem 1.2rem;
  text-decoration:none; color:var(--ink); display:block;
}
.card:hover{border-color:var(--accent); box-shadow:0 2px 0 var(--accent)}
.card .card-kicker{font-family:var(--mono); font-size:0.72rem; text-transform:uppercase; letter-spacing:0.12em; color:var(--accent)}
.card h3{margin:0.35rem 0 0.4rem; font-size:1.02rem}
.card h3 a{color:var(--ink); text-decoration:none}
.card h3 a:hover{color:var(--accent-deep)}
.card p{font-size:0.9rem; color:var(--ink-soft); margin:0}
.section-head{display:flex; align-items:baseline; justify-content:space-between; gap:1rem; flex-wrap:wrap}
.count-note{font-family:var(--mono); font-size:0.8rem; color:var(--muted)}
/* ---------- hero ---------- */
.hero{padding:2.6rem 0 1.2rem}
.hero h1{font-size:clamp(2.2rem,5vw,3.4rem); letter-spacing:-0.025em; line-height:1.05; margin:0 0 0.6rem}
.hero h1 .tt-mark{color:var(--accent)}
.hero .lede{font-size:1.15rem; color:var(--ink-soft)}
.stat-row{display:flex; flex-wrap:wrap; gap:1.5rem; margin:1.6rem 0}
.stat{font-family:var(--mono)}
.stat .num{font-size:1.6rem; font-weight:700; color:var(--accent-deep)}
.stat .lbl{display:block; font-size:0.75rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--muted)}
/* ---------- TOC / progress ---------- */
.toc{border:1px dashed var(--accent); padding:1rem 1.2rem; margin:1.4rem 0; background:var(--card)}
.toc summary{font-family:var(--mono); font-size:0.8rem; text-transform:uppercase; letter-spacing:0.12em; cursor:pointer; color:var(--accent-deep)}
.toc ol{margin:0.6rem 0 0; padding-left:1.2rem; font-size:0.92rem}
.toc li{margin:0.25rem 0}
.progress{position:fixed; top:0; left:0; height:3px; width:0; background:var(--accent); z-index:50}
/* ---------- forms ---------- */
.form-note{border:1px dashed var(--accent); background:var(--card); padding:0.9rem 1.1rem; font-size:0.92rem; margin:1.2rem 0}
form.demo-form{border:1px solid var(--rule); background:var(--card); padding:1.2rem; max-width:34rem; opacity:0.85}
form.demo-form label{display:block; font-family:var(--mono); font-size:0.78rem; text-transform:uppercase; letter-spacing:0.08em; margin:0.9rem 0 0.3rem}
form.demo-form input[type="text"], form.demo-form input[type="email"], form.demo-form textarea, form.demo-form select{
  width:100%; padding:0.6rem; border:1px solid var(--rule); background:var(--paper); font:inherit; max-width:100%;
}
form.demo-form button{
  margin-top:1rem; padding:0.7rem 1.4rem; background:var(--ink-soft); color:var(--paper);
  border:0; font-family:var(--mono); font-size:0.85rem; text-transform:uppercase; letter-spacing:0.1em; cursor:not-allowed;
}
.consent{display:flex; gap:0.6rem; align-items:flex-start; margin-top:1rem; font-size:0.9rem}
.consent input{margin-top:0.3rem}
/* ---------- footer ---------- */
.site-footer{margin-top:3rem; background:var(--ink); color:var(--paper)}
.site-footer .wrap{padding:2.2rem 1.25rem}
.foot-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(13rem,1fr)); gap:1.5rem}
.site-footer h4{font-family:var(--mono); font-size:0.78rem; text-transform:uppercase; letter-spacing:0.12em; color:var(--rule); margin:0 0 0.6rem}
.site-footer a{color:var(--paper); text-decoration:none}
.site-footer a:hover{color:#fff; text-decoration:underline}
.site-footer ul{list-style:none; margin:0; padding:0; font-size:0.92rem}
.site-footer li{margin:0.35rem 0}
.foot-note{margin-top:1.8rem; padding-top:1.2rem; border-top:1px dashed var(--muted); font-size:0.85rem; color:var(--rule)}
/* ---------- misc ---------- */
blockquote{border-left:3px solid var(--accent); margin:1.2rem 0; padding:0.2rem 0 0.2rem 1rem; color:var(--ink-soft)}
pre{background:var(--ink); color:var(--paper); padding:1rem; overflow-x:auto; font-size:0.85rem}
code{font-family:var(--mono); font-size:0.88em; background:rgba(28,25,23,0.07); padding:0.1em 0.3em; border-radius:3px}
pre code{background:none; padding:0}
img{max-width:100%; height:auto}
.skip{position:absolute; left:-9999px}
.skip:focus{left:0.5rem; top:0.5rem; background:var(--ink); color:var(--paper); padding:0.5rem 1rem; z-index:99}
.related{margin-top:2.4rem}
.related h2{font-size:1.15rem}
.sources{font-size:0.9rem}
.sources li{margin:0.3rem 0; word-break:break-word}
.filter-bar{display:flex; gap:0.8rem; align-items:center; flex-wrap:wrap; margin:1.2rem 0}
.filter-bar label{font-family:var(--mono); font-size:0.78rem; text-transform:uppercase; letter-spacing:0.08em}
.filter-bar select{padding:0.5rem; border:1px solid var(--rule); background:var(--card); font:inherit; max-width:100%}
@media (max-width:560px){
  body{font-size:1rem}
  .wrap{padding:0 1rem}
  .masthead{padding:1.1rem 1rem 0.8rem}
  .hero{padding:1.8rem 0 0.8rem}
  table{font-size:0.85rem}
  .card-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none !important; animation:none !important}
}

/* Studio edition: a softer editorial desk, shared by every generated page. */
:root{--paper:#fffaf3;--paper-deep:#f4e7df;--card:#fffdf9;--ink:#34252f;--ink-soft:#624c58;--muted:#806976;--accent:#bd5474;--accent-deep:#6d244e;--rule:#d9c4ca;--line:#eadde0;--focus:#2156a0;--serif:Georgia,"Iowan Old Style","Palatino Linotype",Palatino,serif}
body{font-size:1.04rem;line-height:1.68;background:var(--paper)}
.site-header{background:linear-gradient(115deg,#fff8f1 0%,var(--paper-deep) 55%,#efe6f5 100%);border-bottom:0;position:relative}.site-header::after{content:"";display:block;height:5px;background:repeating-linear-gradient(90deg,var(--accent) 0 9px,transparent 9px 16px);opacity:.72}.masthead{padding-top:1.25rem}.wordmark{font-family:var(--serif);font-size:2.25rem;letter-spacing:-.065em;text-transform:none;color:#4c1736}.tagline{font-family:var(--serif);font-style:italic;font-size:.94rem;margin:.05rem 0 .82rem}.site-nav{gap:.25rem .55rem;padding-bottom:.65rem}.site-nav a{font-family:var(--sans);font-weight:700;font-size:.75rem;padding:.38rem .62rem;border:1px solid transparent;border-radius:999px}.site-nav a:hover,.site-nav a[aria-current="page"]{color:#4c1736;background:#f7dce2;border-color:#e6aebe}
.kicker{font-family:var(--sans);font-size:.72rem;font-weight:800;letter-spacing:.16em;color:#6d244e}.kicker::before{content:"✦ ";color:var(--accent)}h1,h2,h3,h4{font-family:var(--serif);color:#4c1736}h1.page-title{font-size:clamp(2.15rem,4vw,3.3rem);line-height:1.05;letter-spacing:-.04em}h2{font-size:1.72rem;line-height:1.15;letter-spacing:-.025em}.honesty-box{border-left-width:5px;background:linear-gradient(110deg,#fffdf9,#f7dce2);box-shadow:4px 4px 0 rgba(119,92,148,.1)}
hr.stitch-rule{border-color:var(--accent);margin:2.75rem 0}.card{position:relative;border-radius:.4rem;box-shadow:4px 4px 0 rgba(119,92,148,.08);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.card::before{content:"";position:absolute;left:.9rem;right:.9rem;top:.45rem;border-top:1px dashed var(--accent);opacity:.75}.card:hover{border-color:var(--accent);transform:translate(-2px,-2px);box-shadow:7px 7px 0 rgba(109,36,78,.14)}.card .card-kicker{font-family:var(--sans);font-weight:800;color:#775c94}.card h3{font-size:1.18rem}.card h3 a{color:#4c1736}.table-scroll{box-shadow:5px 5px 0 rgba(119,92,148,.08)}thead th{background:#f5e9ee;border-bottom-color:var(--accent);font-family:var(--sans);font-weight:800}.filter-bar{padding:.7rem .8rem;background:#f7eff2;border:1px solid var(--rule);border-radius:.35rem}.filter-bar label{font-family:var(--sans);font-weight:800}.filter-bar select{border-radius:.22rem}
.hero{padding:3.25rem 0 1.45rem}.hero h1{font-family:var(--serif);font-size:clamp(3.15rem,7vw,5.75rem);letter-spacing:-.075em;line-height:.87}.hero .lede{font-family:var(--serif);font-size:1.25rem;line-height:1.48}.hero-home{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(16rem,.82fr);gap:2.1rem;align-items:center}.hero-figure{margin:0;position:relative;transform:rotate(1.2deg);background:var(--card);padding:.62rem .62rem 2.2rem;border:1px solid var(--rule);box-shadow:10px 11px 0 #ded3ea}.hero-figure::before{content:"";position:absolute;inset:.25rem;border:1px dashed var(--accent);pointer-events:none}.hero-figure img{display:block;width:100%;height:21rem;object-fit:cover;object-position:center}.hero-figure figcaption{font-family:var(--sans);font-size:.7rem;color:var(--muted);position:absolute;bottom:.62rem;left:.8rem;right:.8rem}.hero-figure figcaption::before{content:"Source image · ";font-weight:800;color:#6d244e}.stat-row{gap:.7rem}.stat{min-width:7.25rem;background:rgba(255,253,249,.72);border:1px solid var(--rule);border-radius:.3rem;padding:.55rem .72rem}.stat .num{font-family:var(--serif);font-size:1.7rem;color:#4c1736}.stat .lbl{font-family:var(--sans);font-size:.65rem;font-weight:800;letter-spacing:.09em;margin-top:.25rem}
.verdict{border-color:#dfb1bf;border-left-color:#6d244e;background:#f7dce2}.toc{border-color:var(--accent);background:#fff9f7}.toc summary{font-family:var(--sans);font-weight:800}.site-footer{margin-top:4rem;background:#4c1736;border-top:5px solid var(--accent)}.site-footer h4{font-family:var(--sans);font-weight:800;color:#f6cad6}.foot-note{border-color:#b98ba1}.progress{height:4px;background:linear-gradient(90deg,var(--accent),#775c94)}blockquote{border-color:var(--accent);font-family:var(--serif);font-size:1.08rem}code{background:#f7dce2}
@media (max-width:700px){.hero-home{grid-template-columns:1fr;gap:1.3rem}.hero-figure{max-width:32rem;justify-self:center;width:min(100%,32rem)}.hero-figure img{height:17rem}}
@media (max-width:560px){.wordmark{font-size:2rem}.hero{padding:2.2rem 0 1rem}.hero h1{font-size:3.65rem}.hero .lede{font-size:1.13rem}.stat{min-width:6.3rem}}

/* Homepage: quilted paper, a shorter invitation, and clear ways in. */
.hero-home{position:relative;isolation:isolate;overflow:hidden;margin:1.65rem -1.35rem 0;padding:3.8rem max(1.35rem,calc((100% - 74rem)/2 + 1.35rem));border-bottom:1px solid var(--rule);background:linear-gradient(105deg,#fae9e5 0%,#fff8f0 50%,#ece2f1 100%)}
.hero-home::before,.hero-home::after{content:"";position:absolute;z-index:-1;pointer-events:none}.hero-home::before{width:16rem;height:16rem;right:-4.5rem;top:-5.25rem;background:radial-gradient(circle at 50% 50%,transparent 0 30%,rgba(189,84,116,.16) 31% 34%,transparent 35% 48%,rgba(119,92,148,.15) 49% 52%,transparent 53%);transform:rotate(18deg)}.hero-home::after{width:12rem;height:6rem;left:-3.5rem;bottom:-1.4rem;background:repeating-linear-gradient(45deg,rgba(189,84,116,.13) 0 3px,transparent 3px 11px),repeating-linear-gradient(-45deg,rgba(119,92,148,.1) 0 3px,transparent 3px 11px);border-radius:55% 45% 0 0}
.hero-copy{position:relative;z-index:1}.hero-home h1{font-size:clamp(3.5rem,7.2vw,6.6rem);max-width:8.6ch;margin-bottom:1.2rem;line-height:.84}.hero-home h1 em{font-weight:400;color:var(--accent);white-space:nowrap}.hero-home .lede{font-size:1.18rem;max-width:35rem}.hero-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin:1.5rem 0 0}.button{display:inline-flex;align-items:center;gap:.5rem;padding:.72rem 1.1rem;border-radius:999px;font-family:var(--sans);font-size:.78rem;font-weight:800;letter-spacing:.075em;text-decoration:none;text-transform:uppercase;transition:transform .18s ease,box-shadow .18s ease}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--accent-deep);color:#fffaf3;box-shadow:4px 4px 0 #d9bfd5}.button-primary:hover{color:#fff;background:#4c1736}.button-quiet{border:1px solid #c8aab7;color:var(--accent-deep);background:rgba(255,255,255,.48)}.button-quiet:hover{color:#4c1736;border-color:var(--accent);background:#fff7f7}
.hero-home .hero-figure{align-self:center;width:min(100%,26rem);padding:.7rem .7rem 2.25rem;box-shadow:12px 12px 0 #cbb8df;transform:rotate(2.15deg);background:#fff}.hero-home .hero-figure img{height:auto;aspect-ratio:1/1;object-fit:contain;object-position:center;background:#fff}.hero-home .stat-row{margin-top:1.65rem}.entry-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.entry-card{min-height:15rem;background:linear-gradient(145deg,#fffdf9 0%,#fff6f4 100%)}.entry-card:nth-child(2){background:linear-gradient(145deg,#fffdf9 0%,#f2ebf7 100%)}.entry-card:nth-child(3){background:linear-gradient(145deg,#fffdf9 0%,#fff0e7 100%)}.entry-card h3{font-size:1.55rem}.card-link{display:block;margin-top:1.15rem;font-family:var(--sans);font-size:.75rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--accent-deep)}
@media (max-width:700px){.hero-home{margin:1.15rem -1rem 0;padding:2.7rem 1rem}.hero-home h1{font-size:clamp(3.4rem,14vw,5rem)}.hero-home .hero-figure{grid-row:1;width:min(90%,26rem)}.entry-grid{grid-template-columns:1fr}.entry-card{min-height:0}}
