.layout-grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 40px; align-items: start; }
@media (max-width: 1024px) { .layout-grid { grid-template-columns: 1fr; } }

.hero { position: relative; padding: 100px 0 80px; overflow: hidden; }
.hero::before { content: ''; position: absolute; inset: 0; background: var(--hero-wash); pointer-events: none; }
.hero-content { position: relative; z-index: 1; }
@media (max-width: 768px) { .hero { padding: 64px 0 48px; } }
@media (max-width: 480px) { .hero { padding: 48px 0 36px; } }

.badge-chip {
  display: inline-flex; align-items: center; gap: 8px; padding: 7px 16px 7px 8px;
  border: 1.5px solid var(--color-primary); border-radius: 999px; position: relative;
}
.badge-chip::after { content: ''; position: absolute; inset: 3px; border: 1px solid var(--color-border); border-radius: 999px; pointer-events: none; }
.badge-chip .dot { width: 7px; height: 7px; border-radius: 50%; background-color: var(--color-accent); box-shadow: 0 0 0 3px rgba(217, 84, 31, 0.18); }

.glass-panel {
  background: var(--glass-bg); backdrop-filter: blur(var(--glass-blur)); -webkit-backdrop-filter: blur(var(--glass-blur));
  border: 1px solid var(--glass-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-card);
}

.stitch-divider { height: 1px; background-image: var(--stitch); background-size: 12px 1px; border: none; margin-block: 32px; }

.btn { position: relative; overflow: hidden; }
.btn-primary { box-shadow: 0 10px 24px -8px rgba(217, 84, 31, 0.55); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 14px 28px -8px rgba(217, 84, 31, 0.6); }
.btn-primary:active { transform: translateY(0) scale(0.97); }
.btn-dark:hover { transform: translateY(-2px); }

.camper-card {
  position: relative; width: 100%; max-width: 380px; border-radius: var(--radius-lg);
  background: var(--brand-ink); color: var(--brand-ink-text); padding: 28px 26px 24px;
  box-shadow: 0 24px 50px -18px rgba(14, 14, 15, 0.55), 0 4px 14px rgba(14, 14, 15, 0.18);
  overflow: hidden; isolation: isolate; transform: rotate(-1.2deg);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
.camper-card:hover { transform: rotate(2deg) translateY(-4px); }
.camper-card::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at 100% 0%, rgba(217, 84, 31, 0.35), transparent 55%); z-index: -1;
}
/* Dark mode: the card's ink background nearly matches the page background,
   so the signature element loses presence right when it should hold up
   best. A visible border and a stronger, warmer glow fix that. */
html[data-theme="dark"] .camper-card {
  border: 1px solid rgba(232, 99, 47, 0.3);
  box-shadow: 0 24px 60px -16px rgba(232, 99, 47, 0.22), 0 4px 18px rgba(0, 0, 0, 0.55);
}
html[data-theme="dark"] .camper-card::before {
  background: radial-gradient(circle at 100% 0%, rgba(232, 99, 47, 0.5), transparent 58%),
              radial-gradient(circle at 0% 100%, rgba(217, 184, 74, 0.16), transparent 50%);
}
.camper-card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.camper-card-brand { display: flex; align-items: center; gap: 10px; }
.camper-card-brand .logo-jt-square { width: 24px; height: 24px; background-image: var(--logo-jt-square-on-dark, url('../assets/logos/dark/jt-square-white.png')); }
.camper-card-brand span { font-family: var(--font-mono); font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(247, 243, 236, 0.7); }
.camper-card-year { font-family: var(--font-mono); font-size: 0.6875rem; color: rgba(247, 243, 236, 0.55); border: 1px solid rgba(247, 243, 236, 0.25); padding: 3px 9px; border-radius: 999px; }
.camper-card-name { font-family: var(--font-display); font-size: 1.75rem; font-weight: 600; line-height: 1.1; min-height: 1.1em; margin-bottom: 4px; }
.camper-card-name.is-placeholder { color: rgba(247, 243, 236, 0.35); font-style: italic; font-weight: 500; }
.camper-card-role { font-size: 0.8125rem; color: rgba(247, 243, 236, 0.6); margin-bottom: 20px; }
.camper-card-divider { height: 1px; background-image: repeating-linear-gradient(90deg, rgba(247, 243, 236, 0.3) 0 6px, transparent 6px 12px); margin-bottom: 18px; }
.camper-card-meta { display: flex; justify-content: space-between; gap: 16px; }
.camper-card-meta-item { display: flex; flex-direction: column; gap: 4px; }
.camper-card-meta-label { font-family: var(--font-mono); font-size: 0.625rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(247, 243, 236, 0.45); }
.camper-card-meta-value { font-family: var(--font-mono); font-size: 0.9375rem; font-weight: 500; }
.camper-card-name span, .camper-card-meta-value span { display: inline-block; animation: card-fill 0.4s ease both; }
@keyframes card-fill { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .camper-card-name span, .camper-card-meta-value span { animation: none; } }
@media (max-width: 480px) { .camper-card { max-width: 100%; padding: 22px 20px 20px; } .camper-card-name { font-size: 1.5rem; } }

.reveal-up { animation: reveal-up 0.7s cubic-bezier(0.16, 1, 0.3, 1) both; }
.reveal-up.delay-1 { animation-delay: 0.08s; }
.reveal-up.delay-2 { animation-delay: 0.16s; }
.reveal-up.delay-3 { animation-delay: 0.24s; }
@keyframes reveal-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .reveal-up { animation: none; } }

.lift-on-hover { transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease; }
.lift-on-hover:hover { transform: translateY(-4px); box-shadow: var(--shadow-card); }

/* Hero CTA buttons: side by side on desktop, stacked on small screens */
.cta-buttons {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

@media (max-width: 640px) {
  .cta-buttons {
    flex-direction: column;
    align-items: stretch;
    max-width: 320px;
  }
}