/* ============================================================
   TITAN COMMUNITY OUTREACH — Design System
   Brand: Red #E21F1D · Gold #E5C379 · Black #101010 · Off #F2F2F2
   Type:  Archivo (display) · DM Sans (body)
   ============================================================ */

:root{
  --red:#E21F1D;
  --red-dark:#B31513;
  --red-tint:#F9DEDD;
  --gold:#E5C379;
  --gold-deep:#C9A14A;
  --black:#101010;
  --ink:#1A1A1A;
  --ink-soft:#4A4642;
  --off:#EFE9DD;
  --paper:#F7F3EB;
  --white:#FFFFFF;
  --line:#E2DACA;
  --shadow:0 22px 48px -30px rgba(16,16,16,.45);
  --radius:16px;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{overflow-x:clip}
html{scroll-behavior:smooth}
body{
  font-family:'DM Sans',system-ui,sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}

h1,h2,h3,h4{font-family:'Archivo',sans-serif;line-height:1.05;letter-spacing:-.015em;font-weight:900;color:var(--black);text-wrap:balance}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
section{padding:80px 0}
@media(max-width:720px){section{padding:56px 0}}

/* ---- signature speed stripe (from brand decals) ---- */
.stripe{display:flex;height:6px;width:120px;border-radius:3px;overflow:hidden}
.stripe i{flex:1}
.stripe i:nth-child(1){background:var(--red)}
.stripe i:nth-child(2){background:var(--gold)}
.stripe i:nth-child(3){background:
  repeating-conic-gradient(var(--black) 0% 25%, var(--white) 0% 50%) 0 0/6px 6px}
.stripe.center{margin:0 auto}

/* kicker */
.kicker{
  font-family:'Archivo';font-weight:800;font-size:12px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--red);display:flex;align-items:center;gap:12px;margin-bottom:16px;
}
.kicker::before{content:"";width:28px;height:4px;background:var(--red);border-radius:2px}
.on-dark .kicker{color:var(--gold)}
.on-dark .kicker::before{background:var(--gold)}
.sec-title{font-size:clamp(30px,4vw,46px);text-transform:uppercase;letter-spacing:-.01em}
.on-dark .sec-title{color:var(--white)}
.sec-intro{font-size:17.5px;color:var(--ink-soft);max-width:720px;margin-top:16px}
.on-dark .sec-intro{color:#CFC9C2}

/* ---- buttons ---- */
.btn{
  display:inline-flex;align-items:center;gap:10px;position:relative;
  font-family:'Archivo';font-weight:800;font-size:14.5px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--white);text-decoration:none;padding:16px 30px;border:none;cursor:pointer;isolation:isolate;
  background:transparent;appearance:none;-webkit-appearance:none;
}
.btn::before{
  content:"";position:absolute;inset:0;background:var(--red);z-index:-1;
  transform:skewX(-8deg);border-radius:6px;transition:background .18s,transform .18s;
}
.btn:hover::before{background:var(--red-dark);transform:skewX(-8deg) scale(1.03)}
.btn.gold{color:var(--black)}
.btn.gold::before{background:var(--gold)}
.btn.gold:hover::before{background:var(--gold-deep)}
.btn.ghost{color:var(--white)}
.btn.ghost::before{background:transparent;border:2px solid rgba(255,255,255,.55)}
.btn.ghost:hover::before{border-color:var(--gold);background:rgba(229,195,121,.08)}
.btn.ghost-dark{color:var(--black)}
.btn.ghost-dark::before{background:transparent;border:2px solid rgba(16,16,16,.4)}
.btn.ghost-dark:hover::before{border-color:var(--red)}

/* ---- header ---- */
.site-header{
  position:sticky;top:0;z-index:100;background:rgba(16,16,16,.96);
  backdrop-filter:blur(10px);border-bottom:1px solid rgba(229,195,121,.22);
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px}
.brand-link{display:flex;align-items:center;flex:none}
.brand-link img{height:40px;width:auto}
.nav-links{display:flex;align-items:center;gap:26px}
.nav-links a{
  color:#D8D3CC;text-decoration:none;font-family:'Archivo';font-weight:700;font-size:13px;
  letter-spacing:.05em;text-transform:uppercase;transition:color .18s;white-space:nowrap;
}
.nav-links a:hover{color:var(--gold)}
.nav-links a.active{color:var(--white);border-bottom:3px solid var(--red);padding-bottom:4px}
.nav-links .btn{padding:11px 22px;font-size:12.5px}

/* nav dropdown groups */
.nav-group{position:relative;display:flex;align-items:center;align-self:stretch}
.nav-group-btn{
  background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:7px;
  color:#D8D3CC;font-family:'Archivo';font-weight:700;font-size:13px;
  letter-spacing:.05em;text-transform:uppercase;transition:color .18s;white-space:nowrap;padding:0;
}
.nav-group-btn::after{
  content:"";width:0;height:0;border:4px solid transparent;border-top-color:currentColor;
  margin-top:4px;transition:transform .18s;
}
.nav-group:hover .nav-group-btn,.nav-group:focus-within .nav-group-btn{color:var(--gold)}
.nav-group:hover .nav-group-btn::after,.nav-group:focus-within .nav-group-btn::after{transform:rotate(180deg) translateY(2px)}
.nav-group.has-active .nav-group-btn{color:var(--white)}
.nav-menu{
  display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);
  flex-direction:column;min-width:230px;padding:12px 0;background:#161310;
  border:1px solid rgba(229,195,121,.22);border-top:3px solid var(--red);
  box-shadow:0 18px 40px rgba(0,0,0,.45);z-index:80;
}
.nav-group:hover .nav-menu,.nav-group:focus-within .nav-menu{display:flex}
.nav-links .nav-menu a{padding:11px 22px;font-size:12px}
.nav-links .nav-menu a:hover{background:rgba(229,195,121,.08)}
.nav-links .nav-menu a.active{border-bottom:none;padding-bottom:11px;color:var(--gold)}
.nav-links .nav-menu a:not(.btn)::after{display:none}

@media(max-width:1500px){
  .nav-links{gap:14px}
  .nav-links a,.nav-group-btn{font-size:11.5px}
  .nav-links .btn{padding:10px 16px;font-size:11.5px}
}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px}
.nav-toggle span{display:block;width:26px;height:3px;background:var(--white);margin:5px 0;border-radius:2px;transition:.2s}
@media(max-width:1080px){
  .nav-links{
    display:none;position:absolute;top:72px;left:0;right:0;background:var(--black);
    flex-direction:column;padding:26px 24px 30px;gap:20px;border-bottom:3px solid var(--red);
    align-items:flex-start;
  }
  .nav-links a,.nav-group-btn{font-size:13px}
  .nav-links.open{display:flex}
  .nav-toggle{display:block}
  .nav-group{flex-direction:column;align-items:flex-start;gap:14px;align-self:auto}
  .nav-group-btn{cursor:default;color:var(--gold)}
  .nav-group-btn::after{display:none}
  .nav-menu{
    display:flex;position:static;transform:none;min-width:0;padding:0 0 0 16px;
    background:none;border:none;box-shadow:none;gap:14px;
  }
  .nav-links .nav-menu a{padding:0;font-size:13px}
  .nav-links .nav-menu a:hover{background:none}
}

