:root {
  --bg:        #150d04;
  --bg-2:      #211507;
  --surface:   #2a1b0a;
  --line:      #45301492;
  --beer:      #f2a413;
  --beer-deep: #c9760a;
  --foam:      #fff6e4;
  --text:      #f6ead8;
  --muted:     #c2a984;
  --radius:    20px;
  --gutter:    16px;
  color-scheme: dark;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  padding: 0;
  background:
    radial-gradient(1100px 600px at 50% -10%, #4a2d0b 0%, transparent 65%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
  background-attachment: fixed;
  color: var(--text);
  font-family: "Inter", system-ui, -apple-system, sans-serif;
  font-size: 17px;
  line-height: 1.65;
  overflow-x: hidden;
}

a { color: var(--beer); text-underline-offset: 3px; }
a:hover { color: var(--foam); }

/* ---------- aufsteigende Bläschen ---------- */
.bubbles {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
.bubbles b {
  position: absolute;
  bottom: -40px;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 30%, #ffffffcc, #f2a41355 60%, transparent 72%);
  animation: rise linear infinite;
}
@keyframes rise {
  to { transform: translateY(-115vh) translateX(var(--drift, 0px)); opacity: 0; }
}

/* ---------- Hero ---------- */
.hero {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: clamp(48px, 9vw, 96px) var(--gutter) clamp(32px, 6vw, 56px);
  max-width: 880px;
  margin: 0 auto;
}

.kicker {
  font-family: "Bricolage Grotesque", sans-serif;
  letter-spacing: .34em;
  text-transform: uppercase;
  font-size: 12px;
  color: var(--beer);
  margin: 0 0 18px;
}

h1 {
  font-family: "Bricolage Grotesque", sans-serif;
  font-weight: 800;
  font-size: clamp(2.5rem, 11vw, 5.5rem);
  line-height: .96;
  letter-spacing: -.03em;
  margin: 0;
  text-wrap: balance;
}
h1 span { display: block; opacity: 0; animation: drop .75s cubic-bezier(.2,.9,.3,1.2) forwards; }
h1 .line-1 { animation-delay: .05s; }
h1 .line-2 { animation-delay: .2s; }
h1 .line-3 {
  animation-delay: .35s;
  background: linear-gradient(175deg, var(--foam) 12%, var(--beer) 48%, var(--beer-deep) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
h1 .dot { display: inline; color: var(--beer); -webkit-text-fill-color: var(--beer); }

@keyframes drop {
  from { opacity: 0; transform: translateY(-24px) rotate(-2deg); }
  to   { opacity: 1; transform: none; }
}

.hero-sub {
  color: var(--muted);
  max-width: 34ch;
  margin: 22px auto 0;
  opacity: 0;
  animation: drop .8s ease .6s forwards;
  text-wrap: pretty;
}

/* ---------- Bierglas ---------- */
.glass-wrap {
  position: relative;
  width: 150px;
  margin: clamp(32px, 6vw, 48px) auto 8px;
  opacity: 0;
  animation: drop .8s ease .8s forwards;
}
.glass {
  position: relative;
  height: 210px;
  border: 4px solid #ffffff2e;
  border-top: 0;
  border-radius: 8px 8px 26px 26px;
  background: linear-gradient(105deg, #ffffff12, #ffffff05 40%, #ffffff14);
  backdrop-filter: blur(2px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.glass-beer {
  position: relative;
  height: 0;
  background: linear-gradient(180deg, var(--beer) 0%, var(--beer-deep) 100%);
  transition: height 2.4s cubic-bezier(.3,.8,.4,1);
  overflow: hidden;
}
.glass.filled .glass-beer { height: 72%; }
.glass-beer i {
  position: absolute;
  bottom: -10px;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #fff8e9aa;
  animation: fizz 3.2s linear infinite;
}
.glass-beer i:nth-child(1) { left: 14%; animation-delay: .1s; }
.glass-beer i:nth-child(2) { left: 32%; animation-delay: 1.1s; width: 5px; height: 5px; }
.glass-beer i:nth-child(3) { left: 48%; animation-delay: .6s; }
.glass-beer i:nth-child(4) { left: 64%; animation-delay: 1.8s; width: 4px; height: 4px; }
.glass-beer i:nth-child(5) { left: 78%; animation-delay: 2.4s; }
.glass-beer i:nth-child(6) { left: 24%; animation-delay: 2.0s; width: 4px; height: 4px; }
@keyframes fizz {
  from { transform: translateY(0); opacity: 0; }
  20%  { opacity: 1; }
  to   { transform: translateY(-150px); opacity: 0; }
}

.glass-foam {
  position: relative;
  height: 0;
  background: var(--foam);
  border-radius: 40% 40% 12px 12px;
  transition: height 1.1s ease .9s;
}
.glass.filled .glass-foam { height: 22%; }
.glass-foam span {
  position: absolute;
  top: -9px;
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--foam);
}
.glass-foam span:nth-child(1) { left: -2px; }
.glass-foam span:nth-child(2) { left: 22px; top: -14px; width: 30px; height: 30px; }
.glass-foam span:nth-child(3) { left: 52px; top: -8px; }
.glass-foam span:nth-child(4) { left: 76px; top: -15px; width: 32px; height: 32px; }
.glass-foam span:nth-child(5) { right: -4px; top: -6px; }

.glass-shine {
  position: absolute;
  top: 0; left: 16px;
  width: 16px; height: 100%;
  background: linear-gradient(180deg, #ffffff30, #ffffff08);
  border-radius: 10px;
}
.handle {
  position: absolute;
  right: -36px; top: 46px;
  width: 46px; height: 92px;
  border: 4px solid #ffffff2e;
  border-left: 0;
  border-radius: 0 26px 26px 0;
}

/* ---------- Prost-Button ---------- */
.prost {
  margin-top: 28px;
  font-family: "Bricolage Grotesque", sans-serif;
  font-weight: 700;
  font-size: 1.15rem;
  color: #2a1a05;
  background: linear-gradient(180deg, #ffc84d, var(--beer) 55%, var(--beer-deep));
  border: 0;
  border-radius: 999px;
  padding: 15px 38px;
  cursor: pointer;
  box-shadow: 0 10px 28px #f2a41340, inset 0 1px 0 #fff9;
  transition: transform .12s ease, box-shadow .25s ease;
}
.prost:hover { transform: translateY(-2px); box-shadow: 0 14px 34px #f2a41360, inset 0 1px 0 #fff9; }
.prost:active { transform: translateY(1px) scale(.97); }
.prost.clink { animation: clink .5s ease; }
@keyframes clink {
  0%,100% { transform: rotate(0); }
  25% { transform: rotate(-7deg) scale(1.06); }
  60% { transform: rotate(6deg) scale(1.03); }
}

.counter {
  color: var(--muted);
  font-size: .92rem;
  margin: 14px 0 0;
  min-height: 1.5em;
}

/* ---------- Refrain ---------- */
.chant {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: clamp(40px, 8vw, 72px) var(--gutter);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #00000030;
}
.chant-text {
  font-family: "Bricolage Grotesque", sans-serif;
  font-weight: 800;
  font-size: clamp(1.5rem, 6.5vw, 3.2rem);
  letter-spacing: -.02em;
  color: var(--foam);
  margin: 0;
  min-height: 2.6em;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  text-wrap: balance;
}
.caret {
  display: inline-block;
  width: .08em;
  height: 1em;
  background: var(--beer);
  animation: blink 1s steps(2) infinite;
}
@keyframes blink { 50% { opacity: 0; } }
.chant-credit { color: var(--muted); font-size: .85rem; margin: 18px 0 0; }

/* ---------- Inhalt ---------- */
main {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 0 auto;
  padding: clamp(40px, 8vw, 72px) var(--gutter);
  display: grid;
  gap: clamp(24px, 5vw, 40px);
}

.card {
  background: linear-gradient(180deg, #ffffff0a, #ffffff04);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: clamp(24px, 5vw, 40px);
}

h2 {
  font-family: "Bricolage Grotesque", sans-serif;
  font-weight: 800;
  font-size: clamp(1.6rem, 5vw, 2.2rem);
  letter-spacing: -.02em;
  margin: 0;
}
h3 {
  font-family: "Bricolage Grotesque", sans-serif;
  font-size: 1.05rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--beer);
  margin: 0 0 12px;
}
.lead { color: var(--muted); margin: 6px 0 26px; }

.verse {
  font-family: "Bricolage Grotesque", sans-serif;
  font-size: clamp(1.05rem, 3.6vw, 1.3rem);
  line-height: 1.55;
  margin: 0 0 22px;
  padding-left: 16px;
  border-left: 3px solid #f2a41355;
}
.verse.highlight {
  border-left-color: var(--beer);
  color: var(--foam);
  margin-bottom: 0;
}

.video {
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: 14px;
  overflow: hidden;
  background: #000;
  border: 1px solid var(--line);
}
.video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.meta { color: var(--muted); font-size: .95rem; margin: 18px 0 0; }
.meta strong { color: var(--text); }

.lyrics {
  margin-top: 32px;
  padding-top: 26px;
  border-top: 1px dashed var(--line);
}
.lyrics p {
  font-family: "Bricolage Grotesque", sans-serif;
  font-size: 1.05rem;
  line-height: 1.8;
  margin: 0;
}
.lyrics-placeholder { color: var(--muted); }

footer {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 40px var(--gutter) 56px;
  color: var(--muted);
  font-size: .9rem;
  border-top: 1px solid var(--line);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  h1 span, .hero-sub, .glass-wrap { opacity: 1; }
}

.lyrics-text {
  color: var(--text);
}
.lyrics-text + .lyrics-text { margin-top: 1.4em; }
