@charset "UTF-8";
/* BizzoCasino Magyarország — casinobizzohungary.com */
/* == BREAKPOINT MIXINS == */
/* ------------- PALETTE „Tokaj" — casinobizzohungary.com -------------
   mély bortónusú alap + magyar zöld CTA + meleg arany és paprikapiros kiemelés */
:root {
  /* háttér */
  --wine-base: #3a1220;
  --wine-deep: #2a0c17;
  --wine-core: #3a1220;
  --wine-panel: #54202f;
  --wine-panel-alt: #4a1a29;
  --wine-row: #401524;
  /* szöveg */
  --ink-bright: #fff7f0;
  --ink-body: #f3dfe0;
  --ink-soft: #c1949a;
  --ink-invert: #2a0c17;
  /* kiemelő színek */
  --tone-gold: #f2b41c;
  --tone-amber: #c06a12;
  --tone-sun: #ffd257;
  --tone-paprika: #e0472c;
  --tone-badge: #e0472c;
  --tone-live: #ff6b5c;
  --tone-green: #43c46a;
  /* színátmenetek */
  --sweep-cta: linear-gradient(180deg, #43c46a 0%, #10793f 100%);
  --sweep-cta-over: linear-gradient(180deg, #10793f 0%, #43c46a 100%);
  --sweep-panel: linear-gradient(180deg, #54202f 0%, #38111e 100%);
  --sweep-gold: linear-gradient(180deg, #ffd257 0%, #c06a12 100%);
  --sweep-bar: linear-gradient(90deg, #ffd257 0%, #a8760f 100%);
  --sweep-head: linear-gradient(135deg, #6b2635 0%, #431520 100%);
  /* vonalak és keretek */
  --edge: rgba(246, 224, 226, 0.13);
  --edge-lit: rgba(242, 180, 28, 0.42);
  /* geometria */
  --bend: 7px;
  --bend-lg: 14px;
  --bend-xl: 20px;
  --bend-media: 12px;
  /* mozgás */
  --ease-main: 0.26s cubic-bezier(0.2, 0.8, 0.3, 1);
}

/* == RESET == */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  min-width: 320px;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
figure,
blockquote {
  margin: 0;
  padding: 0;
}

ul,
ol {
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
}

img,
svg,
video {
  max-width: 100%;
  height: auto;
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  cursor: pointer;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

input,
textarea,
select {
  font: inherit;
}

/* == FONTS: self-hosted Poppins + Darumadrop One == */
@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/Poppins-400-latin.woff2") format("woff2");
}
@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/Poppins-600-latin.woff2") format("woff2");
}
@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/Poppins-700-latin.woff2") format("woff2");
}
@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../fonts/Poppins-800-latin.woff2") format("woff2");
}
@font-face {
  font-family: "Darumadrop One";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/DarumadropOne-400-latin.woff2") format("woff2");
}
/* --------------GLOBAL-------------- */
html {
  scroll-behavior: smooth;
  /* 64px header + 20px gap = top edge of the sidebar */
  scroll-padding-top: 84px;
}

body {
  background: radial-gradient(58% 34% at 82% 2%, rgba(224, 71, 44, 0.13) 0%, transparent 100%), radial-gradient(46% 30% at 8% 24%, rgba(242, 180, 28, 0.07) 0%, transparent 100%), linear-gradient(175deg, #3e1421 0%, var(--wine-base, #3a1220) 52%, #2a0c17 100%), var(--wine-core, #3a1220);
  font-family: "Poppins", "Segoe UI", sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-bright);
  text-align: left;
  min-height: 100vh;
  overflow-x: hidden;
  hyphens: none;
  overflow-wrap: break-word;
}

p {
  margin-top: 20px;
  width: 100%;
}
p:first-child {
  margin-top: 0;
}

.title + p {
  margin-top: 0;
}

ul,
ol {
  text-align: left;
  width: 100%;
}

/* ----------------Content---------------- */
.panel,
.spread {
  display: flex;
  align-items: center;
  flex-direction: column;
  width: 100%;
  overflow: hidden;
  position: relative;
}

.panel {
  display: flex;
  padding: 20px;
  margin-top: 20px;
  border-radius: var(--bend, 4px);
  background: var(--sweep-panel, linear-gradient(180deg, #54202f 0%, #38111e 100%));
  border: 1px solid var(--edge, rgba(246, 224, 226, 0.12));
}
@media (max-width: 850px) {
  .panel {
    padding: 15px;
  }
}
@media (max-width: 450px) {
  .panel {
    padding: 10px;
  }
}

.panel-bg > .layer + * {
  margin-top: 0;
}
.panel-bg p {
  color: var(--ink-bright, #fff7f0);
}

.spread {
  padding-left: 20px;
  padding-right: 20px;
}
@media (min-width: 1580px) {
  .spread {
    padding-left: calc(50% - 790px);
    padding-right: calc(50% - 790px);
  }
}

.panel > *,
.spread > * {
  display: block;
  position: relative;
}

.shell__buttons {
  display: none;
}
@media (max-width: 650px) {
  .shell__buttons {
    background: rgba(42, 12, 23, 0.85);
    backdrop-filter: blur(4px);
    display: flex;
    justify-content: space-between;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10;
    padding: 15px;
  }
}
@media (max-width: 450px) {
  .shell__buttons {
    padding-left: 10px;
    padding-right: 10px;
  }
}

/* ----------------Main------------- */
.shell {
  position: relative;
  margin: 0 auto;
  display: flex;
}
.shell__wrap {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  max-width: 1480px;
  width: 100%;
  margin: 0 auto;
  /* 64px — fixed header height */
  padding: 64px 10px 48px;
}
.shell__content {
  position: relative;
  flex: 1 1 calc(100% - 20px - 248px);
  min-width: 0;
  overflow: hidden;
  padding-bottom: 0;
}
@media (max-width: 1050px) {
  .shell__content {
    flex: 1 1 100%;
  }
}
@media (max-width: 650px) {
  .shell__buttons .button {
    width: calc(50% - 4px);
    padding-left: 12px;
    padding-right: 12px;
    margin: 0;
    min-width: 0;
  }
}

@media (max-width: 850px) {
  .shell,
  .topbar,
  .foot {
    padding-left: 0;
    padding-right: 0;
  }
}
/* ---------------------H2 H3--------------------- */
h2,
h3,
h4,
.panel:not(.hero) h1 {
  display: block;
  color: var(--tone-gold, #f2b41c);
  font-family: "Poppins", "Segoe UI", sans-serif;
  font-weight: 700;
  line-height: 150%;
  text-transform: uppercase;
  text-align: left;
  position: relative;
  width: 100%;
  word-break: break-word;
}

p {
  color: var(--ink-body, #f3dfe0);
  font-family: "Poppins", "Segoe UI", sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.6;
}

/* heading ornaments */
h2::before,
h2::after,
.panel:not(.hero) h1::before,
.panel:not(.hero) h1::after,
h3::before {
  content: "";
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  height: 17px;
  width: 83px;
}

h2,
.panel:not(.hero) h1 {
  align-self: center;
  font-weight: 700;
  font-size: 28px;
  text-align: center;
  padding: 6px 128px;
  width: auto;
  margin: 0 0 20px;
}
h2::before, h2::after,
.panel:not(.hero) h1::before,
.panel:not(.hero) h1::after {
  width: 116px;
  height: 39px;
}
h2,
.panel:not(.hero) h1 {
  /* one ornament asset, mirrored on the right side */
}
h2::before, h2::after,
.panel:not(.hero) h1::before,
.panel:not(.hero) h1::after {
  background-image: url("data:image/svg+xml,%3Csvg width='116' height='39' viewBox='0 0 116 39' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='15.5' width='8' height='8' rx='4' fill='%23F2B41C'/%3E%3Crect x='13' y='18' width='60' height='3' rx='1.5' fill='%23FFF7F0'/%3E%3Cpath d='M76 8 L88 19.5 L76 31 Z' fill='%23F2B41C'/%3E%3Cpath d='M103 7 L115 19.5 L103 32 L91 19.5 Z' stroke='%23FFF7F0' stroke-width='1.5'/%3E%3C/svg%3E");
}
h2::before,
.panel:not(.hero) h1::before {
  left: 0;
}
h2::after,
.panel:not(.hero) h1::after {
  right: 0;
  transform: scaleX(-1);
}
@media (max-width: 850px) {
  h2,
  .panel:not(.hero) h1 {
    font-size: 26px;
  }
}
@media (max-width: 650px) {
  h2,
  .panel:not(.hero) h1 {
    font-size: 24px;
    padding: 0;
  }
  h2::before, h2::after,
  .panel:not(.hero) h1::before,
  .panel:not(.hero) h1::after {
    display: none;
  }
}
@media (max-width: 450px) {
  h2,
  .panel:not(.hero) h1 {
    font-size: 22px;
  }
}

/* the element after a heading with margin-bottom must NOT add its own margin-top —
   otherwise the gap doubles */
.panel h2 + p,
.panel h2 + .pair,
.panel h2 + .bullets,
.panel h2 + .walkthrough,
.panel h2 + .gridbox,
.panel h2 + div:has(> table),
.panel > h2 + .slotph,
.panel h2 + .qa__list,
.panel h2 + .voices__carousel,
.panel h2 + .updown__cols,
.panel h2 + img,
.panel h3 + .pair,
.panel h3 + .bullets,
.panel h3 + .walkthrough,
.panel h3 + .gridbox,
.panel h3 + div:has(> table),
.panel > h3 + .slotph,
.panel h3 + img {
  margin-top: 0;
}

h2 + p,
.panel:not(.hero) h1 + p {
  margin-top: 0;
}

h3 {
  font-weight: 800;
  font-size: 20px;
  padding: 2px 0 2px 79px;
  margin-top: 20px;
  margin-bottom: 20px;
}
h3:first-child {
  margin-top: 0;
}
h3::before {
  background-image: url("data:image/svg+xml,%3Csvg width='64' height='19' viewBox='0 0 64 19' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='8.5' width='32' height='2' rx='1' fill='%23F2B41C'/%3E%3Cpath d='M34 3.5 L41 9.5 L34 15.5 Z' fill='%23F2B41C'/%3E%3Cpath d='M52 2 L59.5 9.5 L52 17 L44.5 9.5 Z' stroke='%23FFF7F0'/%3E%3C/svg%3E%0A");
  left: 0;
  width: 64px;
  height: 19px;
}
@media (max-width: 650px) {
  h3 {
    padding-left: 60px;
  }
  h3::before {
    width: 50px;
    height: 15px;
  }
}
@media (max-width: 450px) {
  h3 {
    font-size: 18px;
    padding: 0;
  }
  h3::before {
    display: none;
  }
}

h3 + p {
  margin-top: 0;
}

h4 {
  font-family: "Poppins", "Segoe UI", sans-serif;
  color: var(--tone-gold, #f2b41c);
  font-weight: 700;
  font-size: 18px;
  line-height: 1.3;
  margin-top: 20px;
  margin-bottom: 8px;
  text-transform: none;
}
@media (max-width: 450px) {
  h4 {
    font-size: 16px;
  }
}

h4 + p {
  margin-top: 0;
}

h5 {
  font-weight: 700;
  font-size: 16px;
  line-height: normal;
}

/* ---------------------SPECIAL--------------------- */
.figurebox img,
.layer img {
  display: block;
  position: relative;
  margin: auto;
}

.layer {
  display: block !important;
  position: absolute !important;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}
.layer img,
.layer video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.hook-drawer {
  display: none;
  overflow: hidden;
}
.hook-drawer.expanded {
  height: 100%;
}

svg {
  display: inline-block;
  position: relative;
  vertical-align: inherit;
  fill: rgb(255, 247, 240);
  line-height: 1;
}

use {
  fill: rgb(255, 247, 240);
  fill-rule: evenodd;
  transition: all 0.5s;
}

.path {
  fill: inherit;
  stroke: inherit;
  stroke-width: inherit;
}

/* == Shared content patterns == */
/* scroll-padding already gives 84px (sidebar level) — sections need no extra offset */
section[id] {
  scroll-margin-top: 0;
}

/* anchor on an h2 inside a card: +20px compensates the section padding
   so the card top lands exactly on the sidebar line */
.panel h2[id] {
  scroll-margin-top: 20px;
}

/* illustration inside a content section:
   `:where()` adds no specificity, so blocks can easily override this rule */
.panel img:not(:where(.icon, .wordmark, .pennant, .pay)) {
  width: 100%;
  height: clamp(360px, 32vw, 480px);
  object-fit: cover;
  object-position: top;
  border-radius: var(--bend-media, 12px);
  display: block;
}
@media (max-width: 850px) {
  .panel img:not(:where(.icon, .wordmark, .pennant, .pay)) {
    height: 300px;
  }
}
@media (max-width: 767px) {
  .panel img:not(:where(.icon, .wordmark, .pennant, .pay)) {
    height: 220px;
  }
}

/* media layers (section/banner backgrounds) fill the container and are exempt from the clamp */
.panel .layer img,
.panel .layer video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  border-radius: 0;
}

/* ul list — tulip-shield bullet in a gold frame, warm wine card with a gold rail */
.bullets {
  margin-top: 20px;
  position: relative;
}
.bullets:first-child, h3 + .bullets, h2 + .bullets, p + .bullets {
  margin-top: 14px;
}
.bullets > li {
  background: linear-gradient(100deg, rgba(84, 32, 47, 0.95) 0%, #401524 62%);
  border-left: 3px solid var(--tone-gold, #f2b41c);
  border-radius: 0 var(--bend, 7px) var(--bend, 7px) 0;
  font-weight: 500;
  font-size: 15px;
  line-height: 150%;
  padding: 12px 14px;
  position: relative;
  margin-left: 51px;
  width: calc(100% - 51px);
  /* bold lead label of an item — gold for emphasis */
}
.bullets > li b,
.bullets > li strong {
  color: var(--tone-gold, #f2b41c);
}
.bullets > li + li {
  margin-top: 12px;
}
.bullets > li::before {
  content: "";
  background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 3 L34 11 V25 L20 37 L6 25 V11 Z' stroke='%23F2B41C' stroke-width='2.6' fill='none'/%3E%3Cpath d='M20 12 C24 15 24 22 20 27 C16 22 16 15 20 12 Z' fill='%23E0472C'/%3E%3C/svg%3E%0A");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  position: absolute;
  top: 0;
  bottom: 0;
  right: calc(100% + 12px);
  margin: auto;
  height: 40px;
  width: 40px;
}
@media (max-width: 650px) {
  .bullets > li {
    margin-left: 40px;
    width: calc(100% - 40px);
  }
  .bullets > li::before {
    right: calc(100% + 9px);
    height: 30px;
    width: 30px;
  }
}

/* two-column text + media split */
.pair {
  display: flex;
  gap: 20px;
  width: 100%;
  margin-top: 20px;
  align-items: stretch;
}
.pair > div {
  flex: 1 1 0;
  min-width: 0;
}
@media (max-width: 850px) {
  .pair {
    flex-direction: column;
  }
}

/* phase-1 image placeholder: keeps the exact proportions of the future file
   (aspect-ratio modifiers) */
.slotph {
  display: block;
  position: relative;
  width: 100%;
  border-radius: var(--bend-media, 12px);
  border: 1px dashed rgba(242, 180, 28, 0.35);
  background: repeating-linear-gradient(135deg, rgba(242, 180, 28, 0.06) 0 12px, transparent 12px 24px), rgba(42, 12, 23, 0.6);
  overflow: hidden;
}
.slotph::after {
  content: attr(data-slot);
  display: block;
  padding: 10px;
  font-size: 11px;
  line-height: 1.4;
  color: var(--ink-soft, #c1949a);
  word-break: break-all;
}
.slotph--16x9 {
  aspect-ratio: 16/9;
}
.slotph--21x9 {
  aspect-ratio: 21/9;
}
.slotph--4x3 {
  aspect-ratio: 4/3;
}
.slotph--3x1 {
  aspect-ratio: 3/1;
}
.slotph--3x4 {
  aspect-ratio: 3/4;
}
.slotph--1x1 {
  aspect-ratio: 1/1;
}
.slotph--fill {
  position: absolute;
  inset: 0;
  height: 100%;
  aspect-ratio: auto;
  border-radius: 0;
  border: 0;
}

/* spacing for media in the section flow (placeholder or real photo);
   no margin inside .pair columns — otherwise the photo drops below the text */
.panel > .slotph,
.panel > img:not(:where(.icon, .wordmark, .pennant, .pay)) {
  margin-top: 20px;
}

/* split text column — content vertically centered.
   The columns are picked by CONTENT, not by order, so the photo may sit either
   left or right of the text in the markup without any extra class. */
.pair > div:not(.layer):not(:has(> img)):not(:has(> .slotph)) {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* split photo column — media fills the full height of the text column */
.pair > div:not(.layer):is(:has(> img), :has(> .slotph)) {
  position: relative;
  overflow: hidden;
  border-radius: var(--bend-media, 12px);
  min-height: 260px;
}
.pair > div:not(.layer):is(:has(> img), :has(> .slotph)) .slotph,
.pair > div:not(.layer):is(:has(> img), :has(> .slotph)) img:not(:where(.icon, .wordmark)) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center top;
  margin: 0;
}
@media (max-width: 850px) {
  .pair > div:not(.layer):is(:has(> img), :has(> .slotph)) {
    min-height: 300px;
  }
}
@media (max-width: 767px) {
  .pair > div:not(.layer):is(:has(> img), :has(> .slotph)) {
    min-height: 220px;
  }
}

/* on a narrow screen the photo always drops BELOW its text, whatever the
   markup order — keeps the reading rhythm identical across the site */
@media (max-width: 850px) {
  .pair > div:not(.layer):is(:has(> img), :has(> .slotph)) {
    order: 2;
  }
}
/* full-bleed illustration: breaks out of the section padding and runs the
   whole width of the card */
.panel > .bleed {
  width: calc(100% + 40px);
  margin-left: -20px;
  margin-right: -20px;
  border-radius: var(--bend-media, 12px);
  height: clamp(300px, 26vw, 400px);
}
@media (max-width: 850px) {
  .panel > .bleed {
    width: calc(100% + 30px);
    margin-left: -15px;
    margin-right: -15px;
  }
}
@media (max-width: 450px) {
  .panel > .bleed {
    width: calc(100% + 20px);
    margin-left: -10px;
    margin-right: -10px;
  }
}

/* structural blocks */
/* == HEADER == */
.topbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  background: linear-gradient(180deg, #451826 0%, #2a0c17 100%);
  border-bottom: 1px solid rgba(242, 180, 28, 0.35);
}
.topbar__wrap {
  display: flex;
  align-items: center;
  max-width: 1480px;
  margin: 0 auto;
  padding: 0 10px;
  min-height: 64px;
  gap: 20px;
}
.topbar__logo {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  width: 238px;
}
.topbar__logo img {
  height: 40px;
  width: auto;
  display: block;
}
@media (max-width: 1050px) {
  .topbar__logo {
    width: auto;
  }
}
.topbar__nav {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1 1 auto;
  min-width: 0;
}
.topbar__nav a {
  padding: 8px 12px;
  border-radius: var(--bend-lg, 10px);
  color: var(--ink-bright, #fff7f0);
  font-weight: 600;
  font-size: 15px;
  transition: color var(--ease-main), background var(--ease-main);
}
.topbar__nav a.current {
  color: var(--tone-gold, #f2b41c);
}
@media (hover: hover) {
  .topbar__nav a:hover {
    color: var(--tone-gold, #f2b41c);
    background: rgba(246, 224, 226, 0.06);
  }
}
.topbar__nav {
  /* diamond separator between menu items */
}
.topbar__nav a + a {
  position: relative;
  margin-left: 14px;
}
.topbar__nav a + a::before {
  content: "";
  position: absolute;
  left: -12px;
  top: 50%;
  width: 6px;
  height: 6px;
  transform: translateY(-50%) rotate(45deg);
  background: rgba(242, 180, 28, 0.5);
  border-radius: 1px;
}
@media (max-width: 900px) {
  .topbar__nav {
    display: none;
  }
}
.topbar__right {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-left: auto;
  flex: 0 0 auto;
}
.topbar__clock {
  font-size: 16px;
  font-weight: 700;
  color: var(--ink-body, #f3dfe0);
  font-variant-numeric: tabular-nums;
}
.topbar__lang {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 700;
  color: var(--ink-bright, #fff7f0);
}
.topbar__lang .pennant {
  font-size: 22px;
  line-height: 1;
}
.topbar__lang img {
  width: 26px;
  height: 26px;
  border-radius: 100%;
  object-fit: cover;
  display: block;
}
.topbar__buttons {
  display: flex;
  align-items: center;
  gap: 8px;
}
@media (max-width: 900px) {
  .topbar__buttons {
    display: none;
  }
}
.topbar {
  /* burger: yellow border, SVG bars morph into a cross */
}
.topbar__burger {
  display: none;
  border: 2px solid var(--tone-gold, #f2b41c);
  padding: 10px;
  border-radius: 10px;
  width: 40px;
  height: 40px;
  flex: 0 0 auto;
}
.topbar__burger svg {
  display: block;
  margin: auto;
  width: 16px;
  height: 16px;
  fill: none;
}
.topbar__burger svg rect {
  transform-origin: 50% 50%;
  transition: all 0.5s;
  fill: var(--tone-gold, #f2b41c);
}
.topbar__burger.is-open svg rect:nth-child(1) {
  x: -2px;
  y: 6px;
  width: 20px;
  transform: rotate(225deg);
}
.topbar__burger.is-open svg rect:nth-child(2) {
  transform: scale(0, 2);
}
.topbar__burger.is-open svg rect:nth-child(3) {
  x: -2px;
  y: 6px;
  width: 20px;
  transform: rotate(135deg);
}
@media (max-width: 900px) {
  .topbar__burger {
    display: block;
  }
}

/* scroll progress bar under the header */
.read-bar {
  position: fixed;
  top: 64px;
  left: 0;
  right: 0;
  z-index: 48;
  height: 3px;
  background: rgba(242, 180, 28, 0.12);
  pointer-events: none;
}
.read-bar span {
  display: block;
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, #f2b41c 0%, #c06a12 100%);
  border-radius: 0 3px 3px 0;
  box-shadow: 0 0 8px rgba(242, 180, 28, 0.55);
  transition: width 0.12s linear;
}

/* mobile menu — dropdown panel under the header */
.drawer {
  position: fixed;
  top: 64px;
  left: 0;
  right: 0;
  z-index: 49;
  background: #401524;
  text-align: center;
  max-height: 0;
  overflow: hidden;
  visibility: hidden;
  padding: 0 25px;
  transition: max-height 0.5s ease, visibility 0.5s ease, padding 0.5s ease;
}
.drawer.is-open {
  max-height: calc(100vh - 64px);
  max-height: calc(100dvh - 64px);
  overflow: auto;
  visibility: visible;
  padding: 25px;
}
.drawer__links {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.drawer__links a {
  display: block;
  position: relative;
  font-weight: 600;
  font-size: 16px;
  line-height: 1;
  color: var(--ink-bright, #fff7f0);
  transition: color var(--ease-main);
}
.drawer__links a.current {
  font-weight: 700;
  color: var(--tone-gold, #f2b41c);
}
.drawer__links a:hover {
  color: var(--tone-gold, #f2b41c);
}
.drawer__links a {
  /* diamond separator below each item */
}
.drawer__links a:not(:last-child) {
  margin-bottom: 25px;
  padding-bottom: 37px;
}
.drawer__links a:not(:last-child)::after {
  content: "";
  background-image: url("data:image/svg+xml,%3Csvg width='30' height='12' viewBox='0 0 30 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect opacity='0.4' y='6' width='8' height='1' fill='url(%23paint0_linear_3530_3408)'/%3E%3Crect opacity='0.4' x='22' y='6' width='8' height='1' fill='url(%23paint1_linear_3530_3408)'/%3E%3Crect x='15' y='0.707107' width='6.99997' height='7.00001' transform='rotate(45 15 0.707107)' stroke='%23F2B41C'/%3E%3Crect x='15' y='4.24264' width='1.99998' height='2.00002' transform='rotate(45 15 4.24264)' fill='%23F2B41C'/%3E%3Cdefs%3E%3ClinearGradient id='paint0_linear_3530_3408' x1='0' y1='6.5' x2='8' y2='6.5' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23FFF7F0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint1_linear_3530_3408' x1='30' y1='6.5' x2='22' y2='6.5' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23FFF7F0'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E%0A");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  height: 12px;
  width: 30px;
}
.drawer__buttons {
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 10px;
  margin-top: 30px;
}

body.locked {
  overflow: hidden;
  overscroll-behavior: none;
}

/* == BUTTONS == */
/* pulsing CTA glow */
@keyframes hu-glow-green {
  0%, 100% {
    box-shadow: 0 0 10px rgba(16, 121, 63, 0.45), 0 6px 18px -6px rgba(16, 121, 63, 0.55);
  }
  50% {
    box-shadow: 0 0 24px rgba(120, 232, 150, 0.8), 0 6px 22px -6px rgba(16, 121, 63, 0.7);
  }
}
@keyframes hu-glow-gold {
  0%, 100% {
    box-shadow: 0 0 10px rgba(242, 180, 28, 0.4), 0 8px 20px -8px rgba(242, 180, 28, 0.55);
  }
  50% {
    box-shadow: 0 0 24px rgba(255, 210, 87, 0.75), 0 8px 24px -8px rgba(242, 180, 28, 0.7);
  }
}
/* header, login — secondary button: transparent with a yellow border */
.topbar__login {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 92px;
  height: 41px;
  padding: 0 18px;
  border-radius: var(--bend-lg, 10px);
  border: 1px solid rgba(242, 180, 28, 0.6);
  background: transparent;
  color: var(--ink-bright, #fff7f0);
  font-family: "Poppins", "Segoe UI", sans-serif;
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  transition: background var(--ease-main), border-color var(--ease-main), color var(--ease-main);
}
@media (hover: hover) {
  .topbar__login:hover {
    background: rgba(242, 180, 28, 0.12);
    border-color: var(--tone-gold, #f2b41c);
    color: var(--tone-gold, #f2b41c);
  }
}
.topbar__login:focus-visible {
  outline: 2px solid var(--tone-gold, #f2b41c);
  outline-offset: 2px;
}

/* header, sign-up — primary button: green gradient */
.topbar__signup {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 41px;
  padding: 0 24px;
  border-radius: var(--bend-lg, 10px);
  background: var(--sweep-cta, linear-gradient(180deg, #43c46a 0%, #10793f 100%));
  color: var(--ink-invert, #2a0c17);
  font-family: "Poppins", "Segoe UI", sans-serif;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  box-shadow: 0 6px 18px -6px rgba(16, 121, 63, 0.55);
  animation: hu-glow-green 2.8s ease-in-out infinite;
  transition: filter var(--ease-main), transform var(--ease-main);
}
@media (hover: hover) {
  .topbar__signup:hover {
    filter: brightness(1.07);
    transform: translateY(-1px);
    box-shadow: 0 10px 24px -8px rgba(16, 121, 63, 0.7);
  }
}
.topbar__signup:focus-visible {
  outline: 2px solid var(--tone-gold, #f2b41c);
  outline-offset: 2px;
}

/* content, main CTA — green gradient with a sheen highlight */
.cta__button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 34px;
  margin-top: 20px;
  border-radius: var(--bend-lg, 10px);
  background: var(--sweep-cta, linear-gradient(180deg, #43c46a 0%, #10793f 100%));
  color: var(--ink-invert, #2a0c17);
  font-family: "Poppins", "Segoe UI", sans-serif;
  font-size: 15px;
  font-weight: 700;
  overflow: hidden;
  box-shadow: 0 10px 26px -10px rgba(16, 121, 63, 0.65);
  animation: hu-glow-green 2.8s ease-in-out infinite;
  transition: filter var(--ease-main), transform var(--ease-main);
}
.cta__button::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -60%;
  width: 40%;
  background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.45), transparent);
  transform: skewX(-18deg);
  animation: hu-cta-sheen 4.8s ease-in-out infinite;
  pointer-events: none;
}
@media (hover: hover) {
  .cta__button:hover {
    filter: brightness(1.08);
    transform: translateY(-2px);
    box-shadow: 0 14px 30px -10px rgba(16, 121, 63, 0.8);
  }
}
.cta__button:focus-visible {
  outline: 2px solid var(--tone-gold, #f2b41c);
  outline-offset: 2px;
}

@keyframes hu-cta-sheen {
  0%, 62% {
    left: -60%;
    opacity: 0;
  }
  68% {
    opacity: 1;
  }
  86%, 100% {
    left: 130%;
    opacity: 0;
  }
}
/* content, download — yellow store button */
.store__button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: 268px;
  max-width: 100%;
  height: 56px;
  padding: 12px 24px;
  margin-top: 20px;
  border-radius: var(--bend-lg, 10px);
  background: linear-gradient(180deg, #ffd257 0%, #d9a41a 100%);
  color: var(--ink-invert, #2a0c17);
  font-family: "Poppins", "Segoe UI", sans-serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
  box-shadow: 0 8px 20px -8px rgba(242, 180, 28, 0.55);
  animation: hu-glow-gold 3.4s ease-in-out infinite;
  transition: filter var(--ease-main), transform var(--ease-main);
}
.store__button svg {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  fill: var(--ink-invert, #2a0c17);
}
@media (hover: hover) {
  .store__button:hover {
    filter: brightness(1.06);
    transform: translateY(-2px);
  }
}
.store__button:focus-visible {
  outline: 2px solid var(--ink-bright, #fff7f0);
  outline-offset: 2px;
}

/* buttons in content flow — aligned left */
.panel > .cta__button,
.panel > .store__button {
  align-self: flex-start;
}

/* download button placed directly in a section: standard 268×56 size, not 100%
   (overrides the generic .panel > * { display: block }) */
.panel > .store__button {
  display: inline-flex;
  width: 268px;
}

/* row of download buttons: spacing via margins only, no gap */
.store-line {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  width: 100%;
}
.store-line .store__button {
  margin: 20px 14px 0 0;
}

/* == SIDEBAR == */
.rail {
  flex: 0 0 248px;
  width: 248px;
  position: sticky;
  top: 84px;
  max-height: calc(100vh - 104px);
  overflow-y: auto;
  scrollbar-width: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 14px 12px;
  border-radius: var(--bend-xl, 20px);
  background: linear-gradient(200deg, #5b2432 0%, #33111d 100%);
  border: 1px solid var(--edge, rgba(246, 224, 226, 0.12));
  border-top: 2px solid var(--edge-lit, rgba(242, 180, 28, 0.42));
}
.rail::-webkit-scrollbar {
  display: none;
}
@media (max-width: 1050px) {
  .rail {
    display: none;
  }
}

/* two feature buttons: Fortune Wheel + Missions (styling and animation from casinobizzo.ie) */
.rail__promos {
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.rail__feature {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  height: 52px;
  padding: 0 12px 0 0;
  display: flex;
  align-items: center;
  gap: 5px;
  color: #2a0c17;
  background: linear-gradient(180deg, #ffd257 0%, #f2b41c 48%, #c06a12 100%);
  border: 1px solid rgba(255, 226, 150, 0.55);
  border-radius: var(--bend, 7px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 7px 18px rgba(0, 0, 0, 0.2);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.15;
  transition: filter 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
  /* sheen highlight sweeping across the button on hover */
}
.rail__feature::after {
  content: "";
  position: absolute;
  z-index: 1;
  pointer-events: none;
  top: -55%;
  bottom: -55%;
  left: -55%;
  width: 34%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.52), transparent);
  transform: skewX(-20deg);
  transition: left 0.42s ease;
}
@media (hover: hover) {
  .rail__feature:hover {
    filter: brightness(1.1) saturate(1.08);
    transform: translateY(-1px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 15px rgba(242, 180, 28, 0.5);
  }
  .rail__feature:hover::after {
    left: 125%;
  }
  .rail__feature:hover .wheelspin__wheel {
    animation-duration: 1.25s;
    filter: brightness(1.08) drop-shadow(0 2px 4px rgba(57, 6, 22, 0.5));
  }
  .rail__feature:hover .crate {
    transform: translateY(-2px) scale(1.04);
  }
}
.rail__feature:active {
  transform: translateY(1px) scale(0.99);
}

/* wheel: the disc spins continuously under a static frame */
.wheelspin {
  position: relative;
  width: 58px;
  height: 52px;
  display: block;
  align-self: stretch;
  flex: 0 0 auto;
}
.wheelspin img {
  position: absolute;
  left: 50%;
  top: 50%;
  max-width: none;
}
.wheelspin__wheel {
  width: 44px;
  height: 44px;
  animation: hu-wheel-spin 3.2s linear infinite;
  filter: drop-shadow(0 2px 3px rgba(57, 6, 22, 0.42));
}
.wheelspin__frame {
  z-index: 2;
  width: 50px;
  height: 50px;
  transform: translate(-50%, -49%);
  filter: drop-shadow(0 2px 3px rgba(55, 14, 24, 0.5));
}

@keyframes hu-wheel-spin {
  from {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
/* Missions chest */
.crate {
  width: 49px;
  height: 49px;
  flex: 0 0 auto;
  margin: 0 0 0 5px;
  object-fit: contain;
  transition: transform 0.2s ease;
}

.rail__menu {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--edge, rgba(246, 224, 226, 0.12));
  padding-top: 8px;
}
.rail__menu li a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 8px;
  border-radius: var(--bend-lg, 10px);
  color: var(--ink-body, #f3dfe0);
  font-size: 14px;
  font-weight: 600;
  transition: background var(--ease-main), color var(--ease-main);
}
.rail__menu li a svg {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  fill: none;
  stroke: var(--tone-gold, #f2b41c);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
@media (hover: hover) {
  .rail__menu li a:hover {
    background: rgba(246, 224, 226, 0.08);
    color: var(--ink-bright, #fff7f0);
  }
}
.rail__menu .pill {
  margin-left: auto;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 100%;
  background: var(--tone-badge, #e0472c);
  color: var(--ink-bright, #fff7f0);
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Application card: text + phone in the corner */
.rail__app {
  display: block;
  background-color: #4a1a29;
  border-top: 2px solid var(--edge-lit, rgba(242, 180, 28, 0.42));
  border-radius: var(--bend, 7px);
  box-shadow: 1px 3px 0 0 #2c0e19;
  position: relative;
  padding: 21px 75px 18px 12px;
  transition: color var(--ease-main);
}

.rail-app__text {
  font-size: 9px;
  color: var(--ink-soft, #c1949a);
  line-height: 12px;
  transition: color var(--ease-main);
}
.rail-app__text span {
  font-weight: 900;
  font-size: 16px;
  color: var(--ink-bright, #fff);
  line-height: 100%;
  display: block;
  margin-bottom: 5px;
  transition: color var(--ease-main);
}

@media (hover: hover) {
  .rail__app:hover .rail-app__text,
  .rail__app:hover .rail-app__text span {
    color: var(--tone-gold, #f2b41c);
  }
}
.rail-app__img {
  max-width: 75px;
  position: absolute;
  bottom: 0;
  right: 7px;
}
.rail-app__img img {
  display: block;
}

/* == Navigation (TOC) == */
.jump {
  border-top: 1px solid var(--edge, rgba(246, 224, 226, 0.12));
  padding-top: 10px;
}
.jump__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 6px 8px;
  border-radius: var(--bend-lg, 10px);
  color: var(--tone-gold, #f2b41c);
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  transition: background var(--ease-main);
}
.jump__toggle::after {
  content: "";
  width: 9px;
  height: 9px;
  border-right: 2px solid var(--tone-gold, #f2b41c);
  border-bottom: 2px solid var(--tone-gold, #f2b41c);
  transform: rotate(45deg);
  transition: transform 0.3s ease;
  margin-right: 4px;
}
.jump__toggle.is-open::after {
  transform: rotate(-135deg);
}
@media (hover: hover) {
  .jump__toggle:hover {
    background: rgba(246, 224, 226, 0.06);
  }
}
.jump__list {
  display: flex;
  flex-direction: column;
  max-height: 0;
  overflow: hidden;
  visibility: hidden;
  margin-top: 0;
  scrollbar-width: none;
  transition: max-height 0.45s ease, visibility 0.45s ease, margin-top 0.45s ease;
}
.jump__list::-webkit-scrollbar {
  display: none;
}
.jump__list.is-open {
  max-height: 56vh;
  overflow-y: auto;
  visibility: visible;
  margin-top: 6px;
}
.jump__list a {
  display: block;
  padding: 7px 10px;
  border-radius: 6px;
  font-size: 14px;
  color: var(--ink-body, #f3dfe0);
  transition: background var(--ease-main), color var(--ease-main);
}
@media (hover: hover) {
  .jump__list a:hover {
    background: rgba(246, 224, 226, 0.07);
    color: var(--tone-gold, #f2b41c);
  }
}

/* mobile TOC below the hero */
.jump--inline {
  display: none;
  border: 1px solid var(--edge, rgba(246, 224, 226, 0.12));
  border-radius: var(--bend-lg, 10px);
  background: linear-gradient(200deg, #5b2432 0%, #33111d 100%);
  padding: 8px 10px;
  margin-top: 20px;
}
@media (max-width: 1050px) {
  .jump--inline {
    display: block;
  }
}

/* == FOOTER == */
.foot {
  padding: 40px 20px 26px;
  background: linear-gradient(180deg, #3c1421 0%, #2a0c17 100%);
  border-top: 1px solid var(--edge, rgba(246, 224, 226, 0.12));
}
.foot__wrap {
  max-width: 1480px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 26px;
}
.foot {
  /* country chips */
}
.foot__geo {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 9px;
}
.foot__geo a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px 6px 7px;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--edge, rgba(246, 224, 226, 0.12));
  font-size: 12.5px;
  color: var(--ink-body, #f3dfe0);
  transition: border-color var(--ease-main), background var(--ease-main), color var(--ease-main);
}
.foot__geo a span.pennant {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 100%;
  overflow: hidden;
  font-size: 14px;
  line-height: 1;
  background: rgba(255, 255, 255, 0.08);
}
@media (hover: hover) {
  .foot__geo a:hover {
    border-color: rgba(242, 180, 28, 0.5);
    background: rgba(242, 180, 28, 0.08);
    color: var(--tone-gold, #f2b41c);
  }
}
.foot__divider {
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(242, 180, 28, 0.45) 50%, transparent 100%);
}
.foot__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  row-gap: 10px;
}
.foot__links a {
  padding: 0 14px;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--ink-body, #f3dfe0);
  transition: color var(--ease-main);
}
@media (hover: hover) {
  .foot__links a:hover {
    color: var(--tone-gold, #f2b41c);
  }
}
.foot__links a + a {
  border-left: 1px solid rgba(242, 180, 28, 0.4);
}
.foot {
  /* payment logos */
}
.foot__pay {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
}
.foot__pay li {
  background-color: #fff;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 80px;
  width: 122px;
}
.foot__pay li img {
  display: block;
  max-height: 45px;
  width: auto;
}
.foot__copy {
  flex: 1 0 100%;
  order: 3;
  margin: 0;
  font-size: 12px;
  color: var(--ink-soft, #c1949a);
}
.foot__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  border-top: 1px solid var(--edge, rgba(246, 224, 226, 0.12));
  padding-top: 20px;
}
@media (max-width: 650px) {
  .foot__bottom {
    flex-direction: column;
    text-align: center;
  }
}
.foot__disclaimer {
  max-width: 860px;
  font-size: 12.5px;
  color: var(--ink-soft, #c1949a);
}
.foot__disclaimer b {
  display: block;
  color: var(--ink-body, #f3dfe0);
  margin-top: 8px;
}
.foot__age {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--sweep-gold, linear-gradient(180deg, #ffd257 0%, #c06a12 100%));
  color: var(--ink-invert, #2a0c17);
  font-size: 15px;
  font-weight: 800;
  box-shadow: 0 0 22px rgba(192, 106, 18, 0.45);
  animation: hu-age-glow 4s ease-in-out infinite;
}

@keyframes hu-age-glow {
  0%, 100% {
    box-shadow: 0 0 14px rgba(192, 106, 18, 0.35);
  }
  50% {
    box-shadow: 0 0 26px rgba(192, 106, 18, 0.6);
  }
}
/* == SCROLL TO TOP == */
.to-top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 40;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--sweep-cta, linear-gradient(180deg, #43c46a 0%, #10793f 100%));
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease, box-shadow var(--ease-main);
  box-shadow: 0 8px 20px -8px rgba(16, 121, 63, 0.7);
}
.to-top svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: var(--ink-invert, #2a0c17);
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
@media (hover: hover) {
  .to-top:hover {
    box-shadow: 0 12px 26px -8px rgba(16, 121, 63, 0.9);
  }
}
@media (max-width: 650px) {
  .to-top {
    bottom: 30px;
  }
}

/* == #prelink (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == COOKIE BANNER == */
.consent {
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 60;
  display: none;
  align-items: center;
  gap: 16px;
  max-width: 860px;
  margin: 0 auto;
  padding: 14px 18px;
  border-radius: var(--bend-xl, 14px);
  border: 1px solid rgba(242, 180, 28, 0.4);
  background: rgba(42, 12, 23, 0.96);
  backdrop-filter: blur(6px);
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.5);
}
.consent.is-visible {
  display: flex;
}
.consent p {
  margin: 0;
  font-size: 12.5px;
  color: var(--ink-body, #f3dfe0);
}
.consent p a {
  color: var(--tone-gold, #f2b41c);
  text-decoration: underline;
}
.consent__actions {
  display: flex;
  gap: 8px;
  flex: 0 0 auto;
}
.consent__accept {
  padding: 9px 18px;
  border-radius: var(--bend-lg, 10px);
  background: var(--sweep-cta, linear-gradient(180deg, #43c46a 0%, #10793f 100%));
  color: var(--ink-invert, #2a0c17);
  font-weight: 700;
  font-size: 13px;
  transition: filter var(--ease-main);
}
@media (hover: hover) {
  .consent__accept:hover {
    filter: brightness(1.08);
  }
}
.consent__decline {
  padding: 9px 14px;
  border-radius: var(--bend-lg, 10px);
  border: 1px solid var(--edge, rgba(246, 224, 226, 0.25));
  color: var(--ink-soft, #c1949a);
  font-weight: 600;
  font-size: 13px;
  transition: color var(--ease-main), border-color var(--ease-main);
}
@media (hover: hover) {
  .consent__decline:hover {
    color: var(--ink-bright, #fff7f0);
    border-color: var(--ink-bright, #fff7f0);
  }
}
@media (max-width: 650px) {
  .consent {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
  }
  .consent__actions {
    justify-content: center;
  }
}

/* == WELCOME SPLASH (created by JS on top of the visible page) == */
.splash-veil {
  position: fixed;
  inset: 0;
  z-index: 9999;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(26, 7, 14, 0.72) 0%, rgba(42, 12, 23, 0.85) 100%), var(--wine-base, #3a1220);
  background-size: cover;
  background-position: center top;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 1;
  transition: opacity 0.5s ease;
}
.splash-veil.is-leaving {
  opacity: 0;
  pointer-events: none;
}
.splash-veil__letters {
  position: relative;
  display: flex;
  gap: 0.06em;
  font-family: "Darumadrop One", "Poppins", "Segoe UI", sans-serif;
  font-size: clamp(44px, 9vw, 110px);
  color: var(--tone-gold, #f2b41c);
  text-shadow: 0 4px 0 rgba(150, 82, 14, 0.8), 0 10px 30px rgba(0, 0, 0, 0.6);
}
.splash-veil span {
  display: inline-block;
  animation: hu-letter-fly var(--fly-dur, 1.4s) cubic-bezier(0.22, 0.85, 0.3, 1) both;
  animation-delay: var(--fly-delay, 0s);
}
.splash-veil {
  /* locale row: flag + country, fades in after the letters */
}
.splash-veil__geo {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 18px;
  font-family: "Poppins", "Segoe UI", sans-serif;
  font-size: clamp(16px, 2.4vw, 24px);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-bright, #fff7f0);
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.6);
  opacity: 0;
  animation: hu-geo-reveal 0.4s ease-out 1.3s forwards;
}
.splash-veil__geo .pennant {
  font-size: 1.35em;
  line-height: 1;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.5));
}

@keyframes hu-geo-reveal {
  from {
    opacity: 0;
    transform: translateY(14px) scale(0.92);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
/* == page-transition mini loader == */
.page-fade {
  position: fixed;
  inset: 0;
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(46% 42% at 50% 50%, rgba(84, 32, 47, 0.9) 0%, rgba(42, 12, 23, 0.97) 100%), var(--wine-base, #3a1220);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease;
}
.page-fade.is-on {
  opacity: 1;
  pointer-events: auto;
}
.page-fade.muted {
  opacity: 0;
  transition: opacity 0.45s ease;
}
.page-fade__wheel {
  position: relative;
  width: 92px;
  height: 96px;
  filter: drop-shadow(0 8px 26px rgba(242, 180, 28, 0.35));
}
.page-fade__wheel img {
  position: absolute;
  left: 50%;
  top: 50%;
  max-width: none;
}
.page-fade__wheel .page-fade__disc {
  width: 72px;
  height: 72px;
  animation: hu-wheel-spin 1.1s linear infinite;
}
.page-fade__wheel .page-fade__frame {
  width: 88px;
  height: 92px;
  transform: translate(-50%, -49%);
}

@keyframes hu-letter-fly {
  0% {
    transform: translate(var(--fly-x, 0), var(--fly-y, 0)) rotate(var(--fly-r, 0deg)) scale(1.6);
    opacity: 0;
  }
  60% {
    opacity: 1;
  }
  100% {
    transform: translate(0, 0) rotate(0deg) scale(1);
    opacity: 1;
  }
}
/* content blocks */
/* == HERO (#hero) == */
.hero {
  position: relative;
  overflow: hidden;
  min-height: 480px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  margin: 10px 0 0;
  padding: 0;
  border-radius: var(--bend-xl, 14px);
  background: #2a0c17;
  /* scrim over the background image */
}
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(91deg, rgba(26, 7, 14, 0.85) 0%, rgba(26, 7, 14, 0.45) 45%, transparent 72%);
  pointer-events: none;
}
.hero .layer {
  z-index: 0;
  /* the character stands on the right of the frame — stays in view as the viewport narrows */
}
.hero .layer img,
.hero .layer video,
.hero .layer .slotph {
  object-position: 90% top;
}
.hero__wrap {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  max-width: 840px;
  width: 100%;
  margin-right: auto;
  padding: 34px 30px;
  border-radius: 10px;
}
@media (max-width: 850px) {
  .hero__wrap {
    background: rgba(42, 12, 23, 0.7);
    backdrop-filter: blur(2px);
    /* stretch respects margins — equal offsets on the left and right */
    width: auto;
    align-self: stretch;
    margin: 20px;
    padding: 24px 20px;
  }
}
@media (max-width: 650px) {
  .hero__wrap {
    align-items: center;
    text-align: center;
    margin: 15px;
  }
}
.hero__rating {
  font-size: 14px;
  color: var(--ink-soft, #c1949a);
}
.hero__rating b {
  color: var(--tone-gold, #f2b41c);
  font-size: 22px;
  font-weight: 800;
  margin-left: 6px;
}
.hero__breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  width: auto;
  font-size: 13px;
  color: var(--ink-soft, #c1949a);
}
.hero__breadcrumbs a {
  color: var(--tone-gold, #f2b41c);
  transition: color var(--ease-main);
}
@media (hover: hover) {
  .hero__breadcrumbs a:hover {
    color: var(--ink-bright, #fff7f0);
  }
}
.hero__breadcrumbs li + li::before {
  content: "›";
  margin-right: 6px;
  color: var(--ink-soft, #c1949a);
}
.hero h1 {
  margin-top: 14px;
  font-family: "Poppins", "Segoe UI", sans-serif;
  font-size: 34px;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--ink-bright, #fff7f0);
}
@media (max-width: 850px) {
  .hero h1 {
    font-size: 28px;
  }
}
@media (max-width: 650px) {
  .hero h1 {
    font-size: 26px;
  }
}
@media (max-width: 450px) {
  .hero h1 {
    font-size: 24px;
  }
}
.hero__text {
  margin-top: 12px;
  max-width: 620px;
  font-size: 14px;
  color: var(--ink-body, #f3dfe0);
}
@media (max-width: 767px) {
  .hero {
    min-height: 420px;
  }
}

/* == #crumbs (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == BONUS BANNER: framed card over a background image == */
.pitch {
  justify-content: center;
  align-items: flex-start;
  min-height: 425px;
  padding: 20px 20px 20px 6.2%;
  border: 1px solid var(--edge, rgba(246, 224, 226, 0.12));
}
.pitch__bg {
  display: block;
  position: absolute;
  inset: 0;
  z-index: 0;
}
.pitch__bg img,
.pitch__bg .slotph {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  border-radius: 0;
  margin: 0;
}
@media (max-width: 850px) {
  .pitch__bg img,
  .pitch__bg .slotph {
    object-position: 95%;
  }
}
.pitch__wrap {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  border: 2px solid rgba(242, 180, 28, 0.6);
  border-radius: 12px;
  padding: 32px 20px;
  max-width: 653px;
  width: 100%;
}
.pitch__title {
  display: block;
  color: var(--tone-gold, #f2b41c);
  font-weight: 700;
  font-size: 31px;
  line-height: 150%;
  text-transform: uppercase;
  text-align: center;
}
@media (max-width: 850px) {
  .pitch__title {
    font-size: 28px;
  }
}
@media (max-width: 650px) {
  .pitch__title {
    font-size: 24px;
  }
}
@media (max-width: 450px) {
  .pitch__title {
    font-size: 22px;
  }
}
.pitch__text {
  position: relative;
  width: auto;
  margin-top: 20px;
  padding: 8px 131px;
  color: var(--ink-bright, #fff7f0);
  font-weight: 900;
  font-size: 20px;
  line-height: 115%;
  text-transform: uppercase;
}
.pitch__text::before, .pitch__text::after {
  content: "";
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  height: 39px;
  width: 116px;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
}
.pitch__text::before {
  background-image: url("data:image/svg+xml,%3Csvg width='116' height='39' viewBox='0 0 116 39' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='9' height='9' transform='matrix(1 0 0 -1 0 24)' fill='%23F2B41C'/%3E%3Crect x='2.12132' width='23.9973' height='23.9973' transform='matrix(0.707107 0.707107 0.707107 -0.707107 78.0313 18)' stroke='%23F2B41C' stroke-width='3'/%3E%3Crect x='0.707107' width='13.9977' height='13.9977' transform='matrix(0.707107 0.707107 0.707107 -0.707107 70.5471 19)' stroke='%23FFF7F0'/%3E%3Crect width='81' height='1' transform='matrix(1 0 0 -1 9 20)' fill='%23FFF7F0'/%3E%3C/svg%3E%0A");
  left: 0;
}
.pitch__text::after {
  background-image: url("data:image/svg+xml,%3Csvg width='116' height='39' viewBox='0 0 116 39' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='116' y='24' width='9' height='9' transform='rotate(180 116 24)' fill='%23F2B41C'/%3E%3Crect x='36.4686' y='19.5' width='23.9973' height='23.9973' transform='rotate(135 36.4686 19.5)' stroke='%23F2B41C' stroke-width='3'/%3E%3Crect x='44.9529' y='19.5' width='13.9977' height='13.9977' transform='rotate(135 44.9529 19.5)' stroke='%23FFF7F0'/%3E%3Crect x='107' y='20' width='81' height='1' transform='rotate(180 107 20)' fill='%23FFF7F0'/%3E%3C/svg%3E%0A");
  right: 0;
}
@media (max-width: 650px) {
  .pitch__text {
    font-size: 18px;
    padding: 8px 0;
  }
  .pitch__text::before, .pitch__text::after {
    display: none;
  }
}
.pitch__button {
  min-width: 153px;
  margin-top: 20px;
}
@media (max-width: 850px) {
  .pitch {
    min-height: 300px;
    padding: 20px;
    align-items: center;
  }
  .pitch__wrap {
    background-color: rgba(58, 18, 32, 0.3);
    backdrop-filter: blur(4px);
    border: 1px solid rgba(242, 180, 28, 0.6);
    border-radius: 6px;
    padding: 15px;
  }
}

/* == TABLES: flex rows, paprika head, striped wine body, horizontal scroll == */
.panel div:has(> table),
.panel .gridbox {
  width: 100%;
  margin-top: 20px;
  border-radius: var(--bend, 7px);
  font-size: 15px;
  color: var(--ink-bright, #fff7f0);
  overflow: auto;
  position: relative;
  border: 1px solid var(--edge, rgba(246, 224, 226, 0.13));
  scrollbar-width: thin;
  scrollbar-color: #c06a12 rgba(246, 224, 226, 0.16);
}
.panel div:has(> table)::-webkit-scrollbar,
.panel .gridbox::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
.panel div:has(> table)::-webkit-scrollbar-track,
.panel .gridbox::-webkit-scrollbar-track {
  background: rgba(246, 224, 226, 0.16);
  border-radius: 6px;
}
.panel div:has(> table)::-webkit-scrollbar-thumb,
.panel .gridbox::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #f2b41c 0%, #c06a12 100%);
  border-radius: 6px;
}
.panel div:has(> table) > table,
.panel .gridbox > table {
  width: 100%;
  border-collapse: collapse;
}
.panel div:has(> table) > table tr,
.panel .gridbox > table tr {
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 14px 18px;
}
.panel div:has(> table) > table tr + tr,
.panel .gridbox > table tr + tr {
  margin-top: 0;
}
.panel div:has(> table) > table tr > *,
.panel .gridbox > table tr > * {
  flex: 1;
  padding: 0;
  text-align: left;
}
.panel div:has(> table) > table thead tr,
.panel .gridbox > table thead tr {
  background: linear-gradient(180deg, #e0472c 0%, #96262e 100%);
  border-bottom: 2px solid var(--tone-gold, #f2b41c);
  line-height: 140%;
  color: #fff7f0;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.panel div:has(> table) > table th,
.panel .gridbox > table th {
  font-weight: 700;
}
.panel div:has(> table) > table,
.panel .gridbox > table {
  /* striped body — every second row a shade lighter */
}
.panel div:has(> table) > table tbody tr,
.panel .gridbox > table tbody tr {
  background: #401524;
  line-height: 22px;
}
.panel div:has(> table) > table tbody tr:nth-child(even),
.panel .gridbox > table tbody tr:nth-child(even) {
  background: #4a1a29;
}
.panel div:has(> table) > table td a,
.panel .gridbox > table td a {
  color: var(--tone-gold, #f2b41c);
  text-decoration: underline;
}
.panel div:has(> table) > table,
.panel .gridbox > table {
  /* min-width, not width: the table fills the wrapper when there is room
     and only starts scrolling once the columns no longer fit */
}
@media (max-width: 850px) {
  .panel div:has(> table) > table,
  .panel .gridbox > table {
    min-width: 880px;
  }
}
.panel {
  /* a table sharing a .pair row with a photo grows to the photo's height,
     so the two columns end up the same size */
}
.panel .pair > div:has(> .gridbox) > .gridbox {
  margin-top: 0;
  flex: 1 1 auto;
  display: flex;
}
.panel .pair > div:has(> .gridbox) > .gridbox > table {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
}
.panel .pair > div:has(> .gridbox) > .gridbox > table thead,
.panel .pair > div:has(> .gridbox) > .gridbox > table tbody {
  display: flex;
  flex-direction: column;
}
.panel .pair > div:has(> .gridbox) > .gridbox > table tbody,
.panel .pair > div:has(> .gridbox) > .gridbox > table tbody tr {
  flex: 1 1 auto;
}
.panel {
  /* kv tables: FIRST ROW acts as the header, the rest regular */
}
.panel .gridbox--kv > table tbody tr:first-child {
  background: linear-gradient(180deg, #e0472c 0%, #96262e 100%);
  border-bottom: 2px solid var(--tone-gold, #f2b41c);
}
.panel .gridbox--kv > table tbody tr:first-child th,
.panel .gridbox--kv > table tbody tr:first-child td {
  color: #fff7f0;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.panel {
  /* kv rows: the label column stays narrower than the value column */
}
.panel .gridbox--kv > table tbody tr > th {
  flex: 0 0 34%;
  color: var(--tone-gold, #f2b41c);
  font-weight: 600;
}
.panel .gridbox--kv > table tbody tr:first-child > th {
  color: #fff7f0;
}
.panel {
  /* narrow key-value tables may shrink on mobile */
}
@media (max-width: 850px) {
  .panel .gridbox--kv > table {
    min-width: 640px;
  }
}

/* == NUMBERED STEPS: ol, number in a diamond frame == */
.walkthrough {
  margin-top: 14px;
  position: relative;
  counter-reset: hu-step;
}
.walkthrough > li {
  counter-increment: hu-step;
  background: linear-gradient(100deg, rgba(84, 32, 47, 0.95) 0%, #401524 62%);
  border-radius: var(--bend, 7px);
  font-weight: 500;
  font-size: 15px;
  line-height: 150%;
  padding: 12px 14px;
  position: relative;
  margin-left: 51px;
  width: calc(100% - 51px);
  /* bold step lead label — yellow */
}
.walkthrough > li b,
.walkthrough > li strong {
  color: var(--tone-gold, #f2b41c);
}
.walkthrough > li + li {
  margin-top: 12px;
}
.walkthrough > li::before {
  content: counter(hu-step);
  background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 3 L34 11 V25 L20 37 L6 25 V11 Z' stroke='%23F2B41C' stroke-width='2.6' fill='rgba(224,71,44,0.18)'/%3E%3C/svg%3E%0A");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  position: absolute;
  top: 0;
  bottom: 0;
  right: calc(100% + 12px);
  margin: auto;
  height: 40px;
  width: 40px;
  font-weight: 700;
  font-size: 15px;
  color: #f2b41c;
  line-height: 1;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media (max-width: 650px) {
  .walkthrough > li {
    margin-left: 40px;
    width: calc(100% - 40px);
  }
  .walkthrough > li::before {
    right: calc(100% + 9px);
    height: 30px;
    width: 30px;
    font-size: 13px;
  }
}

/* == #snapshot (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #info (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #legal (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #technical (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #traits (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == PROS / CONS (#updown) == */
.updown__cols {
  display: flex;
  gap: 16px;
  width: 100%;
  margin-top: 14px;
}
.updown__cols > div {
  flex: 1 1 0;
  min-width: 0;
  padding: 18px;
  border-radius: var(--bend-xl, 14px);
  border: 1px solid var(--edge, rgba(246, 224, 226, 0.12));
  background: rgba(42, 12, 23, 0.55);
}
.updown__cols > div h3 {
  margin-top: 0;
}
.updown__cols > div li {
  position: relative;
  padding: 8px 0 8px 26px;
}
.updown__cols > div li::before {
  position: absolute;
  left: 0;
  top: 8px;
  font-weight: 800;
  font-size: 15px;
}
.updown__cols > div:first-child li::before {
  content: "+";
  color: #7fe3a0;
}
.updown__cols > div:last-child li::before {
  content: "−";
  color: var(--tone-live, #ff6b5c);
}
@media (max-width: 850px) {
  .updown__cols {
    flex-direction: column;
  }
}

/* == #signup — registration steps in a card over a background photo.
   The card treatment only kicks in when the photo is a full-bleed `.layer`
   layer; with a side-by-side photo column the shared .pair grid handles it. == */
.signup .pair:has(> .layer) {
  position: relative;
  overflow: hidden;
  border-radius: var(--bend-lg, 10px);
  padding: 40px;
}
.signup .pair:has(> .layer) > div:not(.layer) {
  position: relative;
  z-index: 1;
  flex: 0 1 auto;
  max-width: 680px;
  background: rgba(84, 32, 47, 0.7);
  backdrop-filter: blur(6px);
  border-radius: var(--bend-lg, 10px);
  padding: 20px;
}
@media (max-width: 850px) {
  .signup .pair:has(> .layer) {
    padding: 24px 16px;
  }
  .signup .pair:has(> .layer) > div:not(.layer) {
    max-width: 100%;
  }
}
@media (max-width: 650px) {
  .signup .pair:has(> .layer) {
    padding: 14px 10px;
  }
  .signup .pair:has(> .layer) > div:not(.layer) {
    padding: 15px;
  }
}

/* == #trouble (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #handheld == */
.handheld .pair > div:has(> img) .slotph,
.handheld .pair > div:has(> img) img:not(:where(.icon, .wordmark)) {
  object-position: center;
}

/* app page: full-bleed background photo, text card on the left (like #loyalty) */
.view-app .handheld {
  position: relative;
  overflow: hidden;
  border-radius: var(--bend-lg, 10px);
  padding: 60px;
}
.view-app .handheld > div:not(.layer) {
  position: relative;
  z-index: 1;
  max-width: 820px;
  margin-right: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: rgba(84, 32, 47, 0.7);
  backdrop-filter: blur(6px);
  border-radius: var(--bend-lg, 10px);
  padding: 20px;
}
.view-app .handheld > div:not(.layer) > h2 {
  align-self: center;
}
@media (max-width: 850px) {
  .view-app .handheld {
    padding: 40px 20px;
  }
  .view-app .handheld > div:not(.layer) {
    max-width: 100%;
  }
}
@media (max-width: 650px) {
  .view-app .handheld {
    padding: 20px 12px;
  }
  .view-app .handheld > div:not(.layer) {
    padding: 15px;
  }
}

/* == APP PROMO BLOCK == */
.panel.handheld-promo {
  height: 350px;
  padding: 0;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(242, 180, 28, 0.3);
}
@media (max-width: 850px) {
  .panel.handheld-promo {
    height: auto;
    min-height: 280px;
    padding: 40px 20px;
  }
}
@media (max-width: 450px) {
  .panel.handheld-promo {
    padding: 30px 10px;
  }
}

.handheld-promo__bg {
  z-index: 0;
}
.handheld-promo__bg img,
.handheld-promo__bg .slotph {
  object-position: center;
}
.handheld-promo__bg {
  /* darkening only in the center — edges stay clear for the characters */
}
.handheld-promo__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(58% 72% at 50% 50%, rgba(42, 12, 23, 0.72) 0%, rgba(42, 12, 23, 0.38) 62%, rgba(42, 12, 23, 0) 100%);
}
.handheld-promo__actions {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, 15vw, 320px);
  width: 100%;
}
@media (max-width: 850px) {
  .handheld-promo__actions {
    flex-direction: column;
    gap: 18px;
  }
}
.handheld-promo__button {
  white-space: normal;
  line-height: 1.2;
  /* same centred two-line label as every other download button */
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: 268px;
  min-width: 0;
  max-width: 100%;
  height: 56px;
  min-height: 0;
  padding: 12px 24px;
  margin: 0;
}
.handheld-promo__button svg {
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
}

/* == #offers (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #loyalty (home page) — full-bleed background photo, text in a framed card on top;
   on the bonus page the block keeps its standard look == */
.view-home .loyalty {
  position: relative;
  overflow: hidden;
  border-radius: var(--bend-lg, 10px);
  padding: 60px;
}
.view-home .loyalty > div:not(.layer) {
  position: relative;
  z-index: 1;
  max-width: 820px;
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: rgba(84, 32, 47, 0.7);
  backdrop-filter: blur(6px);
  border-radius: var(--bend-lg, 10px);
  padding: 20px;
}
.view-home .loyalty > div:not(.layer) > h2 {
  align-self: center;
}
.view-home .loyalty > div:not(.layer) > .cta__button {
  margin-top: 20px;
}
@media (max-width: 850px) {
  .view-home .loyalty {
    padding: 40px 20px;
  }
  .view-home .loyalty > div:not(.layer) {
    max-width: 100%;
  }
}
@media (max-width: 650px) {
  .view-home .loyalty {
    padding: 20px 12px;
  }
  .view-home .loyalty > div:not(.layer) {
    padding: 15px;
  }
}

/* == #contests (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #reels (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #tabletop (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* the "Regeln" column is twice as wide as its neighbors so rows don't stretch */
.tabletop .gridbox > table tr > *:nth-child(2) {
  flex: 2;
}

/* == #livedesk — full-bleed background photo, text in a framed card on top (like #loyalty) == */
.livedesk {
  position: relative;
  overflow: hidden;
  border-radius: var(--bend-lg, 10px);
  padding: 60px;
}
.livedesk > div:not(.layer) {
  position: relative;
  z-index: 1;
  max-width: 820px;
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: rgba(84, 32, 47, 0.7);
  backdrop-filter: blur(6px);
  border-radius: var(--bend-lg, 10px);
  padding: 20px;
}
.livedesk > div:not(.layer) > h2 {
  align-self: center;
}
@media (max-width: 850px) {
  .livedesk {
    padding: 40px 20px;
  }
  .livedesk > div:not(.layer) {
    max-width: 100%;
  }
}
@media (max-width: 650px) {
  .livedesk {
    padding: 20px 12px;
  }
  .livedesk > div:not(.layer) {
    padding: 15px;
  }
}

/* == #legalstatus — full-bleed background photo, text card on the left == */
.legalstatus {
  position: relative;
  overflow: hidden;
  border-radius: var(--bend-lg, 10px);
  padding: 60px;
}
.legalstatus > div:not(.layer) {
  position: relative;
  z-index: 1;
  max-width: 820px;
  margin-right: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: rgba(84, 32, 47, 0.7);
  backdrop-filter: blur(6px);
  border-radius: var(--bend-lg, 10px);
  padding: 20px;
}
.legalstatus > div:not(.layer) > h2 {
  align-self: center;
}
@media (max-width: 850px) {
  .legalstatus {
    padding: 40px 20px;
  }
  .legalstatus > div:not(.layer) {
    max-width: 100%;
  }
}
@media (max-width: 650px) {
  .legalstatus {
    padding: 20px 12px;
  }
  .legalstatus > div:not(.layer) {
    padding: 15px;
  }
}

/* == #restrict (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #cashflow (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #helpdesk (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == FAQ ACCORDION == */
.qa__list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 14px;
}

.qa__item {
  border: 1px solid var(--tone-gold, #f2b41c);
  border-radius: var(--bend-xl, 14px);
  overflow: hidden;
  background: var(--wine-panel, #54202f);
  transition: border-color var(--ease-main);
}
.qa__item:has(.qa-item__title.active) {
  border-color: transparent;
}

.qa-item__title {
  position: relative;
  display: block;
  width: 100%;
  padding: 14px 46px 14px 16px;
  background: var(--wine-core, #3a1220);
  color: var(--ink-bright, #fff7f0);
  font-family: "Poppins", "Segoe UI", sans-serif;
  font-size: 15px;
  font-weight: 700;
  text-align: left;
  text-transform: none;
  transition: filter var(--ease-main);
}
.qa-item__title::after {
  content: "";
  position: absolute;
  right: 18px;
  top: 50%;
  width: 10px;
  height: 10px;
  margin-top: -8px;
  border-right: 2px solid var(--ink-bright, #fff7f0);
  border-bottom: 2px solid var(--ink-bright, #fff7f0);
  transform: rotate(45deg);
  transition: transform 0.3s ease, margin-top 0.3s ease;
}
.qa-item__title.active::after {
  transform: rotate(-135deg);
  margin-top: -2px;
}
@media (hover: hover) {
  .qa-item__title:hover {
    filter: brightness(1.05);
  }
}
@media (max-width: 850px) {
  .qa-item__title {
    font-size: 14px;
  }
}

.qa-item__desc {
  border-top: 1px solid var(--tone-gold, #f2b41c);
  padding: 0 16px;
}
.qa-item__desc p {
  padding: 14px 0;
  margin: 0;
}

/* == REVIEWS CAROUSEL == */
.voices__carousel {
  width: 100%;
  overflow: hidden;
  margin-top: 14px;
}

.voices__track {
  display: flex;
  gap: 20px;
  width: max-content;
}

/* reviewer avatar circle: holds initials while there is no photo;
   once a photo exists, just drop an <img> inside */
.voices__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  overflow: hidden;
  background: linear-gradient(180deg, #54202f 0%, #38111e 100%);
  border: 2px solid rgba(242, 180, 28, 0.6);
  box-shadow: 0 0 14px rgba(242, 180, 28, 0.25);
  color: var(--tone-gold, #f2b41c);
  font-weight: 800;
  font-size: 22px;
  letter-spacing: 0.04em;
}
.voices__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  border-radius: 50%;
}

.voices__card {
  flex: none;
  width: 416px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 20px;
  border-radius: var(--bend-xl, 14px);
  border: 1px solid rgba(242, 180, 28, 0.35);
  background: linear-gradient(180deg, rgba(84, 32, 47, 0.9) 0%, rgba(52, 18, 30, 0.9) 100%);
  box-shadow: 0 8px 24px -12px rgba(242, 180, 28, 0.25);
}
@media (max-width: 767px) {
  .voices__card {
    width: 320px;
  }
}
@media (max-width: 450px) {
  .voices__card {
    width: 260px;
  }
}
.voices__card .scorestars {
  display: flex;
  gap: 4px;
  width: auto;
}
.voices__card .scorestars svg {
  width: 18px;
  height: 18px;
  fill: var(--tone-gold, #f2b41c);
}
.voices__card .scorestars svg.muted {
  fill: rgba(246, 224, 226, 0.25);
}
.voices__card h3 {
  margin: 0;
  padding: 0;
  background: none;
  color: var(--tone-gold, #f2b41c);
  font-size: 16px;
  font-weight: 700;
  text-align: center;
  text-transform: uppercase;
}
.voices__card h3::before {
  display: none;
}
.voices__card p {
  margin: 0;
  font-size: 13.5px;
  text-align: center;
  color: var(--ink-body, #f3dfe0);
}

.voices__nav {
  display: flex;
  gap: 12px;
  margin-top: 18px;
}

.voices__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--ink-bright, #fff7f0);
  transition: transform var(--ease-main), box-shadow var(--ease-main);
}
.voices__btn svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: var(--ink-invert, #2a0c17);
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
@media (hover: hover) {
  .voices__btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 18px -8px rgba(255, 247, 240, 0.6);
  }
}

/* == #scorecard (Bewertung) == */
.scorecard table tbody td:nth-child(2) {
  white-space: nowrap;
  font-weight: 800;
  color: var(--tone-gold, #f2b41c);
}

/* narrow first two columns — all remaining width goes to Begründung */
.scorecard .gridbox tr > *:nth-child(1) {
  flex: 0 0 160px;
}

.scorecard .gridbox tr > *:nth-child(2) {
  flex: 0 0 70px;
}

.scorecard .gridbox tr > *:nth-child(3) {
  flex: 1 1 auto;
}

/* == EXPERT VERDICT (#closing-note): small photo on the left, byline + text + button on the right == */
.closing__row {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  width: 100%;
  /* top spacing comes from the h2's margin-bottom */
  margin-top: 0;
}

.closing__photo {
  flex: 0 0 150px;
}
.closing__photo img,
.closing__photo .slotph {
  width: 150px;
  height: 150px !important;
  aspect-ratio: 1/1;
  object-fit: cover;
  object-position: center top;
  border-radius: var(--bend-lg, 10px);
  margin: 0;
}

.closing__body {
  flex: 1 1 0;
  min-width: 0;
}
.closing__body h3 {
  margin-top: 0;
}
.closing__body p + p {
  margin-top: 20px;
}
.closing__body .cta__button {
  margin-top: 20px;
}

@media (max-width: 767px) {
  .closing__row {
    flex-direction: column;
    align-items: center;
  }
  .closing__photo {
    flex: 0 0 auto;
  }
  .closing__body {
    width: 100%;
    text-align: center;
  }
  .closing__body h3 {
    padding: 0;
  }
  .closing__body h3::before {
    display: none;
  }
  .closing__body .cta__button {
    margin-left: auto;
    margin-right: auto;
  }
}
/* == #opener — full-bleed background photo, text in a framed card on top (like #loyalty) == */
.opener {
  position: relative;
  overflow: hidden;
  border-radius: var(--bend-lg, 10px);
  padding: 60px;
}
.opener > div:not(.layer) {
  position: relative;
  z-index: 1;
  max-width: 820px;
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: rgba(84, 32, 47, 0.7);
  backdrop-filter: blur(6px);
  border-radius: var(--bend-lg, 10px);
  padding: 20px;
}
.opener > div:not(.layer) > h2 {
  align-self: center;
}
@media (max-width: 850px) {
  .opener {
    padding: 40px 20px;
  }
  .opener > div:not(.layer) {
    max-width: 100%;
  }
}
@media (max-width: 650px) {
  .opener {
    padding: 20px 12px;
  }
  .opener > div:not(.layer) {
    padding: 15px;
  }
}

/* == #firstoffer (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #topup (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #freespins (free spins) == */
/* Matched on content, not position — the photo may sit in either column.
   `top` keeps the character's head in frame when the box is wide and short. */
.freespins .pair > div:is(:has(> img), :has(> .slotph)) .slotph,
.freespins .pair > div:is(:has(> img), :has(> .slotph)) img:not(:where(.icon, .wordmark)) {
  object-position: center top;
}

/* == #refund == */
/*
  The illustration is 4:3. The generic `.pair` column is much wider than it is
  tall, so `cover` crops the top and bottom while `contain` shrinks the artwork
  too much. A dedicated aspect ratio shows the whole frame large, without empty
  bars. Matched on content — the photo may sit in either column.
*/
.refund .pair > div:is(:has(> img), :has(> .slotph)) {
  flex: 0 0 min(38%, 440px);
  min-height: 0;
  aspect-ratio: 4/3;
  align-self: center;
}
.refund .pair > div:is(:has(> img), :has(> .slotph)) img:not(:where(.icon, .wordmark)) {
  object-fit: cover;
  object-position: center;
}
.refund .pair > div:is(:has(> img), :has(> .slotph)) {
  /* stacked layout: behave like every other photo column — full width, height
     from the shared `.pair` rules, no narrow centred box */
}
@media (max-width: 850px) {
  .refund .pair > div:is(:has(> img), :has(> .slotph)) {
    flex: none;
    width: auto;
    align-self: auto;
    aspect-ratio: auto;
    min-height: 300px;
  }
}
@media (max-width: 767px) {
  .refund .pair > div:is(:has(> img), :has(> .slotph)) {
    min-height: 220px;
  }
}

/* == #limited (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #safeplay (app page) — full-bleed background photo, text card on the right (like #loyalty);
   on the bonus page the block keeps its standard look == */
.view-app .safeplay {
  position: relative;
  overflow: hidden;
  border-radius: var(--bend-lg, 10px);
  padding: 60px;
}
.view-app .safeplay > div:not(.layer) {
  position: relative;
  z-index: 1;
  max-width: 820px;
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: rgba(84, 32, 47, 0.7);
  backdrop-filter: blur(6px);
  border-radius: var(--bend-lg, 10px);
  padding: 20px;
}
.view-app .safeplay > div:not(.layer) > h2 {
  align-self: center;
}
@media (max-width: 850px) {
  .view-app .safeplay {
    padding: 40px 20px;
  }
  .view-app .safeplay > div:not(.layer) {
    max-width: 100%;
  }
}
@media (max-width: 650px) {
  .view-app .safeplay {
    padding: 20px 12px;
  }
  .view-app .safeplay > div:not(.layer) {
    padding: 15px;
  }
}

/* == #claim (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #setup — install steps in cards over background photos (like #signup) == */
.setup .pair:has(> .layer) {
  position: relative;
  overflow: hidden;
  border-radius: var(--bend-lg, 10px);
  padding: 40px;
}
.setup .pair:has(> .layer) > div:not(.layer) {
  position: relative;
  z-index: 1;
  flex: 0 1 auto;
  max-width: 680px;
  background: rgba(84, 32, 47, 0.7);
  backdrop-filter: blur(6px);
  border-radius: var(--bend-lg, 10px);
  padding: 20px;
}
@media (max-width: 850px) {
  .setup .pair:has(> .layer) {
    padding: 24px 16px;
  }
  .setup .pair:has(> .layer) > div:not(.layer) {
    max-width: 100%;
  }
}
.setup .pair:has(> .layer) {
  /* the two install blocks alternate sides: Android card left, iOS card right */
}
.setup .pair:has(> .layer):nth-of-type(even) > div:not(.layer) {
  margin-left: auto;
}
@media (max-width: 650px) {
  .setup .pair:has(> .layer) {
    padding: 14px 10px;
  }
  .setup .pair:has(> .layer) > div:not(.layer) {
    padding: 15px;
  }
}

/* == #perks (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #specs (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #devices (uses shared .panel / .bullets / .walkthrough / table patterns) == */
/* == #mobilesite (mobile web version — text-only section, no photo) == */
/* == 404 PAGE == */
.panel.nopage {
  min-height: 560px;
  padding: clamp(24px, 4vw, 52px);
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: clamp(24px, 5vw, 80px);
  text-align: center;
}
.panel.nopage::before {
  content: "";
  position: absolute;
  inset: auto 4% 0 auto;
  width: min(42vw, 520px);
  height: 72%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(224, 71, 44, 0.2), transparent 68%);
  pointer-events: none;
}

.nopage__copy {
  flex: 1 1 620px;
  max-width: 680px;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 1;
}
.nopage__copy p {
  max-width: 620px;
}
.nopage__character {
  position: relative;
  flex: 0 1 390px;
  align-self: stretch;
  min-height: 470px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  z-index: 1;
}
.nopage__speech {
  position: absolute;
  /* anchored to the container bottom: the owl is 470px tall and stands on the floor,
     so the bubble always sits by its head */
  top: auto;
  bottom: 445px;
  left: 0;
  z-index: 2;
  width: max-content;
  max-width: 240px;
  margin: 0;
  padding: 13px 20px;
  border: 2px solid var(--tone-gold, #f2b41c);
  border-radius: 22px;
  background: var(--ink-bright, #fff7f0);
  color: var(--ink-invert, #2a0c17);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  transform: rotate(-3deg);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.3);
}
.nopage__speech strong {
  color: #96262e;
}
.nopage__speech::after {
  content: "";
  position: absolute;
  right: 28px;
  bottom: -15px;
  width: 25px;
  height: 25px;
  background: var(--ink-bright, #fff7f0);
  border-right: 2px solid var(--tone-gold, #f2b41c);
  border-bottom: 2px solid var(--tone-gold, #f2b41c);
  transform: skew(18deg) rotate(38deg);
}
.panel .nopage__owl, .nopage__owl {
  width: min(100%, 360px);
  height: 470px;
  object-fit: contain;
  object-position: center bottom;
  border-radius: 0;
  filter: drop-shadow(0 16px 24px rgba(0, 0, 0, 0.42));
}

@media (max-width: 767px) {
  .panel.nopage {
    min-height: 0;
    flex-direction: column;
    gap: 12px;
  }
  .nopage {
    /* the __copy children become direct flex items of the section,
       so the button can be placed BELOW the character */
  }
  .nopage__copy {
    display: contents;
  }
  .nopage__copy h2 {
    order: 1;
  }
  .nopage__copy p {
    order: 2;
    width: 100%;
    max-width: 100%;
  }
  .nopage__character {
    order: 3;
    width: 100%;
    min-height: 350px;
    align-self: auto;
  }
  .nopage__copy .cta__button {
    order: 4;
  }
  .nopage__speech {
    /* mobile owl is 350px tall — the anchor is lowered accordingly */
    top: auto;
    bottom: 330px;
    left: 50%;
    transform: translateX(-85%) rotate(-3deg);
    font-size: 16px;
  }
  .panel .nopage__owl, .nopage__owl {
    width: min(100%, 280px);
    height: 350px;
  }
}
@media (max-width: 450px) {
  .nopage__speech {
    left: 8px;
    transform: rotate(-3deg);
  }
}
/* == SCRATCH TICKET == */
/* dock: arrow tab at the viewport edge + ticket that slides out */
.ticket-dock {
  /* ticket width incl. gaps — how far the dock hides past the edge */
  --shift: 118px;
  position: fixed;
  right: 0;
  top: 46%;
  z-index: 45;
  display: flex;
  align-items: center;
  transform: translateY(-50%);
  translate: var(--shift) 0;
  transition: translate 0.45s cubic-bezier(0.3, 1.25, 0.4, 1);
}
.ticket-dock.is-open {
  translate: 0 0;
}

.ticket-dock__toggle {
  flex: 0 0 auto;
  width: 30px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 10px 0 0 10px;
  background: var(--sweep-gold, linear-gradient(180deg, #ffd257 0%, #c06a12 100%));
  color: #2a0c17;
  cursor: pointer;
  box-shadow: -4px 0 14px rgba(242, 180, 28, 0.35);
}
.ticket-dock__toggle svg {
  fill: none;
  transition: transform 0.3s ease;
  animation: hu-arrow-nudge 1.5s ease-in-out infinite;
}
@media (hover: hover) {
  .ticket-dock__toggle:hover {
    filter: brightness(1.08);
  }
}

.ticket-dock.is-open .ticket-dock__toggle svg {
  transform: rotate(180deg);
  animation: none;
}

@keyframes hu-arrow-nudge {
  0%, 100% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(-4px);
  }
}
.ticket-launcher {
  position: relative;
  flex: 0 0 auto;
  width: 100px;
  aspect-ratio: 16/9;
  margin: 0 10px 0 8px;
  padding: 0;
  border: 0;
  background: transparent;
  filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.48));
  cursor: pointer;
  isolation: isolate;
  animation: hu-ticket-float 3.2s ease-in-out infinite;
}
.ticket-launcher img {
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
}
.ticket-launcher span {
  position: absolute;
  inset: 30% 20% 24%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Poppins", "Segoe UI", sans-serif;
  font-size: 9px;
  font-weight: 800;
  line-height: 1.05;
  text-align: center;
  text-transform: uppercase;
  color: #ffe3a0;
  text-shadow: 0 2px 5px rgba(0, 0, 0, 0.75);
}
@media (hover: hover) {
  .ticket-launcher:hover {
    animation-play-state: paused;
    filter: drop-shadow(0 12px 24px rgba(242, 180, 28, 0.42));
    transform: rotate(1deg) scale(1.06);
  }
}

@keyframes hu-ticket-float {
  0%, 100% {
    transform: rotate(-2deg);
  }
  50% {
    transform: translateY(-7px) rotate(1deg);
  }
}
.ticket {
  position: fixed;
  inset: 0;
  z-index: 70;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(26, 6, 14, 0.78);
  backdrop-filter: blur(3px);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.ticket.is-on {
  opacity: 1;
}

.ticket__card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(94vw, 760px);
  padding: 62px 88px 48px;
  background: url("../images/scratch-ticket.webp") center/100% 100% no-repeat;
  text-align: center;
  transform: rotate(-3deg);
  /* the glow follows the ticket outline (drop-shadow respects transparency) */
  filter: drop-shadow(0 24px 44px rgba(0, 0, 0, 0.55)) drop-shadow(0 0 20px rgba(242, 180, 28, 0.35));
  animation: hu-ticket-glow 2.6s ease-in-out infinite;
}

@keyframes hu-ticket-glow {
  0%, 100% {
    filter: drop-shadow(0 24px 44px rgba(0, 0, 0, 0.55)) drop-shadow(0 0 16px rgba(242, 180, 28, 0.3));
  }
  50% {
    filter: drop-shadow(0 24px 44px rgba(0, 0, 0, 0.55)) drop-shadow(0 0 36px rgba(242, 180, 28, 0.6));
  }
}
.ticket__brand {
  font-family: "Poppins", "Segoe UI", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #5b2432;
  margin: 0 0 6px;
}

.ticket__num {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.3em;
  color: #5b2432;
  margin-top: 14px;
}

.ticket__close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(42, 12, 23, 0.7);
  color: var(--ink-soft, #c1949a);
  font-size: 22px;
  line-height: 1;
  transition: color var(--ease-main), background var(--ease-main);
}
@media (hover: hover) {
  .ticket__close:hover {
    color: var(--ink-bright, #fff7f0);
    background: rgb(42, 12, 23);
  }
}

.ticket__title {
  font-family: "Poppins", "Segoe UI", sans-serif;
  font-size: 24px;
  font-weight: 800;
  text-transform: uppercase;
  color: #3e1421;
  margin: 0;
}

.ticket__sub {
  font-size: 13px;
  color: #6b2635;
  margin-top: 4px;
}

.ticket__zone {
  position: relative;
  width: 100%;
  aspect-ratio: 2/1;
  margin-top: 16px;
  border-radius: var(--bend-lg, 10px);
  overflow: hidden;
}

.ticket__prize {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  background: radial-gradient(60% 80% at 50% 0%, rgba(242, 180, 28, 0.15) 0%, transparent 100%), var(--wine-deep, #2a0c17);
  color: var(--ink-bright, #fff7f0);
  font-family: "Poppins", "Segoe UI", sans-serif;
  font-size: 17px;
  font-weight: 700;
}
.ticket__prize b {
  font-size: 54px;
  font-weight: 800;
  line-height: 1.1;
  color: var(--tone-gold, #f2b41c);
}
.ticket__prize span {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink-body, #f3dfe0);
}

.ticket__foil {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  touch-action: none;
  cursor: none;
  transition: opacity 0.6s ease;
}
.ticket__foil.is-cleared {
  opacity: 0;
  pointer-events: none;
}

/* coin "eraser" — follows the pointer over the foil */
.ticket__coin {
  position: absolute;
  top: 0;
  left: 0;
  width: 18px;
  height: 62px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 45%;
  background: linear-gradient(90deg, #7d4208 0%, #c06a12 12%, #ffe3a0 42%, #a85a10 70%, #63340a 100%);
  border: 2px solid #63340a;
  box-shadow: inset 3px 0 4px rgba(255, 255, 255, 0.55), inset -3px 0 4px rgba(78, 26, 8, 0.55), 5px 8px 12px rgba(0, 0, 0, 0.48);
  pointer-events: none;
  opacity: 0;
  transform: translate(-50%, -50%) rotate(-18deg);
  transition: opacity 0.15s ease;
  z-index: 2;
}
.ticket__coin.is-visible {
  opacity: 1;
}
.ticket__coin.is-rubbing {
  animation: hu-coin-rub 0.35s ease-in-out infinite;
}

/* winner stamp over the ticket */
.ticket__win {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 3;
  padding: 8px 22px;
  border: 3px solid var(--tone-gold, #f2b41c);
  border-radius: 10px;
  background: rgba(42, 12, 23, 0.78);
  font-family: "Poppins", "Segoe UI", sans-serif;
  font-size: clamp(20px, 5vw, 34px);
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--tone-gold, #f2b41c);
  text-shadow: 0 2px 0 rgba(130, 70, 10, 0.8), 0 6px 18px rgba(0, 0, 0, 0.55);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%) rotate(-7deg) scale(2.4);
}

.ticket__card.is-won .ticket__win {
  animation: hu-win-stamp 0.55s cubic-bezier(0.2, 1.4, 0.4, 1) 0.25s forwards;
}

@keyframes hu-win-stamp {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(-7deg) scale(2.4);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(-7deg) scale(1);
  }
}
/* shavings thrown off while the foil is rubbed away */
.ticket__flake {
  position: absolute;
  z-index: 1;
  border-radius: 2px;
  background: linear-gradient(135deg, #ffe3a0 0%, #f2b41c 55%, #c06a12 100%);
  box-shadow: 0 0 4px rgba(242, 180, 28, 0.4);
  pointer-events: none;
  transform: translate(-50%, -50%);
  animation: hu-flake-fall var(--dur, 0.7s) ease-in forwards;
}

@keyframes hu-flake-fall {
  0% {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(0deg);
  }
  100% {
    opacity: 0;
    transform: translate(calc(-50% + var(--fx, 0px)), calc(-50% + var(--fy, 60px))) rotate(var(--rot, 180deg));
  }
}
@keyframes hu-coin-rub {
  0%, 100% {
    transform: translate(-50%, -50%) rotate(-25deg) scale(0.96);
  }
  50% {
    transform: translate(-50%, -50%) rotate(-10deg) scale(1);
  }
}
/* CTA stays locked and dimmed until the prize is uncovered */
.ticket__cta.cta__button {
  margin-top: 20px;
  opacity: 0.45;
  filter: saturate(0.5);
  pointer-events: none;
  transition: opacity 0.4s ease, filter 0.4s ease;
}

.ticket__card.is-won .ticket__cta.cta__button {
  opacity: 1;
  filter: none;
  pointer-events: auto;
}
.ticket__card.is-won .ticket__prize b {
  animation: hu-prize-pop 0.6s ease;
}

@keyframes hu-prize-pop {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.25);
  }
  100% {
    transform: scale(1);
  }
}
@media (max-width: 450px) {
  .ticket-dock {
    --shift: 92px;
    top: auto;
    bottom: 150px;
    transform: none;
  }
  .ticket-dock__toggle {
    width: 26px;
    height: 50px;
  }
  .ticket-launcher {
    width: 78px;
    margin: 0 6px;
  }
  .ticket-launcher span {
    font-size: 7px;
  }
  .ticket {
    padding: 10px;
  }
  .ticket__card {
    padding: 34px 20px 26px;
    max-height: calc(100vh - 20px);
    overflow-y: auto;
    transform: rotate(-2deg);
  }
  .ticket__prize b {
    font-size: 36px;
  }
  .ticket__prize {
    font-size: 15px;
  }
}
/* == ACCESSIBILITY == */
:focus-visible {
  outline: 2px solid var(--tone-gold, #f2b41c);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