/* ---- hero ---- */
.hero{
  position:relative;background:var(--black);color:var(--white);overflow:hidden;
  min-height:calc(100svh - 72px);
  display:flex;align-items:center;
  padding:48px 0 110px;
}
.hero > .wrap{width:100%}
.hero .bg{
  position:absolute;inset:0;overflow:hidden;
  opacity:1;
}
.hero-slideshow{position:absolute;inset:0}
.hero-slide{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center center;
  display:block;pointer-events:none;user-select:none;
  opacity:0;transition:opacity 1.4s ease-in-out;
}
.hero-slide.is-active{opacity:1}
.hero .pixel-reveal__img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:65% center;
  display:block;pointer-events:none;user-select:none;
}
.hero .pixel-reveal__canvas{
  position:absolute;inset:0;width:100%;height:100%;
  display:block;pointer-events:none;
}
.hero .glow{
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(to right,
      rgba(16,16,16,.88) 0%,
      rgba(16,16,16,.78) 22%,
      rgba(16,16,16,.52) 42%,
      rgba(16,16,16,.18) 58%,
      rgba(16,16,16,.04) 72%,
      transparent 88%),
    linear-gradient(to top, rgba(16,16,16,.42) 0%, transparent 38%);
}
.hero .wrap{position:relative;z-index:2}
.hero-tag{font-family:'Archivo';font-weight:800;font-size:12.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:22px;display:flex;align-items:center;gap:12px}
.hero h1{font-size:clamp(42px,7vw,84px);text-transform:uppercase;color:var(--white);max-width:13ch}
.hero h1 .accent{color:var(--gold)}
.hero h1 .redline{color:var(--red)}
.hero p.lead{margin-top:24px;font-size:19px;color:#E4DFD8;max-width:560px}
.hero-ctas{margin-top:38px;display:flex;gap:22px;flex-wrap:wrap}
.hero-meta{margin-top:44px;display:flex;gap:34px;flex-wrap:wrap;font-size:13.5px;color:#B9B2A9}
.hero-meta b{color:var(--white);font-weight:700}

/* page hero (interior) */
.page-hero{position:relative;background:var(--black);color:var(--white);padding:88px 0 72px;overflow:hidden}
.page-hero .bg{position:absolute;inset:0;background-size:cover;background-position:center 32%;opacity:.30;background-image:var(--hero)}
@media(max-width:768px){.page-hero .bg{background-image:var(--hero-m,var(--hero))}}
.page-hero .glow{position:absolute;inset:0;background:
  radial-gradient(800px 400px at 85% 10%, rgba(226,31,29,.45), transparent 60%),
  linear-gradient(to top, rgba(16,16,16,.95), rgba(16,16,16,.45))}
.page-hero .wrap{position:relative;z-index:2}
.page-hero h1{font-size:clamp(36px,5.4vw,60px);text-transform:uppercase;color:var(--white)}
.page-hero p{margin-top:16px;font-size:18px;color:#DDD7CF;max-width:640px}

/* ---- stat band: impact at full speed ---- */
.stat-band{position:relative;overflow:hidden;color:var(--white);padding:58px 0 50px;
  border-top:3px solid var(--gold);border-bottom:3px solid var(--gold);
  background:
    radial-gradient(700px 320px at 50% -40%, rgba(226,31,29,.35), transparent 65%),
    linear-gradient(140deg,#191512 0%,#100E0C 60%,#151110 100%)}
.stat-band::before{ /* panning speed lines */
  content:"";position:absolute;inset:-50% 0;pointer-events:none;
  background:repeating-linear-gradient(115deg, rgba(255,255,255,.04) 0 3px, transparent 3px 90px);
  animation:speedpan 26s linear infinite}
@keyframes speedpan{from{transform:translateX(0)}to{transform:translateX(-90px)}}
.stat-band::after{ /* ghost shield watermark */
  content:"";position:absolute;right:-40px;top:50%;transform:translateY(-50%);
  width:300px;height:300px;opacity:.10;pointer-events:none;
  background:url('/assets/brand/TCO-LogoMark.svg') center/contain no-repeat}
.stat-band .checker-strip{position:absolute;left:0;right:0;height:10px;z-index:2;
  background:repeating-conic-gradient(rgba(16,16,16,.85) 0% 25%, rgba(255,255,255,.9) 0% 50%) 0 0/20px 20px;
  animation:checkerscroll 2.8s linear infinite}
.stat-band .checker-strip.top{top:0}
.stat-band .checker-strip.bottom{bottom:0}
@keyframes checkerscroll{from{background-position:0 0}to{background-position:40px 0}}
.stat-band .wrap{position:relative;z-index:3;display:grid;grid-template-columns:repeat(3,1fr);gap:26px;text-align:center}
.stat-band .wrap > div{position:relative;padding:6px 10px}
.stat-band .wrap > div + div::before{ /* gold slash divider */
  content:"";position:absolute;left:-13px;top:12%;bottom:12%;width:4px;
  background:var(--gold);transform:skewX(-12deg);border-radius:2px;opacity:.35}
@media(max-width:720px){
  .stat-band .wrap{grid-template-columns:1fr;gap:30px}
  .stat-band .wrap > div + div::before{display:none}
}
.stat-band .n{font-family:'Archivo';font-weight:900;font-size:clamp(22px,2.1vw,30px);line-height:1;
  letter-spacing:-.01em;text-shadow:0 4px 24px rgba(0,0,0,.5);max-width:130px}
.stat-band .n span{color:var(--gold)}
.stat-band .l{font-family:'Archivo';font-weight:700;font-size:12.5px;letter-spacing:.16em;
  text-transform:uppercase;margin-top:16px;color:#C9C2B8;max-width:230px;margin-left:auto;margin-right:auto}
.stat-band .l::after{content:"";display:block;width:34px;height:3px;background:var(--gold);
  margin:10px auto 0;border-radius:2px;transform:scaleX(0);transform-origin:center;
  transition:transform .8s cubic-bezier(.2,.6,.2,1) .5s}
.stat-band .wrap > div.rv.in .l::after{transform:scaleX(1)}
@media(prefers-reduced-motion:reduce){
  .stat-band::before,.stat-band .checker-strip{animation:none}
  .stat-band .l::after{transform:scaleX(1)}
}

/* stat band: clean nonprofit variant (homepage) — legacy */
.stat-band--simple{
  color:var(--ink);
  padding:68px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--off);
}
.stat-band--simple::before,
.stat-band--simple::after{display:none}
.stat-band--simple .wrap{align-items:start;gap:36px}
.stat-band--simple .stat-item{position:relative;padding:0 28px}
.stat-band--simple .stat-item + .stat-item::before{
  content:"";position:absolute;left:0;top:8%;bottom:8%;width:1px;
  background:var(--line);transform:none;opacity:1;border-radius:0;
}
.stat-band--simple .stat-label{
  font-family:'Archivo';font-weight:800;font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--red);margin-bottom:14px;
}
.stat-band--simple .n{
  font-size:clamp(40px,4.8vw,58px);font-weight:900;color:var(--black);
  line-height:1;max-width:none;text-shadow:none;letter-spacing:-.02em;
}
.stat-band--simple .n span{color:var(--red)}
.stat-band--simple .l{
  font-family:'DM Sans',sans-serif;font-size:15px;font-weight:400;
  letter-spacing:0;text-transform:none;color:var(--ink-soft);
  margin:12px auto 0;max-width:26ch;line-height:1.55;
}
.stat-band--simple .l::after{display:none}
@media(max-width:720px){
  .stat-band--simple{padding:52px 0}
  .stat-band--simple .wrap{grid-template-columns:1fr;gap:34px}
  .stat-band--simple .stat-item{padding:0}
  .stat-band--simple .stat-item + .stat-item::before{display:none}
  .stat-band--simple .l{max-width:none}
}

/* impact band: homepage stats — editorial, nonprofit, no racing UI */
.impact-band{
  position:relative;overflow:hidden;padding:72px 0 80px;
  background:
    radial-gradient(900px 420px at 50% -20%, rgba(226,31,29,.18), transparent 62%),
    linear-gradient(180deg,#141210 0%,#101010 100%);
  color:var(--white);
}
.impact-band::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.7'/%3E%3C/svg%3E");
}
.impact-band .wrap{position:relative;z-index:1}
.impact-band__head{text-align:center;margin-bottom:42px}
.impact-band__eyebrow{
  margin-top:18px;font-family:'Archivo';font-weight:800;font-size:12px;
  letter-spacing:.24em;text-transform:uppercase;color:var(--gold);
}
.impact-band__panel{
  position:relative;display:grid;grid-template-columns:repeat(3,1fr);
  border:1px solid rgba(229,195,121,.22);
  border-radius:12px;overflow:hidden;
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,.012) 0 2px, transparent 2px 7px),
    linear-gradient(155deg,rgba(29,24,19,.92),rgba(18,16,13,.96));
  box-shadow:0 28px 60px -34px rgba(0,0,0,.65);
}
.impact-band__panel::before{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;z-index:1;
  background:linear-gradient(90deg,var(--red) 0 55%,var(--gold) 55% 82%,transparent 82%);
}
.impact-stat{
  position:relative;padding:42px 40px 44px;
  display:flex;flex-direction:column;justify-content:flex-end;min-height:220px;
}
.impact-stat + .impact-stat::before{
  content:"";position:absolute;left:0;top:18%;bottom:18%;width:1px;
  background:rgba(229,195,121,.18);
}
.impact-stat__label{
  font-family:'Archivo';font-weight:800;font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold);margin-bottom:18px;
}
.impact-band .n{
  font-family:'Archivo';font-weight:900;font-size:clamp(48px,5.6vw,72px);
  line-height:.95;letter-spacing:-.03em;color:var(--white);
  font-variant-numeric:tabular-nums;
}
.impact-band .n span{color:var(--red)}
.impact-stat__desc{
  margin-top:16px;font-size:15px;line-height:1.55;color:#B7AFA3;max-width:22ch;
}
.impact-stat:first-child .impact-stat__desc{max-width:24ch}
@media(max-width:900px){
  .impact-band__panel{grid-template-columns:1fr}
  .impact-stat{min-height:0;padding:34px 28px 36px}
  .impact-stat + .impact-stat::before{
    left:28px;right:28px;top:0;bottom:auto;width:auto;height:1px;
  }
  .impact-stat__desc{max-width:none}
}

/* ---- cards ---- */
.grid{display:grid;gap:24px;margin-top:44px}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.grid.cols-5{grid-template-columns:repeat(5,1fr)}
@media(max-width:920px){.grid.cols-3,.grid.cols-5{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.grid.cols-3,.grid.cols-2,.grid.cols-5{grid-template-columns:1fr}}
.card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:30px 28px;box-shadow:var(--shadow);position:relative;overflow:hidden;
}
.card .badge-letter{
  font-family:'Archivo';font-weight:900;font-size:44px;color:var(--red);line-height:1;
}
.card h3{font-size:19px;text-transform:uppercase;margin:14px 0 10px;letter-spacing:.02em}
.card p{font-size:15px;color:var(--ink-soft)}
.card.value::after{
  content:"";position:absolute;top:0;left:0;right:0;height:5px;
  background:linear-gradient(90deg,var(--red) 0 55%,var(--gold) 55% 80%,var(--black) 80%);
}

/* ---- split feature ---- */
.feature{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;margin-top:44px}
@media(max-width:880px){.feature{grid-template-columns:1fr;gap:34px}}
.feature .photo{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);position:relative}
.feature .photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.feature .photo .tag{
  position:absolute;left:0;bottom:22px;background:var(--red);color:var(--white);
  font-family:'Archivo';font-weight:800;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  padding:10px 20px 10px 24px;clip-path:polygon(0 0,100% 0,calc(100% - 12px) 100%,0 100%);
}
.feature h2{font-size:clamp(26px,3.2vw,38px);text-transform:uppercase}
.feature .big-stat{
  font-family:'Archivo';font-weight:900;font-size:clamp(44px,5vw,64px);color:var(--red);
  line-height:1;margin:18px 0 6px;
}
.feature .big-stat small{display:block;margin-top:10px;font-size:13px;color:var(--ink-soft);
  font-weight:800;letter-spacing:.2em;text-transform:uppercase;
  padding-left:2px;position:relative}
.feature .big-stat small::before{content:"";display:inline-block;width:26px;height:3px;
  background:var(--gold);border-radius:2px;margin-right:10px;vertical-align:middle}
.feature p{color:var(--ink-soft);font-size:16px;margin-top:12px}
.feature ul{list-style:none;margin-top:18px;display:flex;flex-direction:column;gap:12px}
.feature ul li{position:relative;padding-left:30px;font-size:15.5px;color:var(--ink)}
.feature ul li::before{
  content:"";position:absolute;left:0;top:7px;width:16px;height:10px;background:var(--red);
  clip-path:polygon(0 0,100% 0,70% 100%,0 100%);
}

