:root {
    --red-950: #300108;
    --red-900: #510512;
    --red-800: #760917;
    --red-700: #a40d22;
    --red-600: #d71934;
    --red-500: #ef3e55;
    --green-800: #07402e;
    --green-700: #0c6548;
    --gold: #ffd166;
    --gold-700: #c68a19;
    --cream: #fff3dc;
    --snow: #fffdf8;
    --ink: #27110f;
    --muted: #735f5a;
    --line: #eadfd1;
    --panel: #fffaf1;
    --shadow: 0 28px 80px rgba(49, 1, 8, 0.28);
}

* {
    box-sizing: border-box;
}

html {
    min-width: 320px;
}

body {
    margin: 0;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background:
        radial-gradient(circle at 12% 7%, rgba(255, 209, 102, 0.34), transparent 18rem),
        radial-gradient(circle at 88% 10%, rgba(255, 255, 255, 0.22), transparent 17rem),
        radial-gradient(circle at 82% 78%, rgba(12, 101, 72, 0.48), transparent 18rem),
        linear-gradient(120deg, rgba(49, 1, 8, 0.98), rgba(118, 8, 23, 0.96) 42%, rgba(10, 73, 53, 0.92)),
        url("https://images.unsplash.com/photo-1512909006721-3d6018887383?auto=format&fit=crop&w=2200&q=90");
    background-size: cover;
    background-attachment: fixed;
    color: var(--ink);
}

body.app-shell {
    background: #fff8ed;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(90deg, transparent 0 47%, rgba(255, 209, 102, 0.11) 47% 53%, transparent 53% 100%),
        linear-gradient(0deg, transparent 0 47%, rgba(255, 209, 102, 0.10) 47% 53%, transparent 53% 100%),
        radial-gradient(circle, rgba(255,255,255,0.88) 0 1px, transparent 1.2px),
        radial-gradient(circle at 18px 22px, rgba(255,209,102,0.42) 0 2px, transparent 2.4px),
        linear-gradient(135deg, transparent 0 45%, rgba(255,255,255,0.08) 45% 47%, transparent 47% 100%);
    background-size: 100% 100%, 100% 100%, 86px 86px, 132px 132px, 64px 64px;
    opacity: 0.9;
    mix-blend-mode: screen;
}

body:not(.app-shell)::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background-image:
        radial-gradient(circle, rgba(255,255,255,0.9) 0 1.2px, transparent 1.6px),
        radial-gradient(circle, rgba(255,209,102,0.72) 0 1.1px, transparent 1.5px),
        linear-gradient(90deg, transparent 0 47%, rgba(255,255,255,0.08) 47% 53%, transparent 53%);
    background-size: 74px 74px, 118px 118px, 220px 220px;
    background-position: 0 0, 42px 18px, center;
    opacity: 0.48;
}

body.app-shell::before {
    opacity: 0.08;
}

a {
    color: inherit;
}

.site-shell {
    position: relative;
    min-height: 100vh;
}

.nav {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: 12px 0 6px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.nav-brand-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-width: 0;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    font-weight: 900;
    color: #fff;
    font-size: 1.18rem;
    letter-spacing: 0;
}

.brand.dark {
    color: var(--red-900);
}

.brand-mark {
    width: 40px;
    height: 40px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background:
        linear-gradient(90deg, transparent 0 40%, rgba(255,255,255,0.64) 40% 60%, transparent 60%),
        linear-gradient(0deg, transparent 0 41%, rgba(255,255,255,0.58) 41% 59%, transparent 59%),
        linear-gradient(145deg, var(--red-500), var(--red-800));
    color: var(--gold);
    box-shadow: 0 12px 30px rgba(255, 44, 72, 0.35);
    font-size: 0;
    position: relative;
    flex: 0 0 auto;
}

.brand-mark::after {
    content: "";
    width: 16px;
    height: 10px;
    border: 4px solid rgba(255,255,255,0.78);
    border-bottom: 0;
    border-radius: 999px 999px 0 0;
    position: absolute;
    top: -4px;
    left: 50%;
    transform: translateX(-50%);
}

.nav-links {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.nav-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 800;
    font-size: 0.9rem;
    color: rgba(255,255,255,0.88);
    background: rgba(49, 1, 8, 0.38);
    border: 1px solid rgba(255,255,255,0.18);
}

body.app-shell .nav-link {
    color: var(--red-900);
    background: #fff;
    border-color: var(--line);
}

.nav-link.primary,
.button.primary {
    background: linear-gradient(135deg, var(--gold), var(--gold-700));
    color: #221306;
    border: 0;
    box-shadow: 0 14px 28px rgba(255, 209, 102, 0.24);
}

.nav-toggle {
    display: none;
    width: 46px;
    height: 42px;
    place-items: center;
    gap: 4px;
    padding: 9px;
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 16px;
    background:
        radial-gradient(circle at 20% 18%, rgba(255,209,102,0.42), transparent 1.8rem),
        rgba(49, 1, 8, 0.36);
    box-shadow: 0 12px 28px rgba(49, 1, 8, 0.16);
    cursor: pointer;
}

.nav-toggle span {
    display: block;
    width: 20px;
    height: 2px;
    border-radius: 999px;
    background: #fff8e8;
    transition: transform 160ms ease, opacity 160ms ease;
}

body.app-shell .nav-toggle {
    border-color: #eadfd1;
    background:
        radial-gradient(circle at 20% 18%, rgba(255,209,102,0.28), transparent 1.8rem),
        #fff;
}

body.app-shell .nav-toggle span {
    background: var(--red-900);
}

.nav.nav-open .nav-toggle span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}

.nav.nav-open .nav-toggle span:nth-child(2) {
    opacity: 0;
}

.nav.nav-open .nav-toggle span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

.hero {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.06fr) 430px;
    gap: 26px;
    align-items: start;
    min-height: auto;
    padding: 0 0 44px;
    color: #fff;
}

body:not(.app-shell) .nav,
body:not(.app-shell) .footer {
    width: min(1400px, calc(100% - 40px));
}

.home-page .hero,
.home-page .home-section {
    width: min(1360px, calc(100% - 56px));
}

.home-page .hero {
    grid-template-columns: minmax(0, 1.18fr) 420px;
}

.home-hero-left {
    padding-top: 0;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid rgba(255, 209, 102, 0.42);
    background: rgba(255, 209, 102, 0.16);
    color: #ffe6a9;
    padding: 6px 11px;
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.hero h1 {
    margin: 10px 0 12px;
    font-size: clamp(2.45rem, 4.7vw, 4.85rem);
    line-height: 0.98;
    letter-spacing: 0;
    text-shadow: 0 12px 34px rgba(49, 1, 8, 0.56);
    max-width: 620px;
    text-wrap: balance;
}

.hero h1 span {
    display: block;
    color: var(--gold);
}

.hero-copy {
    max-width: 620px;
    font-size: clamp(1.04rem, 2vw, 1.25rem);
    line-height: 1.55;
    color: rgba(255,255,255,0.84);
    margin: 0 0 16px;
}

.hero-actions,
.form-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.feature-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 16px;
}

.feature {
    border: 1px solid rgba(255,255,255,0.22);
    border-radius: 18px;
    padding: 16px;
    background: linear-gradient(145deg, rgba(255,255,255,0.15), rgba(49,1,8,0.44));
    backdrop-filter: blur(12px);
}

.festive-feature {
    min-height: 154px;
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 84% 18%, rgba(255,209,102,0.26), transparent 4rem),
        linear-gradient(145deg, rgba(255,255,255,0.18), rgba(49,1,8,0.48));
}

.festive-feature::after {
    content: "";
    position: absolute;
    inset: auto 10px 10px auto;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background:
        linear-gradient(90deg, transparent 0 42%, rgba(255,255,255,0.55) 42% 58%, transparent 58%),
        linear-gradient(0deg, transparent 0 42%, rgba(255,255,255,0.5) 42% 58%, transparent 58%),
        linear-gradient(135deg, var(--red-500), var(--red-800));
    opacity: 0.38;
}

.feature-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--gold), var(--gold-700));
    color: #291205;
    font-size: 0.86rem;
    font-weight: 950;
    margin-bottom: 12px;
    box-shadow: 0 10px 24px rgba(255,209,102,0.26);
}

.feature strong {
    display: block;
    margin-bottom: 7px;
    color: #fff;
    line-height: 1.22;
    font-size: 1rem;
}

.feature span {
    color: rgba(255,255,255,0.78);
    font-size: 0.91rem;
    line-height: 1.55;
}

.gift-card,
.panel,
.auth-card {
    background: rgba(255, 253, 248, 0.97);
    border: 1px solid rgba(255,255,255,0.65);
    border-radius: 28px;
    box-shadow: var(--shadow);
}

.gift-card {
    padding: 28px;
    position: relative;
    overflow: hidden;
    margin-top: 0;
}

.home-gift-card {
    padding: 24px;
    border-radius: 32px;
    background:
        linear-gradient(90deg, transparent 0 47%, rgba(215,25,52,0.09) 47% 53%, transparent 53%),
        linear-gradient(0deg, transparent 0 47%, rgba(215,25,52,0.08) 47% 53%, transparent 53%),
        rgba(255, 253, 248, 0.98);
}

.home-gift-card::before {
    display: none;
}

.home-present-scene {
    min-height: 178px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 12px;
    padding: 16px;
    margin-bottom: 14px;
    border-radius: 26px;
    background:
        radial-gradient(circle at 50% 15%, rgba(255,209,102,0.45), transparent 8rem),
        linear-gradient(135deg, #fff4dc, #fffdf8);
    border: 1px solid #f1dcc3;
    position: relative;
    overflow: hidden;
}

.home-present-scene::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle, rgba(215,25,52,0.18) 0 1.4px, transparent 1.6px),
        linear-gradient(90deg, transparent 0 48%, rgba(255,209,102,0.18) 48% 52%, transparent 52%);
    background-size: 34px 34px, 100% 100%;
}

.present {
    position: relative;
    display: block;
    border-radius: 16px;
    background:
        linear-gradient(90deg, transparent 0 42%, rgba(255,255,255,0.72) 42% 58%, transparent 58%),
        linear-gradient(0deg, transparent 0 42%, rgba(255,255,255,0.65) 42% 58%, transparent 58%),
        linear-gradient(145deg, var(--red-600), var(--red-900));
    box-shadow: 0 18px 30px rgba(82, 5, 16, 0.2);
    z-index: 1;
}

.present::before {
    content: "";
    position: absolute;
    left: 50%;
    top: -20px;
    width: 52px;
    height: 34px;
    border: 8px solid rgba(255,255,255,0.72);
    border-radius: 50%;
    transform: translateX(-50%);
}

.present-large {
    width: 116px;
    height: 104px;
}

.present-small {
    width: 72px;
    height: 70px;
    background:
        linear-gradient(90deg, transparent 0 42%, rgba(255,255,255,0.72) 42% 58%, transparent 58%),
        linear-gradient(0deg, transparent 0 42%, rgba(255,255,255,0.65) 42% 58%, transparent 58%),
        linear-gradient(145deg, var(--green-700), var(--green-800));
}

.present-tall {
    width: 78px;
    height: 118px;
    background:
        linear-gradient(90deg, transparent 0 42%, rgba(255,255,255,0.72) 42% 58%, transparent 58%),
        linear-gradient(0deg, transparent 0 42%, rgba(255,255,255,0.65) 42% 58%, transparent 58%),
        linear-gradient(145deg, var(--gold), var(--gold-700));
}

.card-kicker {
    display: inline-flex;
    border-radius: 999px;
    padding: 7px 11px;
    background: #fff1d8;
    color: #8c5415;
    font-size: 0.73rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 12px;
}

.gift-checklist {
    display: grid;
    gap: 8px;
    margin: 14px 0;
}

.gift-checklist div {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 11px;
    border-radius: 14px;
    background: #fff5e7;
    border: 1px solid #efe4d6;
    color: #44261f;
    font-weight: 850;
    font-size: 0.9rem;
}

.gift-checklist span {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #e2f4ea;
    color: #116239;
    flex: 0 0 auto;
    font-weight: 950;
}

.gift-card::after {
    content: "";
    position: absolute;
    width: 160px;
    height: 160px;
    right: -72px;
    bottom: -76px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 209, 102, 0.42), transparent 68%);
    pointer-events: none;
}

.gift-card::before {
    content: "";
    display: block;
    height: 74px;
    border-radius: 22px;
    background:
        linear-gradient(90deg, transparent 46%, rgba(255,255,255,0.72) 46% 54%, transparent 54%),
        linear-gradient(0deg, transparent 42%, rgba(255,255,255,0.68) 42% 58%, transparent 58%),
        linear-gradient(135deg, var(--red-600), #ff4d62);
    margin-bottom: 20px;
}

.christmas-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    max-width: 760px;
    margin-top: 12px;
}

