/* Sub-pages (hub.html, finder.html, print.html) — built from the tokens in style.css, so every theme follows */
.hub-hero{padding:clamp(120px,18vh,200px) 0 clamp(56px,8vh,96px)}
.hub-hero h1{font-size:clamp(36px,6vw,76px);max-width:18ch;margin:0 0 clamp(20px,3vw,32px)}
.card{background:linear-gradient(180deg,var(--card-1),var(--card-2));border:1px solid var(--line);border-radius:4px}
.tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}

/* 01 deterministic vs full text */
.vs{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(0,1fr) minmax(0,1fr)}
.vs>span{padding:14px 18px;border-top:1px solid var(--line-soft);font-size:14.5px;color:var(--mut);min-width:0}
.vs>.h{border-top:0;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.vs>.h.us{color:var(--acc)}
.vs>.k{color:var(--tx);font-weight:500}
.vs>.us{background:var(--acc-soft);color:var(--tx)}
@media (max-width:700px){
  .vs{grid-template-columns:1fr 1fr}
  .vs>.k{grid-column:1/-1;padding-bottom:4px}
  .vs>.h.k{display:none}
  .vs>.k+span,.vs>.k+span+span{border-top:0}
}
.steps4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-top:clamp(20px,3vw,32px)}
.steps4>div{background:linear-gradient(180deg,var(--card-1),var(--card-2));padding:clamp(18px,2vw,24px);display:flex;flex-direction:column;gap:8px}
.steps4 b{font-size:clamp(16px,1.4vw,18px);font-weight:600;letter-spacing:-.02em}
.steps4 p{margin:0;font-size:13.5px;line-height:1.55;color:var(--mut)}
.steps4 .det{color:var(--cool)}
.steps4 .ai{color:var(--acc)}
.steps4>div:last-child{background:linear-gradient(180deg,var(--card-1h),var(--card-2h))}
@media (max-width:900px){.steps4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.steps4{grid-template-columns:1fr}}

/* 02 clean data */
.clean{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);gap:clamp(24px,4vw,56px);align-items:start}
.clean blockquote{margin:0;font-size:clamp(24px,3vw,38px);font-weight:600;letter-spacing:-.03em;line-height:1.15;text-wrap:balance}
.clean blockquote span{display:block}
.clean blockquote span+span{color:var(--acc)}
.finds{list-style:none;margin:0;padding:0}
.finds li{padding:16px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:16px}
.finds li:last-child{border-bottom:1px solid var(--line)}
.finds b{font-weight:600;font-size:15px}
.finds span{color:var(--mut);font-size:14px}
@media (max-width:860px){.clean{grid-template-columns:1fr}}
@media (max-width:520px){.finds li{grid-template-columns:1fr;gap:4px}}

/* 03 one product, many origins */
.legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:16px}
.legend span{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle}
.o-src{background:var(--cool)}
.o-hub{background:var(--acc)}
.pcap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 20px;border-bottom:1px solid var(--line)}
.pcap b{font-size:17px;font-weight:600}
.prows{display:grid;grid-template-columns:minmax(120px,.9fr) minmax(0,1.6fr) auto}
.prows>span{padding:11px 20px;border-top:1px solid var(--line-soft);font-size:14.5px;min-width:0}
.prows>.g{grid-column:1/-1;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);background:var(--panel);padding-block:7px}
.prows>.k{color:var(--mut)}
.prows>.o{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;text-align:right}
.prows>.o.src{color:var(--cool)}
.prows>.o.hub{color:var(--acc)}
@media (max-width:560px){
  .prows{grid-template-columns:1fr auto}
  .prows>.k{grid-column:1/-1;padding-bottom:0}
  .prows>.k+span,.prows>.k+span+span{border-top:0}
  .prows>span{padding-inline:14px}
}

