:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--text:#16181d;--muted:#667085;--border:#e4e7ec;--border-strong:#d0d5dd;--surface:#f4f5f7;--row-alt:#f9fafb;--accent:#1f6feb;--accent-hover:#1a5fd0;--accent-bg:#eef4ff;--on-accent:#fff;--danger:#b42318;--warning:#b54708;--ok:#067647;--ok-bg:#ecfdf3;--shadow:0 1px 2px #1018280d;--shadow-hover:0 4px 14px #10182814;--focus-ring:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);--radius:12px;--radius-sm:10px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#131417;--text:#ececee;--muted:#9aa0aa;--border:#2a2d33;--border-strong:#3a3e46;--surface:#1c1e22;--row-alt:#18191d;--accent:#6ea8fe;--accent-hover:#8fbcff;--accent-bg:#1a2740;--on-accent:#0b1220;--shadow:0 1px 2px #0006;--shadow-hover:0 4px 14px #00000080;--danger:#f97066;--warning:#fdb022;--ok:#47cd89;--ok-bg:#0f2a1d}body{-webkit-tap-highlight-color:transparent;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}h1,h2{letter-spacing:-.01em;line-height:1.25}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:where(input:not([type=checkbox],[type=radio],[type=hidden]),select,textarea){box-sizing:border-box;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background-color:var(--bg);min-height:40px;color:var(--text);font:inherit;padding:8px 12px;transition:border-color .15s,box-shadow .15s}:where(input,select,textarea):focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}:where(input,textarea)::placeholder{color:var(--muted);opacity:.7}:where(select){appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%238a919c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}:where(input[type=checkbox]){width:18px;height:18px;accent-color:var(--accent);cursor:pointer;margin:0}main{max-width:1200px;margin:0 auto;padding:32px 16px}h1{letter-spacing:-.02em;margin:0 0 8px;font-size:2rem}.subtitle{color:var(--muted);margin:0 0 24px}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:8px 20px;margin-bottom:16px;display:flex}.tab-group{flex-direction:column;display:flex}.tab-group-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:0 14px;font-size:.75rem}.tab-group-buttons{flex-wrap:wrap;display:flex}.tab{color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;transition:color .15s,border-color .15s}.tab:hover{color:var(--text)}.tab-active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.tab-count{color:var(--muted);font-size:.85em}.bike-types{margin-bottom:16px}.bike-types .tab-group-title{margin-bottom:6px;padding:0;display:block}.bike-types .hint{margin:8px 0 0}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}.parts-table{font-size:.9rem}.parts-table .pick{padding:6px 10px}th,td{border-bottom:1px solid var(--border);text-align:left;padding:10px 6px}.pick{white-space:nowrap}th{color:var(--muted);white-space:normal;vertical-align:bottom;font-size:.85rem;font-weight:500}tbody tr:nth-child(2n){background:var(--row-alt)}.build{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:24px;padding:18px 20px}.build-header{justify-content:space-between;align-items:baseline;display:flex}.build h2{margin:0 0 12px;font-size:1.1rem}.build-list{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));column-gap:24px;margin:0;padding:0;list-style:none;display:grid}@media (max-width:480px){.build-list{grid-template-columns:1fr}}.build-count{color:var(--muted);font-weight:400}.build-footer{flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-top:12px;display:flex}.build-list li{gap:12px;padding:4px 0;display:flex}.build-title{color:var(--muted);flex:0 0 150px}.build-empty{color:var(--muted)}.remove{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-left:8px;font-size:1.1em}.remove:hover{color:var(--danger)}.link-button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.link-button:hover{text-underline-offset:3px;text-decoration:underline}.pick{border-radius:var(--radius-sm);background:var(--accent-bg);min-height:36px;color:var(--accent);font:inherit;cursor:pointer;border:1px solid #0000;padding:6px 14px;font-weight:500;transition:background-color .15s,color .15s}.pick:hover{background:color-mix(in srgb, var(--accent) 18%, var(--bg))}a.pick{box-sizing:border-box;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.pick-selected{background:var(--accent);color:var(--on-accent)}.pick-selected:hover{background:var(--accent-hover)}.pick-danger{background:color-mix(in srgb, var(--danger) 9%, var(--bg));color:var(--danger)}.pick-danger:hover{background:color-mix(in srgb, var(--danger) 16%, var(--bg))}.undo{justify-content:space-between;align-items:center;gap:12px;display:flex}.pick:disabled,.pick:disabled:hover{background:var(--surface);color:var(--muted);cursor:not-allowed}tbody tr.row-selected{background:var(--accent-bg)}tr.row-blocked td{color:var(--muted)}td.conflicts{white-space:normal;color:var(--muted);font-size:.9em}td.conflicts div{min-width:180px}.warning,td.conflicts .warning{color:var(--warning)}tr.row-blocked td.conflicts{color:var(--danger)}a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent)}a:hover{text-decoration-color:currentColor}.site-header{z-index:30;border-bottom:1px solid var(--border);background:var(--bg);align-items:center;gap:4px;padding:10px max(16px,50% - 600px);display:flex;position:sticky;top:0}.site-header a{border-radius:var(--radius-sm);color:var(--muted);align-items:center;gap:6px;padding:8px 12px;text-decoration:none;transition:color .15s,background-color .15s;display:inline-flex}.site-header a:hover{color:var(--text);background:var(--surface)}.site-header a.nav-active,.site-header a.nav-active:hover{color:var(--accent);background:var(--accent-bg);font-weight:600}.site-header a.nav-achievements{margin-left:auto;padding:8px}.site-header a.nav-favorites{padding:8px;position:relative}.site-header a.nav-settings{padding:8px}.nav-badge{border:2px solid var(--bg);box-sizing:content-box;background:var(--danger);color:#fff;text-align:center;border-radius:10px;min-width:16px;height:16px;padding:0 4px;font-size:.65rem;font-weight:700;line-height:16px;position:absolute;top:-2px;right:-6px}.site-header a.brand,.site-header a.brand:hover{color:var(--text);background:0 0;margin-right:16px;padding-left:0;font-size:1.15rem;font-weight:700}@media (min-width:641px) and (max-width:960px){.site-header a.nav-link{padding:8px 9px}.site-header a.nav-link svg{display:none}.site-header a.brand{margin-right:8px}}@media (min-width:641px) and (max-width:800px){.brand-name,.nav-title-long{display:none}}.site-header a.nav-link{white-space:nowrap}.nav-title-short{display:none}@media (min-width:641px) and (max-width:800px){.nav-title-short{display:inline}}.brand-icon{background:var(--text);border-radius:8px;padding:2px;display:flex}.tab-bar{display:none}.settings{gap:24px;max-width:640px;display:grid}.setting h2{margin:0 0 4px;font-size:1.05rem}.setting p{color:var(--muted);margin:0 0 10px;font-size:.9rem}.choices{flex-wrap:wrap;gap:8px;display:flex}.choices button{border:1px solid var(--border-strong);background:var(--bg);min-height:38px;color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:7px 16px;transition:border-color .15s,background-color .15s}.choices button:hover{border-color:var(--muted)}.choices button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-bg);color:var(--accent);cursor:default;font-weight:600}.setting-note{color:var(--muted);font-size:.9rem}.recommended{color:var(--accent);font-weight:600}.quiz{max-width:640px}.quiz h2{margin:0 0 12px}.quiz-progress{color:var(--muted);margin:0 0 8px;font-size:.9rem}.quiz-options{gap:10px;display:grid}.quiz-option{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);box-shadow:var(--shadow);color:var(--text);font:inherit;text-align:left;cursor:pointer;gap:2px;padding:14px 18px;transition:border-color .15s,background-color .15s,box-shadow .15s;display:grid}.quiz-option:hover{border-color:var(--accent);background:var(--accent-bg);box-shadow:var(--shadow-hover)}.quiz-option span{color:var(--muted);font-size:.9rem}.quiz-height{gap:12px;display:grid}.quiz-height .subtitle{margin:0}.quiz-back{margin-top:20px;padding:0}.quiz-random{color:var(--muted);margin:16px 0 0}.site-footer{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px 24px;max-width:1200px;margin:0 auto;padding:16px 16px 32px;font-size:.9rem;display:flex}.site-footer a{color:var(--muted)}.feedback fieldset{border:none;margin:0;padding:0}.feedback legend{margin-bottom:8px;padding:0;font-size:1.05rem;font-weight:700}.feedback textarea,.feedback input[name=contact]{width:100%;padding:10px 12px}.feedback textarea{resize:vertical}.feedback .setting h2{margin-bottom:8px}.choice-radio input{opacity:0;position:absolute}.choice-radio span{border:1px solid var(--border-strong);cursor:pointer;border-radius:999px;padding:7px 16px;transition:border-color .15s,background-color .15s;display:inline-block}.choice-radio span:hover{border-color:var(--muted)}.choice-radio input:checked+span{border-color:var(--accent);background:var(--accent-bg);color:var(--accent);font-weight:600}.choice-radio input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.trap{width:1px;height:1px;position:absolute;left:-9999px}.settings-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.settings-row input{width:120px}.hint{border-radius:var(--radius);background:var(--surface);margin:0 0 16px;padding:12px 16px;font-size:.9rem}.acc-summary{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:baseline;gap:8px 20px;margin-bottom:20px;padding:14px 18px;display:flex}.acc-summary a{margin-left:auto}.section-title{margin:32px 0 12px;font-size:1.3rem}.summary-actions{flex-wrap:wrap;gap:8px;display:flex}.summary-actions .pick{padding:8px 14px}.share-fallback{color:var(--muted);flex-direction:column;gap:4px;margin-top:12px;font-size:.9rem;display:flex}.share-fallback input{width:100%}.summary-total{color:var(--text);margin-top:4px}.summary-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.summary-header .subtitle{margin:0}.part-group{margin-bottom:24px}.part-group-title{border-bottom:1px solid var(--border);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 10px;padding-bottom:6px;font-size:.8rem;font-weight:600;display:flex}.part-group-meta{letter-spacing:normal;text-transform:none;font-size:.85rem;font-weight:400}.part-group-done{color:var(--ok)}.cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.card{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card-ordered{border-color:var(--ok);background:var(--ok-bg)}.card-ordered dl div{border-bottom-color:color-mix(in srgb, var(--ok) 25%, transparent)}.card-actions{flex-shrink:0;align-items:baseline;gap:12px;display:flex}.ordered-check{color:var(--muted);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.ordered-check input{accent-color:var(--ok)}.card-ordered .ordered-check,.ordered-mark,.summary-ordered{color:var(--ok);font-weight:600}.card-empty{border-style:dashed;border-color:var(--border-strong);box-shadow:none}.card-header{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.card h2{margin:0 0 12px;font-size:1.1rem}.card dl{margin:0}.card dl div{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:4px 0;display:flex}.card dt{color:var(--muted)}.card dd{text-align:right;margin:0}.shops{color:var(--muted);flex-wrap:wrap;gap:4px 12px;margin:12px 0 0;display:flex}.filters{flex-wrap:wrap;align-items:flex-end;gap:8px 16px;margin-bottom:8px;display:flex}.filter{color:var(--muted);flex-direction:column;gap:2px;font-size:.85rem;display:flex}.filter select,.filter input{min-height:36px;padding-top:6px;padding-bottom:6px;font-size:.9rem}.filter-search input{width:240px}.filter-range{gap:6px;display:flex}.filter-range input{width:90px}.catalog-filters{flex-wrap:wrap;align-items:center;gap:8px 20px;margin-bottom:16px;font-size:.9rem;display:flex}.catalog-filters label{align-items:center;gap:6px;display:flex}.catalog-filters input[type=number]{width:120px}.filter-check{align-items:center;gap:6px;font-size:.9rem;display:flex}.height-input{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:12px;font-size:.9rem;display:flex}.height-input input{width:170px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:8px;display:flex}.shown{color:var(--muted);font-size:.85rem}.filters-toggle{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);min-height:36px;color:var(--text);font:inherit;cursor:pointer;padding:6px 14px;display:none}.next-button{border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);font:inherit;cursor:pointer;border:none;margin:20px 0 0 auto;padding:11px 20px;font-weight:600;transition:background-color .15s;display:block}.next-button:hover{background:var(--accent-hover)}.transfer{border:1px solid var(--border);border-radius:var(--radius);max-width:640px;box-shadow:var(--shadow);margin:24px 0;padding:18px 20px}.transfer h2{margin:0 0 10px;font-size:1.05rem}.transfer p{margin:0}.transfer-row{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:10px;display:flex}.transfer-row input{letter-spacing:.08em;text-transform:uppercase;width:9.5em;font-size:1rem}.transfer .setting-note{margin-bottom:6px}.transfer-code{letter-spacing:.12em;font-size:1.5rem}.transfer-error{color:var(--danger)}.transfer-ok{color:var(--accent)}.install-banner{border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:var(--radius);background:var(--accent-bg);justify-content:space-between;align-items:flex-start;gap:12px;margin:0 0 20px;padding:14px 16px;display:flex}.install-banner .pick{margin-top:8px}.install-steps{color:var(--muted);margin:6px 0 0}.bike-preview{max-width:640px;margin:0 0 24px}.bike-preview svg{width:100%;height:auto;display:block}.bike-preview figcaption{color:var(--muted);font-size:.85rem}.part-guide{border-radius:var(--radius);background:var(--surface);align-items:flex-start;gap:14px;max-width:820px;margin:0 0 16px;padding:14px 16px;line-height:1.45;display:flex}.part-guide p{margin:0}.part-guide summary{color:var(--accent);cursor:pointer;margin-top:6px}.part-guide details p{color:var(--muted);margin-top:6px}.part-picture{flex-shrink:0}td.conflicts .about-inline{min-width:170px;max-width:200px;color:var(--muted);white-space:normal;align-items:flex-start;gap:8px;margin-top:4px;font-size:.85rem;line-height:1.35;display:flex}.cell-about{display:none}.card-about{color:var(--muted);align-items:center;gap:12px;margin:0 0 10px;display:flex}.card-about p{margin:0}.mobile-bar{display:none}.card-warning{background:color-mix(in srgb, var(--danger) 8%, var(--bg));color:var(--danger);border-radius:8px;margin-bottom:12px;padding:8px 12px;font-size:.9em}.disclaimer{color:var(--muted);margin-top:24px;font-size:.85rem}.cell-label{display:none}.term-word{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:color-mix(in srgb, currentColor 55%, transparent);text-decoration-color:color-mix(in srgb, currentColor 55%, transparent);text-underline-offset:3px;cursor:help;text-decoration-thickness:1px}.term-word:hover,.term-word[aria-expanded=true]{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.term-pop{pointer-events:none;z-index:50;box-sizing:border-box;border-radius:var(--radius-sm);background:var(--text);width:max-content;max-width:min(300px,100vw - 16px);box-shadow:var(--shadow-hover);color:var(--bg);text-align:left;text-transform:none;letter-spacing:normal;white-space:normal;padding:10px 12px;font-size:.875rem;font-weight:400;line-height:1.45;position:fixed;top:0;left:0}.as-cards{overflow:visible}.as-cards .parts-table,.as-cards .parts-table td{display:block}.as-cards .parts-table thead{display:none}.as-cards .parts-table tbody{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;display:grid}.as-cards .parts-table tr{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;padding:14px;display:flex}.as-cards .parts-table tbody tr:nth-child(2n){background:0 0}.as-cards .parts-table tbody tr.row-selected{border-color:var(--accent);background:var(--accent-bg)}.as-cards .parts-table td{white-space:normal;text-align:right;border:none;justify-content:space-between;gap:12px;padding:3px 0;display:flex}.as-cards .parts-table .cell-label{color:var(--muted);text-align:left;display:block}.as-cards .parts-table td.cell-about{color:var(--muted);text-align:left;order:-1;justify-content:flex-start;align-items:center;padding:0 0 8px}.as-cards td.conflicts .about-inline{display:none}.as-cards .parts-table td.conflicts{text-align:left;order:-1;min-width:0;padding:0 0 6px;display:block}.as-cards td.conflicts div{min-width:0}.as-cards .parts-table td.conflicts-ok{display:none}.as-cards .parts-table td.cell-pick{order:1;margin-top:auto;padding-top:10px}.as-cards .parts-table .pick{width:100%;padding:8px}@media (max-width:640px){:root{--tab-bar-height:56px}.site-footer{padding-bottom:calc(150px + env(safe-area-inset-bottom))}h1{font-size:1.6rem}.build,.acc-summary{display:none}.site-header{padding:calc(6px + env(safe-area-inset-top)) 16px 6px;position:static}.site-header a.nav-link{display:none}.tab-bar{z-index:30;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--border);background:var(--bg);-webkit-user-select:none;user-select:none;grid-template-columns:repeat(6,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab-bar a{height:var(--tab-bar-height);color:var(--muted);white-space:nowrap;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:0;font-size:clamp(.56rem,2.65vw,.7rem);text-decoration:none;display:flex}.tab-bar a span{text-overflow:ellipsis;max-width:100%;overflow:hidden}.tab-bar a.tab-bar-active{color:var(--accent);font-weight:600}.height-input input{font-size:1rem}.mobile-bar{left:0;right:0;bottom:calc(var(--tab-bar-height) + 1px + env(safe-area-inset-bottom));z-index:20;border-top:1px solid var(--border);background:var(--bg);color:var(--text);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;text-decoration:none;display:flex;position:fixed}.mobile-bar-budget{color:var(--muted)}main{overflow-x:clip}.tabs{flex-flow:column;gap:8px;padding-bottom:12px}.tab-group-title{margin-bottom:4px;padding:0;font-size:.7rem}.tab-group-buttons{gap:5px}.bike-types .choices{scrollbar-width:none;flex-wrap:nowrap;margin:0 -16px;padding:0 16px;overflow-x:auto}.bike-types .choices::-webkit-scrollbar{display:none}.bike-types .choices button{white-space:nowrap}.tab{border:1px solid var(--border-strong);border-radius:999px;margin-bottom:0;padding:4px 10px;font-size:.86rem}.tab-active{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.tab-active .tab-count{color:var(--accent)}.filters-toggle{display:inline-block}.filters{display:none}.filters.filters-open{border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex}.filter{flex:140px}.filter select,.filter input{width:100%;min-height:40px;font-size:1rem}.filter-search{flex-basis:100%}.filter-range input{width:50%}.catalog-filters input[type=number],.catalog-filters select{font-size:1rem}.shown{width:100%}.table-wrap{overflow:visible}.parts-table,.parts-table tbody,.parts-table td{display:block}.parts-table thead{display:none}.parts-table tr{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;margin-bottom:12px;padding:14px;display:flex}.parts-table tbody tr:nth-child(2n){background:0 0}.parts-table tbody tr.row-selected{border-color:var(--accent);background:var(--accent-bg)}.parts-table td{white-space:normal;text-align:right;border:none;justify-content:space-between;gap:12px;padding:4px 0;display:flex}.parts-table .cell-label{color:var(--muted);text-align:left;display:block}.parts-table td.cell-about{color:var(--muted);text-align:left;order:-1;justify-content:flex-start;align-items:center;padding:0 0 8px;font-size:.9rem;display:flex}td.conflicts .about-inline{display:none}.parts-table td.conflicts{text-align:left;order:-1;min-width:0;padding:0 0 6px;display:block}.parts-table td.conflicts-ok{display:none}.parts-table td.cell-pick{order:1;padding-top:10px}.parts-table .pick{width:100%;padding:10px}.next-button{width:100%;padding:14px}.remove{padding:4px 8px}.summary-actions{width:100%}.summary-actions .pick{flex:100%;padding:12px}}.assembly-tools ul{grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:8px 24px;margin:0 0 8px;padding:0;list-style:none;display:grid}.assembly-tools li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.assembly-steps{gap:14px;max-width:860px;margin:0 0 24px;padding:0;list-style:none;display:grid}.assembly-step{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;transition:border-color .15s,background-color .15s}.assembly-step-done{border-color:color-mix(in srgb, var(--ok) 40%, var(--border));background:var(--ok-bg)}.assembly-step-header{align-items:center;gap:12px;display:flex}.assembly-step-header h3{flex:1;margin:0;font-size:1.05rem}.assembly-number{background:var(--accent-bg);width:30px;height:30px;color:var(--accent);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.assembly-step-done .assembly-number{background:var(--ok);color:var(--bg)}.assembly-general{white-space:nowrap;vertical-align:middle;background:var(--surface);color:var(--muted);border-radius:999px;margin-left:8px;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-block}.assembly-how{margin:10px 0;padding-left:20px}.assembly-how li{margin-bottom:4px}.assembly-torque{border-radius:var(--radius-sm);background:var(--surface);gap:2px;margin:0 0 10px;padding:10px 12px;font-size:.9rem;display:grid}.assembly-torque div{justify-content:space-between;gap:12px;display:flex}.assembly-torque dt{color:var(--muted)}.assembly-torque dd{text-align:right;margin:0;font-weight:600}.assembly-step .card-warning{margin:0 0 10px}.assembly-step .setting-note{margin:0}@media (max-width:640px){.assembly-tools li{flex-wrap:wrap}.assembly-step{padding:14px}}.garage-list{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:16px;margin-bottom:24px;display:grid}.garage-card{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:4px;padding:14px 16px 16px;transition:border-color .15s,box-shadow .15s;animation:.35s ease-out both fade-up;display:flex}.garage-card:hover{box-shadow:var(--shadow-hover)}.garage-card-open{border-color:var(--accent);background:var(--accent-bg)}.garage-card .bike-preview{margin:0 0 4px}.garage-card h2{overflow-wrap:anywhere;margin:0;font-size:1.1rem}.garage-meta{color:var(--muted);margin:0 0 8px;font-size:.9rem}.garage-open-mark{color:var(--accent);font-weight:500}.garage-actions{flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:auto;display:flex}.garage-delete:hover{color:var(--danger)}.garage-rename{gap:8px;display:flex}.garage-rename input{flex:1;min-width:0}.garage-new{flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:16px;display:flex}.build-switcher{flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 16px;display:flex}.build-switcher label{color:var(--muted);align-items:center;gap:8px;display:flex}.build-switcher select{max-width:260px;color:var(--text);font-weight:600}.garage-current{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.garage-empty{max-width:640px}.garage-saved{background:var(--ok-bg);color:var(--ok);text-decoration:none}.garage-saved:hover{background:var(--ok-bg);text-decoration:underline}.achievements-summary{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:20px;display:flex}.achievements-bar{background:var(--surface);border-radius:4px;flex:1;min-width:120px;max-width:320px;height:8px;display:inline-block;overflow:hidden}.achievements-bar>span{background:var(--ok);border-radius:4px;height:100%;display:block}.achievements{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:12px;margin-bottom:24px;display:grid}.achievement{border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);gap:14px;padding:14px 16px;display:flex}.achievement h3{margin:0 0 4px;font-size:1rem}.achievement-group{margin-bottom:8px}.achievement p{margin:0;font-size:.9rem}.achievement-emoji{filter:grayscale();opacity:.45;font-size:2rem;line-height:1}.achievement-earned{border-color:color-mix(in srgb, var(--ok) 45%, var(--border));background:var(--ok-bg);color:var(--text)}.achievement-earned .achievement-emoji{filter:none;opacity:1}.achievement-date{color:var(--ok);font-weight:500;margin-top:6px!important}.achievement-progress{align-items:center;gap:8px;display:flex;margin-top:8px!important;font-size:.85rem!important}.achievement-toast{z-index:40;border:1px solid color-mix(in srgb, var(--ok) 45%, var(--border));border-radius:var(--radius);background:var(--bg);width:max-content;max-width:calc(100% - 32px);color:var(--text);box-shadow:var(--shadow-hover);align-items:center;gap:12px;padding:12px 12px 12px 16px;font-size:.9rem;animation:.35s ease-out both toast-in;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.achievement-toast-emoji{font-size:1.8rem;line-height:1}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,16px)}}@media (max-width:640px){.achievement-toast{bottom:calc(var(--tab-bar-height) + 64px + env(safe-area-inset-bottom))}}.fav-button{color:var(--muted);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin-top:6px;padding:0;font-size:.85rem;display:flex}.fav-button:hover,.fav-on{color:var(--danger)}.garage-favorites{margin-left:auto}.fav-group{margin-bottom:24px}.garage-new .subtitle{margin:0}.compare-check{color:var(--muted);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;margin-top:6px;font-size:.85rem;display:flex}.garage-actions .compare-check{margin:0 0 0 auto}.compare{border:1px solid var(--accent);border-radius:var(--radius);background:var(--bg);box-shadow:var(--shadow);margin-bottom:20px;padding:14px 16px;animation:.35s ease-out both fade-up}.compare-header{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:12px;display:flex}.compare-header h3{margin:0;font-size:1.05rem}.compare-header .link-button,.compare-header a{margin-left:auto}.compare-wrap{overflow-x:auto}.compare-table{font-size:.9rem}.compare-table td,.compare-table thead th{vertical-align:top;min-width:150px}.compare-builds td,.compare-builds thead th{min-width:190px}.compare-table thead th{vertical-align:bottom}.compare-table th[scope=row]{z-index:1;background:var(--bg);min-width:110px;max-width:160px;color:var(--muted);vertical-align:top;font-weight:500;position:sticky;left:0}.compare-table tbody tr:nth-child(2n) th[scope=row]{background:var(--row-alt)}.compare-corner{z-index:1;background:var(--bg);position:sticky;left:0}.compare-table tr.compare-diff td,.compare-table tbody tr.compare-diff th[scope=row]{background:var(--accent-bg)}.compare-table tr.compare-diff th[scope=row]{box-shadow:inset 3px 0 0 var(--accent);color:var(--text)}.compare-part{justify-content:space-between;align-items:flex-start;display:flex}.compare-about{color:var(--muted);font-size:.85rem}.compare-best,.compare-fits{color:var(--ok);font-size:.85rem;font-weight:500}.compare-conflict{color:var(--danger);font-size:.85rem}.compare-actions td,.compare-actions th{border-bottom:none}.compare-price{color:var(--muted);margin-top:2px;font-size:.85rem}.compare-builds thead th .bike-preview{margin:0 0 6px}.compare-build-name{color:var(--text);overflow-wrap:anywhere;margin-bottom:8px;font-size:1rem;font-weight:600}.compare-table tr.compare-group th{background:var(--bg);color:var(--text);padding-top:18px;font-size:.95rem;font-weight:600}.compare-list{margin:0;padding-left:18px}.compare-only{color:var(--accent);font-weight:500}.compare-bar{z-index:15;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-bg);box-shadow:var(--shadow-hover);flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:16px;padding:10px 16px;display:flex;position:sticky;bottom:12px}.compare-jump{z-index:20;background:var(--accent);color:var(--on-accent);font:inherit;box-shadow:var(--shadow-hover);cursor:pointer;border:none;border-radius:999px;padding:10px 14px;font-size:.9rem;font-weight:600;position:fixed;bottom:16px;right:16px}@media (max-width:640px){.compare{padding:12px 6px}.compare-table .pick{white-space:normal;padding:6px 8px}.compare-jump{bottom:calc(var(--tab-bar-height) + 60px + env(safe-area-inset-bottom))}.compare-table td,.compare-table thead th{overflow-wrap:anywhere;min-width:100px;padding:8px 4px}.compare-table th[scope=row],.compare-table .compare-corner{overflow-wrap:anywhere;min-width:70px;max-width:90px;padding-right:4px}.compare-builds{font-size:.85rem}.compare-bar{bottom:calc(var(--tab-bar-height) + 8px + env(safe-area-inset-bottom))}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}}@keyframes bump{40%{transform:scale(1.18)}}@keyframes spin{to{transform:rotate(360deg)}}main{animation:.3s ease-out both fade-in}.parts-table tbody tr{transition:background-color .25s;animation:.35s ease-out both fade-up}.parts-table tbody tr:nth-child(2){animation-delay:30ms}.parts-table tbody tr:nth-child(3){animation-delay:60ms}.parts-table tbody tr:nth-child(4){animation-delay:90ms}.parts-table tbody tr:nth-child(5){animation-delay:.12s}.parts-table tbody tr:nth-child(n+6){animation-delay:.15s}.pick-selected{animation:.35s ease-out bump}.pick:active,.next-button:active{transform:scale(.96)}.bump{animation:.4s ease-out bump;display:inline-block}.dice{transition:transform .6s cubic-bezier(.34,1.56,.64,1);display:inline-block}:is(a,button):hover .dice,:is(a,button):active .dice{transform:rotate(360deg)}.quiz-option{transition:border-color .15s,background-color .15s,box-shadow .15s,transform .15s}.quiz-option:hover{transform:translateY(-2px)}.quiz-options .quiz-option{animation:.35s ease-out both fade-up}.quiz-options .quiz-option:nth-child(2){animation-delay:40ms}.quiz-options .quiz-option:nth-child(3){animation-delay:80ms}.quiz-options .quiz-option:nth-child(4){animation-delay:.12s}.quiz-options .quiz-option:nth-child(n+5){animation-delay:.16s}.bp-in{transform-box:fill-box;transform-origin:50%;animation:.55s cubic-bezier(.34,1.56,.64,1) both bp-in}@keyframes bp-in{0%{opacity:0;transform:scale(.6)}}.bp-spokes{transform-box:view-box}.bike-preview:hover .bp-spokes,.bike-preview:active .bp-spokes,.bike-preview-spinning .bp-spokes{animation:1.4s linear infinite spin}.bike-preview-spinning svg{animation:1.6s ease-in-out infinite ride}@keyframes ride{50%{transform:translateY(-1.5px)}}.build-body:has(.bike-preview){grid-template-columns:220px 1fr;align-items:start;gap:8px 24px;display:grid}.build-body .bike-preview{margin:0}.build-groups{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px 28px;display:grid}.build-group .part-group-title{margin-bottom:4px}.build-group .build-list{grid-template-columns:1fr}@media (max-width:900px){.build-body:has(.bike-preview){grid-template-columns:1fr}.build-body .bike-preview{max-width:300px}}.anchor{scroll-margin-top:16px}.hero{--accent:#ffd166;--border:#ffffff59;--muted:#ffffffb3;color:#fff;background:linear-gradient(120deg,#1f6feb 0%,#6d4aff 55%,#e0457b 100%) 0 0/200% 200%;border-radius:20px;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:center;gap:16px 32px;margin:0 0 24px;padding:32px 36px;animation:.5s ease-out both fade-up,12s ease-in-out infinite alternate hero-shift;display:grid;box-shadow:0 16px 40px -18px #4c3cdc99}:root[data-theme=dark] .hero{box-shadow:none;background-image:linear-gradient(120deg,#1a4fb0 0%,#4b2fb8 55%,#a3305e 100%)}@keyframes hero-shift{to{background-position:100%}}.hero h1{margin:0 0 8px;font-size:clamp(2rem,5vw,3rem)}.hero-lead{opacity:.92;max-width:36ch;margin:0 0 22px;font-size:1.1rem}.hero-actions{flex-wrap:wrap;gap:10px;display:flex}.hero-button{color:#fff;background:#ffffff24;border:1px solid #fff6;border-radius:999px;align-items:center;gap:6px;padding:10px 18px;font-weight:600;text-decoration:none;transition:transform .15s,background-color .15s,box-shadow .15s;display:inline-flex}.hero-button:hover{background:#ffffff42;transform:translateY(-2px)}.hero-button:active{transform:scale(.96)}.hero-button-main{color:#3b2fc9;background:#fff;border-color:#fff}.hero-button-main:hover{background:#fff;box-shadow:0 8px 20px -8px #00000073}.hero :focus-visible{outline-color:#fff}.hero-bike .bike-preview{max-width:none;margin:0}@media (max-width:640px){.hero{grid-template-columns:1fr;gap:4px;margin:-12px 0 20px;padding:22px 20px 16px}.hero-lead{margin-bottom:16px;font-size:1rem}.hero-button{white-space:nowrap;flex:1 1 0;justify-content:center;padding:8px 10px;font-size:.9rem}.hero-button-main{flex-basis:100%;padding:11px;font-size:1rem}.hero{position:relative}.hero-bike{width:108px;position:absolute;top:12px;right:14px}.hero h1{padding-right:110px;font-size:1.9rem}.hero-lead{margin-top:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
