*{box-sizing:border-box}[hidden]{display:none!important}
:root{--bg:#f6f7f3;--ink:#1d2320;--muted:#4c5650;--line:#d9ddd5;--accent:#3f9a2f;--bar:#ffffff;--cell:#e9ece4}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font:17px/1.6 "Segoe UI",system-ui,-apple-system,sans-serif}
body{display:flex;flex-direction:column;min-height:100vh}
.bar{display:flex;align-items:center;gap:16px;padding:10px 20px;background:var(--bar);border-bottom:1px solid var(--line)}
.bar .home{font-weight:600;color:var(--ink);text-decoration:none}
.bar .home:hover{color:var(--accent)}
.lang{margin-inline-start:auto;display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}
.lang select{font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:8px;padding:5px 8px}
main{flex:1;width:100%;max-width:1000px;margin:0 auto;padding:64px 20px 56px}
.intro{max-width:680px;margin:0 auto}
h1{margin:0 0 24px;font-size:40px;line-height:1.15;font-weight:650;letter-spacing:-.01em}
h1::after{content:"";display:block;width:56px;height:4px;margin-top:16px;border-radius:2px;background:var(--accent)}
h2{margin:28px 0 8px;font-size:20px;font-weight:600}
p{margin:0 0 18px;color:var(--muted)}
main a,footer a{color:var(--accent)}

/* Matrix: corner + 3 weight headers on top, then 3 rows of speed header + 3 cells */
.matrix-section{margin-top:56px}
.matrix-section h2{font-size:26px;margin:0 0 4px}
.hint{font-size:15px;margin-bottom:22px}
.matrix{display:grid;grid-template-columns:minmax(120px,190px) repeat(3,minmax(0,1fr));gap:10px}
.colhead,.rowhead{display:flex;flex-direction:column;justify-content:flex-end;line-height:1.3}
.rowhead{justify-content:center;padding-inline-end:6px}
.colhead strong,.rowhead strong{font-size:16px;font-weight:600}
.colhead small,.rowhead small{font-size:13px;color:var(--muted)}
.cell{position:relative;aspect-ratio:4/3;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--cell);cursor:pointer;font:inherit;color:var(--muted);transition:transform .15s ease,box-shadow .15s ease}
.cell img{width:100%;height:100%;object-fit:cover;display:block}
.cell span{display:flex;align-items:center;justify-content:center;height:100%;padding:8px;font-size:13px;text-align:center}
.cell:hover,.cell:focus-visible{transform:translateY(-2px);box-shadow:0 6px 18px rgba(29,35,32,.14);outline:none;border-color:var(--accent)}

/* Category window */
dialog{width:min(860px,calc(100% - 24px));max-height:calc(100vh - 48px);padding:0;border:0;border-radius:14px;background:var(--bg);color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.3)}
dialog::backdrop{background:rgba(20,26,22,.55)}
.dialog-head{position:sticky;top:0;display:flex;align-items:flex-start;gap:16px;padding:18px 22px;background:var(--bar);border-bottom:1px solid var(--line)}
.dialog-head h2{margin:0;font-size:19px;line-height:1.45}
.dialog-head h2 small{font-size:14px;font-weight:400;color:var(--muted)}
.close{margin-inline-start:auto;flex:none;font:inherit;font-size:14px;padding:6px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer}
.close:hover{border-color:var(--accent)}
.bikes{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;padding:22px}
.bike img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block}
.bike h3{margin:10px 0 4px;font-size:17px}
.bike p{font-size:15px;margin:0}
.none{grid-column:1/-1;margin:8px 0}

footer{padding:18px 20px;border-top:1px solid var(--line);font-size:14px;color:var(--muted);text-align:center}
footer span[aria-hidden]{margin:0 6px}
@media (max-width:640px){
  main{padding-top:40px}h1{font-size:32px}.bar{padding:8px 14px}.lang>span{display:none}
  .matrix{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .corner{display:none}
  .rowhead{grid-column:1/-1;flex-direction:row;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:10px}
  .colhead strong{font-size:14px}.colhead small{font-size:12px}
}
@media (prefers-reduced-motion:reduce){.cell{transition:none}}

/* Motors / Batteries buttons and their galleries */
.parts{margin-top:48px}
.parts h2{font-size:26px;margin:0 0 14px}
.part-buttons{display:flex;flex-wrap:wrap;gap:14px}
.part-button{display:flex;align-items:center;gap:12px;padding:8px 18px 8px 8px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.part-button img{width:64px;height:48px;object-fit:cover;border-radius:8px;background:var(--cell)}
.part-button img:not([src]){visibility:hidden}
.part-button:hover,.part-button:focus-visible{transform:translateY(-2px);box-shadow:0 6px 18px rgba(29,35,32,.14);border-color:var(--accent);outline:none}
.part{margin:0}
.part img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block}
.part figcaption{margin-top:6px;font-size:14px;color:var(--muted)}
@media (prefers-reduced-motion:reduce){.part-button{transition:none}}

/* Bike names on the matrix cells, bike cards in the window */
.cell .names{position:absolute;left:0;right:0;bottom:0;padding:18px 10px 7px;font-style:normal;font-size:13px;line-height:1.3;color:#fff;text-align:start;background:linear-gradient(transparent,rgba(0,0,0,.72))}
.cell.empty .names{color:var(--ink);background:none}
.bikes:not(.gallery){grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.bike .main{display:block}
.bike .main.nophoto{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;border-radius:10px;background:var(--cell);color:var(--muted);font-size:14px}
.thumbs{display:flex;gap:6px;margin-top:8px;overflow-x:auto;padding-bottom:4px}
.thumbs button{flex:none;padding:0;border:2px solid transparent;border-radius:6px;background:none;cursor:pointer;line-height:0}
.thumbs button[aria-current]{border-color:var(--accent)}
.thumbs img{width:56px;height:42px;object-fit:cover;border-radius:4px}
.bike dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;margin:8px 0 0;font-size:14px}
.bike dt{color:var(--muted)}
.bike dd{margin:0;color:var(--ink);overflow-wrap:anywhere}
.bike{min-width:0}
@media (max-width:640px){.bikes:not(.gallery){grid-template-columns:minmax(0,1fr)}.bikes{padding:16px}.bike dl{grid-template-columns:minmax(0,1fr);gap:0}.bike dt{margin-top:6px;font-size:13px}.cell .names{font-size:11px;padding:12px 6px 5px}}

/* Visitor counter, bottom right corner like on the other nobodymakesit sites */
.visits{position:fixed;inset-inline-end:8px;bottom:8px;z-index:50;padding:2px 9px;border:1px solid var(--line);border-radius:10px;background:#fff;opacity:.92;color:var(--muted);font-size:12px;line-height:18px;pointer-events:none;font-variant-numeric:tabular-nums}
