body {
    font-family: "Roboto", sans-serif;
}

:root {
    --tb-brand-primary: #1e3a8a;
    --tb-brand-primary-dark: #172554;
    --tb-brand-foreground: #27364f;
    --tb-brand-muted: #64748b;
    --tb-brand-surface: #f8fafc;
    --tb-brand-surface-soft: #eff4fb;
    --tb-brand-border: #dbe3ef;
}

.tb-flash-toast {
    position: fixed;
    z-index: 1000;
    top: 1.5rem;
    right: 1.5rem;
    width: min(28rem, calc(100vw - 2rem));
    display: flex;
    align-items: flex-start;
    gap: 0.8rem;
    border: 1px solid var(--tb-brand-border);
    border-left-width: 4px;
    border-radius: 1rem;
    background: #fff;
    padding: 1rem 1rem 1rem 1.1rem;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.18);
    color: var(--tb-brand-foreground);
}

.tb-flash-toast-success { border-left-color: #15803d; }
.tb-flash-toast-error { border-left-color: #be123c; }
.tb-flash-toast-success .tb-flash-icon { color: #15803d; }
.tb-flash-toast-error .tb-flash-icon { color: #be123c; }
.tb-flash-icon { width: 1.35rem; height: 1.35rem; flex: none; margin-top: 0.1rem; }
.tb-flash-content { min-width: 0; flex: 1; }
.tb-flash-content strong { display: block; font-size: 0.9rem; line-height: 1.3; }
.tb-flash-content span { display: block; margin-top: 0.25rem; font-size: 0.86rem; line-height: 1.45; color: var(--tb-brand-muted); }
.tb-flash-close { width: 2rem; height: 2rem; margin: -0.35rem -0.35rem 0 0; cursor: pointer; border-radius: 999px; color: var(--tb-brand-muted); font-size: 1.25rem; line-height: 1; }
.tb-flash-close:hover { background: var(--tb-brand-surface-soft); color: var(--tb-brand-foreground); }

@media (max-width: 639px) {
    .tb-flash-toast { top: 0.75rem; right: 1rem; left: 1rem; width: auto; }
}

.tb-app-header {
    position: sticky;
    z-index: 40;
    top: 0;
    border-bottom: 1px solid var(--tb-brand-border);
    background: rgba(248, 250, 252, 0.94);
    backdrop-filter: blur(14px);
}

.tb-app-header-inner { width: min(72rem, 100%); min-height: 4.5rem; margin: 0 auto; padding: 0 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.tb-app-brand { color: var(--tb-brand-foreground); font-size: 1.2rem; font-weight: 800; letter-spacing: -0.025em; }
.tb-app-nav { display: flex; align-items: center; gap: .35rem; margin-right: auto; margin-left: 2rem; }
.tb-app-nav a { border-radius: .8rem; padding: .65rem .85rem; color: var(--tb-brand-muted); font-size: .86rem; font-weight: 700; transition: background 160ms ease, color 160ms ease; }
.tb-app-nav a:hover { background: var(--tb-brand-surface-soft); color: var(--tb-brand-foreground); }
.tb-app-nav a.is-active { background: color-mix(in srgb, var(--tb-brand-primary) 9%, white); color: var(--tb-brand-primary); }
.tb-app-account { display: flex; align-items: center; gap: 1rem; }
.tb-app-user-name { color: var(--tb-brand-foreground); font-size: 0.9rem; }
.tb-app-avatar { position: relative; display: none; width: 2.75rem; height: 2.75rem; overflow: visible; align-items: center; justify-content: center; border: 3px solid transparent; border-radius: 999px; background: var(--tb-brand-primary); color: #fff; font-weight: 700; transition: box-shadow 160ms ease, transform 160ms ease; }
.tb-app-avatar:hover { box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-primary) 14%, transparent); }
.tb-app-avatar:active { transform: scale(.96); }
.tb-app-avatar:focus-visible, .tb-app-avatar.is-active { outline: none; box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-primary) 20%, transparent); }
.tb-app-avatar-initial { line-height: 1; }
.tb-app-avatar-edit { position: absolute; right: -.34rem; bottom: -.22rem; display: flex; width: 1.3rem; height: 1.3rem; align-items: center; justify-content: center; border: 2px solid #fff; border-radius: 999px; background: #fff; color: var(--tb-brand-primary); box-shadow: 0 2px 8px rgba(15, 23, 42, .3); }
.tb-app-avatar-edit svg { display: block; width: .72rem; height: .72rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.25; }
.tb-app-main { width: min(72rem, 100%); margin: 0 auto; padding: 2rem 1.25rem 3rem; }
.tb-bottom-nav { display: none; }

@media (max-width: 767px) {
    .tb-self-service-app { padding-bottom: calc(5.25rem + env(safe-area-inset-bottom)); }
    .tb-app-header-inner { min-height: 4rem; }
    .tb-app-user-name, .tb-app-desktop-logout { display: none; }
    .tb-app-nav { display: none; }
    .tb-app-avatar { display: inline-flex; }
    .tb-app-main { padding: 1.5rem 1rem 2rem; }
    .tb-bottom-nav {
        position: fixed;
        z-index: 90;
        right: 0;
        bottom: 0;
        left: 0;
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        border-top: 1px solid var(--tb-brand-border);
        background: rgba(255, 255, 255, 0.97);
        padding: 0.45rem 0.4rem calc(0.45rem + env(safe-area-inset-bottom));
        box-shadow: 0 -10px 30px rgba(15, 23, 42, 0.09);
        backdrop-filter: blur(16px);
    }
    .tb-bottom-nav form { display: contents; }
    .tb-bottom-nav-item { min-height: 3.6rem; display: flex; cursor: pointer; flex-direction: column; align-items: center; justify-content: center; gap: 0.2rem; border-radius: 0.85rem; color: var(--tb-brand-muted); font-size: 0.7rem; font-weight: 700; }
    .tb-bottom-nav-item svg { width: 1.4rem; height: 1.4rem; }
    .tb-bottom-nav-item.is-active { background: var(--tb-brand-surface-soft); color: var(--tb-brand-primary); }
    .tb-bottom-nav-item:active { transform: scale(0.96); }
}

.tb-shell-title {
    letter-spacing: -0.03em;
}

.tb-panel-card {
    border-radius: 1.5rem;
    border: 1px solid color-mix(in srgb, var(--color-foreground) 10%, transparent);
    background: color-mix(in srgb, var(--color-background) 97%, var(--color-primary) 3%);
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
    overflow: hidden;
}

.tb-panel-stack {
    display: grid;
    gap: 1.75rem;
}

.tb-stat-card {
    position: relative;
    overflow: hidden;
}

.tb-stat-card::after {
    content: "";
    position: absolute;
    inset: auto -2rem -2rem auto;
    width: 6rem;
    height: 6rem;
    border-radius: 9999px;
    background: color-mix(in srgb, var(--color-primary) 18%, transparent);
}

.tb-input,
.tb-select,
.tb-textarea {
    width: 100%;
    border-radius: 1rem;
    border: 1px solid color-mix(in srgb, var(--color-foreground) 12%, transparent);
    background: color-mix(in srgb, var(--color-background) 98%, white 2%);
    padding: 0.95rem 1rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.tb-input:focus,
.tb-select:focus,
.tb-textarea:focus {
    outline: none;
    border-color: color-mix(in srgb, var(--color-primary) 45%, transparent);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-primary) 15%, transparent);
}

.tb-textarea {
    min-height: 9rem;
    resize: vertical;
}

.tb-register-shell { display:flex; min-height:100dvh; width:100%; align-items:center; justify-content:center; padding:2rem 0; }
.tb-register-card { display:grid; width:100%; max-width:68rem; overflow:hidden; border:1px solid color-mix(in srgb,var(--color-foreground) 8%,transparent); border-radius:1.75rem; background:var(--color-background); box-shadow:0 28px 75px rgba(15,23,42,.18); }
.tb-register-aside { position:relative; display:none; overflow:hidden; flex-direction:column; background:linear-gradient(145deg,#173581,#2447a0 60%,#3157ba); padding:2.5rem; color:white; }
.tb-register-aside::after { content:""; position:absolute; right:-5rem; bottom:-6rem; width:15rem; height:15rem; border:1px solid rgba(255,255,255,.12); border-radius:999px; box-shadow:0 0 0 2.5rem rgba(255,255,255,.035),0 0 0 5rem rgba(255,255,255,.025); }
.tb-register-brand { position:relative; z-index:1; font-size:1.2rem; font-weight:800; letter-spacing:-.025em; }
.tb-register-aside-copy { position:relative; z-index:1; margin-top:3rem; }
.tb-register-kicker { font-size:.72rem; font-weight:700; letter-spacing:.17em; opacity:.68; text-transform:uppercase; }
.tb-register-aside-copy h1 { max-width:22rem; margin-top:.9rem; font-size:clamp(2rem,3vw,2.75rem); font-weight:750; letter-spacing:-.035em; line-height:1.06; }
.tb-register-aside-copy p { max-width:23rem; margin-top:1rem; font-size:.9rem; line-height:1.65; opacity:.72; }
.tb-register-benefits { position:relative; z-index:1; display:grid; gap:.7rem; margin-top:1.75rem; }
.tb-register-benefits li { display:flex; align-items:center; gap:.8rem; border:1px solid rgba(255,255,255,.1); border-radius:1rem; background:rgba(255,255,255,.07); padding:.75rem .8rem; }
.tb-register-benefits li>span { display:flex; width:2.35rem; height:2.35rem; flex:none; align-items:center; justify-content:center; border-radius:.75rem; background:rgba(255,255,255,.12); }
.tb-register-benefits svg,.tb-register-aside-note svg,.tb-register-back svg,.tb-register-submit svg { fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.tb-register-benefits svg { width:1.25rem; height:1.25rem; }
.tb-register-benefits strong,.tb-register-benefits small { display:block; }
.tb-register-benefits strong { font-size:.82rem; }
.tb-register-benefits small { margin-top:.15rem; font-size:.7rem; opacity:.65; }
.tb-register-aside-note { position:relative; z-index:1; display:flex; align-items:center; gap:.45rem; margin-top:auto; padding-top:1.25rem; font-size:.75rem; opacity:.72; }
.tb-register-aside-note svg { width:1rem; height:1rem; }
.tb-register-main { padding:1.5rem; }
.tb-register-back { display:inline-flex; min-height:2.75rem; align-items:center; gap:.35rem; color:var(--color-primary); font-size:.8rem; font-weight:650; }
.tb-register-back svg { width:1.05rem; height:1.05rem; }
.tb-register-heading { margin-top:.75rem; }
.tb-register-heading>div { color:var(--color-primary); font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.tb-register-heading h2 { margin-top:.3rem; font-size:2rem; font-weight:750; letter-spacing:-.03em; line-height:1.15; }
.tb-register-heading p { margin-top:.45rem; font-size:.85rem; line-height:1.55; opacity:.65; }
.tb-register-alert { display:flex; flex-direction:column; gap:.15rem; margin-top:1rem; border:1px solid color-mix(in srgb,var(--color-danger) 20%,transparent); border-radius:.85rem; background:color-mix(in srgb,var(--color-danger) 7%,var(--color-background)); padding:.75rem .9rem; color:var(--color-danger); font-size:.75rem; }
.tb-register-form { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; margin-top:1.35rem; }
.tb-register-field label { display:block; margin-bottom:.4rem; font-size:.78rem; font-weight:650; }
.tb-register-field .tb-input { min-height:3.2rem; border-radius:.9rem; padding:.75rem .9rem; font-size:1rem; }
.tb-register-field small,.tb-register-field p,.tb-register-terms-error { display:block; margin-top:.35rem; font-size:.7rem; line-height:1.4; }
.tb-register-field small { opacity:.56; }
.tb-register-field p,.tb-register-terms-error { color:var(--color-danger); }
.tb-register-terms { display:flex; min-height:2.75rem; cursor:pointer; align-items:center; gap:.7rem; font-size:.78rem; line-height:1.45; }
.tb-register-terms input { width:1.05rem; height:1.05rem; flex:none; accent-color:var(--color-primary); }
.tb-register-submit { display:flex; min-height:3.2rem; cursor:pointer; align-items:center; justify-content:center; gap:.55rem; border-radius:1rem; background:var(--color-primary); padding:.8rem 1rem; color:white; font-size:.82rem; font-weight:700; box-shadow:0 10px 22px color-mix(in srgb,var(--color-primary) 22%,transparent); transition:filter 160ms ease,transform 160ms ease; }
.tb-register-submit svg { width:1.1rem; height:1.1rem; }
.tb-register-submit:hover { filter:brightness(1.08); }
.tb-register-submit:active { transform:scale(.99); }
.tb-register-submit:focus-visible { outline:3px solid color-mix(in srgb,var(--color-primary) 24%,transparent); outline-offset:3px; }
.tb-register-login { margin-top:1.25rem; text-align:center; font-size:.78rem; opacity:.68; }
.tb-register-login a { color:var(--color-primary); font-weight:700; }

@media (min-width:640px) {
    .tb-register-main { padding:2rem; }
    .tb-register-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .tb-register-field-wide,.tb-register-terms,.tb-register-terms-error,.tb-register-submit { grid-column:1/-1; }
}

@media (min-width:1024px) {
    .tb-register-card { grid-template-columns:minmax(0,2fr) minmax(0,3fr); }
    .tb-register-aside { display:flex; }
    .tb-register-main { padding:2.1rem 2.5rem; }
}

.tb-recovery-aside {
    background: linear-gradient(145deg,#162f73,#23469c 58%,#3157b9);
}

.tb-recovery-steps {
    position: relative;
    z-index: 1;
    display: grid;
    gap: .8rem;
    margin: 2rem 0 0;
    padding: 0;
    list-style: none;
}

.tb-recovery-steps li {
    display: flex;
    align-items: center;
    gap: .85rem;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 1rem;
    background: rgba(255,255,255,.065);
    padding: .8rem;
}

.tb-recovery-steps li > span {
    display: flex;
    width: 2.25rem;
    height: 2.25rem;
    flex: none;
    align-items: center;
    justify-content: center;
    border-radius: .75rem;
    background: rgba(255,255,255,.13);
    font-size: .8rem;
    font-weight: 750;
}

.tb-recovery-steps strong,.tb-recovery-steps small { display: block; }
.tb-recovery-steps strong { font-size: .82rem; }
.tb-recovery-steps small { margin-top: .15rem; font-size: .7rem; opacity: .65; }

.tb-recovery-main {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.tb-recovery-icon {
    display: flex;
    width: 3.5rem;
    height: 3.5rem;
    align-items: center;
    justify-content: center;
    margin-top: 1.5rem;
    border-radius: 1rem;
    background: color-mix(in srgb,var(--color-primary) 10%,var(--color-background));
    color: var(--color-primary);
}

.tb-recovery-icon svg,.tb-recovery-success svg {
    width: 1.5rem;
    height: 1.5rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.tb-recovery-form {
    display: grid;
    gap: 1rem;
    margin-top: 1.5rem;
}

.tb-recovery-success {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    margin-top: 1.25rem;
    border: 1px solid rgba(22,101,52,.18);
    border-radius: 1rem;
    background: rgba(22,163,74,.08);
    padding: .85rem;
    color: #166534;
}

.tb-recovery-success svg { flex: none; }
.tb-recovery-success strong,.tb-recovery-success span { display: block; }
.tb-recovery-success strong { font-size: .8rem; }
.tb-recovery-success span { margin-top: .2rem; font-size: .72rem; line-height: 1.45; }

.tb-recovery-help {
    margin-top: 1.5rem;
    border-top: 1px solid color-mix(in srgb,var(--color-foreground) 9%,transparent);
    padding-top: 1rem;
    font-size: .72rem;
    line-height: 1.5;
    opacity: .62;
}

.tb-recovery-help span { font-weight: 700; }
.tb-recovery-help p { margin-top: .2rem; }

@media (min-width:1024px) {
    .tb-recovery-card { grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); min-height:39rem; }
    .tb-recovery-main { padding-right:3.25rem; padding-left:3.25rem; }
}

.tb-login-aside { background:linear-gradient(145deg,#18357f,#24479f 58%,#3157ba); }
.tb-login-main { display:flex; flex-direction:column; justify-content:center; }
.tb-login-icon { margin-top:1.25rem; }
.tb-login-form { display:grid; gap:1rem; margin-top:1.5rem; }
.tb-login-password-label { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.tb-login-password-label label { margin-bottom:.4rem; }
.tb-login-password-label a { margin-bottom:.4rem; color:var(--color-primary); font-size:.7rem; font-weight:650; }
.tb-login-remember { display:flex; min-height:2.5rem; cursor:pointer; align-items:center; gap:.65rem; font-size:.75rem; opacity:.75; }
.tb-login-remember input { width:1.05rem; height:1.05rem; flex:none; accent-color:var(--color-primary); }
.tb-login-register { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.35rem; margin-top:1.5rem; border-top:1px solid color-mix(in srgb,var(--color-foreground) 9%,transparent); padding-top:1.1rem; font-size:.76rem; }
.tb-login-register span { opacity:.62; }
.tb-login-register a { color:var(--color-primary); font-weight:700; }
.tb-register-brand span { margin-left:.3rem; font-size:.8rem; font-weight:500; opacity:.65; }

@media (min-width:1024px) {
    .tb-login-card { grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); min-height:41rem; }
    .tb-login-main { padding-right:3.25rem; padding-left:3.25rem; }
}

.tb-verify-aside { background:linear-gradient(145deg,#173581,#2447a0 58%,#3157ba); }
.tb-verify-main { display:flex; flex-direction:column; justify-content:center; }
.tb-verify-icon { margin-top:1.1rem; }
.tb-verify-email { display:flex; min-height:3.4rem; align-items:center; gap:.7rem; margin-top:1rem; border:1px solid color-mix(in srgb,var(--color-primary) 14%,transparent); border-radius:1rem; background:color-mix(in srgb,var(--color-primary) 6%,var(--color-background)); padding:.8rem 1rem; color:var(--color-foreground); font-size:.82rem; font-weight:650; overflow-wrap:anywhere; }
.tb-verify-email svg { width:1.15rem; height:1.15rem; flex:none; fill:none; stroke:var(--color-primary); stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.tb-verify-actions { display:grid; gap:.75rem; margin-top:1.25rem; }
.tb-verify-actions form,.tb-verify-actions .tb-register-submit { width:100%; }
.tb-verify-local { border:1px dashed color-mix(in srgb,var(--color-foreground) 16%,transparent); border-radius:1rem; background:color-mix(in srgb,var(--color-foreground) 3%,var(--color-background)); padding:.75rem; text-align:center; }
.tb-verify-local>span { display:block; margin-bottom:.55rem; font-size:.67rem; line-height:1.4; opacity:.58; }
.tb-verify-local-button { min-height:2.75rem; width:100%; cursor:pointer; border-radius:.85rem; background:color-mix(in srgb,var(--color-foreground) 7%,var(--color-background)); padding:.65rem 1rem; font-size:.75rem; font-weight:700; transition:background 160ms ease,color 160ms ease; }
.tb-verify-local-button:hover { background:color-mix(in srgb,var(--color-primary) 10%,var(--color-background)); color:var(--color-primary); }
.tb-verify-local-button:focus-visible { outline:3px solid color-mix(in srgb,var(--color-primary) 22%,transparent); outline-offset:2px; }

@media (min-width:1024px) {
    .tb-verify-card { grid-template-columns:minmax(0,1fr) minmax(0,1.18fr); min-height:40rem; }
    .tb-verify-main { padding-right:3.5rem; padding-left:3.5rem; }
}

.tb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    border-radius: 9999px;
    padding: 0.85rem 1.25rem;
    font-weight: 600;
    transition: transform 0.2s ease, opacity 0.2s ease, background 0.2s ease;
}

.tb-btn:hover {
    transform: translateY(-1px);
}

.tb-btn-primary {
    background: linear-gradient(135deg, var(--color-primary), color-mix(in srgb, var(--color-primary) 70%, black 30%));
    color: white;
}

.tb-btn-secondary {
    background: color-mix(in srgb, var(--color-background) 92%, var(--color-foreground) 8%);
    color: var(--color-foreground);
}

.tb-btn-danger {
    background: color-mix(in srgb, var(--color-danger) 18%, white 82%);
    color: var(--color-danger);
}

.tb-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border-radius: 9999px;
    background: color-mix(in srgb, var(--color-primary) 15%, transparent);
    padding: 0.35rem 0.75rem;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--color-primary);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.tb-hero-gradient {
    background:
        radial-gradient(circle at top right, color-mix(in srgb, var(--color-primary) 20%, transparent), transparent 42%),
        linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 14%, white 86%), color-mix(in srgb, var(--color-foreground) 5%, white 95%));
}

.tb-table td,
.tb-table th {
    padding: 1rem;
}

.tb-table tbody tr {
    border-top: 1px solid color-mix(in srgb, var(--color-foreground) 10%, transparent);
}

.tb-share-card {
    border: 1px solid color-mix(in srgb, var(--color-foreground) 10%, transparent);
    background: color-mix(in srgb, var(--color-background) 94%, var(--color-primary) 6%);
}

.tb-share-input {
    font-size: 0.92rem;
    background: color-mix(in srgb, var(--color-background) 99%, white 1%);
}

.tb-auth-stage {
    min-height: 100vh;
    background:
        linear-gradient(130deg, rgba(15, 23, 42, 0.85), rgba(37, 99, 235, 0.7)),
        url("../images/noise.png");
}

.tb-invitation-shell {
    min-height: 100vh;
    background:
        radial-gradient(circle at top, color-mix(in srgb, var(--color-primary) 15%, transparent), transparent 40%),
        linear-gradient(180deg, color-mix(in srgb, var(--color-background) 98%, white 2%), color-mix(in srgb, var(--color-background) 92%, var(--color-primary) 8%));
}

.tb-ticket {
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--color-primary) 12%, white 88%), white),
        url("../images/noise.png");
    border: 1px solid color-mix(in srgb, var(--color-foreground) 10%, transparent);
    border-radius: 2rem;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.1);
}

.tb-ticket-stage {
    border-radius: 2.2rem;
    border: 1px solid rgba(223, 207, 203, 0.6);
    background: rgba(255, 253, 251, 0.78);
    padding: 1rem;
    box-shadow: 0 30px 70px rgba(124, 89, 102, 0.1);
}

.tb-ticket-frame {
    border-radius: 2rem;
    border: 1px solid rgba(234, 223, 220, 0.85);
    background:
        radial-gradient(circle at top, rgba(255, 255, 255, 0.92), rgba(255, 249, 247, 0.94) 44%, rgba(252, 245, 243, 0.96)),
        rgba(255, 255, 255, 0.9);
    padding: 1.4rem;
}

.tb-ticket-header {
    text-align: center;
}

.tb-ticket-heading {
    margin: 0;
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(2.4rem, 6vw, 4.3rem);
    line-height: 0.94;
    color: var(--tb-ticket-secondary, var(--tb-brand-foreground));
}

.tb-ticket-intro {
    margin: 1rem auto 0;
    max-width: 42rem;
    font-size: 1rem;
    line-height: 1.8;
    color: var(--tb-brand-muted);
}

.tb-ticket-card {
    width: min(100%, 42rem);
    margin: 1.8rem auto 0;
    border-radius: 2rem;
    border: 1px solid rgba(234, 223, 220, 0.85);
    background:
        linear-gradient(180deg, var(--tb-brand-surface-soft), white),
        rgba(255, 255, 255, 0.92);
    padding: 1.25rem;
    box-shadow: 0 22px 48px rgba(30, 58, 138, 0.08);
}

.tb-ticket-card-top {
    text-align: center;
}

.tb-ticket-kicker,
.tb-ticket-label,
.tb-ticket-stat-label {
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.tb-ticket-kicker {
    color: var(--tb-ticket-accent, #c19959);
}

.tb-ticket-event {
    margin: 0.7rem 0 0;
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(2.4rem, 5vw, 3.7rem);
    line-height: 0.95;
    color: var(--tb-ticket-primary, var(--tb-brand-primary));
}

.tb-ticket-meta-line {
    margin-top: 0.65rem;
    font-size: 0.96rem;
    color: var(--tb-brand-muted);
}

.tb-ticket-folio {
    width: fit-content;
    margin: 1rem auto 0;
    border-radius: 999px;
    border: 1px solid rgba(237, 224, 219, 0.95);
    background: rgba(255, 255, 255, 0.72);
    padding: 0.55rem 1rem;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--tb-ticket-primary, var(--tb-brand-primary));
}

.tb-ticket-divider {
    margin: 1.35rem 0;
    border-top: 2px dashed rgba(220, 204, 198, 0.9);
}

.tb-ticket-grid,
.tb-ticket-stats {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.9rem;
}

.tb-ticket-info-card,
.tb-ticket-stat,
.tb-ticket-companions {
    border-radius: 1.35rem;
    border: 1px solid rgba(237, 224, 219, 0.95);
    background: rgba(255, 255, 255, 0.72);
    padding: 1rem 1.05rem;
}

.tb-ticket-label {
    color: var(--tb-brand-muted);
}

.tb-ticket-value {
    margin-top: 0.55rem;
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(2rem, 4vw, 2.9rem);
    line-height: 1;
    color: var(--tb-ticket-primary, var(--tb-brand-primary));
    font-weight: 700;
}

.tb-ticket-number,
.tb-ticket-stat-number {
    margin-top: 0.55rem;
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(2.1rem, 4vw, 3rem);
    line-height: 1;
    color: var(--tb-ticket-secondary, #30272a);
    font-weight: 700;
}

.tb-ticket-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 0.8rem;
}

.tb-ticket-chip {
    border-radius: 999px;
    border: 1px solid rgba(237, 224, 219, 0.95);
    background: var(--tb-brand-surface-soft);
    padding: 0.5rem 0.85rem;
    color: var(--tb-brand-foreground);
    font-size: 0.92rem;
    font-weight: 600;
}

.tb-ticket-stat {
    text-align: center;
}

.tb-ticket-stat-label {
    margin-top: 0.4rem;
    color: var(--tb-brand-muted);
}

.tb-ticket-copy {
    margin: 1rem auto 0;
    max-width: 34rem;
    text-align: center;
    font-size: 0.95rem;
    line-height: 1.8;
    color: var(--tb-brand-muted);
}

.tb-ticket-qr-wrap {
    display: flex;
    justify-content: center;
    margin-top: 1.3rem;
}

.tb-ticket-qr-card {
    border-radius: 1.5rem;
    border: 1px solid rgba(237, 224, 219, 0.95);
    background: rgba(255, 255, 255, 0.92);
    padding: 1rem;
}

.tb-ticket-qr-card svg {
    width: 12.5rem;
    height: 12.5rem;
}

.tb-ticket-barcode {
    height: 2.4rem;
    margin-top: 1rem;
    border-radius: 0.9rem;
    background: repeating-linear-gradient(
        90deg,
        rgba(16, 16, 16, 0.82) 0 2px,
        transparent 2px 4px,
        rgba(68, 68, 68, 0.78) 4px 5px,
        transparent 5px 8px
    );
    opacity: 0.7;
}

.tb-ticket-actions {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    justify-content: center;
    width: min(100%, 42rem);
    margin: 1rem auto 0;
}

.tb-ticket-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 0.95rem 1.25rem;
    font-size: 0.95rem;
    font-weight: 700;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.tb-ticket-action:hover {
    transform: translateY(-1px);
}

.tb-ticket-action-primary {
    background: linear-gradient(135deg, var(--tb-ticket-primary, var(--tb-brand-primary)), color-mix(in srgb, var(--tb-ticket-primary, var(--tb-brand-primary)) 72%, black 28%));
    color: white;
    box-shadow: 0 16px 28px rgba(30, 58, 138, 0.2);
}

.tb-ticket-action-secondary {
    border: 1px solid rgba(223, 207, 203, 0.95);
    background: rgba(255, 255, 255, 0.74);
    color: var(--tb-brand-foreground);
}

@media (min-width: 768px) {
    .tb-ticket-frame {
        padding: 2rem;
    }

    .tb-ticket-grid {
        grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.9fr);
    }

    .tb-ticket-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tb-ticket-actions {
        flex-direction: row;
    }
}

@media (min-width: 1024px) {
    .tb-ticket-page {
        background:
            radial-gradient(circle at 8% 8%, color-mix(in srgb, var(--tb-ticket-primary, var(--tb-brand-primary)) 10%, transparent), transparent 28rem),
            radial-gradient(circle at 92% 78%, color-mix(in srgb, var(--tb-ticket-accent, var(--tb-brand-primary)) 8%, transparent), transparent 30rem),
            #f3f6fb;
        padding-block: 3.5rem 5rem;
    }

    .tb-ticket-shell {
        width: min(100%, 1180px);
        max-width: 1180px;
    }

    .tb-ticket-stage {
        border-color: rgba(30, 58, 138, .09);
        border-radius: 2rem;
        background: rgba(255, 255, 255, .66);
        padding: 1.15rem;
        box-shadow: 0 30px 80px rgba(30, 58, 138, .1);
    }

    .tb-ticket-frame {
        border-color: rgba(30, 58, 138, .09);
        border-radius: 1.6rem;
        background: rgba(255, 255, 255, .92);
        padding: 2.5rem;
    }

    .tb-ticket-header {
        display: grid;
        grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
        align-items: end;
        gap: 3rem;
        text-align: left;
    }

    .tb-ticket-heading {
        max-width: 11ch;
        font-size: clamp(3rem, 4.4vw, 4.25rem);
    }

    .tb-ticket-intro {
        max-width: 35rem;
        margin: 0;
        padding-bottom: .25rem;
        font-size: 1.02rem;
    }

    .tb-ticket-card {
        display: grid;
        width: 100%;
        max-width: none;
        grid-template-columns: minmax(0, 1fr) 17rem;
        column-gap: 2rem;
        margin-top: 2.25rem;
        border-color: rgba(30, 58, 138, .11);
        border-radius: 1.6rem;
        background: linear-gradient(135deg, var(--tb-brand-surface-soft), #fff 58%);
        padding: 2rem;
        box-shadow: 0 20px 48px rgba(30, 58, 138, .07);
    }

    .tb-ticket-card-top,
    .tb-ticket-divider {
        grid-column: 1 / -1;
    }

    .tb-ticket-card-top {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: .65rem 2rem;
        text-align: left;
    }

    .tb-ticket-kicker,
    .tb-ticket-event,
    .tb-ticket-meta-line {
        grid-column: 1;
    }

    .tb-ticket-event {
        max-width: 22ch;
        font-size: clamp(2.5rem, 3.4vw, 3.65rem);
    }

    .tb-ticket-folio {
        grid-column: 2;
        grid-row: 1 / span 3;
        margin: 0;
        white-space: nowrap;
    }

    .tb-ticket-divider {
        margin: 1.4rem 0 1.6rem;
    }

    .tb-ticket-grid,
    .tb-ticket-companions,
    .tb-ticket-stats,
    .tb-ticket-copy {
        grid-column: 1;
    }

    .tb-ticket-grid {
        grid-row: 3;
    }

    .tb-ticket-companions {
        grid-row: 4;
        margin-top: .9rem;
    }

    .tb-ticket-stats {
        grid-row: 5;
        margin-top: .9rem;
    }

    .tb-ticket-copy {
        grid-row: 6;
        max-width: none;
        margin: 1.15rem 0 0;
        text-align: left;
    }

    .tb-ticket-qr-wrap {
        grid-column: 2;
        grid-row: 3 / span 3;
        align-self: stretch;
        align-items: center;
        margin: 0;
        border-left: 1px dashed rgba(30, 58, 138, .16);
        padding-left: 2rem;
    }

    .tb-ticket-qr-card {
        border-color: rgba(30, 58, 138, .12);
        box-shadow: 0 14px 35px rgba(30, 58, 138, .08);
    }

    .tb-ticket-qr-card svg {
        width: 13.25rem;
        height: 13.25rem;
    }

    .tb-ticket-barcode {
        grid-column: 2;
        grid-row: 6;
        align-self: end;
        margin-top: 1.15rem;
    }

    .tb-ticket-actions {
        width: 100%;
        max-width: none;
        display: grid;
        grid-template-columns: 1.15fr 1fr 1fr;
        gap: .9rem;
        margin-top: 1rem;
    }

    .tb-ticket-action {
        min-height: 3.25rem;
        border-radius: 1rem;
    }
}

.tb-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border-radius: 9999px;
    padding: 0.35rem 0.75rem;
    font-size: 0.8rem;
    font-weight: 600;
}

.tb-badge-success {
    background: color-mix(in srgb, var(--color-success) 16%, white 84%);
    color: var(--color-success);
}

.tb-badge-warning {
    background: color-mix(in srgb, var(--color-warning) 18%, white 82%);
    color: #a16207;
}

.tb-badge-danger {
    background: color-mix(in srgb, var(--color-danger) 16%, white 84%);
    color: var(--color-danger);
}

.tb-badge-neutral {
    background: color-mix(in srgb, var(--color-foreground) 8%, white 92%);
    color: color-mix(in srgb, var(--color-foreground) 72%, black 28%);
}

.tb-checkin-result-hero {
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
}

.tb-checkin-result-hero-danger {
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--color-danger) 84%, #7f1d1d 16%), color-mix(in srgb, var(--color-danger) 62%, #450a0a 38%));
}

.tb-checkin-result-hero-success {
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--color-success) 82%, #166534 18%), color-mix(in srgb, var(--color-success) 60%, #14532d 40%));
}

.tb-checkin-result-hero-danger .tb-badge-danger {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.tb-checkin-result-hero-success .tb-badge-success {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.tb-checkin-result-kicker-light {
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
}

.tb-invite-lock-stage {
    min-height: 70vh;
    display: flex !important;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.tb-invite-lock-card {
    width: min(100%, 42rem);
    margin-inline: auto;
    text-align: center;
}

.tb-invite-lock-title {
    margin: 1rem 0 0;
    font-family: "Manrope", "Montserrat", "Roboto", sans-serif;
    font-size: clamp(2rem, 5vw, 3.25rem);
    line-height: 1.02;
    letter-spacing: -0.03em;
    font-weight: 700;
    color: currentColor;
}

.tb-rsvp-shell {
    width: min(100%, 1140px);
    margin: 0 auto;
}

.tb-rsvp-header {
    margin-bottom: 1.35rem;
    text-align: center;
}

.tb-rsvp-kicker {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--tbxv-accent, var(--tbw-accent, var(--tbcorp-accent, var(--tb-brand-primary)))) 70%, var(--tb-brand-foreground) 30%);
}

.tb-rsvp-title {
    margin: 0.8rem 0 0;
    font-family: var(--tbxv-font-display, var(--tbw-font-display, var(--tbcorp-font-display, "Cormorant Garamond", serif)));
    font-size: clamp(2.4rem, 5vw, 4rem);
    line-height: 0.95;
    color: color-mix(in srgb, var(--tbxv-secondary, var(--tbw-secondary, var(--tbcorp-secondary, var(--tb-brand-foreground)))) 88%, white 12%);
}

.tb-rsvp-subtitle {
    margin-top: 1rem;
    font-size: 1.02rem;
    color: color-mix(in srgb, var(--tbxv-secondary, var(--tbw-secondary, var(--tbcorp-secondary, var(--tb-brand-muted)))) 72%, white 28%);
}

.tb-rsvp-card {
    border-radius: 2rem;
    border: 1px solid var(--tb-brand-border);
    background:
        linear-gradient(180deg, white, var(--tb-brand-surface)),
        rgba(255, 255, 255, 0.78);
    box-shadow: 0 22px 60px rgba(30, 58, 138, 0.1);
    padding: 0.95rem;
}

.tb-rsvp-form {
    border-radius: 1.7rem;
    border: 1px solid var(--tb-brand-border);
    background: rgba(255, 255, 255, 0.62);
    padding: 1rem;
}

.tb-rsvp-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
}

.tb-rsvp-field {
    margin-top: 0.85rem;
}

.tb-rsvp-field[hidden],
.tb-rsvp-companion-field[hidden] {
    display: none !important;
}

.tb-rsvp-label {
    display: block;
    margin-bottom: 0.6rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: color-mix(in srgb, var(--tbxv-secondary, var(--tbw-secondary, var(--tbcorp-secondary, var(--tb-brand-foreground)))) 88%, white 12%);
}

.tb-rsvp-input,
.tb-rsvp-select,
.tb-rsvp-textarea {
    width: 100%;
    border-radius: 1.15rem;
    border: 1px solid var(--tb-brand-border);
    background: rgba(255, 255, 255, 0.86);
    padding: 1rem 1rem;
    font-size: 1.02rem;
    color: color-mix(in srgb, var(--tbxv-secondary, var(--tbw-secondary, var(--tbcorp-secondary, var(--tb-brand-foreground)))) 88%, white 12%);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.tb-rsvp-input::placeholder,
.tb-rsvp-textarea::placeholder {
    color: rgba(123, 111, 116, 0.68);
}

.tb-rsvp-input:focus,
.tb-rsvp-select:focus,
.tb-rsvp-textarea:focus {
    outline: none;
    border-color: color-mix(in srgb, var(--tbxv-primary, var(--tbw-primary, var(--tbcorp-primary, var(--tb-brand-primary)))) 45%, white 55%);
    box-shadow: 0 0 0 4px rgba(30, 58, 138, 0.12);
    background: white;
}

.tb-rsvp-textarea {
    min-height: 8.4rem;
    resize: vertical;
}

.tb-rsvp-help,
.tb-rsvp-footnote,
.tb-rsvp-error {
    margin-top: 0.45rem;
    font-size: 0.9rem;
}

.tb-rsvp-help,
.tb-rsvp-footnote {
    color: rgba(123, 111, 116, 0.78);
}

.tb-rsvp-error {
    color: #b42318;
}

.tb-rsvp-companion-list {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.tb-rsvp-button {
    width: 100%;
    margin-top: 1rem;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--tbxv-primary, var(--tbw-primary, var(--tbcorp-primary, var(--tb-brand-primary)))), var(--tb-brand-primary-dark));
    color: white;
    padding: 1rem 1.25rem;
    font-size: 1rem;
    font-weight: 700;
    box-shadow: 0 18px 32px rgba(30, 58, 138, 0.2);
    transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

.tb-rsvp-button:hover {
    transform: translateY(-1px);
    box-shadow: 0 22px 36px rgba(30, 58, 138, 0.24);
}

.tb-rsvp-footnote {
    text-align: center;
}

@media (min-width: 768px) {
    .tb-rsvp-card {
        padding: 1rem;
    }

    .tb-rsvp-form {
        padding: 1.15rem;
    }

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

.tb-shortcode-panel {
    border-radius: 1.7rem;
    border: 1px solid var(--tb-brand-border);
    background: rgba(255, 255, 255, 0.88);
    padding: 1.2rem;
    box-shadow: 0 18px 40px rgba(30, 58, 138, 0.08);
}

.tb-shortcode-panel-soft {
    background:
        linear-gradient(180deg, white, var(--tb-brand-surface-soft)),
        rgba(255, 255, 255, 0.72);
}

.tb-shortcode-kicker,
.tb-shortcode-label {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--tb-brand-primary);
}

.tb-shortcode-title,
.tb-shortcode-name {
    margin-top: 0.55rem;
    font-family: "Cormorant Garamond", serif;
    line-height: 0.98;
    color: var(--tb-brand-foreground);
}

.tb-shortcode-title {
    font-size: clamp(2rem, 4vw, 3rem);
}

.tb-shortcode-name {
    font-size: 2rem;
}

.tb-shortcode-copy {
    margin-top: 0.7rem;
    color: var(--tb-brand-muted);
    line-height: 1.8;
}

.tb-shortcode-form,
.tb-shortcode-stack {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1.1rem;
}

.tb-shortcode-choice {
    width: 100%;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    border-radius: 1rem;
    border: 1px solid var(--tb-brand-border);
    background: rgba(255, 255, 255, 0.86);
    padding: 0.9rem 1rem;
    text-align: left;
    cursor: pointer;
}

.tb-shortcode-alert {
    margin-top: 1rem;
    border-radius: 1.1rem;
    padding: 1rem;
}

.tb-shortcode-alert-title {
    font-weight: 700;
}

.tb-shortcode-alert-copy {
    margin-top: 0.35rem;
    line-height: 1.7;
}

.tb-shortcode-alert-success {
    border: 1px solid rgba(34, 197, 94, 0.18);
    background: rgba(34, 197, 94, 0.08);
    color: #166534;
}

.tb-shortcode-alert-warning {
    border: 1px solid rgba(245, 158, 11, 0.18);
    background: rgba(245, 158, 11, 0.1);
    color: #9a5b00;
}

.tb-shortcode-alert-neutral {
    border: 1px solid rgba(79, 70, 229, 0.14);
    background: rgba(79, 70, 229, 0.06);
    color: #4338ca;
}

.tb-shortcode-action-row {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1rem;
}

.tb-shortcode-logo {
    display: block;
    max-width: min(220px, 100%);
    max-height: 88px;
    object-fit: contain;
}

.tb-shortcode-detail-grid,
.tb-shortcode-countdown {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.9rem;
}

.tb-shortcode-detail-card,
.tb-shortcode-countdown-item {
    border-radius: 1.25rem;
    border: 1px solid var(--tb-brand-border);
    background: rgba(255, 255, 255, 0.72);
    padding: 1rem;
    text-align: center;
}

.tb-shortcode-detail-label,
.tb-shortcode-countdown-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--tb-brand-muted);
}

.tb-shortcode-detail-value,
.tb-shortcode-countdown-value {
    margin-top: 0.55rem;
    color: var(--tb-brand-foreground);
}

.tb-shortcode-detail-value {
    font-size: 1rem;
    line-height: 1.65;
    font-weight: 600;
}

.tb-shortcode-countdown-value {
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(1.8rem, 5vw, 2.7rem);
    line-height: 1;
    font-weight: 600;
}

.tb-shortcode-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 0.95rem 1.25rem;
    font-weight: 700;
}

.tb-shortcode-button-primary {
    background: linear-gradient(135deg, var(--tb-brand-primary), var(--tb-brand-primary-dark));
    color: white;
}

.tb-shortcode-button-secondary {
    border: 1px solid var(--tb-brand-border);
    background: rgba(255, 255, 255, 0.84);
    color: var(--tb-brand-foreground);
}

@media (min-width: 768px) {
    .tb-shortcode-action-row {
        flex-direction: row;
    }

    .tb-shortcode-detail-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .tb-shortcode-countdown {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.tb-xv-page {
    min-height: 100vh;
    padding: 2rem 1rem 3rem;
    background:
        radial-gradient(circle at top, rgba(255, 255, 255, 0.94), rgba(255, 247, 248, 0.96) 42%, rgba(249, 231, 236, 0.92)),
        linear-gradient(180deg, #fffdfd, #fff5f7);
    color: var(--tbxv-secondary);
    font-family: var(--tbxv-font-body);
    overflow-x: hidden;
}

.tb-xv-page::before,
.tb-xv-page::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}

.tb-xv-page::before {
    background:
        radial-gradient(circle at 8% 14%, rgba(243, 205, 215, 0.45) 0 2px, transparent 3px),
        radial-gradient(circle at 92% 18%, rgba(243, 205, 215, 0.4) 0 2px, transparent 3px),
        radial-gradient(circle at 14% 72%, rgba(243, 205, 215, 0.38) 0 2px, transparent 3px),
        radial-gradient(circle at 88% 78%, rgba(243, 205, 215, 0.38) 0 2px, transparent 3px);
    opacity: 0.8;
}

.tb-xv-page::after {
    background:
        linear-gradient(0deg, transparent 48%, rgba(255, 255, 255, 0.22) 50%, transparent 52%),
        linear-gradient(60deg, transparent 48%, rgba(247, 218, 226, 0.34) 50%, transparent 52%),
        linear-gradient(-60deg, transparent 48%, rgba(247, 218, 226, 0.34) 50%, transparent 52%);
    background-size: 120px 120px;
    background-position: -30px 120px, 30px 40px, 100% 70%;
    opacity: 0.16;
}

.tb-xv-shell {
    position: relative;
    z-index: 1;
    width: min(100%, 1120px);
    margin: 0 auto;
}

.tb-xv-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
    align-items: center;
}

.tb-xv-envelope-wrap {
    display: flex;
    justify-content: center;
    padding: 1rem 0;
}

.tb-xv-envelope {
    position: relative;
    width: min(100%, 430px);
    aspect-ratio: 1 / 0.92;
    filter: drop-shadow(var(--tbxv-shadow));
}

.tb-xv-envelope-back {
    position: absolute;
    inset: 0;
    border-radius: 14px 14px 22px 22px;
    background: linear-gradient(135deg, #f9d4dd, #efb2c2);
}

.tb-xv-envelope-flap {
    position: absolute;
    top: -1px;
    left: 0;
    right: 0;
    width: 100%;
    height: 54%;
    clip-path: polygon(0 100%, 50% 0, 100% 100%);
    background: linear-gradient(180deg, #f6c7d4, #ebb0c0);
}

.tb-xv-card {
    position: absolute;
    left: 50%;
    bottom: 1rem;
    width: 76%;
    transform: translateX(-50%);
    border: 8px solid rgba(255, 255, 255, 0.82);
    background: var(--tbxv-surface-soft);
    box-shadow: var(--tbxv-shadow-soft);
}

.tb-xv-card-inner {
    border: 1px solid rgba(206, 162, 88, 0.22);
    padding: 1.2rem 1rem 1rem;
    text-align: center;
}

.tb-xv-seal {
    position: absolute;
    top: -22px;
    left: 50%;
    transform: translateX(-50%);
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: 999px;
    background: radial-gradient(circle at 30% 30%, #f1d18c, #c9973e 72%);
    color: #fff9f1;
    font-family: var(--tbxv-font-display);
    font-size: 1.8rem;
    font-weight: 700;
    box-shadow: 0 10px 18px rgba(184, 134, 47, 0.28);
}

.tb-xv-card-top,
.tb-xv-card-copy,
.tb-xv-section-kicker,
.tb-xv-info-label,
.tb-xv-countdown-label {
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.tb-xv-card-top,
.tb-xv-card-copy {
    font-size: 0.64rem;
    line-height: 1.8;
    color: #988188;
}

.tb-xv-date-grid {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 0.5rem;
    margin: 1rem 0;
}

.tb-xv-date-side {
    font-family: var(--tbxv-font-display);
    font-size: 1.2rem;
    color: var(--tbxv-secondary);
}

.tb-xv-date-center {
    padding: 0 1rem;
    border-left: 1px solid rgba(219, 155, 174, 0.35);
    border-right: 1px solid rgba(219, 155, 174, 0.35);
    font-family: var(--tbxv-font-display);
    font-size: 3.4rem;
    line-height: 1;
    color: var(--tbxv-primary);
    font-weight: 600;
}

.tb-xv-card-name {
    margin: 0.6rem 0 0.35rem;
    font-family: var(--tbxv-font-script);
    font-size: clamp(2.8rem, 5vw, 4.1rem);
    line-height: 0.95;
    color: var(--tbxv-primary);
}

.tb-xv-copy {
    max-width: 540px;
}

.tb-xv-kicker {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.55rem 1rem;
    background: rgba(186, 116, 139, 0.1);
    color: var(--tbxv-primary);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.24em;
    text-transform: uppercase;
}

.tb-xv-title,
.tb-xv-section-title,
.tb-xv-mini-title {
    font-family: var(--tbxv-font-display);
    color: var(--tbxv-secondary);
}

.tb-xv-title {
    margin: 1.25rem 0 0;
    font-family: var(--tbxv-font-script);
    font-size: clamp(3.6rem, 8vw, 6rem);
    line-height: 0.92;
    letter-spacing: -0.03em;
    color: var(--tbxv-primary);
    font-weight: 400;
}

.tb-xv-lead,
.tb-xv-body-copy,
.tb-xv-detail-value {
    font-size: 0.98rem;
    line-height: 1.9;
    color: color-mix(in srgb, var(--tbxv-secondary) 78%, white 22%);
}

.tb-xv-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.tb-xv-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.7rem 1rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(186, 116, 139, 0.18);
    box-shadow: 0 8px 22px rgba(186, 116, 139, 0.08);
    font-size: 0.85rem;
    color: var(--tbxv-secondary);
}

.tb-xv-countdown-card,
.tb-xv-panel {
    border: 1px solid rgba(186, 116, 139, 0.12);
    border-radius: 2rem;
    background: rgba(255, 255, 255, 0.88);
    box-shadow: var(--tbxv-shadow-soft);
    backdrop-filter: blur(16px);
}

.tb-xv-countdown-card {
    margin-top: 1.5rem;
    padding: 1.5rem;
}

.tb-xv-countdown {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1rem;
}

.tb-xv-countdown-item {
    border-radius: 1.35rem;
    padding: 1rem 0.75rem;
    text-align: center;
    background: rgba(186, 116, 139, 0.08);
}

.tb-xv-countdown-item .countdown-value {
    font-family: var(--tbxv-font-display);
    font-size: 2rem;
    font-weight: 600;
    color: var(--tbxv-secondary);
}

.tb-xv-countdown-label,
.tb-xv-section-kicker,
.tb-xv-info-label {
    font-size: 0.68rem;
    color: color-mix(in srgb, var(--tbxv-secondary) 56%, white 44%);
}

.tb-xv-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
    margin-top: 2rem;
}

.tb-xv-main,
.tb-xv-sidebar {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.tb-xv-panel {
    padding: 1.75rem;
}

.tb-xv-panel-highlight {
    background:
        radial-gradient(circle at top right, rgba(255, 255, 255, 0.65), transparent 30%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(255, 247, 248, 0.95));
}

.tb-xv-panel-soft {
    background: linear-gradient(180deg, rgba(255, 250, 251, 0.96), rgba(255, 255, 255, 0.9));
}

.tb-xv-section-title {
    margin-top: 0.75rem;
    font-size: clamp(2rem, 5vw, 3rem);
    line-height: 1.05;
}

.tb-xv-section-title-sm {
    font-size: clamp(1.85rem, 4vw, 2.35rem);
}

.tb-xv-mini-title {
    margin-top: 0.65rem;
    font-size: 1.7rem;
    line-height: 1.1;
}

.tb-xv-info-grid,
.tb-xv-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    margin-top: 1.5rem;
}

.tb-xv-info-card {
    border-radius: 1.5rem;
    padding: 1.25rem;
    background: rgba(186, 116, 139, 0.08);
}

.tb-xv-info-value {
    margin-top: 0.55rem;
    font-family: var(--tbxv-font-display);
    font-size: 1.45rem;
    color: var(--tbxv-secondary);
    line-height: 1.2;
}

.tb-xv-detail-stack {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1.1rem;
}

.tb-xv-inline-link {
    display: inline-flex;
    align-items: center;
    margin-top: 0.35rem;
    color: var(--tbxv-primary);
    font-weight: 600;
}

.tb-xv-rsvp-panel {
    position: sticky;
    top: 1rem;
}

.tb-xv-guest-card {
    margin-top: 1rem;
    border-radius: 1.6rem;
    padding: 1.25rem;
    background: rgba(186, 116, 139, 0.08);
}

.tb-xv-guest-name {
    margin-top: 0.45rem;
    font-family: var(--tbxv-font-display);
    font-size: 2rem;
    line-height: 1.08;
}

.tb-xv-form-stack,
.tb-xv-select-stack {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1.25rem;
}

.tb-xv-button-primary,
.tb-xv-button-secondary,
.tb-xv-select-card {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    border-radius: 999px;
    padding: 0.95rem 1.25rem;
    transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
    cursor: pointer;
}

.tb-xv-button-primary:hover,
.tb-xv-button-secondary:hover,
.tb-xv-select-card:hover {
    transform: translateY(-1px);
}

.tb-xv-button-primary {
    background: linear-gradient(135deg, var(--tbxv-primary), color-mix(in srgb, var(--tbxv-primary) 72%, black 28%));
    color: white;
    box-shadow: 0 14px 30px rgba(186, 116, 139, 0.24);
}

.tb-xv-button-secondary {
    background: rgba(255, 255, 255, 0.86);
    color: var(--tbxv-secondary);
    border: 1px solid rgba(186, 116, 139, 0.16);
}

.tb-xv-select-card {
    justify-content: space-between;
    border: 1px solid rgba(186, 116, 139, 0.14);
    background: rgba(255, 255, 255, 0.84);
    color: var(--tbxv-secondary);
    text-align: left;
}

.tb-xv-alert {
    margin-top: 1.25rem;
    border-radius: 1.6rem;
    padding: 1.25rem;
}

.tb-xv-alert-success {
    border: 1px solid rgba(34, 197, 94, 0.2);
    background: rgba(34, 197, 94, 0.08);
    color: #166534;
}

.tb-xv-alert-warning {
    border: 1px solid rgba(245, 158, 11, 0.2);
    background: rgba(245, 158, 11, 0.1);
    color: #9a5b00;
}

.tb-xv-alert-title {
    font-weight: 700;
}

.tb-xv-alert-copy {
    margin-top: 0.5rem;
    font-size: 0.95rem;
    line-height: 1.7;
}

.tb-xv-action-row {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1rem;
}

@media (min-width: 768px) {
    .tb-xv-info-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

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

    .tb-xv-action-row {
        flex-direction: row;
    }
}

@media (min-width: 1024px) {
    .tb-xv-page {
        padding: 3rem 1.5rem 4rem;
    }

    .tb-xv-hero {
        grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
        gap: 3rem;
        min-height: 78vh;
    }

    .tb-xv-grid {
        grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr);
        gap: 2rem;
    }
}

.tb-corp-page {
    min-height: 100vh;
    padding: 2rem 1rem 3rem;
    background:
        radial-gradient(circle at top, rgba(255, 255, 255, 0.94), rgba(245, 246, 248, 0.96) 42%, rgba(233, 236, 241, 0.92)),
        linear-gradient(180deg, #fbfcfd 0%, #eef1f5 100%);
    color: color-mix(in srgb, var(--tbcorp-secondary) 88%, white 12%);
    font-family: var(--tbcorp-font-body);
    overflow-x: hidden;
}

.tb-corp-page::before,
.tb-corp-page::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

.tb-corp-page::before {
    background:
        radial-gradient(circle at 12% 18%, rgba(199, 164, 106, 0.18) 0 2px, transparent 3px),
        radial-gradient(circle at 88% 16%, rgba(199, 164, 106, 0.14) 0 2px, transparent 3px),
        radial-gradient(circle at 10% 80%, rgba(34, 53, 83, 0.08) 0 2px, transparent 3px),
        radial-gradient(circle at 90% 76%, rgba(34, 53, 83, 0.08) 0 2px, transparent 3px);
    opacity: 0.9;
}

.tb-corp-page::after {
    background:
        linear-gradient(90deg, transparent 49%, rgba(199, 164, 106, 0.06) 50%, transparent 51%),
        linear-gradient(0deg, transparent 49%, rgba(199, 164, 106, 0.04) 50%, transparent 51%);
    background-size: 140px 140px;
    opacity: 0.28;
}

.tb-corp-shell {
    position: relative;
    z-index: 1;
    width: min(100%, 1120px);
    margin: 0 auto;
}

.tb-corp-hero,
.tb-corp-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
}

.tb-corp-invite-wrap {
    display: flex;
    justify-content: center;
    padding: 1rem 0;
}

.tb-corp-frame {
    position: relative;
    width: min(100%, 430px);
    padding: 1.4rem;
    border-radius: 1.9rem;
    background:
        linear-gradient(135deg, rgba(199, 164, 106, 0.16), rgba(255, 255, 255, 0.78)),
        rgba(255, 255, 255, 0.7);
    box-shadow: var(--tbcorp-shadow);
    border: 1px solid rgba(199, 164, 106, 0.18);
}

.tb-corp-frame::before {
    content: "";
    position: absolute;
    inset: 1rem;
    border-radius: 1.45rem;
    border: 1px solid rgba(199, 164, 106, 0.24);
    pointer-events: none;
}

.tb-corp-card {
    position: relative;
    overflow: hidden;
    border-radius: 1.5rem;
    padding: 2.1rem 1.75rem 1.9rem;
    background: linear-gradient(180deg, rgba(15, 27, 45, 0.98), rgba(26, 39, 62, 0.96));
    color: #f5f6f8;
    text-align: center;
}

.tb-corp-card::before,
.tb-corp-card::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(199, 164, 106, 0.18), rgba(199, 164, 106, 0));
    pointer-events: none;
}

.tb-corp-card::before {
    width: 220px;
    height: 220px;
    top: -110px;
    right: -110px;
}

.tb-corp-card::after {
    width: 180px;
    height: 180px;
    bottom: -80px;
    left: -70px;
}

.tb-corp-badge {
    width: 58px;
    height: 58px;
    margin: 0 auto 1rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: radial-gradient(circle at 30% 30%, #d9bd8d, #c7a46a);
    color: var(--tbcorp-secondary);
    font-family: var(--tbcorp-font-display);
    font-size: 1.7rem;
    font-weight: 700;
    box-shadow: 0 10px 18px rgba(199, 164, 106, 0.18);
}

.tb-corp-kicker,
.tb-corp-panel-kicker,
.tb-corp-info-label,
.tb-corp-countdown-label {
    font-size: 0.7rem;
    letter-spacing: 0.26em;
    text-transform: uppercase;
}

.tb-corp-kicker {
    color: rgba(245, 246, 248, 0.68);
}

.tb-corp-card-title,
.tb-corp-heading,
.tb-corp-section-title,
.tb-corp-mini-title,
.tb-corp-guest-name {
    font-family: var(--tbcorp-font-display);
}

.tb-corp-card-title {
    margin: 0;
    font-size: clamp(2.8rem, 5vw, 4.4rem);
    line-height: 0.92;
    color: #fff;
    font-weight: 600;
}

.tb-corp-divider {
    width: 72px;
    height: 1px;
    margin: 1.1rem auto;
    background: linear-gradient(90deg, transparent, var(--tbcorp-accent), transparent);
}

.tb-corp-card-copy,
.tb-corp-text,
.tb-corp-section-copy,
.tb-corp-detail-value {
    line-height: 1.85;
    font-size: 0.95rem;
}

.tb-corp-card-copy {
    color: rgba(245, 246, 248, 0.72);
}

.tb-corp-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1.5rem;
    text-align: left;
}

.tb-corp-meta-box,
.tb-corp-info-card,
.tb-corp-guest-card,
.tb-corp-countdown-box {
    border-radius: 1rem;
}

.tb-corp-meta-box {
    padding: 0.8rem 0.9rem;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.tb-corp-meta-box span {
    display: block;
    margin-bottom: 0.35rem;
    color: rgba(245, 246, 248, 0.5);
    font-size: 0.66rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.tb-corp-meta-box strong {
    display: block;
    color: #fff;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.5;
}

.tb-corp-copy {
    max-width: 520px;
}

.tb-corp-eyebrow {
    margin-bottom: 0.5rem;
    color: color-mix(in srgb, var(--tbcorp-accent) 88%, black 12%);
    font-size: 0.88rem;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    font-weight: 700;
}

.tb-corp-heading {
    margin: 0;
    font-size: clamp(3.3rem, 7vw, 5.4rem);
    line-height: 0.94;
    color: var(--tbcorp-secondary);
    font-weight: 700;
}

.tb-corp-text,
.tb-corp-section-copy,
.tb-corp-detail-value {
    color: color-mix(in srgb, var(--tbcorp-secondary) 68%, white 32%);
}

.tb-corp-text {
    margin: 1.1rem 0 1.5rem;
    max-width: 430px;
}

.tb-corp-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.9rem;
    align-items: stretch;
}

.tb-corp-button-primary,
.tb-corp-button-secondary,
.tb-corp-select-card {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    min-height: 48px;
    padding: 0.85rem 1.3rem;
    transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
    cursor: pointer;
}

.tb-corp-button-primary:hover,
.tb-corp-button-secondary:hover,
.tb-corp-select-card:hover {
    transform: translateY(-1px);
}

.tb-corp-button-primary {
    background: linear-gradient(135deg, var(--tbcorp-secondary), var(--tbcorp-primary));
    color: white;
    box-shadow: var(--tbcorp-shadow-soft);
}

.tb-corp-button-primary--static {
    cursor: default;
}

.tb-corp-button-secondary {
    min-width: 220px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(34, 53, 83, 0.1);
    box-shadow: var(--tbcorp-shadow-soft);
    color: var(--tbcorp-secondary);
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
}

.tb-corp-button-secondary strong {
    font-size: 0.9rem;
}

.tb-corp-button-secondary span {
    font-size: 0.78rem;
    color: color-mix(in srgb, var(--tbcorp-secondary) 54%, white 46%);
    font-weight: 500;
}

.tb-corp-button-secondary--inline {
    min-width: auto;
    justify-content: center;
    align-items: center;
}

.tb-corp-countdown-panel,
.tb-corp-panel {
    border: 1px solid rgba(34, 53, 83, 0.12);
    box-shadow: var(--tbcorp-shadow);
    backdrop-filter: blur(8px);
    background: rgba(255, 255, 255, 0.86);
}

.tb-corp-countdown-panel {
    margin: 1.75rem auto 0;
    width: 100%;
    max-width: 680px;
    padding: 1.4rem 1.5rem 1.6rem;
    border-radius: 1.7rem;
}

.tb-corp-countdown {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1rem;
}

.tb-corp-countdown-box {
    padding: 0.95rem 0.7rem;
    text-align: center;
    background: rgba(34, 53, 83, 0.04);
}

.tb-corp-countdown-box .countdown-value {
    font-family: var(--tbcorp-font-display);
    font-size: 2rem;
    font-weight: 600;
    color: var(--tbcorp-secondary);
}

.tb-corp-panel-kicker,
.tb-corp-info-label,
.tb-corp-countdown-label {
    color: color-mix(in srgb, var(--tbcorp-secondary) 58%, white 42%);
}

.tb-corp-main,
.tb-corp-sidebar {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.tb-corp-panel {
    border-radius: 1.8rem;
    padding: 1.75rem;
}

.tb-corp-highlight-panel {
    background:
        radial-gradient(circle at top right, rgba(199, 164, 106, 0.1), transparent 24%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(247, 248, 250, 0.94));
}

.tb-corp-panel-soft {
    background: linear-gradient(180deg, rgba(247, 248, 250, 0.96), rgba(255, 255, 255, 0.9));
}

.tb-corp-section-title {
    margin-top: 0.75rem;
    font-size: clamp(2rem, 4vw, 2.9rem);
    line-height: 1.03;
    color: var(--tbcorp-secondary);
}

.tb-corp-section-title-sm {
    font-size: clamp(1.8rem, 3.5vw, 2.3rem);
}

.tb-corp-mini-title {
    margin-top: 0.65rem;
    font-size: 1.55rem;
    line-height: 1.12;
    color: var(--tbcorp-secondary);
}

.tb-corp-info-grid,
.tb-corp-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    margin-top: 1.5rem;
}

.tb-corp-info-card {
    padding: 1.1rem 1.15rem;
    background: rgba(34, 53, 83, 0.04);
}

.tb-corp-info-value {
    margin-top: 0.45rem;
    font-family: var(--tbcorp-font-display);
    font-size: 1.3rem;
    color: var(--tbcorp-secondary);
    line-height: 1.2;
}

.tb-corp-detail-stack {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1rem;
}

.tb-corp-rsvp-panel {
    position: sticky;
    top: 1rem;
}

.tb-corp-guest-card {
    margin-top: 1rem;
    padding: 1.15rem;
    background: rgba(34, 53, 83, 0.04);
}

.tb-corp-guest-name {
    margin-top: 0.35rem;
    font-size: 1.9rem;
    line-height: 1.08;
    color: var(--tbcorp-secondary);
}

.tb-corp-form-stack,
.tb-corp-select-stack {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1.2rem;
}

.tb-corp-select-card {
    width: 100%;
    justify-content: space-between;
    border-radius: 1rem;
    border: 1px solid rgba(34, 53, 83, 0.1);
    background: rgba(255, 255, 255, 0.82);
    color: var(--tbcorp-secondary);
    text-align: left;
}

.tb-corp-alert {
    margin-top: 1.2rem;
    border-radius: 1rem;
    padding: 1.1rem 1.15rem;
}

.tb-corp-alert-success {
    border: 1px solid rgba(34, 197, 94, 0.18);
    background: rgba(34, 197, 94, 0.08);
    color: #166534;
}

.tb-corp-alert-warning {
    border: 1px solid rgba(245, 158, 11, 0.18);
    background: rgba(245, 158, 11, 0.1);
    color: #9a5b00;
}

.tb-corp-alert-title {
    font-weight: 700;
}

.tb-corp-alert-copy {
    margin-top: 0.4rem;
    font-size: 0.94rem;
    line-height: 1.7;
}

.tb-corp-action-row {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1rem;
}

@media (min-width: 768px) {
    .tb-corp-info-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

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

    .tb-corp-action-row {
        flex-direction: row;
    }
}

@media (min-width: 1024px) {
    .tb-corp-page {
        padding: 3rem 1.5rem 4rem;
    }

    .tb-corp-hero {
        grid-template-columns: minmax(0, 0.96fr) minmax(0, 1.04fr);
        gap: 2.6rem;
        align-items: center;
        min-height: 76vh;
    }

    .tb-corp-grid {
        grid-template-columns: minmax(0, 1.12fr) minmax(360px, 0.88fr);
        gap: 1.9rem;
        margin-top: 2rem;
    }
}

.tb-wedding-page {
    min-height: 100vh;
    padding: 2rem 1rem 3rem;
    background:
        radial-gradient(circle at top, rgba(255, 255, 255, 0.92), rgba(255, 250, 247, 0.95) 44%, rgba(248, 238, 234, 0.92)),
        linear-gradient(180deg, #fffdfb 0%, #fff6f2 100%);
    color: color-mix(in srgb, var(--tbw-secondary) 88%, white 12%);
    font-family: var(--tbw-font-body);
    overflow-x: hidden;
}

.tb-wedding-page::before,
.tb-wedding-page::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

.tb-wedding-page::before {
    background:
        radial-gradient(circle at 14% 18%, rgba(233, 207, 200, 0.34) 0 2px, transparent 3px),
        radial-gradient(circle at 84% 20%, rgba(233, 207, 200, 0.32) 0 2px, transparent 3px),
        radial-gradient(circle at 10% 78%, rgba(233, 207, 200, 0.3) 0 2px, transparent 3px),
        radial-gradient(circle at 90% 76%, rgba(233, 207, 200, 0.3) 0 2px, transparent 3px);
    opacity: 0.9;
}

.tb-wedding-page::after {
    background:
        linear-gradient(45deg, transparent 49%, rgba(217, 168, 157, 0.06) 50%, transparent 51%),
        linear-gradient(-45deg, transparent 49%, rgba(217, 168, 157, 0.04) 50%, transparent 51%);
    background-size: 140px 140px;
    opacity: 0.18;
}

.tb-wedding-shell {
    position: relative;
    z-index: 1;
    width: min(100%, 1120px);
    margin: 0 auto;
}

.tb-wedding-hero,
.tb-wedding-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
}

.tb-wedding-invite-wrap {
    display: flex;
    justify-content: center;
    padding: 1rem 0;
}

.tb-wedding-frame {
    position: relative;
    width: min(100%, 430px);
    padding: 1.25rem;
    border-radius: 2rem;
    background:
        linear-gradient(135deg, rgba(235, 207, 200, 0.5), rgba(255, 255, 255, 0.82)),
        rgba(255, 255, 255, 0.72);
    box-shadow: var(--tbw-shadow);
    border: 1px solid rgba(200, 164, 110, 0.14);
}

.tb-wedding-frame::before {
    content: "";
    position: absolute;
    inset: 0.9rem;
    border-radius: 1.5rem;
    border: 1px solid rgba(200, 164, 110, 0.2);
    pointer-events: none;
}

.tb-wedding-card {
    position: relative;
    overflow: hidden;
    border-radius: 1.5rem;
    padding: 2.1rem 1.75rem 1.9rem;
    text-align: center;
    background:
        radial-gradient(circle at top, rgba(255, 255, 255, 0.74), rgba(255, 247, 243, 0.95)),
        linear-gradient(180deg, #fffdfb, #fff4ef);
}

.tb-wedding-card::before,
.tb-wedding-card::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(217, 168, 157, 0.2), rgba(217, 168, 157, 0));
    pointer-events: none;
}

.tb-wedding-card::before {
    width: 200px;
    height: 200px;
    top: -90px;
    right: -90px;
}

.tb-wedding-card::after {
    width: 150px;
    height: 150px;
    bottom: -70px;
    left: -55px;
}

.tb-wedding-badge {
    width: 60px;
    height: 60px;
    margin: 0 auto 1rem;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: radial-gradient(circle at 30% 30%, #e2c18c, var(--tbw-accent));
    color: #fff9f2;
    font-family: var(--tbw-font-display);
    font-size: 1.7rem;
    font-weight: 700;
    box-shadow: 0 10px 18px rgba(200, 164, 110, 0.2);
}

.tb-wedding-kicker,
.tb-wedding-panel-kicker,
.tb-wedding-info-label,
.tb-wedding-countdown-label {
    font-size: 0.7rem;
    letter-spacing: 0.26em;
    text-transform: uppercase;
}

.tb-wedding-kicker {
    color: color-mix(in srgb, var(--tbw-primary) 58%, white 42%);
}

.tb-wedding-card-title,
.tb-wedding-heading,
.tb-wedding-section-title,
.tb-wedding-mini-title,
.tb-wedding-guest-name {
    font-family: var(--tbw-font-display);
}

.tb-wedding-card-title {
    margin: 0;
    font-family: var(--tbw-font-script);
    font-size: clamp(3.1rem, 5vw, 4.8rem);
    line-height: 0.9;
    color: var(--tbw-primary);
    font-weight: 400;
}

.tb-wedding-divider {
    width: 72px;
    height: 1px;
    margin: 1rem auto 1.15rem;
    background: linear-gradient(90deg, transparent, var(--tbw-accent), transparent);
}

.tb-wedding-card-copy,
.tb-wedding-text,
.tb-wedding-section-copy,
.tb-wedding-detail-value {
    line-height: 1.85;
    font-size: 0.95rem;
}

.tb-wedding-card-copy {
    color: color-mix(in srgb, var(--tbw-secondary) 62%, white 38%);
}

.tb-wedding-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1.5rem;
    text-align: left;
}

.tb-wedding-meta-box,
.tb-wedding-info-card,
.tb-wedding-guest-card,
.tb-wedding-countdown-box {
    border-radius: 1rem;
}

.tb-wedding-meta-box {
    padding: 0.8rem 0.9rem;
    background: rgba(255, 255, 255, 0.55);
    border: 1px solid rgba(187, 132, 120, 0.1);
}

.tb-wedding-meta-box span {
    display: block;
    margin-bottom: 0.35rem;
    color: color-mix(in srgb, var(--tbw-primary) 62%, white 38%);
    font-size: 0.66rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.tb-wedding-meta-box strong {
    display: block;
    color: var(--tbw-secondary);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.5;
}

.tb-wedding-copy {
    max-width: 520px;
}

.tb-wedding-eyebrow {
    margin-bottom: 0.5rem;
    color: color-mix(in srgb, var(--tbw-accent) 88%, black 12%);
    font-size: 0.88rem;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    font-weight: 700;
}

.tb-wedding-heading {
    margin: 0;
    font-size: clamp(3.2rem, 7vw, 5.4rem);
    line-height: 0.94;
    color: var(--tbw-secondary);
    font-weight: 700;
}

.tb-wedding-text,
.tb-wedding-section-copy,
.tb-wedding-detail-value {
    color: color-mix(in srgb, var(--tbw-secondary) 68%, white 32%);
}

.tb-wedding-text {
    margin: 1.1rem 0 1.5rem;
    max-width: 430px;
}

.tb-wedding-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.9rem;
    align-items: stretch;
}

.tb-wedding-button-primary,
.tb-wedding-button-secondary,
.tb-wedding-select-card {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    min-height: 48px;
    padding: 0.85rem 1.3rem;
    transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
    cursor: pointer;
}

.tb-wedding-button-primary:hover,
.tb-wedding-button-secondary:hover,
.tb-wedding-select-card:hover {
    transform: translateY(-1px);
}

.tb-wedding-button-primary {
    background: linear-gradient(135deg, #c39183, #ad756a);
    color: white;
    box-shadow: var(--tbw-shadow-soft);
}

.tb-wedding-button-primary--static {
    cursor: default;
}

.tb-wedding-button-secondary {
    min-width: 220px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(187, 132, 120, 0.12);
    box-shadow: var(--tbw-shadow-soft);
    color: var(--tbw-secondary);
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
}

.tb-wedding-button-secondary strong {
    font-size: 0.9rem;
}

.tb-wedding-button-secondary span {
    font-size: 0.78rem;
    color: color-mix(in srgb, var(--tbw-secondary) 54%, white 46%);
    font-weight: 500;
}

.tb-wedding-button-secondary--inline {
    min-width: auto;
    justify-content: center;
    align-items: center;
}

.tb-wedding-countdown-panel,
.tb-wedding-panel {
    border: 1px solid rgba(187, 132, 120, 0.16);
    box-shadow: var(--tbw-shadow);
    backdrop-filter: blur(8px);
}

.tb-wedding-countdown-panel {
    margin: 1.75rem auto 0;
    width: 100%;
    max-width: 680px;
    padding: 1.4rem 1.5rem 1.6rem;
    border-radius: 1.7rem;
    background: linear-gradient(180deg, rgba(255, 247, 243, 0.84), rgba(255, 250, 247, 0.9));
}

.tb-wedding-countdown {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
    margin-top: 1rem;
}

.tb-wedding-countdown-box {
    padding: 0.95rem 0.7rem;
    text-align: center;
    background: rgba(255, 255, 255, 0.48);
}

.tb-wedding-countdown-box .countdown-value {
    font-family: var(--tbw-font-display);
    font-size: 2rem;
    font-weight: 600;
    color: var(--tbw-secondary);
}

.tb-wedding-panel-kicker,
.tb-wedding-info-label,
.tb-wedding-countdown-label {
    color: color-mix(in srgb, var(--tbw-primary) 58%, white 42%);
}

.tb-wedding-main,
.tb-wedding-sidebar {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.tb-wedding-panel {
    border-radius: 1.8rem;
    padding: 1.75rem;
    background: rgba(255, 255, 255, 0.82);
}

.tb-wedding-highlight-panel {
    background:
        radial-gradient(circle at top right, rgba(217, 168, 157, 0.1), transparent 24%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 246, 243, 0.94));
}

.tb-wedding-panel-soft {
    background: linear-gradient(180deg, rgba(255, 247, 243, 0.96), rgba(255, 255, 255, 0.9));
}

.tb-wedding-section-title {
    margin-top: 0.75rem;
    font-size: clamp(2rem, 4vw, 2.9rem);
    line-height: 1.03;
    color: var(--tbw-secondary);
}

.tb-wedding-section-title-sm {
    font-size: clamp(1.8rem, 3.5vw, 2.3rem);
}

.tb-wedding-mini-title {
    margin-top: 0.65rem;
    font-size: 1.55rem;
    line-height: 1.12;
    color: var(--tbw-secondary);
}

.tb-wedding-info-grid,
.tb-wedding-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    margin-top: 1.5rem;
}

.tb-wedding-info-card {
    padding: 1.1rem 1.15rem;
    background: rgba(255, 255, 255, 0.55);
}

.tb-wedding-info-value {
    margin-top: 0.45rem;
    font-family: var(--tbw-font-display);
    font-size: 1.3rem;
    color: var(--tbw-secondary);
    line-height: 1.2;
}

.tb-wedding-detail-stack {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1rem;
}

.tb-wedding-rsvp-panel {
    position: sticky;
    top: 1rem;
}

.tb-wedding-guest-card {
    margin-top: 1rem;
    padding: 1.15rem;
    background: rgba(255, 255, 255, 0.52);
}

.tb-wedding-guest-name {
    margin-top: 0.35rem;
    font-size: 1.9rem;
    line-height: 1.08;
    color: var(--tbw-secondary);
}

.tb-wedding-form-stack,
.tb-wedding-select-stack {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1.2rem;
}

.tb-wedding-select-card {
    width: 100%;
    justify-content: space-between;
    border-radius: 1rem;
    border: 1px solid rgba(187, 132, 120, 0.12);
    background: rgba(255, 255, 255, 0.82);
    color: var(--tbw-secondary);
    text-align: left;
}

.tb-wedding-alert {
    margin-top: 1.2rem;
    border-radius: 1rem;
    padding: 1.1rem 1.15rem;
}

.tb-wedding-alert-success {
    border: 1px solid rgba(34, 197, 94, 0.18);
    background: rgba(34, 197, 94, 0.08);
    color: #166534;
}

.tb-wedding-alert-warning {
    border: 1px solid rgba(245, 158, 11, 0.18);
    background: rgba(245, 158, 11, 0.1);
    color: #9a5b00;
}

.tb-wedding-alert-title {
    font-weight: 700;
}

.tb-wedding-alert-copy {
    margin-top: 0.4rem;
    font-size: 0.94rem;
    line-height: 1.7;
}

.tb-wedding-action-row {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1rem;
}

.tb-event-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    border-top: 1px solid color-mix(in srgb, var(--color-primary) 13%, transparent);
    background: transparent;
}