.christmas-strip div {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    padding: 10px 12px;
    border-radius: 18px;
    background:
        radial-gradient(circle at 85% 20%, rgba(255,209,102,0.18), transparent 4rem),
        linear-gradient(135deg, rgba(255,255,255,0.16), rgba(49,1,8,0.4));
    border: 1px solid rgba(255,255,255,0.2);
    backdrop-filter: blur(12px);
}

.christmas-strip b {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--gold), var(--gold-700));
    color: #27110f;
    font-size: 0.78rem;
    flex: 0 0 auto;
}

.christmas-strip span {
    color: rgba(255,255,255,0.86);
    font-weight: 900;
    font-size: 0.86rem;
}

.home-page {
    position: relative;
    padding-bottom: 70px;
}

.home-page::before {
    content: "";
    position: absolute;
    top: 520px;
    left: 50%;
    width: min(980px, 70vw);
    height: 1px;
    transform: translateX(-50%);
    background: linear-gradient(90deg, transparent, rgba(255,209,102,0.55), transparent);
    pointer-events: none;
}

.home-hero {
    gap: 34px;
    padding: 18px 0 28px;
    align-items: center;
}

.home-hero h1 {
    max-width: 780px;
    font-size: clamp(2.35rem, 4.6vw, 4.35rem);
    line-height: 1.02;
    margin: 14px 0 16px;
}

.home-mini-proof {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.home-mini-proof span {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(255,255,255,0.14);
    border: 1px solid rgba(255,255,255,0.18);
    color: rgba(255,255,255,0.86);
    font-weight: 900;
    font-size: 0.84rem;
}

.home-feature-row {
    margin-top: 22px;
}

.home-feature-row .festive-feature {
    min-height: 132px;
    padding: 18px;
    background:
        radial-gradient(circle at 86% 16%, rgba(255,209,102,0.18), transparent 4.4rem),
        linear-gradient(145deg, rgba(255,255,255,0.12), rgba(49,1,8,0.34));
    box-shadow: none;
}

.home-feature-row .feature-icon {
    width: 34px;
    height: 34px;
    margin-bottom: 10px;
}

.home-draw-card {
    align-self: start;
}

.home-section {
    width: min(1180px, calc(100% - 40px));
    margin: 32px auto 0;
    position: relative;
}

.home-section-head {
    max-width: 840px;
    margin-bottom: 22px;
}

.home-section-head.compact {
    max-width: 940px;
}

.home-section-head h2,
.home-final-cta h2 {
    margin: 10px 0 10px;
    color: #fff;
    font-size: clamp(1.55rem, 2.6vw, 2.35rem);
    line-height: 1.08;
    letter-spacing: 0;
    text-shadow: 0 12px 34px rgba(49, 1, 8, 0.34);
}

.home-section-head p,
.home-final-cta p {
    margin: 0;
    max-width: 840px;
    color: rgba(255,255,255,0.78);
    line-height: 1.72;
    font-weight: 650;
}

.home-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.22);
    border-radius: 999px;
    background:
        radial-gradient(circle at 12% 20%, rgba(255,209,102,0.2), transparent 16rem),
        linear-gradient(135deg, rgba(255,255,255,0.16), rgba(49,1,8,0.38));
    box-shadow: 0 20px 58px rgba(49, 1, 8, 0.18);
    backdrop-filter: blur(14px);
}

.home-info-card,
.home-exchange-card,
.home-final-cta {
    border: 1px solid rgba(255,255,255,0.2);
    background:
        radial-gradient(circle at 90% 10%, rgba(255,209,102,0.17), transparent 5rem),
        linear-gradient(145deg, rgba(255,255,255,0.16), rgba(49,1,8,0.52));
    box-shadow: 0 24px 70px rgba(49, 1, 8, 0.24);
    backdrop-filter: blur(14px);
}

.home-stats div {
    min-height: 82px;
    padding: 15px 24px;
    color: #fff;
    text-align: center;
    border-right: 1px solid rgba(255,255,255,0.16);
}

.home-stats div:last-child {
    border-right: 0;
}

.home-stats strong {
    display: block;
    color: var(--gold);
    font-size: clamp(1.65rem, 3vw, 2.4rem);
    line-height: 0.95;
}

.home-stats span {
    display: block;
    margin-top: 6px;
    color: rgba(255,255,255,0.82);
    font-weight: 780;
}

.home-card-grid {
    display: grid;
    gap: 18px;
}

.home-card-grid.three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    padding: 18px 0;
    border-top: 1px solid rgba(255,255,255,0.22);
    border-bottom: 1px solid rgba(255,255,255,0.22);
}

.home-card-grid.exchange-types {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.22);
    border-radius: 34px;
    background:
        radial-gradient(circle at 90% 10%, rgba(255,209,102,0.16), transparent 18rem),
        linear-gradient(145deg, rgba(255,255,255,0.12), rgba(49,1,8,0.4));
    box-shadow: 0 24px 70px rgba(49, 1, 8, 0.18);
    backdrop-filter: blur(14px);
}

.home-info-card,
.home-exchange-card {
    min-height: auto;
    padding: 22px 26px;
    border-radius: 0;
    color: #fff;
    overflow: hidden;
    position: relative;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.home-info-card {
    border-right: 1px solid rgba(255,255,255,0.18);
}

.home-info-card:last-child {
    border-right: 0;
}

.home-exchange-card {
    min-height: 190px;
    border-right: 1px solid rgba(255,255,255,0.16);
    border-bottom: 1px solid rgba(255,255,255,0.16);
}

.home-exchange-card:nth-child(2n) {
    border-right: 0;
}

.home-exchange-card:nth-last-child(-n+2) {
    border-bottom: 0;
}

.home-info-card::before,
.home-exchange-card::before {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 17px;
    background: rgba(255,255,255,0.14);
    border: 1px solid rgba(255,255,255,0.2);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.22);
    color: #fff;
    font-size: 1.35rem;
    margin-bottom: 16px;
}

.home-info-card:nth-child(1)::before { content: "\1F384"; }
.home-info-card:nth-child(2)::before { content: "\1F48C"; }
.home-info-card:nth-child(3)::before { content: "\1F381"; }
.home-exchange-card:nth-child(1)::before { content: "\1F385"; }
.home-exchange-card:nth-child(2)::before { content: "\1F418"; }
.home-exchange-card:nth-child(3)::before { content: "\1F504"; }
.home-exchange-card:nth-child(4)::before { content: "\2728"; }

.home-info-card b {
    width: 42px;
    height: 42px;
    display: none;
    place-items: center;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--gold), var(--gold-700));
    color: #27110f;
    box-shadow: 0 10px 24px rgba(255,209,102,0.2);
}

.home-info-card h3,
.home-exchange-card h3 {
    margin: 0 0 10px;
    color: #fff;
    font-size: 1.18rem;
    line-height: 1.25;
}

.home-info-card p,
.home-exchange-card p {
    margin: 0;
    color: rgba(255,255,255,0.8);
    line-height: 1.66;
    font-weight: 600;
}

.home-exchange-card span {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    padding: 0 10px;
    border-radius: 999px;
    color: #ffe4a0;
    background: rgba(255,209,102,0.13);
    border: 1px solid rgba(255,209,102,0.25);
    font-size: 0.75rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.home-exchange-card.featured {
    background:
        linear-gradient(90deg, transparent 0 46%, rgba(255,255,255,0.10) 46% 54%, transparent 54%),
        linear-gradient(0deg, transparent 0 46%, rgba(255,255,255,0.10) 46% 54%, transparent 54%),
        radial-gradient(circle at 88% 14%, rgba(255,209,102,0.28), transparent 5.5rem),
        linear-gradient(145deg, rgba(215,25,52,0.34), rgba(49,1,8,0.34));
}

.home-exchange-card a {
    display: inline-flex;
    margin-top: 16px;
    color: var(--gold);
    font-weight: 950;
    text-decoration: none;
}

.home-wishlist-section {
    padding: 12px 0 4px;
    border-radius: 0;
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 28px;
    align-items: center;
    overflow: hidden;
    position: relative;
    border: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.home-wishlist-section::after {
    content: "";
    position: absolute;
    right: -42px;
    top: -46px;
    width: 180px;
    height: 180px;
    border-radius: 34px;
    transform: rotate(10deg);
    background:
        linear-gradient(90deg, transparent 0 42%, rgba(255,255,255,0.66) 42% 58%, transparent 58%),
        linear-gradient(0deg, transparent 0 42%, rgba(255,255,255,0.58) 42% 58%, transparent 58%),
        linear-gradient(135deg, rgba(255,209,102,0.92), rgba(198,138,25,0.78));
    opacity: 0.22;
}

.home-pill-cloud,
.home-gift-ideas {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.home-pill-cloud span,
.home-gift-ideas span {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0 16px;
    border-radius: 999px;
    background: rgba(255,255,255,0.92);
    color: var(--red-900);
    border: 1px solid rgba(255,255,255,0.64);
    font-weight: 850;
    box-shadow: 0 12px 30px rgba(49,1,8,0.12);
}

.home-gift-ideas span {
    background: rgba(255, 253, 248, 0.94);
    color: var(--red-900);
    min-height: 46px;
}

.home-gift-ideas span::before,
.home-pill-cloud span::before {
    content: "";
    width: 8px;
    height: 8px;
    margin-right: 9px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--red-600), var(--gold));
    box-shadow: 0 0 0 4px rgba(215,25,52,0.08);
}

.home-faq-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.22);
    border-radius: 28px;
    background:
        radial-gradient(circle at 92% 8%, rgba(255,209,102,0.15), transparent 16rem),
        linear-gradient(145deg, rgba(255,255,255,0.13), rgba(49,1,8,0.35));
    box-shadow: 0 24px 70px rgba(49, 1, 8, 0.17);
    backdrop-filter: blur(14px);
}

.home-faq-list details {
    border-radius: 0;
    color: #fff;
    padding: 0;
    border: 0;
    border-bottom: 1px solid rgba(255,255,255,0.15);
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.home-faq-list details:last-child {
    border-bottom: 0;
}

.home-faq-list summary {
    cursor: pointer;
    list-style: none;
    padding: 20px 22px;
    font-weight: 900;
    line-height: 1.35;
}

.home-faq-list summary::-webkit-details-marker {
    display: none;
}

.home-faq-list summary::after {
    content: "+";
    float: right;
    color: var(--gold);
}

.home-faq-list details[open] summary::after {
    content: "-";
}

.home-faq-list p {
    margin: 0;
    padding: 0 22px 20px;
    color: rgba(255,255,255,0.8);
    line-height: 1.7;
    font-weight: 600;
}

.home-final-cta {
    border-radius: 32px;
    padding: 42px;
    color: #fff;
    background:
        linear-gradient(90deg, transparent 0 47%, rgba(255,255,255,0.10) 47% 53%, transparent 53%),
        linear-gradient(0deg, transparent 0 47%, rgba(255,255,255,0.09) 47% 53%, transparent 53%),
        radial-gradient(circle at 88% 16%, rgba(255,209,102,0.28), transparent 7rem),
        linear-gradient(135deg, rgba(12,101,72,0.82), rgba(81,5,18,0.82));
}

.home-final-cta .hero-actions {
    margin-top: 18px;
}

.gift-card h2,
.auth-card h1,
.panel h2,
.panel h3 {
    margin: 0 0 8px;
    color: var(--ink);
}

.gift-card p,
.muted {
    color: var(--muted);
    line-height: 1.55;
}

.button,
button.button {
    min-height: 44px;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 0 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-weight: 900;
    font-family: inherit;
    font-size: 0.93rem;
    cursor: pointer;
    background: #fff;
    color: var(--red-900);
}

.button.danger {
    color: #a51627;
}

.button.full {
    width: 100%;
}

.input,
input,
textarea,
select {
    width: 100%;
    min-height: 46px;
    border: 1px solid #ded2c3;
    border-radius: 14px;
    padding: 10px 13px;
    font: inherit;
    color: var(--ink);
    background: #fff;
    outline: none;
}

textarea {
    min-height: 112px;
    resize: vertical;
}

input:focus,
textarea:focus,
select:focus {
    border-color: var(--red-600);
    box-shadow: 0 0 0 4px rgba(215, 25, 52, 0.12);
}

label {
    display: block;
    margin-bottom: 6px;
    font-size: 0.8rem;
    color: #3d302d;
    font-weight: 900;
}

.form-grid {
    display: grid;
    gap: 14px;
}

.two-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.three-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.app-main {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: 28px 0 64px;
}

.dashboard-main {
    width: min(1240px, calc(100% - 40px));
}

.dashboard-hero-card {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) 300px;
    gap: 16px;
    align-items: stretch;
    padding: 18px 20px;
    margin-bottom: 14px;
    border-radius: 24px;
    background:
        radial-gradient(circle at 88% 14%, rgba(255, 209, 102, 0.34), transparent 13rem),
        radial-gradient(circle at 14% 20%, rgba(255, 255, 255, 0.13), transparent 16rem),
        linear-gradient(135deg, #4b030d, #8f0b1d 52%, #d71934);
    color: #fff;
    box-shadow: 0 18px 46px rgba(49, 1, 8, 0.18);
}

.dashboard-hero-card::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(90deg, transparent 0 47%, rgba(255,255,255,0.08) 47% 53%, transparent 53%),
        linear-gradient(0deg, transparent 0 47%, rgba(255,255,255,0.08) 47% 53%, transparent 53%),
        radial-gradient(circle, rgba(255,255,255,0.35) 0 1px, transparent 1.2px);
    background-size: 100% 100%, 100% 100%, 72px 72px;
    opacity: 0.9;
}

