/* ============================================================================
   Roblox Gift Card landing — shared chrome only (nav, card, amount, copy, modal, foot).
   Skins: roblox-gift-v1.css (Studio) and roblox-gift-v10.css (Clay Playground).
   ========================================================================== */

[x-cloak] { display: none !important; }
body.rg-body .d6-theme-toggle { display: none; }


/* ---------------------------------------------------------------- 1. tokens */

.rg-page {
    --rg-bg: #0a0d14;
    --rg-bg-2: #0e131d;
    --rg-fg: #e9eef7;
    --rg-muted: #8f9cb3;
    --rg-accent: #16e0a3;
    --rg-accent-2: #35b8ff;
    --rg-ink: #04241b;
    --rg-line: rgba(255, 255, 255, .10);
    --rg-line-2: rgba(255, 255, 255, .18);
    --rg-surface: rgba(255, 255, 255, .045);
    --rg-surface-2: rgba(255, 255, 255, .08);
    --rg-radius: 20px;
    --rg-radius-sm: 12px;
    --rg-pill: 999px;
    --rg-font: 'Inter', system-ui, -apple-system, sans-serif;
    --rg-display: var(--rg-font);
    --rg-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
    --rg-maxw: 1180px;
    --rg-nav-h: 66px;
    --rg-shadow: 0 24px 60px rgba(0, 0, 0, .38);
    --rg-track: rgba(255, 255, 255, .14);

    position: relative;
    isolation: isolate;
    overflow-x: clip;
    min-height: 100vh;
    background: var(--rg-bg);
    color: var(--rg-fg);
    font-family: var(--rg-font);
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

.rg-page :where(h1, h2, h3, p, ul, ol, dl, dd, figure, pre) { margin: 0; }
.rg-page :where(ul, ol) { list-style: none; padding: 0; }
.rg-page :where(button) { font: inherit; color: inherit; cursor: pointer; }
.rg-page :where(a) { color: inherit; text-decoration: none; }
.rg-page :where(img) { display: block; max-width: 100%; height: auto; }
.rg-page :where(svg) { width: 100%; height: 100%; }

.rg-wrap {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: var(--rg-maxw);
    margin: 0 auto;
    padding: 0 20px;
}

.rg-hero,
.rg-panel,
.rg-foot { position: relative; z-index: 1; }

/* ------------------------------------------------------------ 2. typography */

.rg-h1 {
    font-family: var(--rg-display);
    font-size: clamp(2.1rem, 5.2vw, 3.9rem);
    font-weight: 800;
    line-height: 1.03;
    letter-spacing: -.03em;
}

.rg-h2 {
    font-family: var(--rg-display);
    font-size: clamp(1.4rem, 2.6vw, 2rem);
    font-weight: 750;
    letter-spacing: -.02em;
}

.rg-lead {
    color: var(--rg-muted);
    font-size: clamp(1rem, 1.35vw, 1.12rem);
    line-height: 1.62;
    max-width: 46ch;
}

.rg-eyebrow {
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--rg-accent);
}

.rg-badge {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .38rem .8rem;
    border: 1px solid var(--rg-line-2);
    border-radius: var(--rg-pill);
    background: var(--rg-surface);
    font-size: .76rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--rg-fg);
}

.rg-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rg-accent);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--rg-accent) 22%, transparent);
    animation: ag-blink 1.8s ease-in-out infinite;
}

@keyframes ag-blink { 50% { opacity: .35; } }

/* ------------------------------------------------------------------ 3. nav */

.rg-nav {
    position: sticky;
    top: 0;
    z-index: 60;
    background: var(--rg-nav-bg, color-mix(in srgb, var(--rg-bg) 82%, transparent));
    border-bottom: 1px solid var(--rg-nav-line, var(--rg-line));
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    transition: background .28s ease, border-color .28s ease, box-shadow .28s ease;
}

.rg-nav.is-ghost { background: transparent; border-color: transparent; }
.rg-nav.is-ghost.is-scrolled {
    background: var(--rg-nav-bg, color-mix(in srgb, var(--rg-bg) 82%, transparent));
    border-color: var(--rg-nav-line, var(--rg-line));
    box-shadow: 0 14px 40px rgba(0, 0, 0, .28);
}

.rg-nav-in {
    max-width: var(--rg-maxw);
    margin: 0 auto;
    padding: 0 20px;
    min-height: var(--rg-nav-h);
    display: flex;
    align-items: center;
    gap: 14px;
}

