/* Rimfire Builds design system: one stylesheet for the whole site. Light by default, dark via prefers-color-scheme. */
:root{--a:#c2410c;--a2:#ea580c;--b:#0f766e;--bg:#ffffff;--bg2:#f5f6f8;--card:#ffffff;--tx:#15181e;--mut:#5a6372;--ln:#e2e5ea;--link:#b4390b;--ok:#1a7f37;--warn:#9a6700;--bad:#b62324;--r:12px;--sh:0 1px 2px rgba(16,24,40,.06),0 4px 16px rgba(16,24,40,.06);--max:1180px;--hdr:rgba(255,255,255,.92);--warnbg:#fff7ed;--warnln:#fdba74}
@media(prefers-color-scheme:dark){:root{--a:#ff7a45;--a2:#ff8f5e;--b:#2bb3a3;--bg:#0e1116;--bg2:#151a22;--card:#171c25;--tx:#eef1f6;--mut:#a3adbd;--ln:#283040;--link:#ffab85;--sh:0 6px 24px rgba(0,0,0,.3);--hdr:rgba(14,17,22,.92);--warnbg:#2a1c12;--warnln:#7a4a24}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{margin:0;font:16.5px/1.65 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--tx);-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{line-height:1.22;letter-spacing:-.015em;text-wrap:balance}h1{font-size:clamp(1.75rem,4vw,2.5rem);margin:.3rem 0 1rem}h2{font-size:1.4rem;margin:2.4rem 0 .7rem}h3{font-size:1.1rem;margin:1.6rem 0 .4rem}
p,li{overflow-wrap:anywhere}a{color:var(--link);text-underline-offset:2px;text-decoration-thickness:1px}a:hover{color:var(--a)}:focus-visible{outline:3px solid #f59e0b;outline-offset:2px;border-radius:4px}
img{max-width:100%;height:auto}.sr{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:#f59e0b;color:#000;padding:.5rem 1rem;z-index:99}.skip:focus{left:1rem}
.ic{vertical-align:-4px;flex:none}
/* header */
.hdr{position:sticky;top:0;z-index:30;background:var(--hdr);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--ln)}
.nav{max-width:var(--max);margin:auto;display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;min-height:60px}
.brand{display:flex;align-items:center;gap:.45rem;color:var(--tx);text-decoration:none;font-weight:800;font-size:1.12rem;white-space:nowrap;letter-spacing:-.01em}.brand svg{color:var(--a)}.brand span{color:var(--a)}
.menu{list-style:none;display:flex;gap:.1rem;margin:0 0 0 .8rem;padding:0;align-items:center}.dd{position:relative}
.ddb,.navl{background:none;border:0;color:var(--tx);font:inherit;font-weight:600;font-size:.95rem;padding:.45rem .7rem;border-radius:8px;cursor:pointer;text-decoration:none;display:block}.ddb::after{content:"";display:inline-block;width:.38em;height:.38em;border-right:2px solid var(--mut);border-bottom:2px solid var(--mut);transform:rotate(45deg);margin:0 0 .2em .45em}
.ddb:hover,.navl:hover,.ddb[aria-expanded=true]{background:var(--bg2);color:var(--tx)}.navl[aria-current=page],.ddb.cur{color:var(--a)}
.ddm{display:none;position:absolute;left:0;top:calc(100% + 6px);min-width:250px;list-style:none;margin:0;padding:.45rem;background:var(--card);border:1px solid var(--ln);border-radius:14px;box-shadow:0 12px 40px rgba(16,24,40,.16)}
.ddm.mega{display:none;grid-template-columns:repeat(2,minmax(210px,1fr));gap:.1rem .6rem;min-width:520px}.dd.open .ddm{display:block}.dd.open .ddm.mega{display:grid}
.ddm a{display:block;padding:.45rem .6rem;border-radius:8px;color:var(--tx);text-decoration:none;font-size:.93rem}.ddm a small{display:block;color:var(--mut);font-size:.8rem;line-height:1.35}.ddm a:hover,.ddm a:focus{background:var(--bg2)}
.ddm .ddh{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--mut);padding:.5rem .6rem .1rem;font-weight:700}.ddm .all{grid-column:1/-1;border-top:1px solid var(--ln);margin-top:.2rem;padding-top:.3rem}.ddm .all a{color:var(--a);font-weight:600}
.sbox{margin-left:auto;position:relative}.sbox input{width:230px;background:var(--bg2);border:1px solid var(--ln);color:var(--tx);border-radius:10px;padding:.5rem .75rem;font:inherit;font-size:.92rem}
.sres{position:absolute;right:0;top:calc(100% + 6px);width:min(440px,92vw);max-height:70vh;overflow:auto;background:var(--card);border:1px solid var(--ln);border-radius:14px;box-shadow:0 12px 40px rgba(16,24,40,.16);padding:.3rem;z-index:40}
.sres a{display:block;padding:.5rem .6rem;border-radius:8px;text-decoration:none;color:var(--tx)}.sres a:hover,.sres a:focus{background:var(--bg2)}.sres small{display:block;color:var(--mut)}
.mtog{display:none;margin-left:auto;background:none;border:1px solid var(--ln);color:var(--tx);border-radius:8px;padding:.4rem .55rem;cursor:pointer}
@media(max-width:1000px){.mtog{display:block}.menu{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;background:var(--bg);border-bottom:1px solid var(--ln);padding:.5rem 1rem 1rem;margin:0;max-height:80vh;overflow:auto;box-shadow:var(--sh)}.menu.show{display:flex}
.ddm,.ddm.mega{position:static;box-shadow:none;border:0;padding:0 0 0 .6rem;min-width:0;grid-template-columns:1fr}.sbox{display:none;position:absolute;left:0;right:0;top:100%;padding:.6rem 1rem;background:var(--bg);margin:0}.nav .sbox.show{display:block;position:static;order:9;width:100%}.sbox input{width:100%}.nav{flex-wrap:wrap}}
/* layout */
.wrap{max-width:var(--max);margin:auto;padding:1rem 1rem 3.5rem;display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem}.wrap.has-toc{grid-template-columns:minmax(0,1fr) 240px}
main{min-width:0;max-width:none}.wrap.has-toc main>p,.wrap.has-toc main>ul,.wrap.has-toc main>ol{max-width:78ch}
@media(max-width:1000px){.wrap.has-toc{grid-template-columns:minmax(0,1fr)}.toc{order:-1}}
.toc{position:sticky;top:84px;align-self:start;font-size:.87rem;border-left:2px solid var(--ln);padding:.2rem 0 .2rem 1rem;max-height:calc(100vh - 110px);overflow:auto}.toc strong{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--mut)}.toc ol{list-style:none;padding:0;margin:.5rem 0 0}.toc li{margin:.32rem 0;line-height:1.35}.toc a{color:var(--mut);text-decoration:none}.toc a:hover{color:var(--a)}
@media(max-width:1000px){.toc{position:static;max-height:none;border:1px solid var(--ln);border-radius:var(--r);padding:.7rem 1rem;background:var(--bg2)}.toc details summary{cursor:pointer}}
.crumbs{font-size:.84rem;color:var(--mut);margin:.3rem 0 .4rem;display:flex;flex-wrap:wrap;gap:.25rem}.crumbs a{color:var(--mut);text-decoration:none}.crumbs a:hover{color:var(--a);text-decoration:underline}.crumbs .sep{opacity:.6}
.rsub{display:flex;gap:.3rem;overflow-x:auto;margin:.3rem 0 1.1rem;padding:.15rem 0 .5rem;border-bottom:1px solid var(--ln);scrollbar-width:thin}.rsub a{flex:none;font-size:.86rem;font-weight:600;color:var(--mut);text-decoration:none;padding:.3rem .7rem;border-radius:99px;border:1px solid transparent}.rsub a:hover{color:var(--tx);background:var(--bg2)}.rsub a[aria-current=page]{color:var(--a);border-color:var(--ln);background:var(--bg2)}.rsub .rname{color:var(--tx);font-weight:800;padding-left:0}
/* components */
.qa{background:var(--bg2);border:1px solid var(--ln);border-left:4px solid var(--b);border-radius:var(--r);padding:.95rem 1.15rem;margin:0 0 1.4rem}.qa strong:first-child{display:flex;gap:.4rem;align-items:center;color:var(--b);text-transform:uppercase;font-size:.74rem;letter-spacing:.07em;margin-bottom:.2rem}
.rangebox{border:2px dashed var(--ln);border-radius:var(--r);padding:1rem 1.15rem;margin:1.5rem 0;background:repeating-linear-gradient(135deg,transparent,transparent 12px,rgba(127,127,127,.04) 12px,rgba(127,127,127,.04) 24px)}.rangebox h3{margin:0 0 .3rem;display:flex;gap:.5rem;align-items:center}.rangebox h3::before{content:"◎";color:var(--a)}
.hero{padding:2.6rem 0 1.4rem}.hero p{max-width:62ch;font-size:1.1rem;color:var(--mut)}.hero h1{font-size:clamp(2rem,5vw,3.1rem);margin-bottom:.6rem}.kicker{font-size:.78rem;text-transform:uppercase;letter-spacing:.09em;color:var(--a);font-weight:800}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.grid.g3{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.card{display:block;background:var(--card);border:1px solid var(--ln);border-radius:var(--r);padding:1rem 1.15rem;box-shadow:var(--sh);transition:transform .15s,border-color .15s;min-width:0}a.card{color:inherit;text-decoration:none}a.card:hover{transform:translateY(-2px);border-color:var(--a)}a.card:hover h3{color:var(--a)}.card h3{margin:.2rem 0 .4rem;font-size:1.05rem}.card p{margin:.3rem 0}.card .ic{color:var(--a)}
.card .meta{font-size:.8rem;color:var(--mut)}.tag{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.03em;padding:.08rem .5rem;border-radius:99px;background:var(--bg2);border:1px solid var(--ln);color:var(--mut);margin-right:.25rem}.tag.on{color:var(--b);border-color:var(--b)}
.topic{scroll-margin-top:84px}.topic h2{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .6rem}.topic h2 small{font-size:.85rem;color:var(--mut);font-weight:500}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:1rem 0}.chips a{font-size:.88rem;text-decoration:none;color:var(--tx);border:1px solid var(--ln);border-radius:99px;padding:.3rem .8rem;background:var(--card)}.chips a:hover{border-color:var(--a);color:var(--a)}
.path{display:flex;flex-direction:column;gap:.35rem}.path ol{margin:.2rem 0 0;padding-left:1.1rem}
.price{font-weight:700;color:var(--b)}.mut{color:var(--mut);font-size:.92rem}
table{border-collapse:collapse;width:100%;font-size:.91rem;margin:1rem 0}th,td{border-bottom:1px solid var(--ln);padding:.55rem .6rem;text-align:left;vertical-align:top}th{background:var(--bg2);font-weight:700;position:sticky;top:0}tbody tr:hover{background:var(--bg2)}
.tw{overflow-x:auto;max-width:100%;border:1px solid var(--ln);border-radius:var(--r);margin:1rem 0}.tw table{margin:0}
.b{display:inline-block;padding:.06rem .5rem;border-radius:99px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.b-high{background:#1a7f37;color:#fff}.b-med{background:#9a6700;color:#fff}.b-low{background:#b62324;color:#fff}
.form{display:grid;gap:.8rem;max-width:640px;min-width:0}.form>div{display:grid;gap:.25rem;min-width:0}.form select{width:100%}main input,main select,main textarea{max-width:100%}
.discline{font-size:.8rem;color:var(--mut);margin:.4rem 0 .9rem}.discline a{color:var(--mut)}.disc{background:var(--bg2);border:1px solid var(--ln);border-left:4px solid var(--b);padding:.6rem .9rem;border-radius:10px;font-size:.86rem;color:var(--mut);margin:.4rem 0 1rem}
.warn{background:var(--warnbg);border:1px solid var(--warnln);border-left:4px solid #ea580c;padding:.8rem 1rem;border-radius:var(--r);margin:1rem 0}
.btn{display:inline-flex;gap:.4rem;align-items:center;background:var(--a);color:#fff;padding:.55rem 1.05rem;border-radius:10px;text-decoration:none;font-weight:700;font-size:.95rem;border:0;cursor:pointer;font-family:inherit}.btn:hover{filter:brightness(1.08);color:#fff}.btn.alt{background:var(--card);color:var(--tx);border:1px solid var(--ln)}.btn.alt:hover{border-color:var(--a);color:var(--a)}
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}input,select,textarea{background:var(--bg);color:var(--tx);border:1px solid var(--ln);border-radius:10px;padding:.55rem;font:inherit;font-size:.95rem}.filters input[type=search]{flex:1 1 220px}label{font-weight:600;font-size:.92rem}
code{background:var(--bg2);padding:.1rem .35rem;border-radius:5px;font-size:.9em}.src{font-size:.78rem;word-break:break-word}
details.card summary{cursor:pointer;font-weight:600}details.card[open]{border-color:var(--b)}
.fig{margin:0 0 1rem}.fig img{width:100%;height:auto;max-height:420px;object-fit:contain;background:var(--bg2);border-radius:12px;display:block}.banner img{max-height:300px}.herofig img{max-height:360px}figcaption{font-size:.78rem;color:var(--mut);margin-top:.3rem}.att a{color:var(--mut)}
.ph{aspect-ratio:4/3;max-height:150px;width:100%;border-radius:10px;margin-bottom:.6rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--bg2);border:1px dashed var(--ln);color:var(--mut)}.ph span{font-weight:800;color:var(--tx)}.ph em{font-size:.72rem}
.facts{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.3rem 0 1rem}.fact{flex:0 0 min(320px,85%);scroll-snap-align:start;background:var(--card);border:1px solid var(--ln);border-radius:var(--r);padding:1rem;box-shadow:var(--sh)}.fact b{color:var(--b);display:flex;gap:.4rem;align-items:center}
.related{margin-top:3rem;padding-top:1rem;border-top:1px solid var(--ln)}
.totop{position:fixed;right:1rem;bottom:1rem;background:var(--a);color:#fff;border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;box-shadow:var(--sh);opacity:0;pointer-events:none;transition:opacity .2s}.totop.show{opacity:1;pointer-events:auto}
.pl-row{display:grid;grid-template-columns:200px minmax(0,1fr) 110px;gap:.8rem;align-items:start;padding:.8rem 0;border-bottom:1px solid var(--ln)}@media(max-width:700px){.pl-row{grid-template-columns:1fr}}
.pl-total{position:sticky;bottom:0;background:var(--card);border:1px solid var(--ln);border-radius:var(--r);padding:.8rem 1rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;margin-top:1rem;box-shadow:var(--sh)}
.note{font-size:.85rem;color:var(--mut);margin-top:.25rem}.note.w{color:#c2410c}
.qz fieldset{border:1px solid var(--ln);border-radius:var(--r);padding:1rem;margin:0 0 1rem;background:var(--card)}.qz legend{font-weight:700;padding:0 .4rem}.qz label{display:block;font-weight:400;padding:.3rem 0;cursor:pointer}
.result{border:2px solid var(--b);border-radius:var(--r);padding:1rem 1.2rem;background:var(--card)}
.pill{display:inline-block;background:var(--bg2);border:1px solid var(--ln);border-radius:99px;padding:.15rem .6rem;font-size:.8rem;margin:.1rem}
/* rifle-variant switch on shared topic pages */
.rvsw{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin:0 0 1.2rem;font-size:.88rem;color:var(--mut)}.rvsw button{font:inherit;font-size:.86rem;font-weight:600;border:1px solid var(--ln);background:var(--card);color:var(--tx);border-radius:99px;padding:.25rem .75rem;cursor:pointer}.rvsw button[aria-pressed=true]{background:var(--tx);color:var(--bg);border-color:var(--tx)}
.rvset{margin:1rem 0}.rv{border-left:3px solid var(--b);padding:.1rem 0 .1rem 1rem;margin:.8rem 0}.rv+.rv{border-left-color:var(--a)}.rv+.rv>.rvlab{color:var(--a)}.rv>.rvlab{display:inline-block;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--b);margin:0 0 .2rem}
body[data-rv=t1x] .rv[data-rifle=cz457],body[data-rv=cz457] .rv[data-rifle=t1x]{display:none}
/* footer */
footer.site{border-top:1px solid var(--ln);color:var(--mut);font-size:.87rem;padding:2.5rem 1rem 2rem;background:var(--bg2)}.fgrid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:1.5rem}@media(max-width:800px){.fgrid{grid-template-columns:1fr 1fr}.fgrid>div:first-child{grid-column:1/-1}}
footer.site strong{color:var(--tx);font-size:.8rem;text-transform:uppercase;letter-spacing:.07em}footer.site a{color:var(--mut);text-decoration:none}footer.site a:hover{color:var(--a)}footer.site ul{list-style:none;padding:0;margin:.5rem 0}footer.site li{margin:.25rem 0}
.footdisc{max-width:var(--max);margin:1.6rem auto 0;padding-top:1rem;border-top:1px solid var(--ln);font-size:.8rem;color:var(--mut)}.footdisc a{color:var(--mut)}
.sitedisc{font-size:.8rem;color:var(--mut);border-top:1px solid var(--ln);margin-top:2.5rem;padding-top:.8rem}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.hdr,footer.site,.toc,.totop,.rvsw{display:none}}

.cite{display:inline-block;font-size:.74rem;font-weight:600;line-height:1.3;padding:.05rem .45rem;border:1px solid var(--ln);border-radius:99px;background:var(--bg2);color:var(--mut);text-decoration:none;vertical-align:1px;white-space:nowrap}.cite::before{content:"Source: ";font-weight:500}.cite:hover{color:var(--a);border-color:var(--a)}
.facts{max-width:100%}
.cite.nolink::before{content:""}
@media(min-width:800px){.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));overflow:visible}.fact{flex:none}}