.tb-event-card {
    border: 1px solid color-mix(in srgb, var(--color-primary) 22%, transparent);
    background: linear-gradient(145deg, color-mix(in srgb, var(--color-primary) 11%, var(--color-background)), color-mix(in srgb, var(--color-primary) 6%, var(--color-background)) 72%);
    box-shadow: 0 14px 34px rgba(30, 58, 138, .11);
}

.tb-event-card .tb-btn-secondary {
    border-color: color-mix(in srgb, var(--color-primary) 14%, transparent);
    background: color-mix(in srgb, var(--color-primary) 9%, var(--color-background));
}

.tb-event-actions form {
    min-width: 0;
}

.tb-event-action {
    display: flex;
    min-height: 5.25rem;
    width: 100%;
    cursor: pointer;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    border: 1px solid color-mix(in srgb, var(--color-foreground) 10%, transparent);
    border-radius: 1rem;
    background: color-mix(in srgb, var(--color-foreground) 4%, var(--color-background));
    color: var(--color-foreground);
    font: inherit;
    font-size: 0.78rem;
    font-weight: 650;
    line-height: 1.2;
    text-align: center;
    transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.tb-event-action svg {
    width: 1.5rem;
    height: 1.5rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.tb-event-action:hover {
    border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
    background: color-mix(in srgb, var(--color-primary) 8%, var(--color-background));
    color: var(--color-primary);
}

.tb-event-card .tb-event-action:not(.tb-event-action-danger) {
    border-color: color-mix(in srgb, var(--color-primary) 16%, transparent);
    background: color-mix(in srgb, var(--color-primary) 10%, var(--color-background));
}

.tb-event-card .tb-event-action:not(.tb-event-action-danger):hover {
    border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
    background: color-mix(in srgb, var(--color-primary) 15%, var(--color-background));
    color: var(--color-primary);
}

.tb-event-action:active {
    transform: scale(0.98);
}

.tb-event-action:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--color-primary) 25%, transparent);
    outline-offset: 2px;
}

