
@font-face{font-family:"Alegreya Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/alegreya-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Alegreya Sans";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/alegreya-sans-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Alegreya Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/alegreya-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Alegreya Sans";font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/alegreya-sans-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Victor Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/victor-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Victor Mono";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/victor-mono-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Victor Mono";font-style:normal;font-weight:600 700;font-display:swap;src:url(/fonts/victor-mono-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Courier Prime";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/courier-prime-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Courier Prime";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/courier-prime-latin-700-normal.woff2) format("woff2")}

/* Garaje Deportivo, v1 guide template. Tokens trace to borrowings_v1.md §Palette + manifest color_palette. */
:root{
  /* color_palette re-derived at critic cycle 1 from F + S1 (02 Heim) + S2 (03 dendro) + C only.
     Every hue is pixel-measured from references/03; neutrals from references/02. No 06/07 hex. */
  --paper:#f0f0ec;      /* 02 Heim paper, lifted */
  --field:#e5e5e2;      /* 02 Heim paper, measured: plot fields */
  --ink:#2b2a26;        /* 02 Heim graphite, darkened */
  --muted:#575349;      /* 02 Heim #747066, darkened (6.7:1) */
  --note:#575349;       /* pencil hand: graphite by day */
  --rule:#c9c8c1;
  --gm:#d9d8d1; --gM:#bdbcb4;
  --run18:#884e21;      /* 03 heartwood, measured (5.8:1 on paper) */
  --run16:#a67346;      /* 03 mid-ring wood, measured (3.6:1, graphics only) */
  --band:#b69063;       /* 03 earlywood, measured: the 2001+ band, the stamp band */
  --band-ink:#2b2a26;
  --veto:#2b2a26;       /* veto is counted + circled, never coloured */
  --link:#2b2a26;
  --box:#2b2a26; --box-ink:#ecebe4; --box-muted:#c9c4b6; --box-line:#2b2a26; /* Tomica anatomy, S1 graphite ground */
  --tab-a:#e0a46e; --tab-n:#e8d3ab; --tab-b:#b88a5e;  /* 03 woods, night values (the box is always dark) */
  --hatch:#bdbcb4; --ph:#e5e5e2;
  --dotfield:#c9c8c1;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#1b1a17; --field:#23221e; --ink:#ebeae4; --muted:#b5b2a7; --note:#e8d3ab;
    --rule:#3d3b35; --gm:#2c2b26; --gM:#3c3a33;
    --run18:#e0a46e; --run16:#b88a5e; --band:#8d5f36; --band-ink:#f0ebe0; --veto:#ebeae4; --link:#ebeae4;
    --box:#26241f; --box-line:#4a4740;
    --hatch:#3c3a33; --ph:#23221e; --dotfield:#3d3b35;
  }
}
:root[data-theme="dark"]{
  --paper:#1b1a17; --field:#23221e; --ink:#ebeae4; --muted:#b5b2a7; --note:#e8d3ab;
  --rule:#3d3b35; --gm:#2c2b26; --gM:#3c3a33;
  --run18:#e0a46e; --run16:#b88a5e; --band:#8d5f36; --band-ink:#f0ebe0; --veto:#ebeae4; --link:#ebeae4;
  --box:#26241f; --box-line:#4a4740;
  --hatch:#3c3a33; --ph:#23221e; --dotfield:#3d3b35;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:56px}
body{margin:0;background:var(--paper);color:var(--ink);
  font:400 18px/1.55 "Alegreya Sans",system-ui,sans-serif;font-feature-settings:"lnum" 1}
@media (min-width:900px){body{font-size:19px}}
a{color:var(--link);text-decoration-thickness:1px;text-decoration-color:var(--muted);text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--link);outline-offset:2px;border-radius:2px}
b,strong{font-weight:800}
.num{font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.note{font-family:"Victor Mono",ui-monospace,monospace;font-style:italic;color:var(--note);font-size:.86em;line-height:1.45}
h1,h2,h3{font-family:"Alegreya Sans",sans-serif;font-weight:800;line-height:1.15;margin:0}
h2{font-size:1.6rem;margin-bottom:.6rem}
h3{font-size:1.1rem}
p{margin:0 0 .9rem}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--paper);padding:8px 12px;z-index:50}
.skip:focus{left:8px}

/* ---------- site header ---------- */
.site{border-bottom:1px solid var(--rule)}
.site-in{max-width:64rem;margin:0 auto;padding:12px 16px 0}
.wordmark{display:inline-flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none;font-weight:800;font-size:1.25rem}
.mark{width:28px;height:20px;fill:none;stroke-width:2;stroke-linecap:round}
.mark .m-pw{stroke:var(--run18)} .mark .m-tq{stroke:var(--run16);stroke-dasharray:4 2.5}
.site-nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:4px -16px 0;padding:0 10px}
.site-nav::-webkit-scrollbar{display:none}
.site-nav a{white-space:nowrap;color:var(--ink);text-decoration:none;padding:12px 6px;font-size:1rem;border-bottom:2px solid transparent}
.site-nav a[aria-current]{border-bottom-color:var(--ink);font-weight:500}
@media (min-width:760px){
  .site-in{display:flex;align-items:center;justify-content:space-between;padding:6px 32px}
  .site-nav{margin:0;padding:0;gap:14px}
}

/* ---------- page ---------- */
.guide{max-width:64rem;margin:0 auto;padding:0 16px 48px}
@media (min-width:760px){.guide{padding:0 32px 64px}}
.prose{max-width:40rem}
section{margin-top:2.6rem}
h2.q{font-size:1.65rem}
@media (min-width:900px){h2,h2.q{font-size:1.9rem}}

