/* ── HOME PAGE STYLES ── */

/* HERO */
.hero {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 1fr 1fr;
  position: relative;
  overflow: hidden;
}
.hero-left {
  display: flex; flex-direction: column;
  justify-content: center;
  padding: 140px 60px 80px;
  position: relative; z-index: 2;
}
.hero-eyebrow {
  font-size: 12px; font-weight: 600;
  letter-spacing: 5px; text-transform: uppercase;
  color: var(--yellow);
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 24px;
  opacity: 0; animation: fadeUp .8s .3s forwards;
}
.hero-eyebrow::before { content:''; width:40px; height:1px; background:var(--yellow); }
.hero-headline {
  font-family: 'Bebas Neue', sans-serif;
  font-size: clamp(72px, 8vw, 110px);
  line-height: .92; letter-spacing: 2px;
  opacity: 0; animation: fadeUp .9s .5s forwards;
}
.hero-headline .accent { color: var(--yellow); display: block; }
.hero-headline .outline { -webkit-text-stroke: 1.5px var(--white); color: transparent; display: block; }
.hero-sub {
  font-size: 18px; color: var(--gray);
  margin-top: 28px; max-width: 420px; line-height: 1.6;
  opacity: 0; animation: fadeUp .9s .7s forwards;
}
.hero-actions {
  display: flex; gap: 16px; margin-top: 48px; align-items: center;
  opacity: 0; animation: fadeUp .9s .9s forwards;
}
.hero-stats {
  display: flex; gap: 48px;
  margin-top: 72px; padding-top: 40px;
  border-top: 1px solid #222;
  opacity: 0; animation: fadeUp .9s 1.1s forwards;
}
.stat-num {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 42px; color: var(--yellow); line-height: 1;
}
.stat-label {
  font-size: 11px; letter-spacing: 3px;
  text-transform: uppercase; color: var(--gray); margin-top: 4px;
}
.hero-right { position: relative; overflow: hidden; }
.hero-photo-wrap {
  position: absolute; inset: 0;
  background: linear-gradient(135deg,#1a1a1a 0%,#0d0d0d 100%);
  display: flex; align-items: flex-end; justify-content: center;
}
.hero-photo-wrap img { width:75%; height:85%; object-fit:cover; object-position:top; }
.hero-photo-placeholder {
  width:75%; height:85%;
  background: linear-gradient(180deg,#2a2a2a 0%,#1a1a1a 100%);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  border-top: 3px solid var(--yellow);
}
.hero-photo-placeholder span { font-size:80px; opacity:.15; }
.hero-photo-placeholder p {
  font-size:11px; letter-spacing:4px; text-transform:uppercase;
  color:var(--gray); margin-top:16px; opacity:.5;
}
.hero-diagonal {
  position:absolute; top:0; right:0;
  width:6px; height:100%;
  background:var(--yellow);
  opacity:0; animation:fadeIn 1s 1.2s forwards;
}
.scroll-indicator {
  position:absolute; bottom:40px; left:60px;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  z-index:2; opacity:0; animation:fadeIn 1s 1.5s forwards;
}
.scroll-line {
  width:1px; height:60px;
  background: linear-gradient(to bottom, var(--yellow), transparent);
  animation: scrollPulse 2s infinite;
}
.scroll-text {
  font-size:10px; letter-spacing:3px;
  text-transform:uppercase; color:var(--gray);
  writing-mode:vertical-rl;
}

/* ABOUT SNIPPET */
.about-snippet {
  padding: 140px 60px;
  display: grid; grid-template-columns: 1fr 1.2fr;
  gap: 100px; align-items: center;
  position: relative; z-index: 2;
}
.about-heading {
  font-size: clamp(52px,5vw,72px);
  line-height: .95; letter-spacing: 1px;
}
.about-heading span { display: block; }
.outline-white { -webkit-text-stroke: 1px var(--white); color: transparent; }
.about-body { font-size:17px; line-height:1.8; color:#999; }
.about-body strong { color: var(--white); }
.about-body p + p { margin-top: 20px; }
.about-quote {
  margin-top:40px; padding:28px 32px;
  border-left: 3px solid var(--yellow);
  background: rgba(249,224,0,.04);
  font-style:italic; font-size:20px; line-height:1.5;
  color: var(--white);
}

/* SPEAKING */
.speaking-section {
  padding: 120px 60px;
  background: var(--dark2); position: relative; z-index: 2;
}
.speaking-grid {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 2px;
}
.speaking-card {
  background: #111; padding: 48px 40px;
  position: relative; overflow: hidden;
  border-top: 2px solid transparent;
  transition: background .3s, border-top-color .3s;
}
.speaking-card:hover { background: #161616; border-top-color: var(--yellow); }
.card-num {
  font-family:'Bebas Neue',sans-serif; font-size:80px; line-height:1;
  color: rgba(249,224,0,.08);
  position:absolute; top:20px; right:24px;
  transition: color .3s;
}
.speaking-card:hover .card-num { color: rgba(249,224,0,.15); }
.card-title { font-size:30px; letter-spacing:2px; margin-bottom:16px; }
.card-desc { font-size:15px; line-height:1.7; color:#777; }

/* EVENTS */
.events-section {
  padding: 120px 60px; position: relative; z-index: 2;
}
.events-list { display:flex; flex-direction:column; }
.event-row {
  display: grid; grid-template-columns: 120px 1fr auto auto;
  align-items:center; gap:40px;
  padding: 32px 20px; border-bottom: 1px solid #1a1a1a;
  position: relative; transition: background .2s;
}
.event-row::before {
  content:''; position:absolute;
  left:0; top:0; bottom:0; width:0;
  background:var(--yellow); transition:width .3s ease;
}
.event-row:hover::before { width:3px; }
.event-row:hover { background: rgba(249,224,0,.02); }
.event-date { text-align:center; }
.month { font-family:'Bebas Neue',sans-serif; font-size:13px; letter-spacing:3px; color:var(--yellow); display:block; }
.day   { font-family:'Bebas Neue',sans-serif; font-size:52px; line-height:1; display:block; }
.event-name { font-size:28px; letter-spacing:1px; margin-bottom:6px; }
.event-location { font-size:13px; letter-spacing:2px; text-transform:uppercase; color:var(--gray); }
.event-type {
  font-size:11px; letter-spacing:3px; text-transform:uppercase;
  color:var(--yellow); border:1px solid rgba(249,224,0,.3); padding:6px 16px;
}
.event-link { font-size:12px; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:var(--gray); transition:color .2s; }
.event-link:hover { color:var(--yellow); }

/* MERCH */
.merch-section {
  padding: 120px 60px; background:var(--dark2); position:relative; z-index:2;
}
.merch-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.merch-card { background:#111; overflow:hidden; transition:transform .2s; }
.merch-card:hover { transform:translateY(-4px); }
.merch-img {
  width:100%; aspect-ratio:1;
  background:linear-gradient(135deg,#1e1e1e,#141414);
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.merch-mock {
  display:flex; align-items:center; justify-content:center;
  background:#2a2a2a;
}
.merch-tee {
  width:120px; height:130px;
  clip-path:polygon(15% 0%,85% 0%,100% 12%,100% 100%,0% 100%,0% 12%);
}
.merch-cap {
  width:130px; height:80px;
  border-radius:50% 50% 8px 8px / 30% 30% 8px 8px;
  position:relative;
}
.merch-cap::after {
  content:''; position:absolute;
  bottom:-10px; left:-8px; right:-8px;
  height:14px; background:#222; border-radius:0 0 6px 6px;
}
.merch-journal {
  width:90px; height:120px; border-radius:3px;
  border-left:6px solid var(--yellow);
  box-shadow:3px 3px 12px rgba(0,0,0,.5);
}
.merch-tote {
  width:110px; height:120px; border-radius:4px; position:relative;
}
.merch-tote::before {
  content:''; position:absolute;
  top:-18px; left:28px; right:28px; height:20px;
  border:3px solid #444; border-bottom:none; border-radius:50% 50% 0 0;
}
.choose-joy-label {
  font-family:'Bebas Neue',sans-serif; font-size:18px;
  letter-spacing:3px; color:var(--yellow); text-align:center;
}
.choose-joy-label-sm {
  font-family:'Bebas Neue',sans-serif; font-size:13px;
  letter-spacing:3px; color:var(--yellow);
}
.choose-joy-label-journal {
  font-family:'Bebas Neue',sans-serif; font-size:20px;
  letter-spacing:2px; color:var(--yellow); text-align:center; line-height:1.1;
}
.merch-info { padding:20px 20px 24px; }
.merch-name {
  font-size:16px; font-weight:700; letter-spacing:2px;
  text-transform:uppercase; margin-bottom:6px;
}
.merch-price {
  font-family:'Bebas Neue',sans-serif; font-size:22px; color:var(--yellow);
}

/* YOUTUBE */
.youtube-section { position:relative; z-index:2; background:var(--black); }
.yt-banner { width:100%; height:220px; position:relative; overflow:hidden; }
.yt-banner img { width:100%; height:100%; object-fit:cover; object-position:center; }
.yt-banner-fallback {
  display:none; width:100%; height:100%;
  background:linear-gradient(135deg,#0f0f0f 0%,#1a1500 50%,#0a0a0a 100%);
  align-items:center; justify-content:center; flex-direction:column;
  border-bottom:3px solid var(--yellow);
}
.yt-fallback-name {
  font-size:clamp(40px,6vw,80px); letter-spacing:8px;
  color:var(--yellow); text-shadow:0 0 60px rgba(249,224,0,.3);
}
.yt-fallback-sub {
  font-size:14px; letter-spacing:4px; text-transform:uppercase;
  color:#666; margin-top:8px;
}
.yt-banner-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to bottom,transparent 40%,rgba(10,10,10,.85) 100%);
  pointer-events:none;
}
.yt-subscribe-btn {
  position:absolute; bottom:20px; right:60px;
  display:inline-flex; align-items:center;
  font-size:13px; font-weight:700; letter-spacing:3px; text-transform:uppercase;
  color:var(--white); background:rgba(0,0,0,.7);
  border:1px solid rgba(255,255,255,.2);
  padding:11px 24px; backdrop-filter:blur(8px);
  transition:background .2s, border-color .2s;
}
.yt-subscribe-btn:hover { background:#FF0000; border-color:#FF0000; }
.yt-content { padding:80px 60px 100px; }
.yt-header-row { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:48px; }
.yt-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.yt-card { background:#111; overflow:hidden; border-top:2px solid transparent; transition:border-color .3s; }
.yt-card:hover { border-top-color:var(--yellow); }
.yt-embed-wrap { position:relative; width:100%; aspect-ratio:16/9; background:#0d0d0d; }
.yt-embed-wrap iframe { position:absolute; inset:0; width:100%; height:100%; }

/* CTA */
.cta-section {
  padding:160px 60px; text-align:center;
  position:relative; z-index:2; overflow:hidden;
}
.cta-section::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse at center,rgba(249,224,0,.06) 0%,transparent 60%);
  pointer-events:none;
}
.cta-heading {
  font-size:clamp(60px,8vw,120px); line-height:.9; letter-spacing:2px;
  max-width:900px; margin:0 auto 50px;
}
.cta-heading .outline-white { -webkit-text-stroke:1.5px rgba(255,255,255,.3); color:transparent; display:block; }
.cta-heading .text-yellow { display:block; }

/* ANIMATIONS */
@keyframes fadeUp {
  from { opacity:0; transform:translateY(30px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes fadeIn {
  from { opacity:0; } to { opacity:1; }
}
@keyframes scrollPulse {
  0%,100% { opacity:1; transform:scaleY(1); }
  50%      { opacity:.4; transform:scaleY(.6); }
}

/* RESPONSIVE */
@media (max-width: 900px) {
  .hero { grid-template-columns:1fr; min-height:auto; }
  .hero-left { padding:120px 24px 60px; }
  .hero-right { display:none; }
  .hero-stats { gap:24px; }
  .about-snippet { grid-template-columns:1fr; gap:40px; padding:80px 24px; }
  .speaking-section, .events-section, .merch-section, .yt-content { padding:80px 24px; }
  .speaking-grid { grid-template-columns:1fr; gap:2px; }
  .event-row { grid-template-columns:80px 1fr; gap:16px; }
  .event-type, .event-link { display:none; }
  .merch-grid { grid-template-columns:repeat(2,1fr); }
  .yt-grid { grid-template-columns:1fr; }
  .cta-section { padding:100px 24px; }
}