.rg-brand { display: inline-flex; align-items: center; gap: .55rem; flex-shrink: 0; }
.rg-brand-mark {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: linear-gradient(140deg, var(--rg-accent), var(--rg-accent-2));
    color: var(--rg-ink);
    font-weight: 900;
    font-size: .92rem;
}
.rg-brand-name { font-weight: 800; letter-spacing: -.02em; font-size: 1.05rem; }
.rg-brand-name i { font-style: normal; color: var(--rg-accent); }

.rg-nav-links { display: none; align-items: center; gap: 2px; margin-left: .5rem; }
@media (min-width: 1000px) { .rg-nav-links { display: flex; } }

.rg-nav-link {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .5rem .72rem;
    border-radius: 10px;
    font-size: .88rem;
    font-weight: 550;
    color: var(--rg-muted);
    background: transparent;
    border: 0;
    transition: color .18s, background .18s;
    white-space: nowrap;
}
.rg-nav-link:hover { color: var(--rg-fg); background: var(--rg-surface); }
.rg-nav-link.is-active { color: var(--rg-accent); }
.rg-nav-link svg { width: 13px; height: 13px; opacity: .7; }

.rg-drop { position: relative; }
.rg-drop-menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    min-width: 232px;
    padding: 6px;
    border-radius: 14px;
    border: 1px solid var(--rg-line-2);
    background: var(--rg-drop-bg, #10151f);
    box-shadow: var(--rg-shadow);
    display: grid;
    gap: 1px;
}
.rg-drop-menu a {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .5rem .65rem;
    border-radius: 9px;
    font-size: .86rem;
    color: var(--rg-fg);
}
.rg-drop-menu a:hover { background: var(--rg-surface-2); }

.rg-nav-side { display: flex; align-items: center; gap: .4rem; margin-left: auto; }