.breadcrumbs ol{list-style:none;margin:0;padding:14px 0 0;display:flex;flex-wrap:wrap;gap:2px 0;font-size:.9rem;color:var(--muted)}
.breadcrumbs li+li::before{content:"›";margin:0 .45em;color:var(--muted)}
.breadcrumbs a{color:var(--muted)}

/* title + Campsa year-on-band stamp (06) */
.title-block{display:grid;grid-template-columns:1fr auto;column-gap:14px;margin-top:14px}
.title-block h1{grid-column:1;font-size:2.15rem;letter-spacing:-.005em}
@media (min-width:900px){.title-block h1{font-size:3.1rem;max-width:15em}}
.title-block .dek{grid-column:1/-1;font-size:1.15rem;margin:.7rem 0 .4rem;max-width:36rem}
.title-block .byline{grid-column:1/-1;color:var(--muted);font-size:.95rem}
.stamp{grid-column:2;grid-row:1;align-self:start;display:flex;flex-direction:column;align-items:flex-end;margin-top:4px}
.sheet-header{font-family:"Courier Prime","Courier New",monospace}
.st-word{font-size:.8rem;color:var(--muted)}
.st-year{position:relative;font-weight:700;font-size:2rem;line-height:1;color:var(--ink);padding:0 4px;z-index:0;font-variant-numeric:lining-nums}
.st-year::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:46%;background:var(--band);z-index:-1}
@media (min-width:900px){.st-year{font-size:2.6rem}}

/* verdict first (04) with pencil bracket (05, transformed) */
.guide-verdict{position:relative;margin-top:1.3rem;padding:2px 0 2px 24px;max-width:40rem}
.guide-verdict .bracket{position:absolute;left:0;top:0;width:14px;height:100%;fill:none;stroke:var(--note);stroke-width:1.7;stroke-linecap:round}
@media (min-width:1100px){.guide-verdict{padding-left:0}.guide-verdict .bracket{left:-26px}}
.key-points{margin:0;padding:0 0 0 1.1em}
.key-points li{margin:0 0 .55rem}
.key-points li::marker{color:var(--note)}
.verdict-line{margin:.9rem 0 0}
.verdict-line .note{display:block;font-size:.8rem;margin-bottom:2px}

/* OCU section strip (04), sticky */
.guide-sections{position:sticky;top:0;z-index:10;display:flex;overflow-x:auto;scrollbar-width:none;gap:2px;
  margin:1.6rem -16px 0;padding:0 10px;background:var(--paper);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.guide-sections::-webkit-scrollbar{display:none}
.guide-sections a{white-space:nowrap;padding:13px 8px;color:var(--ink);text-decoration:none;font-weight:500;font-size:.98rem}
.guide-sections a:hover{text-decoration:underline}
@media (min-width:760px){.guide-sections{margin:1.6rem -32px 0;padding:0 24px;gap:10px}}

/* ForoCoches reserved ad slot (05, amended) */
.ad-slot{display:block;margin:2rem 0;padding:6px 0 10px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.ad-label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:6px}
.ad-field{min-height:280px;background-image:radial-gradient(var(--dotfield) 1.2px,transparent 1.3px);background-size:12px 12px}
@media (min-width:760px){.ad-field{min-height:250px;max-width:46rem}}

/* photo placeholders: B/W only (constraint), Heim label band (02) */
.photo{margin:1.4rem 0;max-width:46rem}
.photo.hero{margin-top:0}
.label-band{position:relative;min-height:1.6rem}
.photo .label-band{min-height:0;padding:0 0 6px var(--lx,30%);border-left:0}
.photo .label-band .leader-label{display:block}
.leader-label{font-family:"Victor Mono",monospace;font-style:italic;font-size:.8rem;color:var(--note)}
.reserved-image{position:relative;width:100%;background-color:var(--ph);
  background-image:repeating-linear-gradient(135deg,var(--hatch) 0 1px,transparent 1px 9px);
  outline:1px solid var(--muted);outline-offset:-1px;display:flex;align-items:flex-end;justify-content:flex-end;filter:grayscale(1)}
.ri-leader{position:absolute;z-index:2;left:var(--lx,30%);top:-4px;height:var(--lh,42%);border-left:1px solid var(--note);filter:drop-shadow(1px 0 0 var(--paper)) drop-shadow(-1px 0 0 var(--paper))}
.ri-leader::after{content:"";position:absolute;left:-5px;bottom:-5px;width:9px;height:9px;border:1px solid var(--note);border-radius:50%}
.ri-text{font-size:.85rem;color:var(--muted);background:var(--paper);padding:3px 6px;margin:8px}
.photo figcaption{font-size:.95rem;color:var(--muted);margin-top:6px}
img.photo-img{filter:grayscale(1);display:block;width:100%;height:auto;outline:1px solid var(--muted);outline-offset:-1px}

/* ficha rápida: typed run-sheet header (Courier Prime only here) */
.ficha .form{border:1px solid var(--ink);max-width:46rem;font-size:.98rem;background:var(--paper)}
.form-top{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--ink)}
.form-top span{flex:1 1 auto;padding:6px 10px;border-right:1px solid var(--ink)}
.form-top span:last-child{border-right:0}
.form-top i,.form dt{font-style:normal;color:var(--muted);font-size:.8rem;display:block}
.form dl{margin:0;display:grid;grid-template-columns:1fr}
.form dl>div{display:grid;grid-template-columns:7.2rem 1fr;border-bottom:1px solid var(--rule)}
.form dl>div:last-child{border-bottom:0}
.form dt{padding:8px 10px;border-right:1px solid var(--rule);font-size:.82rem;align-self:stretch}
.form dd{margin:0;padding:7px 10px;line-height:1.35}
@media (min-width:760px){.form dl{grid-template-columns:1fr 1fr}.form dl>div:nth-child(odd){border-right:1px solid var(--rule)}.form dl>div:nth-last-child(2):nth-child(odd){border-bottom:0}}

