/* SpinFormula - cipher midnight + brass sepia + cryptic ember (Enigma theme) */

*, *::before, *::after { box-sizing: border-box; }

:root {
    --void:          #04060f;
    --night-deepest: #07091a;
    --night-deep:    #0a0d18;
    --night-mid:     #121624;
    --night-light:   #1a1f33;
    --night-line:    #2a3050;

    --brass:         #c89b5c;
    --brass-bright:  #d4a574;
    --brass-deep:    #74531e;
    --brass-glow:    rgba(212, 165, 116, 0.5);

    --gold:          #e8c46a;
    --gold-bright:   #f6d97e;
    --gold-deep:     #a0741a;
    --gold-glow:     rgba(232, 196, 106, 0.55);

    --parchment:     #f0e4ce;
    --parchment-soft:#d6c4a0;
    --sepia:         #8a6f3a;

    --cipher-green:  #4faf6a;
    --cipher-violet: #6b4ba8;
    --cipher-red:    #a04938;

    --text:          #e8e2d0;
    --text-soft:     #b4a98e;
    --muted:         #7a7158;
    --white:         #ffffff;

    --display:       'Cinzel', 'Trajan Pro', Georgia, serif;
    --serif:         'EB Garamond', Georgia, 'Times New Roman', serif;
    --mono:          'JetBrains Mono', 'Share Tech Mono', monospace;
    --body:          'EB Garamond', Georgia, serif;
}

body {
    margin: 0;
    font-family: var(--body);
    color: var(--text);
    background: var(--night-deep);
    min-height: 100vh;
    overflow-x: hidden;
    position: relative;
    font-size: 17px;
    line-height: 1.6;
}

/* ===== Layered cipher background ===== */
.bg-sky {
    position: fixed;
    inset: 0;
    z-index: -5;
    background:
        radial-gradient(ellipse 100% 60% at 50% 0%, #1a1a3a 0%, #0a0d18 50%, var(--night-deepest) 85%, var(--void) 100%);
}

/* Faint parchment grain */
.bg-parchment {
    position: fixed;
    inset: 0;
    z-index: -4;
    pointer-events: none;
    background-image:
        radial-gradient(1px 1px at 11% 18%, rgba(212,165,116,0.18) 50%, transparent 60%),
        radial-gradient(1px 1px at 28% 32%, rgba(232,196,106,0.14) 50%, transparent 60%),
        radial-gradient(1px 1px at 41% 9%,  rgba(212,165,116,0.16) 50%, transparent 60%),
        radial-gradient(1px 1px at 55% 22%, rgba(240,228,206,0.12) 50%, transparent 60%),
        radial-gradient(1px 1px at 72% 13%, rgba(212,165,116,0.16) 50%, transparent 60%),
        radial-gradient(1px 1px at 88% 31%, rgba(240,228,206,0.14) 50%, transparent 60%),
        radial-gradient(1px 1px at 17% 56%, rgba(212,165,116,0.16) 50%, transparent 60%),
        radial-gradient(1px 1px at 32% 71%, rgba(240,228,206,0.12) 50%, transparent 60%),
        radial-gradient(1px 1px at 48% 86%, rgba(212,165,116,0.18) 50%, transparent 60%),
        radial-gradient(1px 1px at 67% 60%, rgba(232,196,106,0.14) 50%, transparent 60%),
        radial-gradient(1px 1px at 82% 75%, rgba(212,165,116,0.16) 50%, transparent 60%);
    opacity: 0.6;
}

/* Subtle technical grid */
.bg-grid {
    position: fixed;
    inset: 0;
    z-index: -3;
    pointer-events: none;
    background-image:
        linear-gradient(90deg, rgba(212, 165, 116, 0.04) 1px, transparent 1px),
        linear-gradient(0deg,  rgba(212, 165, 116, 0.04) 1px, transparent 1px);
    background-size: 80px 80px;
    mask-image: radial-gradient(ellipse 80% 100% at 50% 30%, black 0%, transparent 75%);
    -webkit-mask-image: radial-gradient(ellipse 80% 100% at 50% 30%, black 0%, transparent 75%);
}

/* Drifting glow blobs */
.bg-glow {
    position: fixed;
    z-index: -2;
    pointer-events: none;
    width: 700px;
    height: 700px;
    border-radius: 50%;
    filter: blur(70px);
    animation: glowDrift 24s ease-in-out infinite alternate;
}

.bg-glow-1 {
    top: -200px;
    left: -200px;
    background: radial-gradient(circle, var(--brass-glow), transparent 65%);
    opacity: 0.4;
}

.bg-glow-2 {
    bottom: -250px;
    right: -200px;
    background: radial-gradient(circle, rgba(107, 75, 168, 0.35), transparent 65%);
    opacity: 0.32;
    animation-delay: -9s;
}

@keyframes glowDrift {
    from { transform: translate(0, 0)        scale(1); }
    to   { transform: translate(60px, -40px) scale(1.08); }
}

/* ===== Floating cipher glyphs ===== */
.bg-cipher {
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    overflow: hidden;
}

.cipher-glyph {
    position: absolute;
    top: 110%;
    font-family: var(--mono);
    font-weight: 700;
    animation-name: cipherFloat;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    will-change: transform, opacity;
}

@keyframes cipherFloat {
    0% { transform: translateY(0) translateX(0) rotate(0); opacity: 0; }
    8% { opacity: 0.55; }
    50% { transform: translateY(-65vh) translateX(calc(var(--sway, 0px) * 0.5)) rotate(calc(var(--rot, 0deg) * 0.5)); }
    92% { opacity: 0.4; }
    100% { transform: translateY(-130vh) translateX(var(--sway, 0px)) rotate(var(--rot, 0deg)); opacity: 0; }
}

/* ===== Container + hero ===== */
.container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 20px 40px;
}

.hero {
    text-align: center;
    padding: 56px 20px 28px;
    position: relative;
}

.hero-eyebrow {
    color: var(--gold);
    font-family: var(--mono);
    font-size: 0.85rem;
    letter-spacing: 6px;
    margin-bottom: 14px;
    text-transform: uppercase;
}

.hero h1 {
    font-family: var(--display);
    font-size: clamp(2rem, 5vw, 3.6rem);
    margin: 0 0 16px;
    color: var(--parchment);
    letter-spacing: 1.5px;
    font-weight: 700;
    text-transform: uppercase;
    text-shadow:
        0 0 1px #fff,
        0 0 28px var(--brass-glow),
        0 4px 0 var(--night-deepest);
    animation: titlePulse 4s ease-in-out infinite alternate;
}