.rg-lang { position: relative; }
.rg-lang-btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    height: 38px;
    padding: 0 .6rem;
    border: 1px solid var(--rg-line);
    border-radius: 10px;
    background: transparent;
    font-size: .8rem;
}
.rg-lang-btn:hover { background: var(--rg-surface); }
.rg-lang-btn b { font-weight: 700; }
.rg-lang-menu {
    position: absolute;
    right: 0;
    top: calc(100% + 6px);
    min-width: 132px;
    padding: 5px;
    border-radius: 12px;
    border: 1px solid var(--rg-line-2);
    background: var(--rg-drop-bg, #10151f);
    box-shadow: var(--rg-shadow);
    display: grid;
    gap: 1px;
}
.rg-lang-menu a {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .4rem .55rem;
    border-radius: 8px;
    font-size: .84rem;
}
.rg-lang-menu a:hover { background: var(--rg-surface-2); }
.rg-lang-menu a.is-on { color: var(--rg-accent); font-weight: 700; }

.rg-nav-tg {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    border: 1px solid var(--rg-line);
    color: var(--rg-muted);
    transition: color .18s, background .18s;
}
.rg-nav-tg:hover { color: var(--rg-accent); background: var(--rg-surface); }
.rg-nav-tg svg { width: 20px; height: 20px; }

.rg-burger {
    display: grid;
    gap: 4px;
    width: 38px;
    height: 38px;
    padding: 10px 9px;
    border: 1px solid var(--rg-line);
    border-radius: 10px;
    background: transparent;
    align-content: center;
}
@media (min-width: 1000px) { .rg-burger { display: none; } }
.rg-burger span { display: block; height: 2px; background: currentColor; border-radius: 2px; }

.rg-nav-mob {
    border-top: 1px solid var(--rg-line);
    background: var(--rg-nav-bg, color-mix(in srgb, var(--rg-bg) 94%, transparent));
    padding: .5rem 20px 1rem;
    display: grid;
    gap: 1px;
}
@media (min-width: 1000px) { .rg-nav-mob { display: none !important; } }
.rg-nav-mob a {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .62rem .3rem;
    border-bottom: 1px solid var(--rg-line);
    font-size: .92rem;
    color: var(--rg-muted);
}
.rg-nav-mob a.is-active { color: var(--rg-accent); font-weight: 700; }

/* ------------------------------------------------------------- 4. hero grid */

.rg-hero { padding: clamp(2.4rem, 6vw, 5.2rem) 0 clamp(1rem, 2vw, 1.5rem); }

.rg-hero-grid {
    display: grid;
    gap: clamp(2rem, 4vw, 3.4rem);
    align-items: start;
}
@media (min-width: 980px) { .rg-hero-grid { grid-template-columns: 1.05fr .95fr; } }

.rg-hero-copy > * + * { margin-top: 1.1rem; }
.rg-hero-art {
    position: relative;
    display: grid;
    justify-items: center;
    align-content: start;
    gap: 1.4rem;
}
.rg-hero-stage {
    position: relative;
    display: grid;
    place-items: center;
    width: min(100%, 400px);
}

/* ------------------------------------------------------------ 5. gift card */

.rg-card {
    position: relative;
    width: min(100%, 400px);
    aspect-ratio: 1.585;
    transform-style: preserve-3d;
    transition: transform .3s cubic-bezier(.22, .8, .3, 1);
    will-change: transform;
}

.rg-card-face {
    position: relative;
    width: 100%;
    height: 100%;
    padding: clamp(1.1rem, 3vw, 1.6rem);
    border-radius: 22px;
    overflow: hidden;
    background: linear-gradient(150deg, #1a1a1a 0%, #0a0a0a 45%, #2b0a08 100%);
    box-shadow: 0 30px 60px rgba(0, 0, 0, .5), inset 0 1px 0 rgba(255, 255, 255, .1);
    color: #fff;
    border: 1px solid rgba(226, 35, 26, .35);
}

.rg-card-sheen {
    position: absolute;
    inset: -40% -10%;
    background: linear-gradient(105deg, transparent 38%, rgba(255, 255, 255, .3) 48%, transparent 58%);
    transform: translateX(-40%);
    animation: ag-sheen 5.5s ease-in-out infinite;
    pointer-events: none;
}
@keyframes ag-sheen {
    0%, 62% { transform: translateX(-60%); }
    100% { transform: translateX(60%); }
}

.rg-card-logo {
    position: absolute;
    top: clamp(1.1rem, 3vw, 1.6rem);
    left: clamp(1.1rem, 3vw, 1.6rem);
    width: 28px;
    height: 28px;
    color: #e2231a;
}
.rg-card-title {
    position: absolute;
    top: clamp(1.2rem, 3vw, 1.7rem);
    right: clamp(1.1rem, 3vw, 1.6rem);
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .24em;
    text-transform: uppercase;
    opacity: .72;
}
.rg-card-value {
    position: absolute;
    left: clamp(1.1rem, 3vw, 1.6rem);
    right: clamp(6.2rem, 18vw, 8rem);
    bottom: clamp(2.7rem, 6vw, 3.4rem);
    display: flex;
    align-items: baseline;
    gap: .35em;
    font-size: clamp(1.55rem, 4.6vw, 2.4rem);
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.05;
    white-space: nowrap;
}
.rg-card-value em { font-style: normal; }
.rg-card-value small {
    font-size: .42em;
    font-weight: 700;
    letter-spacing: .04em;
    opacity: .82;
}
.rg-card-foot {
    position: absolute;
    left: clamp(1.1rem, 3vw, 1.6rem);
    right: clamp(1.1rem, 3vw, 1.6rem);
    bottom: clamp(1rem, 2.6vw, 1.35rem);
    display: flex;
    justify-content: space-between;
    font-size: .68rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    opacity: .62;
}
.rg-card-foot b { font-weight: 600; }

/* ---------------------------------------------------------- 6. amount block */

.rg-amount { display: grid; gap: .85rem; }

.rg-amount-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
}
.rg-amount-label {
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--rg-muted);
}
.rg-amount-range { font-size: .8rem; color: var(--rg-muted); }

.rg-chips {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(5.1rem, 1fr));
    gap: .45rem;
}
.rg-chip {
    min-width: 0;
    padding: .55rem .35rem;
    border: 1px solid var(--rg-line-2);
    border-radius: 10px;
    background: var(--rg-surface);
    color: var(--rg-fg);
    font-weight: 700;
    font-size: .9rem;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
    text-align: center;
    white-space: nowrap;
    transition: transform .15s, border-color .15s, background .15s, color .15s;
}
.rg-chip:hover { transform: translateY(-2px); border-color: var(--rg-accent); }
.rg-chip.is-on {
    background: var(--rg-accent);
    border-color: var(--rg-accent);
    color: var(--rg-ink);
}