/* ---- dark section ---- */
.dark{background:var(--black);color:#E7E2DA}
.dark .card{background:#1B1A19;border-color:rgba(229,195,121,.2);box-shadow:none}
.dark .card h3{color:var(--white)}
.dark .card p{color:#B9B2A9}

/* ---- photo band ---- */
.photo-band{position:relative;overflow:hidden;background:var(--black);line-height:0}
.photo-band > img,
.photo-band .pixel-reveal{width:100%;height:clamp(320px,44vw,520px)}
.photo-band .pixel-reveal{position:relative;display:block;overflow:hidden}
.photo-band > img,
.photo-band .pixel-reveal__img{width:100%;height:100%;object-fit:cover;object-position:center 42%;display:block}
.photo-band .pixel-reveal__canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.photo-band::after{content:"";position:absolute;inset:0;z-index:1;background:
  linear-gradient(to top,rgba(16,16,16,.82) 0%,rgba(16,16,16,.15) 38%,transparent 65%)}
.photo-band .cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding-bottom:34px;line-height:1.15}
.photo-band .cap .k{font-family:'Archivo';font-weight:800;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:10px;margin-bottom:10px}
.photo-band .cap .k::before{content:"";width:26px;height:3px;background:var(--gold)}
.photo-band .cap .t{font-family:'Archivo';font-weight:900;font-size:clamp(24px,3.4vw,40px);color:var(--white);text-transform:uppercase}

/* ---- campaign cards (auctions/giveaways) ---- */
.campaigns{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;margin-top:40px}
@media(max-width:760px){.campaigns{grid-template-columns:1fr !important}}
.campaign{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;
}
.campaign .thumb{position:relative;aspect-ratio:16/9;background:var(--black);overflow:hidden}
.campaign .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.campaign .thumb .status{
  position:absolute;top:14px;left:14px;display:inline-flex;align-items:center;gap:8px;
  font-family:'Archivo';font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  padding:7px 14px;border-radius:999px;color:var(--white);
}
.status.live{background:var(--red)}
.status.live::before{content:"";width:8px;height:8px;border-radius:50%;background:#fff;animation:pulse 1.4s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
.status.soon{background:var(--gold);color:var(--black)}
.status.ended{background:#6E6862}
.campaign .body{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1}
.campaign .type{font-family:'Archivo';font-weight:800;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.campaign h3{font-size:20px;text-transform:uppercase;margin:8px 0 8px}
.campaign p{font-size:14.5px;color:var(--ink-soft);flex:1}
.campaign .dates{font-size:13px;color:#8B8378;margin:14px 0 18px;font-weight:500}
.campaign .btn{align-self:flex-start;padding:13px 24px;font-size:13px;margin-top:18px}
.empty-state{
  margin-top:40px;background:var(--white);border:2px dashed var(--line);border-radius:var(--radius);
  padding:56px 30px;text-align:center;
}
.empty-state h3{font-size:20px;text-transform:uppercase}
.empty-state p{color:var(--ink-soft);margin:10px auto 22px;max-width:440px}

/* ---- partner marquee ---- */
.logo-marquee{position:relative;overflow:hidden;margin-top:44px;padding:8px 0}
.logo-marquee::before,.logo-marquee::after{content:"";position:absolute;top:0;bottom:0;width:80px;z-index:2;pointer-events:none}
.logo-marquee::before{left:0;background:linear-gradient(90deg,var(--mq,#F2F2F2),transparent)}
.logo-marquee::after{right:0;background:linear-gradient(270deg,var(--mq,#F2F2F2),transparent)}
.logo-track{display:flex;align-items:center;gap:64px;width:max-content;animation:scroll 40s linear infinite}
.logo-marquee:hover .logo-track{animation-play-state:paused}
.logo-track a{flex:none;display:flex;align-items:center;justify-content:center;
  opacity:.92;transition:opacity .25s,transform .25s cubic-bezier(.2,.6,.2,1)}
.logo-track a:hover{opacity:1;transform:translateY(-3px) scale(1.04)}
.logo-track img{height:52px;max-width:190px;width:auto;object-fit:contain;flex:none}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.logo-track{animation:none;flex-wrap:wrap;justify-content:center;width:auto;gap:36px 52px}}

/* ---- giving tiers ---- */
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
@media(max-width:880px){.tiers{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.tiers{grid-template-columns:1fr}}
.tier{
  background:var(--white);border:1.5px solid var(--line);border-radius:var(--radius);
  padding:30px 26px;text-align:center;transition:border-color .18s,transform .18s;
}
.tier:hover{border-color:var(--red);transform:translateY(-3px)}
.tier .amt{font-family:'Archivo';font-weight:900;font-size:40px;color:var(--black)}
.tier .amt sup{font-size:.5em;color:var(--red)}
.tier p{font-size:14px;color:var(--ink-soft);margin:10px 0 20px}
.tier.hot{border-color:var(--red);background:linear-gradient(180deg,#FFF,#FDF3F2)}
.tier.hot .flag{font-family:'Archivo';font-weight:800;font-size:10.5px;letter-spacing:.14em;color:var(--white);background:var(--red);display:inline-block;padding:5px 12px;border-radius:999px;margin-bottom:12px;text-transform:uppercase}

/* ---- contact / info cards ---- */
.info-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
@media(max-width:880px){.info-cards{grid-template-columns:1fr}}
.info-cards .card{text-align:center;padding:36px 26px}
.info-cards .ic{
  width:56px;height:56px;margin:0 auto 16px;border-radius:14px;background:var(--red-tint);
  display:flex;align-items:center;justify-content:center;
}
.info-cards .ic svg{width:26px;height:26px;stroke:var(--red);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.info-cards a{color:var(--red);font-weight:700;text-decoration:none}
.info-cards a:hover{text-decoration:underline}

/* ---- forms ---- */
.form-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:38px;box-shadow:var(--shadow);margin-top:44px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}}
.form-grid .full{grid-column:1/-1}
label{font-family:'Archivo';font-weight:800;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:7px}
input,textarea,select{
  width:100%;padding:14px 15px;font-size:15px;font-family:inherit;color:var(--ink);
  background:var(--paper);border:1.5px solid var(--line);border-radius:10px;outline:none;transition:.15s;
}
input:focus,textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(226,31,29,.12);background:#fff}

/* ---- footer ---- */
.site-footer{background:var(--black);color:#B9B2A9;padding:64px 0 0;border-top:4px solid var(--red)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:44px;padding-bottom:48px}
@media(max-width:880px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.footer-grid{grid-template-columns:1fr}}
.site-footer .f-brand img{height:52px;margin-bottom:18px}
.site-footer .f-brand p{font-size:14px;max-width:300px}
.site-footer h4{color:var(--gold);font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:800;margin-bottom:16px}
.site-footer ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.site-footer ul a{color:#B9B2A9;text-decoration:none;font-size:14.5px;transition:color .15s}
.site-footer ul a:hover{color:var(--white)}
.socials{display:flex;gap:12px;margin-top:6px}
.socials a{
  width:40px;height:40px;border-radius:10px;border:1px solid rgba(229,195,121,.3);
  display:flex;align-items:center;justify-content:center;transition:.18s;
}
.socials a:hover{background:var(--red);border-color:var(--red)}
.socials svg{width:18px;height:18px;fill:#E7E2DA}
.footer-bottom{border-top:1px solid rgba(229,195,121,.18);padding:22px 0;font-size:12.5px;color:#7E786F}
.footer-bottom .wrap{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}

/* helpers */
.center{text-align:center}
.center .kicker{justify-content:center}
.center .kicker::before{display:none}
.center .sec-intro{margin-left:auto;margin-right:auto}
.mt-lg{margin-top:44px}
.note{
  margin-top:26px;background:#FFF8EA;border:1px solid #EFDDB2;border-left:5px solid var(--gold-deep);
  border-radius:10px;padding:16px 20px;font-size:14px;color:#6A5B33;
}

/* partner cards on donate page */
.partner-card{text-align:center}
.partner-card .plogo{height:64px;display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.partner-card .plogo img{max-height:100%;max-width:180px;object-fit:contain}
.partner-card h3{margin-top:0}

/* newsletter */
.newsletter-form{display:flex;gap:10px;margin-top:14px;max-width:420px}
.newsletter-form input{flex:1;padding:12px 14px;border-radius:9px;border:1.5px solid rgba(229,195,121,.35);
  background:#1B1A19;color:#fff;font-size:14px;outline:none}
.newsletter-form input:focus{border-color:var(--gold)}
.newsletter-form button{font-family:'Archivo';font-weight:800;font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--black);background:var(--gold);border:none;border-radius:9px;
  padding:0 18px;cursor:pointer;transition:filter .15s}
.newsletter-form button:hover{filter:brightness(1.08)}
.newsletter-msg{font-size:13px;margin-top:10px;color:var(--gold)}
.section-newsletter .newsletter-form{margin:26px auto 0}
.section-newsletter .newsletter-form input{background:#fff;color:var(--ink);border-color:var(--line)}

/* merch placeholders */
.merch-thumb{background:linear-gradient(145deg,#181716,#101010)}
.merch-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.campaign .thumb .merch-ph img{width:72px;height:auto;object-fit:contain;opacity:.9}

/* ============ MOTION SYSTEM ============ */
/* profile cards */
.profiles .profile{display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden}
.profile .headshot{aspect-ratio:16/10;overflow:hidden}
.profile .headshot img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.6,.2,1)}
.profile:hover .headshot img{transform:scale(1.04)}
.profile > div:last-child{padding:26px 28px 30px}
.profile .role{font-family:'Archivo';font-weight:800;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:6px 0 12px}

/* scroll reveal */
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.6,.2,1),transform .7s cubic-bezier(.2,.6,.2,1);transition-delay:var(--d,0ms)}
.rv.in{opacity:1;transform:none}

/* hero entrance */
.hero .hero-tag,.hero h1,.hero p.lead,.hero .hero-ctas,.hero .hero-meta,
.page-hero .kicker,.page-hero h1,.page-hero p,.page-hero .hero-ctas{
  opacity:0;transform:translateY(30px);animation:heroRise .9s cubic-bezier(.2,.65,.2,1) forwards}
.hero h1,.page-hero h1{animation-delay:.12s}
.hero p.lead,.page-hero p{animation-delay:.24s}
.hero .hero-ctas,.page-hero .hero-ctas{animation-delay:.36s}
.hero .hero-meta{animation-delay:.5s}
@keyframes heroRise{to{opacity:1;transform:none}}

/* slow ken burns on hero photos */
.hero .bg,.page-hero .bg{animation:none}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.09)}}

/* parallax bands */
.photo-band > img,
.photo-band .pixel-reveal__img{will-change:transform}

/* nav underline slide */
.nav-links a:not(.btn){position:relative}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-6px;height:2px;width:100%;
  background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.2,.6,.2,1)}
.nav-links a:not(.btn):hover::after{transform:scaleX(1)}
.nav-links a.active::after{display:none}

/* feature photo hover */
.feature .photo{overflow:hidden}
.feature .photo img{transition:transform .7s cubic-bezier(.2,.6,.2,1)}
.feature .photo:hover img{transform:scale(1.045)}

/* speed stripe shimmer */
.stripe i:nth-child(3){animation:checker 1.6s linear infinite}
@keyframes checker{from{background-position:0 0}to{background-position:12px 0}}

/* stat count-up helper */
.stat-band .n{font-variant-numeric:tabular-nums}

@media(prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  .hero .hero-tag,.hero h1,.hero p.lead,.hero .hero-ctas,.hero .hero-meta,
  .page-hero .kicker,.page-hero h1,.page-hero p,.page-hero .hero-ctas{animation:none;opacity:1;transform:none}
  .hero .bg,.page-hero .bg{animation:none}
  .stripe i:nth-child(3){animation:none}
}

/* merch product crops are taller than 16:9; crop from the top of the frame */
.merch-thumb img{object-position:center 22%}

/* brand-kit demo background: dark texture + red glow + checker corner */
.kit-band{position:relative;overflow:hidden;background:
  radial-gradient(760px 340px at 12% 110%, rgba(226,31,29,.38), transparent 60%),
  radial-gradient(900px 400px at 88% -10%, rgba(226,31,29,.20), transparent 55%),
  linear-gradient(150deg,#181614 0%,#101010 55%,#141110 100%)}
.kit-band::before{content:"";position:absolute;top:0;right:0;width:min(46%,560px);height:200px;
  background:url('/assets/brand/checker-corner.jpg') top right/cover no-repeat;
  -webkit-mask-image:linear-gradient(225deg,#000 18%,transparent 72%);
  mask-image:linear-gradient(225deg,#000 18%,transparent 72%);
  opacity:.9;pointer-events:none}
.kit-band > .wrap{position:relative;z-index:2}

/* 3-up profiles */
.profiles.cols-3 .profile > div:last-child{padding:22px 24px 26px}
.profiles.cols-3 .profile p{font-size:14px}
.profiles.cols-3 .profile h3{font-size:18px}
@media(max-width:920px){.grid.cols-3.profiles{grid-template-columns:1fr}}

/* leadership roster: stacked horizontal cards for small teams */
.leadership-roster{display:flex;flex-direction:column;gap:22px;margin-top:44px}
.leader-card{
  display:grid;grid-template-columns:minmax(200px,260px) 1fr;gap:0;overflow:hidden;
  border-radius:8px;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%);
  transition:transform .25s cubic-bezier(.2,.6,.2,1),border-color .25s;
}
.leader-photo{position:relative;overflow:hidden;min-height:260px}
.leader-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.6,.2,1)}
.leader-card:hover .leader-photo img{transform:scale(1.04)}
.leader-body{padding:32px 36px 34px;display:flex;flex-direction:column;justify-content:center}
.leader-body h3{margin:0;font-size:clamp(22px,2.4vw,28px)}
.leader-body .role{font-family:'Archivo';font-weight:800;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:8px 0 16px}
.leader-body p{font-size:15px;line-height:1.65;margin:0}
.leader-body p + p{margin-top:12px}
.dark .leader-card{
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,.014) 0 2px, transparent 2px 7px),
    linear-gradient(155deg,#1D1813,#12100D);
  border:1px solid rgba(229,195,121,.22);
}
.dark .leader-card:hover{border-color:rgba(226,31,29,.45);transform:translateY(-2px)}
.dark .leader-card h3{color:#fff}
.dark .leader-card p{color:#B7AFA3}
@media(max-width:760px){
  .leader-card{grid-template-columns:1fr}
  .leader-photo{min-height:0;height:260px}
  .leader-body{padding:26px 24px 28px}
}

/* clickable partner tiles */
a.partner-card{display:block;text-decoration:none;color:inherit;transition:transform .25s cubic-bezier(.2,.6,.2,1),box-shadow .25s}
a.partner-card:hover{transform:translateY(-4px);box-shadow:0 26px 50px -30px rgba(16,16,16,.5)}
a.partner-card .visit{font-family:'Archivo';font-weight:800;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--red);margin-top:12px;display:inline-block}

/* merch uniform tiles */
.merch-thumb{aspect-ratio:4/3 !important}

/* donate button — pulse class kept for markup compatibility; no shine/glow */
.btn.donate-pulse{overflow:visible}
.btn.donate-pulse::before{animation:none}
.btn.donate-pulse::after{display:none}

/* ============ THE TITAN WAY: designed ============ */
.values-sec{position:relative;overflow:hidden}
.values-sec::before{ /* ghost word */
  content:"TITAN";position:absolute;top:6px;right:-20px;z-index:0;pointer-events:none;
  font-family:'Archivo';font-weight:900;font-size:clamp(120px,20vw,260px);line-height:1;letter-spacing:.02em;
  color:transparent;-webkit-text-stroke:2px rgba(16,16,16,.07)}
.values-sec::after{ /* speed lines */
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:repeating-linear-gradient(115deg, rgba(16,16,16,.028) 0 2px, transparent 2px 110px)}
.values-sec > .wrap{position:relative;z-index:1}
.values-sec .grid.cols-5{margin-top:56px}
@media(min-width:920px){
  .values-sec .card.value:nth-child(2){transform:translateY(18px)}
  .values-sec .card.value:nth-child(4){transform:translateY(18px)}
  .values-sec .card.value.rv:nth-child(2),.values-sec .card.value.rv:nth-child(4){transform:translateY(44px)}
  .values-sec .card.value.rv.in:nth-child(2),.values-sec .card.value.rv.in:nth-child(4){transform:translateY(18px)}
}
/* racing number plate letter */
.card .plate{
  width:62px;height:62px;position:relative;
  background:#fff;border:3px solid var(--black);border-radius:12px;
  transform:skewX(-7deg);display:flex;align-items:center;justify-content:center;
  box-shadow:4px 5px 0 rgba(16,16,16,.9);
}
.card .plate span{
  font-family:'Archivo';font-weight:900;font-size:32px;color:var(--red);
  transform:skewX(7deg);line-height:1}
.card.value{transition:transform .3s cubic-bezier(.2,.6,.2,1),box-shadow .3s}
.card.value:hover{transform:translateY(-6px) !important;box-shadow:0 30px 50px -30px rgba(16,16,16,.55)}
.card.value:hover .plate{background:var(--red);border-color:var(--red)}
.card.value:hover .plate span{color:#fff}
.card.value .corner{
  position:absolute;right:-14px;bottom:-14px;width:64px;height:64px;opacity:0;
  background:repeating-conic-gradient(rgba(16,16,16,.9) 0% 25%, transparent 0% 50%) 0 0/16px 16px;
  transform:rotate(-12deg);transition:opacity .3s}
.card.value:hover .corner{opacity:.14}

/* ============ editorial ticker ============ */
.ticker{overflow:hidden;background:var(--black);padding:34px 0;border-top:1px solid rgba(229,195,121,.18)}
.ticker-track{display:flex;align-items:center;gap:56px;width:max-content;
  animation:tickerscroll 30s linear infinite;will-change:transform}
.ticker span{font-family:'Archivo';font-weight:900;font-size:clamp(38px,6vw,84px);line-height:1;
  text-transform:uppercase;letter-spacing:-.01em;white-space:nowrap;color:var(--white)}
.ticker span.o{color:transparent;-webkit-text-stroke:2px rgba(229,195,121,.85)}
.ticker .tick-shield{height:.55em;width:auto;flex:none;opacity:.9}
@keyframes tickerscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}}

/* ============ film grain on dark bands ============ */
.kit-band::after,.hero::after,.page-hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.7'/%3E%3C/svg%3E")}
.hero .wrap,.page-hero .wrap{z-index:3}

/* ============ numbered kickers ============ */
.kicker .idx{font-size:11px;opacity:.5;margin-right:2px;letter-spacing:.08em}

/* ============ cinematic image reveals ============ */
.rv-img{clip-path:inset(0 100% 0 0);transition:clip-path 1.1s cubic-bezier(.25,.6,.2,1)}
.rv-img.in{clip-path:inset(0 0 0 0)}
@media(prefers-reduced-motion:reduce){.rv-img{clip-path:none;transition:none}}

/* ============ HUD gauges ============ */
.gauge{position:relative;width:200px;height:200px;margin:0 auto;display:grid;place-items:center}
.gauge svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(135deg)}
.gauge .ring{fill:none;stroke:rgba(255,255,255,.07);stroke-width:6}
.gauge .ticks{fill:none;stroke:rgba(255,255,255,.22);stroke-width:9;stroke-dasharray:1.5 21.02}
.gauge .arc{fill:none;stroke:var(--gold);stroke-width:6;stroke-linecap:round;
  filter:drop-shadow(0 0 6px rgba(229,195,121,.55));
  transition:stroke-dashoffset 1.8s cubic-bezier(.25,.6,.25,1) .4s}
.gauge .tip{fill:var(--red);filter:drop-shadow(0 0 5px rgba(226,31,29,.9));
  opacity:0;transition:opacity .4s ease 1.9s}
.stat-band .wrap > div.rv.in .gauge .tip{opacity:1}
.gauge .hud-label{position:absolute;top:34px;left:0;right:0;text-align:center;
  font-family:'Archivo';font-weight:800;font-size:9.5px;letter-spacing:.3em;
  text-transform:uppercase;color:rgba(229,195,121,.6)}
@media(max-width:720px){.gauge{width:180px;height:180px}}
@media(prefers-reduced-motion:reduce){.gauge .arc{transition:none}.gauge .tip{opacity:1;transition:none}}

/* ============ FULL ANIMATION MODE ============ */
/* scroll progress — disabled */
.scroll-progress{display:none !important}

/* custom cursor (fine pointers only) */
@media(hover:hover) and (pointer:fine){
  .cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:300;
    border-radius:50%;transform:translate(-50%,-50%)}
  .cursor-dot{width:7px;height:7px;background:var(--red)}
  .cursor-ring{width:34px;height:34px;border:1.5px solid rgba(229,195,121,.75);
    transition:width .25s,height .25s,border-color .25s,opacity .25s}
  body.cursor-on .cursor-ring.grow{width:58px;height:58px;border-color:var(--red)}
}
.cursor-dot,.cursor-ring{opacity:0}
body.cursor-on .cursor-dot,body.cursor-on .cursor-ring{opacity:1}

/* hero parallax layers */
.hero .bg{will-change:transform;transform:translate(calc(var(--mx,0)*14px),calc(var(--my,0)*10px)) scale(1.06)}
.hero .wrap{will-change:transform;transform:translate(calc(var(--mx,0)*-8px),calc(var(--my,0)*-5px))}
.hero .bg{animation:none}

/* split-letter titles */
.split-ready .ch{display:inline-block;opacity:0;transform:translateY(.6em) rotate(2deg);
  transition:opacity .5s cubic-bezier(.2,.6,.2,1),transform .6s cubic-bezier(.2,.65,.2,1);
  transition-delay:var(--chd,0ms)}
.split-ready.in .ch{opacity:1;transform:none}

/* 3d tilt cards */
.tilt{transform-style:preserve-3d;will-change:transform}
.tilt .plate,.tilt .badge-letter{transform:translateZ(26px)}
.tilt h3{transform:translateZ(18px)}

/* magnetic buttons */
.magnetic{will-change:transform;transition:transform .18s cubic-bezier(.2,.6,.2,1)}

/* scroll cue in hero */
.scroll-cue{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:3;
  width:26px;height:42px;border:2px solid rgba(255,255,255,.4);border-radius:14px;display:flex;justify-content:center}
.scroll-cue::before{content:"";width:4px;height:9px;border-radius:2px;background:var(--gold);
  margin-top:7px;animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%,100%{transform:translateY(0);opacity:1}60%{transform:translateY(14px);opacity:.2}}
@media(prefers-reduced-motion:reduce){
  .scroll-cue::before{animation:none}
  .split-ready .ch{opacity:1;transform:none;transition:none}
  [data-scroll].scroll-pop{opacity:1;transform:none}
}

/* locomotive scroll — inview micro-interactions */
[data-scroll].scroll-pop{
  opacity:.72;transform:translateY(18px) scale(.98);
  transition:opacity .7s cubic-bezier(.2,.65,.2,1),transform .7s cubic-bezier(.2,.65,.2,1)
}
[data-scroll].scroll-pop.is-inview{opacity:1;transform:none}

/* ============ 3D shield emblem ============ */
.hero-emblem{display:none}
@media(max-width:1000px){.hero-emblem{display:none}}
.emblem-glow{position:absolute;inset:-30%;
  background:radial-gradient(closest-side, rgba(226,31,29,.4), rgba(229,195,121,.12) 55%, transparent 75%);
  filter:blur(8px);animation:glowpulse 4.5s ease-in-out infinite}
@keyframes glowpulse{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.07)}}
.emblem-3d{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}
.emblem-3d img{position:absolute;inset:0;width:100%;height:100%;
  filter:drop-shadow(0 24px 40px rgba(0,0,0,.55))}
.emblem-3d img:last-child{filter:drop-shadow(0 0 22px rgba(229,195,121,.45)) drop-shadow(0 18px 34px rgba(0,0,0,.5))}
@media(prefers-reduced-motion:reduce){.hero-emblem{display:none}}

/* ============ hero smoke + HUD ============ */
.hero canvas.smoke{position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:screen}
.hud{position:absolute;inset:0;z-index:3;pointer-events:none;font-family:'Archivo'}
@media(max-width:860px){.hud{display:none}}
.hud .bkt{position:absolute;width:30px;height:30px;border:2px solid rgba(229,195,121,.5)}
.hud .bkt.tl{top:22px;left:22px;border-right:none;border-bottom:none}
.hud .bkt.tr{top:22px;right:22px;border-left:none;border-bottom:none}
.hud .bkt.bl{bottom:22px;left:22px;border-right:none;border-top:none}
.hud .bkt.br{bottom:22px;right:22px;border-left:none;border-top:none}
.hud-chip{position:absolute;top:34px;right:66px;display:flex;align-items:center;gap:8px;
  font-weight:800;font-size:10.5px;letter-spacing:.24em;color:rgba(255,255,255,.85);
  border:1px solid rgba(229,195,121,.35);padding:8px 14px;border-radius:999px;
  background:rgba(16,16,16,.35);backdrop-filter:blur(4px)}
.hud-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--red);
  animation:hudblink 1.6s ease-in-out infinite}
@keyframes hudblink{0%,100%{opacity:1}50%{opacity:.2}}
.hud-read{position:absolute;left:66px;bottom:30px;display:flex;flex-direction:column;gap:6px}
.hud-read span{font-weight:700;font-size:10px;letter-spacing:.26em;color:rgba(255,255,255,.5);
  padding-left:14px;position:relative}
.hud-read span::before{content:"";position:absolute;left:0;top:50%;width:8px;height:1.5px;
  background:rgba(229,195,121,.6)}
.hud-vert{position:absolute;right:34px;top:50%;transform:translateY(-50%);
  writing-mode:vertical-rl;font-weight:800;font-size:10px;letter-spacing:.4em;
  color:rgba(229,195,121,.55)}
.hud-scan{position:absolute;left:0;right:0;top:0;height:1.5px;
  background:linear-gradient(90deg,transparent,rgba(229,195,121,.55),transparent);
  animation:hudscan 3.2s cubic-bezier(.4,0,.3,1) 1 forwards;opacity:0}
@keyframes hudscan{0%{top:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{top:100%;opacity:0}}
@media(prefers-reduced-motion:reduce){
  .hero canvas.smoke{display:none}
  .hud-chip .dot{animation:none}.hud-scan{display:none}
}

/* ============ TITAN WAY: racing-tough cards ============ */
.card.value{
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,.016) 0 2px, transparent 2px 7px),
    repeating-linear-gradient(-45deg, rgba(255,255,255,.012) 0 2px, transparent 2px 7px),
    linear-gradient(155deg,#1D1813 0%,#12100D 70%,#161210 100%);
  border:1px solid rgba(229,195,121,.24);
  border-radius:8px;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 20px),calc(100% - 20px) 100%,0 100%);
  box-shadow:0 24px 46px -28px rgba(16,16,16,.6);
  transition:border-color .3s,box-shadow .3s,transform .3s cubic-bezier(.2,.6,.2,1);
}
.card.value::after{height:4px;
  background:linear-gradient(90deg,var(--red) 0 52%,var(--gold) 52% 78%,
    transparent 78%) , repeating-conic-gradient(rgba(229,195,121,.9) 0% 25%, transparent 0% 50%) 78% 0/12px 12px no-repeat;
  background-size:100% 100%, 22% 100%;background-position:0 0, 100% 0;background-repeat:no-repeat}
.card.value h3{color:#fff;letter-spacing:.06em}
.card.value p{color:#B7AFA3}
.card.value:hover{border-color:rgba(226,31,29,.65);
  box-shadow:0 26px 50px -24px rgba(226,31,29,.35)}
/* racing number plate */
.card .plate{
  background:linear-gradient(160deg,var(--red),var(--red-dark));
  border:none;border-radius:6px;
  transform:skewX(-10deg);
  box-shadow:4px 5px 0 rgba(0,0,0,.85), inset 0 0 0 2px rgba(255,255,255,.14);
}
.card .plate span{color:#fff;transform:skewX(10deg);font-size:30px}
.card.value:hover .plate{background:linear-gradient(160deg,#fff,#EDE7DA);border-color:transparent}
.card.value:hover .plate span{color:var(--red)}
/* checker corner: gold on dark */
.card.value .corner{
  background:repeating-conic-gradient(rgba(229,195,121,.9) 0% 25%, transparent 0% 50%) 0 0/16px 16px;
  opacity:.1}
.card.value:hover .corner{opacity:.28}

/* no single-word orphans */
p,.sec-intro,.lead,figcaption,.campaign p,.card p,.stat-band .l,.hud-read span{text-wrap:pretty}

/* taller band for group photos: keep every head in frame */
.photo-band.tall > img,
.photo-band.tall .pixel-reveal{height:clamp(420px,56vw,680px)}

/* poster-fit campaign thumbs (flyer artwork, never cropped) */
.campaign .thumb.poster{background:
  radial-gradient(500px 260px at 80% 0%, rgba(226,31,29,.25), transparent 60%),
  linear-gradient(150deg,#1D1813,#100E0C)}
.campaign .thumb.poster img{object-fit:contain;padding:16px}

/* TITAN Way: ghost word rides the scroll */
.values-sec::before{transform:translateX(var(--gx,0));transition:transform .1s linear}

@media(prefers-reduced-motion:reduce){.values-sec::before{transform:none}}

/* L2L telemetry panel */
.telemetry{margin-top:22px;background:linear-gradient(150deg,#1D1813,#100E0C);
  border:1px solid rgba(229,195,121,.28);border-radius:12px;padding:18px 22px;
  display:flex;gap:34px;flex-wrap:wrap;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%)}
.telemetry div{font-family:'Archivo'}
.telemetry .tl{font-size:10px;font-weight:800;letter-spacing:.24em;color:rgba(229,195,121,.65);text-transform:uppercase;display:flex;align-items:center;gap:7px}
.telemetry .tl i{width:6px;height:6px;border-radius:50%;background:var(--red);animation:hudblink 1.4s infinite}
.telemetry .tv{font-size:26px;font-weight:900;color:#fff;margin-top:4px;font-variant-numeric:tabular-nums}
.telemetry .tv.gold{color:var(--gold)}

/* ticker separator: glowing shield */
.ticker .tick-shield{height:.8em;width:auto;flex:none;opacity:1;
  filter:drop-shadow(0 0 10px rgba(229,195,121,.7)) drop-shadow(0 0 3px rgba(229,195,121,.9))}

/* ============ dark donate: tiers as race hardware ============ */
.dark .tier{
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,.014) 0 2px, transparent 2px 7px),
    linear-gradient(155deg,#1D1813,#12100D);
  border:1px solid rgba(229,195,121,.25);border-radius:8px;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%);
}
.dark .tier .amt{color:#fff}
.dark .tier .amt sup{color:var(--gold)}
.dark .tier p{color:#B7AFA3}
.dark .tier:hover{border-color:rgba(226,31,29,.65);transform:translateY(-4px)}
.dark .tier.hot{background:
  repeating-linear-gradient(45deg, rgba(255,255,255,.02) 0 2px, transparent 2px 7px),
  linear-gradient(155deg,#2A1210,#170D0C);border-color:var(--red)}
.dark .note{background:rgba(229,195,121,.07);border-color:rgba(229,195,121,.3);
  border-left-color:var(--gold);color:#D8CFC0}
.dark .info-cards .card{background:linear-gradient(155deg,#1D1813,#12100D);
  border:1px solid rgba(229,195,121,.22);box-shadow:none}
.dark .info-cards .card h3{color:#fff}
.dark .info-cards .card p{color:#B7AFA3}
.dark .info-cards .ic{background:rgba(226,31,29,.16)}
.dark .info-cards a{color:var(--gold)}

/* partner cards on dark */
.dark a.partner-card{
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,.014) 0 2px, transparent 2px 7px),
    linear-gradient(155deg,#1D1813,#12100D);
  border:1px solid rgba(229,195,121,.22);border-radius:8px;box-shadow:none;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%);
}
.dark a.partner-card h3{color:#fff}
.dark a.partner-card p{color:#B7AFA3}
.dark a.partner-card:hover{border-color:rgba(226,31,29,.6);
  box-shadow:0 26px 50px -24px rgba(226,31,29,.3);transform:translateY(-4px)}
.dark a.partner-card .visit{color:var(--gold)}
.dark .partner-card .plogo img{max-height:52px}

/* ============ global texture on light sections ============ */
.tex{background-image:
  repeating-linear-gradient(115deg, rgba(16,16,16,.024) 0 2px, transparent 2px 110px) !important}

/* ============ THE TITAN WAY: expanding panels ============ */
.values-strip{display:flex;gap:12px;margin-top:56px;height:470px}
.vpanel{position:relative;flex:1;min-width:0;overflow:hidden;cursor:pointer;border-radius:10px;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%);
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,.015) 0 2px, transparent 2px 7px),
    linear-gradient(165deg,#1D1813 0%,#100E0C 70%);
  border:1px solid rgba(229,195,121,.22);
  transition:flex .7s cubic-bezier(.65,0,.25,1),border-color .4s}
.vpanel::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--red) 0 55%,var(--gold) 55% 80%,transparent 80%)}
.vpanel::after{content:"";position:absolute;inset:0;opacity:0;transition:opacity .5s;
  background:radial-gradient(420px 300px at 20% 100%, rgba(226,31,29,.35), transparent 70%)}
.vpanel .v-letter{position:absolute;top:30px;left:50%;transform:translateX(-50%);
  font-family:'Archivo';font-weight:900;font-size:clamp(58px,6vw,104px);line-height:1;
  color:transparent;-webkit-text-stroke:2px rgba(229,195,121,.6);
  transition:all .55s cubic-bezier(.5,0,.2,1)}
.vpanel .v-tag{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);
  writing-mode:vertical-rl;font-family:'Archivo';font-weight:800;font-size:11px;
  letter-spacing:.34em;text-transform:uppercase;color:#8E867A;transition:opacity .3s}
.vpanel .v-body{position:absolute;left:36px;right:36px;bottom:34px;z-index:2;
  opacity:0;transform:translateY(26px);transition:opacity .45s .18s,transform .5s .18s}
.vpanel .v-idx{font-family:'Archivo';font-weight:800;font-size:12px;letter-spacing:.2em;color:var(--gold);margin-bottom:10px}
.vpanel h3{font-size:clamp(26px,2.6vw,38px);color:#fff;text-transform:uppercase;margin-bottom:12px}
.vpanel p{font-size:15.5px;color:#B7AFA3;max-width:380px}
.vpanel .v-corner{position:absolute;right:-14px;bottom:-14px;width:70px;height:70px;opacity:0;
  background:repeating-conic-gradient(rgba(229,195,121,.85) 0% 25%, transparent 0% 50%) 0 0/17px 17px;
  transform:rotate(-12deg);transition:opacity .4s}
.vpanel.active{flex:3.6;border-color:rgba(226,31,29,.6)}
.vpanel.active::after{opacity:1}
.vpanel.active .v-letter{top:24px;left:36px;transform:none;
  color:var(--red);-webkit-text-stroke:0;
  filter:drop-shadow(0 10px 30px rgba(226,31,29,.4))}
.vpanel.active .v-tag{opacity:0}
.vpanel.active .v-body{opacity:1;transform:none}
.vpanel.active .v-corner{opacity:.16}
@media(max-width:860px){
  .values-strip{flex-direction:column;height:auto}
  .vpanel{min-height:84px;flex:none;transition:min-height .55s cubic-bezier(.65,0,.25,1),border-color .4s}
  .vpanel .v-letter{top:50%;left:26px;transform:translateY(-50%);font-size:44px}
  .vpanel .v-tag{writing-mode:horizontal-tb;left:auto;right:24px;bottom:auto;top:50%;transform:translateY(-50%)}
  .vpanel.active{min-height:300px}
  .vpanel.active .v-letter{top:22px;transform:none}
  .vpanel.active .v-body{left:26px;right:26px;bottom:26px}
}
@media(prefers-reduced-motion:reduce){
  .vpanel,.vpanel .v-letter,.vpanel .v-body{transition:none}
}

/* ============ vault (contribute) cards ============ */
.vault-card .v-ic{width:60px;height:60px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,var(--red),var(--red-dark));transform:skewX(-7deg);
  box-shadow:4px 5px 0 rgba(0,0,0,.85), inset 0 0 0 2px rgba(255,255,255,.14)}
.vault-card .v-ic svg{width:30px;height:30px;stroke:#fff;fill:none;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;transform:skewX(7deg)}
.vault-card:hover .v-ic{background:linear-gradient(160deg,#fff,#EDE7DA)}
.vault-card:hover .v-ic svg{stroke:var(--red)}

/* ============ race countdown ============ */
.countdown{margin-bottom:44px;padding:26px 30px;border-radius:12px;position:relative;overflow:hidden;
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,.015) 0 2px, transparent 2px 7px),
    linear-gradient(150deg,#1D1813,#100E0C);
  border:1px solid rgba(229,195,121,.28);
  clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%);
  display:flex;align-items:center;gap:34px;flex-wrap:wrap}
.countdown .cd-label{font-family:'Archivo';font-weight:800;font-size:11px;letter-spacing:.26em;
  text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:9px}
.countdown .cd-label i{width:7px;height:7px;border-radius:50%;background:var(--red);animation:hudblink 1.5s infinite}
.countdown .cd-title{font-family:'Archivo';font-weight:900;font-size:clamp(18px,2vw,26px);color:#fff;text-transform:uppercase;margin-top:4px}
.countdown .cd-cells{display:flex;gap:14px;margin-left:auto}
.countdown .cell{text-align:center;min-width:64px;padding:10px 8px;border-radius:8px;
  background:rgba(255,255,255,.045);border:1px solid rgba(229,195,121,.18)}
.countdown .cell b{display:block;font-family:'Archivo';font-weight:900;font-size:clamp(24px,2.4vw,34px);
  color:#fff;font-variant-numeric:tabular-nums;line-height:1}
.countdown .cell span{font-family:'Archivo';font-weight:800;font-size:9px;letter-spacing:.2em;color:#98917F;text-transform:uppercase}
@media(max-width:760px){
  .countdown{padding:22px 18px}
  .countdown .cd-cells{margin-left:0;width:100%;justify-content:space-between;gap:8px}
  .countdown .cell{flex:1;min-width:0;padding:10px 4px}
}

/* ============ laps step connectors ============ */
.steps-wrap{position:relative}
.step-arrow{position:absolute;top:50%;transform:translateY(-50%);display:flex;gap:5px;z-index:2}
.step-arrow.a1{left:calc(33.33% - 15px)}
.step-arrow.a2{left:calc(66.66% - 15px)}
.step-arrow i{width:10px;height:16px;background:var(--gold);
  clip-path:polygon(0 0,55% 0,100% 50%,55% 100%,0 100%,45% 50%);
  animation:chev 1.4s ease-in-out infinite}
.step-arrow i:nth-child(2){animation-delay:.18s}
.step-arrow i:nth-child(3){animation-delay:.36s}
@keyframes chev{0%,100%{opacity:.25;transform:translateX(0)}50%{opacity:1;transform:translateX(4px)}}
@media(max-width:920px){.step-arrow{display:none}}
@media(prefers-reduced-motion:reduce){.step-arrow i{animation:none;opacity:.8}}

/* dark form styles (contact) */
.dark .form-card{background:
  repeating-linear-gradient(45deg, rgba(255,255,255,.014) 0 2px, transparent 2px 7px),
  linear-gradient(155deg,#1D1813,#12100D);
  border:1px solid rgba(229,195,121,.24);box-shadow:none;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%)}
.dark .form-card .sec-title{color:#fff}
.dark label{color:#98917F}
.dark input,.dark textarea,.dark select{background:rgba(255,255,255,.05);border-color:rgba(229,195,121,.22);color:#fff}
.dark input:focus,.dark textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(229,195,121,.12);background:rgba(255,255,255,.08)}

/* balanced wrapping on short labels: no orphans ever */
.role,.kicker,.campaign .type,.cd-title,.countdown .cd-label,.vpanel h3,
.card h3,.campaign h3,.info-cards h3,.tier p,.footer-grid h4{text-wrap:balance}

/* ============ strong partner wall ============ */
.partners-ghost{position:relative;text-align:center;pointer-events:none;height:0;z-index:0;
  font-family:'Archivo';font-weight:900;font-size:clamp(90px,13vw,210px);line-height:.8;
  letter-spacing:.02em;color:transparent;-webkit-text-stroke:1.5px rgba(229,195,121,.13);
  transform:translateY(-16px)}
.logo-marquee.big{padding:26px 0}
.logo-marquee.big .logo-track{gap:88px;animation-duration:55s}
.logo-marquee.big .logo-track img{height:58px;max-width:210px}
.logo-marquee.rev .logo-track{animation-direction:reverse}
.logo-marquee.big .logo-track a{opacity:.85}
.logo-marquee.big .logo-track a:hover{opacity:1;transform:scale(1.06)}

/* donate tiers: visible buttons on dark */
.dark .tier .btn.ghost-dark{color:#fff}
.dark .tier .btn.ghost-dark::before{border-color:rgba(229,195,121,.55);background:rgba(255,255,255,.03)}
.dark .tier:hover .btn.ghost-dark{color:var(--black)}
.dark .tier:hover .btn.ghost-dark::before{background:var(--gold);border-color:var(--gold)}

/* ============ L2L feature: dark cinematic ============ */
.l2l-sec{position:relative}
.l2l-sec .wrap::before{content:"$100/LAP";position:absolute;right:-30px;top:-30px;z-index:0;pointer-events:none;
  font-family:'Archivo';font-weight:900;font-size:clamp(70px,9vw,150px);line-height:1;
  color:transparent;-webkit-text-stroke:1.5px rgba(229,195,121,.12)}
.l2l-sec .wrap{position:relative}
.l2l-sec .feature{position:relative;z-index:1}
.dark .feature p{color:#B7AFA3}
.dark .feature ul li{color:#E0D9CE}
.dark .feature .big-stat small{color:#98917F}
.dark .feature .photo{
  border:1px solid rgba(229,195,121,.35);border-radius:8px;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%);
  box-shadow:0 40px 80px -40px rgba(226,31,29,.45)}
.dark .feature .photo::before,.dark .feature .photo::after{
  content:"";position:absolute;width:34px;height:34px;z-index:3;pointer-events:none;
  border:2.5px solid rgba(229,195,121,.75)}
.dark .feature .photo::before{top:14px;left:14px;border-right:none;border-bottom:none}
.dark .feature .photo::after{bottom:34px;right:34px;border-left:none;border-top:none}

/* ============ distinct dark environments ============ */
.bg-dots,.bg-streaks,.bg-grid{position:relative;overflow:hidden}
.bg-dots > .wrap,.bg-streaks > .wrap,.bg-grid > .wrap{position:relative;z-index:2}
/* starting-grid dot matrix with center spotlight (partners) */
.bg-dots{background:
  radial-gradient(circle at 50% 26%, rgba(229,195,121,.10), transparent 58%),
  radial-gradient(rgba(255,255,255,.055) 1px, transparent 1.7px),
  linear-gradient(160deg,#141110,#0D0B0A)}
.bg-dots{background-size:auto,26px 26px,auto}
/* night-race light streaks with red horizon (L2L) */
.bg-streaks{background:
  repeating-linear-gradient(65deg, transparent 0 150px, rgba(226,31,29,.06) 150px 153px, transparent 153px 270px, rgba(229,195,121,.045) 270px 272px),
  radial-gradient(1000px 340px at 50% 115%, rgba(226,31,29,.32), transparent 65%),
  linear-gradient(150deg,#191512,#0F0D0B)}
/* engineering blueprint grid (auctions teaser) */
.bg-grid{background:
  linear-gradient(rgba(229,195,121,.05) 1px, transparent 1px),
  linear-gradient(90deg, rgba(229,195,121,.05) 1px, transparent 1px),
  radial-gradient(760px 320px at 10% -5%, rgba(226,31,29,.30), transparent 62%),
  linear-gradient(155deg,#171310,#0E0C0A)}
.bg-grid{background-size:100% 92px,92px 100%,auto,auto}
/* film grain on the new environments too */
.bg-dots::after,.bg-streaks::after,.bg-grid::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.7'/%3E%3C/svg%3E")}

/* reusable burnout smoke on sections */
.smoke-band{position:relative}
.smoke-band canvas.smoke{position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:screen}
.smoke-band > .wrap{position:relative;z-index:2}

/* ============ motion background: drifting light beams ============ */
.bg-motion{position:relative;overflow:hidden;background:linear-gradient(150deg,#171310 0%,#0D0B0A 70%,#141110 100%)}
.bg-motion::before,.bg-motion::after{content:"";position:absolute;top:0;bottom:0;left:0;width:200%;pointer-events:none}
.bg-motion::before{
  background:repeating-linear-gradient(100deg,
    transparent 0 190px, rgba(226,31,29,.08) 190px 194px,
    transparent 194px 340px, rgba(229,195,121,.055) 340px 343px);
  animation:beampan 30s linear infinite}
.bg-motion::after{
  background:repeating-linear-gradient(80deg,
    transparent 0 260px, rgba(229,195,121,.045) 260px 262px,
    transparent 262px 460px, rgba(226,31,29,.05) 460px 463px);
  animation:beampan 46s linear infinite reverse;opacity:.8}
@keyframes beampan{to{transform:translateX(-50%)}}
.bg-motion > .wrap{position:relative;z-index:2}
@media(prefers-reduced-motion:reduce){.bg-motion::before,.bg-motion::after{animation:none}}

/* ============ the red room (auctions teaser) ============ */
.bg-redroom{position:relative;overflow:hidden;background:
  radial-gradient(900px 420px at 85% -10%, rgba(16,16,16,.55), transparent 60%),
  radial-gradient(1100px 480px at 8% 110%, rgba(70,6,5,.9), transparent 65%),
  linear-gradient(150deg,#A81310 0%,#8E100E 45%,#6E0B0A 100%)}
.bg-redroom::before,.bg-redroom::after{content:"";position:absolute;top:0;bottom:0;left:0;width:200%;pointer-events:none}
.bg-redroom::before{
  background:repeating-linear-gradient(100deg,
    transparent 0 200px, rgba(255,255,255,.05) 200px 204px,
    transparent 204px 360px, rgba(229,195,121,.07) 360px 363px);
  animation:beampan 32s linear infinite}
.bg-redroom::after{
  background:repeating-linear-gradient(80deg,
    transparent 0 280px, rgba(229,195,121,.05) 280px 282px,
    transparent 282px 480px, rgba(255,255,255,.04) 480px 483px);
  animation:beampan 48s linear infinite reverse}
.bg-redroom > .wrap{position:relative;z-index:2}
.bg-redroom .kicker{color:#F3DCA7}
.bg-redroom .kicker::before{background:#F3DCA7}
.bg-redroom .sec-intro{color:#F8DAD8}
.bg-redroom .campaign .type{color:var(--red)}
.bg-redroom .empty-state{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.06)}
.bg-redroom .empty-state h3{color:#fff}
.bg-redroom .empty-state p{color:#F8DAD8}
@media(prefers-reduced-motion:reduce){.bg-redroom::before,.bg-redroom::after{animation:none}}

/* ============ finishing details ============ */
::selection{background:var(--red);color:#fff}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
html{scrollbar-color:#4A4238 #14110F}
::-webkit-scrollbar{width:12px;background:#14110F}
::-webkit-scrollbar-thumb{background:#3E362D;border-radius:6px;border:3px solid #14110F}
::-webkit-scrollbar-thumb:hover{background:var(--gold-deep)}
.brand-link img{transition:filter .3s}
.brand-link:hover img{filter:drop-shadow(0 0 10px rgba(229,195,121,.5))}

/* ============ FAQ accordion ============ */
.faq details{background:linear-gradient(155deg,#1D1813,#12100D);border:1px solid rgba(229,195,121,.22);
  border-radius:8px;margin-bottom:12px;overflow:hidden;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%)}
.faq summary{cursor:pointer;list-style:none;padding:20px 24px;font-family:'Archivo';font-weight:800;
  font-size:16px;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:22px;color:var(--gold);flex:none;transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 24px 22px;color:#B7AFA3;font-size:15px}
.faq details p a{color:var(--gold)}
.faq details[open]{border-color:rgba(226,31,29,.5)}

/* ============ mobile polish ============ */
@media(max-width:700px){
  /* extra scrim so hero copy reads over any photo */
  .hero .glow{background:
    linear-gradient(to right,
      rgba(16,16,16,.92) 0%,
      rgba(16,16,16,.82) 30%,
      rgba(16,16,16,.45) 52%,
      rgba(16,16,16,.1) 70%,
      transparent 90%),
    linear-gradient(to top, rgba(16,16,16,.55) 0%, transparent 45%)}
  .hero p.lead{text-shadow:0 1px 14px rgba(16,16,16,.6)}
}
@media(max-width:560px){
  /* compact footer: link columns pair up, tighter rhythm */
  .site-footer{padding:44px 0 0}
  .footer-grid{grid-template-columns:1fr 1fr;gap:28px 18px;padding-bottom:32px}
  .footer-grid .f-brand{grid-column:1 / -1}
  .footer-grid .f-brand p{margin:12px 0 14px}
  .footer-grid h4{margin-bottom:8px}
  .footer-grid ul li{margin-bottom:7px;font-size:13.5px}
  .footer-bottom .wrap{gap:6px;font-size:11.5px}
}

/* ============ partners: static grid on phones ============ */
@media(max-width:700px){
  .logo-marquee.big{mask-image:none;-webkit-mask-image:none;padding:14px 0 6px}
  .logo-marquee.big::before,.logo-marquee.big::after{display:none}
  .logo-marquee.big .logo-track{animation:none;width:auto;flex-wrap:wrap;justify-content:center;
    gap:30px 40px;padding:0 20px}
  .logo-marquee.big .logo-track a[aria-hidden="true"]{display:none}
  .logo-marquee.big .logo-track img{height:34px;max-width:128px}
  .partners-ghost{display:none}
}

/* partners grid: gentle float + tap feedback on phones */
@keyframes logofloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@media(max-width:700px){
  .logo-marquee.big .logo-track a{animation:logofloat 4.6s ease-in-out infinite}
  .logo-marquee.big .logo-track a:nth-child(2n){animation-delay:.7s}
  .logo-marquee.big .logo-track a:nth-child(3n){animation-delay:1.3s}
  .logo-marquee.big .logo-track a:nth-child(4n){animation-delay:1.9s}
  .logo-marquee.big .logo-track a:nth-child(5n){animation-delay:2.6s}
  .logo-marquee.big .logo-track a:active{opacity:1;transform:scale(1.1)}
}
@media(prefers-reduced-motion:reduce){.logo-marquee.big .logo-track a{animation:none}}

/* programs grid: 2x2 on desktop */
.campaigns.progs{grid-template-columns:repeat(2,1fr)}
@media(max-width:760px){.campaigns.progs{grid-template-columns:1fr}}

/* typography: never orphan a single word on its own line */
h1,h2,h3,h4,.sec-title,.big-stat,figcaption .t{text-wrap:balance}
p,li,figcaption,.sec-intro,.lead,.l,.impact-stat__desc{text-wrap:pretty}

/* hero lead: natural wrap, no last-line balancing */
.hero .lead{text-wrap:auto}

/* Givebutter widget slots (pop-up button + pre-publish fallback link) */
.gb-slot{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.center .gb-slot,.gb-slot.center{align-items:center}
.mt-lg.gb-slot{align-items:center}
.gb-slot givebutter-widget{display:block}

/* accessibility: skip-to-content link (WCAG 2.4.1 Bypass Blocks) */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:9999;
  background:var(--red);color:#fff;padding:14px 22px;
  font-family:'Archivo';font-weight:800;font-size:13px;letter-spacing:.08em;
  text-transform:uppercase;text-decoration:none;border-radius:0 0 8px 0;
}
.skip-link:focus{left:0}
#main-content{scroll-margin-top:80px}

/* center the embedded Givebutter form (its internal iframe is left-aligned by default) */
#give givebutter-widget{display:block;max-width:440px;margin:0 auto}

/* mobile hero: TCO tent/branding sits in the right third of every hero photo —
   aim the crop there instead of dead center */
@media(max-width:760px){
  .hero-slide{object-position:74% center}
  .hero-slide:nth-child(1){object-position:96% center}
  .hero-slide:nth-child(2){object-position:70% center}
  .hero-slide:nth-child(3){object-position:70% center}
  .hero-slide:nth-child(4){object-position:80% center}
}

/* Brazil feature: team photo shown full, not as a dim texture */
.brazil-feature{display:grid;grid-template-columns:minmax(0,0.85fr) minmax(0,1fr);gap:44px;align-items:center}
.brazil-photo{position:relative;border-radius:var(--radius);overflow:hidden;
  box-shadow:0 30px 60px -34px rgba(0,0,0,.85);border:1px solid rgba(229,195,121,.22)}
.brazil-photo img{display:block;width:100%;height:auto}
.brazil-photo::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;
  background:linear-gradient(90deg,var(--red),var(--gold))}
@media(max-width:860px){
  .brazil-feature{grid-template-columns:1fr;gap:28px}
  .brazil-copy{order:2}
  .brazil-photo{order:1;max-width:520px;margin:0 auto}
}

/* Givebutter popup buttons: hide their shadow-DOM button, use our branded one */
.gb-slot.gb-ready givebutter-widget{position:absolute;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);pointer-events:none}
.gb-slot{position:relative}

/* Laps 2 Love gauges: grid adapts when a stat is hidden (no number yet = no gauge) */
#l2l-stats{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}

/* ---- Wild West Wednesday raffle (donate page) ---- */
.raffle-sec{background:linear-gradient(160deg,#F7F3EB 0%,#EFE9DD 100%);padding:64px 0 58px;
  border-top:4px solid var(--red);border-bottom:1px solid var(--line)}
.raffle-head{text-align:center;max-width:760px;margin:0 auto}
.raffle-head .sec-intro{margin-left:auto;margin-right:auto}
.raffle-dates{display:inline-block;margin-top:18px;padding:7px 18px;border-radius:999px;
  background:var(--red);color:#fff;font-family:'Archivo';font-weight:800;font-size:12px;
  letter-spacing:.1em;text-transform:uppercase}
.raffle-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:26px;margin-top:38px;align-items:start}
.raffle-prize,.raffle-tickets{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:28px 30px;box-shadow:0 18px 40px -34px rgba(16,16,16,.5)}
.raffle-prize h3,.raffle-tickets h3{margin:0 0 14px;font-family:'Archivo';font-weight:900;
  font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--red-dark)}
.rp-lead{font-size:17px;font-weight:700;color:var(--ink);line-height:1.45;margin:0 0 14px}
.raffle-prize ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.raffle-prize li{position:relative;padding-left:24px;font-size:15px;color:var(--ink-soft);line-height:1.5}
.raffle-prize li::before{content:"";position:absolute;left:0;top:8px;width:10px;height:10px;
  background:var(--red);transform:skewX(-12deg);border-radius:2px}
.rp-fine{margin:16px 0 0;font-size:13px;color:#6E675D;font-style:italic}
.rt-rows{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}
.rt-row{display:flex;align-items:center;justify-content:space-between;gap:14px;
  background:var(--off);border:1px solid var(--line);border-radius:10px;padding:13px 18px}
.rt-amt{font-family:'Archivo';font-weight:900;font-size:23px;color:var(--ink)}
.rt-get{font-family:'Archivo';font-weight:800;font-size:13px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--red-dark)}
.raffle-tickets .btn{width:100%;justify-content:center}
.rt-note{margin:16px 0 0;font-size:13px;line-height:1.6;color:#6E675D}
.raffle-partners{margin-top:36px;text-align:center}
.rp-label{display:block;font-family:'Archivo';font-weight:800;font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:#8A8375;margin-bottom:16px}
.rp-logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:34px}
.rp-logos img{height:44px;max-width:170px;width:auto;object-fit:contain}
.rp-link{display:inline-flex;align-items:center;transition:opacity .18s ease}
.rp-link:hover{opacity:.65}
.rp-name{font-family:'Archivo';font-weight:800;font-size:15px;letter-spacing:.04em;color:var(--ink-soft)}
.raffle-legal{margin:26px auto 0;max-width:760px;text-align:center;font-size:11.5px;line-height:1.65;color:#8A8375}
/* Wild West Wednesday homepage popup */
.wwr-overlay{position:fixed;inset:0;z-index:2000;background:rgba(12,10,9,.66);display:flex;align-items:center;justify-content:center;padding:22px;animation:wwrFade .35s ease}
.wwr-overlay[hidden]{display:none}
.wwr-card{position:relative;min-width:0;width:min(500px,calc(100vw - 44px));background:linear-gradient(160deg,#F7F3EB 0%,#EFE9DD 100%);border-top:6px solid var(--red);border-radius:16px;padding:38px 34px 30px;text-align:center;box-shadow:0 34px 90px rgba(0,0,0,.5);animation:wwrPop .35s ease}
.wwr-close{position:absolute;top:8px;right:12px;background:none;border:0;font-size:30px;line-height:1;color:#8A8375;cursor:pointer;padding:6px}
.wwr-close:hover{color:var(--ink)}
.wwr-kicker{font-family:'Archivo';font-weight:800;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--red-dark)}
.wwr-title{font-family:'Archivo';font-weight:900;font-size:clamp(24px,5vw,32px);text-transform:uppercase;color:var(--ink);margin:10px 0 12px;line-height:1.05}
.wwr-dates{display:inline-block;background:var(--red);color:#fff;font-family:'Archivo';font-weight:800;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;border-radius:999px;padding:7px 16px}
.wwr-lead{margin:16px auto 0;max-width:400px;font-size:15px;line-height:1.55;color:var(--ink-soft)}
.wwr-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0 20px}
.wwr-tile{background:var(--off);border:1px solid var(--line);border-radius:10px;padding:10px 6px 9px;display:flex;flex-direction:column;align-items:center;gap:2px}
.wwr-amt{font-family:'Archivo';font-weight:900;font-size:19px;color:var(--ink);line-height:1}
.wwr-get{font-family:'Archivo';font-weight:800;font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--red-dark)}
.wwr-partners{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.wwr-plabel{display:block;font-family:'Archivo';font-weight:800;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:#8A8375;margin-bottom:10px}
.wwr-logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px 16px}
.wwr-logos img{height:22px;max-width:86px;width:auto;object-fit:contain}
.wwr-cta{align-items:center}
.wwr-cta .btn{min-width:230px;justify-content:center}
.wwr-more{display:inline-block;margin-top:14px;font-size:13px;color:var(--red-dark);font-weight:700}
@keyframes wwrFade{from{opacity:0}to{opacity:1}}
@keyframes wwrPop{from{transform:translateY(14px) scale(.97);opacity:0}to{transform:none;opacity:1}}
@media(max-width:520px){.wwr-card{padding:28px 16px 22px}.wwr-tiles{grid-template-columns:repeat(2,1fr)}.wwr-dates{font-size:10px;letter-spacing:.06em;padding:6px 12px}.wwr-logos{gap:8px 12px}.wwr-logos img{height:18px;max-width:70px}}
.raffle-tickets .gb-slot{width:100%}
.raffle-tickets .gb-slot .btn{width:100%;justify-content:center}
@media(max-width:860px){
  .raffle-grid{grid-template-columns:1fr;gap:18px}
  .raffle-sec{padding:48px 0 44px}
  .raffle-prize,.raffle-tickets{padding:22px 20px}
  .rp-logos{gap:22px}
  .rp-logos img{height:34px;max-width:130px}
  .rt-amt{font-size:20px}
}