.tb-event-action-danger {
    border-color: color-mix(in srgb, #dc2626 18%, transparent);
    background: color-mix(in srgb, #dc2626 7%, var(--color-background));
    color: #b91c1c;
}

.tb-event-action-danger:hover {
    border-color: color-mix(in srgb, #dc2626 34%, transparent);
    background: color-mix(in srgb, #dc2626 12%, var(--color-background));
    color: #991b1b;
}

.tb-plans-section {
    scroll-margin-top: 6rem;
    padding-top: 1.5rem;
}

.tb-dashboard-hero {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    border-radius: 1.5rem;
    background: linear-gradient(145deg, color-mix(in srgb, var(--color-primary) 7%, var(--color-background)), var(--color-background) 70%);
    padding: 1.25rem;
}

.tb-dashboard-create {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    border-radius: 1rem;
    background: var(--color-primary);
    padding: 0.75rem 1.25rem;
    color: white;
    font-size: 0.875rem;
    font-weight: 700;
    box-shadow: 0 8px 18px color-mix(in srgb, var(--color-primary) 22%, transparent);
    transition: filter 160ms ease, transform 160ms ease;
}

.tb-dashboard-create svg,
.tb-dashboard-stat svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.tb-dashboard-create:hover {
    filter: brightness(1.06);
}

.tb-dashboard-create:active {
    transform: scale(0.985);
}

.tb-dashboard-create:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--color-primary) 25%, transparent);
    outline-offset: 3px;
}

.tb-events-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.tb-events-summary-title {
    grid-column: 1 / -1;
}

.tb-dashboard-stat {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 0.65rem;
    border: 1px solid color-mix(in srgb, var(--color-foreground) 9%, transparent);
    border-radius: 1rem;
    background: var(--color-background);
    padding: 0.8rem;
}

.tb-dashboard-stat-icon {
    display: flex;
    width: 2.25rem;
    height: 2.25rem;
    flex: none;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    background: color-mix(in srgb, var(--color-foreground) 5%, var(--color-background));
    color: color-mix(in srgb, var(--color-foreground) 70%, transparent);
}

.tb-dashboard-stat strong,
.tb-dashboard-stat div > span {
    display: block;
}

.tb-dashboard-stat-icon svg {
    display: block;
    margin: auto;
}

.tb-dashboard-stat strong {
    font-size: 1.25rem;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.tb-dashboard-stat div > span {
    margin-top: 0.25rem;
    font-size: 0.68rem;
    line-height: 1.25;
    opacity: 0.62;
}

.tb-dashboard-stat-primary {
    border-color: color-mix(in srgb, var(--color-primary) 16%, transparent);
    background: color-mix(in srgb, var(--color-primary) 6%, var(--color-background));
}

.tb-dashboard-stat-primary .tb-dashboard-stat-icon,
.tb-dashboard-stat-primary strong {
    background: color-mix(in srgb, var(--color-primary) 10%, var(--color-background));
    color: var(--color-primary);
}

.tb-dashboard-stat-primary strong {
    background: transparent;
}

@media (min-width: 640px) {
    .tb-dashboard-hero {
        flex-direction: row;
        align-items: flex-end;
        justify-content: space-between;
        padding: 1.75rem;
    }

    .tb-dashboard-create {
        flex: none;
    }

    .tb-events-summary {
        grid-template-columns: minmax(0, 1fr) auto auto;
        align-items: center;
    }

    .tb-events-summary-title {
        grid-column: auto;
    }

    .tb-dashboard-stat {
        min-width: 10rem;
    }
}

.tb-plans-heading {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding-top: 0.5rem;
}

.tb-plans-heading-icon {
    display: none;
    width: 3rem;
    height: 3rem;
    flex: none;
    align-items: center;
    justify-content: center;
    border-radius: 1rem;
    background: color-mix(in srgb, var(--color-primary) 10%, var(--color-background));
    color: var(--color-primary);
}

.tb-plans-heading-icon svg,
.tb-plan-capacity svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.tb-plans-heading-icon svg {
    width: 1.45rem;
    height: 1.45rem;
}

.tb-plan-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 1.25rem;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--color-primary) 13%, transparent);
    border-radius: 1.25rem;
    background: var(--color-background);
    padding: 1.25rem;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.055);
}