.dashboard-hero-copy,
.dashboard-hero-panel {
    position: relative;
    z-index: 1;
}

.dashboard-kicker {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    min-height: 25px;
    padding: 0 10px;
    background: rgba(255, 209, 102, 0.16);
    border: 1px solid rgba(255, 209, 102, 0.38);
    color: #ffe2a4;
    font-size: 0.66rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.dashboard-hero-copy h1 {
    margin: 8px 0 7px;
    color: #fff;
    font-size: clamp(1.8rem, 3.4vw, 3rem);
    line-height: 1.02;
    letter-spacing: 0;
    max-width: 820px;
}

.dashboard-hero-copy p {
    max-width: 760px;
    margin: 0;
    color: rgba(255,255,255,0.82);
    line-height: 1.45;
    font-size: 0.92rem;
}

.dashboard-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.dashboard-actions .button {
    min-height: 38px;
    padding: 0 14px;
    font-size: 0.88rem;
}

.dashboard-hero-panel {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 8px;
    min-height: 0;
    padding: 13px;
    border-radius: 18px;
    background: rgba(255, 253, 248, 0.12);
    border: 1px solid rgba(255,255,255,0.22);
    backdrop-filter: blur(12px);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.16);
}

.dashboard-hero-panel > span {
    color: #ffe2a4;
    font-weight: 950;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.dashboard-hero-panel strong {
    display: block;
    color: #fff;
    font-size: 2.45rem;
    line-height: 0.92;
}

.dashboard-hero-panel p {
    margin: 0;
    color: rgba(255,255,255,0.78);
    line-height: 1.25;
    font-weight: 750;
    font-size: 0.82rem;
}

.dashboard-next {
    display: grid;
    gap: 2px;
    padding: 9px;
    border-radius: 13px;
    background: rgba(255,255,255,0.14);
}

.dashboard-next small,
.dashboard-next em {
    color: rgba(255,255,255,0.72);
    font-style: normal;
    font-weight: 800;
}

.dashboard-next b {
    color: #fff;
    font-size: 0.98rem;
}

.dashboard-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.dashboard-stat {
    position: relative;
    overflow: hidden;
    display: grid;
    gap: 4px;
    min-height: 82px;
    padding: 13px 14px 12px;
    border-radius: 18px;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,247,235,0.98)),
        #fffdf8;
    border: 1px solid #eadfd1;
    box-shadow: 0 10px 26px rgba(49, 1, 8, 0.065);
}

.dashboard-stat::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, var(--red-700), var(--gold));
}

.dashboard-stat span,
.dashboard-stat small {
    display: block;
    position: relative;
    z-index: 1;
}

.dashboard-stat span {
    color: #6f453a;
    font-size: 0.75rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.dashboard-stat strong {
    display: block;
    position: relative;
    z-index: 1;
    margin: 0;
    color: var(--red-950);
    font-size: 2rem;
    line-height: 1;
    letter-spacing: 0;
    text-align: left;
}

.dashboard-stat small {
    color: #735f5a;
    font-weight: 750;
    line-height: 1.28;
    font-size: 0.82rem;
}

.dashboard-stat.alert {
    background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,243,239,0.98)),
        #fff8f5;
    border-color: #f1c9c2;
}

.dashboard-stat.alert::before {
    background: linear-gradient(90deg, var(--red-700), #f4a6a0);
}

.dashboard-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin: 26px 0 14px;
}

.dashboard-section-head h2 {
    margin: 0 0 5px;
    color: var(--red-950);
    font-size: clamp(1.7rem, 3vw, 2.4rem);
}

.dashboard-exchange-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.dashboard-exchange-card {
    min-height: 315px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 18px;
    border-radius: 24px;
    background:
        linear-gradient(#fffdf8, #fffdf8) padding-box,
        linear-gradient(145deg, rgba(215,25,52,0.28), rgba(255,209,102,0.55)) border-box;
    border: 1px solid transparent;
    box-shadow: 0 18px 44px rgba(49, 1, 8, 0.1);
}

.dashboard-exchange-card.is-ready {
    background:
        linear-gradient(#fffdf8, #fffdf8) padding-box,
        linear-gradient(145deg, rgba(15,106,72,0.34), rgba(255,209,102,0.55)) border-box;
}

.dashboard-exchange-card.needs-people {
    background:
        linear-gradient(#fffdf8, #fffdf8) padding-box,
        linear-gradient(145deg, rgba(215,25,52,0.32), rgba(244,199,192,0.82)) border-box;
}

.exchange-card-top {
    display: grid;
    gap: 8px;
}

.exchange-card-top h3 {
    margin: 0;
    color: var(--red-950);
    font-size: 1.22rem;
    line-height: 1.18;
}

.exchange-card-top p {
    margin: 0;
    color: var(--muted);
    font-weight: 800;
    line-height: 1.45;
    font-size: 0.9rem;
}

.exchange-state {
    display: inline-flex;
    align-self: flex-start;
    min-height: 28px;
    align-items: center;
    border-radius: 999px;
    padding: 0 10px;
    background: #f6ead9;
    color: #6d3f20;
    font-size: 0.77rem;
    font-weight: 950;
}

.is-ready .exchange-state {
    background: #e2f4ea;
    color: #116239;
}

.needs-people .exchange-state {
    background: #fff0f2;
    color: #a71731;
}

.exchange-progress {
    display: grid;
    gap: 8px;
}

.exchange-progress-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: #5f4038;
    font-weight: 950;
    font-size: 0.84rem;
}

.exchange-progress-track {
    height: 10px;
    border-radius: 999px;
    background: #f3e6d7;
    overflow: hidden;
}

.exchange-progress-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--red-600), var(--gold));
}

.is-ready .exchange-progress-track span {
    background: linear-gradient(90deg, var(--green-700), var(--gold));
}

.exchange-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
}

.exchange-meta div {
    padding: 10px;
    border-radius: 16px;
    background: #fff5e7;
    border: 1px solid #efe4d6;
}

.exchange-meta dt,
.exchange-meta dd {
    margin: 0;
}

.exchange-meta dt {
    color: #7b5a4d;
    font-size: 0.72rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.exchange-meta dd {
    margin-top: 4px;
    color: var(--ink);
    font-weight: 950;
    font-size: 0.86rem;
    line-height: 1.25;
}

.exchange-card-action {
    margin-top: auto;
}

.dashboard-empty-state {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr) 320px;
    gap: 24px;
    align-items: center;
    padding: clamp(22px, 4vw, 34px);
    border-radius: 30px;
    background: #fffdf8;
    border: 1px solid #eadfd1;
    box-shadow: var(--shadow);
}

.dashboard-empty-state h2 {
    margin: 12px 0 8px;
    color: var(--red-950);
    font-size: clamp(1.9rem, 4vw, 3rem);
    line-height: 1;
}

.dashboard-empty-state p {
    margin: 0;
    color: var(--muted);
    line-height: 1.65;
}

.dashboard-empty-gift {
    width: 150px;
    aspect-ratio: 1;
    border-radius: 30px;
    background:
        linear-gradient(90deg, transparent 0 42%, rgba(255,255,255,0.72) 42% 58%, transparent 58%),
        linear-gradient(0deg, transparent 0 42%, rgba(255,255,255,0.66) 42% 58%, transparent 58%),
        linear-gradient(145deg, var(--red-600), var(--red-900));
    box-shadow: 0 20px 48px rgba(215,25,52,0.2);
}

.dashboard-empty-steps {
    display: grid;
    gap: 10px;
}

.dashboard-empty-steps div {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    padding: 10px;
    border-radius: 16px;
    background: #fff5e7;
    border: 1px solid #efe4d6;
}

.dashboard-empty-steps b {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--red-700);
    color: #fff;
}

.dashboard-empty-steps span {
    color: #4b312b;
    font-weight: 900;
}

.app-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.app-header h1 {
    margin: 0 0 8px;
    color: var(--red-950);
    font-size: clamp(2rem, 4vw, 3.2rem);
}

.panel {
    padding: 22px;
    margin-bottom: 18px;
}

.panel.soft {
    background: #fffdf8;
    box-shadow: 0 14px 35px rgba(49, 1, 8, 0.08);
}

.exchange-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.exchange-card {
    min-height: 190px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.exchange-card h3 {
    margin-bottom: 2px;
}

.badge-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    border-radius: 999px;
    padding: 0 10px;
    background: #f6ead9;
    color: #6d3f20;
    font-size: 0.78rem;
    font-weight: 900;
}

.badge.green {
    background: #e2f4ea;
    color: #116239;
}

.badge.red {
    background: #fff0f2;
    color: #a71731;
}

.table-wrap {
    overflow-x: auto;
}

.table {
    width: 100%;
    border-collapse: collapse;
    min-width: 720px;
}

.table th,
.table td {
    text-align: left;
    padding: 11px 10px;
    border-bottom: 1px solid #efe4d6;
    vertical-align: top;
}

.table th {
    color: #6b4a3e;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.split-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(320px, 0.8fr);
    gap: 18px;
    align-items: start;
}

.exchange-workspace {
    width: min(1720px, calc(100% - 28px));
}

.exchange-hero {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: end;
    padding: 24px;
    margin-bottom: 14px;
    border-radius: 30px;
    background:
        radial-gradient(circle at 88% 12%, rgba(255,209,102,0.34), transparent 12rem),
        linear-gradient(135deg, #4b030d, #8d0b1d 56%, #d71934);
    box-shadow: 0 26px 70px rgba(49, 1, 8, 0.18);
    color: #fff;
}

.exchange-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(90deg, transparent 0 47%, rgba(255,255,255,0.07) 47% 53%, transparent 53%),
        linear-gradient(0deg, transparent 0 47%, rgba(255,255,255,0.07) 47% 53%, transparent 53%),
        radial-gradient(circle, rgba(255,255,255,0.28) 0 1px, transparent 1.2px);
    background-size: 100% 100%, 100% 100%, 72px 72px;
}

.exchange-hero > * {
    position: relative;
    z-index: 1;
}

.exchange-hero h1 {
    margin: 12px 0 12px;
    color: #fff;
    font-size: clamp(2rem, 4vw, 3.8rem);
    line-height: 0.98;
    text-wrap: balance;
}

.exchange-hero-meta,
.exchange-hero-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.exchange-hero-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(255,255,255,0.14);
    border: 1px solid rgba(255,255,255,0.2);
    color: rgba(255,255,255,0.88);
    font-weight: 850;
    font-size: 0.86rem;
}

.exchange-hero .button {
    border-color: rgba(255,255,255,0.28);
    background: rgba(255,255,255,0.96);
    color: var(--red-900);
}

.exchange-hero .button.primary {
    background: linear-gradient(135deg, var(--gold), var(--gold-700));
    color: #27110f;
}

.exchange-readiness {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.exchange-readiness article {
    min-height: 106px;
    padding: 16px;
    border-radius: 22px;
    background: #fffdf8;
    border: 1px solid #efe4d6;
    box-shadow: 0 12px 28px rgba(49, 1, 8, 0.06);
}

.exchange-readiness article > span,
.section-label {
    display: inline-flex;
    color: var(--red-700);
    font-size: 0.72rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.exchange-readiness strong {
    display: block;
    margin: 8px 0 4px;
    color: var(--red-950);
    font-size: 1.55rem;
    line-height: 1;
}

.exchange-readiness small {
    color: var(--muted);
    font-weight: 800;
}

.exchange-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 18px 0;
}

.exchange-tab {
    display: inline-grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    min-width: 190px;
    padding: 8px 10px 8px 16px;
    border-radius: 18px;
    background: #fffdf8;
    border: 1px solid #efe4d6;
    color: var(--red-950);
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(49, 1, 8, 0.045);
}

.exchange-tab span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.9rem;
    font-weight: 950;
}

.exchange-tab strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    min-width: 34px;
    padding: 0 10px;
    border-radius: 999px;
    background: #fff5e7;
    color: #8a6656;
    font-size: 0.76rem;
    font-weight: 950;
}

.exchange-tab.active {
    background: linear-gradient(135deg, var(--red-900), var(--red-700));
    border-color: transparent;
    color: #fff;
    box-shadow: 0 16px 34px rgba(164, 13, 34, 0.2);
}

.exchange-tab.active strong {
    background: rgba(255,255,255,0.18);
    color: #fff;
}

.exchange-tab-panel {
    display: block;
}

.exchange-layout {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 420px);
    gap: 18px;
}

.exchange-main-stack {
    min-width: 0;
}