/* 04 meaning */
.links3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.6vw,20px)}
.lk{padding:clamp(20px,2.2vw,28px);display:flex;flex-direction:column;gap:14px}
.lk b.t{font-size:clamp(17px,1.5vw,20px);font-weight:600;letter-spacing:-.02em}
.lk p{margin:0;font-size:13.5px;line-height:1.55;color:var(--mut)}
.mini{display:flex;flex-direction:column}
.mini .box{border:1px solid var(--line);border-radius:3px;padding:9px 12px;background:var(--panel);display:flex;flex-direction:column;gap:2px}
.mini .box.add{border-color:var(--acc);background:var(--acc-soft)}
.mini .box b{font-size:13.5px;font-weight:600}
.mini .box span{font-size:12.5px;color:var(--mut)}
.mini .via{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--acc);padding:7px 0 7px 12px;position:relative}
.mini .via::before{content:"";position:absolute;left:4px;top:4px;bottom:4px;width:1px;background:var(--acc)}
@media (max-width:900px){.links3{grid-template-columns:1fr}}
.ladder{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-top:clamp(20px,3vw,32px)}
.ladder>div{background:linear-gradient(180deg,var(--card-1),var(--card-2));padding:clamp(18px,2vw,26px);display:flex;flex-direction:column;gap:8px}
.ladder b{font-size:clamp(20px,2vw,26px);font-weight:600;letter-spacing:-.03em}
.ladder>div:last-child b{color:var(--acc)}
.ladder p{margin:0;font-size:13.5px;color:var(--mut);line-height:1.55}
.ladder .ex{font-family:var(--mono);font-size:12px;color:var(--dim)}
@media (max-width:760px){.ladder{grid-template-columns:1fr}}

/* 05 domains */
.dom-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.dom-card{padding:clamp(20px,2.4vw,30px);display:flex;flex-direction:column;gap:16px}
.dom-line{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 16px;font-size:14px}
.dom-line dt{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding-top:2px}
.dom-line dd{margin:0;color:var(--mut)}
.dom-chips{display:flex;flex-wrap:wrap;gap:8px}
.points{list-style:none;margin:0;padding:0}
.points li{padding:14px 0 14px 22px;border-top:1px solid var(--line);position:relative;color:var(--mut);font-size:15px}
.points li:last-child{border-bottom:1px solid var(--line)}
.points li::before{content:"";position:absolute;left:0;top:23px;width:8px;height:1px;background:var(--acc)}
@media (max-width:860px){.dom-grid{grid-template-columns:1fr}}

/* 06 automation */
.flows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.6vw,20px)}
.flow{padding:clamp(20px,2.2vw,28px);display:flex;flex-direction:column;gap:14px}
.flow b.t{font-size:clamp(17px,1.5vw,20px);font-weight:600;letter-spacing:-.02em}
.flow ol{list-style:none;margin:0;padding:0;counter-reset:f}
.flow li{counter-increment:f;display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;padding:10px 0;border-top:1px solid var(--line-soft);font-size:14px;color:var(--mut)}
.flow li::before{content:"0" counter(f);font-family:var(--mono);font-size:11px;color:var(--acc);padding-top:2px}
.uses{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(20px,3vw,32px)}
@media (max-width:820px){.flows{grid-template-columns:1fr}}

.hub-end{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}

.nav-links a.on{color:var(--acc)}
.nav-links a.on::after{transform:scaleX(1)}

/* finder.html / print.html */
.steps{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden}
.steps>div{background:linear-gradient(180deg,var(--card-1),var(--card-2));padding:clamp(18px,2vw,24px);display:flex;flex-direction:column;gap:8px}
.steps>div.add{background:linear-gradient(180deg,var(--card-1h),var(--card-2h))}
.steps b{font-size:clamp(15px,1.3vw,17px);font-weight:600;letter-spacing:-.02em}
.steps p{margin:0;font-size:13.5px;line-height:1.55;color:var(--mut)}
.steps .tag.add{color:var(--acc)}
@media (max-width:960px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(24px,4vw,56px);align-items:start}
.two>div{min-width:0}
@media (max-width:860px){.two{grid-template-columns:1fr}}

