*{box-sizing:border-box}html,body{margin:0;padding:0}
:root{
  --bg:#0b0d12;
  --panel:#141822;
  --ink:#e8e8ea;
  --muted:#8c92a0;
  --accent:#ff7a2f;
  --accent-soft:#ffb38d;
  --glass:rgba(20,24,34,0.6);
  --glow:0 0 20px rgba(255,122,47,0.35);
}
body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,'Helvetica Neue',Arial,sans-serif;background:radial-gradient(1200px 800px at 50% -10%,#151922 0%,#0b0d12 55%);color:var(--ink);line-height:1.6}
.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:linear-gradient(to bottom,rgba(11,13,18,0.9),rgba(11,13,18,0.2));backdrop-filter:blur(6px);border-bottom:1px solid rgba(255,255,255,0.06)}
.brand{display:flex;align-items:center;gap:12px}
.logo{width:36px;height:36px;filter:drop-shadow(0 0 12px rgba(255,122,47,.35))}
.wordmark h1{font-size:14px;letter-spacing:0.35em;margin:0;font-weight:800}
.wordmark p{margin:0;margin-top:2px;font-size:10px;letter-spacing:0.45em;color:var(--accent-soft)}
.nav a{color:var(--ink);text-decoration:none;margin-left:16px;font-weight:600;opacity:0.9}
.nav a:hover{color:var(--accent)}
.hero{position:relative;height:72vh;display:flex;align-items:center;justify-content:center;overflow:hidden;border-bottom:1px solid rgba(255,255,255,0.06)}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0.35;filter:saturate(0.5) contrast(1.05) brightness(0.7)}
.overlay{position:absolute;inset:0;background:radial-gradient(70% 60% at 50% 60%,rgba(11,13,18,0) 0%,rgba(11,13,18,0.6) 60%,rgba(11,13,18,0.9) 100%)}
.hero-text{position:relative;text-align:center;max-width:960px;padding:0 20px}
.hero-text h2{font-size: clamp(28px, 5vw, 54px);line-height:1.18;margin:0 0 18px;text-shadow:var(--glow)}
.cta{display:inline-block;padding:12px 18px;border:1px solid rgba(255,255,255,0.12);border-radius:999px;color:var(--ink);text-decoration:none;font-weight:700;transition:.2s background, .2s transform}
.cta:hover{background:rgba(255,255,255,0.06);transform:translateY(-1px)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;padding:36px 24px;max-width:1100px;margin:0 auto}
.card{background:var(--glass);border:1px solid rgba(255,255,255,0.06);border-radius:18px;padding:18px}
.card h3{margin-top:4px}
.btn{display:inline-block;margin-top:8px;color:var(--accent);text-decoration:none;font-weight:700}
.feature{padding:32px 24px;border-top:1px solid rgba(255,255,255,0.06);}
.feature > div{max-width:900px;margin:0 auto}
.site-footer{padding:24px;color:var(--muted);text-align:center;border-top:1px solid rgba(255,255,255,0.06)}
@media (max-width:720px){.nav{display:none}}
/* Smoldering ember hover effect */
#tagline {
  color: #e8e6e3;
  transition: all 1.5s ease;
  text-shadow: 0 0 3px rgba(255, 200, 150, 0.2);
  position: relative;
}

/* On hover, simulate heat build-up and soft glow */
#tagline:hover {
  color: #fff3e0;
  text-shadow:
    0 0 10px rgba(255, 180, 80, 0.5),
    0 0 20px rgba(255, 120, 40, 0.4),
    0 0 35px rgba(255, 60, 0, 0.3);
  transition: all 1.8s ease;
  animation: smolderPulse 2.5s ease-in-out infinite alternate;
}

/* Gentle pulse like cooling embers */
@keyframes smolderPulse {
  0% {
    text-shadow:
      0 0 6px rgba(255, 200, 130, 0.4),
      0 0 16px rgba(255, 120, 50, 0.3),
      0 0 28px rgba(255, 60, 0, 0.2);
    filter: brightness(1);
  }
  100% {
    text-shadow:
      0 0 12px rgba(255, 210, 160, 0.6),
      0 0 24px rgba(255, 130, 40, 0.5),
      0 0 48px rgba(255, 60, 0, 0.35);
    filter: brightness(1.1);
  }
}
/* --- Ember + Smoke effect for the tagline --- */
.hero-text { position: relative; }