/* TOC */
.toc{margin-top:2rem;max-width:40rem}
.toc h2{font-size:1.15rem}
.toc ul{list-style:none;margin:0;padding:0}
.toc li{border-top:1px solid var(--rule)}
.toc li:last-child{border-bottom:1px solid var(--rule)}
.toc a{display:block;padding:11px 0;text-decoration:none;color:var(--ink)}
.toc a:hover{text-decoration:underline}

/* versions: stacked specimens on one ruler (03 + 08), suns (06) */
.versions{margin:1.4rem 0 0;max-width:60rem}
.versions .label-band{min-height:2.4rem;margin-top:.4rem}
.vers-lead{position:absolute;bottom:6px;border-bottom:1px solid var(--note);padding-bottom:3px;white-space:nowrap}
.vers-lead::before,.vers-lead::after{content:"";position:absolute;bottom:-7px;height:7px;border-left:1px solid var(--note)}
.vers-lead::before{left:0}.vers-lead::after{right:0}
.ruler{position:relative;height:1.9rem;border-bottom:1px solid var(--ink)}
.ruler-in span{position:absolute;bottom:4px;font:400 .72rem "Victor Mono",monospace;color:var(--muted);padding-left:3px}
.ruler-in span::before{content:"";position:absolute;left:0;bottom:-4px;height:8px;border-left:1px solid var(--ink)}
.rtick{position:absolute;top:-2px;height:calc(100% + 8px);border-left:1px dashed var(--run18)}
.rtick em{position:absolute;left:4px;top:-2px;font:italic .72rem "Victor Mono",monospace;color:var(--run18)}
.specimens{list-style:none;margin:0;padding:0}
.spec{display:grid;grid-template-columns:1fr;row-gap:4px;padding:12px 0;border-bottom:1px solid var(--rule)}
.mount{font-family:"Victor Mono",monospace;font-style:italic;color:var(--note);font-size:.95rem}
.track{position:relative;height:22px;background-color:var(--field);
  background-image:repeating-linear-gradient(90deg,var(--gM) 0 1px,transparent 1px 12.5%)}
.track .core{position:absolute;top:4px;height:14px;background:var(--run16);display:flex;align-items:center}
.spec:nth-child(2) .core,.spec:nth-child(3) .core,.spec:nth-child(5) .core,.spec:nth-child(6) .core{background:var(--run18)}
.spec.nb2 .core{box-shadow:inset 0 4px 0 var(--band)}
.yrs{font:600 .68rem "Victor Mono",monospace;color:var(--paper);padding:0 5px;white-space:nowrap}
.spec-line{font-size:.95rem}
.suns{display:inline-flex;align-items:center;gap:3px;font-size:.9rem}
.sun{width:15px;height:15px;fill:var(--run18);stroke:var(--run18);stroke-width:1.5;stroke-linecap:round}
.suns-word{margin-left:6px;color:var(--muted)}
.suns[data-n="3"] .suns-word{color:var(--ink);font-weight:800}
.versions figcaption{font-size:.92rem;color:var(--muted);margin-top:10px;max-width:40rem}
@media (min-width:760px){
  .spec{grid-template-columns:8.5rem 1fr 13rem;column-gap:1rem;align-items:center}
  .mount{grid-row:1/3}
  .track{grid-column:2}
  .spec-line{grid-column:2;grid-row:2}
  .suns{grid-column:3;grid-row:1/3}
  .versions .label-band,.versions .ruler{margin-left:9.5rem;margin-right:14rem}
}