@keyframes titlePulse {
    from { text-shadow: 0 0 1px #fff, 0 0 14px rgba(212,165,116,0.4), 0 4px 0 var(--night-deepest); }
    to   { text-shadow: 0 0 2px #fff, 0 0 40px rgba(232,196,106,0.85), 0 4px 0 var(--night-deepest); }
}

.subtitle {
    color: var(--text-soft);
    font-size: 1.1rem;
    font-style: italic;
    font-family: var(--serif);
}

.accent {
    color: var(--gold-bright);
    text-shadow: 0 0 14px var(--gold-glow);
    font-family: var(--display);
    font-style: italic;
}

/* ===== Site header ===== */
.site-header {
    position: relative;
    z-index: 5;
    background: linear-gradient(180deg, rgba(7, 9, 26, 0.95), rgba(4, 6, 15, 0.7));
    border-bottom: 1px solid rgba(212, 165, 116, 0.25);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.site-header-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.site-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--display);
    color: var(--parchment);
    text-decoration: none;
    font-weight: 700;
    font-size: 1.55rem;
    letter-spacing: 2px;
    transition: transform 0.2s ease;
    text-transform: uppercase;
}

.site-logo:hover { transform: translateY(-1px); }

.logo-sigma {
    font-family: var(--serif);
    font-size: 1.9rem;
    color: var(--gold-bright);
    line-height: 1;
    text-shadow: 0 0 14px var(--gold-glow);
    animation: sigmaGlow 3.4s ease-in-out infinite alternate;
}

@keyframes sigmaGlow {
    from { text-shadow: 0 0 6px var(--gold-glow), 0 0 12px var(--brass-glow); }
    to   { text-shadow: 0 0 14px var(--gold-bright), 0 0 28px var(--gold); }
}

.logo-text { color: var(--parchment); }
.logo-formula {
    color: var(--brass-bright);
    font-style: italic;
    text-shadow: 0 0 14px var(--brass-glow);
}

.site-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.site-nav a {
    color: var(--text-soft);
    text-decoration: none;
    padding: 8px 14px;
    border-radius: 4px;
    font-weight: 600;
    font-size: 0.93rem;
    transition: all 0.18s ease;
    border: 1px solid transparent;
    font-family: var(--mono);
    letter-spacing: 0.4px;
    text-transform: uppercase;
}

.site-nav a:hover {
    color: var(--gold-bright);
    background: rgba(232, 196, 106, 0.08);
    border-color: rgba(232, 196, 106, 0.4);
}

.site-nav a.active {
    background: linear-gradient(180deg, var(--brass), var(--brass-deep));
    color: var(--night-deepest);
    border-color: var(--brass);
    box-shadow: 0 0 18px var(--brass-glow);
}

/* ===== Cipher welcome banner ===== */
.frm-banner {
    position: relative;
    margin: 26px 0 28px;
    padding: 50px 36px;
    border-radius: 6px;
    background:
        linear-gradient(135deg, rgba(26, 31, 51, 0.94) 0%, rgba(18, 22, 36, 0.97) 60%, rgba(7, 9, 26, 0.98) 100%);
    border: 1px solid rgba(212, 165, 116, 0.4);
    overflow: hidden;
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    align-items: center;
    gap: 24px;
    box-shadow:
        0 0 0 1px rgba(212, 165, 116, 0.15),
        0 0 50px rgba(212, 165, 116, 0.22),
        0 0 80px rgba(107, 75, 168, 0.1),
        0 18px 50px rgba(0, 0, 0, 0.7);
    min-height: 400px;
}

.frm-banner::before {
    content: '';
    position: absolute;
    inset: 8px;
    border: 1px solid rgba(212, 165, 116, 0.18);
    border-radius: 3px;
    pointer-events: none;
}

.frm-banner-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}

/* Concentric dashed rotor rings */
.frm-rotor {
    position: absolute;
    right: 4%;
    top: 50%;
    border-radius: 50%;
    border: 1px dashed rgba(212, 165, 116, 0.3);
    transform: translateY(-50%);
    animation: rotorSpin 36s linear infinite;
}

.frm-rotor-1 { width: 300px; height: 300px; }
.frm-rotor-2 { width: 420px; height: 420px; border-color: rgba(232, 196, 106, 0.22); animation-duration: 48s; animation-direction: reverse; }
.frm-rotor-3 { width: 560px; height: 560px; border-color: rgba(107, 75, 168, 0.16); animation-duration: 60s; }

@keyframes rotorSpin {
    from { transform: translateY(-50%) rotate(0deg);   }
    to   { transform: translateY(-50%) rotate(360deg); }
}

.frm-spotlight {
    position: absolute;
    right: 0;
    top: -20%;
    width: 700px;
    height: 700px;
    background: radial-gradient(circle, rgba(232, 196, 106, 0.18) 0%, rgba(212, 165, 116, 0.06) 30%, transparent 60%);
    animation: spotlightPulse 8s ease-in-out infinite alternate;
}

@keyframes spotlightPulse {
    from { transform: scale(1);    opacity: 0.6; }
    to   { transform: scale(1.08); opacity: 0.9; }
}

.frm-banner-text { position: relative; z-index: 2; }

.frm-banner-pill {
    display: inline-block;
    background: rgba(212, 165, 116, 0.1);
    color: var(--brass-bright);
    font-family: var(--mono);
    font-weight: 600;
    padding: 6px 16px;
    border-radius: 4px;
    letter-spacing: 4px;
    font-size: 0.78rem;
    text-transform: uppercase;
    margin-bottom: 18px;
    border: 1px solid rgba(212, 165, 116, 0.4);
}

.frm-banner-h1 {
    font-family: var(--display);
    font-weight: 600;
    font-size: clamp(2.6rem, 6.2vw, 4.6rem);
    margin: 0 0 20px;
    color: var(--parchment);
    line-height: 1;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    text-shadow: 0 4px 0 rgba(7, 9, 26, 0.55);
}

.frm-italic {
    color: var(--parchment-soft);
    font-style: italic;
}

.frm-amount {
    background: linear-gradient(90deg, var(--gold-bright), var(--brass-bright), var(--gold-bright));
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    text-shadow: none;
    filter: drop-shadow(0 0 24px var(--gold-glow));
    animation: gradientPan 6s linear infinite;
    display: inline-block;
    font-style: italic;
}

