/* =========================================================
   RYAN MOTES — ROPE HORSES
   Weatherford, Texas.
   Editorial paper-and-ink system: warm bone content sections
   alternating with dark, full-bleed photo bands + black stat strips.
   Display: Bebas Neue · Labels/UI: Oswald · Script: Yellowtail · Body: Inter
   ========================================================= */

:root{
  --paper:   #EFE7D7;   /* main background (warm bone) */
  --paper-2: #E6DAC3;   /* raised panels / alternate band */
  --card:    #FBF7EF;   /* light tiles */
  --ink:     #17140D;   /* near-black text + dark sections */
  --ink-2:   #201C14;   /* raised dark panels */
  --line:    #D3C7AC;   /* hairline on paper */
  --line-dk: #322D22;   /* hairline on dark */
  --muted:   #6B6350;   /* secondary text on paper */
  --muted-dk:#A79E8A;   /* secondary text on dark */
  --cream:   #F5EFE2;   /* text on dark */

  --gold:    #A9791A;   /* deep antique gold — text/accents on PAPER */
  --gold-dk: #D8B45E;   /* bright gold — accents on DARK */
  --gold-fill:#C69A34;  /* gold fills (button bg) */

  --maxw: 1240px;
  --gutter: clamp(20px, 5vw, 84px);
  --ease: cubic-bezier(.16,1,.3,1);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  background:var(--paper);
  color:var(--ink);
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-size:clamp(16px,1.03vw,18px);
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img,video{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--gold-fill); color:#000; }

/* ---------- Type primitives ---------- */
.display{ font-family:"Bebas Neue",Impact,sans-serif; font-weight:400; text-transform:uppercase; line-height:.86; letter-spacing:.012em; }
.script{ font-family:"Yellowtail",cursive; text-transform:none; letter-spacing:0; }
.gold{ color:var(--gold); }
.label{
  display:inline-flex; align-items:center; gap:.7rem;
  font-family:"Oswald",sans-serif; font-weight:600;
  font-size:.74rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold);
}
.label::before{ content:"✕"; font-size:.82em; letter-spacing:0; color:var(--gold); opacity:.9; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:"Oswald",sans-serif; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  font-size:.82rem; padding:1.05em 2em; border:2px solid transparent; cursor:pointer;
  transition:transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.btn:hover{ transform:translateY(-3px); }
.btn--gold{ background:var(--ink); color:var(--cream); }
.btn--gold:hover{ background:var(--gold-fill); color:#000; }
.btn--ghost{ border-color:rgba(245,239,226,.6); color:var(--cream); }
.btn--ghost:hover{ background:var(--cream); color:var(--ink); }
.btn--block{ border-color:var(--ink); color:var(--ink); }
.btn--block:hover{ background:var(--ink); color:var(--cream); }

/* =========================== UTILITY BAR (dark) =========================== */
.topbar{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.5rem var(--gutter); background:var(--ink); color:var(--muted-dk);
  font-family:"Oswald",sans-serif; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  position:relative; z-index:60;
}
.topbar a{ color:var(--muted-dk); transition:color .25s; }
.topbar a:hover{ color:var(--gold-dk); }
.topbar__loc b{ color:var(--cream); font-weight:600; }
.topbar__social{ display:flex; gap:1.4rem; }
@media (max-width:640px){ .topbar__loc{ display:none; } }

/* =========================== NAV (solid paper) =========================== */
.nav{
  position:sticky; top:0; z-index:55;
  display:flex; align-items:center; justify-content:space-between;
  padding:.7rem var(--gutter);
  background:var(--paper); border-bottom:1px solid var(--line);
  transition:padding .4s var(--ease), box-shadow .4s var(--ease);
}
.nav.is-scrolled{ padding-top:.45rem; padding-bottom:.45rem; box-shadow:0 8px 30px rgba(30,24,10,.12); }
.brand{ display:flex; align-items:center; }
.brand__logo{ height:clamp(44px,5vw,56px); width:auto; display:block; }
.brand--footer .brand__logo{ height:clamp(62px,8vw,82px); }

.nav__links{ display:flex; align-items:center; gap:1.8rem; }
.nav__links a{
  font-family:"Oswald",sans-serif; font-weight:600; font-size:.82rem;
  letter-spacing:.1em; text-transform:uppercase; color:var(--ink);
  position:relative; padding:.2rem 0; transition:color .25s;
}
.nav__links a::after{ content:""; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--gold); transition:width .3s var(--ease); }
.nav__links a:hover{ color:var(--gold); }
.nav__links a:hover::after{ width:100%; }
.nav__cta{ color:var(--cream) !important; background:var(--ink); padding:.6em 1.2em; }
.nav__cta::after{ display:none; }
.nav__cta:hover{ background:var(--gold-fill); color:#000 !important; }
.nav__toggle{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:6px; }
.nav__toggle span{ width:26px; height:2px; background:var(--ink); transition:.3s var(--ease); }

.mobile-menu{
  position:fixed; inset:0; z-index:54; background:var(--paper);
  display:flex; flex-direction:column; justify-content:center; gap:.2rem; padding:var(--gutter);
  transform:translateY(-100%); transition:transform .5s var(--ease);
}
.mobile-menu.is-open{ transform:translateY(0); }
.mobile-menu a{ font-family:"Bebas Neue",sans-serif; font-size:2.5rem; letter-spacing:.02em; color:var(--ink); }
.mobile-menu a .gold{ color:var(--gold); }

/* =========================== HERO (dark, bottom-left) =========================== */
.hero{ position:relative; min-height:calc(100svh - 108px); display:flex; align-items:flex-end; justify-content:flex-start; overflow:hidden; background:var(--ink); }
.hero__media{ position:absolute; inset:0; z-index:0; background:radial-gradient(120% 90% at 60% 30%,#22201b 0%,#0c0b09 75%); }
.hero__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 28%; }
.is-missing{ display:none !important; }
.hero__scrim{ position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(90deg, rgba(10,9,7,.86) 0%, rgba(10,9,7,.5) 34%, rgba(10,9,7,0) 62%),
    linear-gradient(0deg, rgba(10,9,7,.9) 0%, rgba(10,9,7,.15) 42%, rgba(10,9,7,0) 70%); }
.hero__inner{ position:relative; z-index:2; padding:0 var(--gutter) clamp(48px,9vh,110px); max-width:900px; }
.hero__over{ font-family:"Oswald",sans-serif; font-weight:600; font-size:clamp(.74rem,1.6vw,.95rem); letter-spacing:.32em; text-transform:uppercase; color:var(--gold-dk); }
.hero__over::before{ content:""; display:inline-block; width:34px; height:2px; background:var(--gold-dk); vertical-align:middle; margin-right:.9rem; margin-bottom:.22em; }
.hero__title{ color:var(--cream); font-size:clamp(3.6rem,12vw,9.5rem); margin-top:.5rem; text-shadow:0 6px 40px rgba(0,0,0,.5); }
.hero__title span{ display:block; }
.hero__creds{ margin-top:1.2rem; display:flex; flex-wrap:wrap; gap:.5rem 1rem;
  font-family:"Oswald",sans-serif; font-weight:500; font-size:clamp(.72rem,1.5vw,.95rem);
  letter-spacing:.14em; text-transform:uppercase; color:var(--cream); }
.hero__creds span{ display:inline-flex; align-items:center; gap:1rem; }
.hero__creds span::after{ content:"✕"; color:var(--gold-dk); font-size:.7em; }
.hero__creds span:last-child::after{ display:none; }
.hero__actions{ margin-top:2rem; display:flex; gap:1rem; flex-wrap:wrap; }
.hero .btn--gold{ background:var(--gold-fill); color:#000; }
.hero .btn--gold:hover{ background:var(--gold-dk); }

/* =========================== STAT RIBBON (dark strip) =========================== */
.ribbon{ position:relative; z-index:3; background:var(--ink); border-top:3px solid var(--gold-fill);
  display:grid; grid-template-columns:repeat(4,1fr); }
.ribbon__cell{ padding:clamp(1.6rem,3.5vw,2.6rem) 1rem; text-align:center; border-right:1px solid var(--line-dk); }
.ribbon__cell:last-child{ border-right:0; }
.ribbon__num{ display:block; font-family:"Bebas Neue",sans-serif; font-size:clamp(2.6rem,6vw,5rem); line-height:.9; color:var(--cream); }
.ribbon__num .gold, .ribbon__num.gold{ color:var(--gold-dk); }
.ribbon__lab{ display:block; margin-top:.5rem; font-family:"Oswald",sans-serif; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted-dk); line-height:1.4; }
@media (max-width:720px){ .ribbon{ grid-template-columns:repeat(2,1fr); } .ribbon__cell:nth-child(2){ border-right:0; } .ribbon__cell:nth-child(1),.ribbon__cell:nth-child(2){ border-bottom:1px solid var(--line-dk);} }

/* =========================== SECTION SHELL =========================== */
.section{ max-width:var(--maxw); margin:0 auto; padding:clamp(72px,11vh,150px) var(--gutter); }
.section__title{ font-family:"Bebas Neue",sans-serif; font-weight:400; text-transform:uppercase; line-height:.9; letter-spacing:.012em; font-size:clamp(2.8rem,7.5vw,6.4rem); color:var(--ink); }
.section__head{ margin-bottom:clamp(2.4rem,6vw,4.4rem); }
.section__head.center{ text-align:center; }
.section__head .label{ margin-bottom:1.1rem; }
.section__head.center .label{ justify-content:center; }
.lede{ color:var(--muted); max-width:58ch; margin-top:1.3rem; font-size:1.05rem; }
.center .lede{ margin-inline:auto; }

/* =========================== STORY (paper) =========================== */
.legacy{ background:var(--paper-2); max-width:none; padding-inline:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.legacy__grid{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(2rem,6vw,5.5rem); align-items:center; padding:clamp(64px,10vh,130px) var(--gutter); }
.legacy__media{ position:relative; }
.legacy__img{ position:relative; aspect-ratio:3/4; overflow:hidden; background:linear-gradient(135deg,#2a271f,#0e0d0a); box-shadow:0 24px 60px rgba(30,24,10,.22); }
.legacy__img img{ width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.legacy__tag{ position:absolute; left:0; bottom:0; background:var(--gold-fill); color:#000; font-family:"Oswald",sans-serif; font-weight:600; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; padding:.6em 1.1em; }
.legacy__copy p{ margin-top:1.3rem; color:#443E32; }
.legacy__copy .script{ color:var(--gold); font-size:clamp(1.8rem,4vw,2.8rem); line-height:1.1; display:block; margin:.3rem 0 .2rem; }
.legacy__copy strong{ color:var(--ink); font-weight:700; }
.pullquote{ margin-top:2rem; border-left:3px solid var(--gold-fill); padding-left:1.3rem; font-family:"Bebas Neue",sans-serif; font-size:clamp(1.5rem,3.2vw,2.4rem); line-height:1.05; text-transform:uppercase; letter-spacing:.01em; color:var(--ink); }

/* =========================== MARQUEE (dark divider) =========================== */
.marquee{ overflow:hidden; background:var(--ink); padding:1rem 0; }
.marquee__track{ display:flex; width:max-content; gap:2.6rem; align-items:center; white-space:nowrap; will-change:transform; }
.marquee__item{ font-family:"Bebas Neue",sans-serif; font-size:clamp(1.6rem,3vw,2.4rem); letter-spacing:.02em; color:#5f5847; text-transform:uppercase; display:inline-flex; align-items:center; gap:2.6rem; }
.marquee__item::after{ content:"✕"; color:var(--gold-dk); font-size:.5em; }
.marquee__item.is-gold{ color:var(--cream); }

/* =========================== RESUME / LEDGER (paper) =========================== */
.resume{ background:var(--paper); }
.ledger{ display:grid; grid-template-columns:8.5rem 1fr; }
.ledger__row{ display:contents; }
.ledger__year{ font-family:"Bebas Neue",sans-serif; font-size:clamp(1.7rem,3vw,2.3rem); color:var(--gold); padding:1.4rem 0; border-top:1px solid var(--line); }
.ledger__body{ padding:1.4rem 0; border-top:1px solid var(--line); }
.ledger__body h3{ font-family:"Oswald",sans-serif; font-weight:600; font-size:clamp(1.05rem,2vw,1.35rem); letter-spacing:.02em; text-transform:uppercase; line-height:1.2; color:var(--ink); }
.ledger__body h3 .win{ color:var(--gold); }
.ledger__body p{ color:var(--muted); font-size:.95rem; margin-top:.25rem; }
.ledger__row:last-child .ledger__year,.ledger__row:last-child .ledger__body{ border-bottom:1px solid var(--line); }
@media (max-width:560px){ .ledger{ grid-template-columns:1fr; } .ledger__year{ padding-bottom:0; border-bottom:0; } .ledger__body{ border-top:0; padding-top:.4rem; } }

/* =========================== FEATURE BAND (photo) =========================== */
.band{ position:relative; width:100%; height:clamp(56vh,72vh,780px); overflow:hidden; background:var(--ink); }
.band img{ width:100%; height:100%; object-fit:cover; object-position:center 40%; }
.band::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,9,7,.15) 0%,transparent 35%,rgba(10,9,7,.6) 100%); }
.band__quote{ position:absolute; left:var(--gutter); bottom:clamp(2rem,6vw,4rem); z-index:2; max-width:min(680px,80vw); }
.band__quote .script{ color:var(--gold-dk); font-size:clamp(1.6rem,4vw,3rem); line-height:1; text-shadow:0 2px 24px rgba(0,0,0,.8); }
.band__quote p{ font-family:"Bebas Neue",sans-serif; text-transform:uppercase; color:var(--cream); font-size:clamp(1.6rem,4.5vw,3.4rem); line-height:.95; margin-top:.3rem; text-shadow:0 2px 24px rgba(0,0,0,.8); }

/* =========================== PROGRAM (split, paper copy) =========================== */
.program{ max-width:none; padding:0; display:grid; grid-template-columns:1.05fr .95fr; min-height:86vh; background:var(--paper); }
.program__media{ position:relative; overflow:hidden; background:linear-gradient(135deg,#22221f,#0d0d0c); }
.program__media img{ width:100%; height:100%; object-fit:cover; }
.program__copy{ display:flex; flex-direction:column; justify-content:center; padding:clamp(3rem,7vw,6rem) var(--gutter); }
.program__copy p{ color:#443E32; margin:1.3rem 0; max-width:48ch; }
.program__stats{ display:flex; gap:2.4rem; margin:.6rem 0 2rem; flex-wrap:wrap; }
.program__stat b{ font-family:"Bebas Neue",sans-serif; font-size:clamp(2rem,4vw,3rem); color:var(--gold); display:block; line-height:.9; }
.program__stat span{ font-family:"Oswald",sans-serif; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
@media (max-width:860px){ .program{ grid-template-columns:1fr; } .program__media{ min-height:56vh; } }

/* =========================== SERVICES (paper, light tiles) =========================== */
.services{ text-align:center; background:var(--paper-2); max-width:none; }
.services > *{ max-width:var(--maxw); margin-inline:auto; }
.svc-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:clamp(2.4rem,6vw,4rem); }
.svc{ background:var(--card); padding:clamp(1.8rem,3vw,2.6rem) clamp(1.4rem,2.4vw,2rem); text-align:left; position:relative; transition:background .3s var(--ease); }
.svc:hover{ background:#fff; }
.svc__no{ font-family:"Bebas Neue",sans-serif; font-size:1.15rem; color:var(--gold); letter-spacing:.1em; }
.svc h3{ font-family:"Oswald",sans-serif; font-weight:600; text-transform:uppercase; letter-spacing:.03em; font-size:1.16rem; margin:.7rem 0 .5rem; color:var(--ink); }
.svc p{ color:var(--muted); font-size:.95rem; }
.svc__mark{ position:absolute; top:1.4rem; right:1.4rem; width:13px; height:13px; border-top:2px solid var(--gold); border-right:2px solid var(--gold); opacity:.55; }
@media (max-width:900px){ .svc-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .svc-grid{ grid-template-columns:1fr; } }

/* =========================== ARENA GALLERY (paper) =========================== */
.arena{ overflow:hidden; padding-bottom:clamp(72px,11vh,150px); background:var(--paper); max-width:none; }
.arena > .section__head, .arena > .ticker__hint{ max-width:var(--maxw); margin-inline:auto; }
.ticker{ margin-top:clamp(2.2rem,5vw,3.4rem); overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; scrollbar-width:none; cursor:grab;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
.ticker::-webkit-scrollbar{ display:none; }
.ticker:active{ cursor:grabbing; }
.ticker:focus-visible{ outline:2px solid var(--gold); outline-offset:4px; }
.ticker__track{ display:flex; gap:clamp(.9rem,1.4vw,1.3rem); width:max-content; padding:0 var(--gutter); }
.shot{ flex:0 0 auto; width:clamp(300px,34vw,460px); margin:0; position:relative; overflow:hidden; background:#ded2b8; border:1px solid var(--line); box-shadow:0 12px 34px rgba(30,24,10,.14); }
.shot__img{ aspect-ratio:3/2; overflow:hidden; }
.shot__img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); user-select:none; -webkit-user-drag:none; }
.shot:hover .shot__img img{ transform:scale(1.05); }
.ticker__hint{ text-align:center; margin-top:1.4rem; font-family:"Oswald",sans-serif; font-size:.68rem; letter-spacing:.24em; text-transform:uppercase; color:var(--muted); }

/* =========================== PARTNERS (paper) =========================== */
.partners{ text-align:center; background:var(--paper-2); max-width:none; }
.partners > *{ max-width:var(--maxw); margin-inline:auto; }
.logos{ display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin:clamp(2.4rem,6vw,4rem) 0 0; }
@media (max-width:820px){ .logos{ grid-template-columns:repeat(2,1fr); } }
.logo{ background:var(--card); min-height:120px; display:grid; place-items:center; text-align:center; padding:1.4rem; transition:background .3s var(--ease); }
.logo:hover{ background:#fff; }
.logo__name{ font-family:"Oswald",sans-serif; font-weight:600; text-transform:uppercase; letter-spacing:.05em; font-size:clamp(.92rem,1.4vw,1.08rem); color:#4b4536; line-height:1.15; transition:color .3s var(--ease); }
.logo:hover .logo__name{ color:var(--gold); }
.partners__cta{ display:flex; flex-wrap:wrap; gap:1.4rem 2rem; align-items:center; justify-content:space-between; text-align:left; background:var(--ink); padding:clamp(1.8rem,4vw,3rem); }
.partners__cta h3{ font-family:"Bebas Neue",sans-serif; font-size:clamp(1.8rem,4vw,3rem); text-transform:uppercase; letter-spacing:.01em; color:var(--cream); }
.partners__cta p{ color:var(--muted-dk); margin-top:.3rem; }
.partners__cta .btn--gold{ background:var(--gold-fill); color:#000; }
.partners__cta .btn--gold:hover{ background:var(--gold-dk); }
.partners__note{ margin-top:1.4rem; font-size:.86rem; color:var(--muted); }

/* =========================== PRESS (paper) =========================== */
.press{ background:var(--paper); }
.press__list{ list-style:none; }
.press__list a{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.4rem 1.6rem; padding:1.5rem 0; border-top:1px solid var(--line); transition:padding .3s var(--ease); }
.press__list li:last-child a{ border-bottom:1px solid var(--line); }
.press__list a:hover{ padding-left:1rem; }
.press__outlet{ font-family:"Bebas Neue",sans-serif; font-size:clamp(1.3rem,2.6vw,2rem); letter-spacing:.02em; color:var(--ink); }
.press__title{ color:var(--muted); font-size:.95rem; }
.press__list a:hover .press__outlet{ color:var(--gold); }

/* =========================== CONTACT (paper) =========================== */
.contact{ text-align:center; background:var(--paper-2); max-width:none; border-top:1px solid var(--line); }
.contact__inner{ max-width:720px; margin:0 auto; }
.contact .lede{ margin-inline:auto; }
.contact__form{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:2.6rem 0 1.4rem; text-align:left; }
.field--full{ grid-column:1 / -1; }
.field label{ display:block; font-family:"Oswald",sans-serif; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.field input,.field select,.field textarea{ width:100%; margin-top:.5rem; background:var(--card); border:1px solid var(--line); color:var(--ink); padding:.9em 1em; font:inherit; font-size:.95rem; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:2px solid var(--gold); outline-offset:-1px; }
.contact__form .btn{ grid-column:1 / -1; justify-self:start; }
.contact__alt{ font-size:.9rem; color:var(--muted); }
.contact__alt a{ color:var(--ink); border-bottom:1px solid var(--gold); }
@media (max-width:640px){ .contact__form{ grid-template-columns:1fr; } }

/* =========================== FOOTER (dark) =========================== */
.footer{ background:var(--ink); border-top:3px solid var(--gold-fill); padding:3rem var(--gutter); display:flex; flex-wrap:wrap; gap:1.4rem 2rem; align-items:center; justify-content:space-between; }
.footer__social{ display:flex; gap:1.6rem; }
.footer__social a{ font-family:"Oswald",sans-serif; font-size:.8rem; text-transform:uppercase; letter-spacing:.14em; color:var(--muted-dk); transition:color .25s; }
.footer__social a:hover{ color:var(--gold-dk); }
.footer__fine{ width:100%; color:#6a6350; font-size:.8rem; }
.footer__fine a{ color:var(--muted-dk); }

/* =========================== REVEAL =========================== */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }

/* =========================== RESPONSIVE =========================== */
@media (max-width:900px){
  .nav__links{ display:none; }
  .nav__toggle{ display:flex; }
  .legacy__grid{ grid-template-columns:1fr; }
  .legacy__img{ aspect-ratio:4/5; max-width:520px; }
}

/* =========================== REDUCED MOTION =========================== */
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; transition:none; }
}