/* engines: Victor small multiples (01) beside their sentences */
.beside{display:grid;gap:1rem}
@media (min-width:1000px){.beside{grid-template-columns:19rem 1fr;column-gap:2rem;align-items:start}.beside .prose{position:sticky;top:64px}}
.source-note{font-size:.9rem;color:var(--muted)}
.runs{display:grid;grid-template-columns:1fr;gap:18px}
@media (min-width:600px){.runs{grid-template-columns:1fr 1fr}}
.run{margin:0}
.run-head{display:flex;border:1px solid var(--ink);border-bottom:0;font-size:.85rem}
.run-head .cell{padding:4px 8px;border-right:1px solid var(--ink)}
.run-head .cell{white-space:nowrap}
.run-head .cell:nth-child(2){flex:1}
.run-head .cell:last-child{border-right:0}
.yr-band{background:var(--band);color:var(--band-ink);font-weight:700}
.dyno{display:block;width:100%;height:auto;border:1px solid var(--ink);background:var(--paper)}
.dyno .gm{stroke:var(--gm);stroke-width:.6}
.dyno .gM{stroke:var(--gM);stroke-width:.9}
.dyno .frame{fill:none;stroke:var(--ink);stroke-width:1}
.dyno .ax{font:400 10.5px "Victor Mono",monospace;fill:var(--muted)}
.dyno .ax.u{font-size:9.5px}
.dyno .pw{fill:none;stroke-width:2.2;stroke-linejoin:round}
.dyno .tq{fill:none;stroke-width:1.6;stroke-dasharray:6 3.5}
.dyno .band-edge{stroke-width:1.5;stroke-dasharray:2 2.5}
.r16 .pw,.r16 .tq{stroke:var(--run16)} .r18 .pw,.r18 .tq{stroke:var(--run18)}
.r16 .peak{fill:var(--run16)} .r18 .peak{fill:var(--run18)}
.dyno .pencil{fill:none;stroke:var(--note);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.dyno .leader{stroke:var(--note);stroke-width:.9}
.dyno .lbl{font:italic 400 11.5px "Victor Mono",monospace;fill:var(--note)}
.run figcaption{padding:6px 0 0}
.run .fig{display:block;font:600 .9rem "Victor Mono",monospace}
.run .note{display:block;margin-top:2px}

/* inspection checklist: real sequence, #permalink (05), dot severity (03) */
.sev-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:.4rem 0 1rem;font-size:.92rem}
.sev-legend .lg{color:var(--muted);margin-left:8px}
.sev{display:inline-flex;align-items:center;gap:6px}
.dots{position:relative;display:inline-flex;gap:3px;color:var(--ink)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor}
.sev-word{font:italic 400 .88rem "Victor Mono",monospace;color:var(--note)}
.sev.s3 .dots{color:var(--veto);margin:0 12px 0 10px}
.circ3{position:absolute;left:-13px;top:-10px;width:calc(100% + 26px);height:calc(100% + 20px);fill:none;stroke:var(--note);stroke-width:1.4;stroke-linecap:round;overflow:visible}
.sev.s3 .sev-word{color:var(--veto);font-weight:600}
.checklist{list-style:none;margin:0;padding:0;max-width:44rem}
.grp{margin-top:1.4rem}
.grp h3{font-size:1.05rem;padding-bottom:6px;border-bottom:1px solid var(--ink)}
.items{list-style:none;margin:0;padding:0}
.item{display:grid;grid-template-areas:"meta" "lab";border-bottom:1px solid var(--rule);padding:10px 0 12px}
.item:target{background-color:var(--field)}
.item .meta{grid-area:meta;display:flex;align-items:center;gap:12px;margin-bottom:4px}
.item-num{font:600 .85rem "Victor Mono",monospace;color:var(--muted);text-decoration:none;min-width:2.2em;padding:4px 0}
.item-num:hover{text-decoration:underline}
.item label{grid-area:lab;display:grid;grid-template-columns:32px 1fr;gap:10px;cursor:pointer;min-height:44px}
.tick{position:absolute;opacity:0;width:1px;height:1px}
.box{width:26px;height:26px;margin-top:2px;border:1.5px solid var(--ink);border-radius:3px;position:relative;background:var(--paper)}
.tick:checked+label .box::after{content:"";position:absolute;left:7px;top:1px;width:8px;height:15px;border:solid var(--note);border-width:0 2.5px 2.5px 0;transform:rotate(40deg)}
.tick:checked+label .txt{text-decoration:line-through;text-decoration-color:var(--note);text-decoration-thickness:1.5px;color:var(--muted)}
.tick:focus-visible+label .box{outline:2px solid var(--link);outline-offset:2px}
.txt{transition:color .12s}
.photo-row{list-style:none}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* prices + costs: range bands on a ruler (03), leaders (02) */
.pband{margin:1rem 0 .4rem;max-width:46rem}
.pband .label-band{min-height:0;padding-bottom:0}
.pband .label-band::after{content:"";position:absolute;left:75%;top:3px;bottom:0;border-left:1px solid var(--note)}
.pband .leader-label{display:block;position:relative;font-size:.78rem;line-height:1.3}
.pband .pr{width:75%;text-align:right;padding:0 8px 6px 0}
.pband .pl{margin-left:29.17%;width:42%;padding:0 0 8px 8px}
.pband .pl::after{content:"";position:absolute;left:0;top:3px;bottom:0;border-left:1px solid var(--note)}
.pruler{position:relative;height:38px;background-color:var(--field);border-bottom:1px solid var(--ink);
  background-image:repeating-linear-gradient(90deg,var(--gM) 0 1px,transparent 1px 8.333%)}