.tb-profile-page {
    width: 100%;
    max-width: 64rem;
    margin: 0 auto;
}

.tb-profile-header {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
    border-radius: 1.5rem;
    background: linear-gradient(145deg, color-mix(in srgb, var(--color-primary) 8%, var(--color-background)), var(--color-background));
    padding: 1.5rem 1.25rem;
    text-align: center;
}

.tb-profile-back {
    position: absolute;
    top: 1rem;
    left: 1rem;
    display: flex;
    width: 2.75rem;
    height: 2.75rem;
    align-items: center;
    justify-content: center;
    border-radius: 0.9rem;
    background: var(--color-background);
    color: var(--color-foreground);
}

.tb-profile-back svg,
.tb-profile-card-heading svg {
    width: 1.3rem;
    height: 1.3rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.tb-profile-avatar {
    display: flex;
    width: 4.5rem;
    height: 4.5rem;
    align-items: center;
    justify-content: center;
    border: 5px solid color-mix(in srgb, var(--color-primary) 10%, var(--color-background));
    border-radius: 999px;
    background: var(--color-primary);
    color: white;
    font-size: 1.65rem;
    font-weight: 750;
}

.tb-profile-grid {
    display: grid;
    gap: 1.25rem;
}

.tb-profile-card {
    border: 1px solid color-mix(in srgb, var(--color-foreground) 9%, transparent);
    border-radius: 1.25rem;
    background: var(--color-background);
    padding: 1.25rem;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.045);
}