.exchange-sidebar {
    position: sticky;
    top: 12px;
}

.exchange-panel {
    padding: 20px;
}

.panel-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 16px;
}

.exchange-panel .panel-head {
    align-items: center;
    padding-bottom: 14px;
    border-bottom: 1px solid #efe4d6;
}

.exchange-panel .panel-head > div {
    min-width: 0;
}

.panel-head.compact {
    margin-bottom: 12px;
}

.panel-head h2 {
    margin: 5px 0 3px;
}

.panel-head p {
    margin: 0;
}

.panel-head-action {
    flex: 0 0 auto;
    margin-top: 0;
}

.exchange-alert {
    border-left: 5px solid var(--gold);
    background: #fff7e4;
}

.participant-add-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 170px;
    gap: 12px;
    align-items: end;
    padding: 14px;
    margin: 0 0 14px;
    border-radius: 20px;
    background: #fff5e7;
    border: 1px solid #efe4d6;
}

.participant-add-form label {
    margin: 0;
}

.participant-add-form label span,
.participant-fields label span {
    display: block;
    margin-bottom: 6px;
    color: #5c4038;
    font-size: 0.76rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.participant-table-wrap {
    margin-top: 0 !important;
    overflow: visible;
}

.participant-table {
    min-width: 0;
    border-collapse: separate;
    border-spacing: 0 10px;
}

.participant-table thead {
    display: none;
}

.participant-table tbody,
.participant-table tr {
    display: block;
}

.participant-table tr {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(240px, 1.15fr) minmax(220px, 1fr) minmax(320px, 0.95fr);
    gap: 14px;
    align-items: stretch;
    padding: 14px;
    border: 1px solid #efe4d6;
    border-radius: 20px;
    background: #fffaf1;
    box-shadow: 0 10px 24px rgba(49, 1, 8, 0.045);
}

.participant-table td {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 7px;
    justify-content: flex-start;
    padding: 0;
    border: 0;
    min-width: 0;
}

.participant-table td::before {
    align-self: flex-start;
    color: #7b5a4d;
    font-size: 0.68rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.participant-table td:nth-child(1)::before {
    content: "Name";
}

.participant-table td:nth-child(2)::before {
    content: "Email";
}

.participant-table td:nth-child(3)::before {
    content: "Private page";
}

.participant-table td:nth-child(4)::before {
    content: "Actions";
}

.participant-table td:last-child {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    align-self: stretch;
    align-content: start;
}

.participant-table td:last-child::before {
    grid-column: 1 / -1;
}

.participant-table td:last-child form {
    margin-top: 0 !important;
}

.participant-table td form {
    width: 100%;
}

.participant-table input {
    min-height: 42px;
    border-radius: 12px;
}

.button.compact,
.participant-table .button {
    min-height: 38px;
    height: 38px;
    border-radius: 999px;
    padding: 0 11px;
    font-size: 0.8rem;
    width: 100%;
    white-space: nowrap;
    box-shadow: 0 8px 18px rgba(49, 1, 8, 0.06);
}

.participant-table td:last-child .button {
    border: 1px solid #eadfd1;
    background: #fff;
    color: var(--red-900);
}

.participant-table td:last-child .button:hover {
    border-color: rgba(215,25,52,0.28);
    transform: translateY(-1px);
}

.participant-table td:last-child .button.danger {
    background: #fff0f2;
    border-color: #f3bac4;
    color: #a71731;
}

.private-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    width: 100%;
    padding: 0 10px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #eadfd1;
    text-decoration: none;
    font-weight: 900;
    word-break: normal;
}

.participant-email-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    width: 100%;
    padding: 0 10px;
    border-radius: 999px;
    background: #f6ead9;
    color: #6d3f20;
    font-size: 0.76rem;
    font-weight: 950;
    text-align: center;
}

.participant-email-status.sent {
    background: #e2f4ea;
    color: #116239;
}

.participant-email-status.failed {
    background: #fff0f2;
    color: #a71731;
}

.participant-email-status.not-sent {
    background: #fff5e7;
    color: #8a6656;
}

.email-missing {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    height: 38px;
    width: 100%;
    padding: 0 10px;
    border-radius: 999px;
    background: #fff5e7;
    border: 1px solid #eadfd1;
    color: #8a6656;
    font-size: 0.78rem;
    font-weight: 900;
}

.participant-accordion-list {
    display: grid;
    gap: 10px;
}

.participant-empty-card,
.participant-accordion {
    border: 1px solid #efe4d6;
    border-radius: 20px;
    background: #fffaf1;
    box-shadow: 0 10px 24px rgba(49, 1, 8, 0.045);
}

.participant-empty-card {
    display: grid;
    gap: 4px;
    padding: 18px;
    color: #5b4039;
}

.participant-empty-card strong {
    color: var(--red-950);
}

.participant-accordion {
    overflow: hidden;
}

.participant-summary {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) minmax(150px, 0.7fr) minmax(130px, 0.6fr) auto;
    gap: 10px;
    align-items: center;
    padding: 12px;
    cursor: pointer;
    list-style: none;
}

.participant-summary::-webkit-details-marker {
    display: none;
}

.participant-summary-main {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.participant-summary-main strong,
.participant-summary-main small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.participant-summary-main strong {
    color: var(--red-950);
    font-size: 0.98rem;
}

.participant-summary-main small {
    color: #7b5a4d;
    font-weight: 750;
}

.participant-wishlist-state,
.participant-summary-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 950;
    white-space: nowrap;
}

.participant-wishlist-state {
    background: #fff5e7;
    color: #8a6656;
    border: 1px solid #eadfd1;
}

.participant-wishlist-state.has-details {
    background: #e2f4ea;
    color: #116239;
    border-color: #c5e8d2;
}

.participant-summary-toggle {
    background: var(--red-900);
    color: #fff;
}

.participant-accordion[open] .participant-summary-toggle {
    background: #fff;
    color: var(--red-900);
    border: 1px solid rgba(215, 25, 52, 0.24);
}

.participant-summary-toggle .toggle-close {
    display: none;
}

.participant-accordion[open] .participant-summary-toggle .toggle-open {
    display: none;
}

.participant-accordion[open] .participant-summary-toggle .toggle-close {
    display: inline;
}

.participant-accordion-body {
    display: grid;
    grid-template-columns: minmax(300px, 0.95fr) minmax(320px, 1.25fr);
    gap: 9px;
    padding: 0 10px 10px;
}

.participant-manage-card,
.participant-edit-card,
.participant-link-card,
.participant-shared-card {
    display: grid;
    gap: 8px;
    align-content: start;
    padding: 10px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid #efe4d6;
}

.participant-manage-card h3,
.participant-edit-card h3,
.participant-link-card h3,
.participant-shared-card h3 {
    margin: 0;
    color: var(--red-950);
    font-size: 0.82rem;
    line-height: 1.15;
}

.participant-edit-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)) 92px;
    gap: 8px;
    align-items: end;
}

.participant-edit-form label {
    display: grid;
    gap: 5px;
}

.participant-edit-form span {
    color: #7b5a4d;
    font-size: 0.72rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.participant-edit-form input {
    min-height: 40px;
    border-radius: 12px;
}

.participant-action-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}

.participant-private-tools {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(170px, 0.9fr);
    gap: 6px;
    align-items: stretch;
}

.participant-action-grid form {
    margin: 0;
}

.participant-action-grid .button,
.participant-edit-form .button {
    min-height: 36px;
    height: 36px;
    width: 100%;
    padding: 0 12px;
    border-radius: 999px;
    font-size: 0.76rem;
    white-space: nowrap;
}

.participant-shared-detail {
    padding: 8px 9px;
    border-radius: 12px;
    background: #fff8ed;
    border: 1px solid #efe4d6;
}

.participant-shared-detail strong {
    display: block;
    margin-bottom: 3px;
    color: var(--red-900);
    font-size: 0.64rem;
    font-weight: 950;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.participant-shared-detail p,
.participant-empty-details {
    margin: 0;
    color: #5f4640;
    line-height: 1.28;
    font-size: 0.78rem;
}

.participant-shared-detail p {
    max-height: 68px;
    overflow: auto;
}

.participant-empty-details {
    padding: 8px 9px;
    border-radius: 12px;
    background: #fff8ed;
    border: 1px dashed #eadfd1;
    font-weight: 800;
}

.email-status-list {
    display: grid;
    gap: 8px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #efe4d6;
}

.email-status-list > strong {
    color: var(--red-950);
    font-size: 0.9rem;
}

.email-status-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    padding: 9px 10px;
    border-radius: 12px;
    background: #fff5e7;
    color: #4b312b;
    font-size: 0.82rem;
    font-weight: 850;
}

.email-status-row span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.email-status-row em {
    font-style: normal;
    border-radius: 999px;
    padding: 3px 8px;
    background: #f6ead9;
    color: #6d3f20;
    text-transform: capitalize;
}

.email-status-row.sent em {
    background: #e2f4ea;
    color: #116239;
}

.email-status-row.failed em {
    background: #fff0f2;
    color: #a71731;
}

.email-activity-list {
    display: grid;
    gap: 10px;
}

.email-activity-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 13px;
    border: 1px solid #efe4d6;
    border-radius: 16px;
    background: #fffaf1;
}

.email-activity-row div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.email-activity-row strong,
.email-activity-row span,
.email-activity-row small {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.email-activity-row strong {
    color: var(--red-950);
    font-size: 0.95rem;
}

.email-activity-row span,
.email-activity-row small {
    color: #735f5a;
    font-size: 0.82rem;
    font-weight: 750;
}

.email-activity-row small {
    white-space: nowrap;
}

.email-activity-row em {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 0 10px;
    border-radius: 999px;
    background: #fff5e7;
    color: #8a6656;
    font-style: normal;
    font-size: 0.74rem;
    font-weight: 950;
    text-transform: capitalize;
}

.email-activity-row.sent em {
    background: #e2f4ea;
    color: #116239;
}

.email-activity-row.failed em {
    background: #fff0f2;
    color: #a71731;
}

.draw-checklist {
    display: grid;
    gap: 9px;
    margin-top: 14px;
}

.draw-checklist div {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px;
    border-radius: 14px;
    background: #fff5e7;
    color: #4b312b;
    font-weight: 850;
    font-size: 0.9rem;
}

.draw-checklist span {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid #d8c5b5;
    background: #fff;
    flex: 0 0 auto;
}

.draw-checklist .done span {
    border-color: #116239;
    background: #116239;
    box-shadow: inset 0 0 0 3px #e2f4ea;
}

.auth-wrap {
    width: min(520px, calc(100% - 40px));
    margin: 42px auto 80px;
}

.auth-card {
    padding: 28px;
}

.flash {
    display: grid;
    gap: 10px;
    margin-bottom: 18px;
}

.message {
    border-radius: 14px;
    padding: 12px 14px;
    font-weight: 800;
}

.message.success {
    background: #e8f7ee;
    color: #116239;
    border: 1px solid #bde8cb;
}

.message.error {
    background: #fff0f2;
    color: #a71731;
    border: 1px solid #f3bac4;
}

.private-link {
    word-break: normal;
    color: var(--red-800);
    font-size: 0.86rem;
}

.restriction-grid {
    display: grid;
    gap: 10px;
}

.restriction-row {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    padding: 12px;
    border: 1px solid #efe4d6;
    border-radius: 18px;
    background: linear-gradient(135deg, #fffaf1, #fff5e7);
}

.restriction-row strong {
    color: var(--red-950);
    line-height: 1.25;
    font-size: 0.94rem;
}

.check-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.check-pill {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid #e5d6c5;
    border-radius: 999px;
    padding: 7px 10px;
    background: #fff;
    color: #51322a;
    font-size: 0.86rem;
    font-weight: 800;
    cursor: pointer;
}

.check-pill:has(input:checked) {
    border-color: rgba(215,25,52,0.42);
    background: #fff0f2;
    color: var(--red-900);
}

.check-pill input {
    width: auto;
    min-height: auto;
}

.participant-hero {
    width: min(1120px, calc(100% - 40px));
    margin: 34px auto 70px;
}

.reveal-card {
    background: linear-gradient(135deg, var(--red-900), var(--red-700));
    color: #fff;
    border-radius: 24px;
    padding: 24px;
    margin-bottom: 18px;
    box-shadow: var(--shadow);
}

.participant-hero .panel.soft {
    padding: 24px;
}

.participant-hero .wishlist-product-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.reveal-card h2 {
    color: #fff;
    margin-top: 0;
}

.participant-match-card {
    display: grid;
    gap: 12px;
    padding: 20px;
}

.participant-match-meta {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(255,255,255,0.18);
}

.participant-match-meta h2 {
    margin: 4px 0 0;
    font-size: clamp(1.25rem, 2.4vw, 1.85rem);
    line-height: 1.05;
}

.participant-match-meta p {
    margin: 0;
    color: rgba(255,255,255,0.78);
    font-weight: 800;
    text-align: right;
}

.participant-match-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
    gap: 10px;
    align-items: stretch;
}

.participant-match-head,
.participant-welcome-card {
    display: grid;
    align-content: center;
    gap: 4px;
    min-width: 0;
    min-height: 98px;
    padding: 16px 18px;
    border-radius: 22px;
    text-align: left;
}

.participant-match-head {
    background:
        radial-gradient(circle at 92% 14%, rgba(255,209,102,0.42), transparent 8rem),
        linear-gradient(135deg, rgba(255,255,255,0.18), rgba(255,255,255,0.08));
    border: 1px solid rgba(255,255,255,0.24);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.22), 0 18px 38px rgba(49,1,8,0.16);
}