.pruler .core{position:absolute;top:8px;height:16px;background:var(--run18)}
.pruler .ticks span,.cruler .ticks span{position:absolute;bottom:-20px;transform:translateX(-50%);font:.72rem "Victor Mono",monospace;color:var(--muted)}
.javi{position:relative;margin-top:30px;padding-top:4px}
.javi::before{content:"";position:absolute;left:66.67%;top:-30px;height:34px;border-left:1px solid var(--note)}
.javi::after{content:"";position:absolute;left:calc(66.67% - 4px);top:-38px;width:7px;height:7px;border-radius:50%;background:var(--note)}
.javi .note{display:block;font-size:.8rem;max-width:30rem}
.pband figcaption{font-size:.88rem;color:var(--muted);margin-top:10px}
.costs{margin:1rem 0 0;max-width:52rem}
.cruler{position:relative;height:24px;margin-bottom:6px}
.cruler .ticks span{bottom:4px}
.cruler .unit{position:absolute;right:0;top:-14px;font:.72rem "Victor Mono",monospace;color:var(--muted)}
.costs ol{list-style:none;margin:0;padding:0}
.cost{display:grid;grid-template-columns:1fr 6.4rem;grid-template-areas:"name name" "track fig";gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--rule)}
.cost-name{grid-area:name}.cost .track{grid-area:track;align-self:center}.cost-fig{grid-area:fig;font:600 .9rem "Victor Mono",monospace;white-space:nowrap}
.cost-sub{color:var(--muted);font-size:.92rem}
.cost .core{background:var(--run16)}
.cost .track{background-image:repeating-linear-gradient(90deg,var(--gM) 0 1px,transparent 1px 14.2857%)}
@media (min-width:760px){.cost-sub{display:block;line-height:1.3}}
.total{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;border-top:2px solid var(--ink);padding-top:8px;margin-top:2px;font-weight:800}
.total .num{font-family:"Victor Mono",monospace;font-weight:600}
.total .tot{font-weight:800}
.fig-u{position:relative;display:inline-block}
.underline{position:absolute;left:0;right:0;bottom:-7px;width:100%;height:8px;fill:none;stroke:var(--note);stroke-width:1.6;stroke-linecap:round;overflow:visible}
.cost-loop,.price-loop{position:absolute;top:-7px;bottom:-7px;pointer-events:none}
.price-loop{top:1px;bottom:7px}
.loop{display:block;width:100%;height:100%;fill:none;stroke:var(--note);stroke-width:1.5;stroke-linecap:round;overflow:visible}
.cost.marked{grid-template-areas:"name name" "track fig" "note ."}
.cost-note{grid-area:note;position:relative;display:block;padding-top:16px}
.cost-note::before{content:"";position:absolute;left:var(--x);top:-20px;height:33px;border-left:1px solid var(--note)}
.cost-note .note{display:block;font-size:.8rem;max-width:30rem}
@media (min-width:760px){.cost.marked{grid-template-areas:"name track fig" ". note ."}}
.costs figcaption{font-size:.92rem;color:var(--muted);margin-top:6px;max-width:40rem}
@media (min-width:760px){
  .cost{grid-template-columns:17rem 1fr 7rem;grid-template-areas:"name track fig";align-items:center}
  .cruler{margin-left:calc(17rem + 12px);margin-right:calc(7rem + 12px)}
}
@media (max-width:759px){.cruler{margin-right:calc(6.4rem + 12px)}}

/* verdict, independence (04), sources */
.final .prose p:first-child{font-size:1.08em}
.preferred-source{display:inline-block;margin:.6rem 0 1.4rem;padding:10px 14px;border:1px solid var(--rule);border-radius:999px;text-decoration:none;color:var(--ink);font-weight:500;font-size:.95rem}
.disclosure-independence{max-width:40rem;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:12px 0 4px;margin-bottom:1.2rem}
.disclosure-independence h3,.guide-sources h3{font-size:1rem;margin-bottom:.4rem}
.guide-sources{max-width:40rem;font-size:.92rem;color:var(--muted)}
.guide-sources ul{margin:0;padding-left:1.1em}

/* related: Tomica black boxes (07) */
.related h2{font-size:1.35rem}
.tboxes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (min-width:900px){.tboxes{grid-template-columns:repeat(4,1fr)}}
.tbox{position:relative;display:flex;flex-direction:column;height:100%;min-height:190px;background:var(--box);color:var(--box-ink);text-decoration:none;padding:24px 12px 12px;outline:1px solid var(--box-line);outline-offset:-1px}
.tbox .flap{position:absolute;left:0;right:0;top:0;height:10px;background:var(--band)}
.tab{position:absolute;top:18px;right:10px;display:flex;height:22px}
.tab .tb{width:12px;background:var(--tab-a)} .tab .tr{width:12px;background:var(--tab-b)}
.tab .tn{background:var(--tab-n);color:#2b2a26;font:700 .78rem "Victor Mono",monospace;padding:2px 5px;line-height:18px}
.tbox .car{width:78%;max-width:140px;margin:28px 0 8px;fill:none;stroke:var(--box-ink);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;overflow:visible}
.tbox .car g{stroke-width:4.4}
.tname{font-weight:800;line-height:1.2;font-size:1rem}
.tspec{font:400 .86rem/1.3 "Alegreya Sans",sans-serif;color:var(--box-muted);margin-top:auto;padding-top:6px}
.tspec .tfig{font:600 .78rem "Victor Mono",monospace}
.tbox:hover .tname{text-decoration:underline}

/* footer */
.site-foot{border-top:1px solid var(--rule);max-width:64rem;margin:0 auto;padding:20px 16px 72px;font-size:.92rem;color:var(--muted)}
.site-foot nav{display:flex;flex-wrap:wrap;gap:4px 16px;margin:.4rem 0}
.site-foot nav a{color:var(--ink);padding:6px 0}
.copy{margin-top:.6rem}
@media (min-width:760px){.site-foot{padding:24px 32px 40px}}

.to-top{position:fixed;right:10px;bottom:10px;z-index:20;background:var(--paper);color:var(--ink);border:1px solid var(--ink);border-radius:999px;padding:7px 12px;text-decoration:none;font-size:.88rem;font-weight:500}
.photo-row .photo{max-width:34rem}

/* ---------- states (state-coverage gate, critic cycle 4) ---------- */
/* shared permalink arrival: "mira el punto 7" opens on that row, marked in pencil */
.item:target{background-color:var(--field);box-shadow:-16px 0 0 var(--field),16px 0 0 var(--field)}
.item:target .meta::after{content:"← este es el punto";font:italic .8rem "Victor Mono",monospace;color:var(--note)}
/* ticks kept on this phone */
.keep-note{max-width:44rem;margin:.2rem 0 .4rem;font-size:.95rem}
.keep-note .note{font-size:.8rem}
.reset{font:500 .9rem "Alegreya Sans",sans-serif;color:var(--ink);background:none;border:0;border-bottom:1px solid var(--muted);padding:6px 0;margin-left:4px;cursor:pointer}
/* every row ticked: the pencil sends you to the money */
.done-note{display:none;max-width:44rem;margin:1rem 0 0;padding-top:10px;border-top:1px solid var(--ink)}
.done-note .note{font-size:.88rem}
#revisar:has(.checklist .tick:checked):not(:has(.checklist .tick:not(:checked))) .done-note{display:block}
/* real photo inside its reserved slot: the hatch is the loading state; alt text is the error state */
.reserved-image img.photo-img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;padding:0;
  font:italic .85rem/1.4 "Victor Mono",monospace;color:var(--note)}