.tb-profile-card-heading {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    margin-bottom: 1.4rem;
}

.tb-profile-card-heading > span {
    display: flex;
    width: 2.6rem;
    height: 2.6rem;
    flex: none;
    align-items: center;
    justify-content: center;
    border-radius: 0.85rem;
    background: color-mix(in srgb, var(--color-primary) 9%, var(--color-background));
    color: var(--color-primary);
}

.tb-profile-card-heading h2 {
    font-size: 1.1rem;
    font-weight: 700;
}

.tb-profile-card-heading p {
    margin-top: 0.25rem;
    font-size: 0.8rem;
    line-height: 1.45;
    opacity: 0.62;
}

.tb-profile-form {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}

.tb-profile-form label {
    display: block;
    margin-bottom: 0.45rem;
    font-size: 0.82rem;
    font-weight: 650;
}

.tb-profile-help,
.tb-profile-error {
    margin-top: 0.4rem;
    font-size: 0.75rem;
    line-height: 1.45;
}

.tb-profile-help { opacity: 0.58; }
.tb-profile-error { color: var(--color-destructive, #b91c1c); }

.tb-invitation-bottom-nav {
    display: none;
}

.tb-access-page {
    width: min(100%, 72rem);
    margin-inline: auto;
}

.tb-gate-scanner {
    min-height: 100vh;
    background:
        radial-gradient(circle at 12% 0%, rgba(37, 99, 235, .1), transparent 24rem),
        #eef3fb;
    padding: 1rem 1rem 2.5rem;
    color: #27364f;
}

.tb-gate-shell {
    width: min(100%, 72rem);
    margin-inline: auto;
}

.tb-gate-header {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: .85rem;
    overflow: hidden;
    border-radius: 1.4rem;
    background: linear-gradient(135deg, #172554, #1e3a8a);
    padding: 1.15rem;
    color: white;
    box-shadow: 0 18px 38px rgba(23, 37, 84, .2);
}

.tb-gate-header-mark {
    display: flex;
    width: 2.8rem;
    height: 2.8rem;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: .9rem;
    background: rgba(255, 255, 255, .1);
}

.tb-gate-header-mark svg,
.tb-gate-card-heading svg,
.tb-gate-result-icon svg,
.tb-gate-fallback summary svg {
    width: 1.35rem;
    height: 1.35rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.tb-gate-header-copy > div {
    color: rgba(255, 255, 255, .62);
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.tb-gate-header-copy h1 {
    margin-top: .28rem;
    font-size: 1.45rem;
    font-weight: 750;
    letter-spacing: -.02em;
}

.tb-gate-header-copy p {
    margin-top: .18rem;
    color: rgba(255, 255, 255, .72);
    font-size: .78rem;
}

.tb-gate-header-meta {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    border-top: 1px solid rgba(255, 255, 255, .1);
    padding-top: .75rem;
    font-size: .72rem;
}

.tb-gate-header-meta small {
    display: flex;
    align-items: center;
    gap: .4rem;
    color: rgba(255, 255, 255, .7);
}

.tb-gate-header-meta i,
.tb-gate-camera-status i {
    width: .48rem;
    height: .48rem;
    flex: none;
    border-radius: 999px;
    background: #4ade80;
    box-shadow: 0 0 0 4px rgba(74, 222, 128, .12);
}

.tb-gate-layout {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
}

.tb-gate-camera-card,
.tb-gate-result,
.tb-gate-fallback {
    border: 1px solid rgba(30, 58, 138, .1);
    border-radius: 1.35rem;
    background: white;
    box-shadow: 0 12px 30px rgba(30, 58, 138, .065);
}

.tb-gate-camera-card { overflow: hidden; }

.tb-gate-card-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem;
}

.tb-gate-card-heading span,
.tb-gate-result > div > span {
    color: #1e40af;
    font-size: .66rem;
    font-weight: 750;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.tb-gate-card-heading h2 {
    margin-top: .22rem;
    font-size: 1rem;
    font-weight: 720;
}

.tb-gate-card-heading > svg { color: #1e40af; }

.tb-gate-camera-viewport {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #0f172a;
}

.tb-gate-camera-viewport video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tb-gate-focus {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(62%, 16rem);
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
}

.tb-gate-focus i {
    position: absolute;
    width: 2.3rem;
    height: 2.3rem;
    border-color: white;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .35));
}

.tb-gate-focus i:nth-child(1) { top: 0; left: 0; border-top: 4px solid white; border-left: 4px solid white; border-radius: .6rem 0 0; }
.tb-gate-focus i:nth-child(2) { top: 0; right: 0; border-top: 4px solid white; border-right: 4px solid white; border-radius: 0 .6rem 0 0; }
.tb-gate-focus i:nth-child(3) { bottom: 0; left: 0; border-bottom: 4px solid white; border-left: 4px solid white; border-radius: 0 0 0 .6rem; }
.tb-gate-focus i:nth-child(4) { right: 0; bottom: 0; border-right: 4px solid white; border-bottom: 4px solid white; border-radius: 0 0 .6rem; }
.tb-gate-focus span { position: absolute; top: 50%; right: .5rem; left: .5rem; height: 2px; background: #60a5fa; box-shadow: 0 0 10px rgba(96, 165, 250, .9); animation: tb-scan-line 2.2s ease-in-out infinite alternate; }

@keyframes tb-scan-line { from { transform: translateY(-4rem); } to { transform: translateY(4rem); } }

.tb-gate-camera-status {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    min-height: 3.7rem;
    padding: .95rem 1.1rem;
    color: rgba(39, 54, 79, .7);
    font-size: .78rem;
    line-height: 1.5;
}

.tb-gate-camera-status i { margin-top: .35rem; background: #22c55e; }
.tb-gate-camera-status.is-warning { background: #fff7ed; color: #9a3412; }
.tb-gate-camera-status.is-warning i { background: #f97316; box-shadow: 0 0 0 4px rgba(249, 115, 22, .12); }

.tb-gate-side { display: grid; gap: 1rem; }
.tb-gate-result { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .85rem; padding: 1.1rem; }
.tb-gate-result-icon { display: flex; width: 2.65rem; height: 2.65rem; align-items: center; justify-content: center; border-radius: .85rem; background: #eef2fb; color: #1e40af; }
.tb-gate-result h2 { margin-top: .22rem; font-size: 1.05rem; font-weight: 730; }
.tb-gate-result p { margin-top: .3rem; color: rgba(39, 54, 79, .65); font-size: .76rem; line-height: 1.5; }
.tb-gate-result.is-success { border-color: rgba(22, 163, 74, .2); background: #f0fdf4; }
.tb-gate-result.is-success .tb-gate-result-icon { background: rgba(22, 163, 74, .12); color: #15803d; }
.tb-gate-result.is-success > div > span { color: #15803d; }
.tb-gate-result.is-error { border-color: rgba(220, 38, 38, .18); background: #fef2f2; }
.tb-gate-result.is-error .tb-gate-result-icon { background: rgba(220, 38, 38, .1); color: #b91c1c; }
.tb-gate-result.is-error > div > span { color: #b91c1c; }

.tb-gate-fallback { overflow: hidden; }
.tb-gate-fallback summary { display: flex; min-height: 4rem; cursor: pointer; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; list-style: none; }
.tb-gate-fallback summary::-webkit-details-marker { display: none; }
.tb-gate-fallback summary > span { display: flex; align-items: center; gap: .65rem; }
.tb-gate-fallback summary > span svg { color: #1e40af; }
.tb-gate-fallback summary > svg { transition: transform 180ms ease; }
.tb-gate-fallback[open] summary > svg { transform: rotate(180deg); }
.tb-gate-fallback-body { display: grid; gap: 1.25rem; border-top: 1px solid rgba(30, 58, 138, .08); padding: 1.1rem; }
.tb-gate-manual { display: grid; gap: .75rem; }
.tb-gate-option-heading { display: flex; align-items: flex-start; gap: .65rem; }
.tb-gate-option-heading > span { display: flex; width: 1.8rem; height: 1.8rem; flex: none; align-items: center; justify-content: center; border-radius: .6rem; background: #eef2fb; color: #1e40af; font-size: .65rem; font-weight: 750; }
.tb-gate-option-heading h3 { font-size: .85rem; font-weight: 720; }
.tb-gate-option-heading p { margin-top: .18rem; color: rgba(39, 54, 79, .58); font-size: .7rem; line-height: 1.45; }
.tb-gate-manual label { font-size: .74rem; font-weight: 680; }
.tb-gate-manual button { min-height: 3rem; width: 100%; justify-content: center; }

@media (min-width: 768px) {
    .tb-gate-scanner { padding: 2rem 2rem 4rem; }
    .tb-gate-header { grid-template-columns: auto minmax(0, 1fr) auto; padding: 1.4rem 1.6rem; }
    .tb-gate-header-meta { grid-column: auto; flex-direction: column; align-items: flex-end; border: 0; padding: 0; }
    .tb-gate-header-copy h1 { font-size: 1.75rem; }
    .tb-gate-layout { grid-template-columns: minmax(0, 1.2fr) minmax(19rem, .8fr); align-items: start; gap: 1.25rem; margin-top: 1.25rem; }
    .tb-gate-fallback-body { padding: 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
    .tb-gate-focus span { animation: none; }
    .tb-gate-fallback summary > svg { transition: none; }
}

.tb-access-back {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    gap: .45rem;
    margin-bottom: .75rem;
    color: rgba(39, 54, 79, .7);
    font-size: .82rem;
    font-weight: 650;
}

.tb-access-back svg,
.tb-access-section-heading svg,
.tb-access-security svg,
.tb-access-form button svg,
.tb-access-action svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.tb-access-hero {
    display: grid;
    gap: 1rem;
    border: 1px solid rgba(30, 58, 138, .09);
    border-radius: 1.5rem;
    background: linear-gradient(145deg, #f0f4fc, #fff);
    padding: 1.25rem;
    box-shadow: 0 14px 34px rgba(30, 58, 138, .055);
}

.tb-access-hero-icon {
    display: flex;
    width: 3rem;
    height: 3rem;
    align-items: center;
    justify-content: center;
    border-radius: 1rem;
    background: #1e3a8a;
    color: white;
}

.tb-access-hero-icon svg,
.tb-access-empty svg {
    width: 1.5rem;
    height: 1.5rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.tb-access-kicker {
    color: #1e40af;
    font-size: .7rem;
    font-weight: 750;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.tb-access-hero h1 {
    margin-top: .35rem;
    font-size: clamp(1.85rem, 5vw, 2.6rem);
    line-height: 1.08;
    font-weight: 750;
    letter-spacing: -.025em;
}

.tb-access-hero-copy p {
    max-width: 42rem;
    margin-top: .55rem;
    color: rgba(39, 54, 79, .68);
    font-size: .88rem;
    line-height: 1.6;
}

.tb-access-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.tb-access-summary > div {
    border: 1px solid rgba(30, 58, 138, .09);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .76);
    padding: .85rem;
}

.tb-access-summary strong,
.tb-access-summary span { display: block; }
.tb-access-summary strong { color: #1e3a8a; font-size: 1.35rem; line-height: 1; }
.tb-access-summary span { margin-top: .3rem; color: rgba(39, 54, 79, .58); font-size: .7rem; }

.tb-access-layout {
    display: grid;
    gap: 1.25rem;
    margin-top: 1.25rem;
}

.tb-access-create-card,
.tb-access-card,
.tb-access-empty {
    border: 1px solid rgba(30, 58, 138, .1);
    border-radius: 1.35rem;
    background: white;
    box-shadow: 0 10px 28px rgba(30, 58, 138, .045);
}

.tb-access-create-card { padding: 1.25rem; }
.tb-access-section-heading { display: flex; align-items: center; gap: .8rem; }
.tb-access-section-heading > span { display: flex; width: 2.6rem; height: 2.6rem; flex: none; align-items: center; justify-content: center; border-radius: .85rem; background: rgba(30, 64, 175, .08); color: #1e40af; }
.tb-access-section-heading h2,
.tb-access-list-heading h2 { margin-top: .18rem; font-size: 1.15rem; font-weight: 720; }
.tb-access-create-copy { margin-top: 1rem; color: rgba(39, 54, 79, .62); font-size: .82rem; line-height: 1.55; }
.tb-access-form { display: grid; gap: .9rem; margin-top: 1rem; }
.tb-access-form label { display: block; margin-bottom: .45rem; font-size: .82rem; font-weight: 680; }
.tb-access-form button { display: inline-flex; min-height: 3rem; width: 100%; justify-content: center; gap: .5rem; }
.tb-access-error { margin-top: .4rem; color: #b91c1c; font-size: .78rem; }

.tb-access-security {
    display: flex;
    gap: .7rem;
    margin-top: 1rem;
    border-radius: 1rem;
    background: #f3f6fb;
    padding: .85rem;
    color: rgba(39, 54, 79, .66);
    font-size: .72rem;
    line-height: 1.5;
}

.tb-access-security svg { flex: none; color: #1e40af; }
.tb-access-security strong { color: #27364f; }
.tb-access-list-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: .85rem; padding-inline: .1rem; }
.tb-access-list-heading > span { color: rgba(39, 54, 79, .55); font-size: .75rem; }
.tb-access-cards { display: grid; gap: .9rem; }
.tb-access-card { overflow: hidden; padding: 1rem; }
.tb-access-card-top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem; }
.tb-access-card-avatar { display: flex; width: 2.65rem; height: 2.65rem; align-items: center; justify-content: center; border-radius: .9rem; background: #eef2fb; color: #1e3a8a; font-weight: 750; }
.tb-access-card-name { min-width: 0; }
.tb-access-card-name h3 { overflow: hidden; font-size: .96rem; font-weight: 720; text-overflow: ellipsis; white-space: nowrap; }
.tb-access-card-name p { margin-top: .22rem; color: rgba(39, 54, 79, .55); font-size: .66rem; }

.tb-access-pin { margin-top: .9rem; border: 1px solid rgba(22, 163, 74, .18); border-radius: 1rem; background: rgba(22, 163, 74, .07); padding: .9rem; }
.tb-access-pin > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.tb-access-pin span { color: #166534; font-size: .68rem; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.tb-access-pin strong { color: #14532d; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 1.45rem; letter-spacing: .18em; }
.tb-access-pin p { margin-top: .45rem; color: #166534; font-size: .68rem; }

.tb-access-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin-top: .9rem; }
.tb-access-metrics > div { border-radius: .85rem; background: #f6f8fc; padding: .7rem; }
.tb-access-metrics dt { color: rgba(39, 54, 79, .52); font-size: .67rem; }
.tb-access-metrics dd { margin-top: .25rem; font-size: .78rem; font-weight: 680; }
.tb-access-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; margin-top: .85rem; border-top: 1px solid rgba(30, 58, 138, .08); padding-top: .85rem; }
.tb-access-action { display: flex; min-height: 3.1rem; width: 100%; align-items: center; justify-content: center; gap: .4rem; border: 1px solid rgba(30, 58, 138, .1); border-radius: .85rem; background: #f5f7fb; color: #334155; font-size: .73rem; font-weight: 680; transition: background-color 160ms ease, border-color 160ms ease; }
.tb-access-action:hover { border-color: rgba(30, 64, 175, .25); background: #eef2fb; }
.tb-access-action-danger { border-color: rgba(185, 28, 28, .12); background: rgba(220, 38, 38, .055); color: #b91c1c; }
.tb-access-empty { border-style: dashed; padding: 2.25rem 1.4rem; text-align: center; }
.tb-access-empty > span { display: flex; width: 3rem; height: 3rem; margin-inline: auto; align-items: center; justify-content: center; border-radius: 1rem; background: #eef2fb; color: #1e40af; }
.tb-access-empty h3 { margin-top: .9rem; font-size: .95rem; font-weight: 720; }
.tb-access-empty p { max-width: 25rem; margin: .45rem auto 0; color: rgba(39, 54, 79, .6); font-size: .78rem; line-height: 1.55; }

@media (min-width: 768px) {
    .tb-access-hero { grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; padding: 1.75rem; }
    .tb-access-summary { min-width: 18rem; }
    .tb-access-create-card { padding: 1.5rem; }
    .tb-access-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
    .tb-access-layout { grid-template-columns: minmax(18rem, .65fr) minmax(0, 1.35fr); align-items: start; gap: 1.5rem; margin-top: 1.5rem; }
    .tb-access-create-card { position: sticky; top: 1.5rem; }
}

.tb-simple-desktop-heading {
    display: none;
}

.tb-simple-rsvp-copy {
    margin-top: .75rem;
    max-width: 36rem;
    color: rgba(39, 54, 79, .68);
    font-size: .92rem;
    line-height: 1.65;
}

@media (min-width: 1024px) {
    .tb-simple-invitation {
        background:
            radial-gradient(circle at 7% 5%, rgba(37, 99, 235, .09), transparent 25rem),
            radial-gradient(circle at 94% 34%, rgba(30, 58, 138, .06), transparent 28rem),
            #f3f6fb;
        padding: 3rem 3.5rem 5rem;
    }

    .tb-simple-shell {
        width: min(100%, 1280px);
    }

    .tb-simple-desktop-heading {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 2rem;
        margin-bottom: 1.25rem;
        padding-inline: .25rem;
    }

    .tb-simple-desktop-heading p {
        margin-top: .3rem;
        color: rgba(39, 54, 79, .62);
        font-size: .9rem;
    }

    .tb-simple-eyebrow {
        color: #1e40af;
        font-size: .72rem;
        font-weight: 750;
        letter-spacing: .18em;
        text-transform: uppercase;
    }

    .tb-simple-private-badge {
        display: inline-flex;
        align-items: center;
        gap: .55rem;
        border: 1px solid rgba(30, 64, 175, .13);
        border-radius: 999px;
        background: rgba(255, 255, 255, .78);
        padding: .65rem .9rem;
        color: #334155;
        font-size: .78rem;
        font-weight: 650;
        box-shadow: 0 8px 24px rgba(30, 58, 138, .05);
    }

    .tb-simple-private-badge span {
        width: .48rem;
        height: .48rem;
        border-radius: 999px;
        background: #16a34a;
        box-shadow: 0 0 0 4px rgba(22, 163, 74, .1);
    }

    .tb-simple-hero {
        border-color: rgba(30, 58, 138, .1);
        border-radius: 2rem;
        box-shadow: 0 30px 80px rgba(30, 58, 138, .11);
    }

    .tb-simple-hero-grid {
        grid-template-columns: minmax(390px, .92fr) minmax(430px, 1.08fr) !important;
        min-height: 610px;
    }

    .tb-simple-media,
    .tb-simple-fallback {
        min-height: 610px;
        padding: 2rem;
    }

    .tb-simple-media {
        background: linear-gradient(145deg, #e6edf8, #f5f7fb);
    }

    .tb-simple-media img,
    .tb-simple-media video {
        max-height: 660px;
        border-radius: 1.25rem;
        box-shadow: 0 18px 45px rgba(15, 23, 42, .12);
    }

    .tb-simple-content {
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: clamp(3.5rem, 5vw, 5.5rem);
    }

    .tb-simple-content h1 {
        max-width: 12ch;
        font-size: clamp(3.25rem, 4.2vw, 4.75rem);
        letter-spacing: -.035em;
    }

    .tb-simple-content > p {
        max-width: 38rem;
        font-size: 1.05rem;
        line-height: 1.8;
    }

    .tb-simple-details {
        border: 0;
        gap: .75rem;
        padding-block: .25rem;
    }

    .tb-simple-details > div {
        min-height: 5.8rem;
        border: 1px solid rgba(30, 58, 138, .09);
        border-radius: 1rem;
        background: #f7f9fc;
        padding: 1rem 1.1rem;
    }

    .tb-simple-rsvp {
        display: grid;
        grid-template-columns: minmax(300px, .72fr) minmax(520px, 1.28fr);
        gap: clamp(2rem, 4vw, 4.5rem);
        align-items: start;
        border-color: rgba(30, 58, 138, .1);
        border-radius: 2rem;
        padding: clamp(2rem, 4vw, 3.5rem);
        box-shadow: 0 24px 64px rgba(30, 58, 138, .08);
    }

    .tb-simple-rsvp-intro {
        position: sticky;
        top: 2rem;
        padding-top: .8rem;
    }

    .tb-simple-rsvp-intro h2 {
        max-width: 10ch;
        font-size: clamp(2rem, 3vw, 3rem);
        line-height: 1.08;
        letter-spacing: -.025em;
    }

    .tb-simple-rsvp-form .tb-rsvp-card {
        border-radius: 1.5rem;
        box-shadow: none;
    }

    .tb-simple-rsvp-form .tb-rsvp-form {
        padding: 1.35rem;
    }
}

@media (max-width: 767px) {
    .tb-simple-invitation.has-bottom-nav {
        padding-bottom: calc(6.5rem + env(safe-area-inset-bottom));
    }

    .tb-ticket-page.has-bottom-nav {
        padding-bottom: calc(7rem + env(safe-area-inset-bottom));
    }

    .tb-invitation-bottom-nav {
        position: fixed;
        z-index: 90;
        right: 0;
        bottom: 0;
        left: 0;
        display: grid;
        grid-auto-columns: minmax(0, 1fr);
        grid-auto-flow: column;
        border-top: 1px solid rgba(39, 54, 79, .12);
        background: rgba(255, 255, 255, .95);
        padding: .45rem .65rem calc(.45rem + env(safe-area-inset-bottom));
        box-shadow: 0 -10px 30px rgba(39, 54, 79, .09);
        backdrop-filter: blur(16px);
    }

    .tb-invitation-nav-item {
        display: flex;
        min-height: 3.55rem;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: .28rem;
        border-radius: .9rem;
        color: rgba(39, 54, 79, .6);
        font-size: .67rem;
        font-weight: 650;
        line-height: 1;
        transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
    }

    .tb-invitation-nav-item svg {
        width: 1.35rem;
        height: 1.35rem;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 1.8;
    }

    .tb-invitation-nav-item.is-active {
        background: rgba(37, 99, 235, .09);
        color: #1d4ed8;
    }

    .tb-invitation-nav-item:active {
        transform: scale(.96);
    }

    .tb-invitation-nav-item:focus-visible {
        outline: 3px solid rgba(37, 99, 235, .22);
        outline-offset: 1px;
    }
}

@media (min-width: 768px) {
    .tb-profile-header {
        flex-direction: row;
        padding: 2rem;
        text-align: left;
    }

    .tb-profile-back {
        position: static;
        flex: none;
    }

    .tb-profile-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
    }

    .tb-profile-card {
        padding: 1.5rem;
    }
}

.tb-plan-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.tb-plan-label,
.tb-plan-price-label {
    display: block;
    color: var(--color-primary);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.tb-plan-name {
    margin-top: 0.25rem;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.2;
}

.tb-plan-credit {
    display: flex;
    min-width: 4.5rem;
    flex-direction: column;
    align-items: center;
    border-radius: 1rem;
    background: color-mix(in srgb, var(--color-primary) 9%, var(--color-background));
    padding: 0.7rem 0.8rem;
    color: var(--color-primary);
}

.tb-plan-credit strong {
    font-size: 1.35rem;
    line-height: 1;
}

.tb-plan-credit span {
    margin-top: 0.25rem;
    font-size: 0.7rem;
    font-weight: 650;
}

.tb-plan-capacity {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    border-radius: 0.9rem;
    background: color-mix(in srgb, var(--color-foreground) 4%, var(--color-background));
    padding: 0.8rem 0.9rem;
    font-size: 0.82rem;
    line-height: 1.4;
}

.tb-plan-capacity svg {
    width: 1.25rem;
    height: 1.25rem;
    flex: none;
    color: var(--color-primary);
}

.tb-plan-price {
    padding-top: 0.1rem;
}

.tb-plan-price > div {
    margin-top: 0.35rem;
    font-size: clamp(1.55rem, 7vw, 2rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.025em;
}

.tb-plan-price small {
    display: block;
    margin-top: 0.45rem;
    font-size: 0.78rem;
    opacity: 0.58;
}

@media (min-width: 640px) {
    .tb-plans-heading-icon {
        display: flex;
    }

    .tb-plan-card {
        padding: 1.5rem;
    }
}

@media (min-width: 640px) {
    .tb-event-actions {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .tb-wedding-info-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

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

    .tb-wedding-action-row {
        flex-direction: row;
    }
}

@media (min-width: 1024px) {
    .tb-wedding-page {
        padding: 3rem 1.5rem 4rem;
    }

    .tb-wedding-hero {
        grid-template-columns: minmax(0, 0.96fr) minmax(0, 1.04fr);
        gap: 2.6rem;
        align-items: center;
        min-height: 76vh;
    }

    .tb-wedding-grid {
        grid-template-columns: minmax(0, 1.12fr) minmax(360px, 0.88fr);
        gap: 1.9rem;
        margin-top: 2rem;
    }
}