.rg-stepper { display: flex; align-items: stretch; gap: .45rem; }
.rg-stepper > button {
    width: 46px;
    border: 1px solid var(--rg-line-2);
    border-radius: 12px;
    background: var(--rg-surface);
    font-size: 1.25rem;
    line-height: 1;
    transition: border-color .15s, background .15s;
}
.rg-stepper > button:hover { border-color: var(--rg-accent); background: var(--rg-surface-2); }
.rg-stepper-field {
    flex: 1;
    display: flex;
    align-items: center;
    gap: .25rem;
    padding: .55rem .9rem;
    border: 1px solid var(--rg-line-2);
    border-radius: 12px;
    background: var(--rg-surface);
}
.rg-stepper-field span { font-weight: 800; color: var(--rg-muted); }
.rg-stepper-field input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--rg-fg);
    -webkit-text-fill-color: var(--rg-fg);
    font-size: 1.15rem;
    font-weight: 800;
    -moz-appearance: textfield;
}
.rg-stepper-field input::-webkit-outer-spin-button,
.rg-stepper-field input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.rg-stepper-field--robux {
    justify-content: center;
    min-height: 2.75rem;
}
.rg-stepper-robux {
    font-family: var(--rg-display, var(--rg-font));
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--rg-fg);
    white-space: nowrap;
}
.rg-amount-hint {
    margin: -.15rem 0 0;
    font-size: .72rem;
    line-height: 1.45;
    color: var(--rg-muted);
}

.rg-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    width: 100%;
    padding: .95rem 1.3rem;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(100deg, var(--rg-accent), var(--rg-accent-2));
    color: var(--rg-ink);
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: -.01em;
    box-shadow: 0 14px 34px color-mix(in srgb, var(--rg-accent) 28%, transparent);
    transition: transform .18s cubic-bezier(.22, .8, .3, 1), box-shadow .18s, filter .18s;
}
.rg-cta:hover { transform: translateY(-2px); filter: brightness(1.05); }
.rg-cta:active { transform: translateY(0); }
.rg-cta-ic { width: 20px; height: 20px; flex-shrink: 0; }
.rg-cta b { font-weight: 800; color: inherit; }
.rg-cta-arrow { transition: transform .2s; }
.rg-cta:hover .rg-cta-arrow { transform: translateX(4px); }

.rg-amount-note { font-size: .78rem; line-height: 1.5; color: var(--rg-muted); }

.rg-buybox {
    padding: clamp(1.1rem, 2.6vw, 1.5rem);
    border-radius: var(--rg-radius);
    border: 1px solid var(--rg-line-2);
    background: var(--rg-surface);
}

.rg-glass {
    border: 1px solid rgba(255, 255, 255, .14);
    background: rgba(255, 255, 255, .06);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    box-shadow: 0 24px 60px rgba(0, 0, 0, .32), inset 0 1px 0 rgba(255, 255, 255, .18);
}

.rg-tile {
    padding: 1.1rem 1.2rem;
    border: 1px solid var(--rg-line);
    border-radius: var(--rg-radius);
    background: var(--rg-surface);
}

.rg-buy-split { display: grid; gap: 1.4rem; }
@media (min-width: 820px) { .rg-buy-split { grid-template-columns: 1fr 1fr; align-items: center; } }

/* range slider — shared shell, themes only retouch size/colour */

.rg-range {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 8px;
    border-radius: var(--rg-pill);
    background: linear-gradient(90deg, var(--rg-accent) var(--rg-fill, 40%), var(--rg-track) var(--rg-fill, 40%));
    outline: 0;
    cursor: pointer;
}
.rg-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 5px solid var(--rg-accent);
    background: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .25);
    cursor: grab;
    transition: transform .15s;
}
.rg-range::-webkit-slider-thumb:active { transform: scale(1.12); cursor: grabbing; }
.rg-range::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 5px solid var(--rg-accent);
    background: #fff;
    cursor: grab;
}

/* --------------------------------------------------------- 6b. sticky bar */

.rg-sticky {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 70;
    padding: .7rem 0 max(.7rem, env(safe-area-inset-bottom));
    border-top: 1px solid var(--rg-line);
    background: var(--rg-sticky-bg, color-mix(in srgb, var(--rg-bg) 88%, transparent));
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}
.rg-sticky-in {
    max-width: var(--rg-maxw);
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    align-items: center;
    gap: 1rem;
}
.rg-sticky-copy { display: none; }
@media (min-width: 720px) { .rg-sticky-copy { display: grid; } }
.rg-sticky-copy b { font-size: .95rem; font-weight: 700; }
.rg-sticky-copy span { font-size: .78rem; color: var(--rg-muted); }
.rg-sticky-price { display: grid; margin-left: auto; }
.rg-sticky-price span { font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rg-muted); }
.rg-sticky-price b { font-size: 1.3rem; font-weight: 800; letter-spacing: -.02em; }
.rg-sticky-cta { width: auto; flex-shrink: 0; padding: .7rem 1.4rem; font-size: .92rem; }