.reserved-image.has-img .ri-text{display:none}
.ri-loading{position:absolute;left:12px;bottom:10px;font-size:.85rem;color:var(--muted);background:var(--paper);padding:3px 6px}
/* AdSense: an unfilled unit is hidden; the reserved dotted field stays, so nothing jumps */
.ad-field ins.adsbygoogle[data-ad-status="unfilled"]{display:none!important}
/* related guides: empty template state */
.related-empty{max-width:40rem;border-top:1px solid var(--rule);padding-top:10px}
.related-empty .note{font-size:.88rem}
/* 404 */
.notfound h1{font-size:2.15rem;margin:.6rem 0 .6rem}
.notfound ul{padding-left:1.1em}
.img-failed .ri-loading{display:none}
.ri-failed{display:none;position:absolute;left:12px;right:12px;bottom:10px;font-size:.9rem;color:var(--ink);background:var(--paper);padding:6px 8px;outline:1px solid var(--muted)}
.img-failed .ri-failed{display:block}
.img-failed img.photo-img{opacity:0}
@media (max-width:400px){.vers-lead{white-space:normal;text-align:right}.versions .label-band{min-height:3.4rem}}

/* iter 2 — the hero is the visit map (Heim staircase label band: leftmost peak on the top row, so no leader crosses a name) */
.photo.has-marks .label-band.marks{position:relative;height:calc(var(--rows) * 1.75rem + 6px);padding:0;min-height:0}
.mark-label{position:absolute;left:var(--lx);top:calc(var(--row) * 1.75rem);margin-left:-5px;padding:2px 5px;line-height:1.35rem;
  font:italic .8rem "Victor Mono",monospace;color:var(--note);text-decoration:none;white-space:nowrap;border-bottom:1px dotted var(--note)}
.mark-label.r{transform:translateX(-100%);margin-left:5px}
.mark-label b{font-style:normal;font-weight:600;color:var(--ink)}
.mark-label:hover,.mark-label:focus-visible{background:var(--field);outline:1px solid var(--note)}
.ri-leader.mk{top:calc(-1 * (var(--up) * 1.75rem + 6px + 2px));height:calc(var(--up) * 1.75rem + 8px + var(--lh))}
.photo.hero figcaption b{font:600 .9rem "Victor Mono",monospace;color:var(--ink)}
.key-points .note{font-size:.8rem}
@media (min-width:1100px){
  .lead-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,27rem);gap:2.6rem;align-items:start}
  .lead-pair .guide-verdict{max-width:none}
  .lead-pair .photo.hero{margin:1.1rem 0 0}
}
.gs-top{font-family:"Victor Mono",monospace;padding-left:2px!important;padding-right:10px!important;color:var(--muted)!important}
.to-top{display:none}
@media (min-width:1180px){.to-top{display:inline-block}}

/* ===== iter 3 ===== */
:root{--rh:2.75rem}
/* 1. photo labels are 44px tap rows; the Heim staircase keeps its order, only the rows grow */
.photo.has-marks .label-band.marks{height:calc(var(--rows) * var(--rh) + 6px)}
.mark-label{top:calc(var(--row) * var(--rh));min-height:var(--rh);display:inline-flex;align-items:center;padding:0 6px;line-height:1.35rem;
  border-bottom:0;text-decoration:underline dotted var(--note);text-decoration-thickness:1px;text-underline-offset:4px}
.mark-label.r{margin-left:6px}
.ri-leader.mk{top:calc(-1 * (var(--up) * var(--rh) + 19px));height:calc(var(--up) * var(--rh) + 19px + var(--lh))}
/* 2. leader ends: an 18px ring with a paper halo inside and out, so it reads on a dark bonnet by day and on a white car at night */
.ri-leader{border-left-width:1.5px}
.ri-leader::after{left:-8.25px;bottom:-9px;width:18px;height:18px;border:2px solid var(--note);
  box-shadow:0 0 0 2.5px var(--paper),inset 0 0 0 2px var(--paper)}
/* back to the map from rows #1, #2, #8 */
.lead{scroll-margin-top:60px}
.item .meta{flex-wrap:wrap;row-gap:0}
.to-map{margin-left:auto;display:inline-flex;align-items:center;min-height:44px;padding:0 0 0 10px;font:italic .8rem "Victor Mono",monospace;
  color:var(--note);text-decoration:underline dotted;text-underline-offset:4px}
/* 3. compact map: the first phone screen shows where to look; the full figure keeps its place beside the verdict on desktop */
.map-compact{margin:1rem 0 0;max-width:46rem}
.mc-img{position:relative;aspect-ratio:12/5;overflow:hidden;background:var(--ph);outline:1px solid var(--muted);outline-offset:-1px}
.mc-img img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 48%;filter:grayscale(1)}
.mc-pin{position:absolute;left:var(--x);top:var(--y);width:44px;height:44px;margin:-22px 0 0 -22px;display:flex;align-items:center;justify-content:center;
  isolation:isolate;text-decoration:none;font:700 .85rem "Victor Mono",monospace;color:var(--ink)}