@keyframes gradientPan {
    from { background-position: 0% 50%; }
    to   { background-position: 200% 50%; }
}

/* The equation block (cryptic formula display) */
.frm-equation {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 18px;
    margin-bottom: 18px;
    background: rgba(7, 9, 26, 0.65);
    border: 1px solid rgba(212, 165, 116, 0.32);
    border-radius: 6px;
    font-family: var(--mono);
    font-size: 1.1rem;
    color: var(--text-soft);
    box-shadow: inset 0 0 24px rgba(212, 165, 116, 0.08);
}

.frm-eq-term  { color: var(--parchment-soft); }
.frm-eq-num   { color: var(--gold-bright); font-size: 1.4rem; font-weight: 700; text-shadow: 0 0 10px var(--gold-glow); }
.frm-eq-d     { color: var(--brass-bright); font-style: italic; font-size: 1.3rem; }
.frm-eq-times { color: var(--cipher-green); }
.frm-eq-plus  { color: var(--cipher-green); }

.frm-banner-sub {
    color: var(--text);
    font-family: var(--serif);
    font-size: 1.12rem;
    margin: 0 0 24px;
    max-width: 560px;
    font-style: italic;
    line-height: 1.55;
}

.frm-banner-sub strong { color: var(--gold-bright); font-family: var(--display); font-style: normal; font-weight: 700; }

.frm-claim-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: linear-gradient(180deg, var(--brass-bright), var(--brass-deep));
    color: var(--night-deepest);
    text-decoration: none;
    font-family: var(--display);
    font-weight: 700;
    font-size: 1.05rem;
    padding: 16px 38px;
    border-radius: 4px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    border: 1px solid var(--gold-bright);
    box-shadow:
        0 0 0 1px rgba(232, 196, 106, 0.5),
        0 6px 0 var(--brass-deep),
        0 12px 28px var(--brass-glow);
    transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
    position: relative;
    overflow: hidden;
}

.frm-claim-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 25%, rgba(255,255,255,0.5) 50%, transparent 75%);
    transform: translateX(-100%);
    animation: btnShine 2.8s linear infinite;
}

@keyframes btnShine {
    to { transform: translateX(100%); }
}

.frm-claim-btn:hover {
    transform: translateY(-3px) scale(1.03);
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.6),
        0 8px 0 var(--brass-deep),
        0 16px 36px rgba(232, 196, 106, 0.7);
    filter: brightness(1.08);
}

.frm-claim-key, .frm-claim-arrow {
    font-size: 1.3rem;
    line-height: 1;
}

.frm-claim-btn:hover .frm-claim-arrow {
    transform: translateX(4px);
}

/* Banner art (right side: Enigma rotor + math glyphs + keys) */
.frm-banner-art {
    position: relative;
    height: 320px;
    z-index: 2;
}

.frm-enigma {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 220px;
    height: 220px;
    transform: translate(-50%, -50%);
}

.frm-disc {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid rgba(212, 165, 116, 0.4);
    background:
        radial-gradient(circle, rgba(40, 32, 18, 0.6) 0%, rgba(20, 16, 8, 0.85) 75%);
    box-shadow:
        inset 0 0 30px rgba(212, 165, 116, 0.2),
        0 0 30px rgba(212, 165, 116, 0.3);
    animation: discSpin 24s linear infinite;
}

.frm-disc-1 {
    background-image:
        conic-gradient(from 0deg,
            transparent 0deg, rgba(212, 165, 116, 0.35) 5deg, transparent 10deg,
            transparent 30deg, rgba(212, 165, 116, 0.35) 35deg, transparent 40deg,
            transparent 60deg, rgba(212, 165, 116, 0.35) 65deg, transparent 70deg,
            transparent 90deg, rgba(212, 165, 116, 0.35) 95deg, transparent 100deg,
            transparent 120deg, rgba(212, 165, 116, 0.35) 125deg, transparent 130deg,
            transparent 150deg, rgba(212, 165, 116, 0.35) 155deg, transparent 160deg,
            transparent 180deg, rgba(212, 165, 116, 0.35) 185deg, transparent 190deg,
            transparent 210deg, rgba(212, 165, 116, 0.35) 215deg, transparent 220deg,
            transparent 240deg, rgba(212, 165, 116, 0.35) 245deg, transparent 250deg,
            transparent 270deg, rgba(212, 165, 116, 0.35) 275deg, transparent 280deg,
            transparent 300deg, rgba(212, 165, 116, 0.35) 305deg, transparent 310deg,
            transparent 330deg, rgba(212, 165, 116, 0.35) 335deg, transparent 340deg);
}

.frm-disc-2 {
    inset: 24px;
    border-color: rgba(232, 196, 106, 0.45);
    animation-duration: 18s;
    animation-direction: reverse;
}

.frm-disc-3 {
    inset: 50px;
    border-color: rgba(107, 75, 168, 0.55);
    animation-duration: 12s;
}

@keyframes discSpin {
    from { transform: rotate(0deg);   }
    to   { transform: rotate(360deg); }
}

.frm-center {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--serif);
    font-size: 4rem;
    color: var(--gold-bright);
    text-shadow: 0 0 24px var(--gold-bright), 0 0 48px var(--gold);
    z-index: 2;
    animation: centerPulse 3s ease-in-out infinite alternate;
}

@keyframes centerPulse {
    from { transform: translate(-50%, -50%) scale(1);    }
    to   { transform: translate(-50%, -50%) scale(1.08); }
}

.frm-glyph {
    position: absolute;
    font-family: var(--serif);
    font-size: 2rem;
    color: var(--brass-bright);
    text-shadow: 0 0 14px var(--brass-glow);
    animation: glyphTwinkle 3s ease-in-out infinite alternate;
}

.frm-glyph-1 { left: 6%;   top: 14%; animation-delay: 0s;   color: var(--gold-bright); text-shadow: 0 0 14px var(--gold-glow); }
.frm-glyph-2 { right: 6%;  top: 18%; animation-delay: 0.6s; }
.frm-glyph-3 { left: 12%;  bottom: 14%; animation-delay: 1.2s; }
.frm-glyph-4 { right: 12%; bottom: 18%; animation-delay: 1.8s; color: var(--cipher-violet); text-shadow: 0 0 14px rgba(107, 75, 168, 0.6); }