/* --------------------------------------------------------------- 7. trust */

.rg-trust { display: flex; flex-wrap: wrap; gap: .45rem; }
.rg-trust li {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .4rem .75rem;
    border: 1px solid var(--rg-line);
    border-radius: var(--rg-pill);
    background: var(--rg-surface);
    font-size: .8rem;
    font-weight: 600;
    color: var(--rg-fg);
}

/* --------------------------------------------------------------- 8. specs */

.rg-specs {
    display: grid;
    gap: .1rem 1.4rem;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.rg-spec {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .7rem 0;
    border-bottom: 1px solid var(--rg-line);
}
.rg-spec-ic {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    color: var(--rg-accent);
}
.rg-spec dt {
    font-size: .68rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--rg-muted);
}
.rg-spec dd { font-weight: 650; font-size: .92rem; }

.rg-specs-strip { padding: .4rem 1.3rem 1rem; border-radius: var(--rg-radius); }

/* ------------------------------------------------------------- 9. sections */

.rg-body-grid { padding: 0 0 clamp(2.5rem, 6vw, 4.5rem); }
.rg-sec { padding: clamp(1.6rem, 3.4vw, 2.6rem) 0; border-top: 1px solid var(--rg-line); }
.rg-sec:first-child { border-top: 0; padding-top: .75rem; }

.rg-sec-head { display: flex; align-items: baseline; gap: .75rem; margin-bottom: 1.2rem; }
.rg-sec-num {
    font-family: var(--rg-mono);
    font-size: .78rem;
    font-weight: 700;
    color: var(--rg-accent);
    letter-spacing: .1em;
}
.rg-sec-title {
    font-family: var(--rg-display);
    font-size: clamp(1.3rem, 2.4vw, 1.85rem);
    font-weight: 750;
    letter-spacing: -.02em;
}

.rg-prose { display: grid; gap: .9rem; max-width: 62ch; }
.rg-prose p { color: var(--rg-muted); line-height: 1.7; }

.rg-uses {
    display: grid;
    gap: .7rem;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}
.rg-use {
    display: grid;
    gap: .18rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--rg-line);
    border-radius: var(--rg-radius-sm);
    background: var(--rg-surface);
    transition: transform .18s, border-color .18s;
}
.rg-use:hover { transform: translateY(-3px); border-color: var(--rg-accent); }
.rg-use-ic { font-size: 1.35rem; line-height: 1; }
.rg-use b { font-weight: 700; font-size: .96rem; }
.rg-use span { font-size: .84rem; color: var(--rg-muted); }

.rg-steps {
    display: grid;
    gap: .8rem;
    counter-reset: ag-step;
}
@media (min-width: 780px) { .rg-steps { grid-template-columns: repeat(3, 1fr); } }
.rg-step {
    position: relative;
    display: grid;
    gap: .5rem;
    padding: 1.3rem 1.2rem 1.2rem;
    border: 1px solid var(--rg-line);
    border-radius: var(--rg-radius);
    background: var(--rg-surface);
    overflow: hidden;
}
.rg-step-n {
    position: absolute;
    top: -.4rem;
    right: .4rem;
    font-family: var(--rg-display);
    font-size: 3.6rem;
    font-weight: 900;
    line-height: 1;
    color: var(--rg-fg);
    opacity: .07;
}
.rg-step-k {
    display: block;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--rg-accent);
    margin-bottom: .2rem;
}
.rg-step b { display: block; font-size: 1.02rem; font-weight: 700; margin-bottom: .3rem; }
.rg-step p { font-size: .88rem; color: var(--rg-muted); line-height: 1.6; }

.rg-redeem { display: grid; gap: .55rem; counter-reset: ag-r; max-width: 62ch; }
.rg-redeem li {
    counter-increment: ag-r;
    display: flex;
    gap: .8rem;
    padding: .75rem 0;
    border-bottom: 1px dashed var(--rg-line);
    color: var(--rg-muted);
    line-height: 1.6;
}
.rg-redeem li::before {
    content: counter(ag-r);
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: color-mix(in srgb, var(--rg-accent) 18%, transparent);
    color: var(--rg-accent);
    font-size: .78rem;
    font-weight: 800;
}