.mc-pin::before{content:"";position:absolute;inset:9px;z-index:-1;border-radius:50%;background:var(--paper);border:2px solid var(--note);box-shadow:0 0 0 1.5px var(--paper)}
.mc-pin:focus-visible{outline:2px solid var(--link);outline-offset:-4px;border-radius:50%}
.map-compact figcaption{margin-top:2px}
.mc-key{display:flex;flex-wrap:wrap;column-gap:6px}
.mc-key a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;font:italic .8rem "Victor Mono",monospace;color:var(--note);
  text-decoration:underline dotted;text-underline-offset:4px}
.mc-key a:first-child{padding-left:0}
.mc-key b{font-style:normal;font-weight:600;color:var(--ink)}
.mc-note{display:block;font-size:.88rem;line-height:1.4;color:var(--muted)}
@media (min-width:1100px){.map-compact{display:none}}
@media (max-width:1099px){.photo.hero{display:none}}
/* 4. the rust diagram (drawn, not photographed): ink for the car, pencil for the rust */
.reserved-image.drawing{background:var(--paper);background-image:none;filter:none;outline-color:var(--rule)}
.diagram{display:block;width:100%;height:100%}
.dg-body{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.dg-ground{stroke:var(--rule);stroke-width:1}
.dg-hatch path{stroke:var(--note);stroke-width:1.3}
.dg-rail{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-dasharray:5 3}
.dg-lip{fill:none;stroke:var(--note);stroke-width:2.6;stroke-dasharray:3 2.5;stroke-linecap:round}
.dg-pencil{fill:none;stroke:var(--note);stroke-width:1.3;stroke-linecap:round}
.dg-lens{fill:var(--field);stroke:var(--ink);stroke-width:1.4}
.dg-skin{fill:var(--gM);stroke:var(--ink);stroke-width:1.3}
.dg-lipline{fill:none;stroke:var(--ink);stroke-width:1.2}
.dg-bub circle{fill:var(--field);stroke:var(--ink);stroke-width:1.1}
.photo.drawn figcaption b{font:600 .9rem "Victor Mono",monospace;color:var(--ink)}
/* 5. 3.500 € gets its own row under the ruler, full width to the left of the 8.000 € leader */
.pband .pruler::after{content:"";position:absolute;left:calc(66.67% - 3.5px);bottom:1px;width:7px;height:7px;border-radius:50%;background:var(--note);z-index:2}
.plow{position:relative;margin-top:26px;padding-top:9px}
.plow::before{content:"";position:absolute;left:29.17%;top:-26px;height:33px;border-left:1px solid var(--note)}
.plow::after{content:"";position:absolute;left:66.67%;top:-2px;bottom:-12px;border-left:1px solid var(--note)}
.pband .plow .pl{display:block;margin:0;width:auto;max-width:62%;padding:0}
.pband .plow .pl::after{display:none}
.javi{margin-top:12px;padding-top:4px}
.javi::before,.javi::after{display:none}
/* the leader stops at the ring's rim; the ring is centred on the point (no line through the circle) */
.ri-leader{height:calc(var(--lh,42%) + 4px - 9px)}
.ri-leader.mk{height:calc(var(--up) * var(--rh) + 19px + var(--lh) - 9px)}
.ri-leader::after{bottom:-18px}
.mc-key b,.mark-label b{margin-right:.45em}
/* lupa: the arch edge thick, the inner lip thin, the bubbles solid along it */
.dg-skin{fill:none;stroke:var(--ink);stroke-width:4;stroke-linecap:round}
.dg-bub circle{fill:var(--ink);stroke:var(--field);stroke-width:1}
/* 3.500 €: the leader hooks onto the start of its label */
.plow::before{left:0;width:29.17%;top:-26px;height:31px;border-left:0;border-right:1px solid var(--note);border-bottom:1px solid var(--note)}
.plow{padding-top:10px}


/* ---- extra (sitio) ---- */
/* Hasta que AdSense esté aprobado, los huecos de publicidad no se muestran.
   Para activarlos: borrar esta regla y pegar el código de AdSense en cada .ad-field. */
.ad-slot{display:none}

/* portada */
.home .home-hero{padding:28px 0 8px;max-width:46rem}
.home .home-hero h1{font-size:clamp(2rem,6vw,3.1rem);line-height:1.08;margin:.2em 0 .35em;letter-spacing:-.01em}
.home .home-hero .dek{font-size:1.15rem;color:var(--muted);max-width:38rem;margin:0}
.home .hero-sheet{margin:22px 0 6px;max-width:46rem}
.home .hero-sheet svg{display:block;width:100%;height:auto}
.home .hero-sheet .pw{fill:none;stroke:var(--run18);stroke-width:2.2}
.home .hero-sheet .tq{fill:none;stroke:var(--run16);stroke-width:1.6;stroke-dasharray:6 5}
.home .hero-sheet .grid{fill:none;stroke:var(--gm);stroke-width:1}
.home .hero-sheet .ax{fill:none;stroke:var(--gM);stroke-width:1}
.home .hero-sheet text{font:italic 400 13px "Victor Mono",monospace;fill:var(--note)}
.home .hero-sheet .ring{fill:none;stroke:var(--note);stroke-width:1.3}
.home h2.sec{font-size:1.45rem;margin:38px 0 10px}
.home .sections{list-style:none;padding:0;margin:0;display:grid;gap:0;border-top:1px solid var(--rule)}
.home .sections li{border-bottom:1px solid var(--rule)}
.home .sections a{display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:14px 2px;color:var(--ink);text-decoration:none}
.home .sections b{font-size:1.1rem}
.home .sections span{grid-column:1/-1;color:var(--muted);font-size:1rem}
.home .sections a:hover b{text-decoration:underline;text-underline-offset:3px}
.home .how{max-width:40rem}
.home .how .sev-legend{margin:10px 0 14px}
.home .related{margin-top:0;padding-top:0}
@media (min-width:860px){
  .home .sections{grid-template-columns:1fr 1fr;column-gap:32px}
}

/* categorías y páginas simples */
.cat-head{padding-top:8px}
.cat-head h1{margin-bottom:.25em}
.cat-list{margin-top:8px}
.cat-empty{padding:18px 0}
.soon-note{margin:14px 0 0;color:var(--muted);font-size:1rem}

/* textos legales */
.legal{max-width:42rem;padding-bottom:32px}
.legal h2{font-size:1.25rem;margin:1.8em 0 .4em}
.legal p,.legal li{font-size:1.02rem}
.legal dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:12px 0 18px}
.legal dt{font-weight:500;color:var(--muted)}
.legal dd{margin:0}
@media (max-width:520px){.legal dl{grid-template-columns:1fr}.legal dd{margin-bottom:8px}}