/* Base glow */
.ember{
  position: relative;
  display: inline-block;
  --ember1: rgba(255,180,80,.35);
  --ember2: rgba(255,120,40,.25);
  --ember3: rgba(255,80,20,.15);
  text-shadow:
    0 0 10px var(--ember1),
    0 0 20px var(--ember1),
    0 0 35px var(--ember2),
    0 0 55px var(--ember3);
  animation: emberPulse 3.2s ease-in-out infinite;
}

/* On hover: stronger heat + start smoke */
.ember:hover{
  animation: smolder 1.4s ease-in-out infinite alternate;
}

/* Two little smoke puffs */
.ember::before,
.ember::after{
  content: "";
  position: absolute;
  left: 50%;
  width: 14px;
  height: 14px;
  pointer-events: none;
  border-radius: 50%;
  opacity: 0;
  filter: blur(3px);
  background:
    radial-gradient(circle at 30% 30%,
      rgba(255,255,255,.55) 0 20%,
      rgba(200,200,200,.35) 30%,
      rgba(120,120,120,0) 70%);
  transform: translate(-50%,0) scale(1);
}

.ember:hover::before{ animation: smokeRise 2.8s ease-out infinite; }
.ember:hover::after { animation: smokeRise 3.6s ease-out infinite .8s; }

/* Soft breathing glow */
@keyframes emberPulse{
  0%,100%{
    text-shadow:
      0 0 6px rgba(255,170,70,.28),
      0 0 16px rgba(255,140,50,.22),
      0 0 34px rgba(255,90,20,.12);
  }
  50%{
    text-shadow:
      0 0 10px rgba(255,190,90,.38),
      0 0 24px rgba(255,150,60,.28),
      0 0 50px rgba(255,100,25,.18);
  }
}

/* Hotter, smokier hover state */
@keyframes smolder{
  0%{
    text-shadow:
      0 0 10px rgba(255,200,120,.45),
      0 0 28px rgba(255,150,70,.35),
      0 0 60px rgba(255,110,40,.25);
    filter: none;
  }
  100%{
    text-shadow:
      0 0 14px rgba(255,210,140,.55),
      0 0 36px rgba(255,160,80,.42),
      0 0 80px rgba(255,120,50,.32);
    filter: saturate(1.05) contrast(1.05);
  }
}

/* Smoke drift upward and fade */
@keyframes smokeRise{
  0%{
    opacity: 0;
    transform: translate(-50%, 4px) scale(.6);
  }
  12%{ opacity: .35; }
  60%{
    opacity: .18;
    transform: translate(-50%, -48px) scale(1.2);
    filter: blur(5px);
  }
  100%{
    opacity: 0;
    transform: translate(-50%, -84px) scale(1.45);
    filter: blur(7px);
  }
}
/* Subtle drifting smoke effect */
/* Tagline with ember and smoke effect */
#tagline {
  position: relative;
  display: block;
  text-align: center;
  color: #fff;
  animation: smolderPulse 2.5s ease-in-out infinite alternate;
  text-shadow: 0 0 8px rgba(255, 150, 50, 0.6),
               0 0 16px rgba(255, 80, 0, 0.3);
  margin-bottom: 1rem; /* restores breathing room for the button */
}

#tagline::after {
  content: '';
  position: absolute;
  top: -20%;
  left: 50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(rgba(255,255,255,0.2), transparent 70%);
  transform: translateX(-50%) scaleY(1);
  opacity: 1.9;
  filter: blur(18px);
  pointer-events: none;
  z-index: -1; /* keeps the smoke behind the text */
  animation: smokeDrift 12s ease-in-out infinite;
}

@keyframes smokeDrift {
  0% {
    transform: translateX(-50%) translateY(0) scaleY(1);
    opacity: 0.9;
    filter: blur(8px);
  }
  50% {
    transform: translateX(-52%) translateY(-20px) scaleY(1.2);
    opacity: 0.7;
    filter: blur(10px);
  }
  100% {
    transform: translateX(-48%) translateY(-40px) scaleY(1.4);
    opacity: 0.3;
    filter: blur(14px);
  }
}
section#projects .card img.book-cover {
  display: block;
  margin: 1rem auto;
  width: 220px !important;
  max-width: none;
  height: auto;
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