.participant-welcome-card {
    background:
        radial-gradient(circle at 90% 14%, rgba(255,255,255,0.12), transparent 7rem),
        linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0.06));
    border: 1px solid rgba(255,255,255,0.18);
}

.participant-match-head span,
.participant-welcome-card span,
.participant-section-title span,
.participant-recipient-notes span {
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.participant-match-head span,
.participant-welcome-card span,
.participant-section-title span {
    color: rgba(255,255,255,0.72);
}

.participant-match-head strong,
.participant-welcome-card strong {
    overflow: hidden;
    color: #fff;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: clamp(1.5rem, 3vw, 2.15rem);
    font-weight: 950;
    line-height: 1;
    letter-spacing: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.participant-recipient-notes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.participant-recipient-notes article {
    min-width: 0;
    padding: 9px 11px;
    border-radius: 15px;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.18);
}

.participant-recipient-notes span {
    display: block;
    margin-bottom: 4px;
    color: #ffe3a2;
}

.participant-recipient-notes p {
    max-height: 58px;
    margin: 0;
    overflow: auto;
    color: rgba(255,255,255,0.9);
    font-size: 0.82rem;
    line-height: 1.3;
    font-weight: 700;
}

.participant-section-title {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.participant-section-title h3 {
    margin: 0;
    color: #fff;
    font-size: 0.94rem;
    line-height: 1.2;
}

.participant-match-card .wishlist-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.reveal-card .wishlist-product-grid {
    margin: 0;
}

.reveal-card .wishlist-product-card {
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 7px;
    padding: 8px;
    background: rgba(255,255,255,0.96);
    border-color: rgba(255,255,255,0.34);
    box-shadow: 0 12px 26px rgba(49,1,8,0.16);
}

.reveal-card .wishlist-product-card img,
.reveal-card .wishlist-product-placeholder {
    width: 54px;
    height: 54px;
}

.reveal-card .wishlist-product-card strong {
    font-size: 0.78rem;
    -webkit-line-clamp: 2;
}

.reveal-card .wishlist-product-actions .button {
    min-height: 26px;
    height: 26px;
}

.footer {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: 0 0 28px;
    color: rgba(255,255,255,0.74);
    display: flex;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    font-size: 0.88rem;
}

body.app-shell .footer {
    color: #735f5a;
}

body.auth-body {
    background:
        radial-gradient(circle at 10% 0%, rgba(255,209,102,0.34), transparent 18rem),
        radial-gradient(circle at 96% 8%, rgba(255,255,255,0.25), transparent 18rem),
        radial-gradient(circle at 70% 44%, rgba(164,13,34,0.2), transparent 24rem),
        linear-gradient(180deg, rgba(118,9,23,0.94) 0%, rgba(164,13,34,0.86) 44%, rgba(255,244,225,0.96) 100%),
        url("https://images.unsplash.com/photo-1482517967863-00e15c9b44be?auto=format&fit=crop&w=2200&q=88");
    background-size: cover;
    background-attachment: fixed;
    background-position: center top;
}

body.auth-body::before {
    opacity: 0.42;
    mix-blend-mode: screen;
    background-image:
        radial-gradient(circle, rgba(255,255,255,0.78) 0 1.2px, transparent 1.7px),
        radial-gradient(circle, rgba(255,209,102,0.5) 0 1.4px, transparent 1.9px),
        linear-gradient(90deg, transparent 0 46%, rgba(255,255,255,0.08) 46% 54%, transparent 54%),
        linear-gradient(0deg, transparent 0 46%, rgba(255,255,255,0.08) 46% 54%, transparent 54%);
    background-size: 70px 70px, 124px 124px, 220px 220px, 220px 220px;
}

.auth-body .brand {
    color: #fff;
    font-family: "Palatino Linotype", "Book Antiqua", Georgia, serif;
    font-size: 2rem;
    line-height: 1;
    font-weight: 900;
    font-style: italic;
    letter-spacing: 0;
    text-shadow: 0 12px 28px rgba(49,1,8,0.28);
}

.auth-body .brand-mark {
    width: 38px;
    height: 38px;
    border-radius: 14px;
    background:
        linear-gradient(90deg, transparent 0 39%, rgba(255,255,255,0.78) 39% 61%, transparent 61%),
        linear-gradient(0deg, transparent 0 41%, rgba(255,255,255,0.7) 41% 59%, transparent 59%),
        radial-gradient(circle at 30% 20%, rgba(255,255,255,0.35), transparent 2.5rem),
        linear-gradient(145deg, #ffd166, #d71934 58%, #8f091c);
    box-shadow:
        0 18px 34px rgba(49,1,8,0.28),
        inset 0 1px 0 rgba(255,255,255,0.42);
}

.auth-body .nav-link {
    color: rgba(255,255,255,0.92);
    background: rgba(255,255,255,0.12);
    border-color: rgba(255,255,255,0.2);
}

.auth-body .nav-link.primary {
    background: linear-gradient(135deg, var(--gold), #f5aa22);
    color: #2d1306;
    border-color: transparent;
}

.auth-body .auth-wrap {
    width: min(560px, calc(100% - 40px));
    margin: 50px auto 90px;
}

.auth-body .auth-card {
    padding: 34px;
    border-radius: 30px;
    background:
        radial-gradient(circle at 88% 8%, rgba(255,209,102,0.18), transparent 9rem),
        rgba(255,253,248,0.98);
    border: 1px solid rgba(255,255,255,0.72);
    box-shadow: 0 28px 80px rgba(49,1,8,0.24);
}

.auth-body .auth-card h1 {
    color: var(--red-900);
    font-size: clamp(1.9rem, 4vw, 2.65rem);
    line-height: 1.05;
}

.auth-body .auth-card .muted {
    color: #725a52;
    font-weight: 650;
}

.auth-body .auth-card input {
    border-color: #ead7bf;
    background: #fffaf3;
}

.auth-body .auth-card .button.primary {
    border-radius: 999px;
    background: linear-gradient(135deg, var(--red-700), var(--red-900));
    color: #fff;
    box-shadow: 0 16px 34px rgba(164,13,34,0.22);
}

.auth-body .footer {
    color: rgba(255,255,255,0.84);
}

@media (max-width: 1180px) {
    .exchange-layout {
        grid-template-columns: 1fr;
    }

    .exchange-sidebar {
        position: static;
    }

    .participant-table tr {
        grid-template-columns: minmax(170px, 1fr) minmax(230px, 1fr) minmax(220px, 1fr);
    }

    .participant-table td:last-child {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-column: 1 / -1;
    }

    .participant-summary {
        grid-template-columns: minmax(180px, 1fr) minmax(140px, 0.7fr) auto;
    }

    .participant-wishlist-state {
        grid-column: 2 / 3;
    }

    .participant-accordion-body {
        grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr);
    }

    .participant-shared-card {
        grid-column: auto;
    }
}

@media (max-width: 980px) {
    .hero,
    .split-grid,
    .exchange-hero,
    .dashboard-hero-card,
    .dashboard-empty-state {
        grid-template-columns: 1fr;
    }

    .exchange-grid,
    .exchange-readiness,
    .dashboard-exchange-grid,
    .dashboard-stat-grid,
    .christmas-strip,
    .home-stats,
    .home-card-grid.three,
    .home-card-grid.exchange-types,
    .home-wishlist-section,
    .home-faq-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-card-grid.three {
        gap: 0;
    }

    .home-info-card:nth-child(2) {
        border-right: 0;
    }

    .home-info-card:nth-child(3) {
        grid-column: 1 / -1;
        border-top: 1px solid rgba(255,255,255,0.18);
    }

    .participant-table tr {
        grid-template-columns: minmax(180px, 1fr) minmax(220px, 1fr);
    }

    .participant-summary {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .participant-email-status,
    .participant-wishlist-state {
        grid-column: auto;
    }

    .participant-accordion-body {
        grid-template-columns: 1fr;
    }

    .participant-shared-card {
        grid-column: auto;
    }

    .gift-card {
        max-width: 560px;
    }

    .hero {
        gap: 18px;
        padding-bottom: 34px;
    }
}

@media (max-width: 720px) {
    .nav,
    .hero,
    .home-section,
    .app-main,
    .footer,
    .participant-hero {
        width: min(100% - 28px, 1180px);
    }

    .nav {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
        padding-top: 10px;
        padding-bottom: 4px;
    }

    .hero {
        min-height: auto;
        padding-top: 0;
        padding-bottom: 30px;
        gap: 16px;
    }

    .hero h1 {
        font-size: clamp(2.2rem, 10.5vw, 2.85rem);
        margin: 8px 0 10px;
    }

    .hero-copy {
        line-height: 1.45;
        margin-bottom: 14px;
    }

    .nav-links {
        gap: 8px;
    }

    .nav-link {
        min-height: 38px;
        padding: 0 12px;
    }

    .feature-row,
    .christmas-strip,
    .home-stats,
    .home-card-grid.three,
    .home-card-grid.exchange-types,
    .home-wishlist-section,
    .home-faq-list,
    .exchange-readiness,
    .two-grid,
    .three-grid,
    .exchange-grid,
    .dashboard-exchange-grid,
    .dashboard-stat-grid,
    .exchange-meta {
        grid-template-columns: 1fr;
    }

    .home-stats {
        border-radius: 26px;
    }

    .home-stats div {
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,0.16);
    }

    .home-stats div:last-child {
        border-bottom: 0;
    }

    .home-card-grid.three {
        padding: 6px 0;
    }

    .home-info-card,
    .home-info-card:nth-child(2),
    .home-info-card:nth-child(3) {
        grid-column: auto;
        border-right: 0;
        border-top: 0;
        border-bottom: 1px solid rgba(255,255,255,0.18);
    }

    .home-info-card:last-child {
        border-bottom: 0;
    }

    .home-exchange-card,
    .home-exchange-card:nth-child(2n),
    .home-exchange-card:nth-last-child(-n+2) {
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,0.16);
    }

    .home-exchange-card:last-child {
        border-bottom: 0;
    }

    .exchange-workspace {
        width: min(100% - 28px, 1240px);
    }

    .exchange-hero {
        border-radius: 24px;
        padding: 20px;
    }

    .exchange-hero h1 {
        font-size: clamp(1.9rem, 9vw, 2.7rem);
    }

    .exchange-hero-actions .button,
    .exchange-hero-actions form {
        width: 100%;
    }

    .exchange-tabs {
        display: grid;
        grid-template-columns: 1fr;
    }

    .exchange-tab {
        width: 100%;
        min-width: 0;
    }

    .participant-add-form,
    .participant-table tr,
    .restriction-row {
        grid-template-columns: 1fr;
    }

    .panel-head {
        flex-direction: column;
    }

    .panel-head-action,
    .panel-head-action .button {
        width: 100%;
    }

    .participant-table td {
        display: flex;
    }

    .participant-table td:last-child {
        display: grid;
        grid-template-columns: 1fr;
    }

    .private-link,
    .participant-table .button {
        width: 100%;
    }

    .participant-summary {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .participant-summary-main strong,
    .participant-summary-main small {
        white-space: normal;
    }

    .participant-email-status,
    .participant-wishlist-state,
    .participant-summary-toggle,
    .participant-action-grid .button,
    .participant-edit-form .button,
    .participant-action-grid .email-missing {
        width: 100%;
    }

    .participant-action-grid {
        grid-template-columns: 1fr;
    }

    .email-activity-row {
        grid-template-columns: 1fr;
    }

    .email-activity-row small {
        white-space: normal;
    }

    .app-header,
    .dashboard-section-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .panel,
    .auth-card,
    .gift-card {
        padding: 18px;
        border-radius: 22px;
    }

    .restriction-row {
        grid-template-columns: 1fr;
    }

    .dashboard-main {
        width: min(100% - 28px, 1240px);
    }

    .dashboard-hero-card,
    .dashboard-empty-state {
        border-radius: 24px;
        padding: 20px;
    }

    .dashboard-hero-panel {
        min-height: auto;
    }

    .dashboard-hero-panel strong {
        font-size: 3.2rem;
    }

    .dashboard-actions .button {
        width: 100%;
    }

    .dashboard-empty-gift {
        width: 112px;
    }

    .dashboard-exchange-card {
        min-height: auto;
    }

    .festive-feature {
        min-height: auto;
    }

    .home-section {
        margin-top: 22px;
    }

    .home-hero h1 {
        font-size: clamp(2.05rem, 10vw, 2.9rem);
    }

    .home-stats div,
    .home-info-card,
    .home-exchange-card {
        min-height: auto;
        border-radius: 22px;
        padding: 20px;
    }

    .home-wishlist-section,
    .home-final-cta {
        padding: 22px;
        border-radius: 24px;
    }

    .home-pill-cloud span,
    .home-gift-ideas span {
        min-height: 36px;
        font-size: 0.88rem;
    }

    .home-section-head h2,
    .home-final-cta h2 {
        font-size: clamp(1.5rem, 7.2vw, 2.1rem);
    }

    .home-section-head p,
    .home-final-cta p,
    .home-info-card p,
    .home-exchange-card p {
        line-height: 1.62;
    }

    .home-present-scene {
        min-height: 128px;
        padding: 14px;
        margin-bottom: 12px;
    }

    .present-large {
        width: 92px;
        height: 84px;
    }

    .present-small {
        width: 58px;
        height: 58px;
    }

    .present-tall {
        width: 62px;
        height: 92px;
    }
}

/* Homepage reference-style refresh */
body.home-body {
    background:
        radial-gradient(circle at 10% 0%, rgba(255,209,102,0.34), transparent 18rem),
        radial-gradient(circle at 96% 8%, rgba(255,255,255,0.25), transparent 18rem),
        radial-gradient(circle at 70% 44%, rgba(164,13,34,0.2), transparent 24rem),
        linear-gradient(180deg, rgba(118,9,23,0.94) 0%, rgba(164,13,34,0.82) 34%, rgba(255,244,225,0.96) 76%, #fffdf8 100%),
        url("https://images.unsplash.com/photo-1482517967863-00e15c9b44be?auto=format&fit=crop&w=2200&q=88");
    background-size: cover;
    background-attachment: fixed;
    background-position: center top;
    color: var(--ink);
}

body.home-body::before {
    opacity: 0.44;
    mix-blend-mode: screen;
    background-image:
        radial-gradient(circle, rgba(255,255,255,0.78) 0 1.2px, transparent 1.7px),
        radial-gradient(circle, rgba(255,209,102,0.5) 0 1.4px, transparent 1.9px),
        linear-gradient(90deg, transparent 0 46%, rgba(255,255,255,0.08) 46% 54%, transparent 54%),
        linear-gradient(0deg, transparent 0 46%, rgba(255,255,255,0.08) 46% 54%, transparent 54%);
    background-size: 70px 70px, 124px 124px, 220px 220px, 220px 220px;
}

body.home-body .site-shell::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 780px;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(80,3,14,0.48), rgba(80,3,14,0.10) 58%, transparent),
        radial-gradient(circle at 18% 12%, rgba(255,209,102,0.24), transparent 18rem),
        radial-gradient(circle at 82% 22%, rgba(255,255,255,0.16), transparent 16rem);
    z-index: 0;
}

body.home-body .site-shell > * {
    position: relative;
    z-index: 1;
}

body.home-body::after {
    display: none;
}

.home-body .site-shell {
    overflow: hidden;
}

.home-body .nav {
    width: min(1360px, calc(100% - 56px));
    padding: 20px 0 14px;
}

.home-body .brand {
    color: #fff;
    font-family: "Palatino Linotype", "Book Antiqua", Georgia, serif;
    font-size: 2.08rem;
    line-height: 1;
    font-weight: 900;
    font-style: italic;
    letter-spacing: 0;
    text-shadow: 0 12px 28px rgba(49,1,8,0.28);
}

.home-body .brand span:last-child {
    position: relative;
}

.home-body .brand span:last-child::after {
    display: none;
}

.home-body .brand-mark {
    width: 40px;
    height: 40px;
    border-radius: 14px;
    background:
        linear-gradient(90deg, transparent 0 39%, rgba(255,255,255,0.78) 39% 61%, transparent 61%),
        linear-gradient(0deg, transparent 0 41%, rgba(255,255,255,0.7) 41% 59%, transparent 59%),
        radial-gradient(circle at 30% 20%, rgba(255,255,255,0.35), transparent 2.5rem),
        linear-gradient(145deg, #ffd166, #d71934 58%, #8f091c);
    color: #fff;
    box-shadow:
        0 18px 34px rgba(49,1,8,0.28),
        inset 0 1px 0 rgba(255,255,255,0.42);
}

.home-body .brand-mark::after {
    width: 16px;
    height: 10px;
    top: -4px;
    border-color: rgba(255,255,255,0.86);
}

.home-body .nav-link {
    background: transparent;
    color: rgba(255,255,255,0.9);
    border-color: transparent;
    min-height: 38px;
    text-shadow: 0 8px 18px rgba(49,1,8,0.22);
}

.home-body .nav-link.primary {
    background: var(--red-700);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 12px 24px rgba(164,13,34,0.18);
}

.home-body .footer {
    width: min(1360px, calc(100% - 56px));
    color: #7c6258;
    border-top: 1px solid #ecdac5;
}

.home-body .home-page {
    padding-bottom: 68px;
}

.home-body .home-page::before {
    display: none;
}

.home-body .home-hero {
    width: min(1360px, calc(100% - 56px));
    margin: 6px auto 0;
    grid-template-columns: minmax(0, 1fr) 430px;
    gap: 34px;
    align-items: start;
    padding: 26px 38px 34px;
    border-radius: 32px;
    color: #fff;
    background:
        radial-gradient(circle at 10% 8%, rgba(255,209,102,0.34), transparent 14rem),
        radial-gradient(circle at 90% 14%, rgba(255,255,255,0.18), transparent 14rem),
        linear-gradient(135deg, #8f091c, #cf1f38 52%, #0b6746);
    box-shadow: 0 30px 80px rgba(118,9,23,0.22);
    position: relative;
    overflow: hidden;
}

.home-body .home-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(90deg, transparent 0 47%, rgba(255,255,255,0.11) 47% 53%, transparent 53%),
        linear-gradient(0deg, transparent 0 47%, rgba(255,255,255,0.10) 47% 53%, transparent 53%),
        radial-gradient(circle, rgba(255,255,255,0.5) 0 1px, transparent 1.4px);
    background-size: 230px 230px, 230px 230px, 54px 54px;
    opacity: 0.42;
    pointer-events: none;
}

.home-body .home-hero > * {
    position: relative;
    z-index: 1;
}

.home-body .home-hero .eyebrow,
.home-body .home-section .eyebrow,
.home-body .home-final-cta .eyebrow {
    background: rgba(255,255,255,0.17);
    color: #fff5cf;
    border-color: rgba(255,255,255,0.28);
}

.home-body .home-hero h1 {
    max-width: 760px;
    color: #fff;
    font-size: clamp(2.25rem, 3.8vw, 4.15rem);
    line-height: 1.04;
    font-weight: 850;
    letter-spacing: 0;
    margin: 9px 0 10px;
    text-shadow: 0 18px 44px rgba(49,1,8,0.28);
}

.home-body .hero-copy {
    max-width: 760px;
    color: rgba(255,255,255,0.9);
    font-size: clamp(1rem, 1.22vw, 1.16rem);
    line-height: 1.55;
    font-weight: 560;
    margin-bottom: 16px;
}

.home-body .button {
    border-radius: 999px;
    min-height: 48px;
    padding: 0 20px;
}

.home-body .button.primary {
    background: linear-gradient(135deg, var(--gold), #f5aa22);
    color: #2d1306;
    box-shadow: 0 16px 30px rgba(255,209,102,0.26);
}

.home-body .home-mini-proof {
    gap: 10px;
    margin-top: 13px;
}

.home-body .home-mini-proof span {
    background: rgba(255,255,255,0.16);
    border-color: rgba(255,255,255,0.22);
    color: rgba(255,255,255,0.88);
}

.home-body .home-feature-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin-top: 20px;
    max-width: 790px;
    border-top: 1px solid rgba(255,255,255,0.24);
}

.home-body .home-feature-row .festive-feature {
    min-height: auto;
    padding: 14px 16px 0 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    backdrop-filter: none;
}

.home-body .home-feature-row .festive-feature::after {
    display: none;
}

.home-body .home-feature-row .feature-icon {
    background: rgba(255,255,255,0.18);
    color: #fff;
    box-shadow: none;
}

.home-body .home-draw-card {
    border-radius: 34px;
    padding: 22px;
    background: #fffdf8;
    border: 1px solid rgba(255,255,255,0.72);
    box-shadow: 0 24px 60px rgba(49,1,8,0.2);
    display: grid;
    gap: 10px;
}

.home-body .home-draw-card h2 {
    margin: 0;
    font-size: 1.72rem;
    line-height: 1.08;
}

.home-body .home-draw-card p {
    margin: 0;
    color: #725a52;
    line-height: 1.58;
    font-weight: 650;
}

.home-body .home-draw-card .card-kicker {
    width: fit-content;
    margin: 0;
    background: #fff1d8;
    color: #8f3a14;
    border: 1px solid #f2d29c;
}

.home-body .home-present-scene {
    min-height: 112px;
    margin-bottom: 0;
}

.home-body .home-draw-card .gift-checklist {
    gap: 10px;
    margin: 4px 0 2px;
}

.home-body .home-draw-card .gift-checklist div {
    min-height: 46px;
    padding: 10px 12px;
    border-radius: 16px;
    background: #fff7eb;
    border-color: #ead7bf;
    font-size: 0.9rem;
}

.home-body .home-draw-card .gift-checklist span {
    background: #e7f5ec;
    color: #0c6548;
}

.home-body .home-draw-card .button.full {
    min-height: 52px;
    border-radius: 18px;
    margin-top: 2px;
}

.home-body .home-section {
    width: min(1360px, calc(100% - 56px));
    margin: 72px auto 0;
}

.home-body .home-section-head {
    margin: 0 auto 28px;
    text-align: center;
}

.home-body #how-it-works .home-section-head {
    max-width: 1180px;
}

.home-body #how-it-works .home-section-head h2,
.home-body #how-it-works .home-section-head p {
    max-width: none;
    white-space: nowrap;
}

.home-body #how-it-works .home-section-head h2 {
    font-size: clamp(1.85rem, 2.45vw, 2.65rem);
}