/* créditos de foto */
.credit{font-size:.85rem;color:var(--muted)}
.credit a{color:inherit}

/* ===== Rediseño 21-10-2026: fotos en color, menú, tarjetas, bloques ===== */
.reserved-image,img.photo-img,.mc-img img{filter:none}

/* cabecera: menú en línea en ordenador, botón «Menú» en móvil */
header.site .site-in{display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative}
.site-nav.desk{display:none}
.menu summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;
  border:1px solid var(--rule);border-radius:999px;font-weight:500;font-size:1rem;color:var(--ink);user-select:none}
.menu summary::-webkit-details-marker{display:none}
.menu-ico{display:inline-grid;gap:3px}
.menu-ico i{display:block;width:16px;height:2px;background:var(--ink);border-radius:2px;transition:transform .15s}
.menu[open] summary{border-color:var(--ink)}
.menu[open] .menu-ico i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.menu[open] .menu-ico i:nth-child(2){opacity:0}
.menu[open] .menu-ico i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.menu-panel{position:absolute;left:0;right:0;top:100%;z-index:30;background:var(--paper);border-bottom:1px solid var(--rule);
  box-shadow:0 12px 24px rgba(0,0,0,.12);padding:6px 16px 14px;display:grid}
.menu-panel a{display:grid;gap:2px;padding:12px 2px;border-bottom:1px solid var(--rule);color:var(--ink);text-decoration:none}
.menu-panel a:last-child{border-bottom:0}
.menu-panel a span{color:var(--muted);font-size:.95rem}
.menu-panel a[aria-current] b::after{content:"  · estás aquí";font:italic 400 .8rem "Victor Mono",monospace;color:var(--note)}
@media (prefers-reduced-motion:reduce){.menu-ico i{transition:none}}
@media (min-width:760px){
  .menu{display:none}
  .site-nav.desk{display:flex;gap:26px;margin:0;padding:0;overflow:visible}
  .site-nav.desk a{padding:18px 0 16px;border-bottom:2px solid transparent;font-size:1rem}
  .site-nav.desk a:hover{border-bottom-color:var(--rule)}
  .site-nav.desk a[aria-current]{border-bottom-color:var(--run18);font-weight:500}
}

/* la barra fija de secciones de la guía ya no se usa */
.guide-sections{display:none}

/* tarjetas con foto */
.cards{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.card{display:flex;flex-direction:column;height:100%;background:var(--paper);border:1px solid var(--rule);border-radius:10px;
  overflow:hidden;color:var(--ink);text-decoration:none;transition:border-color .15s}
.card img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;background:var(--field)}
.card .c-kick{margin:14px 16px 0;font-size:.82rem;font-weight:500;color:var(--muted);text-transform:none}
.card .c-title{margin:4px 16px 0;font-weight:800;font-size:1.15rem;line-height:1.25}
.card .c-meta{margin:6px 16px 16px;color:var(--muted);font-size:.95rem}
.card:hover{border-color:var(--ink)}
.card:hover .c-title{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.related h2{margin-bottom:4px}

/* portada: bloques de sección sin foto */
.home .tiles{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:1fr}
.home .tiles a{display:grid;gap:4px;height:100%;padding:16px 18px;border:1px solid var(--rule);border-radius:10px;
  color:var(--ink);text-decoration:none;background:var(--field)}
.home .tiles b{font-size:1.12rem}
.home .tiles span{color:var(--muted);font-size:.98rem}
.home .tiles em{font:italic 400 .82rem "Victor Mono",monospace;color:var(--note);margin-top:6px}
.home .tiles a:hover{border-color:var(--ink)}
@media (min-width:560px){.home .tiles{grid-template-columns:1fr 1fr}}
@media (min-width:980px){.home .tiles{grid-template-columns:repeat(4,1fr)}}

/* tablas de datos */
.data-table{width:100%;border-collapse:collapse;margin:14px 0 10px;font-size:1rem}
.data-table caption{text-align:left;font-weight:500;margin-bottom:6px;color:var(--muted);font-size:.95rem}
.data-table th,.data-table td{padding:9px 8px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}
.data-table thead th{font-weight:500;color:var(--muted);font-size:.9rem;border-bottom:1px solid var(--ink)}
.data-table td{font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.data-table tbody th{font-weight:500}
@media (max-width:520px){.data-table{font-size:.92rem}.data-table th,.data-table td{padding:8px 5px}.data-table td{white-space:normal}}