@keyframes glyphTwinkle {
    from { opacity: 0.55; transform: scale(0.9); }
    to   { opacity: 1;    transform: scale(1.08); }
}

.frm-key {
    position: absolute;
    font-size: 1.6rem;
    filter: drop-shadow(0 4px 12px var(--brass-glow));
    animation: keyBob 3.5s ease-in-out infinite alternate;
}

.frm-key-1 { left: 22%; top: 28%; animation-delay: 0s; }
.frm-key-2 { right: 18%; bottom: 28%; animation-delay: 1s; }

@keyframes keyBob {
    from { transform: translateY(0)   rotate(-12deg); }
    to   { transform: translateY(-10px) rotate(12deg); }
}

@media (max-width: 820px) {
    .frm-banner { grid-template-columns: 1fr; padding: 32px 22px; }
    .frm-banner-art { height: 280px; margin-top: 4px; }
    .frm-enigma { width: 180px; height: 180px; }
    .frm-center { font-size: 3rem; }
}

/* ===== Tab pills ===== */
.frm-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 22px;
    justify-content: center;
}

.frm-tab {
    display: inline-block;
    padding: 10px 20px;
    border-radius: 4px;
    background: rgba(18, 22, 36, 0.85);
    border: 1px solid rgba(212, 165, 116, 0.3);
    color: var(--text-soft);
    text-decoration: none;
    font-family: var(--mono);
    font-weight: 600;
    font-size: 0.88rem;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    transition: all 0.2s ease;
}

.frm-tab:hover {
    transform: translateY(-2px);
    color: var(--gold-bright);
    border-color: var(--brass);
    background: rgba(212, 165, 116, 0.1);
}

.frm-tab.active {
    background: linear-gradient(180deg, var(--brass-bright), var(--brass-deep));
    color: var(--night-deepest);
    border-color: var(--brass-bright);
    box-shadow: 0 5px 18px var(--brass-glow);
}

/* ===== Summary section (8 reasons) ===== */
.frm-summary {
    margin: 36px 0;
    padding: 40px 30px;
    border-radius: 6px;
    background: linear-gradient(180deg, rgba(18, 22, 36, 0.92), rgba(7, 9, 26, 0.97));
    border: 1px solid rgba(212, 165, 116, 0.35);
    box-shadow: inset 0 0 0 1px rgba(212, 165, 116, 0.08), 0 12px 36px rgba(0, 0, 0, 0.55);
    position: relative;
}

.frm-summary::before {
    content: '';
    position: absolute;
    inset: 8px;
    border: 1px solid rgba(212, 165, 116, 0.16);
    border-radius: 3px;
    pointer-events: none;
}

.frm-summary-head { text-align: center; margin-bottom: 28px; position: relative; z-index: 1; }

.frm-summary-rubric {
    color: var(--brass-bright);
    font-family: var(--mono);
    letter-spacing: 4px;
    font-size: 0.82rem;
    margin-bottom: 12px;
    text-transform: uppercase;
}

.frm-summary-title {
    font-family: var(--display);
    color: var(--parchment);
    font-weight: 600;
    font-size: clamp(1.5rem, 3vw, 2.4rem);
    margin: 0 0 10px;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-shadow: 0 2px 0 rgba(7, 9, 26, 0.55);
}

.frm-summary-sub {
    color: var(--text-soft);
    font-family: var(--serif);
    margin: 0;
    font-size: 1.1rem;
    font-style: italic;
}

.frm-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 16px;
    margin-bottom: 28px;
    position: relative;
    z-index: 1;
}

.frm-summary-card {
    position: relative;
    padding: 24px 20px;
    border-radius: 6px;
    background: linear-gradient(180deg, rgba(26, 31, 51, 0.85), rgba(10, 13, 24, 0.92));
    border: 1px solid rgba(212, 165, 116, 0.3);
    transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
    overflow: hidden;
    animation: cardPop 0.55s ease-out both;
    animation-delay: calc(var(--i, 0) * 70ms);
}

@keyframes cardPop {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
}

.frm-summary-card::before {
    content: '';
    position: absolute;
    inset: 4px;
    border: 1px solid rgba(212, 165, 116, 0.1);
    border-radius: 3px;
    pointer-events: none;
}

.frm-summary-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% -20%, var(--brass-glow) 0%, transparent 60%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.frm-summary-card:hover {
    transform: translateY(-4px);
    border-color: var(--brass-bright);
    box-shadow: 0 12px 30px var(--brass-glow);
}

.frm-summary-card:hover::after { opacity: 0.45; }

.frm-summary-icon {
    font-size: 2.2rem;
    font-family: var(--serif);
    margin-bottom: 12px;
    color: var(--gold-bright);
    filter: drop-shadow(0 4px 10px var(--brass-glow));
    transition: transform 0.3s ease;
    line-height: 1;
}

.frm-summary-card:hover .frm-summary-icon {
    transform: scale(1.18) rotate(-8deg);
}

.frm-summary-card-title {
    font-family: var(--display);
    color: var(--parchment);
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 8px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    position: relative;
    z-index: 1;
}

.frm-summary-card-text {
    color: var(--text-soft);
    font-family: var(--serif);
    font-size: 1rem;
    line-height: 1.55;
    margin: 0;
    position: relative;
    z-index: 1;
}

.frm-summary-verdict {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 24px;
    align-items: center;
    padding: 24px;
    border-radius: 6px;
    background: linear-gradient(135deg, rgba(212, 165, 116, 0.1), rgba(107, 75, 168, 0.05));
    border: 1px solid rgba(212, 165, 116, 0.4);
    position: relative;
    z-index: 1;
}

.frm-verdict-score {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 16px 22px;
    border-radius: 6px;
    background: linear-gradient(180deg, var(--brass-bright), var(--brass-deep));
    color: var(--night-deepest);
    box-shadow: 0 8px 22px var(--brass-glow);
    font-family: var(--display);
    min-width: 120px;
    border: 1px solid var(--gold-bright);
}

.frm-verdict-num { font-size: 2.4rem; font-weight: 800; line-height: 1; }
.frm-verdict-out { font-size: 0.9rem; font-weight: 600; opacity: 0.85; }

.frm-verdict-text {
    color: var(--text);
    font-family: var(--serif);
    font-size: 1.1rem;
    line-height: 1.65;
}