.home-body #how-it-works .home-section-head p {
    font-size: clamp(0.94rem, 1.05vw, 1.04rem);
}

.home-body .home-section-head h2,
.home-body .home-final-cta h2 {
    color: var(--red-900);
    text-shadow: none;
    font-size: clamp(1.9rem, 3vw, 3rem);
    line-height: 1.08;
}

.home-body .home-section-head p,
.home-body .home-final-cta p {
    color: #725a52;
    margin-left: auto;
    margin-right: auto;
    font-size: 1.02rem;
}

.home-body .home-section .eyebrow {
    background: #fff1d8;
    color: #9b3d19;
    border-color: #f2d29c;
}

.home-body .home-stats {
    margin-top: -26px;
    width: min(1120px, calc(100% - 96px));
    border-radius: 28px;
    background: #fff;
    border: 1px solid #f0ddc6;
    box-shadow: 0 22px 54px rgba(49,1,8,0.1);
}

.home-body .home-stats div {
    color: var(--ink);
    border-color: #efdfcc;
}

.home-body .home-stats strong {
    color: var(--red-800);
}

.home-body .home-stats span {
    color: #7c6258;
}

.home-body .home-card-grid.three {
    gap: 18px;
    padding: 0;
    border: 0;
}

.home-body .home-info-card {
    border: 1px solid #efdfcc;
    border-radius: 26px;
    background: #fff;
    color: var(--ink);
    padding: 28px;
    box-shadow: 0 14px 36px rgba(49,1,8,0.07);
}

.home-body .home-info-card::before {
    background: #fff1d8;
    color: var(--red-800);
    border-color: #f2d29c;
}

.home-body .home-info-card h3,
.home-body .home-exchange-card h3 {
    color: var(--red-900);
}

.home-body .home-info-card p,
.home-body .home-exchange-card p {
    color: #725a52;
}

.home-body .home-card-grid.exchange-types {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
}

.home-body .home-exchange-card {
    min-height: 250px;
    border: 1px solid #efdfcc;
    border-radius: 28px;
    background: #fff;
    padding: 28px;
    box-shadow: 0 14px 36px rgba(49,1,8,0.07);
}

.home-body .home-exchange-card:nth-child(4) {
    grid-column: 1 / -1;
    min-height: auto;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0 18px;
    align-items: start;
}

.home-body .home-exchange-card:nth-child(4)::before {
    grid-row: 1 / span 3;
}

.home-body .home-exchange-card.featured {
    background:
        radial-gradient(circle at 90% 10%, rgba(255,209,102,0.16), transparent 12rem),
        #fff;
}

.home-body .home-exchange-card::before {
    background: #f4fbf5;
    color: #0c6548;
    border-color: #cfe9d8;
}

.home-body .home-exchange-card span {
    background: #fff1d8;
    color: #9b3d19;
    border-color: #f2d29c;
}

.home-body .home-exchange-card a {
    color: var(--red-800);
}