.rg-faq { display: grid; gap: .5rem; max-width: 72ch; }
.rg-faq details {
    border: 1px solid var(--rg-line);
    border-radius: var(--rg-radius-sm);
    background: var(--rg-surface);
    overflow: hidden;
    transition: border-color .18s;
}
.rg-faq details[open] { border-color: color-mix(in srgb, var(--rg-accent) 45%, transparent); }
.rg-faq summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    font-weight: 650;
    cursor: pointer;
    list-style: none;
}
.rg-faq summary::-webkit-details-marker { display: none; }
.rg-faq summary i {
    position: relative;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
}
.rg-faq summary i::before,
.rg-faq summary i::after {
    content: '';
    position: absolute;
    inset: 50% 0 auto;
    height: 2px;
    background: var(--rg-accent);
    border-radius: 2px;
    transition: transform .2s;
}
.rg-faq summary i::after { transform: rotate(90deg); }
.rg-faq details[open] summary i::after { transform: rotate(0); }
.rg-faq p {
    padding: 0 1.15rem 1.1rem;
    color: var(--rg-muted);
    line-height: 1.65;
}

/* --------------------------------------------------------------- 11. modal */

.rg-modal {
    position: fixed;
    inset: 0;
    z-index: 120;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(4, 6, 12, .72);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
.rg-modal-card {
    position: relative;
    width: 100%;
    max-width: 27rem;
    padding: 1.7rem 1.5rem 1.4rem;
    border-radius: 22px;
    border: 1px solid var(--rg-line-2);
    background: var(--rg-modal-bg, #10151f);
    box-shadow: 0 40px 90px rgba(0, 0, 0, .55);
    text-align: center;
}
.rg-modal-in { transition: transform .26s cubic-bezier(.22, .9, .3, 1), opacity .26s; }
.rg-modal-start { opacity: 0; transform: translateY(20px) scale(.95); }
.rg-modal-end { opacity: 1; transform: none; }
.rg-modal-x {
    position: absolute;
    top: .8rem;
    right: .9rem;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 50%;
    background: var(--rg-surface-2);
    color: var(--rg-muted);
    font-size: .8rem;
}
.rg-modal-x:hover { color: var(--rg-fg); }
.rg-modal-ic {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    margin: 0 auto .9rem;
    padding: 12px;
    border-radius: 50%;
    background: linear-gradient(140deg, #2aabee, #229ed9);
    color: #fff;
}
.rg-modal-kicker {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--rg-accent);
}
.rg-modal-title { font-size: 1.35rem; font-weight: 800; margin: .3rem 0 .55rem; letter-spacing: -.02em; }
.rg-modal-text { font-size: .88rem; color: var(--rg-muted); line-height: 1.6; margin-bottom: 1.1rem; }
.rg-cta--wide { width: 100%; }
.rg-modal-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .35rem .9rem;
    margin-top: 1rem;
    font-size: .76rem;
    color: var(--rg-muted);
}
.rg-modal-list li::before { content: '✓ '; color: var(--rg-accent); font-weight: 800; }

/* --------------------------------------------------------------- 14. foot */

.rg-foot {
    margin-top: auto;
    padding: clamp(2rem, 4vw, 3rem) 0 1.5rem;
    border-top: 1px solid var(--rg-line);
    background: var(--rg-foot-bg, transparent);
}
.rg-foot-in {
    max-width: var(--rg-maxw);
    margin: 0 auto;
    padding: 0 20px;
    display: grid;
    gap: 1.5rem;
}
@media (min-width: 760px) { .rg-foot-in { grid-template-columns: 1fr auto; align-items: start; } }
.rg-foot-brand p { margin-top: .6rem; font-size: .84rem; color: var(--rg-muted); max-width: 38ch; }
.rg-foot-links { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; }
.rg-foot-links a { font-size: .86rem; color: var(--rg-muted); }
.rg-foot-links a:hover { color: var(--rg-accent); }
.rg-foot-legal {
    max-width: var(--rg-maxw);
    margin: 1.5rem auto 0;
    padding: 1rem 20px 0;
    border-top: 1px solid var(--rg-line);
    display: flex;
    flex-wrap: wrap;
    gap: .4rem 1.2rem;
    justify-content: space-between;
    font-size: .74rem;
    color: var(--rg-muted);
}


@keyframes ag-drift {
    to { transform: translate3d(40px, -50px, 0) scale(1.12); }
}
@keyframes ag-bob {
    50% { transform: translateY(-14px) rotate(-1.5deg); }
}

/* --------------------------------------------------------- reduced motion */

@media (prefers-reduced-motion: reduce) {
    .rg-page *,
    .rg-page *::before,
    .rg-page *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}