.fmock{overflow:hidden}
.fmock .mh{display:flex;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.fmock .mh b{font-weight:600}
.fmock .mb{padding:16px 18px;display:flex;flex-direction:column;gap:16px}
.fg{display:flex;flex-direction:column;gap:8px}
.fg .fl{display:flex;justify-content:space-between;gap:8px;font-size:14px;font-weight:500}
.fg .fl i{font-style:normal;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;color:var(--dim)}
.opts{display:flex;flex-wrap:wrap;gap:6px}
.opt{font-family:var(--mono);font-size:11.5px;padding:5px 10px;border:1px solid var(--line);border-radius:2px;color:var(--mut)}
.opt.on{border-color:var(--acc);background:var(--acc-soft);color:var(--tx)}
.opt.off{opacity:.45;text-decoration:line-through}
.rng{position:relative;height:3px;background:var(--line-2);margin:10px 7px 4px}
.rng i{position:absolute;top:0;bottom:0;background:var(--acc)}
.rng i::before,.rng i::after{content:"";position:absolute;top:-6px;width:14px;height:14px;border-radius:50%;background:var(--bg);border:2px solid var(--acc);box-sizing:border-box}
.rng i::before{left:-7px}.rng i::after{right:-7px}
.rl{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--dim)}
.fmock .res{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;padding:14px 18px;border-top:1px solid var(--line);background:var(--acc-soft)}
.fmock .res b{color:var(--acc);font-weight:600;font-size:17px;font-variant-numeric:tabular-nums}
.fmock .res span{font-size:13px;color:var(--mut)}

.cards{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:clamp(12px,1.6vw,20px)}
.cards>article{padding:clamp(20px,2.2vw,28px);display:flex;flex-direction:column;gap:10px;min-width:0}
.cards b.t{font-size:clamp(16px,1.4vw,19px);font-weight:600;letter-spacing:-.02em}
.cards p{margin:0;font-size:13.5px;line-height:1.55;color:var(--mut)}
.cards .mlist{margin-top:4px}
@media (max-width:900px){.cards{grid-template-columns:1fr}}

.tree{display:flex;flex-direction:column;gap:8px}
.tree .t{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 12px;border:1px solid var(--line);border-radius:3px;background:var(--panel);font-size:14px}
.tree .t b{font-weight:600}
.tree .t span{color:var(--mut);font-size:12.5px}
.tree .t .k{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);border:1px solid var(--line);padding:2px 6px;border-radius:2px}
.tree .l1{margin-left:24px}.tree .l2{margin-left:48px}
.tree .l3{margin-left:72px;border-color:var(--acc);background:var(--acc-soft)}
@media (max-width:520px){.tree .l1{margin-left:12px}.tree .l2{margin-left:24px}.tree .l3{margin-left:36px}}

.pages{display:grid;grid-template-columns:minmax(0,260px) auto minmax(0,260px);justify-content:center;gap:clamp(16px,3vw,40px);align-items:center}
.pages figure{margin:0;display:flex;flex-direction:column;gap:10px}
.pages figcaption{font-size:12.5px;color:var(--mut);text-align:center}
.page{aspect-ratio:210/297;width:100%;border:1px solid var(--line-2);border-radius:2px;background:var(--panel-2);position:relative}
.page .mg{position:absolute;inset:7% 8%;border:1px dashed var(--line)}
.page .fr{position:absolute;border-radius:2px;font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;display:grid;place-items:center;text-align:center;overflow:hidden;padding:2px}
.fr.tx{background:rgba(111,208,228,.16);color:var(--cool)}
.fr.im{background:var(--acc-soft);color:var(--acc)}
.fr.tb{background:var(--panel-2);color:var(--tx);border:1px solid var(--line-2)}
.fr.om{border:1px dashed var(--line-2);color:var(--dim);text-decoration:line-through}
.page.reg{display:flex;flex-direction:column;gap:7px;padding:10% 9%}
.page.reg .fr{position:static;padding:7px}
.pages .mid{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc);text-align:center}
@media (max-width:600px){.pages{grid-template-columns:1fr}.pages figure{max-width:240px;margin:0 auto;width:100%}}

.dtw{overflow-x:auto}
table.dt{border-collapse:collapse;width:100%;font-size:14px;font-variant-numeric:tabular-nums}
table.dt th,table.dt td{padding:11px 18px;border-top:1px solid var(--line-soft);text-align:left;white-space:nowrap}
table.dt thead th{border-top:0;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-weight:400}
table.dt .num{text-align:right}
table.dt td.same{color:var(--dim)}
table.dt tr.grp th{background:var(--acc-soft);color:var(--acc);font-family:var(--mono);font-size:11px;letter-spacing:.06em;font-weight:400;white-space:normal}