.home-body .home-wishlist-section {
    padding: 38px;
    border-radius: 34px;
    background:
        radial-gradient(circle at 90% 12%, rgba(255,209,102,0.22), transparent 14rem),
        linear-gradient(135deg, #fff, #fff6e9);
    border: 1px solid #efdfcc;
    box-shadow: 0 18px 48px rgba(49,1,8,0.08);
}

.home-body .home-wishlist-section .home-section-head {
    text-align: left;
    margin: 0;
}

.home-body .home-pill-cloud span,
.home-body .home-gift-ideas span {
    background: #fff;
    color: #5d342c;
    border-color: #efdfcc;
    box-shadow: none;
}

.home-body .home-gift-ideas {
    gap: 6px;
}

.home-body .home-gift-ideas span {
    min-height: 26px;
    padding: 0 8px;
    font-size: 0.74rem;
    font-weight: 760;
}

.home-body .home-gift-ideas span::before {
    width: 5px;
    height: 5px;
    margin-right: 6px;
    box-shadow: 0 0 0 2px rgba(215,25,52,0.07);
}

.home-body #gift-ideas {
    padding: 46px;
    border-radius: 34px;
    background: #fff8ed;
    border: 1px solid #efdfcc;
}

.home-body .home-gift-ideas {
    justify-content: center;
}

.home-section-cta {
    display: flex;
    justify-content: center;
    margin-top: 22px;
}

.home-body .home-faq-list {
    max-width: none;
    margin: 0 auto;
    border-radius: 26px;
    background: #fff;
    border: 1px solid #efdfcc;
    box-shadow: 0 18px 48px rgba(49,1,8,0.08);
}

.home-body .home-faq-list details {
    color: var(--ink);
    border-color: #efdfcc;
}

.home-body .home-faq-list summary {
    color: var(--red-900);
}

.home-body .home-faq-list p {
    color: #725a52;
}

.home-body .home-faq-list summary::after {
    color: var(--red-700);
}

.home-body .home-final-cta {
    text-align: center;
    border: 0;
    border-radius: 38px;
    padding: 56px;
    background:
        radial-gradient(circle at 16% 20%, rgba(255,209,102,0.3), transparent 14rem),
        radial-gradient(circle at 92% 12%, rgba(255,255,255,0.18), transparent 14rem),
        linear-gradient(135deg, #8f091c, #d71934 58%, #0c6548);
    box-shadow: 0 28px 80px rgba(118,9,23,0.18);
}

.home-body .home-final-cta h2,
.home-body .home-final-cta p {
    color: #fff;
}

.home-body .home-final-cta .hero-actions {
    justify-content: center;
}

@media (max-width: 980px) {
    .home-body .home-hero,
    .home-body .home-card-grid.exchange-types,
    .home-body .home-wishlist-section {
        grid-template-columns: 1fr;
    }

    .home-body .home-exchange-card:nth-child(4) {
        grid-column: auto;
        display: block;
    }

    .home-body .home-draw-card {
        max-width: none;
    }
}

@media (max-width: 720px) {
    .home-body .nav,
    .home-body .home-hero,
    .home-body .home-section,
    .home-body .footer {
        width: min(100% - 28px, 1180px);
    }

    .home-body .home-hero {
        padding: 20px 18px 24px;
        border-radius: 26px;
    }

    .home-body .home-hero h1 {
        font-size: clamp(2rem, 9.6vw, 2.75rem);
    }

    .home-body #how-it-works .home-section-head h2,
    .home-body #how-it-works .home-section-head p {
        white-space: normal;
    }

    .home-body .home-feature-row,
    .home-body .home-card-grid.three,
    .home-body .home-stats {
        grid-template-columns: 1fr;
    }

    .home-body .home-feature-row .festive-feature,
    .home-body .home-info-card {
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,0.18);
    }

    .home-body .home-stats {
        width: min(100% - 28px, 1180px);
        margin-top: 18px;
        border-radius: 24px;
    }

    .home-body .home-section {
        margin-top: 46px;
    }

    .home-body #gift-ideas,
    .home-body .home-wishlist-section,
    .home-body .home-final-cta {
        padding: 24px 18px;
        border-radius: 24px;
    }
}

/* Gift ideas page */
.gift-ideas-page {
    width: min(1360px, calc(100% - 56px));
    margin: 0 auto;
    padding: 0 0 60px;
}

.gift-ideas-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px;
    gap: 10px;
    align-items: stretch;
    padding: 10px 14px;
    border-radius: 18px;
    color: #fff;
    background:
        radial-gradient(circle at 18% 16%, rgba(255,209,102,0.32), transparent 17rem),
        radial-gradient(circle at 88% 18%, rgba(255,255,255,0.18), transparent 14rem),
        linear-gradient(135deg, #8f091c, #d71934 58%, #0b6746);
    box-shadow: 0 18px 44px rgba(118,9,23,0.18);
    position: relative;
    overflow: hidden;
}

.gift-ideas-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.36;
    background-image:
        linear-gradient(90deg, transparent 0 47%, rgba(255,255,255,0.12) 47% 53%, transparent 53%),
        linear-gradient(0deg, transparent 0 47%, rgba(255,255,255,0.1) 47% 53%, transparent 53%),
        radial-gradient(circle, rgba(255,255,255,0.58) 0 1px, transparent 1.5px);
    background-size: 210px 210px, 210px 210px, 58px 58px;
    pointer-events: none;
}

.gift-ideas-hero > * {
    position: relative;
    z-index: 1;
}

.gift-ideas-hero h1 {
    max-width: 820px;
    margin: 3px 0;
    color: #fff;
    font-size: clamp(1.18rem, 2vw, 1.55rem);
    line-height: 1.04;
    letter-spacing: 0;
}

.gift-ideas-hero p {
    max-width: 760px;
    margin: 0 0 6px;
    color: rgba(255,255,255,0.9);
    font-size: 0.8rem;
    line-height: 1.25;
    font-weight: 600;
}

.gift-ideas-hero .eyebrow {
    min-height: 24px;
    padding: 0 9px;
    font-size: 0.66rem;
}

.gift-ideas-hero .hero-actions {
    gap: 7px;
}

.gift-ideas-hero .button {
    min-height: 32px;
    padding: 0 13px;
    font-size: 0.8rem;
}

.gift-ideas-hero-card {
    display: grid;
    align-content: center;
    gap: 2px;
    padding: 9px;
    border-radius: 14px;
    background: rgba(255,255,255,0.16);
    border: 1px solid rgba(255,255,255,0.26);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.18);
    backdrop-filter: blur(10px);
}

.gift-ideas-hero-card strong {
    color: #fff;
    font-size: 1.45rem;
    line-height: 0.95;
}

.gift-ideas-hero-card span {
    color: #fff5cf;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.64rem;
}

.gift-ideas-hero-card p {
    margin: 2px 0 0;
    font-size: 0.66rem;
    line-height: 1.16;
}

.gift-ideas-shell {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 22px;
    margin-top: 16px;
}

.gift-ideas-sidebar,
.gift-products-panel {
    border: 1px solid #efdfcc;
    border-radius: 30px;
    background: #fffdf8;
    box-shadow: 0 18px 48px rgba(49,1,8,0.08);
}

.gift-ideas-sidebar {
    align-self: start;
    padding: 24px;
}

.gift-ideas-sidebar h2 {
    margin: 12px 0 18px;
    color: var(--red-900);
    font-size: 1.55rem;
    line-height: 1.12;
}

.gift-search-form {
    display: grid;
    gap: 7px;
    margin: 0 0 14px;
}

.gift-search-form label {
    margin: 0;
    color: #7c5145;
    font-size: 0.74rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.gift-search-form > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px;
}

.gift-search-form input {
    min-height: 39px;
    border-radius: 999px;
    padding: 8px 13px;
    font-size: 0.9rem;
}

.gift-search-form .button {
    min-height: 39px;
    padding: 0 14px;
}

.gift-ideas-filter-group {
    display: grid;
    gap: 8px;
    margin-top: 14px;
}