.frm-verdict-text strong {
    color: var(--gold-bright);
    font-family: var(--display);
    font-weight: 600;
    font-size: 1.06rem;
    font-style: normal;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

@media (max-width: 640px) {
    .frm-summary-verdict { grid-template-columns: 1fr; text-align: center; }
}

/* ===== Hero recommended row (API) ===== */
.hero-row { margin: 22px 0 28px; }

.casino-hero {
    position: relative;
    display: grid;
    grid-template-columns: 200px 1fr auto;
    align-items: center;
    gap: 28px;
    padding: 30px;
    border-radius: 6px;
    background: linear-gradient(135deg, rgba(26, 31, 51, 0.97), rgba(7, 9, 26, 0.97));
    border: 1px solid var(--brass);
    box-shadow:
        0 0 0 1px rgba(212, 165, 116, 0.2),
        0 0 35px rgba(212, 165, 116, 0.32),
        0 12px 40px rgba(0, 0, 0, 0.65);
    animation: heroPulse 3.5s ease-in-out infinite alternate;
}

@keyframes heroPulse {
    from { box-shadow: 0 0 0 1px rgba(212,165,116,0.2), 0 0 25px rgba(212,165,116,0.3), 0 12px 40px rgba(0,0,0,0.65); }
    to   { box-shadow: 0 0 0 1px rgba(212,165,116,0.4), 0 0 55px rgba(212,165,116,0.65), 0 12px 40px rgba(0,0,0,0.65); }
}

.badge-recommended {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: linear-gradient(90deg, var(--brass-deep), var(--brass), var(--gold-bright), var(--brass), var(--brass-deep));
    background-size: 200% 100%;
    color: var(--night-deepest);
    font-family: var(--display);
    font-weight: 700;
    padding: 6px 22px;
    font-size: 0.78rem;
    letter-spacing: 3px;
    border-radius: 24px;
    white-space: nowrap;
    box-shadow: 0 4px 16px var(--brass-glow);
    animation: badgeSlide 4s linear infinite;
}

@keyframes badgeSlide {
    from { background-position: 0% 50%; }
    to   { background-position: 200% 50%; }
}

.hero-rank {
    position: absolute;
    top: 14px;
    left: 14px;
    background: var(--brass);
    color: var(--night-deepest);
    width: 42px;
    height: 42px;
    border-radius: 50%;
    font-family: var(--display);
    font-weight: 800;
    display: grid;
    place-items: center;
    box-shadow: 0 4px 14px var(--brass-glow);
    border: 2px solid var(--gold-bright);
}

.hero-logo {
    display: grid;
    place-items: center;
    padding: 16px;
    border-radius: 6px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.04));
    border: 1px solid rgba(212, 165, 116, 0.3);
    transition: transform 0.25s ease;
}

.hero-logo:hover { transform: scale(1.04); }
.hero-logo img { max-width: 100%; max-height: 90px; width: auto; height: auto; display: block; }
.hero-content { min-width: 0; }

