
:root{
  --nr-aged-texture:url("/img/img-200.webp"); /* Johnny 08-02g: single shared copy, referenced via var() so the smudge-on-wordmark rule below doesn't duplicate ~800KB of base64 */
  --nr-door-ov18:url("/images/home-photo-1-62e7495331.jpg");
  --nr-door-civilwar2:url("/img/img-201.jpg");
  --ink:#231F20;--obsidian:#0D0D0D;--white:#FFFFFF;--paper:#F6F2E9;--bone:#F5F3EE;--cream:#ECE5D8;
  --hairline:#E2DCCE;--stone:#BFB4A0;--monotext:#8a8072;
  --acc:#FF7300;--acc-deep:#E35205;--acc-b:#FF8A2E;--acc-on:#231F20;
  --burnt:#D08C4E;--burnt-deep:#B06F33;--gold:#C8A96E;
  --noble-gold:#C99A3B; /* Johnny 08-01: OSU Orange banned in text/elements, becomes this -- NEVER a button colour */
  --ffline:#F5F3EE; /* featured-ribbon hairline — ramps via body[data-hair] (v8 toggle) */
  --sans:'Jost',system-ui,-apple-system,sans-serif;
  --mono:'Jost',system-ui,-apple-system,sans-serif;
}
/* v8 hairline-brightness toggle: bright bone (default) · soft cream · stone grey */
body[data-hair="soft"]{--ffline:#E2DCCE}
body[data-hair="grey"]{--ffline:#B7AC98}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{background:var(--obsidian);color:var(--bone);font-family:var(--sans)}
.wrap{max-width:1120px;margin:0 auto;padding:0 26px}

/* blueprint annotation chips */
.bp{display:flex;gap:8px;align-items:center;margin:0 0 14px;flex-wrap:wrap}
.bp .n{font:700 var(--fs-small) var(--mono);letter-spacing:.16em;color:var(--acc-b);border:1px solid #4a3524;padding:5px 9px}
.bp .ref{font:400 var(--fs-small) var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#6d6555;border:1px solid #2a2620;padding:5px 9px}
.bp .chg{color:#7fae6a;border-color:#33452a}
.provnote{font:400 var(--fs-small) var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--monotext);border:1px solid #332e27;padding:10px 15px;margin:22px auto 0;display:block;max-width:1068px;line-height:1.7}
.provnote b{color:var(--acc-b)}

/* placeholder photo */
.ph{position:relative;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;background:linear-gradient(150deg,#1b1916,#100f0d);width:100%}
.ph .k{width:52px;color:#3a352d}
.ph .phtxt{font:400 var(--fs-small) var(--mono);letter-spacing:.28em;color:#57503f;text-transform:uppercase}

/* nav */
nav{display:flex;justify-content:space-between;align-items:center;padding:18px 34px;border-bottom:1px solid #26231f;position:sticky;top:0;background:rgba(13,13,13,.94);backdrop-filter:blur(6px);z-index:9}
nav .mark{display:flex;align-items:center;gap:14px}
nav .mark .k{width:38px;color:var(--bone)}
nav .mark .t{font:400 13px 'Archivo Black',sans-serif;letter-spacing:.14em;text-transform:uppercase}
nav .links{display:flex;gap:26px}
nav .links a{font:600 10px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--stone);text-decoration:none}
nav .links a.hot{color:var(--acc-b)}

/* hero */
.hero{position:relative;min-height:74vh;display:flex;align-items:flex-end;border-bottom:1px solid #26231f;overflow:hidden}
.hero .ph{position:absolute;inset:0;height:100%}
.hero .scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,8,9,.94),rgba(8,8,9,.45) 42%,rgba(8,8,9,.05) 70%)}
.hero .inner{position:relative;padding:0 34px 40px;max-width:1120px;margin:0 auto;width:100%}
.hero .kick{font:500 10px var(--mono);letter-spacing:.26em;color:var(--stone);text-transform:uppercase}
.hero h1{font:400 clamp(34px,5.6vw,64px)/1.05 'Archivo Black',sans-serif;text-transform:uppercase;letter-spacing:-.01em;margin:14px 0 10px}
.hero h1 em{font-style:normal;color:var(--acc)}
.hero .sub{font:300 17px/1.55 var(--sans);color:#cfc8ba;max-width:52ch}
.hero .sub b{font-weight:600;color:var(--bone)}
.ctarow{display:flex;gap:12px;align-items:center;margin-top:24px;flex-wrap:wrap}
.btn{font:600 11px var(--sans);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;padding:14px 28px;background:var(--acc);color:var(--acc-on)}
.ghost{font:600 11px var(--sans);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;padding:14px 22px;border:1px solid #5a544a;color:var(--bone)}

/* stat band */
.stats{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid #26231f;padding:20px 34px;max-width:1120px;margin:0 auto;flex-wrap:wrap}
.stats .s{text-align:center}
.stats .s .v{font:400 26px 'Archivo Black',sans-serif;color:var(--acc-b)}
.stats .s .v.sm{font-size:18px}
.stats .s .v .q{color:var(--stone);font-size:.68em;letter-spacing:.02em}
.stats .s .l{font:500 var(--fs-small) var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--monotext);margin-top:6px}

/* tighter vertical rhythm across the page (Johnny: WE NEED VERTICAL SPACE — cut the padding) */
section{padding:26px 0}
/* section headers — CENTER by default; toggle to left via body[data-heads="left"] */
.sechead{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;margin-bottom:8px}
.sechead h2{font:400 clamp(20px,2.6vw,30px) 'Archivo Black',sans-serif;text-transform:uppercase;letter-spacing:.01em}
.sechead .mono-l{font:500 9.5px var(--mono);letter-spacing:.22em;color:var(--monotext);text-transform:uppercase}
.sechead .cta-r{font:600 var(--fs-small) var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--acc-b);text-decoration:none}
body[data-heads="left"] .sechead{flex-direction:row;align-items:baseline;text-align:left;gap:18px}
body[data-heads="left"] .sechead .cta-r{margin-left:auto}
/* header-alignment toggle (mockup control) */
.headtog{display:flex;gap:8px;align-items:center;justify-content:center;max-width:1068px;margin:10px auto 0;font:500 9px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--monotext)}
.headtog button{font:inherit;color:var(--stone);background:transparent;border:1px solid #2a2620;padding:5px 11px;cursor:pointer}
.headtog button[aria-pressed="true"]{color:var(--acc-b);border-color:#4a3524}

/* ===== FEATURED FOAL card (sec 03) — tight ===== */
.feature{position:relative;border:1px solid #26231f;border-radius:3px;overflow:hidden;background:#181613;max-width:none;display:flex;flex-direction:column}
.feature .ffphoto{position:relative;min-height:470px;flex:1;overflow:hidden}
.feature img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feature .scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,8,9,.95) 0%,rgba(8,8,9,.8) 24%,rgba(8,8,9,.32) 50%,rgba(8,8,9,.05) 72%)}
/* orange ribbon — minimal padding · group hugs left · pedigree bracket to headline · rotate far right */
.feature .ribbon{position:absolute;top:0;left:0;right:0;display:flex;flex-wrap:wrap;align-items:stretch;gap:0;row-gap:3px;padding:5px 10px;background:var(--acc);color:var(--acc-on);z-index:2}
.feature .ffgroup{display:flex;align-items:stretch;flex:0 0 auto}
.feature .fftag{display:flex;align-items:center;gap:6px;background:#0D0D0D;color:var(--acc-b);padding:5px 11px;font:700 var(--fs-small) var(--mono);letter-spacing:.13em;text-transform:uppercase;white-space:nowrap;border:1px solid var(--ffline)}
.feature .fftag .k{width:14px;color:var(--acc-b);flex:0 0 auto}
.feature .ffjoin{align-self:center;width:10px;height:1px;background:var(--ffline);flex:0 0 auto}
.feature .ffrec{display:flex;align-items:center;gap:8px;background:#0D0D0D;color:var(--bone);padding:5px 16px;white-space:nowrap;border:1px solid var(--ffline)}
.feature .ffrec .l{font:600 var(--fs-small) var(--mono);letter-spacing:.13em;color:var(--monotext);text-transform:uppercase}
.feature .ffrec .v{font:400 23px 'Archivo Black',sans-serif;line-height:1}
.feature .ffrec .v em{font-style:normal;color:var(--acc)}
/* pedigree-style bracket: horizontal line from the H063 box · vertical tick at the headline edge */
.feature .ffbrk{flex:0 0 32px;align-self:stretch;position:relative}
.feature .ffbrk::before{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:var(--ffline)}
.feature .ffbrk::after{content:'';position:absolute;right:0;top:24%;bottom:24%;width:1px;background:var(--ffline)}
/* hook = the FOCUS of the ribbon — larger, never truncated; wraps/stacks on top instead of cutting */
.feature .ffhook{align-self:center;flex:1 1 auto;min-width:0;font:400 clamp(17px,2.7vw,30px)/1.04 'Archivo Black',sans-serif;letter-spacing:.01em;text-transform:uppercase;color:var(--acc-on);padding-left:6px}
/* rotate/scroll arrows — pinned to the photo's TOP-RIGHT corner, tight, arrows only */
.feature .ffrot{position:absolute;top:7px;right:9px;z-index:4;display:flex;gap:5px}
.feature .ffrot button{width:26px;height:26px;border:1px solid rgba(245,243,238,.4);background:rgba(13,13,13,.6);color:var(--bone);font:400 14px var(--sans);display:flex;align-items:center;justify-content:center;cursor:pointer;line-height:1;backdrop-filter:blur(2px)}
.feature .ffrot button:hover{border-color:var(--acc-b);background:rgba(13,13,13,.82)}
/* bottom info block — sits low on the photo, very tight rhythm */
.feature .block{position:absolute;left:0;right:0;bottom:0;padding:18px 28px;z-index:2}
.feature .kick{font:400 13.5px 'Jost','Helvetica Neue',Arial,sans-serif;letter-spacing:.09em;color:var(--acc-b);text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.55)}
.feature h3{font:400 clamp(24px,3.4vw,38px)/1.02 'Archivo Black',sans-serif;text-transform:uppercase;letter-spacing:-.01em;color:var(--bone);margin:1px 0 0;text-shadow:0 1px 10px rgba(0,0,0,.6)}
.feature h3 .xb{font:400 .64em 'Archivo Black',sans-serif;color:#CDC4B4;letter-spacing:.02em;white-space:nowrap}
.feature h3 .xb .x{color:var(--acc-b);font-weight:400;margin:0 4px}
/* metric row — label-LEFT (DOB:), boxes tight together, badges share the line + stack below */
.feature .ffmetrow{display:flex;gap:10px;align-items:flex-start;margin:8px 0 0;flex-wrap:wrap}
.feature .ffmet{display:flex;gap:4px;margin:0;flex-wrap:wrap}
.feature .ffmet .m{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:rgba(11,11,11,.58);border:1px solid rgba(245,243,238,.16);padding:6px 10px}
.feature .ffmet .m .l{font:500 var(--fs-small) var(--mono);letter-spacing:.1em;color:#cfc8ba;text-transform:uppercase;flex:0 0 auto}
.feature .ffmet .m .l::after{content:':'}
.feature .ffmet .m .v{font:400 15px 'Archivo Black',sans-serif;color:var(--bone);white-space:nowrap}
.feature .ffmet .m .v.acc{color:var(--acc-b)}
/* ===== incentive badges = REAL badge art (Wix CDN), ALL shown, no names/stars ===== */
/* badge band — own row, ONE line, shrink-to-fit (colt-card Solo-Select behavior), subtle backing over the photo */
.feature .ffbadges{display:flex;align-items:center;gap:7px;margin:9px 0 0;padding:6px 11px;background:rgba(11,11,11,.5);border:1px solid rgba(245,243,238,.12);flex-wrap:nowrap;overflow:hidden}
.feature .ffbadges img{height:26px;width:auto;max-width:100%;object-fit:contain;flex:0 1 auto;min-width:0;display:block}
/* CTA strip — small, colt-card style w/ key icon (no banner band); sits below the photo */
.feature .ffbottom{background:#141210;border-top:1px solid #201d19}
.feature .ffcta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:11px 20px}
.feature .ffcta a{display:inline-flex;align-items:center;gap:6px;font:600 9px var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:8px 13px;cursor:pointer}
.feature .ffcta a .bico{width:13px;height:10px;flex:0 0 auto}
.feature .ffcta a.p{background:var(--acc);color:var(--acc-on)}
.feature .ffcta a.p .bico{color:var(--acc-on)}
.feature .ffcta a.g{border:1px solid rgba(245,243,238,.32);color:var(--bone);background:rgba(11,11,11,.42)}
.feature .ffcta a.g .bico{color:var(--acc-b)}
.feature .ffcta a.g:hover{border-color:var(--acc-b)}
.feature .ffcta a.on{border-color:var(--acc-b);color:var(--acc-b)}
/* pedigree fold-out — opens under the card the same way the colt cards do (compact split) */
.feature .ffped{display:none;padding:0 20px 16px;background:#141210}
.feature .ffped.open{display:block}
.feature .ffpedgrid{display:grid;grid-template-columns:1fr auto 1fr;gap:0 14px;align-items:center;border-top:1px dashed #2c2820;padding-top:14px}
.feature .ffpedgrid .side{display:flex;flex-direction:column;gap:8px;min-width:0}
.feature .ffpedgrid .side.dam{text-align:right}
.feature .ffpedgrid .plab{font:500 var(--fs-small) var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--acc-b);margin-bottom:1px}
.feature .ffpedgrid .g1 .nm{font:400 14px 'Archivo Black',sans-serif;color:var(--bone);line-height:1.05}
.feature .ffpedgrid .g1 .nm.mare{color:#CDC4B4}
.feature .ffpedgrid .g1 .meta{font:500 var(--fs-small) var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--monotext);margin-top:2px}
.feature .ffpedgrid .g2{display:flex;flex-direction:column;gap:7px}
.feature .ffpedgrid .g2 .nm2{font:600 var(--fs-small) var(--sans);letter-spacing:.02em;color:var(--bone)}
.feature .ffpedgrid .g2 .nm2.mare{color:#CDC4B4}
.feature .ffpedgrid .g2 .deep{font:500 var(--fs-small) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--monotext)}
.feature .ffpedgrid .g2 .pend{color:var(--acc-b);font-size:.85em}
.feature .ffpedgrid .foalbox{align-self:center;text-align:center;border:1px solid var(--ffline);background:#0d0d0d;padding:9px 14px;white-space:nowrap}
.feature .ffpedgrid .foalbox .fl{font:500 var(--fs-small) var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--monotext)}
.feature .ffpedgrid .foalbox .fv{font:400 20px 'Archivo Black',sans-serif;color:var(--bone);line-height:1}
.feature .ffpedgrid .foalbox .fv em{font-style:normal;color:var(--acc)}
.feature .ffpedgrid .foalbox .fm{font:500 var(--fs-small) var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--monotext);margin-top:2px}
@media(max-width:640px){.feature .ffpedgrid{grid-template-columns:1fr;gap:12px}.feature .ffpedgrid .side.dam{text-align:left}}
/* sub-header font options (Johnny picks) */
body[data-subfont="garamond"] .feature .kick{font-family:'EB Garamond',Georgia,serif;font-style:italic;font-weight:500;font-size:16.5px;letter-spacing:.01em;text-transform:none}
body[data-subfont="helv"] .feature .kick{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:600;font-size:12px;letter-spacing:.06em}
body[data-subfont="type"] .feature .kick{font-family:'Jost',system-ui,-apple-system,sans-serif;font-weight:600;font-size:12px;letter-spacing:.13em}
/* v8 hook-position toggle: left tight to the bracket tick (default) · centered in the banner */
body[data-hook="center"] .feature .ffhook{flex:1 1 auto;text-align:center;padding-left:0}
/* when the ribbon gets tight, hook drops to its own full-width line ON TOP of the tag/foal boxes (never truncates) */
@media(max-width:820px){.feature .ffbrk{display:none}.feature .ffhook{order:-1;flex-basis:100%;padding-left:0;margin-bottom:2px}}
.fnav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border:1px solid rgba(245,243,238,.28);background:rgba(13,13,13,.42);color:var(--bone);font:400 20px var(--sans);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:3;backdrop-filter:blur(2px)}
.fnav.prev{left:16px}.fnav.next{right:16px}
.fdots{display:flex;align-items:center;gap:8px;margin-top:11px}
.fdots .d{width:7px;height:7px;border-radius:50%;background:rgba(245,243,238,.26)}
.fdots .d.on{background:var(--acc)}
.fdots .fnote{margin-left:10px;font:500 var(--fs-small) var(--mono);letter-spacing:.16em;color:var(--stone);text-transform:uppercase}

/* ===== LEAN STACKED colt cards (sec 04) — stand-ins for real LEANVAR-BADGED-v26 ===== */
.leanstack{display:flex;flex-direction:column;gap:16px}
.lean{display:grid;grid-template-columns:96px minmax(210px,34%) 1fr;border:1px solid #26231f;background:#141210;overflow:hidden;min-height:186px}
.lean .rec{background:#0F0F0F;border-right:1px solid #201d19;display:flex;flex-direction:column}
.lean .rec .cell{padding:14px 12px;border-bottom:1px solid #201d19;flex:1;display:flex;flex-direction:column;justify-content:center}
.lean .rec .cell:last-child{border-bottom:none}
.lean .rec .l{font:500 var(--fs-small) var(--mono);letter-spacing:.16em;color:var(--monotext);text-transform:uppercase}
.lean .rec .v{font:400 20px 'Archivo Black',sans-serif;color:var(--bone);margin-top:3px;line-height:1}
.lean .rec .v em{font-style:normal;color:var(--acc)}
.lean .rec .cell.sm .v{font-size:15px;color:var(--bone)}
.lean .lph{position:relative;min-height:186px}
.lean .info{padding:16px 20px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.lean .cross{font:400 clamp(17px,1.9vw,21px) 'Archivo Black',sans-serif;text-transform:uppercase;letter-spacing:-.005em;color:var(--bone)}
.lean .cross .x{color:var(--acc-b);margin:0 4px}
.lean .cross .dam{color:#8a8072}
.lean .gs{font:500 var(--fs-small) var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--stone);margin:6px 0 12px}
.lean .gs b{color:var(--acc-b);font-weight:700}
.lean .met{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#201d19;border:1px solid #201d19;max-width:440px}
.lean .met .m{background:#141210;padding:9px 11px}
.lean .met .mv{font:400 12.5px 'Archivo Black',sans-serif;color:var(--acc-b);white-space:nowrap}
.lean .met .mv.tbd{color:var(--stone)}
.lean .met .ml{font:500 var(--fs-small) var(--mono);letter-spacing:.12em;color:var(--monotext);text-transform:uppercase;margin-top:4px}
.lean .band{display:flex;align-items:center;gap:7px;margin-top:12px;flex-wrap:wrap}
.lean .band .bslot{height:24px;padding:0 9px;border:1px solid #2c281f;display:flex;align-items:center;font:600 var(--fs-small) var(--mono);letter-spacing:.1em;color:#8a8072;text-transform:uppercase;white-space:nowrap}
.lean .band .cta{margin-left:auto;display:flex;gap:8px}
.lean .band .cta a{font:600 8.5px var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;padding:8px 14px}
.lean .band .cta .p{background:var(--acc);color:var(--acc-on)}
.lean .band .cta .g{border:1px solid #5a544a;color:var(--bone)}

/* story strip (sec 05) */
.strip{border:1px solid #3a2a18;background:linear-gradient(150deg,#191410,#120f0c);padding:24px 34px;display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.strip .k{width:60px;color:var(--acc);flex:0 0 auto}
.strip h3{font:400 21px 'Archivo Black',sans-serif;text-transform:uppercase}
.strip h3 em{font-style:normal;color:var(--acc-b)}
.strip p{font:300 15px/1.55 var(--sans);color:#cfc8ba;max-width:58ch;margin-top:8px}
.strip p b{color:var(--acc-b);font-weight:600}
.strip .btn{margin-left:auto}

/* reserve band (sec 07 → now before stallions) */
.reserve{border-top:1px solid #26231f;border-bottom:1px solid #26231f;background:var(--bone);color:var(--ink)}
.reserve .in{max-width:1120px;margin:0 auto;padding:32px 34px;display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.reserve h3{font:400 clamp(20px,2.6vw,30px) 'Archivo Black',sans-serif;text-transform:uppercase}
.reserve p{font:300 15.5px/1.5 var(--sans);color:#4a453c;max-width:50ch;margin-top:8px}
.reserve p b{color:var(--burnt-deep);font-weight:600}
.reserve .btn{margin-left:auto}
.reserve .bp .ref{color:#8a7a5c;border-color:#d9cdb4}
.reserve .bp .n{color:var(--burnt-deep);border-color:#d9b98a}

/* feature stallion (sec 06) — burnt copper by role on obsidian */
.stal{display:flex;border:1px solid #26231f;background:#111}
.stal .ph{flex:0 0 46%;min-height:420px;background:linear-gradient(150deg,#17130f,#0e0b09)}
.stal .ph .k{color:#3d342a}
.stal .b{flex:1;padding:30px 40px;display:flex;flex-direction:column;justify-content:center}
.stal .kick{font:500 10px var(--mono);letter-spacing:.24em;color:var(--burnt);text-transform:uppercase}
.stal h3{font:400 clamp(22px,3vw,34px) 'Archivo Black',sans-serif;text-transform:uppercase;margin:12px 0 8px}
.stal .id{font:500 var(--fs-small) var(--mono);letter-spacing:.18em;color:var(--monotext);text-transform:uppercase}
.stal p{font:300 15.5px/1.55 var(--sans);color:#cfc8ba;max-width:46ch;margin:16px 0 4px}
.stal .btn{background:var(--burnt);color:#1a120a}
.stal .ctarow .ghost{border-color:#5a4a38}

/* ===== STALLION lean cards (sec 06.5 — NEW) ===== */
.stalstack{display:flex;flex-direction:column;gap:16px}
.scard{display:grid;grid-template-columns:minmax(200px,32%) 1fr;border:1px solid #211d18;background:linear-gradient(150deg,#141210,#100d0b);min-height:200px;overflow:hidden}
.scard .ph{min-height:200px;background:linear-gradient(150deg,#17130f,#0d0a08)}.scard .ph{position:relative;overflow:hidden}.scard .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.punchrow.blood{gap:20px}.punchrow.blood .punch{min-width:0}.punchrow.blood .pv.name{font:600 13px "Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1.18;color:var(--burnt);letter-spacing:.005em}
.scard .ph .k{color:#3d342a}
.scard .b{padding:22px 26px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.scard .kick{font:500 9px var(--sans);letter-spacing:.22em;color:var(--burnt);text-transform:uppercase}
.scard h4{font:400 clamp(19px,2.2vw,25px) 'Archivo Black',sans-serif;text-transform:uppercase;margin:8px 0 5px;color:var(--bone)}
.scard .id{font:500 var(--fs-small) var(--sans);letter-spacing:.16em;color:var(--monotext);text-transform:uppercase}
.scard .punchrow{display:flex;gap:34px;margin:16px 0 14px;flex-wrap:wrap}
.scard .punch .pv{font:400 22px 'Archivo Black',sans-serif;color:var(--burnt)}
.scard .punch .pv.tbd{color:var(--stone);font-size:15px}
.scard .punch .pl{font:500 var(--fs-small) var(--sans);letter-spacing:.14em;color:var(--monotext);text-transform:uppercase;margin-top:5px}
.scard .ach{font:500 var(--fs-small) var(--sans);letter-spacing:.1em;color:var(--burnt);text-transform:uppercase;margin:0 0 12px;line-height:1.5}
.scard .line{font:300 13.5px/1.5 var(--sans);color:#b7b1a4;max-width:52ch}
.stal .spunch{display:flex;gap:34px;margin:16px 0 4px;flex-wrap:wrap}
.stal .spunch .v{font:400 21px 'Archivo Black',sans-serif;color:var(--burnt)}
.stal .spunch .v.tbd{color:var(--stone);font-size:15px}
.stal .spunch .l{font:500 var(--fs-small) var(--mono);letter-spacing:.14em;color:var(--monotext);text-transform:uppercase;margin-top:5px}
.scard .foot{display:flex;align-items:center;gap:10px;margin-top:16px}
.scard .foot .gk{width:26px;color:var(--gold);opacity:.9}
.scard .foot a{font:500 var(--fs-small) var(--sans);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;text-underline-offset:3px;padding:7px 14px;background:#221E18;border:1px solid #4a443c;border-radius:2px;color:var(--bone);transition:all .15s}.scard .foot a:hover{border-color:#FFFFFF;color:var(--burnt);text-decoration:underline}


.scard .foot .fee{margin-left:auto;font:500 var(--fs-small) var(--sans);letter-spacing:.16em;color:var(--burnt);text-transform:uppercase}

/* why band (sec 08) */
.why{text-align:center;max-width:820px;margin:0 auto}
.why--top{max-width:1180px} /* Johnny 08-02i: "packed up and tight, wraps" -- widen to match the badge band's own 1180px so the whole intro block uses the page width instead of a narrow 820px column */
.why .kick{font:500 10px var(--mono);letter-spacing:.28em;color:var(--stone);text-transform:uppercase}
.why h2{font:400 clamp(22px,3.4vw,38px)/1.2 'Archivo Black',sans-serif;text-transform:uppercase;margin:10px 0 12px}
.why h2 em{font-style:normal;color:var(--noble-gold)}
.why p{font:300 var(--fs-body)/1.6 var(--sans);color:#cfc8ba}
.blead{font:600 13px var(--sans);letter-spacing:.02em;color:var(--bone);text-align:center;margin:12px auto 0;max-width:520px} /* Johnny 08-02d: 22px->12px, closes remaining dead space above this line */
.badgeband{display:flex;gap:14px;justify-content:center;margin-top:16px;flex-wrap:nowrap;max-width:1180px;margin-left:auto;margin-right:auto}
.bcard{flex:1 1 0;min-width:0;max-width:186px;padding:16px 14px;border:1px solid #33291c;background:rgba(200,169,110,.04);display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}
.bimg{height:44px;width:auto;max-width:120px;object-fit:contain;display:block}
.bname{font:700 var(--fs-small) var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.bwhy{font:400 var(--fs-desc) var(--sans);line-height:1.45;color:#b9ac93}
.bnote{font:500 var(--fs-small) var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--monotext);text-align:center;margin-top:14px}
@media(max-width:700px){.badgeband{flex-wrap:wrap}.bcard{flex:1 1 44%;max-width:none}}

/* COLT-CARD FIXED HEIGHT — 2026-07-22 (WEB), replaces JS auto-height guessing.
   .coltmount overflow:hidden is the hard backstop; the four breakpoints below are
   real measured heights (+buffer) of the actual 5-card stack, matched to the card
   doc's own @media(max-width:820px) breakpoint where it switches from a stacked
   mobile layout to a compact grid. Re-measure and update these four numbers if
   Lenn changes the foal-card count. */
.coltmount{overflow:hidden}
#coltframe{height:1355px}
@media(max-width:872px){#coltframe{height:4900px}}
@media(max-width:702px){#coltframe{height:4260px}}
@media(max-width:552px){#coltframe{height:3760px}}
@media(max-width:472px){#coltframe{height:3480px}}

footer{border-top:1px solid #26231f;padding:34px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
footer .t{font:500 var(--fs-small) var(--mono);letter-spacing:.2em;color:var(--monotext);text-transform:uppercase}
footer .k{width:38px;color:#4a453c}

@media(max-width:860px){
  .lean{grid-template-columns:70px 1fr}.lean .lph{display:none}
  .scard{grid-template-columns:1fr}.scard .ph{min-height:200px}
  .stal{flex-direction:column}.stal .ph{min-height:260px}
  nav .links{display:none}
}

/* ===== GRAFTED FROM KEYFOLD R7 — hero + Option A overlay mast (ART lane). Key defaults baked: LARGE + RANCH ORANGE. Test-harness dropped. ===== */
/* R7 brand-kit tokens (adds --orange/--serif-auth/--serif-human/--display/--label/--subtext/--hairline) */
:root{
    /* BRAND KIT v2.1 TOKENS */
    --white:#FFFFFF; --paper:#FBFAF6; --bone:#F5F3EE;
    --ink:#231F20; --obsidian:#0D0D0D;
    --hairline:#E2DCCE; --stone:#BFB4A0;
    --subtext:#5d574d; --label:#8a8072;
    --orange:#FF7300; --orange-lt:#FF8A2E; --orange-deep:#E35205; --copper:#D08C4E;
    --gold:#C8A96E;
    --serif-auth:'Cinzel','Trajan Pro','Copperplate',serif;
    --serif-human:'EB Garamond',Garamond,'Baskerville',serif;
    --mono:'Jost',system-ui,-apple-system,sans-serif;
    --display:'Archivo Black','Arial Black',sans-serif;
  }
/* ================= THE HERO ================= */
  .hero{position:relative;background:var(--obsidian);height:100vh;height:100svh;min-height:340px;overflow:hidden;border-bottom:1px solid var(--hairline);margin-top:0;width:100vw;margin-left:calc(50% - 50vw)}
  .glowsoft{position:absolute;inset:0;background:radial-gradient(ellipse 42% 60% at 63% 45%, rgba(255,115,0,.34) 0%, rgba(227,82,5,.16) 42%, rgba(13,13,13,0) 72%)}
  .glowdots{position:absolute;inset:0;color:var(--orange);opacity:.6}
  .glowdots svg{width:100%;height:100%;display:block}
  .horse{position:absolute;top:0;right:0;width:78%;height:100%;
    background-image:url(/images/home-photo-2-05146a0f86.webp);
    background-size:cover;background-position:center;
    -webkit-mask-image:radial-gradient(ellipse 62% 78% at 58% 46%, #000 38%, transparent 78%);
            mask-image:radial-gradient(ellipse 62% 78% at 58% 46%, #000 38%, transparent 78%);}
  .topline{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:clamp(8px,3svh,30px) clamp(20px,4.5vw,64px);z-index:5}
  .brandrow{display:flex;align-items:center;gap:8px}
  .keybox{width:52px;height:36px;color:var(--gold)}
  .keybox svg{width:100%;height:100%;display:block}
  .brandname{font-family:var(--serif-auth);font-weight:600;font-size:16px;letter-spacing:.3em;color:var(--bone)}
  .quietnav{display:flex;gap:22px;align-items:center}
  .quietnav a{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--stone);text-decoration:none;display:flex;align-items:center;gap:5px;transition:color .18s}
  .quietnav .qd{width:4px;height:4px;border-radius:50%;background:var(--gold);display:inline-block;flex:none;transition:background .18s,transform .18s}
  .quietnav a:hover{color:var(--bone)}
  .quietnav a:hover .qd{background:var(--orange);transform:scale(1.35)}
  .statement{position:absolute;left:clamp(20px,4.5vw,64px);top:46%;transform:translateY(-50%);z-index:5;max-width:520px}
  .statement h2{font-family:var(--display);font-size:clamp(34px,4.6vw,58px);line-height:1;letter-spacing:.01em;color:var(--bone);text-transform:uppercase}
  .statement h2 .hot{color:var(--orange)}
  .statement p{margin-top:3px;font-family:var(--serif-human);font-style:italic;font-size:23px;color:#bfbfbf;max-width:420px}

  /* THE FORK — split slab, BOTH doors in the lit voice, FOALS first */
  .fork-split{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr 1fr;z-index:6;height:clamp(46px,9svh,84px);border-top:1px solid rgba(226,220,206,.25)}
  .fork-split a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;text-decoration:none;
    font-family:var(--display);font-size:clamp(20px,2.4vw,30px);letter-spacing:.05em;text-transform:uppercase;
    color:var(--orange);background:rgba(255,115,0,.09);box-shadow:inset 0 -4px 0 var(--orange);transition:background .18s}
  .fork-split a:hover{background:rgba(255,115,0,.18)}
  .fork-split a + a{border-left:1px solid rgba(226,220,206,.25)}
  .fork-split a .maincopy{display:flex;align-items:center;gap:7px}
  .fork-split a .arrow{font-family:var(--sans);font-weight:300;font-size:1.1em;transform:translateY(-1px);margin-left:1px;transition:transform .18s}
  .fork-split a:hover .arrow{transform:translateY(-1px) translateX(3px)}
  .fork-split a .dkey{width:0.82em;color:currentColor;opacity:.9;display:inline-block;vertical-align:-0.08em}
  .fork-split a .sub{font-family:var(--mono);font-size:var(--fs-small);letter-spacing:.26em;color:var(--stone)}

  
/* ============ KEYFOLD TEST ============ */
  .statement{--kfline:var(--orange);--kfsw:0.45;--kfsize:1.25}
  .kf{position:absolute;color:var(--kfline);pointer-events:none}
  .kf svg{width:100%;height:auto;display:block;overflow:visible}
  .kf path,.kf rect{fill:none;stroke:currentColor;stroke-width:calc(var(--kfsw)*1px)}
  .kf.behind{left:-15%;top:50%;transform:translateY(-50%);width:calc(196% * var(--kfsize));z-index:-1}
  .kf.above{left:2%;bottom:calc(100% - 6vh);width:calc(116% * var(--kfsize));z-index:2}
  .kf.below{left:2%;top:calc(100% - 9.4vh);width:calc(122% * var(--kfsize));z-index:2}
  .kfbar{display:flex;flex-wrap:wrap;gap:22px;align-items:center;padding:16px 0;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);margin-top:8px}
  .kfbar .lbl{font-family:var(--mono);font-size:var(--fs-small);letter-spacing:.24em;text-transform:uppercase;color:var(--label);margin-right:4px}
  .kfbar .grp{display:flex;align-items:center;gap:7px}
  .kfchip{width:22px;height:22px;border-radius:50%;cursor:pointer;border:1px solid var(--stone);outline:2px solid transparent;outline-offset:2px}
  .kfchip.on{outline-color:var(--ink)}
  .kfbtn{background:none;border:1px solid var(--stone);color:var(--ink);font-family:var(--mono);font-size:var(--fs-small);letter-spacing:.14em;padding:5px 10px;cursor:pointer;text-transform:uppercase}
  .kfbtn.on{background:var(--ink);color:var(--paper)}
  @media (max-width:640px){
    .quietnav{display:none}
    .statement{max-width:82vw;--kfsize:1}
    .statement p{max-width:74vw}
    .kf.behind{width:calc(132% * var(--kfsize));left:-8%}
  }



/* ===== TWO-DOOR SECTION (A+B) — 2026-07-19 · v10 Johnny revisions =====
   Cards are SPACED apart to showcase them. Each card is a DIV (not a link) because
   it now holds TWO real buttons — nested <a> would be invalid HTML.
   Buttons are transparent-gradient so the photo reads through them (Johnny's spec). */
.doors{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:30px 26px 36px;max-width:1360px;margin:0 auto}
.doors .door{position:relative;overflow:hidden;min-height:clamp(330px,34vw,430px);background:#151310;
  display:flex;flex-direction:column;justify-content:flex-end;
  box-shadow:0 18px 44px rgba(0,0,0,.42);transition:box-shadow .35s,transform .35s cubic-bezier(.22,.61,.36,1)}
.doors .door:hover{box-shadow:0 22px 56px rgba(0,0,0,.55);transform:translateY(-3px)}
.doors .door img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,.61,.36,1)}
/* PICTURE wrappers (WebP + JPEG fallback, 2026-07-19): make the picture element itself
   the positioned box so it never participates in flex/line layout. The img rules above
   are unchanged and still match (descendant selectors, no > child selectors in this sheet). */
.doors .door picture,.scard .ph picture{position:absolute;inset:0;display:block}
.doors .door:hover img{transform:scale(1.045)}
.doors .scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,8,8,.94) 0%,rgba(8,8,8,.66) 40%,rgba(8,8,8,.10) 78%)}
.doors .foot{position:relative;z-index:2;padding:0 28px 26px}
.doors .topline2{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}
.doors .copy{min-width:0}
.doors .dkick{font-family:var(--mono);font-weight:700;font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--acc-b)}
.doors .dtitle{font-family:var(--display);font-size:clamp(32px,4.2vw,52px);line-height:.92;letter-spacing:-.01em;text-transform:uppercase;margin:9px 0 8px;color:var(--bone)}
.doors .dsub{font-family:var(--sans);font-size:15px;color:#cfc9be;line-height:1.5}

/* --- METRIC BOX: semi-transparent + glow, bottom right of the photo area --- */
.doors .metric{flex:0 0 auto;text-align:right;padding:15px 18px 14px;border:1px solid rgba(226,220,206,.20);
  background:rgba(13,13,13,.42);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);
  box-shadow:0 0 26px rgba(255,115,0,.16),inset 0 0 22px rgba(255,115,0,.05);transition:box-shadow .3s,border-color .3s}
.doors .door:hover .metric{box-shadow:0 0 34px rgba(255,115,0,.26),inset 0 0 26px rgba(255,115,0,.07);border-color:rgba(255,115,0,.34)}
/* v11-re-apply 1/3 (2026-07-19): metric rows now read like the COLT CARD .met cell -
   [year] [value] [word] on one baseline. COLORS UNCHANGED from the approved v10 state:
   year orange, value bone/white, word stone by default, orange on the .hot row.
   Only real color change = .qm is now 1em (same size as the value) per Johnny's spec. */
.doors .mrow{display:flex;align-items:baseline;justify-content:flex-end;gap:7px;white-space:nowrap}
.doors .mrow + .mrow{margin-top:7px;padding-top:7px;border-top:1px solid rgba(226,220,206,.13)}
.doors .myr{font-family:var(--display);font-size:15px;letter-spacing:-.01em;color:var(--acc)}      /* every year in orange */
.doors .mnum{font-family:var(--display);font-size:30px;line-height:.9;letter-spacing:-.02em;color:var(--bone);text-shadow:0 0 16px rgba(255,115,0,.30)}
.doors .mword{font-family:var(--mono);font-weight:700;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--stone)}
.doors .mrow.hot .mword{color:var(--acc-b)}      /* '26 row: words in orange */
.doors .mrow.sm .myr{font-size:12px}
.doors .mrow.sm .mnum{font-size:21px;color:#ded8cd;text-shadow:0 0 12px rgba(255,115,0,.18)}
.doors .mrow.sm .mword{font-size:9px}
.doors .qm{font-family:var(--display);font-size:1em;color:var(--acc);letter-spacing:0;margin-left:1px}

/* --- THE TWO BUTTONS: transparent gradient, photo reads through --- */
.doors .btns{display:flex;gap:10px;align-items:stretch}
.doors .btns .btn.down{flex:0 0 auto}
.doors .btns .btn.go{flex:1 1 auto;min-width:0}
.doors .btn{display:flex;align-items:center;justify-content:space-between;gap:14px;text-decoration:none;position:relative;overflow:hidden;z-index:0;
  padding:11px 15px;border:1px solid rgba(226,220,206,.26);color:var(--bone);
  background:linear-gradient(105deg,rgba(245,243,238,.13),rgba(245,243,238,.03));
  -webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);
  transition:background .25s,border-color .25s,transform .25s cubic-bezier(.22,.61,.36,1)}
.doors .btn:hover{background:linear-gradient(105deg,rgba(245,243,238,.30),rgba(245,243,238,.12));border-color:rgba(245,243,238,.55)} /* Johnny 08-01: no orange, no gold on buttons -- same neutral bone tone, just brighter/more opaque on hover */
.doors .btn .bl{min-width:0}
.doors .btn .bt{font-family:var(--sans);font-weight:600;font-size:12px;letter-spacing:.01em;display:block;line-height:1.2;white-space:nowrap}
.doors .btn .bs{font-family:var(--mono);font-size:8px;letter-spacing:.17em;text-transform:uppercase;color:var(--stone);display:block;margin-top:5px}
.doors .btn .ar{font-family:var(--sans);font-weight:300;font-size:15px;line-height:1;flex:0 0 auto;transition:transform .25s cubic-bezier(.22,.61,.36,1)}
.doors .btn.go:hover .ar{transform:translateX(5px)}
.doors .btn.down{grid-template-columns:none}
.doors .btn.down:hover .ar{transform:translateY(4px)}
.doors .btn.down .bt{white-space:nowrap}

/* Johnny 08-09: middle widths (701-1270) had NO wrap rule -- 3 foals buttons crammed into one
   shrinking row at every step-down. Same 2+1 pattern as the phone fix (WEB125); wide keeps the
   one-row look Johnny picked 08-07 (WEB119). */
@media (min-width:701px) and (max-width:1270px){
  .doors .btns.btns-foals{flex-wrap:wrap}
  .doors .btns.btns-foals .btn.down{flex:1 1 calc(50% - 5px)}
  .doors .btns.btns-foals .btn.go{flex:1 1 100%}
  .doors .btn .bt,.doors .btn .bs{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
@media (max-width:700px){
  .doors{grid-template-columns:1fr;gap:18px;padding:22px 16px 28px}
  .doors .door{min-height:clamp(300px,58vw,380px)}
  .doors .foot{padding:0 18px 20px}
  .doors .topline2{gap:12px;margin-bottom:16px}
  .doors .metric{padding:11px 13px 10px}
  .doors .mnum{font-size:24px}.doors .mrow.sm .mnum{font-size:17px}
  .doors .btns{flex-direction:column}
  .doors .btn{padding:12px 14px}
  /* WEB125 08-07: Foals' 3-button stack (2026/2027/See All) made the Foals door noticeably
     taller than Stallions' 2-button stack on phone widths -- lopsided, cramped, Johnny's
     "make look good on phone views and stack well." Fix scoped to the Foals door only
     (.btns-foals, new class on that one .btns div) -- Stallions' plain 2-button stack was
     already fine and is untouched: 2026/2027 Foals sit side by side (compact quick-look
     pair), See All wraps to its own full-width row below -- 2 rows total, matching
     Stallions' 2-row height instead of 3 stacked rows. Text truncates with ellipsis
     instead of wrapping/overflowing if a label ever runs long on a narrow phone. */
  .doors .btns.btns-foals{flex-direction:row;flex-wrap:wrap}
  .doors .btns.btns-foals .btn.down{flex:1 1 calc(50% - 5px)}
  .doors .btns.btns-foals .btn.go{flex:1 1 100%}
  .doors .btn .bt{overflow:hidden;text-overflow:ellipsis}
  .doors .btn .bs{overflow:hidden;text-overflow:ellipsis}
}
@media (prefers-reduced-motion:reduce){
  .doors .door,.doors .door img,.doors .btn,.doors .btn .ar,.doors .metric{transition:none!important}
  .doors .door:hover{transform:none}
}
/* the inherited .statcount glow is sized for the old big stat cells — rein it in
   inside the metric box so it reads as a lit number, not a blob over the horse */
.doors .metric .statcount::before{inset:-14% -12%;background:radial-gradient(circle,rgba(255,138,46,.22),transparent 62%)}

/* 1 · SIGNATURE KEY GLEAM — clean-loop trace, rests fully off the key. Key geometry never redrawn. */
.kf svg{animation:keyFlare 1.6s ease-out .5s 1, keySheen 13s ease-in-out 3s infinite}
@keyframes keyFlare{0%{filter:drop-shadow(0 0 0 rgba(255,186,124,0))}28%{filter:drop-shadow(0 0 12px rgba(255,186,124,.55))}100%{filter:drop-shadow(0 0 0 rgba(255,186,124,0))}}
@keyframes keySheen{0%,88%,100%{filter:brightness(1)}94%{filter:brightness(1.32) drop-shadow(0 0 3px rgba(255,224,170,.45))}}

/* 2 · HALFTONE SCREEN — atmosphere field behind TITLES only (never on product photos, Law A) */
.htwrap{position:relative;overflow:hidden}
.htwrap>h2{position:relative;z-index:2}
.halftone{position:absolute;inset:-18% -6% -30% -4%;z-index:1;pointer-events:none;
  background-image:radial-gradient(currentColor 1.15px, transparent 1.3px);
  background-size:9px 9px; opacity:.14;
  -webkit-mask-image:linear-gradient(90deg,#000,transparent 62%);
          mask-image:linear-gradient(90deg,#000,transparent 62%)}
.halftone.o{color:var(--acc)} .halftone.g{color:var(--gold)}

/* 3 · GRID-PAPER — rigid cousin, behind data only (dark-surface values) */
.stats{position:relative}
.gridpaper{position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(currentColor 1px,transparent 1px),linear-gradient(90deg,currentColor 1px,transparent 1px);
  background-size:26px 26px; color:#4a443b; opacity:.5;
  -webkit-mask-image:radial-gradient(120% 100% at 50% 0,#000 40%,transparent 100%);
          mask-image:radial-gradient(120% 100% at 50% 0,#000 40%,transparent 100%)}
.stats .s{position:relative;z-index:3}

/* 4 · STAT-GLOW + COUNT-UP — bloom sits BEHIND the number, never on the text.
   NOTE: R&D's law reserves the glow for money/LTE; Johnny called full rollout on the HOME counts (2026-07-19). */
.statcount{position:relative}
.statcount::before{content:"";position:absolute;inset:-40% -30%;border-radius:50%;z-index:-1;
  background:radial-gradient(circle,rgba(255,138,46,.30),transparent 68%);opacity:0;transition:opacity 1.1s ease}
.statcount.lit::before{opacity:1}

/* 5 · ENTRANCE KIT — transform+opacity only, respects reduced-motion */
/* NO-JS / SLOW-JS FAILSAFE (2026-07-19): the hidden start state is gated behind html.js,
   which the head script adds before first paint. If scripting is off, or the head script
   never runs, the class is never added and this content is simply VISIBLE — it can no
   longer be left invisible by a script that stalls. Transitions stay ungated so the
   animation is identical when JS is healthy. The .in rules are gated too, because
   html.js .rise (0,2,1) would otherwise outrank a bare .rise.in (0,2,0). */
.rise{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.slidein{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
/* STRIPPED 2026-07-21 (WEB, Johnny's call): the fade-in-on-scroll effect was the root
   cause of three separate invisible-content bugs this session (black-void hero blocks,
   the coltmount/foal-card wrapper, and whatever produced the latest blank-space report).
   Same mechanism, same failure mode, three times. Removing the opacity:0 starting state
   entirely -- content now just renders, no animation, no dependency on any observer or
   failsafe firing correctly. The .in / transition CSS below and the reveal JS at the
   bottom of body are now harmless no-ops, left in place rather than torn out by hand
   under time pressure -- safe to clean up properly in a later pass. */
html.js .rise{opacity:1;transform:none}
html.js .slidein{opacity:1;transform:none}
html.js .rise.in,html.js .slidein.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .rise,.slidein{opacity:1!important;transform:none!important;transition:none}
  .kf svg{animation:none!important} .kf .ktrace{display:none}
}
.stkbrands{background:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border-bottom:none!important}@media(max-width:820px){.zph{min-height:0!important;height:auto!important;aspect-ratio:auto!important;background:#141414}.zph img{position:static!important;width:100%!important;height:auto!important;display:block!important;object-fit:contain!important}}
/* Johnny 08-02: aged filter added to match every other dark section -- position:relative;overflow:hidden hosts the reused .rd-civilwar-ov overlay, same technique/asset as the other 3 sections. */
.ftr{width:100%;background:#0D0D0D;color:#F5F3EE;font-family:var(--sans);border-top:1px solid rgba(245,243,238,.12);position:relative;overflow:hidden}
.ftr::after{content:'';position:absolute;inset:0;background:var(--copper);mix-blend-mode:screen;opacity:.16;pointer-events:none;z-index:0} /* R&D 08-02b: overlay blend is near-invisible on the near-black #0D0D0D footer bg (overlay math ~= multiply on dark bases, darkens instead of tinting) -- switched to screen, which always lightens, so the copper actually reads as a warm wash instead of doing nothing */
.ftr-top,.ftr-bottom{position:relative;z-index:1} /* R&D 08-02: copper aged filter -- overlay tint on top of the existing civilwar grain, footer only, single-property change, no new texture asset */
.ftr .rd-civilwar-ov{mix-blend-mode:screen}
.ftr-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding:22px clamp(16px,5vw,40px) 16px}
.ftr-brand{display:flex;align-items:center;text-decoration:none;color:inherit}
.ftr-brand svg,.ftr-brand img{height:40px;width:40px;display:block}
.ftr-word{font-family:'Cinzel',serif;font-weight:600;font-size:11px;letter-spacing:.22em;text-transform:uppercase;margin-left:8px;white-space:nowrap;color:var(--bone)}
/* Johnny 08-02: footer nav was inheriting the bare `nav{}` rule meant for the sticky site header (background/border/padding/position:sticky) -- both are literally <nav> tags, no scoping before this. Reset here, header rule itself untouched. */
.ftr-links{display:flex;align-items:center;gap:clamp(10px,2vw,22px);flex-wrap:wrap;background:none;border:none;padding:0;position:static;top:auto;backdrop-filter:none;z-index:auto}
.ftr-links a{position:relative;color:var(--noble-gold);text-decoration:none;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;opacity:.9;transition:opacity .2s,color .2s;white-space:nowrap}
.ftr-links a::before{content:"– ";opacity:.55}
.ftr-links a::after{content:" –";opacity:.55}
.ftr-links a .ftr-ul{position:absolute;left:10px;right:10px;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.ftr-links a:hover{opacity:1;color:var(--bone)}
.ftr-links a:hover .ftr-ul{transform:scaleX(1)}
.ftr-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:14px clamp(16px,5vw,40px) 22px;font-size:11px;letter-spacing:.04em;color:#8F8F8F}
@media(max-width:560px){.ftr-top,.ftr-bottom{flex-direction:column;align-items:flex-start}}

/* FONT-SIZE TOKENS -- added 2026-08-06, Johnny's floor picks, built for an easy sitewide swap later. Distinct selectors keep their own class/letter-spacing/color; only the SIZE VALUE routes through these. --fs-body = normal reading text (16px). --fs-desc = the badge/description-text category Johnny picked separately (13px, currently only .bwhy). --fs-small = the new small-text DEFAULT floor (12px) for everything else small that hasn't been individually tuned yet. --fs-small-tight = the rare, very-specific-case floor (10px) for short tags/units only -- not a default. */
:root{--fs-body:16px;--fs-desc:13px;--fs-fact:14px;--fs-small:12px;--fs-small-tight:10px;}
:root{--rope-key:url("/img/hiro-rope3-gold-v2.png");--rd-aged-tex:url("/img/img-203.webp");;}
.v1nav{justify-content:flex-start;position:sticky;top:0;z-index:9999;display:flex;flex-wrap:wrap;row-gap:6px;align-items:center;gap:clamp(8px,1.8vw,22px);
 width:100%;box-sizing:border-box;align-self:stretch;padding:12px clamp(16px,5vw,40px);
 font-family:var(--sans);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);
 border-bottom:1px solid}
.v1nav .v1brand{display:flex;align-items:center;margin-right:auto;text-decoration:none;color:inherit}
.v1nav .v1brand svg{height:26px;width:auto;display:block}
.ropekey{background-image:var(--rope-key);background-size:contain;background-repeat:no-repeat;background-position:center;display:inline-block;flex:0 0 auto}
.ropekey--nav{width:38px;height:38px}
.ropekey--footer{width:38px;height:38px}.v1nav .v1word{font-family:'Cinzel',serif;font-weight:600;font-size:clamp(10px,2.6vw,13px);letter-spacing:.22em;text-transform:uppercase;margin-left:5px;white-space:nowrap}
.v1nav a.v1lnk{position:relative;color:var(--v1acc);text-decoration:none;font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;
 font-weight:600;opacity:1;transition:opacity .2s,color .2s;white-space:nowrap}
.v1nav a.v1lnk::before{content:"– ";opacity:.55}
.v1nav a.v1lnk .v1ul{position:absolute;left:14px;right:14px;bottom:-5px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.v1nav a.v1lnk:hover{opacity:1;color:#F5F3EE}
.v1nav a.v1lnk:hover .v1ul{transform:scaleX(1)}
.v1nav a.v1lnk.on{opacity:1}
.v1nav a.v1lnk.on .v1ul{transform:scaleX(1)}
/* WEB120 08-07: Facebook icon, Option A2 -- Johnny's pick (2026-08-07). Solid gold circle badge
   with the Facebook "f" knocked out in the nav's own dark background color (reads as a cut coin,
   not a filled icon), same dash-prefix rhythm as the other nav links. Hover flips gold->bone,
   matching the rest of the nav's hover language. Discussion file:
   _DRAFTS_HEADER_20260807/NobleRanch_HEADER_FACEBOOKICON-OPTIONS_20260807.html (Option A2). */
.fbA2{display:inline-flex;align-items:center}
.fbA2 .badge{width:20px;height:20px;transition:filter .2s}
.fbA2 .badge circle{fill:var(--v1acc);transition:fill .2s}
.fbA2 .badge path{fill:#17120b}
.fbA2:hover .badge circle{fill:#F5F3EE}
.v1nav--dark{background:#17120b;border-color:#5C3A20;color:#F5F3EE;--v1acc:#C99A3B}
.v1nav--dark::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.42;mix-blend-mode:screen;background-image:var(--rd-aged-tex);background-size:cover;background-position:center}
@media(max-width:560px){.v1nav{gap:11px;padding:10px 14px}.v1nav a.v1lnk{font-size:11px;letter-spacing:.10em}
 .v1nav .v1brand svg{height:22px}}
.flic{width:15px;height:15px;display:inline-block;object-fit:contain}
.flic-h{display:none}
.v1nav a.v1lnk:hover .flic-r,.v1nav a.v1lnk:focus-visible .flic-r{display:none}
.v1nav a.v1lnk:hover .flic-h,.v1nav a.v1lnk:focus-visible .flic-h{display:inline-block}

.v37foot{position:relative;z-index:2;width:100%;box-sizing:border-box;align-self:stretch;overflow:hidden;padding:22px clamp(16px,5vw,40px);background:#17120b;border-top:1px solid #5C3A20}
.v37foot::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:var(--rd-aged-tex);background-size:cover;background-position:center;mix-blend-mode:screen;opacity:.42}
.v37row{display:flex;align-items:center;justify-content:space-between;gap:16px 32px;flex-wrap:wrap;max-width:1400px;margin:0 auto}
.v37left{display:flex;align-items:center;gap:clamp(20px,3vw,44px);flex-wrap:wrap}
.v37brand{display:inline-flex;align-items:center;gap:6px;color:#D2C8BA;text-decoration:none}
.v37brand:hover{color:#D2C8BA}
.v37word{font-family:'Cinzel',serif;font-weight:600;font-size:clamp(12px,1.6vw,15px);letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;color:#F5F3EE}

.footlinks{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:4px clamp(12px,2vw,22px);margin:0;background:none;border:none;padding:0;position:static;top:auto;backdrop-filter:none;box-shadow:none}
.flink{font-family:'Jost',sans-serif;font-weight:600;font-size:var(--fs-small);letter-spacing:.1em;text-transform:uppercase;color:#C99A3B;text-decoration:none;padding:2px 0;line-height:1;transition:color .2s ease-out;display:inline-flex;align-items:center;gap:4px}
.flink:hover,.flink:focus-visible{color:#F5F3EE}
.flink::before{content:"\2013\00a0";opacity:.55}
.flic{width:15px;height:15px;display:inline-block;object-fit:contain}
.flic-h{display:none}
.flink:hover .flic-r,.flink:focus-visible .flic-r,
.v1nav a.v1lnk:hover .flic-r,.v1nav a.v1lnk:focus-visible .flic-r{display:none}
.flink:hover .flic-h,.flink:focus-visible .flic-h,
.v1nav a.v1lnk:hover .flic-h,.v1nav a.v1lnk:focus-visible .flic-h{display:inline-block}
.v1nav a.v1lnk{display:inline-flex;align-items:center;gap:6px}
.v37right{display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:flex-end}
.cr{margin:0;font-family:'Jost',sans-serif;font-size:var(--fs-small);letter-spacing:.06em;text-transform:uppercase;color:#8f8168;text-align:right}
.social{display:flex;justify-content:flex-end;gap:10px}
.ftsoc{display:inline-flex;color:#C99A3B;transition:color .2s ease-out,transform .2s ease-out}
.ftsoc:hover,.ftsoc:focus-visible{color:#F5F3EE;transform:translateY(-1px)}
.ftsoc svg{width:30px;height:30px;fill:currentColor;display:block}
@media(max-width:700px){.v37row,.v37left,.footlinks,.v37right{justify-content:center;text-align:center}
.flic{width:15px;height:15px;display:inline-block;object-fit:contain}
.flic-h{display:none}
.flink:hover .flic-r,.flink:focus-visible .flic-r{display:none}
.flink:hover .flic-h,.flink:focus-visible .flic-h{display:inline-block}
}


.fbmini{position:relative;margin:0;overflow:hidden;min-height:170px;display:flex;align-items:flex-end;border-radius:0}
.fbmini .fbminiphoto{position:absolute;inset:0;z-index:-2}
.fbmini .fbminiphoto img{width:100%;height:100%;object-fit:cover;object-position:center 45%;display:block}
.fbmini .fbminiscrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(12,11,9,.72) 0%,rgba(12,11,9,.38) 45%,rgba(12,11,9,0) 100%)}
.fbmini::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.18;mix-blend-mode:screen;background-image:var(--rd-aged-tex);background-size:cover;background-position:center}
.fbmini .fbminicontent{position:relative;z-index:1;padding:16px 16px 18px;width:100%}
.fbmini .fbminibadge{display:flex;align-items:center;gap:7px;margin-bottom:6px}
.fbmini .fbminibadge svg{width:16px;height:16px;fill:var(--gold);display:block}
.fbmini .fbminibadge span{font-family:var(--mono);font-weight:700;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone)}
.fbmini .fbminih{font-family:var(--serif-auth);font-size:17px;color:var(--bone);margin-bottom:2px}
.fbmini .fbminisub{font-family:var(--sans);font-size:12px;color:#CFC5B6;line-height:1.4;max-width:260px}
.fbbtn{display:inline-block;margin-top:10px;padding:9px 18px;border:none;border-radius:0;color:#231207;background:var(--gold);font-family:var(--mono);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;position:relative;overflow:hidden;z-index:0;transition:background .15s,color .15s}
.fbbtn::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.16;mix-blend-mode:multiply;background-image:var(--rd-aged-tex);background-size:cover;background-position:center}
.fbbtn:hover{background:#9A7B45;color:#231207}
.fbbtn span{position:relative}



/* PHONE HEADER — OPTION C "one row, icons only" — Johnny's pick 2026-08-27.
   ≤640px: brand left, the four section icons + FB right, labels and dashes off.
   Rendered + eye-checked at 390px and 320px before integration (live-site iframe
   prototype, identical CSS). Key: WEB-HEADERC-INTEGRATED-0827 */
@media(max-width:640px){
 .v1nav{flex-wrap:nowrap;justify-content:flex-end;gap:clamp(8px,4vw,18px);padding:8px 12px}
 .v1nav .v1brand{margin-right:auto;flex-shrink:0}
 .v1nav .ropekey--nav{width:30px;height:30px;flex-shrink:0}
 .v1nav a.v1lnk::before,.v1nav a.v1lnk::after{content:none}
 .v1nav a.v1lnk{font-size:0;letter-spacing:0;line-height:0}
 .v1nav a.v1lnk img.flic{width:19px;height:19px}
}

  .nrhero{
    /* ---- scoped tokens, locked Brand Kit v3 values (2026-08-01) ---- */
    --obsidian:#0D0D0D;
    --ink:#242424;
    --bone:#F5F3EE;
    --white:#FFFFFF;
    --gold:#C99A3B;
    --stud-dark:#2A1810;   --stud-light:#D9BFA0;
    --stud-accent:#8B2E2E; --stud-bright:#C1554F; --stud-deep:#5A1F1F;
    --foal-dark:#3D2314;   --foal-light:#EDD9AE;
    --foal-accent:#E08E2B; --foal-deep:#8C5518;

    position:relative;
    min-height:100vh;
    background:var(--obsidian);
    color:var(--bone);
    overflow:hidden;
    font-family:'Jost',Arial,sans-serif;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:80px 24px;
    box-sizing:border-box;
    isolation:isolate;
  }
  .nrhero *{box-sizing:border-box}

  /* ---- ambient field: two soft glows, Foals(left)/Stallions(right), obsidian dominant ---- */
  .nrhero__field{
    position:absolute; inset:0; z-index:0; pointer-events:none;
  }
  .nrhero__field::before,
  .nrhero__field::after{
    content:''; position:absolute; width:62vw; height:62vw; max-width:820px; max-height:820px;
    border-radius:50%; filter:blur(90px); opacity:.34; mix-blend-mode:screen;
  }
  .nrhero__field::before{
    left:-14%; top:-8%;
    background:radial-gradient(circle, var(--foal-accent) 0%, var(--foal-dark) 55%, transparent 72%);
  }
  .nrhero__field::after{
    right:-14%; bottom:-10%;
    background:radial-gradient(circle, var(--stud-accent) 0%, var(--stud-dark) 55%, transparent 72%);
  }

  /* ---- content ---- */
  .nrhero__inner{
    position:relative; z-index:1; text-align:center; max-width:760px; margin:0 auto;
  }
  .nrhero__kicker{
    margin:0 0 14px; font-size:var(--fs-small); letter-spacing:.32em; text-transform:uppercase;
    color:rgba(245,243,238,.68); font-weight:500;
  }
  .nrhero__goldrule{
    width:46px; height:1px; margin:0 auto 26px; background:var(--gold); opacity:.85;
  }
  .nrhero__mark{ margin:0 auto 22px; width:54px; height:54px; opacity:.92 }
  .nrhero__mark-svg{ width:100%; height:100%; display:block; color:var(--bone) }

  .nrhero__title{
    margin:0 0 16px; font-family:'Cinzel',Georgia,serif; font-weight:600;
    font-size:clamp(34px,6vw,64px); letter-spacing:.05em; line-height:1.08;
    color:var(--bone);
  }
  .nrhero__tag{
    margin:0 0 40px; font-family:'EB Garamond',Georgia,serif; font-style:italic;
    font-size:clamp(14px,1.6vw,17px); color:rgba(245,243,238,.72); line-height:1.6;
  }

  /* ---- doors: two Option-1 buttons, section-accent hover, small arrow, no Gold ---- */
  .nrhero__doors{
    display:flex; gap:18px; justify-content:center; flex-wrap:wrap;
  }
  .nrhero__door{
    display:inline-flex; align-items:center; gap:10px;
    padding:14px 26px; text-decoration:none;
    border:1px solid rgba(245,243,238,.4);
    color:var(--bone);
    font-family:'Jost',Arial,sans-serif; font-size:12px; letter-spacing:.14em; text-transform:uppercase;
    transition:color .2s ease, border-color .2s ease;
    position:relative; min-width:168px; justify-content:center;
  }
  .nrhero__door svg{ flex:none; transition:transform .2s ease }
  .nrhero__door:hover svg{ transform:translateX(3px) }

  .nrhero__door--foals:hover{ color:var(--foal-accent); border-color:var(--foal-accent) }
  .nrhero__door--stallions:hover{ color:var(--stud-accent); border-color:var(--stud-accent) }

  /* ---- mobile: stack doors, tighten padding ---- */
  @media (max-width:560px){
    .nrhero{ padding:64px 18px }
    .nrhero__doors{ flex-direction:column; align-items:center }
    .nrhero__door{ width:100%; max-width:280px }
  }
  .rd-civilwar-ov{position:absolute;inset:0;z-index:-1;pointer-events:none;
    background-image:url("/img/img-204.webp");
    background-size:cover;background-position:center;mix-blend-mode:multiply;opacity:.20} /* Johnny 08-02g: 18%->20% per his exact spec */

/* STACK hero CSS -- adopted 2026-07-21 from 04_R&D/noble-RD-STACK-CLEAN-v1_20260721.html.
   All classes prefixed stk- to avoid collision with this page's existing components
   (.hot is the one exception - kept bare, it's already this page's shared "accent
   orange" utility class, e.g. nav .links a.hot / .doors .mrow.hot - same meaning here).
   Color/type tokens are scoped on .stkhero itself (not :root) so they can't leak onto
   the rest of the page - this page's own --stone etc. differ from STACK's and must
   stay separate. Old GRAFTED KEYFOLD R7 hero CSS earlier in this file is left in
   place, now orphaned/unused -- not deleted, per the never-overwrite rule. */
.stkhero{
  --obsidian:#0D0D0D; --bone:#F5F3EE; --stone:#9d8a74;
  --acc:#C99A3B; --acc-b:#E8B54A; --acc-warm:#F2D9A6;
  --stk-sans:'Jost',system-ui,-apple-system,sans-serif;
  --stk-mono:'Jost',system-ui,-apple-system,sans-serif;
  --stk-serif:'Cinzel',Georgia,serif;
  --stk-italic:'EB Garamond',Georgia,serif;
  --stk-punch:'Archivo Black',var(--stk-sans);
  --bl:4.6; --ks:71; --ky:46; --kw:1; --kop:.26; --fy:31;
  --heat-in:.30s; --heat-out:1.55s;
  /* FIX 2026-07-21 (WEB, Johnny's report): min-height:100vh pinned this section to full
     viewport height regardless of content -- on a normal desktop screen the logo/headline/
     nav don't fill that much space, so the leftover sat as dead air right before the
     Foals/Stallions buttons. Dropped the 100vh pin; the section now sizes to its own
     content + padding, same as every other section on the page. */
  position:relative;overflow:hidden;display:flex;flex-direction:column;
  /* Johnny 08-09: the 07-21 'dropped the 100vh pin' fix above was never applied on desktop --
     only the <=820px media block had min-height:0. Actually dropped now, all widths. */
  min-height:0;
  align-items:center;padding:clamp(40px,7vh,88px) clamp(18px,4vw,64px) clamp(40px,7vh,84px);
  background:var(--obsidian);color:var(--bone);
  font-family:var(--stk-sans);-webkit-font-smoothing:antialiased;
  border-bottom:1px solid #26231f;
}

.stkcivilwar{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.23;mix-blend-mode:multiply;transform:scaleX(-1);background:url('/img/img-205.webp') center/cover no-repeat}
.stkground{position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(7,7,7,.82) 0%, rgba(7,7,7,.55) 38%, rgba(7,7,7,.15) 62%, rgba(7,7,7,0) 78%),
    linear-gradient(0deg, rgba(10,7,4,.58) 0%, rgba(10,7,4,.30) 22%, rgba(10,7,4,0) 46%),
    linear-gradient(rgba(201,154,59,.20), rgba(201,154,59,.20)),
    linear-gradient(rgba(208,140,78,.28), rgba(208,140,78,.28)),
    linear-gradient(to bottom, rgba(42,24,16,0) 72%, rgba(42,24,16,.55) 90%, rgba(42,24,16,.92) 100%),
    url('/img/img-206.jpg') 92% 30%/cover no-repeat;background-blend-mode:normal,normal,color,multiply,normal,normal}
#ht{position:absolute;inset:0;width:100%;height:100%;display:none;z-index:1;pointer-events:none}
/* FIX 2026-08-05 (WEB, Johnny's report) -- width was calc(var(--ks) * 1vh), sized off
   viewport HEIGHT with no width cap. On tall/narrow phones (e.g. 390x844) that computes
   to ~599px against a 390px screen -- hangs off both edges since the element is centered.
   Confirmed by iframe-viewport testing across 6 real device widths (320-430px): every one
   overflowed under the old rule, none overflow under min(vh-calc, 78vw). Desktop unaffected
   (78vw cap only engages once the vh math would exceed 78% of the viewport width). */
.stkbigkey{position:absolute;left:50%;top:calc(var(--ky) * 1%);
  transform:translate(-50%,-50%);width:min(calc(var(--ks) * 1vh), 78vw);height:auto;
  z-index:2;pointer-events:none;overflow:visible;opacity:var(--kop)}
.stkbigkey path,.stkbigkey rect{fill:none;stroke:var(--acc-b);
  stroke-width:calc(var(--kw) * 1px);vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 0 3px rgba(232,181,74,.5)) drop-shadow(0 0 8px rgba(232,181,74,.22)) drop-shadow(0 1px 0 rgba(28,20,12,.4)) drop-shadow(0 2px 0 rgba(28,20,12,.22))}
.stkcol{position:relative;z-index:4;width:100%;max-width:1180px;
  display:flex;flex-direction:column;align-items:center;text-align:center;flex:1}
.stkidblock{position:relative;display:flex;flex-direction:column;align-items:center}
.stkidblock::before{content:'';position:absolute;inset:22px 44px;z-index:-1;pointer-events:none;background:rgba(28,20,12,.62);border-radius:50%;filter:blur(34px)}
.stkmarkmini{width:clamp(88px,9.4vw,136px);height:auto;display:block;filter:drop-shadow(0 1px 0 rgba(28,20,12,.8)) drop-shadow(0 2px 0 rgba(28,20,12,.5))}
.stkmarkmini path,.stkmarkmini rect{fill:currentColor}
.stknr{margin:2px 0 0;font-family:var(--stk-serif);font-weight:600;
  font-size:clamp(15px,2.1vw,30px);letter-spacing:.30em;text-indent:.30em;
  text-transform:uppercase;color:var(--bone);white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.65),0 1px 6px rgba(0,0,0,.3),0 1px 0 rgba(28,20,12,.55),0 2px 0 rgba(28,20,12,.3)}
.stkmeta{margin:9px 0 0;font-family:var(--stk-mono);font-weight:700;
  font-size:clamp(8px,.86vw,11.5px);letter-spacing:.30em;text-indent:.30em;
  text-transform:uppercase;color:color-mix(in srgb,var(--stone) 45%,var(--bone) 55%);white-space:nowrap;text-shadow:0 1px 0 rgba(28,20,12,.5),0 2px 0 rgba(28,20,12,.28)}
.stkblood{margin:clamp(20px,4.4vh,54px) 0 0;font-family:var(--stk-punch);font-weight:400;
  font-size:clamp(38px,calc(var(--bl) * 1vw),132px);line-height:.94;
  text-transform:uppercase;color:var(--bone);letter-spacing:-.01em;
  text-shadow:0 2px 16px rgba(0,0,0,.5),0 1px 0 rgba(28,20,12,.6),0 2px 0 rgba(28,20,12,.4)}
.stkblood .hot{color:var(--acc)}
.stksub{margin:clamp(12px,2vh,22px) 0 0;font-family:var(--stk-italic);font-style:italic;
  font-weight:500;font-size:clamp(15px,1.5vw,25px);line-height:1.35;color:#CFC5B6;text-shadow:0 1px 2px rgba(0,0,0,.6),0 1px 6px rgba(0,0,0,.3)}
.stklinkage{width:100%;flex:1;min-height:38px;margin-top:clamp(16px,3vh,34px);display:block;
  overflow:visible}
.stklinkage line{stroke:var(--stone);stroke-width:1;opacity:.42;vector-effect:non-scaling-stroke}
.stkspacer{flex:1;min-height:12px}
.stklinkage{width:100%;flex:0 0 auto;height:clamp(38px,7vh,74px);margin-top:clamp(16px,3vh,34px);display:block;overflow:visible}
.stklinkage line{stroke:var(--stone);stroke-width:1;opacity:.55;vector-effect:non-scaling-stroke}
.stkbrands{width:100%;display:grid;grid-template-columns:repeat(4,1fr);margin-top:2px}

.stkiron{position:relative;display:flex;flex-direction:column;align-items:center;
  text-decoration:none;padding:2px 6px}


.stkem{position:absolute;left:50%;transform:translateX(-50%);height:0;pointer-events:none;z-index:-1}
.stkem-icon{top:22%;width:110px} .stkem-lab{top:78%;width:110px}
.stkem i{position:absolute;left:var(--x);bottom:0;width:var(--w);height:var(--w);border-radius:50%;
  background:var(--acc-b);box-shadow:0 0 7px 1px rgba(232,181,74,.5);opacity:0;
  animation:stkember var(--dur) linear var(--dly) infinite}
@keyframes stkember{0%{transform:translate3d(0,0,0) scale(.7);opacity:0}
  14%{opacity:var(--peak)}
  68%{transform:translate3d(calc(var(--dx) * .7),calc(var(--rise) * .7),0) scale(1)}
  100%{transform:translate3d(var(--dx),var(--rise),0) scale(.5);opacity:0}}
.stkiron .stkmark{width:clamp(44px,4.8vw,72px);height:auto;overflow:visible}
.stkiron .stkmark .stkbase{fill:none;stroke:#A89076;stroke-width:6.6;stroke-linecap:round;stroke-linejoin:round;
  filter:drop-shadow(0 0 6px rgba(201,154,59,.18));
  transition:stroke var(--heat-out) ease-out,filter var(--heat-out) ease-out}
.stkiron:hover .stkmark .stkbase,.stkiron:focus-visible .stkmark .stkbase{stroke:var(--acc);
  filter:drop-shadow(0 0 11px rgba(232,181,74,.8)) drop-shadow(0 0 24px rgba(232,181,74,.34));
  transition:stroke var(--heat-in) ease-out,filter var(--heat-in) ease-out}
.stkiron .stklab{position:relative;margin-top:12px;font-family:var(--stk-punch);font-weight:400;
  font-size:clamp(11px,1.28vw,17px);text-transform:uppercase;letter-spacing:.05em;
  color:var(--acc);transition:color var(--heat-out) ease-out;white-space:nowrap;text-shadow:0 1px 0 rgba(28,20,12,.6),0 2px 0 rgba(28,20,12,.4),0 1px 2px rgba(0,0,0,.6),0 1px 6px rgba(0,0,0,.3)}
.stkiron .stklab::before{content:'\2014';margin-right:9px;opacity:.5;color:var(--stone);font-weight:400;transition:color var(--heat-in) ease-out,opacity var(--heat-in) ease-out;text-shadow:0 1px 3px rgba(0,0,0,.85),0 2px 10px rgba(0,0,0,.5)}
.stkiron .stklab::after{content:'\2014';margin-left:9px;opacity:.5;color:var(--stone);font-weight:400;transition:color var(--heat-in) ease-out,opacity var(--heat-in) ease-out;text-shadow:0 1px 3px rgba(0,0,0,.85),0 2px 10px rgba(0,0,0,.5)}
.stkiron:hover .stklab::before,.stkiron:hover .stklab::after,.stkiron:focus-visible .stklab::before,.stkiron:focus-visible .stklab::after{color:var(--acc-b);opacity:.9}
.stkiron:hover .stklab,.stkiron:focus-visible .stklab{color:var(--bone);text-shadow:0 0 14px rgba(201,154,59,.95),0 0 30px rgba(201,154,59,.55);transition:color var(--heat-in) ease-out,text-shadow var(--heat-in) ease-out}
.stkiron .stkcap{margin-top:7px;font-family:var(--stk-mono);font-weight:400;font-size:clamp(8px,.82vw,10.5px);
  letter-spacing:.16em;text-transform:uppercase;color:var(--stone);
  transition:color var(--heat-out) ease-out;text-shadow:0 1px 2px rgba(0,0,0,.6),0 1px 6px rgba(0,0,0,.3)}
.stkiron:hover .stkcap{color:var(--acc);transition:color var(--heat-in) ease-out}
.stkropeicon{position:relative;display:inline-block;width:clamp(44px,4.8vw,72px);height:clamp(44px,4.8vw,72px)}
.stkropeicon img{position:absolute;inset:0;width:100%;height:100%;transition:opacity var(--heat-out) ease-out}
.stkropeicon .ic-hover{opacity:0}
.stkiron:hover .stkropeicon .ic-default,.stkiron:focus-visible .stkropeicon .ic-default{opacity:0;transition:opacity var(--heat-in) ease-out}
.stkiron:hover .stkropeicon .ic-hover,.stkiron:focus-visible .stkropeicon .ic-hover{opacity:1;transition:opacity var(--heat-in) ease-out}
@media(max-width:820px){
  .stkhero{min-height:0}
  .stkbrands{grid-template-columns:1fr 1fr;row-gap:26px;margin-top:22px}
  .stklinkage{display:none}
  .stkblood{font-size:clamp(34px,12vw,64px)}
  .stkground{background-position:50% 28% !important;background-size:cover !important;
    top:0;left:0;right:0;bottom:auto;height:auto;aspect-ratio:1600/899 !important}
}
@media(prefers-reduced-motion:reduce){.stkhero .stkem{display:none}}

/* ADDED v23 (ART, 2026-08-02) -- this widget's own on-load reveal system.
   Prior versions referenced a .rise class with per-element transition-delay already
   authored (0ms mark -> 800ms last nav item) but NO css/js ever backed it in this
   standalone ART file (the live-site adoption comment above says it relies on a
   site-wide "already-hardened .rise reveal system" that doesn't exist here) -- so on
   load everything just popped in flat, no motion. Self-contained fix below so this
   widget demonstrates + carries its own entrance flow wherever it's opened, including
   handed off to R&D as-is. */
.rise{opacity:0;transform:translateY(18px);
  transition:opacity .8s cubic-bezier(.16,.8,.24,1),transform .8s cubic-bezier(.16,.8,.24,1)}
.stkhero.is-in .rise{opacity:1;transform:translateY(0)}
/* ADDED v24 (ART, 2026-08-02) -- Johnny: headline should slide in from the side while
   everything else comes up; big ghost key should fade in AFTER the words, not with them. */
.rise-side{opacity:0;transform:translateX(-42px);
  transition:opacity .9s cubic-bezier(.16,.8,.24,1),transform .9s cubic-bezier(.16,.8,.24,1)}
.stkhero.is-in .rise-side{opacity:1;transform:translateX(0)}
.rise-fade{opacity:0;transition:opacity 1.1s ease-out}
.stkhero.is-in .rise-fade{opacity:1}
/* .stkbigkey's own base rule sets opacity:var(--kop) (its real ghost-watermark opacity,
   e.g. .26) -- override the generic .rise-fade target so it fades in TO that value, not
   to full 1, which would make the watermark solid instead of subtle. */
.stkbigkey.rise-fade{opacity:0}
.stkhero.is-in .stkbigkey.rise-fade{opacity:var(--kop)}
@media(prefers-reduced-motion:reduce){.rise{opacity:1;transform:none;transition:none}
  .rise-side{opacity:1;transform:none;transition:none}
  .rise-fade{opacity:1;transition:none}}

#welcome{position:relative;overflow:hidden;z-index:2;padding:38px 0 30px;background:transparent}
#welcome .wwrap{max-width:720px;margin:0 auto;padding:0 clamp(20px,4vw,32px)}
#welcome .wkey{display:block;width:clamp(64px,8vw,92px);height:auto;margin:0 auto 16px}
#welcome .wlead{font-family:'Cinzel',serif;font-weight:600;font-size:clamp(21px,3vw,29px);letter-spacing:.05em;color:#F5F3EE;text-align:center;margin:0 0 8px}
#welcome .wsub{font-family:'EB Garamond',Georgia,serif;font-style:italic;font-size:clamp(16px,2.2vw,19px);color:#BFB4A0;text-align:center;margin:0 0 26px}
#welcome p{font-family:'EB Garamond',Georgia,serif;font-size:17.5px;line-height:1.68;color:#CFC5B6;margin:0 0 18px}
#welcome p:last-child{margin-bottom:0}
/* Johnny 08-09: VERSION B from PREVIEW_WELCOME-FLOW-DEMO (his pick, seen + replayed in a real
   browser before this landed -- supersedes the earlier same-day static-forever note). Three beats:
   key+heading, subline, body. Tightened .7s->.55s per his "seems slow". Trigger discipline that
   fixed the 3 earlier failures: hidden state only after JS arms it, plays at >=35% visible (not
   one-pixel peek), scroll-idle safety instead of a blind timer, class never removed (nothing
   disappears). */
#welcome.armed .wb{opacity:0;transform:translateY(16px)}
#welcome.go .wb{opacity:1;transform:none;transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1)}
#welcome.go .wkey.wb,#welcome.go .wlead.wb{transition-delay:0s}
#welcome.go .wsub.wb{transition-delay:.14s}
#welcome.go .wbody.wb{transition-delay:.28s}
@media(prefers-reduced-motion:reduce){#welcome .wb{opacity:1!important;transform:none!important;transition:none!important}}
#welcome .rd-civilwar-ov{-webkit-mask-image:linear-gradient(to bottom,transparent,#fff 14%,#fff 86%,transparent);mask-image:linear-gradient(to bottom,transparent,#fff 14%,#fff 86%,transparent)}
/* Johnny 08-02 (live feedback): the ORIGINAL heritage-seam mask read backwards -- "top section
   flows down into foals" when he wanted "foals bleeds UP into the section above." Fixed by moving
   the mask from heritage's bottom edge onto colts' TOP edge instead (colts now the front/z-index-2
   layer reaching up over heritage, not the other way around) -- see #colts::before below.
   Also added the OPPOSITE-direction seam one level up (doors -> heritage/"the foal incentive
   section"), per his ask to flip that one so it reads the other way: heritage's own top edge now
   reads torn, letting the plain dark page background peek through right at the seam, same texture,
   vertically flipped from the original (transparent at the seam edge, solid moving into the
   section -- same read as the corrected seam below, not a new asset). No overlap/negative-margin
   needed for heritage's own top mask since nothing else is positioned behind it there -- the plain
   body background (#0D0D0D) is already what naturally shows through. Single embed (custom property
   on :root), referenced 4x -- a duplicated-embed mistake earlier this session already taught this
   lesson once, not repeating it. */
:root{--section-flow-strip:url("/img/img-209.webp");--section-flow-strip-bottom:url("/img/img-210.webp");;}
#heritage-seam::before{
  content:'';position:absolute;inset:0;z-index:-1;background:#1C130B;
  -webkit-mask-image: var(--section-flow-strip), linear-gradient(#fff,#fff);
  mask-image: var(--section-flow-strip), linear-gradient(#fff,#fff);
  -webkit-mask-size: 100% 150px, 100% calc(100% - 146px);
  mask-size: 100% 150px, 100% calc(100% - 146px);
  -webkit-mask-position: top left, bottom left;
  mask-position: top left, bottom left;
  -webkit-mask-repeat: no-repeat, no-repeat;
  mask-repeat: no-repeat, no-repeat;
  -webkit-mask-composite: source-over, source-over;
  mask-composite: add, add;
}
#colts::before{
  /* WEB120 08-07: simplified to a flat fill -- the torn-edge top band this used to reveal was
     tuned for heritage-seam's dark brown (#1C130B) sitting directly above; heritage-seam was
     removed 08-07 (WEB116, shelved not deleted -- see _SHELVED_WIDGETS), so colts' top edge now
     overlapped 4px into the real Foals/Stallions door photos above it (.doors padding-bottom is
     36px, this box's -40px negative margin reached 4px past that, into live photo content) and
     the torn mask revealed door-photo fragments/near-black doors bg through the jagged gaps
     instead of a matching warm tone -- Johnny's "weird box outline shapes in the gradient colors"
     report, 08-07. Fix: drop the top-band torn-mask layer + the negative margin (see this
     section's own style= attribute) so colts sits in normal flow with a plain, correct-colored
     fill. The OTHER three seams (reserve->colts, reserve->stallions, stallions->footer) are
     untouched -- none of them ever depended on heritage-seam, only this one did. */
  content:'';position:absolute;inset:0;z-index:-1;background:rgba(61,35,20,.92);
}
#stallions::before{
  content:'';position:absolute;inset:0;z-index:-1;background:rgba(42,24,16,.92);
  -webkit-mask-image: var(--section-flow-strip), linear-gradient(#fff,#fff);
  mask-image: var(--section-flow-strip), linear-gradient(#fff,#fff);
  -webkit-mask-size: 100% 40px, 100% calc(100% - 36px);
  mask-size: 100% 40px, 100% calc(100% - 36px);
  -webkit-mask-position: top left, bottom left;
  mask-position: top left, bottom left;
  -webkit-mask-repeat: no-repeat, no-repeat;
  mask-repeat: no-repeat, no-repeat;
  -webkit-mask-composite: source-over, source-over;
  mask-composite: add, add;
}
/* R&D 08-02c: stallions->footer seam, bottom edge this time -- footer is the SHARED WIDGET (every
   page, locked v37), so nothing here touches .ftr at all. All overlap lives on #stallions' own
   margin-bottom:-40px (pulls the footer up in normal flow) + this ::after (z-index:-1, so it
   paints behind stallions' real content but in FRONT of footer in the overlap zone thanks to
   #stallions already being position:relative/z-index:2). Uses the ORIGINAL un-flipped
   NobleRanch_EDGESTRIP-BURNTGOLD-BOTTOM_20260802.png (source read fresh from ART's folder, not
   derived by re-flipping the already-flipped --section-flow-strip) -- this asset was natively
   built solid-top/torn-bottom, i.e. already correct for a bottom-edge seam with no flip needed. */
#stallions::after{
  content:'';position:absolute;inset:0;z-index:-1;background:rgba(42,24,16,.92);
  -webkit-mask-image: var(--section-flow-strip-bottom), linear-gradient(#fff,#fff);
  mask-image: var(--section-flow-strip-bottom), linear-gradient(#fff,#fff);
  -webkit-mask-size: 100% 40px, 100% calc(100% - 36px);
  mask-size: 100% 40px, 100% calc(100% - 36px);
  -webkit-mask-position: bottom left, top left;
  mask-position: bottom left, top left;
  -webkit-mask-repeat: no-repeat, no-repeat;
  mask-repeat: no-repeat, no-repeat;
  -webkit-mask-composite: source-over, source-over;
  mask-composite: add, add;
}
/* R&D 08-02h: foals(colts)->crosses seam -- reserve (crosses/2027 list) is the front/z-index-3 layer
   reaching up over colts' bottom, same tight 40px band. Fill = obsidian (reserve's own real bg,
   #0D0D0D), torn top edge lets colts' brown card-section colour peek through at the seam, same
   "front tears open, back colour shows through the rip" read as the other three seams. */
#reserve::before{
  content:'';position:absolute;inset:0;z-index:-1;background:var(--obsidian);
  -webkit-mask-image: var(--section-flow-strip), linear-gradient(#fff,#fff);
  mask-image: var(--section-flow-strip), linear-gradient(#fff,#fff);
  -webkit-mask-size: 100% 40px, 100% calc(100% - 36px);
  mask-size: 100% 40px, 100% calc(100% - 36px);
  -webkit-mask-position: top left, bottom left;
  mask-position: top left, bottom left;
  -webkit-mask-repeat: no-repeat, no-repeat;
  mask-repeat: no-repeat, no-repeat;
  -webkit-mask-composite: source-over, source-over;
  mask-composite: add, add;
}


/* R&D 08-02: crosses->stallions seam, same tight-band (40px) top-edge mask as the foals seam --
   stallions is the front/z-index-2 layer reaching up over the plain crosses/reserve div below,
   reusing the single shared --section-flow-strip embed (no re-derivation). */


/* V18 foal card widget -- adopted as the HOME PAGE quick-view for 2026 Foals, 08-07.
   Scoped entirely under #rd-foals-rows (ID selector) so nothing here can leak into or
   collide with the rest of the site's --paper/--ink/--acc tokens, which mean different
   colors elsewhere on this page. Real data (DATA/SIRE) unchanged -- only the OUTPUT
   template + this CSS are new. Old row/pedigree-grid renderAll() left intact but unused
   (dead code, not deleted, per standing never-delete rule) -- foals.html's own detail
   pages are untouched, this only changes the HOME PAGE quick-view. */
#rd-foals-rows{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:28px;
  --v18-paper:#F6EEDA;--v18-ink:#3D2314;--v18-ink2:#6b4a2e;--v18-inkmut:#8C6B45;--v18-acc:#C99A3B;--v18-acc-on:#231F20;
  --v18-serif-head:'Cinzel',Georgia,serif;--v18-serif-body:'century-old-style-std',Georgia,serif;--v18-sans:'Jost',sans-serif;}
#rd-foals-rows .fcard{container-type:inline-size;container-name:fcard;position:relative;width:100%;background:var(--v18-paper);border:1px solid rgba(61,35,20,.25);overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.5)}
#rd-foals-rows .ftop{display:flex}
#rd-foals-rows .fphotocol{flex:0 0 54%;display:flex;flex-direction:column;}#rd-foals-rows .fphoto{position:relative;aspect-ratio:1/1;overflow:hidden;background:#000;cursor:zoom-in;}
#rd-foals-rows .fphoto img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;display:block}
/* legacy .v18carousel/.v18nav/.v18ccount (small absolute corner-icon buttons) REMOVED 2026-08-22, same fix as foals.html -- was colliding (ID-selector specificity) with the new .frpbar/.frpnav bar-under-photo system. See WEB-PHOTONAV-CONSISTENCY-0822. */
/* ===== FULL REIN -- POSTER photo-nav bar, ported here 2026-08-22 to match foals.html/stallions.html (key WEB-PHOTONAV-CONSISTENCY-0822). Self-contained hex values. ===== */
.frpbar{display:flex;align-items:center;justify-content:center;gap:12px;padding:5px 6px;background:rgba(0,0,0,.3);}
.frpbar .frpnav{flex:1 1 auto;height:18px;border:1px solid #3D2314;background:#E08E2B;color:#3D2314;cursor:pointer;border-radius:2px;display:flex;align-items:center;justify-content:center;padding:0;position:relative;overflow:hidden;z-index:0;transition:filter .18s;}
.frpbar .frpnav::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:url("/img/img-800.webp");background-size:cover;background-position:center;mix-blend-mode:multiply;opacity:.20;}
.frpbar .frpnav::after{content:'';position:absolute;left:10px;right:10px;bottom:2px;height:1.5px;background:#3D2314;transform:scaleX(0);transition:transform .2s;transform-origin:center;}
.frpbar .frpnav svg{transition:transform .18s;display:block;}
.frpbar .frpnav:active{transform:scale(.98);}
.frpbar .frpnav.frpnext:hover svg{transform:translateX(2px);}
.frpbar .frpnav.frpprev:hover svg{transform:translateX(-2px);}
.frpbar .frpnav:hover{filter:brightness(1.12);}
.frpbar .frpnav:hover::after{transform:scaleX(1);}
.frpbar .frpcount{font:600 9.5px 'Jost',sans-serif;letter-spacing:.13em;text-transform:uppercase;color:#EDD9AE;white-space:nowrap;}
#rd-foals-rows .fbody{position:relative;z-index:1;padding:15px 20px 16px;flex:1;display:flex;flex-direction:column;min-width:0}
#rd-foals-rows .fname{font-family:var(--v18-serif-head);font-weight:600;font-size:19px;letter-spacing:.01em;color:var(--v18-ink);line-height:1.3}
#rd-foals-rows .fname{white-space:normal}#rd-foals-rows .fname .half{display:inline-block;white-space:nowrap}
#rd-foals-rows .ffacts{margin-top:9px;display:flex;flex-direction:column;gap:4px}
#rd-foals-rows .ffacts .frow{display:flex;align-items:baseline;gap:6px;font-family:var(--v18-serif-body);font-size:15px;color:var(--v18-ink2)}
#rd-foals-rows .ffacts .frow .lab{font-weight:700;white-space:nowrap}
#rd-foals-rows .ffacts .frow .dots{flex:1;border-bottom:1px dotted var(--v18-inkmut);height:0;transform:translateY(-3px)}
#rd-foals-rows .ffacts .frow .val{font-weight:400;white-space:nowrap;text-align:right}
#rd-foals-rows .fnote{margin-top:6px;font-family:var(--v18-serif-body);font-size:12.5px;font-style:italic;color:var(--v18-inkmut)}
#rd-foals-rows .fbadges{display:flex;gap:16px;margin-top:10px;padding-top:10px;border-top:1px dashed rgba(61,35,20,.22);flex-wrap:wrap}
#rd-foals-rows .fbadge{display:flex;align-items:center;gap:7px}
#rd-foals-rows .fbadge img{width:26px;height:26px;object-fit:contain;flex:0 0 auto}
#rd-foals-rows .fbadge .bn{font-family:var(--v18-serif-body);font-size:11px;color:var(--v18-inkmut);white-space:nowrap}
#rd-foals-rows .fcta{display:flex;gap:6px;margin-top:auto;padding-top:10px}
#rd-foals-rows .fcta a{position:relative;flex:1;min-width:0;text-align:center;font-family:var(--v18-serif-body);font-weight:700;font-size:11px;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;padding:7px 10px;overflow:hidden}
#rd-foals-rows .fcta a{isolation:isolate}
#rd-foals-rows .fcta a::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:var(--nr-aged-texture);background-size:cover;background-position:center;mix-blend-mode:multiply;opacity:.20}
#rd-foals-rows .fcta .btn{background:var(--v18-acc);color:var(--v18-acc-on)}
#rd-foals-rows .fcta .btn:hover{filter:brightness(1.1)}
#rd-foals-rows .fcta .ghost{border:1px solid rgba(61,35,20,.35);color:var(--v18-ink)}
#rd-foals-rows .fcta .ghost:hover{background:rgba(61,35,20,.12)}
#rd-foals-rows .fsire{position:relative;z-index:1;padding:10px 20px;border-top:1px dashed rgba(61,35,20,.22);display:flex;gap:14px;align-items:flex-start}
#rd-foals-rows .fsirekick{position:absolute;top:-9px;left:20px;background:var(--v18-paper);padding:0 8px 0 0;font:700 10px var(--v18-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--v18-ink)}
#rd-foals-rows .fsireinfo{flex:1;min-width:0}
#rd-foals-rows .fsirename{font-family:var(--v18-serif-head);font-weight:600;font-size:15px;color:var(--v18-ink)}
#rd-foals-rows .fsiresub{font-family:var(--v18-serif-body);font-size:13px;color:var(--v18-inkmut);margin-top:2px}
#rd-foals-rows .fsirebred{margin-top:5px;font-family:var(--v18-serif-body);font-size:13px;color:var(--v18-inkmut);line-height:1.4}
#rd-foals-rows .fsirebred .half{white-space:nowrap}
#rd-foals-rows .fsirephoto{width:96px;height:58px;flex:0 0 auto;overflow:hidden;background:#c9b385}
#rd-foals-rows .fsirephoto img{width:100%;height:100%;object-fit:cover;object-position:50% 38%;display:block}
@container fcard (max-width:520px){
  #rd-foals-rows .ftop{flex-direction:column}
  #rd-foals-rows .fphotocol{flex:0 0 auto;width:100%}
  #rd-foals-rows .fbody{width:100%}
}
@container fcard (max-width:360px){
  #rd-foals-rows .fbody{padding:14px 16px 16px}
  #rd-foals-rows .fsire{padding:14px 16px}
  #rd-foals-rows .fname{font-size:17px}
  #rd-foals-rows .fcta{flex-wrap:wrap}
  #rd-foals-rows .fcta a{flex:1 1 100%}
}

.rd-tree{--rd-font:'Jost',sans-serif;--rd-disp:'Cinzel',serif;--rd-mono:ui-monospace,'SF Mono',Consolas,monospace;
  --rd-ink:#f3f1ec;--rd-muted:#a7a29a;--rd-dim:#8d8478;--rd-sec:#DCD3C6;--rd-tan:#D8A030;
  --rd-hair:rgba(255,255,255,.10);--rd-box:rgba(255,255,255,.18);--rd-boxdash:rgba(255,255,255,.15);
  position:relative;z-index:1;}
.rd-tree *{box-sizing:border-box;}
.rd-tree .rows{position:relative;}
.rd-tree .row{display:flex;flex-wrap:wrap;column-gap:28px;row-gap:0;align-items:flex-start;margin-bottom:22px;position:relative;z-index:0;
  background:rgba(var(--rd-card-bg),.85);border:1px solid rgba(var(--rd-accent-rgb),.28);border-radius:0;font-family:var(--rd-font);color:var(--rd-ink);}
/* PHAT PART BG-06a FINE GRAIN, 26% multiply -- locked recipe, part-BG-06_aged-cell-grain_20260801.html.
   z-index:-1 (needs .row's z-index:0 above to contain it) sits above .row's own flat card colour
   and below the normal-flow photo/info children -- texture never covers content. */
.rd-tree .row::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:url("/img/img-214.webp");
  background-size:cover;background-position:center;mix-blend-mode:multiply;opacity:.04;} /* Johnny 08-02h: 7%->4%, 3% lighter per his ask, both templates share this rule */
.rd-tree .row:last-child{margin-bottom:0;}
.rd-tree .info{flex:1 1 260px;min-width:260px;order:2;padding:26px 28px 0 0;}
@media(max-width:820px){.rd-tree .info{padding-left:24px;}} /* Johnny 08-02g: stacked-layout text was flush against the screen edge */
.rd-tree .info h3{font-family:var(--rd-disp);font-weight:600;font-size:clamp(17px,2vw,22px);margin:0;line-height:1.25;color:var(--rd-ink);} /* Johnny 08-02c: glow removed entirely, called "junk" -- plain ink color now, no text-shadow */
.rd-tree .barn{margin-top:6px;font-size:12px;letter-spacing:.03em;text-transform:uppercase;color:var(--rd-dim);}
.rd-tree .facts{margin-top:9px;font-size:13px;color:var(--rd-muted);line-height:1.6;}
.rd-tree .fee{margin-top:12px;font-family:var(--rd-disp);font-size:18px;font-weight:600;color:var(--rd-hover);} /* Johnny 08-02d: light accent unreadable on light card bg -> darker -deep token */
.rd-tree--stallions .fee{color:var(--rd-ink);} /* Johnny 08-02: stallions FEE -> dark brownish section ink, not the reddish accent */
.rd-tree--foals .photowrap{flex:1.2 1 260px;min-width:260px;width:100%;order:1;align-self:flex-start;display:flex;flex-direction:column;}
.rd-tree--foals .photo{position:relative;width:100%;aspect-ratio:1/1;
  border-radius:0;overflow:hidden;background:rgba(0,0,0,.35);margin:0;padding:0;} /* WEB 08-07: was 456/303, cropped ears/feet off full-body foal shots -- 1/1 keeps the whole animal in frame, verified per-photo */
.rd-tree--foals .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;display:block;filter:contrast(1.05) saturate(1.04);}
.rd-tree--foals .pcarousel{position:absolute;inset:0;pointer-events:none;} /* WEB 08-07: was a thin bar ABOVE the photo, easy to miss -- now real overlay arrows ON the photo, per Johnny's direct ask to bring the scrolling arrows back and make them visible */
.rd-tree--foals .pcarousel .pnav{position:absolute;top:50%;transform:translateY(-50%);pointer-events:auto;width:34px;height:34px;border:1px solid rgba(237,217,174,.55);background:rgba(0,0,0,.45);color:#EDD9AE;cursor:pointer;border-radius:50%;font:400 15px Georgia,serif;display:flex;align-items:center;justify-content:center;padding:0;transition:border-color .15s,color .15s,background .15s;}
.rd-tree--foals .pcarousel .pprev{left:8px;}
.rd-tree--foals .pcarousel .pnext{right:8px;}
.rd-tree--foals .pcarousel .pnav:hover{border-color:#E08E2B;color:#E08E2B;background:rgba(0,0,0,.65);}
.rd-tree--foals .pcarousel .pcount{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);pointer-events:none;font:600 9px 'Jost',sans-serif;letter-spacing:.13em;text-transform:uppercase;color:#EDD9AE;background:rgba(0,0,0,.5);padding:3px 9px;border-radius:999px;}
.rd-tree--stallions .photowrap{flex:1.2 1 260px;min-width:260px;width:100%;order:1;align-self:flex-start;display:flex;flex-direction:column;}
.rd-tree--stallions .photo{position:relative;width:100%;aspect-ratio:456/303;border-radius:0;overflow:hidden;background:rgba(0,0,0,.22);margin:0;padding:0;}
.rd-tree--stallions .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 32%;display:block;}
.rd-tree--stallions .pcarousel{display:flex;align-items:center;justify-content:center;gap:8px;padding:5px 0;background:rgba(0,0,0,.3);}
.rd-tree--stallions .pcarousel .pnav{width:18px;height:18px;border:1px solid rgba(217,191,160,.4);background:none;color:#D9BFA0;cursor:pointer;border-radius:2px;font:400 10px Georgia,serif;display:flex;align-items:center;justify-content:center;padding:0;transition:border-color .15s,color .15s;}
.rd-tree--stallions .pcarousel .pnav:hover{border-color:#8B2E2E;color:#8B2E2E;}
.rd-tree--stallions .pcarousel .pcount{font:600 7px 'Jost',sans-serif;letter-spacing:.13em;text-transform:uppercase;color:#b89e84;}
.rd-tree .pedwrap{flex:1 1 100%;width:100%;order:3;margin-top:0;padding:0 28px 26px;}
.rd-tree .reclinks{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px;margin-bottom:3px;}
/* Johnny 08-01: real hairline-outline box + Brand Kit v3 Option 1 hover (deep accent), same mechanism both sections. */
.rd-tree .reclinks a{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  font-family:var(--rd-font);color:var(--rd-ink);position:relative;overflow:hidden;z-index:0;padding:10px 16px;
  border:1px solid var(--rd-hair); /* Johnny 08-02h: hairline on the box itself, was border:none */
  background:var(--rd-poster); /* Johnny 08-02d: solid poster-banner treatment, same look as shobox/INQUIRE button */
  /* Johnny 08-02 (cont.): box-shadow offsets removed per direct ask (Bone left + accent right/bottom) -- hairline border above (line 931) is now the only edge treatment. */
  transition:filter .2s ease,transform .15s ease;text-decoration:none;}
.rd-tree .reclinks a:hover{filter:brightness(1.12);}
.rd-tree .reclinks a span{position:relative;z-index:1;}
.rd-tree .reclinks a svg{position:relative;z-index:1;transition:transform .2s ease;}
.rd-tree .reclinks a:hover svg{transform:translateX(2px);}
.rd-tree .zbadges{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;min-width:0;}
.rd-tree .bslot{position:relative;z-index:0;flex:0 1 auto;display:flex;align-items:center;justify-content:center;min-width:0;}
/* Johnny 08-01: small glow behind each incentive badge -- Noble Gold, soft radial, contained behind the badge only */
.rd-tree .bslot::before{content:'';position:absolute;z-index:-1;inset:-7px;border-radius:50%;
  background:radial-gradient(circle,rgba(245,243,238,.45),transparent 70%);pointer-events:none;}
.rd-tree .bslot img /* Johnny 08-02g: Marigold -> Bone glow */{height:30px;width:auto;max-width:100%;object-fit:contain;display:block;}
.rd-tree .bslot .pend{position:absolute;top:-3px;right:-7px;font:700 var(--fs-small) var(--rd-font);color:#B4622D;}
.rd-tree .bname{display:none;}
.rd-tree .zbadges[data-mode="names"] .bslot img{display:none;}
.rd-tree .zbadges[data-mode="names"] .bslot{width:auto;height:auto;}
.rd-tree .zbadges[data-mode="names"] .bname{display:inline-block;font-family:var(--rd-font);font-size:var(--fs-small);font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--rd-sec);border:1px solid var(--rd-boxdash);padding:5px 8px;white-space:nowrap;}
.rd-tree .zbadges[data-mode="names"]{flex-wrap:wrap;}
.rd-tree .bmode{flex:0 0 auto;margin-left:auto;font-family:var(--rd-font);font-size:7px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--rd-dim);background:transparent;border:1px solid var(--rd-boxdash);border-radius:999px;padding:4px 8px;cursor:pointer;transition:all .15s;}
.rd-tree .bmode:hover{color:var(--rd-hover);border-color:var(--rd-dim);} /* Johnny 08-02d: darker hover text for contrast */
.rd-tree .pedgrid{display:grid;grid-template-columns:1.05fr 1fr 1fr;grid-auto-rows:minmax(30px,auto);gap:9px 16px;}
.rd-tree .node{position:relative;z-index:0;padding:7px 10px;border-radius:5px;display:flex;flex-direction:column;justify-content:center;
  border:1px solid var(--rd-boxdash);background:rgba(0,0,0,.03);opacity:.5;}
/* PHAT PART BG-06b DUST GRAIN, 18% multiply -- Johnny 08-01, ped ancestor boxes. */
.rd-tree .node::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;
  background-image:url("/img/img-215.webp");
  background-size:cover;background-position:center;mix-blend-mode:multiply;opacity:.08;} /* Johnny 08-02c: 16%->8%, "too much/dark" */
.rd-tree .node.has{border:1px solid var(--rd-box);opacity:1;cursor:pointer;background:rgba(var(--rd-card-bg),.95);}
.rd-tree .node.sel{border-color:var(--rd-poster);background:rgba(var(--rd-poster-rgb),.22);}
.rd-tree .node.g3{padding:6px 9px;}
.rd-tree .node .diamond{position:absolute;top:5px;right:7px;font-size:7px;color:var(--rd-dim);opacity:.6;}
.rd-tree .node .role{font-family:var(--rd-mono);font-size:var(--fs-small);letter-spacing:.12em;text-transform:uppercase;color:var(--rd-dim);}
.rd-tree .node.key{border-left:3px solid #C99A3B;}
.rd-tree .node .tag{font-family:var(--rd-mono);font-size:var(--fs-small);letter-spacing:.08em;text-transform:uppercase;margin-top:3px;color:var(--rd-dim);}
.rd-tree .node.key .tag{color:var(--rd-hover);} /* Johnny 08-02g: light gold unreadable, darker -deep token like the other text-contrast fixes */
.rd-tree .node .nm1{font-family:var(--rd-disp);font-size:14px;color:var(--rd-ink);margin-top:3px;}
.rd-tree .node .nm2{font-family:var(--rd-disp);font-size:12px;color:var(--rd-sec);}
.rd-tree .node .nm3{font-size:var(--fs-small);color:var(--rd-sec);}
.rd-tree .node .meta{font-size:var(--fs-small);color:var(--rd-dim);margin-top:3px;}
.rd-tree .node.g3 .diamond,.rd-tree .node.g4 .diamond{font-size:6px;}
.rd-tree .unvtag{font-size:var(--fs-small);color:#ffb99f;letter-spacing:.08em;text-transform:uppercase;position:absolute;bottom:4px;right:6px;opacity:.85;}
.rd-tree .biobox{margin-top:12px;font-size:var(--fs-small);color:var(--rd-sec);line-height:1.5;background:rgba(0,0,0,.04);
  border:1px solid var(--rd-hair);border-radius:6px;padding:9px 12px;}
/* Johnny 08-02e: real ancestor detail card, foals only -- ported from the LIVE foal pages'
   click-to-expand pedigree behavior (foal-h063.html: click a name, a bordered box opens below
   the grid with a relation tag, a verified/registry badge, a close (x), and labeled record rows).
   Live site's accent there is OSU orange -- per Johnny 08-02, recolored to this section's own
   poster/accent token (Marigold for foals) instead. Uses CARDS' existing verified `bio` field per
   ancestor as the Record row -- no invented RECORD/HONORS/AS-A-SIRE/GETS breakdown, since that
   level of stat detail isn't sourced for our own pedigree ancestors (would be guessing). */
.rd-tree .rd-biocard{margin-top:12px;position:relative;border:1px solid var(--rd-poster);border-radius:4px;background:rgba(var(--rd-poster-rgb),.08);padding:14px 16px;}
.rd-tree .rd-biocard .rdb-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--rd-hair);}
.rd-tree .rd-biocard .rdb-name{font-family:var(--rd-disp);font-weight:600;font-size:15px;color:var(--rd-ink);}
.rd-tree .rd-biocard .rdb-role{margin-top:3px;font-family:var(--rd-font);font-size:var(--fs-small);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--rd-hover);} /* Johnny 08-02d: darker for contrast */
.rd-tree .rd-biocard .rdb-headright{display:flex;align-items:center;gap:8px;}
.rd-tree .rd-biocard .rdb-status{font-family:var(--rd-font);font-size:var(--fs-small);font-weight:700;letter-spacing:.08em;text-transform:uppercase;border:1px solid currentColor;border-radius:999px;padding:3px 8px;white-space:nowrap;}
.rd-tree .rd-biocard .rdb-status.rdb-ver{color:#4C7A4C;}
.rd-tree .rd-biocard .rdb-status.rdb-unv{color:#B4622D;}
.rd-tree .rd-biocard .rdb-close{background:none;border:none;color:var(--rd-dim);font-size:18px;line-height:1;cursor:pointer;padding:0;transition:color .15s;}
.rd-tree .rd-biocard .rdb-close:hover{color:var(--rd-ink);}
.rd-tree .rd-biocard .rdb-row{display:grid;grid-template-columns:66px 1fr;gap:10px;align-items:baseline;}
.rd-tree .rd-biocard .rdb-label{font-family:var(--rd-font);font-size:var(--fs-fact);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--rd-dim);}
.rd-tree .rd-biocard .rdb-val{font-size:var(--fs-fact);color:var(--rd-sec);line-height:1.5;}
.rd-tree--foals{--rd-accent:#E08E2B;--rd-accent-rgb:224,142,43;--rd-card-bg:237,217,174;--rd-ink:#3D2314;--rd-muted:#6b4a2e;--rd-dim:#8c6a48;--rd-sec:#5a3d22;--rd-hair:rgba(61,35,20,.18);--rd-box:rgba(61,35,20,.30);--rd-boxdash:rgba(61,35,20,.22);--rd-restline:rgba(61,35,20,.35);--rd-hover:#8C5518;--rd-poster:#E08E2B;--rd-poster-rgb:224,142,43;}/* R&D 08-01 dispatch pt.2: card flips to light Buckskin Cream #EDD9AE-family (was dark Cognac card-on-dark-page); the Cognac #3D2314 now lives on the SECTION WRAP behind it (#colts bg, below) — light-surface-on-card / dark-surface-behind, Brand Kit v3. */
.rd-tree--stallions{--rd-accent:#8B2E2E;--rd-accent-rgb:139,46,46;--rd-poster:#D08C4E;--rd-poster-rgb:208,140,78;--rd-card-bg:217,191,160;--rd-ink:#2A1810;--rd-muted:#5c4636;--rd-dim:#7d6552;--rd-sec:#432f22;--rd-hair:rgba(42,24,16,.18);--rd-box:rgba(42,24,16,.30);--rd-boxdash:rgba(42,24,16,.22);--rd-restline:rgba(42,24,16,.35);--rd-hover:#5A1F1F;}.rd-tree--stallions .row{background:rgba(var(--rd-card-bg),.95);} /* R&D 08-02h: was .85 (shared rule) -- at .85 the section's own oxblood ambient field (90,31,31) bled through the card's duller tan (217,191,160 vs foals' brighter 237,217,174), reading muddy/gray instead of warm. Bumped opacity so less of the field shows through, foals untouched. *//* R&D 08-01: card flips to light Saddle Tan #D9BFA0-family (was dark Espresso card-on-dark-page); Espresso #2A1810 now lives on the SECTION WRAP behind it (#stallions bg, below). */
/* WEB121 08-07: home-page Stallion card simplification, Johnny's ask -- 2-gen tree (sire+dam +
   their 4 parents) moved INTO .info, above .reclinks; old 14-slot .pedgrid/nodeHtml() dropped from
   the render output here (left defined in JS, unused, per never-delete rule) -- stallion DETAIL
   pages are untouched, out of scope. Never shows "unverified"/"UNV" -- that was the whole point.
   Scoped to .rd-tree--stallions only, foals' own #rd-foals-rows card is a separate system already. */
.rd-tree--stallions .barn{text-transform:none;font-size:16px;}
.rd-tree--stallions .barn .bnname{font-weight:700;font-style:italic;color:var(--rd-ink);font-size:19px;}
.rd-tree--stallions .st2tree{margin-top:14px;padding-top:14px;border-top:1px solid var(--rd-hair);}
.rd-tree--stallions .st2gen1{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.rd-tree--stallions .st2parent{padding:8px 10px;border-radius:4px;cursor:default;}
.rd-tree--stallions .st2parent.has{cursor:pointer;}
.rd-tree--stallions .st2parent .st2role{display:block;font-family:var(--rd-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--rd-dim);}
.rd-tree--stallions .st2parent .st2nm{display:block;font-family:var(--rd-disp);font-size:18px;font-weight:600;color:var(--rd-ink);margin-top:2px;}
.rd-tree--stallions .st2gen2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;}
.rd-tree--stallions .st2gp-pair{display:flex;flex-direction:column;gap:5px;}
.rd-tree--stallions .st2gp{font-size:14px;color:var(--rd-muted);padding:4px 8px;border-left:2px solid var(--rd-boxdash);cursor:default;}
.rd-tree--stallions .st2gp.has{cursor:pointer;}
.rd-tree--stallions .st2parent.sel,.rd-tree--stallions .st2gp.sel{border-left:2px solid var(--rd-poster);background:rgba(var(--rd-poster-rgb),.16);}
.rd-tree--stallions .st2parent.has:hover,.rd-tree--stallions .st2gp.has:hover{background:rgba(var(--rd-poster-rgb),.10);}

@media(max-width:820px){.rd-tree--foals .row{flex-direction:column;}.rd-tree--foals .photowrap{order:1;max-width:460px;margin:0 auto;}
  .rd-tree--foals .info{order:2;flex-basis:auto;height:auto;}.rd-tree--foals .pedwrap{order:3;}
.rd-tree--stallions .row{flex-direction:column;}.rd-tree--stallions .photowrap{order:1;max-width:460px;margin:0 auto;}
  .rd-tree--stallions .info{order:2;flex-basis:auto;height:auto;}.rd-tree--stallions .pedwrap{order:3;}}
@media(max-width:760px){
  .rd-tree .pedgrid{grid-template-columns:1fr;gap:0;border-left:1px solid var(--rd-hair);padding-left:0;margin-left:2px;}
  .rd-tree .node{grid-column:auto!important;grid-row:auto!important;min-height:0;border:0;border-bottom:1px solid var(--rd-hair);border-radius:0;padding:9px 10px;background:none;opacity:1;display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:flex-start;text-align:left;gap:4px 8px;}
  .rd-tree .node.has{background:none;}
  .rd-tree .node .role{flex:0 0 auto;margin:0;}
  .rd-tree .node .meta{margin-top:0;flex:0 0 auto;}
  .rd-tree .node.g1{padding-left:10px;background:rgba(var(--rd-card-bg),.55);}
  .rd-tree .node.g2{padding-left:26px;}
  .rd-tree .node.g3{padding-left:42px;}
  .rd-tree .node.g1 .nm1{font-size:14px;}
  .rd-tree .node.g2 .nm2{font-size:12.5px;}
  .rd-tree .node.sel{border-left:2px solid var(--rd-poster);background:rgba(var(--rd-poster-rgb),.16);}
}

/* R&D 08-04: SIRE BOX for the small #colts foal cards -- same concept just approved on the
   foal-detail pages' .sirecard (real sire photo, name, incentive badges, click-to-expand mini
   pedigree), compacted to fit the narrower .row card and simplified to ONE generation
   (sire's-sire / sire's-dam) instead of the detail page's 2-row tree -- per Johnny's own "1 row
   deep" variant already built for H064/H065/H066's own sirecard. Sits as the LAST child inside
   .row, after .pedwrap, order:4. NOTE ON CONTAINMENT: .row itself carries NO padding (padding
   lives on .info/.pedwrap individually) so a plain width:100% block needs zero negative margin to
   stay flush with the card's own edges -- unlike the .sheet detail-page bug (fixed 08-04, margin:16px
   -40px 0 -> margin:16px 0 0), there is no padding here to escape from in the first place. Content
   (photo/name/badges/pedigree pair) sourced verbatim from each foal's own already-verified
   .sirecard block (noble-RD-DEFAULT-FOAL-DETAIL_NEWCROPS / -H064/-H065/-H066_NEWCROPS, all
   20260804, read-only reference) -- no re-research, per project reuse rule. */
.rd-tree .sirebox{flex:1 1 100%;width:100%;order:4;margin-top:16px;padding:14px 28px 0;border-top:1px solid var(--rd-hair);}
.rd-tree .sb-kick{font-family:var(--rd-font);font-weight:700;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--rd-hover);margin-bottom:10px;}
.rd-tree .sb-top{display:flex;flex-wrap:wrap;column-gap:28px;row-gap:10px;align-items:flex-start;}
.rd-tree .sb-photo{flex:1.13 1 260px;min-width:260px;order:2;aspect-ratio:456/303;height:auto;overflow:hidden;border-radius:0;background:rgba(0,0,0,.18);}
.rd-tree .sb-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;display:block;}
.rd-tree .sb-info{flex:1 1 260px;min-width:260px;order:1;}
.rd-tree .sb-name{font-family:var(--rd-disp);font-weight:600;font-size:14px;color:var(--rd-ink);line-height:1.2;}
.rd-tree .sb-badges{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap;align-items:center;}
.rd-tree .sb-badge{position:relative;display:inline-flex;}
.rd-tree .sb-badges img{height:22px;width:auto;object-fit:contain;display:block;}
.rd-tree .sb-fb{display:inline-block;margin-top:6px;font-family:var(--rd-font);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--rd-hover);text-decoration:none;}
.rd-tree .sb-fb:hover{text-decoration:underline;}
.rd-tree .sb-tree{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;}
.rd-tree .sb-cell{position:relative;z-index:0;border:1px solid var(--rd-boxdash);border-radius:4px;padding:6px 9px;cursor:pointer;background:rgba(var(--rd-card-bg),.5);transition:border-color .15s,background .15s;}
.rd-tree .sb-cell:hover{border-color:var(--rd-poster);}
.rd-tree .sb-cell.sel{border-color:var(--rd-poster);background:rgba(var(--rd-poster-rgb),.16);}
.rd-tree .sb-cell .sb-tag{display:block;font-family:var(--rd-mono);font-size:var(--fs-small);letter-spacing:.1em;text-transform:uppercase;color:var(--rd-dim);}
.rd-tree .sb-cell .sb-nm{display:block;font-family:var(--rd-disp);font-size:var(--fs-small);color:var(--rd-ink);margin-top:2px;}
.rd-tree .sirebox .rd-biocard{margin-top:12px;}
@media(max-width:480px){.rd-tree .sirebox{padding-left:24px;padding-right:14px;}.rd-tree .sb-tree{grid-template-columns:1fr;}.rd-tree .sb-top{flex-wrap:wrap;}}

.rd-crosses{--rdc-font:'Jost',sans-serif;--rdc-disp:'Cinzel',serif;--rdc-body:'EB Garamond',Georgia,serif;
  max-width:900px;margin:16px auto 28px;padding:28px 24px 32px;text-align:center;position:relative;z-index:1;} /* Johnny 08-02g: 32px bottom padding added so the INQUIRE button has room before the box/texture ends */ /* Johnny 08-02d: moved most of the top gap from margin into padding-top so the moon-beam ::before texture (height:100% of this box) extends to cover the seam instead of stopping at a hard plain-bg edge; bottom margin 64px->28px closes the dead space before the Why/Ranch section below. Prior note (08-02c): top margin 64px->32px, closes the "blank brown cell" dead-flat gap between the foal cards and this section (measured live: 26px #colts padding-bottom + 64px this margin = ~90px of flat color with zero texture) */
.rd-crosses::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:100vw;height:100%;z-index:-1;pointer-events:none;
  background-image:url("/images/home-photo-5-075c5a843a.jpg");
  background-size:cover;background-position:center top;mix-blend-mode:screen;opacity:.16;
  /* Johnny 08-09 ('faint square outline around 2027 Foals header'): this layer was a hard-edged
     rectangle -- feathered so the texture fades in/out instead of printing its own box edge. */
  -webkit-mask-image:linear-gradient(to bottom,transparent,#fff 10%,#fff 88%,transparent);
  mask-image:linear-gradient(to bottom,transparent,#fff 10%,#fff 88%,transparent);} /* Johnny 08-02: "moon beam" (ART IDEAS/Dot patterns/Gemini made/moon beam.jpg) -- screen blend not multiply, this asset is light-ray-on-black, multiply would just darken it out */
.rd-crosses .kick{font-family:var(--rdc-font);font-weight:700;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:#BFB4A0;margin-bottom:14px;}
.rd-crosses .avail{display:inline-block;margin-left:10px;font-family:var(--rdc-font);font-weight:700;font-size:var(--fs-small);letter-spacing:.1em;
  text-transform:uppercase;color:#9FAA84;border-top:1px solid rgba(159,170,132,.5);border-bottom:1px solid rgba(159,170,132,.5);padding:2px 0;}
.rd-crosses h2{font-family:var(--rdc-disp);font-weight:600;font-size:clamp(28px,4.5vw,44px);letter-spacing:.03em;text-transform:uppercase;
  color:#F5F3EE;margin:0 0 14px;}
.rd-crosses .desc{font-family:var(--rdc-body);font-size:18px;color:#CFC5B6;margin:0 0 20px;line-height:1.5;}
.rd-crosses ul.crosslist{display:flex;flex-direction:column;max-width:640px;margin:0 auto;list-style:none;
  padding:20px 26px;text-align:left;background:rgba(24,22,19,.66);border:1px solid rgba(191,180,160,.22);border-radius:3px;} /* Johnny 08-02c: 10px->20px, more breathing room top/bottom */
.rd-crosses ul.crosslist li{display:block;
  font-family:var(--rdc-disp);font-size:15px;font-weight:400;color:#D2C8BA;padding:12px 0;
  border-bottom:1px solid rgba(191,180,160,.14);}
.rd-crosses ul.crosslist li:last-child{border-bottom:none;}
/* Johnny 08-02 (routed via DATA-FUTURECROPS-INCENTIVE-ELIGIBILITY-0802): pairtop now holds just the
   sire x dam grid (was on the list item itself) so pairbadges can sit below it as its own row without
   fighting the 3-column template. */
.rd-crosses ul.crosslist li .pairtop{display:grid;grid-template-columns:1fr auto 1fr;align-items:baseline;column-gap:12px;}
.rd-crosses ul.crosslist li .sire{text-align:right;}
.rd-crosses ul.crosslist li .dam{text-align:left;}
.rd-crosses ul.crosslist li .x{text-align:center;color:#8d8478;font-size:22px;font-weight:600;}
/* small incentive-eligibility badges under each Sire x Dam pair -- same badge art as the "Why Poker
   Bar Bred" band + the foal cards' Riata/Royal Crown icons, only for programs VERIFIED ON for that
   specific pair (master v25, FUTURE CROPS 2027-2028 tab). Provisional/Unverified programs are never
   shown here -- see DECISIONS DATA-FUTURECROPS-INCENTIVE-ELIGIBILITY-0802. Pairs with zero verified
   programs, or flagged LOST/ON HOLD in the master, carry no badge row on purpose, not an oversight. */
.rd-crosses ul.crosslist li .pairbadges{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:8px;flex-wrap:wrap;}
.rd-crosses ul.crosslist li .pairbadges .pbslot{position:relative;display:inline-flex;align-items:center;justify-content:center;
  padding:3px 4px;background:rgba(11,11,11,.42);border-radius:2px;}
.rd-crosses ul.crosslist li .pairbadges img{height:18px;width:auto;max-width:100%;object-fit:contain;display:block;}
.rd-crosses .crossnote{font-family:var(--rdc-font);font-size:var(--fs-small);letter-spacing:.12em;text-transform:uppercase;color:#BFB4A0;margin-top:18px;}
.rd-crosses .yearblock+.yearblock{margin-top:40px;}
.rd-crosses .later{font-family:var(--rdc-font);font-size:var(--fs-small);letter-spacing:.12em;text-transform:uppercase;color:#BFB4A0;margin-top:26px;}
.rd-crosses .inquire{margin:28px 0 6px;}
.rd-crosses .inquire a.crossbtn{display:inline-flex;align-items:center;gap:8px;position:relative;overflow:hidden;z-index:0;
  font-family:var(--rdc-font);font-weight:700;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;
  color:#2A1810;background:#E08E2B;padding:14px 32px;border-radius:0;text-decoration:none;
  transition:background .2s ease,transform .15s ease;}
.rd-crosses .inquire a.crossbtn span,.rd-crosses .inquire a.crossbtn svg{position:relative;z-index:1;}
.rd-crosses .inquire a.crossbtn:hover{background:#D8A030;transform:translateY(-1px);}
.rd-crosses .inquire a.crossbtn svg{transition:transform .2s ease;}
.rd-crosses .inquire a.crossbtn:hover svg{transform:translateX(3px);}
/* Johnny 08-02c: plain text link -> real button, poster-banner treatment (Marigold bg, dark-ink
   knockout text+arrow, matches the "2026 FOALS" shobox) + the shared misty-grain overlay below. */
@media(max-width:700px){.rd-crosses ul.crosslist{padding:6px 16px;} .rd-crosses ul.crosslist li{font-size:13.5px;padding:10px 0;} .rd-crosses ul.crosslist li .pairtop{grid-template-columns:1fr auto 1fr;column-gap:6px;} .rd-crosses ul.crosslist li .pairbadges img{height:16px;}}
:root{--rdc-disp:'Cinzel',serif;--rdc-body:'EB Garamond',Georgia,serif;}
/* WEB 08-09 proto: 2027 crosses -> photo cards + sire windows (Johnny's 08-04 brief).
   Facts untouched: pairtop + pairbadges markup moved verbatim from the retired ul.crosslist. */
.x27list{display:flex;flex-direction:column;max-width:1000px;margin:0 auto;text-align:left;
  padding:14px 22px;background:rgba(24,22,19,.66);border:1px solid rgba(191,180,160,.22);border-radius:3px;}
.x27row{display:grid;grid-template-columns:56px 1fr 56px;column-gap:16px;align-items:center;
  padding:12px 0;border-bottom:1px solid rgba(191,180,160,.14);}
.x27list .x27row:last-of-type{border-bottom:none;}
.xph{width:56px;height:56px;border-radius:3px;overflow:hidden;border:1px solid rgba(191,180,160,.28);
  background:rgba(11,11,11,.42);display:flex;align-items:center;justify-content:center;}
.xph-img{width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block;filter:saturate(.92);}
.xph-ini{font-family:var(--rdc-font);font-weight:700;font-size:12px;letter-spacing:.18em;color:#8d8478;padding-left:.18em;}
.x27mid{min-width:0;}
.x27mid .pairtop{display:grid;grid-template-columns:1fr auto 1fr;align-items:baseline;column-gap:12px;
  font-family:var(--rdc-disp);font-size:15px;font-weight:400;color:#D2C8BA;}
.x27mid .sire{text-align:right;}
.x27mid .dam{text-align:left;}
.x27mid .x{text-align:center;color:#8d8478;font-size:22px;font-weight:600;}
.x27mid .pairbadges{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:8px;flex-wrap:wrap;}
.x27mid .pairbadges .pbslot{position:relative;display:inline-flex;align-items:center;justify-content:center;
  padding:3px 4px;background:rgba(11,11,11,.42);border-radius:2px;}
.x27mid .pairbadges img{height:18px;width:auto;max-width:100%;object-fit:contain;display:block;}
.xseewrap{display:flex;justify-content:center;margin-top:8px;}
.xsee{display:inline-flex;align-items:center;gap:6px;background:rgba(11,11,11,.28);border:1px solid rgba(191,180,160,.3);
  border-radius:2px;box-shadow:0 1px 4px rgba(0,0,0,.35);padding:4px 9px;cursor:pointer;color:#BFB4A0;
  transition:color .18s ease,border-color .18s ease;}
.xsee:hover{color:#F5F3EE;border-color:rgba(191,180,160,.55);}
.xsee-lbl{font-family:var(--rdc-font);font-weight:700;font-size:10px;letter-spacing:.22em;text-transform:uppercase;}
.xsee svg{transition:transform .2s ease;}
.xsee:hover svg{transform:translateX(3px);}
.xsee[aria-expanded="true"] svg{transform:rotate(90deg);}
.xsee--name{background:none;border:none;box-shadow:none;padding:0;justify-self:end;gap:5px;font:inherit;letter-spacing:inherit;color:inherit;border-bottom:1px dotted rgba(191,180,160,.45);border-radius:0;flex-wrap:wrap;justify-content:flex-end;}
.xsee--name .sire{text-align:right;}
.xsee--name:hover{color:#EDD9AE;border-bottom-color:#EDD9AE;}
.xsee--name svg{flex:none;opacity:.75;}
.xsee--dam{justify-self:start;}
.xsee--dam .dam{text-align:left;}
.xw-id .xw-tree{margin-top:8px;}
/* V4 CARD VERBATIM (Johnny GO 08-10) — demo classes, vc- prefix */
.vc-card{position:relative;background:#1E1812;border:1px solid rgba(191,180,160,.34);box-shadow:0 2px 14px rgba(0,0,0,.5);border-radius:3px;padding:18px 20px 16px;max-width:1000px;margin:0 auto;text-align:left;}
.vc-top{display:flex;gap:16px;align-items:flex-start;margin-bottom:12px;}
.vc-phcol{flex:none;width:220px;}
.vc-photo{width:220px;height:140px;object-fit:cover;border:1px solid rgba(191,180,160,.3);border-radius:3px;display:block;cursor:zoom-in;}
.vc-pnav{display:flex;align-items:stretch;gap:1px;margin-top:4px;height:18px;}
.vc-pnav button{flex:1;background:#D08C4E;border:1px solid rgba(20,14,8,.55);color:#241505;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;}
.vc-pnav button:hover{filter:brightness(1.12);}
.vc-cnt{flex:none;min-width:44px;display:flex;align-items:center;justify-content:center;background:#1a1511;border:1px solid rgba(191,180,160,.25);color:#EDD9AE;font-family:var(--rdc-font);font-weight:700;font-size:9.5px;letter-spacing:.14em;}
.vc-kick{font-family:var(--rdc-font);font-weight:700;font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:#BFB4A0;}
.vc-namebtn{background:none;border:none;padding:0;margin-top:2px;cursor:pointer;font-family:var(--rdc-disp);font-size:22px;color:#F5F3EE;border-bottom:1px dotted rgba(191,180,160,.45);display:inline-flex;align-items:center;gap:7px;text-align:left;}
.vc-namebtn:hover,.vc-namebtn.sel{color:#EDD9AE;border-bottom-color:#EDD9AE;}
.vc-namebtn svg{opacity:.7;flex:none;}
.vc-cells{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;}
.vc-cell{display:flex;gap:8px;align-items:baseline;padding:9px 12px;background:#282017;border:1px solid rgba(191,180,160,.28);border-radius:2px;cursor:pointer;transition:border-color .18s ease;}
.vc-cell:hover,.vc-cell.sel{border-color:rgba(191,180,160,.6);}
.vc-tag{font-family:var(--rdc-font);font-weight:700;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:#8d8478;flex:none;}
.vc-nm{font-family:var(--rdc-disp);font-size:14.5px;color:#D2C8BA;}
.vc-doss{position:relative;margin-top:12px;padding:14px 40px 14px 16px;background:#282017;border:1px solid rgba(191,180,160,.28);border-radius:2px;}
.vc-dclose{position:absolute;top:6px;right:8px;background:none;border:none;color:#8d8478;font-size:20px;line-height:1;cursor:pointer;padding:4px;}
.vc-dclose:hover{color:#F5F3EE;}
.vc-dhead{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
.vc-dnm{font-family:var(--rdc-disp);font-size:16px;color:#F5F3EE;}
.vc-drole{font-family:var(--rdc-font);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#8d8478;}
.vc-rows{display:flex;flex-direction:column;gap:7px;border-bottom:1px solid rgba(191,180,160,.14);padding-bottom:12px;margin-bottom:12px;}
.vc-rows:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0;}
.vc-row{display:grid;grid-template-columns:92px 1fr;gap:10px;font-family:var(--rdc-body);font-size:14px;line-height:1.45;color:#CFC5B6;}
.vc-lab{font-family:var(--rdc-font);font-weight:700;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:#BFB4A0;padding-top:2px;}
.vc-treekick{font-family:var(--rdc-font);font-weight:700;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:#8d8478;margin-bottom:8px;}
.vc-tree{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px;}
.vc-tcol{display:flex;flex-direction:column;gap:6px;}
.vc-node{padding:7px 11px;background:#1E1812;border:1px solid rgba(191,180,160,.22);border-radius:2px;}
.vc-node .vc-tag{display:block;margin-bottom:1px;}
.vc-node.vc-g2{margin-left:14px;opacity:.85;}
.vc-node .vc-nm{font-size:13.5px;}
@media(max-width:560px){.vc-top{flex-direction:column;}.vc-phcol{width:100%;}.vc-photo{width:100%;height:190px;}.vc-row{grid-template-columns:1fr;gap:2px;}.vc-cells{grid-template-columns:1fr;}}

/* V4 card (Johnny GO 08-10) */
.v4top{align-items:flex-start;}
.v4ph{flex:none;width:220px;}
.v4hero{width:220px;height:140px;object-fit:cover;border:1px solid rgba(191,180,160,.3);border-radius:3px;display:block;cursor:zoom-in;}
.v4pnav{display:flex;align-items:stretch;gap:1px;margin-top:4px;height:18px;}
.v4pnav button{flex:1;background:#D08C4E;border:1px solid rgba(20,14,8,.55);color:#241505;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;}
.v4pnav button:hover{filter:brightness(1.12);}
.v4cnt{flex:none;min-width:44px;display:flex;align-items:center;justify-content:center;background:#1a1511;border:1px solid rgba(191,180,160,.25);color:#EDD9AE;font-family:var(--rdc-font);font-weight:700;font-size:9.5px;letter-spacing:.14em;}
.v4id{flex:1;}
.v4doss{position:relative;}
.v4back{position:absolute;top:6px;right:8px;background:none;border:none;color:#8d8478;font-size:20px;line-height:1;cursor:pointer;padding:4px;}
.v4back:hover{color:#F5F3EE;}
.v4treekick{font-family:var(--rdc-font);font-weight:700;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:#8d8478;margin:12px 0 8px;}
.v4tree .v4tcol{display:flex;flex-direction:column;gap:6px;}
.v4node{padding:7px 11px;background:rgba(24,22,19,.55);border:1px solid rgba(191,180,160,.18);border-radius:2px;}
.v4node .xw-tag{display:block;margin-bottom:1px;}
.v4node.v4g2{margin-left:14px;opacity:.85;}
.v4node .xw-nm{font-size:13.5px;}
.v4lb{position:fixed;inset:0;background:rgba(8,6,4,.93);z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;}
.v4lb[hidden]{display:none;}
.v4lb img{max-width:94vw;max-height:78vh;border:1px solid rgba(191,180,160,.35);border-radius:3px;display:block;}
.v4lbx{position:absolute;top:14px;right:18px;background:none;border:none;color:#BFB4A0;font-size:30px;line-height:1;cursor:pointer;padding:6px;}
.v4lbx:hover{color:#F5F3EE;}
.v4lbname{font-family:var(--rdc-disp);font-size:15px;letter-spacing:.08em;color:#EDD9AE;margin-bottom:10px;text-transform:uppercase;}
.v4lbbar{display:flex;align-items:stretch;gap:1px;height:22px;margin-top:12px;width:min(420px,90vw);}
.v4lbbar button{flex:1;background:#D08C4E;border:1px solid rgba(20,14,8,.55);color:#241505;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.v4lbbar .v4cnt{min-width:60px;font-size:10.5px;}

.x27win{grid-column:1/-1;margin:2px 0 10px;}
.xw-inner{position:relative;background:rgba(11,11,11,.5);border:1px solid rgba(191,180,160,.26);border-radius:3px;
  padding:18px 20px 16px;text-align:left;}
.xw-close{position:absolute;top:8px;right:10px;background:none;border:none;color:#8d8478;font-size:20px;line-height:1;
  cursor:pointer;padding:4px;}
.xw-close:hover{color:#F5F3EE;}
.xw-top{display:flex;gap:16px;align-items:center;margin-bottom:14px;}
.xw-photo{width:96px;height:96px;object-fit:cover;object-position:center 18%;border-radius:3px;
  border:1px solid rgba(191,180,160,.3);display:block;}
.xw-kick{font-family:var(--rdc-font);font-weight:700;font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:#BFB4A0;}
.xw-name{font-family:var(--rdc-disp);font-size:22px;color:#F5F3EE;margin-top:2px;}
.xw-sub{font-family:var(--rdc-body);font-size:14.5px;color:#CFC5B6;margin-top:3px;}
.xw-treekick{font-family:var(--rdc-font);font-weight:700;font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  color:#BFB4A0;margin:2px 0 8px;}
.xw-tree{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.xw-cell{display:flex;align-items:baseline;gap:8px;padding:9px 12px;background:rgba(24,22,19,.7);
  border:1px solid rgba(191,180,160,.24);border-radius:2px;cursor:pointer;transition:border-color .18s ease;}
.xw-cell:hover,.xw-cell.sel{border-color:rgba(191,180,160,.5);}
.xw-tag{font-family:var(--rdc-font);font-weight:700;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:#8d8478;}
.xw-nm{font-family:var(--rdc-disp);font-size:14.5px;color:#D2C8BA;}
.xw-anc{margin-top:10px;padding:14px 16px;background:rgba(24,22,19,.7);border:1px solid rgba(191,180,160,.22);border-radius:2px;}
.xa-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.xa-nm{font-family:var(--rdc-disp);font-size:16px;color:#F5F3EE;}
.xa-role{font-family:var(--rdc-font);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#8d8478;}
.xa-copy{font-family:var(--rdc-body);font-size:14.5px;color:#CFC5B6;margin:6px 0 0;line-height:1.5;}
.xa-ach{margin-top:10px;border-top:1px solid rgba(191,180,160,.14);padding-top:10px;display:flex;flex-direction:column;gap:7px;}
.xa-r{display:grid;grid-template-columns:92px 1fr;gap:10px;font-family:var(--rdc-body);font-size:14px;color:#CFC5B6;line-height:1.45;}
.xa-l{font-family:var(--rdc-font);font-weight:700;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:#BFB4A0;padding-top:2px;}
@media(max-width:700px){
  .x27list{padding:8px 12px;}
  .x27row{grid-template-columns:40px 1fr 40px;column-gap:10px;}
  .xph{width:40px;height:40px;}
  .x27mid .pairtop{font-size:13.5px;column-gap:6px;}
  .x27mid .pairbadges img{height:16px;}
  .xw-top{flex-direction:column;align-items:flex-start;}
  .xa-r{grid-template-columns:1fr;gap:2px;}
  .xw-tree{flex-wrap:wrap;}
  .v4ph{width:100%;}
  .v4hero{width:100%;height:190px;}
  .xw-top.v4top{flex-direction:column;}
}

/* WEB 2026-07-25 — foal LEAN-CARD photo. Source photos are 4:5 portrait (900x1125). The old stacked .zph rules stretched the photo cell taller/short-wide, so object-fit:cover cropped the sides (noses) and top/bottom (ears/legs). Pin the cell to 4:5 to MATCH the source so cover fills with ~zero crop = the WHOLE foal at every screen width. */
.row .zph{aspect-ratio:4/3!important;height:auto!important;min-height:0!important;align-self:start!important;overflow:hidden;background:var(--cream,#ECE5D8)}
.row .zph img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:var(--focus,50% 40%)!important;display:block!important;filter:contrast(1.05) saturate(1.04)}
@media(max-width:820px){.row .zph{aspect-ratio:4/3!important;height:auto!important;min-height:0!important}.row .zph img{object-fit:cover!important;position:absolute!important;height:100%!important}}

.shband{background:#FFFFFF;width:100%;margin:0;padding:26px 20px;border-radius:0!important;box-sizing:border-box;border:none!important}
.shband .shobox{display:inline-flex;flex-direction:column;align-items:center;gap:8px;background:#0A0A0A;padding:15px 34px;border-radius:0}
.shband .sheye{font:600 var(--fs-small) 'Jost',system-ui,sans-serif;letter-spacing:.34em;text-transform:uppercase;color:#FFFFFF;opacity:.92}
.shband h2{color:#FFFFFF!important;background:none!important;margin:0!important;padding:0!important;font:400 clamp(24px,3vw,36px) 'Archivo Black',sans-serif;text-transform:uppercase;letter-spacing:.01em}
.shband--stallion{background:transparent}.shband--stallion .shobox{background:var(--burnt)}.shband--stallion h2{color:var(--ink)!important}.shband--stallion .sheye{color:var(--ink)!important;opacity:.75}
/* Johnny 08-01: Foals header band goes clear (dark Cognac wrap shows through), box is the foal theme colour (Marigold) not black -- Stallion's banner box (Copper, liked as-is) is untouched. */
.shband--foal{background:transparent}.shband--foal .shobox{background:#E08E2B;position:relative;overflow:hidden;z-index:0}.shband--foal h2{color:#2A1810!important;position:relative;z-index:1}.shband--foal .sheye{color:#2A1810!important;opacity:.75;position:relative;z-index:1}
.shband--stallion .shobox{position:relative;overflow:hidden;z-index:0}.shband--stallion h2{position:relative;z-index:1}.shband--stallion .sheye{position:relative;z-index:1}
/* Johnny 08-02g: curious ask -- same aged/dust texture clipped onto the wordmark glyphs themselves, subtle, sits above the real (still-accessible) h2 text */
.shband--foal h2::after,.shband--stallion h2::after{content:attr(data-text);position:absolute;inset:0;z-index:2;pointer-events:none;
  -webkit-background-clip:text;background-clip:text;color:transparent;mix-blend-mode:multiply;opacity:.30;
  background-image:var(--nr-aged-texture);background-size:cover;background-position:center;}
/* Johnny 08-01: misty-cloud bg overlay at 20% on both poster boxes (key_cloud-dust.png, same keyed-matte library as the aged grain). */
.shband--foal .shobox::before,.shband--stallion .shobox::before,.rd-crosses .inquire a.crossbtn::before,.rd-tree .reclinks a::before,.doors .btn::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:var(--nr-aged-texture);;background-size:cover;background-position:center;mix-blend-mode:multiply;opacity:.20;}
/* Johnny 08-02 (cont. 3): side-by-side test (Civil War 2 vs. dissolve/dust 18) -- Johnny picked Civil War 2 for both FOAL and STALLION door buttons. Dissolve/dust (18) kept as --nr-door-ov18 above for reference later, just not applied here. */
.doors .btn::before{background-image:var(--nr-door-civilwar2);}



/* LIVE home.html doors buttons (fetched 2026-09-02 from noble-ranc-52060c05).
   Beat noble-stallions.css leftover 2-col grid. Exact live class names:
   .doors .btns / .btns-foals / .btn.down / .btn.go */
.doors .btns,
.doors .door .btns{
  display:flex !important;
  gap:10px;
  align-items:stretch;
  grid-template-columns:none !important;
}
.doors .btns .btn.down,
.doors .door .btns .btn.down{flex:0 0 auto}
.doors .btns .btn.go,
.doors .door .btns .btn.go{flex:1 1 auto;min-width:0;width:auto;grid-column:auto}
@media (min-width:701px) and (max-width:1270px){
  .doors .btns.btns-foals,
  .doors .door .btns.btns-foals{flex-wrap:wrap}
  .doors .btns.btns-foals .btn.down,
  .doors .door .btns.btns-foals .btn.down{flex:1 1 calc(50% - 5px)}
  .doors .btns.btns-foals .btn.go,
  .doors .door .btns.btns-foals .btn.go{flex:1 1 100%;width:100%}
}
@media (max-width:700px){
  .doors .btns.btns-foals,
  .doors .door .btns.btns-foals{flex-direction:row;flex-wrap:wrap}
  .doors .btns.btns-foals .btn.down,
  .doors .door .btns.btns-foals .btn.down{flex:1 1 calc(50% - 5px)}
  .doors .btns.btns-foals .btn.go,
  .doors .door .btns.btns-foals .btn.go{flex:1 1 100%;width:100%}
}