.gift-ideas-filter-group > strong {
    color: #7c5145;
    font-size: 0.74rem;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.gift-ideas-category-list {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.gift-ideas-category-list.budget-list {
    gap: 6px;
}

.gift-ideas-category-list.budget-list a {
    min-width: 52px;
    justify-content: center;
}

.gift-ideas-category-list a,
.gift-ideas-category-list span {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    padding: 0 10px;
    border-radius: 999px;
    background: #fff7eb;
    border: 1px solid #ead7bf;
    color: #5d342c;
    text-decoration: none;
    font-size: 0.78rem;
    font-weight: 850;
}

.gift-ideas-category-list a:hover,
.gift-ideas-category-list a.active {
    background: linear-gradient(135deg, #a80d20, #d92238);
    border-color: rgba(168, 13, 32, 0.18);
    color: #fff;
    box-shadow: 0 10px 22px rgba(168, 13, 32, 0.16);
}

.gift-clear-filter {
    display: inline-flex;
    align-items: center;
    width: max-content;
    min-height: 30px;
    margin-top: 8px;
    padding: 0 11px;
    border-radius: 999px;
    background: #fff7eb;
    border: 1px solid #ead7bf;
    color: #8f1423;
    text-decoration: none;
    font-size: 0.78rem;
    font-weight: 900;
}

.gift-clear-filter:hover {
    background: #fff0d6;
}

.gift-products-panel {
    padding: 26px;
}

.gift-products-panel .home-section-head {
    margin-bottom: 20px;
    text-align: left;
}

.gift-products-panel .home-section-head h2 {
    margin-bottom: 6px;
    color: var(--red-900);
}

.gift-products-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.gift-product-card {
    display: grid;
    grid-template-rows: 150px 1fr auto;
    gap: 10px;
    min-width: 0;
    padding: 12px;
    border-radius: 22px;
    background: #fff;
    border: 1px solid #efdfcc;
    box-shadow: 0 12px 28px rgba(49,1,8,0.06);
}

.gift-product-card img,
.gift-product-placeholder {
    width: 100%;
    height: 150px;
    border-radius: 16px;
    object-fit: contain;
    background:
        radial-gradient(circle at 35% 22%, rgba(255,209,102,0.34), transparent 4rem),
        linear-gradient(135deg, #fff5e7, #f8ead9);
}

.gift-product-placeholder::before {
    content: "";
    display: block;
    width: 58px;
    height: 58px;
    margin: 45px auto;
    border-radius: 16px;
    background:
        linear-gradient(90deg, transparent 0 39%, rgba(255,255,255,0.78) 39% 61%, transparent 61%),
        linear-gradient(0deg, transparent 0 41%, rgba(255,255,255,0.7) 41% 59%, transparent 59%),
        linear-gradient(145deg, #ffd166, #d71934);
}

.gift-product-card span {
    display: block;
    color: #9b3d19;
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.gift-product-card h3 {
    display: -webkit-box;
    min-height: 3.7em;
    margin: 5px 0;
    overflow: hidden;
    color: var(--red-950);
    font-size: 0.96rem;
    line-height: 1.24;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.gift-product-card p {
    margin: 0;
    color: #0c6548;
    font-weight: 950;
}

.gift-product-card .button {
    min-height: 28px;
    height: 28px;
    width: 100%;
    border-radius: 999px;
    font-size: 0.66rem;
    line-height: 1;
    padding: 0 6px;
    white-space: nowrap;
    text-align: center;
    font-weight: 850;
    box-shadow: none;
}

.gift-participant-context {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 14px 0 18px;
    padding: 13px 15px;
    border: 1px solid rgba(255,209,102,0.34);
    border-radius: 22px;
    color: #fff;
    background:
        linear-gradient(90deg, transparent 0 47%, rgba(255,255,255,0.08) 47% 53%, transparent 53%),
        linear-gradient(0deg, transparent 0 47%, rgba(255,255,255,0.07) 47% 53%, transparent 53%),
        radial-gradient(circle at 90% 15%, rgba(255,209,102,0.32), transparent 9rem),
        linear-gradient(135deg, #3d020a, #8f091c 56%, #0b6746);
    background-size: 160px 160px, 160px 160px, auto, auto;
    box-shadow: 0 18px 46px rgba(49,1,8,0.2);
}

.gift-participant-context div {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: end;
    gap: 2px 10px;
    min-width: 0;
}

.gift-participant-context span {
    grid-column: 1 / -1;
    color: #ffe3a2;
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.gift-participant-context strong {
    min-width: 0;
    color: #fff;
    font-size: clamp(1.25rem, 2.6vw, 1.8rem);
    line-height: 1;
}

.gift-participant-context small {
    min-width: 0;
    overflow: hidden;
    color: rgba(255,255,255,0.8);
    font-weight: 850;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gift-participant-context .button {
    flex: 0 0 auto;
    width: auto;
    padding-inline: 16px;
    border-color: rgba(255,209,102,0.36);
    background: linear-gradient(135deg, var(--gold), #f5aa22);
    color: #2d1306;
    box-shadow: 0 12px 26px rgba(49,1,8,0.18);
}

.gift-product-action-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px;
    align-items: stretch;
}

.gift-product-action-row.has-wishlist-actions {
    grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.42fr);
}

.gift-product-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    min-width: 0;
}

.gift-product-action-row .button,
.gift-product-actions .button {
    min-height: 28px;
    height: 28px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.participant-section-spacer {
    margin-top: 16px;
}

.participant-wishlist-head {
    margin-bottom: 12px;
}

.wishlist-empty-card {
    display: grid;
    gap: 3px;
    margin: 0 0 14px;
    padding: 12px 14px;
    border: 1px dashed #ead7bf;
    border-radius: 18px;
    background: #fff7eb;
}

.wishlist-empty-card strong {
    color: var(--red-950);
}

.wishlist-empty-card span {
    color: #735f5a;
    font-weight: 750;
}

.reveal-card .wishlist-empty-card {
    margin-top: 12px;
    box-shadow: 0 10px 26px rgba(49, 1, 8, 0.16);
}

.wishlist-product-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 8px 0 12px;
}

.wishlist-product-card {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 7px;
    align-items: center;
    min-width: 0;
    padding: 8px;
    border: 1px solid #eadfd1;
    border-radius: 14px;
    background: #fffaf1;
}

.wishlist-product-card img,
.wishlist-product-placeholder {
    width: 58px;
    height: 58px;
    border-radius: 11px;
    object-fit: contain;
    background:
        radial-gradient(circle at 35% 22%, rgba(255,209,102,0.34), transparent 4rem),
        #fff;
}

.wishlist-product-card span {
    display: block;
    color: #8f1423;
    font-size: 0.58rem;
    font-weight: 950;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wishlist-product-meta {
    display: flex !important;
    align-items: center;
    gap: 5px;
}

.wishlist-product-meta b {
    flex: 0 0 auto;
    font: inherit;
}

.wishlist-product-meta em {
    min-width: 0;
    overflow: hidden;
    color: #7b5a4d;
    font-style: normal;
    text-overflow: ellipsis;
}

.wishlist-product-card strong {
    display: -webkit-box;
    overflow: hidden;
    color: var(--red-950);
    font-size: 0.76rem;
    line-height: 1.16;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.wishlist-product-card small {
    display: block;
    margin-top: 2px;
    color: #0c6548;
    font-size: 0.76rem;
    font-weight: 950;
}

.wishlist-product-actions {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
}

.wishlist-product-actions form {
    margin: 0;
}

.wishlist-product-actions .button {
    min-height: 28px;
    height: 28px;
    border-radius: 999px;
    padding: 0 7px;
    font-size: 0.66rem;
    line-height: 1;
    box-shadow: none;
}

.participant-shared-card .wishlist-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin: 0;
}

.participant-shared-card .wishlist-product-card {
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 6px;
    padding: 7px;
    border-radius: 12px;
    background: #fff7eb;
}

.participant-shared-card .wishlist-product-card img,
.participant-shared-card .wishlist-product-placeholder {
    width: 46px;
    height: 46px;
    border-radius: 10px;
}

.participant-shared-card .wishlist-product-card span {
    font-size: 0.54rem;
}

.participant-shared-card .wishlist-product-card strong {
    font-size: 0.72rem;
    -webkit-line-clamp: 1;
}

.participant-shared-card .wishlist-product-card small {
    font-size: 0.7rem;
}

.participant-shared-card .wishlist-product-actions {
    gap: 4px;
}

.participant-shared-card .wishlist-product-actions .button {
    min-height: 24px;
    height: 24px;
    font-size: 0.62rem;
}

.gift-feed-empty {
    padding: 24px;
    border-radius: 24px;
    background:
        radial-gradient(circle at 92% 12%, rgba(255,209,102,0.18), transparent 11rem),
        #fff7eb;
    border: 1px dashed #ead7bf;
}

.gift-feed-empty strong {
    display: block;
    margin-bottom: 8px;
    color: var(--red-950);
    font-size: 1.1rem;
}

.gift-feed-empty p {
    max-width: 720px;
    margin: 0;
    color: #725a52;
    line-height: 1.6;
    font-weight: 700;
}

.gift-feed-empty small {
    display: block;
    margin-top: 10px;
    color: #8a6656;
    font-weight: 800;
}

@media (max-width: 1100px) {
    .gift-products-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .gift-ideas-hero,
    .gift-ideas-shell {
        grid-template-columns: 1fr;
    }

    .gift-products-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .participant-hero .wishlist-product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .gift-ideas-page {
        width: min(100% - 28px, 1180px);
        padding-bottom: 44px;
    }

    .gift-ideas-hero,
    .gift-ideas-sidebar,
    .gift-products-panel {
        border-radius: 22px;
        padding: 14px;
    }

    .gift-ideas-hero {
        gap: 10px;
        padding: 12px;
    }

    .gift-participant-context {
        display: grid;
        gap: 10px;
        margin: 12px 0 16px;
        padding: 12px;
        border-radius: 20px;
    }

    .gift-participant-context div {
        grid-template-columns: 1fr;
        gap: 3px;
    }

    .gift-participant-context .button {
        width: 100%;
    }

    .gift-ideas-hero h1 {
        font-size: clamp(1.3rem, 7vw, 1.85rem);
    }

    .gift-search-form > div {
        grid-template-columns: 1fr;
    }

    .gift-search-form .button {
        width: 100%;
    }

    .participant-match-meta,
    .participant-match-row,
    .participant-section-title {
        display: grid;
        align-items: start;
        gap: 6px;
    }

    .participant-match-meta p,
    .participant-welcome-card {
        text-align: left;
    }

    .participant-recipient-notes,
    .participant-match-card .wishlist-product-grid {
        grid-template-columns: 1fr;
    }

    .gift-products-grid {
        grid-template-columns: 1fr;
    }

    .gift-product-card {
        grid-template-rows: 180px 1fr auto;
    }

    .gift-product-card img,
    .gift-product-placeholder {
        height: 180px;
    }

    .gift-product-action-row.has-wishlist-actions,
    .gift-product-actions,
    .wishlist-product-grid {
        grid-template-columns: 1fr;
    }

    .participant-hero .wishlist-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .participant-shared-card .wishlist-product-grid {
        grid-template-columns: 1fr;
    }

    .gift-product-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .wishlist-product-card {
        grid-template-columns: 54px minmax(0, 1fr);
    }

    .wishlist-product-card img,
    .wishlist-product-placeholder {
        width: 54px;
        height: 54px;
    }
}

/* Final responsive pass for account pages and dashboard. */
@media (max-width: 860px) {
    body {
        background-attachment: scroll;
    }

    .site-shell {
        overflow-x: hidden;
    }

    .nav,
    .home-body .nav,
    body:not(.app-shell) .nav {
        width: min(100% - 24px, 1180px);
        align-items: stretch;
        flex-direction: column;
        gap: 8px;
        padding-top: 10px;
    }

    .nav-brand-row {
        width: 100%;
    }

    .brand {
        min-width: 0;
        font-size: 1.02rem;
    }

    .brand span:last-child {
        overflow-wrap: anywhere;
    }

    .nav-toggle {
        display: grid;
        flex: 0 0 auto;
    }

    .nav-links {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .nav.nav-has-toggle .nav-links {
        max-height: 0;
        opacity: 0;
        overflow: hidden;
        padding: 0;
        transform: translateY(-5px);
        pointer-events: none;
        transition: max-height 190ms ease, opacity 160ms ease, transform 160ms ease, padding 160ms ease;
    }

    .nav.nav-has-toggle.nav-open .nav-links {
        max-height: 360px;
        opacity: 1;
        padding: 8px;
        border: 1px solid rgba(255,255,255,0.2);
        border-radius: 20px;
        background: rgba(49, 1, 8, 0.34);
        box-shadow: 0 18px 34px rgba(49, 1, 8, 0.16);
        transform: translateY(0);
        pointer-events: auto;
    }

    body.app-shell .nav.nav-has-toggle.nav-open .nav-links {
        border-color: #eadfd1;
        background: #fff8ed;
    }

    .nav-links form,
    .nav-links .nav-link {
        width: 100%;
        min-width: 0;
    }

    .nav-link {
        min-height: 40px;
        justify-content: center;
        padding: 0 10px;
        font-size: 0.86rem;
        text-align: center;
    }

    .app-main,
    .dashboard-main,
    .exchange-workspace,
    .participant-hero,
    .gift-ideas-page {
        width: min(100% - 24px, 1240px);
    }

    .app-main,
    .dashboard-main {
        padding-top: 18px;
        padding-bottom: 44px;
    }

    .dashboard-hero-card {
        grid-template-columns: 1fr;
        gap: 10px;
        padding: 14px;
        border-radius: 20px;
    }

    .dashboard-hero-copy h1 {
        margin: 7px 0 6px;
        font-size: clamp(1.65rem, 8vw, 2.25rem);
        line-height: 1.02;
    }

    .dashboard-hero-copy p {
        font-size: 0.88rem;
        line-height: 1.38;
    }

    .dashboard-actions {
        gap: 8px;
        margin-top: 10px;
    }

    .dashboard-actions .button {
        width: 100%;
        min-height: 40px;
    }

    .dashboard-hero-panel {
        min-height: auto;
        padding: 11px;
        border-radius: 16px;
        gap: 7px;
    }

    .dashboard-hero-panel strong {
        font-size: clamp(2rem, 12vw, 2.7rem);
    }

    .dashboard-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .dashboard-stat {
        min-height: 78px;
        padding: 12px;
        border-radius: 16px;
    }

    .dashboard-stat strong {
        font-size: 1.8rem;
    }

    .dashboard-stat small {
        font-size: 0.78rem;
    }

    .dashboard-section-head,
    .app-header,
    .panel-head {
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
    }

    .dashboard-section-head .button,
    .app-header .button,
    .panel-head-action,
    .panel-head-action .button {
        width: 100%;
    }

    .dashboard-exchange-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .dashboard-exchange-card {
        min-height: auto;
        gap: 12px;
        padding: 14px;
        border-radius: 18px;
    }

    .exchange-meta {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .exchange-meta div {
        padding: 8px;
        border-radius: 12px;
    }

    .exchange-meta dt {
        font-size: 0.66rem;
    }

    .exchange-meta dd {
        font-size: 0.8rem;
        overflow-wrap: anywhere;
    }

    .panel,
    .auth-card,
    .gift-card,
    .participant-accordion,
    .participant-empty-card {
        border-radius: 18px;
    }

    .panel {
        padding: 16px;
    }

    .two-grid,
    .three-grid,
    .split-grid,
    .exchange-grid,
    .exchange-readiness,
    .exchange-layout,
    .participant-add-form,
    .participant-edit-form {
        grid-template-columns: 1fr;
    }

    .exchange-hero {
        grid-template-columns: 1fr;
        align-items: stretch;
        padding: 18px;
        border-radius: 22px;
    }

    .exchange-hero h1 {
        margin: 8px 0 10px;
        font-size: clamp(1.65rem, 8.2vw, 2.4rem);
        line-height: 1.05;
    }

    .exchange-hero-actions,
    .exchange-hero-actions form,
    .exchange-hero-actions .button {
        width: 100%;
    }

    .exchange-tabs {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .exchange-tab {
        width: 100%;
        min-width: 0;
        min-height: 42px;
        border-radius: 14px;
    }

    .participant-summary {
        grid-template-columns: 1fr;
        gap: 8px;
        align-items: stretch;
    }

    .participant-email-status,
    .participant-wishlist-state,
    .participant-summary-toggle,
    .participant-action-grid .button,
    .participant-action-grid .email-missing,
    .participant-edit-form .button,
    .private-link {
        width: 100%;
    }

    .participant-accordion-body,
    .participant-action-grid,
    .participant-private-tools {
        grid-template-columns: 1fr;
    }

    .table-wrap,
    .participant-table-wrap {
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .table {
        min-width: 640px;
    }

    input,
    textarea,
    select,
    .button {
        max-width: 100%;
    }
}

@media (max-width: 520px) {
    .nav-links {
        grid-template-columns: 1fr;
    }

    .nav-link {
        min-height: 42px;
    }

    .app-main,
    .dashboard-main,
    .exchange-workspace,
    .participant-hero,
    .gift-ideas-page,
    .home-body .home-hero,
    .home-body .home-section,
    .home-body .footer,
    body:not(.app-shell) .footer {
        width: min(100% - 20px, 1180px);
    }

    .dashboard-stat-grid {
        grid-template-columns: 1fr;
    }

    .dashboard-stat strong {
        font-size: 1.8rem;
    }

    .exchange-meta {
        grid-template-columns: 1fr;
    }

    .exchange-card-top h3,
    .dashboard-section-head h2,
    .app-header h1 {
        overflow-wrap: anywhere;
    }

    .exchange-hero-meta span,
    .badge {
        width: 100%;
        justify-content: center;
    }

    .panel,
    .auth-card,
    .gift-card {
        padding: 14px;
    }
}
