/* RVBlueprints homepage: single-column scroll composition. Loads after rvb.css. */

body[data-page="home-shell"]{background:var(--paper);transition:none}
.home-shell{display:block;overflow-x:clip}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;background:var(--pine-950);color:var(--white);min-height:min(calc(100svh - 74px),860px);display:flex;align-items:center;isolation:isolate}
.hero-photo{position:absolute;inset:0;z-index:0}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:72% center;transform:scale(1.04);will-change:transform}
.hero-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(7,27,22,.9) 0%,rgba(7,27,22,.74) 34%,rgba(7,27,22,.22) 62%,rgba(7,27,22,.05) 100%),linear-gradient(180deg,rgba(7,27,22,.25),rgba(7,27,22,0) 35%,rgba(7,27,22,.45) 100%)}
.hero-grain{position:absolute;inset:0;z-index:1;opacity:.12;pointer-events:none;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E")}
.hero-draft{position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none}
.hero-draft line,.hero-draft path,.hero-draft circle{stroke:var(--amber);stroke-width:1.2;fill:none;vector-effect:non-scaling-stroke}
.hero-draft circle{fill:var(--amber);stroke:none}
.hero-draft text{font-family:var(--font-sans);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;fill:var(--amber)}
.hero-draft .draft-label{opacity:0}
html:not(.js) .hero-draft .draft-label{opacity:1}
.hero-inner{position:relative;z-index:3;width:100%;max-width:var(--container);margin:0 auto;padding:72px var(--gutter) 64px}
.hero-message{max-width:720px}
.hero-message .eyebrow{color:var(--amber);margin-bottom:16px}
.hero-message h1{color:var(--white);font-size:clamp(2.7rem,6.4vw,5.4rem);font-weight:530;max-width:11ch;letter-spacing:-.022em}
.hero-message h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.06em;margin-bottom:-.06em}
.hero-message h1 .w>span{display:inline-block}
.hero-message .lede{max-width:40ch;margin:20px 0 0;color:rgba(255,255,255,.84);font-size:clamp(1.05rem,1.35vw,1.2rem);line-height:1.55}
.home-finder{max-width:760px;margin-top:30px;background:var(--white);color:var(--ink);border-radius:var(--r);box-shadow:var(--shadow-lg);padding:14px 14px 12px;display:grid;gap:10px}
.finder-fields{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
.finder-fields label{display:grid;gap:4px;flex:1 1 220px;min-width:0}
.finder-fields label.query-field{flex:2 1 260px}
.finder-fields label>span{padding-left:2px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.finder-fields input,.finder-fields select{width:100%;min-height:48px;padding:8px 12px;border:1.5px solid var(--line-strong);border-radius:var(--r-s);background:var(--white);transition:border-color .2s,box-shadow .2s}
.finder-fields select{appearance:none;-webkit-appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%2310241d' stroke-width='1.8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.finder-fields input:focus,.finder-fields select:focus{outline:none;border-color:var(--pine-700);box-shadow:0 0 0 3px rgba(35,107,83,.18)}
.finder-fields input::placeholder{color:var(--muted-2)}
.home-finder button[type=submit]{align-self:end;flex:0 0 auto;min-height:48px;padding:0 20px}
.finder-shortcuts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:10px 2px 2px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.finder-shortcuts a{display:inline-flex;align-items:center;padding:6px 11px;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink);font-weight:600;font-size:12.5px;text-decoration:none;transition:background .2s,border-color .2s}
.finder-shortcuts a:hover{background:var(--pine-50);border-color:var(--pine-700)}
html.home-anim .hero-message .eyebrow,html.home-anim .hero-message .lede,html.home-anim .home-finder{opacity:0}
html.home-anim .hero-message h1 .w>span{transform:translateY(108%)}
@media (max-width:900px){
  .hero{min-height:0;align-items:flex-start}
  .hero-draft{display:none}
  .hero-shade{background:linear-gradient(180deg,rgba(7,27,22,.5) 0%,rgba(7,27,22,.8) 45%,rgba(7,27,22,.94) 100%)}
  .hero-inner{padding:56px var(--gutter) 40px}
  .home-finder{padding:12px;margin-top:24px}
  .finder-fields label,.finder-fields label.query-field{flex-basis:100%}
  .home-finder button[type=submit]{width:100%}
}

/* ---------- Ticker ---------- */
.ticker{position:relative;overflow:hidden;background:var(--pine-900);color:rgba(255,255,255,.86);border-top:1px solid rgba(255,255,255,.08)}
.ticker-track{display:flex;width:max-content;animation:ticker 46s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;white-space:nowrap}
.ticker li{display:flex;align-items:center;gap:22px;padding:15px 22px 15px 0;font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.ticker li::after{content:"";width:7px;height:7px;background:var(--amber);transform:rotate(45deg)}
.ticker li strong{font-family:var(--font-serif);font-size:1.25rem;font-weight:560;letter-spacing:0;text-transform:none;color:var(--white);font-variant-numeric:tabular-nums}
@keyframes ticker{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker-track{animation:none}}

/* ---------- Statement ---------- */
.statement{max-width:var(--container);margin:0 auto;padding:clamp(88px,12vw,150px) var(--gutter) clamp(120px,14vw,190px)}
.statement p{margin:0;max-width:26ch;font-family:var(--font-serif);font-weight:500;font-size:clamp(1.85rem,3.9vw,3.5rem);line-height:1.2;letter-spacing:-.015em;color:var(--ink);text-wrap:pretty}
.statement p .sw{display:inline;transition:opacity .25s}
html.js .statement p .sw{opacity:.16}
html.js .statement p .sw.lit{opacity:1}
@media (prefers-reduced-motion:reduce){html.js .statement p .sw{opacity:1}}
.statement .statement-foot{margin:34px 0 0;max-width:52ch;font-family:var(--font-sans);font-size:1.05rem;color:var(--muted);line-height:1.6}

/* ---------- Anatomy (pinned blueprint walkthrough) ---------- */
.anatomy{background:var(--pine-950);color:var(--white);position:relative}
.anatomy::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:64px 64px;pointer-events:none;mask-image:linear-gradient(180deg,transparent,#000 12%,#000 88%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent,#000 12%,#000 88%,transparent)}
.anatomy-inner{position:relative;max-width:var(--container);margin:0 auto;padding:clamp(80px,10vw,120px) var(--gutter) clamp(60px,8vw,96px)}
.anatomy-head{max-width:760px;margin-bottom:clamp(40px,6vw,72px)}
.anatomy-head .eyebrow{color:var(--amber)}
.anatomy-head h2{color:var(--white);font-size:clamp(2rem,4vw,3.4rem);max-width:19ch}
.anatomy-head p{margin:18px 0 0;max-width:56ch;color:rgba(255,255,255,.7);font-size:1.08rem}
.anatomy-body{display:flex;gap:clamp(40px,6vw,96px);align-items:flex-start}
.anatomy-sheet{flex:0 1 58%;position:sticky;top:96px}
.anatomy-sheet svg{width:100%;height:auto;display:block;border-radius:var(--r-s);border:1px solid rgba(255,255,255,.14)}
.anatomy-sheet .dg-bg{fill:#0d2019!important}
.anatomy-sheet .dg-body{fill:rgba(230,174,98,.08)!important;stroke:var(--amber)!important}
.anatomy-sheet .dg-tyre{fill:var(--amber)!important}
.anatomy-sheet .dg-ground{stroke:rgba(255,255,255,.55)!important}
.anatomy-sheet .dg-dim{stroke:rgba(255,255,255,.4)!important}
.anatomy-sheet .dg-t{fill:rgba(255,255,255,.8)!important}
.anatomy-sheet .dg-lab{fill:rgba(255,255,255,.5)!important}
.anatomy-sheet .dg-limit{stroke:#e4867a!important}
.anatomy-sheet .dg-warn{fill:#e4867a!important}
.anatomy-sheet .dg-ok{fill:#8cc9a0!important}
.sheet-caption{margin:14px 0 0;font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.55);max-width:60ch}
.sheet-readout{display:flex;flex-wrap:wrap;gap:0;margin-top:22px;border-top:1px solid rgba(255,255,255,.14)}
.sheet-readout div{flex:1 1 0;min-width:120px;padding:14px 18px 6px 0;transition:color .4s}
.sheet-readout div+div{padding-left:18px;border-left:1px solid rgba(255,255,255,.12)}
.sheet-readout dt{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.sheet-readout dd{margin:6px 0 0;font-family:var(--font-serif);font-size:1.3rem;font-weight:560;color:rgba(255,255,255,.55);transition:color .5s}
.sheet-readout div.is-active dd{color:var(--amber)}
.sheet-readout dd.unknown{font-style:italic;font-weight:450;font-size:1.05rem}
.anatomy-steps{flex:1 1 40%;min-width:0;display:grid;gap:0}
.step{padding:min(9vh,80px) 0;border-top:1px solid rgba(255,255,255,.12);transition:opacity .5s}
.step:first-child{border-top:0;padding-top:0}
html.js .step{opacity:.38}
html.js .step.is-active{opacity:1}
.step-k{display:block;margin-bottom:12px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--amber)}
.step h3{color:var(--white);font-size:clamp(1.5rem,2.3vw,2.05rem);margin-bottom:12px;max-width:18ch}
.step p{margin:0;max-width:42ch;color:rgba(255,255,255,.76);line-height:1.6}
.anatomy-steps .btn{justify-self:start;margin-top:28px}
@media (max-width:1000px){
  .anatomy-body{flex-direction:column;gap:36px}
  .anatomy-sheet{position:static;flex-basis:auto;width:100%}
  html.js .step{opacity:1}
  .step{padding:30px 0}
}
@media (prefers-reduced-motion:reduce){html.js .step{opacity:1}}

/* ---------- Manufacturer index ---------- */
.index{max-width:var(--container);margin:0 auto;padding:clamp(88px,11vw,140px) var(--gutter) 0}
.index-head{max-width:760px;margin-bottom:34px}
.index-head p{margin:16px 0 0;max-width:52ch;color:var(--muted);font-size:1.08rem}
.index-list{border-top:1px solid var(--line-strong)}
.index-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 28px;padding:26px 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;position:relative;transition:padding-left .45s var(--ease)}
.index-row:hover{padding-left:16px}
.index-row::before{content:"";position:absolute;left:0;top:0;bottom:-1px;width:3px;background:var(--amber);transform:scaleY(0);transform-origin:top;transition:transform .45s var(--ease)}
.index-row:hover::before{transform:scaleY(1)}
.index-row strong{font-family:var(--font-serif);font-size:clamp(1.9rem,3.6vw,3.3rem);font-weight:520;letter-spacing:-.02em;line-height:1;flex:0 0 auto;min-width:min(38%,340px)}
.index-row .index-models{flex:1 1 260px;color:var(--muted);font-size:15.5px;line-height:1.5}
.index-row .index-count{flex:0 0 auto;margin-left:auto;display:inline-flex;align-items:center;gap:10px;color:var(--pine-700);font-weight:700;font-size:14px;white-space:nowrap}
.index-row .index-count i{font-style:normal;font-size:20px;transition:transform .35s var(--ease)}
.index-row:hover .index-count i{transform:translateX(6px)}
.index-preview{position:fixed;left:0;top:0;z-index:30;width:min(360px,34vw);pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.92);background:var(--white);border-radius:var(--r-s);box-shadow:var(--shadow-lg);overflow:hidden;will-change:transform}
.index-preview img{width:100%;height:auto;display:block}
.index-preview span{display:block;padding:9px 12px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line)}
@media (hover:none),(pointer:coarse),(max-width:1000px){.index-preview{display:none}}
.index-foot{margin:34px 0 0;max-width:62ch;color:var(--muted);font-size:1.05rem;line-height:1.65}
.index-foot a{color:var(--pine-700);font-weight:700}
@media (max-width:700px){.index-row{padding:22px 0}.index-row strong{min-width:0;flex-basis:100%}.index-row .index-count{margin-left:0}}

/* ---------- Comparison rail ---------- */
.rail{padding:clamp(96px,12vw,160px) 0 0;overflow:hidden}
.rail-head{max-width:var(--container);margin:0 auto 34px;padding:0 var(--gutter)}
.rail-head p{margin:16px 0 0;max-width:50ch;color:var(--muted);font-size:1.08rem}
.rail-track{display:flex;gap:0;padding:0 var(--gutter);width:max-content;will-change:transform}
.rail-item{flex:0 0 auto;width:min(520px,78vw);padding:34px 40px 34px 0;margin-right:40px;border-top:1px solid var(--line-strong);border-right:1px solid var(--line);color:var(--ink);text-decoration:none;display:grid;align-content:start;gap:16px;transition:background .3s}
.rail-item:last-child{border-right:0}
.rail-k{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--pine-600)}
.rail-item strong{font-family:var(--font-serif);font-weight:520;font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.08;letter-spacing:-.015em}
.rail-item strong em{display:block;font-style:italic;font-weight:400;font-size:.5em;color:var(--muted);padding:6px 0}
.rail-item p{margin:0;color:var(--muted);max-width:36ch;line-height:1.55}
.rail-item b{display:inline-flex;align-items:center;gap:8px;color:var(--pine-700);font-size:14px}
.rail-item b i{font-style:normal;transition:transform .35s var(--ease)}
.rail-item:hover b i{transform:translateX(6px)}
.rail-item:hover strong{color:var(--pine-800)}
.rail-foot{max-width:var(--container);margin:30px auto 0;padding:0 var(--gutter)}
@media (max-width:900px){
  .rail-track{width:auto;flex-direction:column;transform:none!important}
  .rail-item{width:auto;margin-right:0;padding:28px 0;border-right:0}
  .rail-item+.rail-item{border-top:1px solid var(--line)}
}

/* ---------- Weight chain ---------- */
.chain{max-width:var(--container);margin:0 auto;padding:clamp(96px,12vw,160px) var(--gutter) clamp(80px,10vw,130px)}
.chain-head{max-width:720px}
.chain-head h2{max-width:16ch}
.chain-head p{margin:18px 0 0;max-width:56ch;color:var(--muted);font-size:1.08rem}
.chain-list{list-style:none;margin:44px 0 0;padding:0 0 0 36px;position:relative;max-width:720px}
.chain-list::before{content:"";position:absolute;left:8px;top:8px;bottom:8px;width:2px;background:var(--line)}
.chain-list::after{content:"";position:absolute;left:8px;top:8px;bottom:8px;width:2px;background:var(--pine-700);transform:scaleY(var(--chain-progress,0));transform-origin:top}
html:not(.js) .chain-list::after{transform:none}
.chain-list li{position:relative;padding:0 0 34px}
.chain-list li:last-child{padding-bottom:0}
.chain-list li::before{content:"";position:absolute;left:-36px;top:6px;width:18px;height:18px;border-radius:50%;background:var(--paper);border:2px solid var(--line-strong);transition:border-color .4s,background .4s,transform .4s var(--ease)}
.chain-list li.is-hit::before{border-color:var(--pine-700);background:var(--pine-700);transform:scale(1.1)}
html:not(.js) .chain-list li::before{border-color:var(--pine-700);background:var(--pine-700)}
.chain-list strong{display:block;font-family:var(--font-serif);font-size:clamp(1.35rem,2vw,1.7rem);font-weight:560;margin-bottom:6px}
.chain-list span{display:block;color:var(--muted);max-width:52ch;line-height:1.55}
.chain .btn{margin-top:40px}

/* ---------- Closing ---------- */
.closing-visual{position:relative;overflow:hidden;background:var(--pine-950);color:var(--white);isolation:isolate}
.closing-photo{position:absolute;inset:0;z-index:0}
.closing-photo img{width:100%;height:120%;object-fit:cover;object-position:center 60%;will-change:transform}
.closing-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(7,27,22,.35),rgba(7,27,22,.5) 55%,rgba(7,27,22,.92))}
.closing-copy{position:relative;z-index:2;max-width:var(--container);margin:0 auto;padding:clamp(120px,16vw,190px) var(--gutter) clamp(100px,14vw,150px);display:grid;gap:22px;justify-items:start}
.closing-copy h2{color:var(--white);font-size:clamp(2.3rem,5vw,4.2rem);max-width:13ch;font-weight:520;letter-spacing:-.02em}
.closing-copy p{margin:0;max-width:44ch;color:rgba(255,255,255,.82);font-size:1.1rem}

/* Hero callouts that sit under the finder on narrower desktops */
@media (max-width:1200px){.hero-draft .draft-optional{display:none}}