.hero-name {
    font-family: var(--display);
    font-weight: 600;
    font-size: clamp(1.4rem, 2.6vw, 2rem);
    margin: 0 0 8px;
    color: var(--parchment);
    text-shadow: 0 2px 0 rgba(7, 9, 26, 0.55);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.hero-name a { color: inherit; text-decoration: none; }
.hero-name a:hover { color: var(--gold-bright); }

.hero-tagline {
    color: var(--gold-bright);
    font-family: var(--serif);
    font-style: italic;
    margin-bottom: 12px;
    font-size: 1rem;
    letter-spacing: 0.3px;
}

.hero-bonus {
    display: inline-block;
    margin-top: 14px;
    padding: 12px 18px;
    background: linear-gradient(180deg, rgba(212, 165, 116, 0.18), rgba(212, 165, 116, 0.06));
    border-left: 4px solid var(--brass);
    border-radius: 0;
}

.bonus-label {
    display: block;
    font-family: var(--mono);
    font-size: 0.7rem;
    color: var(--gold-bright);
    letter-spacing: 2.5px;
    margin-bottom: 4px;
    text-transform: uppercase;
    font-weight: 700;
}

.bonus-text { color: var(--white); font-weight: 600; font-size: 1.02rem; font-family: var(--serif); }

.hero-cta { text-align: center; min-width: 200px; }

.hero-cta-sub {
    color: var(--text-soft);
    font-family: var(--serif);
    font-style: italic;
    font-size: 0.85rem;
    margin-top: 8px;
    letter-spacing: 0.5px;
}

/* ===== Rating stars ===== */
.rating {
    margin: 4px 0 8px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    color: var(--gold);
}

.star { font-size: 1.05rem; line-height: 1; }
.star.full  { color: var(--gold); text-shadow: 0 0 6px var(--gold-glow); }
.star.half  { color: var(--gold); opacity: 0.65; }
.star.empty { color: rgba(232, 196, 106, 0.3); }

.rating-num {
    margin-left: 6px;
    color: var(--text-soft);
    font-size: 0.88rem;
    font-weight: 700;
}

/* ===== Alternatives grid (5/3-col saved-version layout) ===== */
.alternatives { display: grid; gap: 16px; margin: 16px 0 28px; }
.alternatives.five-col  { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.alternatives.three-col { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

.casino-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 22px 18px 18px;
    border-radius: 6px;
    background: linear-gradient(180deg, rgba(26, 31, 51, 0.95), rgba(10, 13, 24, 0.95));
    border: 1px solid rgba(212, 165, 116, 0.3);
    transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.casino-card:hover {
    transform: translateY(-4px);
    border-color: var(--brass-bright);
    box-shadow: 0 14px 32px var(--brass-glow);
}

.casino-card .rank {
    position: absolute;
    top: 10px;
    left: 10px;
    background: var(--brass);
    color: var(--night-deepest);
    font-family: var(--display);
    font-weight: 800;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 0.85rem;
    box-shadow: 0 3px 10px var(--brass-glow);
}

.casino-card .logo {
    display: grid;
    place-items: center;
    padding: 8px;
    margin-bottom: 12px;
    border-radius: 4px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.02));
    border: 1px solid rgba(212, 165, 116, 0.25);
    width: 100%;
    max-height: 90px;
    overflow: hidden;
}

.casino-card .logo img { max-width: 100%; max-height: 64px; width: auto; height: auto; }

.casino-card .casino-name {
    font-family: var(--display);
    font-weight: 600;
    font-size: 1.05rem;
    margin: 4px 0 6px;
    color: var(--parchment);
    text-transform: uppercase;
    letter-spacing: 0.6px;
}

.casino-card .casino-name a { color: inherit; text-decoration: none; }
.casino-card .casino-name a:hover { color: var(--gold-bright); }

.casino-card .bonus {
    margin: 8px 0 14px;
    padding: 8px 10px;
    background: rgba(212, 165, 116, 0.08);
    border-left: 3px solid var(--brass);
    border-radius: 0;
    text-align: left;
    width: 100%;
}

.casino-card .bonus .bonus-label { font-size: 0.62rem; letter-spacing: 1.8px; }
.casino-card .bonus .bonus-text  { font-size: 0.9rem; }

.brand-link { cursor: pointer; }

/* ===== Generic buttons ===== */
.btn {
    display: inline-block;
    font-family: var(--display);
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    border: none;
    cursor: pointer;
    transition: transform 0.18s ease, filter 0.18s ease, box-shadow 0.18s ease;
}

.btn-claim {
    color: var(--night-deepest);
    padding: 12px 18px;
    border-radius: 4px;
    font-size: 0.92rem;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.5);
    width: 100%;
    text-align: center;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.btn-claim.btn-hero {
    padding: 16px 28px;
    font-size: 1.08rem;
    letter-spacing: 2px;
    box-shadow: 0 0 26px var(--brass-glow);
}

.btn-claim:hover {
    transform: translateY(-2px) scale(1.03);
    filter: brightness(1.08);
    box-shadow: 0 10px 24px var(--brass-glow);
}

.flashing { animation: flashPulse 2s ease-in-out infinite; }

@keyframes flashPulse {
    0%, 100% { box-shadow: 0 6px 0 var(--brass-deep), 0 12px 16px rgba(0, 0, 0, 0.5); }
    50%      { box-shadow: 0 6px 0 var(--brass-deep), 0 0 32px var(--brass-glow), 0 0 0 4px rgba(212, 165, 116, 0.22); }
}

.flashing-orange {
    background: linear-gradient(180deg, var(--gold-bright), var(--gold-deep));
    color: var(--night-deepest);
    padding: 14px 26px;
    border-radius: 4px;
    font-family: var(--display);
    font-weight: 700;
    letter-spacing: 1.5px;
    text-decoration: none;
    display: inline-block;
    border: 1px solid var(--gold-bright);
    animation: flashPulseGold 2s ease-in-out infinite;
}

@keyframes flashPulseGold {
    0%, 100% { box-shadow: 0 6px 16px rgba(0,0,0,0.5); }
    50%      { box-shadow: 0 8px 26px var(--gold-glow), 0 0 0 4px rgba(232,196,106,0.22); }
}

.flashing-green {
    background: linear-gradient(180deg, var(--brass-bright), var(--brass-deep));
    color: var(--night-deepest);
    padding: 14px 26px;
    border-radius: 4px;
    text-decoration: none;
    display: inline-block;
    font-family: var(--display);
    font-weight: 700;
    letter-spacing: 1.5px;
    border: 1px solid var(--gold-bright);
    animation: flashPulse 2s ease-in-out infinite;
}

/* ===== Section titles ===== */
.section-title {
    font-family: var(--display);
    color: var(--parchment);
    font-weight: 600;
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    text-align: center;
    margin: 30px 0 8px;
    letter-spacing: 1.5px;
    text-shadow: 0 2px 0 rgba(7, 9, 26, 0.55);
    text-transform: uppercase;
}

.section-sub {
    color: var(--text-soft);
    font-family: var(--serif);
    font-style: italic;
    text-align: center;
    margin: 0 0 22px;
    font-size: 1.08rem;
}

/* ===== Loading / error states ===== */
.loading-state {
    grid-column: 1 / -1;
    text-align: center;
    padding: 30px;
    color: var(--text-soft);
    font-family: var(--mono);
    font-style: italic;
}

.load-error { color: #ff9e9e; text-align: center; padding: 20px; }

/* ===== Slot game ===== */
.games-section {
    margin: 36px 0 28px;
    padding: 30px 24px;
    border-radius: 6px;
    background: linear-gradient(180deg, rgba(18, 22, 36, 0.93), rgba(7, 9, 26, 0.97));
    border: 1px solid rgba(212, 165, 116, 0.32);
}

.bookofra-wrap { max-width: 720px; margin: 0 auto; text-align: center; }

.bookofra-machine {
    position: relative;
    padding: 22px;
    border-radius: 6px;
    background: linear-gradient(180deg, #12162a, #07091a);
    border: 1px solid var(--brass);
    box-shadow: inset 0 0 30px rgba(0, 0, 0, 0.7), 0 0 30px var(--brass-glow);
    margin-bottom: 18px;
}

.reels-container {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;
    min-height: 300px;
}

.reel {
    background: linear-gradient(180deg, #1c2240, #07091a);
    border: 1px solid rgba(212, 165, 116, 0.4);
    border-radius: 6px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
}

.reel .cell {
    flex: 1 1 0;
    min-height: 90px;
    display: grid;
    place-items: center;
    font-size: clamp(2.6rem, 5vw, 3.6rem);
    line-height: 1;
    border-bottom: 1px dashed rgba(212, 165, 116, 0.22);
    background: linear-gradient(180deg, rgba(212, 165, 116, 0.05), transparent);
    transition: transform 0.5s cubic-bezier(.32, 1.4, .55, 1), filter 0.3s ease;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8);
}

.reel .cell:last-child { border-bottom: none; }

.reel .cell.payline {
    background: linear-gradient(180deg, rgba(212, 165, 116, 0.2), rgba(212, 165, 116, 0.06));
    box-shadow: inset 0 0 0 1px rgba(212, 165, 116, 0.4);
}

.reel .cell.win {
    animation: cellWin 0.7s ease-in-out infinite alternate;
    color: var(--gold-bright);
    text-shadow: 0 0 18px var(--gold-bright), 0 2px 8px rgba(0, 0, 0, 0.8);
}

@keyframes cellWin {
    from { transform: scale(1);    filter: brightness(1); }
    to   { transform: scale(1.18); filter: brightness(1.4); }
}

.reel .cell.spinning {
    animation: cellSpin 0.18s linear infinite;
    filter: blur(1.5px);
    opacity: 0.85;
}

@keyframes cellSpin {
    0%   { transform: translateY(-30%); }
    100% { transform: translateY(30%);  }
}

.payline-marker {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: var(--gold-bright);
    font-size: 2rem;
    text-shadow: 0 0 14px var(--gold-bright);
    animation: paylinePulse 1.4s ease-in-out infinite;
    z-index: 2;
}

.payline-left  { left: 4px; }
.payline-right { right: 4px; }

@keyframes paylinePulse {
    0%, 100% { opacity: 0.45; }
    50%      { opacity: 1; }
}

.bookofra-result {
    color: var(--gold-bright);
    font-family: var(--display);
    font-weight: 600;
    font-size: 1.15rem;
    min-height: 1.5em;
    margin: 10px 0;
    text-shadow: 0 0 10px var(--brass-glow);
    letter-spacing: 1px;
    text-transform: uppercase;
}

.bet-section { margin: 12px 0; }

.bet-section-label {
    color: var(--text-soft);
    font-family: var(--mono);
    font-size: 0.85rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.bet-amounts { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }

.slot-amount-btn {
    background: linear-gradient(180deg, rgba(26, 31, 51, 0.95), rgba(10, 13, 24, 0.95));
    border: 1px solid rgba(212, 165, 116, 0.4);
    color: var(--text);
    padding: 8px 16px;
    border-radius: 4px;
    font-family: var(--mono);
    font-weight: 700;
    cursor: pointer;
    transition: all 0.18s ease;
}

.slot-amount-btn:hover { border-color: var(--gold-bright); color: var(--gold-bright); }

.slot-amount-btn.active {
    background: linear-gradient(180deg, var(--brass-bright), var(--brass-deep));
    color: var(--night-deepest);
    border-color: var(--brass);
    box-shadow: 0 4px 14px var(--brass-glow);
}

.bookofra-action-row {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    margin: 18px 0 14px;
    flex-wrap: wrap;
}

.btn-bet {
    background: linear-gradient(180deg, var(--brass-bright), var(--brass-deep));
    color: var(--night-deepest);
    border: 1px solid var(--gold-bright);
    padding: 14px 38px;
    border-radius: 4px;
    font-family: var(--display);
    font-weight: 700;
    font-size: 1.15rem;
    letter-spacing: 2.5px;
    cursor: pointer;
    box-shadow: 0 6px 0 var(--brass-deep), 0 12px 22px var(--brass-glow);
    transition: transform 0.18s ease, filter 0.18s ease;
}

.btn-bet:hover { transform: translateY(-2px) scale(1.04); filter: brightness(1.08); }

.balance { color: var(--text-soft); font-family: var(--mono); font-weight: 700; }

.balance span {
    color: var(--gold-bright);
    font-size: 1.1rem;
    text-shadow: 0 0 10px var(--gold-glow);
}

.paytable {
    margin-top: 16px;
    padding: 14px 18px;
    border-radius: 4px;
    background: rgba(7, 9, 26, 0.78);
    border: 1px solid rgba(212, 165, 116, 0.28);
}

.paytable-title {
    color: var(--gold-bright);
    font-family: var(--mono);
    font-weight: 700;
    letter-spacing: 2px;
    margin-bottom: 8px;
    font-size: 0.9rem;
    text-transform: uppercase;
}

.paytable-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 6px 12px;
    text-align: left;
    color: var(--text-soft);
    font-size: 0.88rem;
    font-family: var(--mono);
}

.paytable-grid b { color: var(--gold-bright); margin-right: 6px; }

.paytable-note {
    color: var(--muted);
    font-family: var(--serif);
    font-size: 0.84rem;
    font-style: italic;
    margin-top: 6px;
    text-align: center;
}

.win-cta {
    margin-top: 22px;
    padding: 22px;
    border-radius: 6px;
    background: linear-gradient(135deg, rgba(232, 196, 106, 0.15), rgba(107, 75, 168, 0.06));
    border: 1px solid var(--gold);
    text-align: center;
}

.win-cta.hidden { display: none; }
.win-cta-text { color: var(--parchment); font-size: 1.05rem; font-weight: 600; margin-bottom: 12px; font-family: var(--serif); font-style: italic; }
.btn-win-real { display: inline-block; }
.win-cta-sub { color: var(--text-soft); font-size: 0.85rem; margin-top: 8px; font-family: var(--serif); font-style: italic; }
.cta-pop { animation: ctaPop 0.6s ease-out; }

@keyframes ctaPop {
    0%   { transform: scale(0.85); opacity: 0; }
    60%  { transform: scale(1.05); opacity: 1; }
    100% { transform: scale(1); }
}

/* ===== Game recommendation ===== */
.game-recommendation { margin: 30px 0; }

.rec-card {
    display: grid;
    grid-template-columns: 140px 1fr auto;
    align-items: center;
    gap: 24px;
    padding: 22px;
    border-radius: 6px;
    background: linear-gradient(135deg, rgba(26, 31, 51, 0.97), rgba(7, 9, 26, 0.97));
    border: 1px solid var(--brass);
    box-shadow: 0 0 30px var(--brass-glow);
}

.rec-logo { max-width: 100%; max-height: 80px; width: auto; height: auto; border-radius: 4px; }

.rec-info h3 {
    font-family: var(--display);
    color: var(--parchment);
    font-weight: 600;
    font-size: 1.4rem;
    margin: 0 0 6px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rec-info h3 a { color: inherit; text-decoration: none; }
.rec-info h3 a:hover { color: var(--gold-bright); }

.rec-bonus { color: var(--gold-bright); font-weight: 600; font-family: var(--serif); font-style: italic; }

.btn-play {
    background: linear-gradient(180deg, var(--brass-bright), var(--brass-deep));
    color: var(--night-deepest);
    padding: 14px 24px;
    border-radius: 4px;
    text-decoration: none;
    display: inline-block;
    font-family: var(--display);
    font-weight: 700;
    letter-spacing: 1.5px;
    border: 1px solid var(--gold-bright);
    box-shadow: 0 6px 0 var(--brass-deep), 0 12px 22px var(--brass-glow);
}

@media (max-width: 640px) {
    .rec-card { grid-template-columns: 1fr; text-align: center; }
}

/* ===== Review article ===== */
.article-body {
    max-width: 880px;
    margin: 24px auto;
    padding: 32px 28px;
    background: linear-gradient(180deg, rgba(18, 22, 36, 0.93), rgba(7, 9, 26, 0.97));
    border: 1px solid rgba(212, 165, 116, 0.35);
    border-radius: 6px;
    box-shadow: inset 0 0 0 1px rgba(212, 165, 116, 0.06);
}

.article-body h2 {
    font-family: var(--display);
    font-weight: 600;
    font-size: 1.5rem;
    color: var(--gold-bright);
    margin-top: 26px;
    margin-bottom: 10px;
    border-left: 4px solid var(--brass);
    padding-left: 12px;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-shadow: 0 1px 0 rgba(7, 9, 26, 0.5);
}

.article-body p {
    color: var(--text);
    margin-bottom: 14px;
    font-size: 1.08rem;
    line-height: 1.78;
    font-family: var(--serif);
}

.article-body p strong { color: var(--gold-bright); font-family: var(--display); font-weight: 700; font-style: normal; }

.article-meta {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 22px;
    padding: 22px;
    border-radius: 6px;
    background: rgba(7, 9, 26, 0.78);
    border: 1px solid rgba(212, 165, 116, 0.32);
    margin-bottom: 22px;
    align-items: center;
}

.article-rating { text-align: center; min-width: 140px; }

.big-rating {
    font-family: var(--display);
    color: var(--gold-bright);
    font-size: 3rem;
    font-weight: 800;
    line-height: 1;
    text-shadow: 0 0 20px var(--gold-glow);
}

.big-rating-out { color: var(--text-soft); font-weight: 700; margin-left: 4px; }

.rating-stars { display: block; color: var(--gold); font-size: 1.1rem; margin-top: 6px; }

.article-facts {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px 18px;
}

.article-facts > div { border-left: 2px solid rgba(212, 165, 116, 0.5); padding-left: 12px; }

.article-facts dt {
    color: var(--text-soft);
    font-family: var(--mono);
    font-size: 0.74rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    font-weight: 700;
}

.article-facts dd { margin: 2px 0 0; color: var(--parchment); font-weight: 600; font-family: var(--display); letter-spacing: 0.3px; }

.play-now-cta {
    margin: 22px 0;
    padding: 24px;
    border-radius: 6px;
    text-align: center;
    background: linear-gradient(135deg, rgba(232, 196, 106, 0.15), rgba(107, 75, 168, 0.06));
    border: 1px solid var(--gold);
}

.play-now-text {
    color: var(--parchment);
    font-family: var(--serif);
    font-style: italic;
    font-weight: 500;
    font-size: 1.2rem;
    margin-bottom: 14px;
    letter-spacing: 0.3px;
}

.verdict {
    padding: 20px;
    border-radius: 6px;
    background: rgba(212, 165, 116, 0.08);
    border-left: 4px solid var(--gold);
}

/* ===== Pros / Cons ===== */
.proscons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin: 18px 0;
}

.proscons-col {
    padding: 20px 24px;
    border-radius: 6px;
    background: rgba(7, 9, 26, 0.65);
    border: 1px solid rgba(212, 165, 116, 0.25);
}

.proscons-col h3 {
    font-family: var(--display);
    margin: 0 0 10px;
    font-size: 1.1rem;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    font-weight: 700;
}

.proscons-pros h3 { color: var(--cipher-green); }
.proscons-cons h3 { color: var(--cipher-red); }

.proscons-col ul {
    margin: 0;
    padding-left: 22px;
    color: var(--text);
    font-family: var(--serif);
    font-size: 1.04rem;
    line-height: 1.6;
}

.proscons-col li { margin-bottom: 6px; }
.proscons-pros { border-left: 4px solid var(--cipher-green); }
.proscons-cons { border-left: 4px solid var(--cipher-red); }

@media (max-width: 720px) { .proscons { grid-template-columns: 1fr; } }

.top-alternatives { margin-top: 30px; }

/* ===== Footer ===== */
.site-footer {
    margin-top: 36px;
    padding: 28px 20px;
    border-top: 1px solid rgba(212, 165, 116, 0.25);
    background: linear-gradient(180deg, rgba(7, 9, 26, 0.94), rgba(4, 6, 15, 0.98));
    text-align: center;
}

.site-footer .footer-inner {
    max-width: 1280px;
    margin: 0 auto;
    color: var(--text-soft);
    font-family: var(--serif);
    font-size: 0.92rem;
}

.site-footer a { color: var(--gold-bright); text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }

.site-footer-links {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin-bottom: 12px;
}

.footer-disclaimer {
    margin-top: 10px;
    color: var(--muted);
    font-family: var(--mono);
    font-size: 0.78rem;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

/* ===== Login / bonus / games shared layout ===== */
.steps-list, .step-list {
    counter-reset: stepCounter;
    list-style: none;
    padding: 0;
    margin: 22px 0;
}

.steps-list li, .step-list li {
    counter-increment: stepCounter;
    position: relative;
    padding: 16px 16px 16px 64px;
    margin-bottom: 12px;
    border-radius: 6px;
    background: linear-gradient(180deg, rgba(26, 31, 51, 0.8), rgba(10, 13, 24, 0.92));
    border: 1px solid rgba(212, 165, 116, 0.3);
    color: var(--text);
    font-family: var(--serif);
    font-size: 1.06rem;
}

.steps-list li::before, .step-list li::before {
    content: counter(stepCounter);
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    background: linear-gradient(180deg, var(--brass-bright), var(--brass-deep));
    color: var(--night-deepest);
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-family: var(--display);
    font-weight: 800;
    box-shadow: 0 4px 14px var(--brass-glow);
    border: 2px solid var(--gold-bright);
}

.steps-list li strong, .step-list li strong { color: var(--gold-bright); font-family: var(--display); font-weight: 700; font-style: normal; }

.bonus-table { width: 100%; border-collapse: collapse; margin: 16px 0; }

.bonus-table th, .bonus-table td {
    padding: 10px 12px;
    border-bottom: 1px solid rgba(212, 165, 116, 0.25);
    text-align: left;
}

.bonus-table th {
    color: var(--gold-bright);
    font-family: var(--mono);
    font-size: 0.78rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.bonus-table td { color: var(--text); font-family: var(--serif); }

/* ===== Responsive tweaks ===== */
@media (max-width: 760px) {
    .casino-hero { grid-template-columns: 1fr; text-align: center; }
    .hero-logo { max-width: 200px; margin: 0 auto; }
    .hero-cta { width: 100%; }
    .article-meta { grid-template-columns: 1fr; text-align: center; }
    .article-rating { margin: 0 auto; }
}
