:root {
    --surface: #090909;
    --panel: #111;
    --card: #1a1a1a;
    --ink: #f5f5f5;
    --muted: #b8b8b8;
    --line: #2b2b2b;
    --accent: #e50914;
    --avatar: #1f8bff;
}

html, body, #app { width: 100%; height: 100%; }
body.vue-booting #backsound-player, body.vue-booting #netflix-intro-video, body.vue-booting #netflix-pin-transition { display: none !important; }
body.vue-booting .vue-only, body.vue-ready .boot-only { display: none !important; }
body.vue-booting .splash-open-button, body.vue-booting .splash-profile { cursor: wait; opacity: .48; pointer-events: none; }
body.sal-disabled [data-sal] { opacity: 1; transform: none; }
#app > main { position: relative; height: 100%; }
#main { isolation: isolate; background: radial-gradient(circle at 50% 18%, #2b0408, #090102 38%, #020202 72%); }
#main.invitation-revealing { animation: netflix-invitation-reveal .82s cubic-bezier(.16, 1, .3, 1) both; transform-origin: center 18%; }
@keyframes netflix-invitation-reveal { 0% { opacity: .18; filter: blur(8px); transform: translateY(16px) scale(1.035); } 55% { opacity: 1; filter: blur(0); } 100% { opacity: 1; filter: none; transform: translateY(0) scale(1); } }
#main > section, #main > footer { position: relative; z-index: 1; }
.splash-ambient.invitation-ambient { position: fixed; z-index: 0; opacity: .68; }
.invitation-ambient::before { position: absolute; right: -32%; bottom: -30%; left: -32%; height: 72%; background-image: linear-gradient(#e5091433 1px, transparent 1px), linear-gradient(90deg, #e5091433 1px, transparent 1px); background-size: 54px 38px; content: ''; -webkit-mask-image: linear-gradient(to bottom, transparent, #000 24%, #000); mask-image: linear-gradient(to bottom, transparent, #000 24%, #000); transform: perspective(520px) rotateX(64deg); transform-origin: center bottom; }
.invitation-ambient .splash-ambient__panel { top: 16%; opacity: .48; }
.invitation-ambient .splash-ambient__ring { top: 30%; opacity: .62; }
.invitation-ambient .splash-ambient__glow { top: 46%; opacity: .64; }
.invitation-ambient .splash-ambient__beam { opacity: .36; }
#groom-bride, #countdown, #save-date, #wedding-prayer, #our-story, #our-moment, #galleries, #guest-book, #wedding-gift { background: linear-gradient(180deg, #080808c4, #130204a6) !important; }
#countdown, #our-moment, #guest-book { background: linear-gradient(180deg, #000000b5, #0a0001a1) !important; }
.countdown-shell { width: 100%; }
.countdown-status { margin: 0 auto 18px; color: #f5f5f5; font-family: 'Bebas Neue', sans-serif; font-size: clamp(1.65rem, 7vw, 2.4rem); font-weight: 700; letter-spacing: .045em; line-height: 1.15; text-align: center; text-wrap: balance; }
.countdown-status.today { margin: 28px auto; color: #fff; font-size: clamp(2rem, 8vw, 3rem); }
.countdown-status.today::before { display: block; width: 46px; height: 4px; margin: 0 auto 18px; border-radius: 999px; background: var(--accent); content: ''; }
.countdown-status.today:has(+ .countdown-next-label) { margin-bottom: 10px; }
.countdown-next-label { margin: 0 auto 4px; color: #ff636b; font-size: clamp(.68rem, 2vw, .82rem); font-weight: 800; letter-spacing: .13em; text-align: center; text-transform: uppercase; }
.countdown-status.finished { margin: 28px auto; color: var(--muted); }
.wedding-prayer-card { position: relative; overflow: hidden; border: 1px solid #343434; border-radius: 18px; background: radial-gradient(circle at 88% 0, #e5091428, transparent 36%), linear-gradient(145deg, #1b1b1b, #0d0d0d); padding: clamp(24px, 6vw, 40px) clamp(18px, 5vw, 36px); text-align: center; box-shadow: 0 22px 52px #0007, inset 0 1px #ffffff09; }
.wedding-prayer-card__mark { position: absolute; top: -22px; left: 14px; color: #e509141e; font-family: Georgia, serif; font-size: 9rem; line-height: 1; pointer-events: none; }
.wedding-prayer-card__arabic { position: relative; max-width: 720px; margin: 0 auto; color: #fff; font-family: "Noto Naskh Arabic", "Geeza Pro", "Traditional Arabic", serif; font-size: clamp(1.28rem, 4.8vw, 1.85rem); font-weight: 600; line-height: 1.9; text-wrap: balance; }
.wedding-prayer-card__latin { position: relative; margin: 17px auto 0; color: #e5e5e5; font-size: clamp(.86rem, 3.4vw, 1rem); font-style: italic; line-height: 1.7; }
.wedding-prayer-card__line { display: block; width: 46px; height: 3px; margin: 21px auto; border-radius: 999px; background: var(--accent); box-shadow: 0 0 15px #e5091470; }
.wedding-prayer-card__meaning { max-width: 620px; margin: 0 auto; color: #bdbdbd; font-size: clamp(.78rem, 3.2vw, .92rem); line-height: 1.75; }
.wedding-prayer-card__meaning strong { color: #ff555d; }
.splash-screen { position: fixed; inset: 0; z-index: 70; display: flex; width: 100%; height: 100%; height: 100dvh; align-items: flex-start; justify-content: center; overflow-x: hidden; overflow-y: auto; background: #000; color: #f5f5f5; overscroll-behavior-y: contain; scrollbar-width: none; touch-action: pan-y; transition: opacity .45s ease, visibility .45s ease; -webkit-overflow-scrolling: touch; }
.splash-screen::-webkit-scrollbar { display: none; width: 0; height: 0; }
.splash-screen.is-open { opacity: 0; visibility: hidden; pointer-events: none; }
.splash-screen .splash-overlay { position: absolute; inset: 0; background: #000; }
.splash-ambient { position: absolute; z-index: 1; inset: 0; overflow: hidden; pointer-events: none; perspective: 900px; }
.splash-ambient__panel { position: absolute; top: 13%; width: clamp(170px, 20vw, 340px); aspect-ratio: .7; border: 1px solid #ff334070; border-radius: 22px; background: linear-gradient(145deg, #e509142b, #ffffff0a 48%, transparent 72%); box-shadow: inset 0 0 40px #e509141c, 0 0 55px #e509141c; opacity: .72; }
.splash-ambient__panel::before, .splash-ambient__panel::after { position: absolute; border: 1px solid #ffffff12; border-radius: inherit; content: ''; }
.splash-ambient__panel::before { inset: 9%; }
.splash-ambient__panel::after { inset: 19%; border-color: #e5091429; }
.splash-ambient__panel--left { left: -6%; transform: rotateY(48deg) rotateZ(-8deg); animation: splash-panel-left 13s ease-in-out infinite alternate; }
.splash-ambient__panel--right { right: -6%; transform: rotateY(-48deg) rotateZ(8deg); animation: splash-panel-right 15s ease-in-out infinite alternate; }
.splash-ambient__ring { position: absolute; top: 26%; left: 50%; width: min(66vw, 760px); aspect-ratio: 1; border: 1px solid #e5091457; border-radius: 50%; box-shadow: 0 0 80px #e5091426, inset 0 0 80px #e5091417; transform: translate(-50%, -50%) rotateX(69deg); animation: splash-ring 18s linear infinite; }
.splash-ambient__ring::before, .splash-ambient__ring::after { position: absolute; border: 1px solid #ffffff0f; border-radius: 50%; content: ''; }
.splash-ambient__ring::before { inset: 11%; }
.splash-ambient__ring::after { inset: 24%; border-color: #e509141c; }
.splash-ambient__glow { position: absolute; top: 42%; left: 50%; width: min(44vw, 520px); aspect-ratio: 1; border-radius: 50%; background: #e509142e; filter: blur(58px); transform: translate(-50%, -50%); animation: splash-glow 7s ease-in-out infinite alternate; }
.splash-ambient__beam { position: absolute; top: -18%; width: 2px; height: 92%; background: linear-gradient(to bottom, transparent, #ff33407d 28%, #fff4 48%, #e509145e 68%, transparent); box-shadow: 0 0 16px #e509146e; opacity: .48; transform-origin: top center; }
.splash-ambient__beam::after { position: absolute; top: 28%; left: 50%; width: 72px; height: 1px; background: linear-gradient(90deg, transparent, #ff2634, transparent); content: ''; transform: translateX(-50%) rotate(90deg); }
.splash-ambient__beam--left { left: 18%; transform: rotate(-24deg); animation: splash-beam-left 11s ease-in-out infinite alternate; }
.splash-ambient__beam--right { right: 18%; transform: rotate(24deg); animation: splash-beam-right 13s ease-in-out infinite alternate; }
.splash-ambient__particles { position: absolute; top: 50%; left: 50%; width: 3px; height: 3px; border-radius: 50%; background: #fff; box-shadow: -43vw -35vh 0 0 #e50914, -32vw -18vh 0 1px #ff5a62, -21vw 24vh 0 0 #fff8, -12vw -31vh 0 1px #e50914, 9vw -38vh 0 0 #fff9, 18vw 29vh 0 1px #e50914, 28vw -22vh 0 0 #fff7, 39vw 12vh 0 1px #ff3641, 45vw -4vh 0 0 #e50914, -39vw 36vh 0 0 #fff6, 4vw 40vh 0 1px #ff3440, 34vw 38vh 0 0 #fff7; filter: drop-shadow(0 0 5px #e50914); animation: splash-particles 8s ease-in-out infinite alternate; }
.splash-screen .splash-content { position: relative; z-index: 2; display: flex; width: min(100%, 520px); min-height: 100%; flex: 0 0 auto; flex-direction: column; align-items: center; justify-content: center; padding: max(42px, env(safe-area-inset-top)) 24px max(42px, env(safe-area-inset-bottom)); text-align: center; }
@keyframes splash-panel-left { to { transform: translate3d(20px, -16px, 30px) rotateY(42deg) rotateZ(-5deg); } }
@keyframes splash-panel-right { to { transform: translate3d(-20px, 18px, 30px) rotateY(-42deg) rotateZ(5deg); } }
@keyframes splash-ring { to { transform: translate(-50%, -50%) rotateX(69deg) rotateZ(360deg); } }
@keyframes splash-glow { to { opacity: .42; transform: translate(-50%, -50%) scale(1.16); } }
@keyframes splash-beam-left { to { opacity: .72; transform: translateX(16px) rotate(-18deg); } }
@keyframes splash-beam-right { to { opacity: .72; transform: translateX(-16px) rotate(18deg); } }
@keyframes splash-particles { to { opacity: .52; transform: translateY(-12px) scale(1.15); } }
.splash-brand { display: flex; flex-direction: column; align-items: center; }
.splash-wedding-logo { width: clamp(190px, 58vw, 320px); height: auto; }
.splash-lineage { display: grid; width: min(100%, 500px); grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: stretch; gap: 10px; margin-top: 36px; }
.splash-lineage article { display: flex; min-width: 0; flex-direction: column; justify-content: center; overflow: hidden; border: 1px solid #303030; border-radius: 14px; background: radial-gradient(circle at 0 0, #e509141d, transparent 42%), linear-gradient(145deg, #1d1d1d, #101010); padding: 13px 12px; text-align: center; box-shadow: 0 12px 34px #0007; }
.splash-lineage article > h2 { overflow: hidden; margin: 0 0 9px; color: #fff; font-family: 'Barlow Condensed', sans-serif; font-size: clamp(1.25rem, 5vw, 1.65rem); font-weight: 700; line-height: 1; text-overflow: ellipsis; white-space: nowrap; }
.splash-lineage article > span { color: #ff454d; font-size: .62rem; font-weight: 700; letter-spacing: .12em; line-height: 1.3; text-transform: uppercase; }
.splash-lineage article p { margin: 6px 0 0; color: #cfcfcf; font-size: .69rem; line-height: 1.45; }
.splash-lineage article strong { color: #fff; font-weight: 600; }
.splash-parent-mother { display: inline-block; margin-top: 2px; }
.splash-lineage > i { align-self: center; color: var(--accent); font-family: 'Barlow Condensed', sans-serif; font-size: 1.5rem; font-style: normal; font-weight: 700; }
.splash-profile-single { display: flex; flex-direction: column; align-items: center; margin-top: clamp(24px, 4vh, 40px); border: 0; border-radius: 18px; background: transparent; padding: 0; color: inherit; cursor: pointer; transition: filter .2s ease, transform .2s ease; }
.splash-profile-single:hover { filter: brightness(1.08); transform: translateY(-2px); }
.splash-profile-single:active { transform: scale(.97); }
.splash-profile-single:focus-visible { outline: 3px solid #fff; outline-offset: 5px; }
.splash-profile-single .splash-profile-icon { display: block; width: clamp(108px, 31vw, 148px); aspect-ratio: 1; }
.splash-guest { display: flex; width: 100%; flex-direction: column; align-items: center; margin-top: clamp(34px, 6vh, 54px); }
.splash-guest > p { margin: 0; color: #dedede; font-size: clamp(.9rem, 3.8vw, 1.05rem); }
.splash-guest > strong { margin-top: 7px; color: #ed1c24; font-size: clamp(1.3rem, 5.5vw, 1.75rem); font-weight: 500; line-height: 1.25; }
.splash-guest > small { margin-top: 18px; color: #c8c8c8; font-size: clamp(.7rem, 2.9vw, .82rem); line-height: 1.5; }
.splash-open-button { display: inline-flex; min-height: 54px; align-items: center; justify-content: center; gap: 13px; margin-top: 22px; border: 1px solid #3b3b3b; border-radius: 12px; background: #292929; padding: 14px 26px; color: #e8e8e8; cursor: pointer; font-size: clamp(.9rem, 3.8vw, 1.05rem); font-weight: 400; letter-spacing: .08em; text-transform: uppercase; transition: background .2s ease, transform .2s ease; }
.splash-open-button:hover { background: #343434; }
.splash-open-button:active { transform: scale(.98); }
.splash-open-button:disabled, .splash-profile:disabled { cursor: wait; opacity: .48; pointer-events: none; }
.splash-open-button > span { line-height: 1; }
.splash-help { display: flex; width: 100%; flex-direction: column; align-items: center; gap: 8px; margin-top: 26px; }
.splash-help p { margin: 0; color: #a6a6a6; font-size: clamp(.65rem, 2.7vw, .76rem); line-height: 1.45; text-align: center; }
.splash-help__button, .contact-help-after-rating__button { display: inline-flex; min-height: 32px; align-items: center; justify-content: center; border: 1px solid #ffffff42; border-radius: 999px; background: #ffffff0b; padding: 7px 13px; color: #f5f5f5; font-size: .7rem; font-weight: 750; letter-spacing: .035em; line-height: 1; text-decoration: none; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.splash-help__button:hover, .contact-help-after-rating__button:hover { border-color: #e50914; background: #e5091420; transform: translateY(-1px); }
.contact-help-after-rating { display: flex; justify-content: center; margin: -28px auto 38px; padding: 0 20px; }
.contact-help-after-rating__button { gap: 7px; border-color: #e5091466; color: #ffbbc0; }
.contact-help-after-rating__button svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.splash-open-icon { width: 1.45em; height: 1.45em; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.splash-media-loading { width: min(100%, 320px); min-height: 38px; margin: 12px auto 0; color: #aaa; font-size: 11px; font-weight: 600; letter-spacing: .04em; }
.splash-media-loading__meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.splash-media-loading__meta strong { color: #d7d7d7; font-size: 10px; font-variant-numeric: tabular-nums; }
.splash-media-loading__track { height: 5px; overflow: hidden; margin-top: 8px; border-radius: 999px; background: #ffffff1c; box-shadow: inset 0 1px 2px #0008; }
.splash-media-loading__track span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #b20710, #e50914, #ff4c55); box-shadow: 0 0 14px #e509147a; transition: width .22s ease; }
.image-skeleton { background-color: #202020; background-image: linear-gradient(100deg, transparent 20%, #ffffff14 40%, transparent 60%); background-position: 180% 0; background-size: 220% 100%; animation: image-skeleton-shimmer 1.25s ease-in-out infinite; }
.image-skeleton.image-loaded { background-color: transparent; background-image: none; animation: none; }
@keyframes image-skeleton-shimmer { to { background-position: -120% 0; } }
.netflix-video { width: 100%; height: 100%; border: 0; }
.netflix-pin-transition { position: fixed; z-index: 250; inset: 0; display: grid; width: 100vw; height: 100vh; height: 100dvh; overflow: hidden; place-items: center; background: radial-gradient(circle at 50% 44%, #171717 0, #060606 36%, #000 72%); color: #fff; opacity: 1; transition: opacity .32s ease; }
.netflix-pin-transition.is-leaving { opacity: 0; pointer-events: none; }
.netflix-pin-transition::before { position: absolute; inset: 0; background: linear-gradient(115deg, transparent 30%, #e509140e 49%, transparent 68%); content: ''; animation: netflix-pin-scan 1.8s ease-in-out infinite; pointer-events: none; }
.netflix-pin-transition__content { position: relative; z-index: 1; width: min(92vw, 900px); text-align: center; }
.netflix-pin-transition__content > p { margin: 0; color: #999; font-size: clamp(.85rem, 2vw, 1.2rem); letter-spacing: .03em; }
.netflix-pin-transition__content > h2 { margin: 14px 0 clamp(32px, 6vh, 58px); color: #fff; font-size: clamp(1.65rem, 4vw, 3.1rem); font-weight: 700; line-height: 1.15; }
.netflix-pin-transition__boxes { display: flex; justify-content: center; gap: clamp(4px, 1.2vw, 14px); }
.netflix-pin-transition__boxes > span { display: grid; width: clamp(28px, 8vw, 76px); aspect-ratio: .9; place-items: center; border: 2px solid #777; background: #080808; box-shadow: inset 0 0 0 1px #ffffff08; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease; }
.netflix-pin-transition__boxes b { color: #fff; font-size: clamp(1.35rem, 4.5vw, 3rem); font-variant-numeric: tabular-nums; line-height: 1; }
.netflix-pin-transition__boxes > span.is-active { border-color: #eee; box-shadow: 0 0 0 2px #ffffff1f, 0 0 28px #ffffff16; animation: netflix-pin-active .75s ease-in-out infinite alternate; }
.netflix-pin-transition__boxes > span.is-filled { border-color: #e50914; background: #170608; box-shadow: 0 0 22px #e5091438, inset 0 0 20px #e509141c; animation: netflix-pin-fill .28s cubic-bezier(.2, .9, .35, 1.25); }
.netflix-pin-transition.is-complete .netflix-pin-transition__boxes > span { border-color: #e50914; box-shadow: 0 0 25px #e5091445; }
@keyframes netflix-pin-fill { 0% { opacity: .25; transform: scale(.78); } 70% { transform: scale(1.08); } 100% { opacity: 1; transform: scale(1); } }
@keyframes netflix-pin-active { to { border-color: #e50914; box-shadow: 0 0 0 2px #e5091429, 0 0 34px #e5091438; } }
@keyframes netflix-pin-scan { 0%, 100% { opacity: .25; transform: translateX(-35%); } 50% { opacity: 1; transform: translateX(35%); } }
.netflix-intro-video { position: fixed; z-index: 240; inset: 0; display: grid; width: auto; height: auto; min-width: 100%; min-height: 100%; overflow: hidden; place-items: center; background: #000; opacity: 1; transition: opacity .52s ease; }
.netflix-intro-video.is-leaving { opacity: 0; pointer-events: none; }
.netflix-intro-video video { position: absolute; inset: 0; display: block; width: 100% !important; height: 100% !important; max-width: none !important; max-height: none !important; object-fit: cover; object-position: 50% 50%; background: #000; }
@media (min-width: 1200px) and (min-aspect-ratio: 16 / 9) {
    .netflix-intro-video video { object-position: 50% 52%; }
}
body.intro-video-playing, body.pin-transition-playing { overflow: hidden; background: #000; }
.netflix-alert { margin: 0 0 12px; padding: 10px 12px; border-radius: 8px; font-size: 12px; }
.netflix-alert.success { color: #d9ffe1; background: #123c20; }
.netflix-alert.error { color: #ffe0e0; background: #4a1619; }
.comment-copy { margin-top: 5px; color: var(--ink); font-size: 12px; line-height: 1.55; }
.comment-time { color: var(--muted); font-size: 10px; }
.comments-shell { align-self: start; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(145deg, #191919, #101010); box-shadow: 0 18px 44px #0005; }
.comments-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); padding: 14px 16px; }
.comments-heading > div { display: grid; gap: 2px; }
.comments-heading span { color: #fff; font-size: 14px; font-weight: 700; }
.comments-heading small { color: var(--muted); font-size: 10px; }
.comments-heading .comments-count { display: grid; min-width: 30px; height: 30px; place-items: center; border-radius: 999px; background: #e5091420; color: #ff535b; font-size: 11px; }
.comments { display: grid; gap: 12px !important; padding: 12px !important; scroll-behavior: smooth; scrollbar-color: #e50914 #292929; scrollbar-width: thin; }
.comments.is-scrollable { overflow-y: auto; overscroll-behavior: contain; padding-right: 8px !important; }
.comments::-webkit-scrollbar { width: 6px; }
.comments::-webkit-scrollbar-track { border-radius: 999px; background: #292929; }
.comments::-webkit-scrollbar-thumb { border-radius: 999px; background: #e50914; }
.comments li.comment-card { position: relative; border: 1px solid #303030; border-radius: 14px; background: radial-gradient(circle at 0 0, #e5091414, transparent 34%), #181818; padding: 14px; box-shadow: inset 0 1px #ffffff08; }
.comment-card-head { display: flex; min-width: 0; align-items: center; gap: 10px; }
.comment-author { display: grid; min-width: 0; flex: 1; gap: 2px; }
.comment-author strong { overflow: hidden; color: #fff; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.comment-card .comment-time { display: block; color: #8d8d8d; font-size: 10px; }
.comment-card .comment-copy { margin: 11px 0 0; color: #d3d3d3; font-size: 12px; line-height: 1.65; overflow-wrap: anywhere; }
.own-wish-badge { flex: none; border: 1px solid #e509146e; border-radius: 999px; background: #e509141f; padding: 4px 8px; color: #ff6269; font-size: 9px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.wish-confirm-modal { position: fixed; z-index: 148; inset: 0; display: none; align-items: center; justify-content: center; padding: 20px; background: #000c; backdrop-filter: blur(7px); }
.wish-confirm-modal.open { display: flex; }
body.wish-confirm-open { overflow: hidden; }
.wish-confirm-card { width: min(440px, 100%); border: 1px solid #3a3a3a; border-radius: 18px; background: radial-gradient(circle at 100% 0, #e5091420, transparent 38%), #171717; padding: 20px; color: #fff; box-shadow: 0 28px 80px #000c; }
.wish-confirm-eyebrow { color: #ff5058; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.wish-confirm-card h3 { margin: 8px 0 6px; font-size: 22px; }
.wish-confirm-card > p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.wish-confirm-summary { display: grid; gap: 8px; margin: 16px 0; }
.wish-confirm-summary > div { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 12px; border: 1px solid #303030; border-radius: 10px; background: #101010; padding: 9px 10px; }
.wish-confirm-summary dt { color: #8d8d8d; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.wish-confirm-summary dd { margin: 0; color: #f3f3f3; font-size: 12px; font-weight: 600; text-align: right; overflow-wrap: anywhere; }
.wish-confirm-summary .wish-confirm-message { grid-template-columns: 1fr; }
.wish-confirm-summary .wish-confirm-message dd { max-height: 90px; overflow-y: auto; text-align: left; font-weight: 400; line-height: 1.55; }
.wish-confirm-actions { display: grid; grid-template-columns: 1fr 1.35fr; gap: 9px; }
.wish-confirm-actions button { min-height: 44px; border: 0; border-radius: 10px; padding: 10px 12px; color: #fff; font-size: 12px; font-weight: 800; cursor: pointer; }
.wish-confirm-cancel { background: #303030; }
.wish-confirm-submit { background: linear-gradient(135deg, #e50914, #ff3741); }
.wish-confirm-submit.is-delete { background: linear-gradient(135deg, #dc2626, #991b1b); }
.wish-confirm-error { margin: 0 0 12px; border-radius: 9px; background: #e5091420; padding: 9px 11px; color: #ff767d; font-size: 11px; }
.wish-confirm-error[hidden] { display: none; }
.btn-submit { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 9px; }
.submit-spinner { display: none; width: 16px; height: 16px; border: 2px solid #ffffff59; border-top-color: #fff; border-radius: 50%; animation: wish-submit-spin .7s linear infinite; }
.btn-submit.is-loading .submit-spinner { display: block; }
.btn-submit:disabled { cursor: wait; opacity: .78; }
@keyframes wish-submit-spin { to { transform: rotate(360deg); } }
.cast-instagram { display: flex; width: fit-content; align-items: center; gap: 6px; margin-top: 12px; border: 1px solid #454545; border-radius: 999px; background: #101010; padding: 7px 12px; color: #f4f4f4; font-size: 12px; font-weight: 700; text-decoration: none; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.cast-instagram:hover, .cast-instagram:focus-visible { border-color: #e50914; background: #2a1012; color: #fff; transform: translateY(-1px); }
.cast-instagram.bride { border-color: #e509146b; }
.cast-instagram-icon { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; }
.cast-instagram-icon__dot { fill: currentColor; stroke: none; }
.horizontal-rail { overscroll-behavior-inline: contain; scrollbar-color: #e50914 #242424; scrollbar-width: thin; }
.horizontal-rail::-webkit-scrollbar { height: 6px; }
.horizontal-rail::-webkit-scrollbar-track { border-radius: 999px; background: #242424; }
.horizontal-rail::-webkit-scrollbar-thumb { border-radius: 999px; background: #e50914; }
.horizontal-rail:focus-visible { border-radius: 10px; outline: 2px solid #ed1c24; outline-offset: 5px; }
.gallery-grid { overflow-y: hidden !important; }
.horizontal-rail-shell { position: relative; }
.horizontal-rail-button { position: absolute; z-index: 8; top: 50%; display: grid; width: 44px; height: 58px; place-items: center; border: 1px solid #ffffff45; border-radius: 10px; background: #080808d9; padding: 0 0 5px; color: #fff; cursor: pointer; font-family: Arial, sans-serif; font-size: 42px; line-height: 1; box-shadow: 0 8px 26px #000b; transform: translateY(-50%); transition: border-color .2s ease, background .2s ease, opacity .2s ease, transform .2s ease; }
.horizontal-rail-button:hover { border-color: #e50914; background: #e50914eb; transform: translateY(-50%) scale(1.05); }
.horizontal-rail-button:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.horizontal-rail-button[hidden] { display: none; }
.horizontal-rail-button--previous { left: 6px; }
.horizontal-rail-button--next { right: 6px; }
.horizontal-rail-hint { display: flex; align-items: center; justify-content: flex-end; gap: 7px; margin: -5px 2px 12px; color: #a5a5a5; font-size: 10px; font-weight: 700; letter-spacing: .04em; line-height: 1.3; }
.horizontal-rail-hint span { color: #e50914; font-size: 13px; line-height: 1; }
.gallery-grid .gallery-ranked { position: relative; display: flex; align-items: stretch; overflow: visible; border: 0 !important; border-radius: 0; background: transparent; box-shadow: none; padding-left: clamp(24px, 7vw, 38px); }
.gallery-rank { position: absolute; z-index: 0; bottom: 2px; left: 0; color: #080808; font-family: 'Barlow Condensed', sans-serif; font-size: clamp(92px, 28vw, 150px); font-weight: 700; line-height: .72; letter-spacing: -.08em; -webkit-text-stroke: 3px #e50914; text-shadow: 0 0 18px #e5091438; }
.gallery-poster { position: relative; z-index: 1; width: 100%; overflow: hidden; border: 0; border-radius: 14px; background: var(--card); box-shadow: 0 12px 28px #0007; }
.gallery-poster img { width: 100%; height: 100%; object-fit: cover; object-position: center bottom; transform: scale(1.16); transform-origin: center bottom; }
.gallery-grid .gallery-ranked:nth-child(3) .gallery-poster img { object-position: left bottom; transform-origin: left bottom; }
.gallery-grid .gallery-ranked:nth-child(5) .gallery-poster img { object-position: center top; transform: scale(1); transform-origin: center top; }
.gallery-poster .gallery-play { z-index: 2; }
.gallery-top-badge { position: absolute; z-index: 4; top: 0; left: 0; display: grid; width: 28px; min-height: 32px; align-content: center; justify-items: center; border-radius: 0 0 7px; background: linear-gradient(145deg, #ff202b, #c9000a); color: #fff; line-height: 1; pointer-events: none; box-shadow: 0 3px 8px #0008; }
.gallery-top-badge small { font-size: 5px; font-weight: 900; letter-spacing: .04em; }
.gallery-top-badge strong { margin-top: 1px; font-size: 13px; font-weight: 900; }
.gallery-new-label { position: absolute; z-index: 4; right: 10px; bottom: 0; left: 10px; overflow: hidden; border-radius: 6px 6px 0 0; background: #e50914; padding: 6px 8px; color: #fff; font-size: 9px; font-weight: 800; line-height: 1; text-align: center; text-overflow: ellipsis; white-space: nowrap; pointer-events: none; box-shadow: 0 -3px 12px #0007; }
.event-card { display: flex; flex-direction: column; }
.cast-name__nickname { display: block; }
.event-label { display: block; font-size: clamp(1.35rem, 5.4vw, 1.6rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.12; }
.event-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 14px; }
.event-map-link { align-items: center; gap: 7px; border: 0; background: var(--accent); color: #fff; cursor: pointer; font-family: inherit; text-decoration: none; }
.event-map-icon { width: 1.1em; height: 1.1em; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.event-address[data-copy-allowed] { -webkit-user-select: text !important; user-select: text !important; cursor: text; }
.event-calendar-link { align-items: center; border: 1px solid #454545; background: #282828 !important; color: #f4f4f4 !important; text-decoration: none; }
.event-calendar-link::before { margin-right: 7px; content: '+'; font-size: 1.15em; font-weight: 700; line-height: 1; }
.event-calendar-link:hover { border-color: #ed1c24; background: #333 !important; }
.gift-ticket { position: relative; overflow: hidden; border-radius: 14px; background: #f4f4f4; padding: 14px; color: #111; }
.gift-ticket-head, .gift-ticket-row, .gift-ticket-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.gift-ticket-head { border-bottom: 1px dashed #b5b5b5; padding-bottom: 10px; }
.gift-ticket-bank-code { margin-left: auto; }
.gift-ticket-body { display: grid; gap: 7px; border-bottom: 1px dashed #b5b5b5; padding: 10px 0; font-size: 12px; }
.gift-ticket-row span:first-child { color: #666; text-transform: uppercase; letter-spacing: .1em; }
.gift-ticket-foot { justify-content: flex-end; padding-top: 10px; }
.copy-bank { position: relative; z-index: 2; border: 0; border-radius: 6px; background: var(--accent); padding: 6px 12px; color: #fff; cursor: pointer; font-size: 12px; font-weight: 700; touch-action: manipulation; }
.address-card [data-copy-allowed] { -webkit-user-select: text !important; user-select: text !important; cursor: text; }
.address-card-actions { display: flex; justify-content: flex-end; margin-top: 12px; }
.netflix-topbar { position: fixed; z-index: 65; top: 0; left: var(--invitation-frame-left, calc(50% - min(430px, 50vw))); width: var(--invitation-frame-width, min(860px, 100vw)); color: #fff; opacity: 0; pointer-events: none; -webkit-backface-visibility: hidden; backface-visibility: hidden; transform: translate3d(0, calc(-100% - 12px), 0); transition: opacity .28s ease, transform .38s cubic-bezier(.22, 1, .36, 1); will-change: transform, opacity; }
.netflix-topbar.is-visible { opacity: 1; pointer-events: auto; transform: translate3d(0, 0, 0); }
.netflix-topbar__bar { position: relative; z-index: 3; display: flex; min-height: 64px; align-items: center; justify-content: space-between; border-bottom: 1px solid #ffffff17; background: linear-gradient(180deg, #111 0%, #090909 100%); padding: 9px clamp(18px, 4vw, 54px); box-shadow: 0 14px 38px #0007; isolation: isolate; }
.netflix-topbar__brand, .netflix-topbar__toggle { border: 0; color: #fff; cursor: pointer; font: inherit; }
.netflix-topbar__brand { display: grid; min-width: 170px; align-items: center; justify-items: start; background: transparent; padding: 5px 0; font-family: 'Barlow Condensed', sans-serif; font-size: 25px; font-weight: 700; letter-spacing: .025em; text-transform: uppercase; }
.netflix-topbar__brand-copy { display: inline-flex; grid-area: 1 / 1; align-items: center; gap: 7px; white-space: nowrap; }
.netflix-topbar__brand b { color: #e50914; font-size: 1.12em; }
.netflix-topbar__brand-countdown { gap: 6px; }
.netflix-topbar__brand-countdown.has-secondary { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; }
.netflix-topbar__countdown-main { display: inline-flex; align-items: center; gap: 6px; }
.netflix-topbar__brand-countdown.has-secondary .netflix-topbar__countdown-main { font-size: .72em; line-height: 1; }
.netflix-topbar__brand-countdown small { color: #aaa; font-family: Inter, sans-serif; font-size: 8px; font-weight: 700; letter-spacing: .04em; line-height: 1.2; text-transform: none; }
.netflix-topbar__brand-countdown small b { min-width: 0; font-size: inherit; }
.netflix-topbar__brand-countdown b { min-width: 1.1em; font-variant-numeric: tabular-nums; text-align: right; }
.topbar-brand-swap-enter-active, .topbar-brand-swap-leave-active { transition: opacity .28s ease, transform .28s ease; }
.topbar-brand-swap-enter-from { opacity: 0; transform: translateY(7px); }
.topbar-brand-swap-leave-to { opacity: 0; transform: translateY(-7px); }
.netflix-topbar__toggle { display: inline-flex; min-width: 104px; align-items: center; justify-content: center; gap: 12px; border: 1px solid #414141; border-radius: 999px; background: #1b1b1b; padding: 9px 14px 9px 17px; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.netflix-topbar__toggle:hover, .netflix-topbar.is-open .netflix-topbar__toggle { border-color: #e50914; background: #2a1113; }
.netflix-topbar__toggle:active { transform: scale(.96); }
.netflix-topbar__hamburger { display: grid; width: 18px; gap: 4px; }
.netflix-topbar__hamburger b { display: block; width: 100%; height: 2px; border-radius: 999px; background: currentColor; transition: transform .25s ease, opacity .2s ease; }
.netflix-topbar.is-open .netflix-topbar__hamburger b:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.netflix-topbar.is-open .netflix-topbar__hamburger b:nth-child(2) { opacity: 0; }
.netflix-topbar.is-open .netflix-topbar__hamburger b:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.netflix-topbar__progress { position: absolute; z-index: 4; right: 0; bottom: -3px; left: 0; height: 3px; overflow: hidden; border-top: 1px solid #ffffff12; background: #1d1d1d; pointer-events: none; box-shadow: 0 1px 0 #000b; }
.netflix-topbar__progress i { display: block; width: 0; height: 100%; border-radius: 0 999px 999px 0; background: linear-gradient(90deg, #b20710, #e50914, #ff3b45); box-shadow: 0 0 12px #e50914a6; transition: width .12s linear; }
.netflix-navigation__backdrop { position: fixed; z-index: 63; inset: 64px 0 0; border: 0; background: #0009; opacity: 0; pointer-events: none; transition: opacity .28s ease; }
.netflix-navigation__backdrop.is-open { opacity: 1; pointer-events: auto; }
.netflix-navigation { position: fixed; z-index: 64; top: 64px; left: var(--invitation-frame-left, calc(50% - min(430px, 50vw))); width: var(--invitation-frame-width, min(860px, 100vw)); overflow: hidden; border-bottom: 1px solid #3b1719; background: radial-gradient(circle at 85% 0, #e5091424, transparent 34%), #101010fa; padding: 0 clamp(18px, 4vw, 54px); box-shadow: 0 24px 50px #000b; opacity: 0; pointer-events: none; transform: translateY(-16px); transition: opacity .25s ease, transform .35s cubic-bezier(.22, 1, .36, 1); }
.netflix-navigation.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); }
.netflix-navigation__head { display: none; }
.netflix-navigation ol { display: grid; max-width: 1440px; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0 auto; padding: 17px 0 20px; list-style: none; }
.netflix-navigation li button { display: flex; width: 100%; min-width: 0; align-items: center; gap: 9px; border: 1px solid transparent; border-radius: 10px; background: #ffffff05; padding: 11px 10px; color: #f1f1f1; cursor: pointer; font: inherit; text-align: left; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.netflix-navigation li button:hover { border-color: #e509146e; background: #e5091417; transform: translateY(-2px); }
.netflix-navigation li span { flex: none; color: #ff4b54; font-size: 11px; font-weight: 800; letter-spacing: .08em; }
.netflix-navigation li strong { overflow: hidden; font-size: 16px; font-weight: 700; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.gallery-grid figure { cursor: zoom-in; }
.gallery-grid.is-lightbox-disabled figure { cursor: default; }
.story-row { position: relative; display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid #343434; border-radius: 18px; background: radial-gradient(circle at 100% 0, #e5091426, transparent 38%), linear-gradient(145deg, #1c1c1c, #0f0f0f); padding: 18px; cursor: default; box-shadow: inset 0 1px #ffffff0a, 0 18px 42px #0005; }
.story-row::before { position: absolute; top: 0; right: 18px; left: 18px; height: 3px; border-radius: 0 0 999px 999px; background: linear-gradient(90deg, transparent, #e50914 20%, #ff5058 50%, #e50914 80%, transparent); content: ''; box-shadow: 0 0 18px #e5091480; }
.story-row::after { position: absolute; top: -44px; right: -34px; width: 112px; height: 112px; border: 1px solid #ffffff0a; border-radius: 50%; content: ''; box-shadow: 0 0 0 15px #ffffff05, 0 0 0 30px #e5091405; pointer-events: none; }
.story-card-head { position: relative; z-index: 1; display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.story-episode { margin-top: 4px; color: #858585; font-size: 8px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.story-num { color: transparent; font-family: 'Barlow Condensed', sans-serif; font-size: clamp(38px, 4vw, 50px); font-weight: 700; letter-spacing: -.05em; line-height: .78; -webkit-text-stroke: 1.25px #ff303a; text-shadow: 0 0 18px #e5091445; }
.story-card-body { position: relative; z-index: 1; display: flex; flex: 1; flex-direction: column; margin-top: 14px; }
.story-kicker { align-self: flex-start; border: 1px solid #e5091461; border-radius: 999px; background: #e5091414; padding: 5px 9px; color: #ff5159; font-size: 9px; font-weight: 800; letter-spacing: .12em; line-height: 1; text-transform: uppercase; }
.story-list h3 { margin: 14px 0 0; color: #fff; font-size: 1.2rem; font-weight: 800; line-height: 1.15; }
.story-list p { margin: 12px 0 0; color: #bdbdbd; line-height: 1.7; }
.story-card-foot { position: relative; z-index: 1; display: grid; grid-template-columns: 7px minmax(0, 1fr) auto; align-items: center; gap: 8px; margin-top: 22px; }
.story-card-foot > span { width: 7px; height: 7px; border-radius: 50%; background: #e50914; box-shadow: 0 0 12px #e50914; }
.story-card-foot > i { display: block; height: 1px; background: linear-gradient(90deg, #e50914, #3b3b3b 62%, transparent); }
.story-card-foot > small { color: #737373; font-size: 8px; font-style: normal; font-weight: 800; letter-spacing: .12em; }
.netflix-lightbox { position: fixed; z-index: 100; inset: 0; display: none; align-items: center; justify-content: center; padding: 24px; background: #000e; }
.netflix-lightbox.open { display: flex; }
.netflix-lightbox img { max-width: min(960px, 95vw); max-height: 88vh; border-radius: 10px; }
.netflix-lightbox button { position: absolute; z-index: 2; top: max(16px, env(safe-area-inset-top)); right: max(16px, env(safe-area-inset-right)); display: grid; width: 48px; height: 48px; padding: 0 0 4px; place-items: center; border: 2px solid #fff; border-radius: 50%; background: linear-gradient(145deg, #ff2631, #c9000a); color: #fff; cursor: pointer; font-size: 36px; font-weight: 400; line-height: 1; box-shadow: 0 8px 26px #000c, 0 0 0 4px #e5091445; text-shadow: 0 1px 2px #0008; transition: transform .18s ease, background .18s ease, box-shadow .18s ease; touch-action: manipulation; }
.netflix-lightbox button:hover { background: #ff1722; transform: scale(1.07); }
.netflix-lightbox button:focus-visible { outline: 3px solid #fff; outline-offset: 4px; box-shadow: 0 8px 26px #000c, 0 0 0 7px #e5091466; }
.netflix-lightbox button:active { transform: scale(.95); }
.preview-note { color: var(--muted); font-size: 12px; line-height: 1.5; }
.guest-field-note { margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.required-note { margin-left: 5px; color: var(--accent); font-size: .78em; font-weight: 700; }
.optional-note { margin-left: 5px; color: var(--muted); font-size: .78em; font-weight: 500; }
.guest-name-field .input:disabled { border-color: #353535; background: #242424; color: #c8c8c8; cursor: not-allowed; opacity: 1; }
.guest-total-stepper { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto 44px; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: #101010; }
.guest-total-field[hidden], [data-confirm-total-row][hidden] { display: none; }
.guest-total-stepper .input { min-width: 0; border: 0; border-radius: 0; text-align: center; font-variant-numeric: tabular-nums; }
.guest-total-unit { display: inline-flex; align-items: center; padding: 0 12px; border-left: 1px solid var(--line); color: var(--muted); font-size: 13px; }
.guest-total-button { display: grid; width: 44px; min-height: 46px; place-items: center; border: 0; background: #242424; color: #fff; font-size: 22px; font-weight: 700; cursor: pointer; transition: background .2s ease, color .2s ease; }
.guest-total-button:first-child { border-right: 1px solid var(--line); }
.guest-total-button:last-child { border-left: 1px solid var(--line); }
.guest-total-button:hover { background: var(--accent); }
.guest-total-button:focus-visible { position: relative; z-index: 1; outline: 2px solid var(--accent); outline-offset: -2px; }
.gift-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 5px; border: 1px solid var(--line); border-radius: 14px; background: #101010; }
.gift-tabs .gift-toggle { border-color: transparent; background: transparent; color: var(--muted); }
.gift-tabs .gift-toggle.active { border-color: #ed1c24; background: linear-gradient(135deg, #e50914, #b20710); color: #fff; box-shadow: 0 8px 24px #e509142e; }
.gift-tab-panel { margin-top: 4px; animation: gift-panel-in .25s ease both; }
.gift-confirmation-prompt { margin-top: 12px; border: 1px solid #3a3a3a; border-radius: 14px; background: radial-gradient(circle at 100% 0, #e509141f, transparent 42%), #101010; padding: clamp(16px, 3vw, 22px); text-align: center; }
.gift-confirmation-prompt p { max-width: 700px; margin: 0 auto; color: #aaa; font-size: 11px; line-height: 1.65; }
.gift-confirmation-prompt button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 8px; margin-top: 13px; border: 1px solid #ed1c24; border-radius: 11px; background: linear-gradient(135deg, #f2111c, #b80710); padding: 10px 20px; color: #fff; cursor: pointer; font: inherit; font-size: 12px; font-weight: 800; box-shadow: 0 10px 26px #e509142b; }
.gift-confirmation-prompt button:hover, .gift-confirmation-prompt button:focus-visible { filter: brightness(1.12); outline: none; }
.gift-confirmation-prompt button svg { width: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.2; }
.transfer-confirmation-form { overflow: hidden; border: 1px solid #343434; border-radius: 18px; background: radial-gradient(circle at 100% 0, #e5091426, transparent 32%), #111; padding: clamp(18px, 3vw, 26px); box-shadow: 0 18px 50px #0007; }
.transfer-confirmation-head { display: flex; align-items: flex-start; gap: 14px; padding-bottom: 18px; border-bottom: 1px solid #ffffff14; }
.transfer-confirmation-icon { display: grid; width: 48px; height: 48px; flex: none; place-items: center; border-radius: 14px; background: linear-gradient(145deg, #f01621, #a8070f); box-shadow: 0 10px 24px #e5091438; }
.transfer-confirmation-icon svg { width: 25px; fill: none; stroke: #fff; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.transfer-confirmation-head > div > span { color: #ff646b; font-size: 8px; font-weight: 800; letter-spacing: .16em; }
.transfer-confirmation-head h3 { margin: 3px 0 5px; font-size: 20px; line-height: 1.15; }
.transfer-confirmation-head p { margin: 0; color: #999; font-size: 11px; line-height: 1.55; }
.transfer-confirmation-guidance { margin: 16px 0 0; border-left: 3px solid #e50914; border-radius: 0 9px 9px 0; background: #e5091412; padding: 11px 13px; color: #aaa; font-size: 11px; line-height: 1.65; }
.transfer-confirmation-state { display: flex; flex-direction: column; gap: 3px; margin-top: 16px; border: 1px solid #886a23; border-radius: 11px; background: #b8860b16; padding: 11px 13px; color: #dcc98e; font-size: 11px; line-height: 1.45; }
.transfer-confirmation-state.processed { border-color: #267447; background: #1c7b4618; color: #9fdbb9; }
.transfer-confirmation-state strong { color: #fff; font-size: 12px; }
.transfer-confirmation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; margin-top: 19px; }
.transfer-field { display: flex; min-width: 0; flex-direction: column; gap: 7px; }
.transfer-field > span, .transfer-upload-label { color: #e9e9e9; font-size: 11px; font-weight: 800; }
.transfer-field b, .transfer-upload-label b { color: #ff4c54; }
.transfer-field em { color: #777; font-size: 9px; font-style: normal; font-weight: 600; }
.transfer-field input, .transfer-field select { width: 100%; min-height: 46px; border: 1px solid #3d3d3d; border-radius: 11px; outline: none; background: #090909; padding: 10px 12px; color: #fff; font: inherit; font-size: 12px; transition: border-color .2s ease, box-shadow .2s ease; }
.transfer-field input:focus, .transfer-field select:focus { border-color: #e50914; box-shadow: 0 0 0 3px #e5091420; }
.transfer-field input[readonly] { color: #bdbdbd; cursor: default; }
.transfer-field small { margin-top: -2px; color: #777; font-size: 9px; }
.transfer-money-input { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; border: 1px solid #3d3d3d; border-radius: 11px; background: #090909; transition: border-color .2s ease, box-shadow .2s ease; }
.transfer-money-input:focus-within { border-color: #e50914; box-shadow: 0 0 0 3px #e5091420; }
.transfer-money-input strong { padding-left: 12px; color: #ff5d64; font-size: 12px; }
.transfer-money-input input { border: 0; box-shadow: none !important; }
.transfer-upload-field { margin-top: 17px; }
.transfer-upload-label { display: block; margin-bottom: 8px; }
.transfer-dropzone { position: relative; display: flex; min-height: 150px; flex-direction: column; align-items: center; justify-content: center; border: 1.5px dashed #595959; border-radius: 14px; background: linear-gradient(145deg, #171717, #0c0c0c); padding: 22px; cursor: pointer; text-align: center; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.transfer-dropzone:hover, .transfer-dropzone.is-dragging { border-color: #e50914; background: #1d0d0f; transform: translateY(-1px); }
.transfer-dropzone input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.transfer-dropzone-icon { display: grid; width: 42px; height: 42px; margin-bottom: 10px; place-items: center; border-radius: 12px; background: #e509141f; color: #ff5961; }
.transfer-dropzone-icon svg { width: 23px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.9; }
.transfer-dropzone strong { font-size: 12px; }
.transfer-dropzone small { margin-top: 5px; color: #777; font-size: 9px; }
.transfer-file-preview { display: grid; grid-template-columns: 76px minmax(0, 1fr); align-items: center; gap: 13px; margin-top: 10px; border: 1px solid #353535; border-radius: 13px; background: #0b0b0b; padding: 10px; }
.transfer-file-preview img { width: 76px; height: 66px; border-radius: 9px; object-fit: cover; }
.transfer-file-preview > div { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: 4px; }
.transfer-file-preview strong { overflow: hidden; max-width: 100%; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.transfer-file-preview span { color: #888; font-size: 9px; }
.transfer-file-preview button { border: 0; background: transparent; padding: 2px 0; color: #ff5961; cursor: pointer; font: inherit; font-size: 9px; font-weight: 800; }
.transfer-upload-progress { margin-top: 15px; }
.transfer-upload-progress > div { display: flex; justify-content: space-between; margin-bottom: 7px; color: #aaa; font-size: 10px; }
.transfer-upload-progress strong { color: #fff; }
.transfer-upload-progress progress { display: block; width: 100%; height: 8px; overflow: hidden; border: 0; border-radius: 999px; background: #292929; }
.transfer-upload-progress progress::-webkit-progress-bar { background: #292929; }
.transfer-upload-progress progress::-webkit-progress-value { border-radius: 999px; background: linear-gradient(90deg, #e50914, #ff515a); }
.transfer-upload-progress progress::-moz-progress-bar { border-radius: 999px; background: linear-gradient(90deg, #e50914, #ff515a); }
.transfer-submit { display: inline-flex; width: 100%; min-height: 50px; align-items: center; justify-content: center; gap: 9px; margin-top: 17px; border: 0; border-radius: 12px; background: linear-gradient(135deg, #f2111c, #b80710); color: #fff; cursor: pointer; font: inherit; font-size: 12px; font-weight: 800; box-shadow: 0 12px 28px #e509142b; }
.transfer-submit:disabled { cursor: not-allowed; filter: grayscale(.55); opacity: .58; }
.transfer-submit svg { width: 19px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.2; }
.transfer-submit-spinner { display: none; width: 17px; height: 17px; border: 2px solid #ffffff55; border-top-color: #fff; border-radius: 50%; animation: transfer-spin .7s linear infinite; }
.transfer-submit.is-loading svg { display: none; }
.transfer-submit.is-loading .transfer-submit-spinner { display: block; }
@keyframes transfer-spin { to { transform: rotate(360deg); } }
.empty-wishes { position: relative; display: flex; min-height: 230px; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; border: 1px solid #343434 !important; border-radius: 18px !important; background: radial-gradient(circle at 50% 0%, #e5091424, transparent 48%), linear-gradient(145deg, #1b1b1b, #111) !important; padding: 32px !important; text-align: center; }
.empty-wishes::after { position: absolute; right: -34px; bottom: -58px; color: #ffffff08; content: '“'; font-family: Georgia, serif; font-size: 190px; line-height: 1; }
.empty-wishes__icon { display: grid; width: 58px; height: 58px; place-items: center; border: 1px solid #ed1c245c; border-radius: 50%; background: #e5091417; color: #ff3540; font-family: Georgia, serif; font-size: 42px; line-height: 1; }
.empty-wishes h3 { margin-top: 17px; color: var(--ink); font-size: 1.1rem; font-weight: 700; }
.empty-wishes p { max-width: 360px; margin-top: 8px; color: var(--muted); font-size: .82rem; line-height: 1.65; }
.wish-edited-flag, .wish-deleted-flag { display: block; margin-top: 4px; color: #aaa; font-size: 10px; font-style: italic; font-weight: 500; }
.wish-deleted-flag { color: #ff676f; }
.comment-card.is-deleted { border-style: dashed !important; opacity: .78; }
.comment-card.is-deleted .comment-copy { color: #888; font-style: italic; }
.wish-owner-actions { display: flex; gap: 7px; margin-top: 11px; }
.wish-owner-actions[hidden] { display: none; }
.wish-owner-actions button { display: inline-flex; min-height: 32px; align-items: center; gap: 6px; border: 1px solid #4b4b4b; border-radius: 8px; background: #242424; padding: 6px 11px; color: #ddd; cursor: pointer; font: inherit; font-size: 10px; font-weight: 800; }
.wish-owner-actions button:hover, .wish-owner-actions button:focus-visible { border-color: #e50914; outline: none; }
.wish-owner-actions [data-wish-delete] { color: #ff6971; }
.wish-owner-actions svg { width: 14px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.wish-edit-modal { position: fixed; z-index: 147; top: 0; bottom: 0; left: var(--invitation-frame-left, calc(50% - min(430px, 50vw))); display: block; width: var(--invitation-frame-width, min(860px, 100vw)); overflow: hidden; background: #080808; color: #fff; opacity: 0; visibility: hidden; pointer-events: none; transform: translateX(105%); transition: opacity .2s ease, transform .42s cubic-bezier(.22, 1, .36, 1), visibility 0s linear .42s; }
.wish-edit-modal.open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(0); transition-delay: 0s; }
body.wish-edit-open { overflow: hidden; }
.wish-edit-modal__panel { display: grid; width: 100%; height: 100vh; height: 100dvh; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; background: radial-gradient(circle at 90% 0, #e5091428, transparent 32%), #0b0b0b; }
.wish-edit-modal__header { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid #303030; background: #111; padding: max(16px, env(safe-area-inset-top)) clamp(18px, 4vw, 42px) 16px; box-shadow: 0 12px 28px #0008; }
.wish-edit-modal__header > div > span { color: #ff5058; font-size: 9px; font-weight: 800; letter-spacing: .16em; }
.wish-edit-modal__header h2 { margin: 4px 0 0; font-family: 'Barlow Condensed', sans-serif; font-size: clamp(25px, 4vw, 34px); line-height: 1; text-transform: uppercase; }
.wish-edit-modal__close { display: inline-flex; min-height: 42px; align-items: center; gap: 8px; border: 1px solid #5a5a5a; border-radius: 999px; background: #242424; padding: 7px 14px 7px 11px; color: #fff; cursor: pointer; font: inherit; }
.wish-edit-modal__close span { font-size: 26px; line-height: .75; }.wish-edit-modal__close strong { font-size: 10px; }
.wish-edit-modal__body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: clamp(24px, 4vw, 38px) clamp(18px, 5vw, 48px) max(28px, env(safe-area-inset-bottom)); }
.wish-edit-form { display: grid; max-width: 680px; gap: 20px; margin: 0 auto; border: 1px solid #333; border-radius: 18px; background: #181818; padding: clamp(20px, 4vw, 34px); box-shadow: 0 24px 60px #0009; }
.wish-edit-form > div > label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 800; }
.wish-edit-form textarea { min-height: 150px; resize: vertical; }
.wish-edit-attendance { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.wish-edit-form__status { margin: 0; border-radius: 9px; background: #e5091420; padding: 10px 12px; color: #ff767d; font-size: 12px; }
.wish-edit-form__status[hidden] { display: none; }
.wish-edit-form__actions { display: flex; justify-content: flex-end; gap: 9px; border-top: 1px solid #333; padding-top: 18px; }
.wish-edit-form__actions button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 8px; border: 1px solid #4a4a4a; border-radius: 10px; background: #292929; padding: 10px 16px; color: #fff; cursor: pointer; font: inherit; font-size: 12px; font-weight: 800; }
.wish-edit-form__actions button[type='submit'] { border-color: #e50914; background: linear-gradient(135deg, #f2111c, #c80711); }
.wish-edit-form__actions svg { width: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.guestbook-compact-actions { display: none; }
.all-wishes-modal { position: fixed; z-index: 145; inset: 0; display: none; align-items: center; justify-content: center; background: #000d; padding: 24px; backdrop-filter: blur(10px); }
.all-wishes-modal.open { display: flex; }
body.all-wishes-open { overflow: hidden; }
.all-wishes-modal__panel { display: grid; width: min(720px, 100%); max-height: min(820px, calc(100dvh - 48px)); grid-template-rows: auto auto auto minmax(0, 1fr) auto; overflow: hidden; border: 1px solid #3b3b3b; border-radius: 22px; background: radial-gradient(circle at 100% 0, #e509142a, transparent 34%), #111; color: #fff; box-shadow: 0 32px 90px #000e; }
.all-wishes-modal__header { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid #303030; padding: 22px 24px 18px; }
.all-wishes-modal__header-actions { display: flex; flex: none; align-items: center; gap: 10px; }
.all-wishes-modal__eyebrow { color: #ff5058; font-size: 9px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.all-wishes-modal__header h2 { margin: 4px 0 0; font-size: 26px; line-height: 1.05; }
.all-wishes-modal__count { flex: none; border-radius: 999px; background: #e5091422; padding: 8px 12px; color: #ff6169; font-size: 11px; font-weight: 700; }
.all-wishes-modal__close { display: inline-flex; min-height: 38px; flex: none; align-items: center; justify-content: center; gap: 8px; border: 1px solid #5a5a5a; border-radius: 999px; background: #242424; padding: 6px 13px 6px 10px; color: #fff; cursor: pointer; font: inherit; line-height: 1; box-shadow: 0 7px 18px #0008; }
.all-wishes-modal__close > span { font-size: 25px; line-height: .8; }
.all-wishes-modal__close > strong { font-size: 10px; font-weight: 800; letter-spacing: .04em; white-space: nowrap; }
.all-wishes-modal__close:hover, .all-wishes-modal__close:focus-visible { border-color: #e50914; background: #e50914; outline: none; }
.all-wishes-modal__search { display: flex; align-items: center; gap: 10px; margin: 16px 18px 8px; border: 1px solid #3a3a3a; border-radius: 12px; background: #0b0b0b; padding: 0 13px; }
.all-wishes-modal__search:focus-within { border-color: #e50914; box-shadow: 0 0 0 3px #e5091420; }
.all-wishes-modal__search svg { width: 19px; fill: none; stroke: #999; stroke-linecap: round; stroke-width: 2; }
.all-wishes-modal__search input { width: 100%; min-height: 48px; border: 0; outline: 0; background: transparent; color: #fff; font: inherit; font-size: 14px; }
.all-wishes-modal__status { padding: 24px; color: #aaa; font-size: 13px; text-align: center; }
.all-wishes-modal__list { min-height: 0; overflow-x: hidden; overflow-y: auto; margin: 0; list-style: none; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.all-wishes-modal__footer { border-top: 1px solid #303030; background: #111; padding: 14px 18px max(14px, env(safe-area-inset-bottom)); }
.all-wishes-modal__footer button, .guestbook-open-wishes { width: 100%; min-height: 48px; border: 1px solid #e50914; border-radius: 12px; background: linear-gradient(135deg, #f2111c, #c80711); color: #fff; cursor: pointer; font: inherit; font-size: 13px; font-weight: 800; }
.location-detail-modal { position: fixed; z-index: 146; top: 0; bottom: 0; left: var(--invitation-frame-left, calc(50% - min(430px, 50vw))); display: block; width: var(--invitation-frame-width, min(860px, 100vw)); overflow: hidden; background: #080808; color: #fff; box-shadow: 0 0 0 1px #202020, 0 0 80px #000; opacity: 0; visibility: hidden; pointer-events: none; transform: translateX(105%); transition: opacity .2s ease, transform .42s cubic-bezier(.22, 1, .36, 1), visibility 0s linear .42s; }
.location-detail-modal.open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(0); transition-delay: 0s; }
body.location-detail-open { overflow: hidden; }
.location-detail-modal__panel { display: grid; width: 100%; height: 100vh; height: 100dvh; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; background: radial-gradient(circle at 90% 0, #e5091428, transparent 32%), #0b0b0b; }
.location-detail-modal__header { position: relative; z-index: 2; display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid #303030; background: #111; padding: max(16px, env(safe-area-inset-top)) clamp(18px, 4vw, 42px) 16px; box-shadow: 0 12px 28px #0008; }
.location-detail-modal__header > div > span { color: #ff5058; font-size: 9px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.location-detail-modal__header h2 { margin: 4px 0 0; font-family: 'Barlow Condensed', sans-serif; font-size: clamp(25px, 4vw, 34px); line-height: 1; text-transform: uppercase; }
.location-detail-modal__close { display: inline-flex; min-height: 42px; flex: none; align-items: center; justify-content: center; gap: 8px; border: 1px solid #5a5a5a; border-radius: 999px; background: #242424; padding: 7px 14px 7px 11px; color: #fff; cursor: pointer; font: inherit; }
.location-detail-modal__close:hover, .location-detail-modal__close:focus-visible { border-color: #e50914; background: #e50914; outline: none; }
.location-detail-modal__close span { font-size: 26px; line-height: .75; }
.location-detail-modal__close strong { font-size: 10px; font-weight: 800; }
.location-detail-modal__body { min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.location-detail[hidden] { display: none; }
.location-detail { display: flex; width: 100%; flex-direction: column; margin: 0 auto; padding: clamp(24px, 4vw, 38px) clamp(16px, 4vw, 32px); }
.location-detail__map { overflow: hidden; margin: 0; border: 1px solid #343434; border-radius: 18px; background: #050505; box-shadow: 0 22px 56px #000a; }
.location-detail__map > img { display: block; width: 100%; height: auto; max-height: none; }
.location-detail__placeholder { display: flex; min-height: 280px; flex-direction: column; align-items: center; justify-content: center; padding: 36px 20px; color: #aaa; text-align: center; }
.location-detail__placeholder svg { width: 76px; fill: none; stroke: #e50914; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.location-detail__placeholder strong { margin-top: 18px; color: #fff; font-size: 17px; }
.location-detail__placeholder span { margin-top: 7px; font-size: 12px; }
.location-detail__content { order: -1; padding: 0 2px clamp(22px, 4vw, 34px); }
.location-detail__content address { margin: 0; color: #c4c4c4; font-size: clamp(13px, 2vw, 16px); font-style: normal; line-height: 1.7; }
.location-detail__copy-address { display: inline-flex; min-height: 34px; align-items: center; gap: 7px; margin-top: 9px; border: 1px solid #494949; border-radius: 9px; background: #202020; padding: 7px 10px; color: #e8e8e8; cursor: pointer; font: inherit; font-size: 10px; font-weight: 800; }
.location-detail__copy-address:hover, .location-detail__copy-address:focus-visible { border-color: #e50914; background: #2a1012; outline: none; }
.location-detail__copy-address svg { width: 15px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.location-detail__note { display: flex; align-items: flex-start; gap: 10px; margin: 18px 0 0; border-left: 3px solid #e50914; border-radius: 0 10px 10px 0; background: #e5091415; padding: 12px 14px; color: #d5d5d5; font-size: 12px; line-height: 1.6; }
.location-detail__note svg { width: 18px; min-width: 18px; margin-top: 1px; fill: none; stroke: #ff4d55; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.location-detail__actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 22px; }
.location-detail__actions a { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 9px; border-radius: 12px; padding: 12px 18px; color: #fff; font-size: 13px; font-weight: 800; text-decoration: none; }
.location-detail__actions a:hover { filter: brightness(1.12); }
.location-detail__actions svg { width: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.location-detail__maps-button { background: linear-gradient(135deg, #f2111c, #c80711); }
.location-detail__copy-maps { display: inline-flex; width: 100%; min-height: 34px; grid-column: 1 / -1; align-items: center; justify-content: center; gap: 7px; border: 1px solid #494949; border-radius: 9px; background: #202020; padding: 7px 10px; color: #e8e8e8; cursor: pointer; font: inherit; font-size: 10px; font-weight: 800; }
.location-detail__copy-maps:hover, .location-detail__copy-maps:focus-visible { border-color: #e50914; background: #2a1012; outline: none; }
.location-detail__copy-maps svg { width: 15px; }
.location-detail__download-button { border: 1px solid #505050; background: #292929; }
.guestbook-open-wishes strong { display: inline-grid; min-width: 24px; height: 24px; margin-left: 7px; place-items: center; border-radius: 999px; background: #0005; font-size: 11px; }
@keyframes gift-panel-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
.backsound-player { position: fixed; z-index: 60; bottom: max(14px, env(safe-area-inset-bottom)); left: 50%; display: grid; width: min(460px, calc(100vw - 32px)); grid-template-columns: 46px minmax(0, 1fr) 38px; align-items: center; gap: 11px; border: 1px solid #3a3a3a; border-radius: 16px; background: #151515ed; padding: 10px; color: #fff; box-shadow: 0 16px 50px #000b; backdrop-filter: blur(14px); transform: translateX(-50%); }
.backsound-player__toggle { display: grid; width: 46px; height: 46px; place-items: center; border: 0; border-radius: 50%; background: linear-gradient(145deg, #ed1c24, #ad0710); color: #fff; cursor: pointer; box-shadow: 0 7px 20px #e509143d; font-size: 1rem; }
.backsound-player__toggle span { transform: translateX(1px); }
.backsound-player:not(.paused) .backsound-player__toggle span { transform: none; }
.backsound-player__body { min-width: 0; }
.backsound-player__meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.backsound-player__meta > div { display: flex; min-width: 0; flex-direction: column; }
.backsound-player__eyebrow { overflow: hidden; min-width: 0; color: #ff5a62; font-size: 8px; font-weight: 700; letter-spacing: .13em; line-height: 1.2; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.backsound-player__meta strong { overflow: hidden; margin-top: 2px; font-size: 13px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.backsound-player__time { flex: none; color: #aaa; font-size: 9px; font-variant-numeric: tabular-nums; }
.backsound-player__progress { width: 100%; height: 3px; margin-top: 8px; accent-color: #ed1c24; cursor: pointer; }
.backsound-player__volume-button { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid #ffffff1f; border-radius: 11px; background: #ffffff0a; color: #e8e8e8; cursor: pointer; transition: border-color .2s ease, background .2s ease, color .2s ease, transform .2s ease; }
.backsound-player__volume-button:hover, .backsound-player__volume-button:focus-visible, .backsound-player.volume-open .backsound-player__volume-button { border-color: #e509147a; background: #e5091420; color: #fff; outline: none; transform: translateY(-1px); }
.backsound-player__volume-button.muted { color: #858585; }
.backsound-player__volume-button svg, .backsound-volume-panel__head button svg { width: 20px; fill: currentColor; }
.backsound-player__volume-button svg path:not(:first-child), .backsound-volume-panel__head button svg path:not(:first-child) { fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.7; }
.backsound-player__volume-button.muted .volume-wave { display: none; }
.backsound-volume-panel { position: absolute; right: 0; bottom: calc(100% + 12px); width: min(290px, calc(100vw - 32px)); overflow: hidden; border: 1px solid #ffffff25; border-radius: 18px; background: radial-gradient(circle at 90% 0, #e5091426, transparent 40%), #151515f5; padding: 16px; box-shadow: 0 22px 65px #000d, inset 0 1px #ffffff0d; backdrop-filter: blur(20px); animation: backsound-volume-panel-in .24s cubic-bezier(.2, .9, .3, 1.15); transform-origin: right bottom; }
.backsound-volume-panel::after { position: absolute; top: 0; right: 18px; width: 72px; height: 2px; border-radius: 0 0 999px 999px; background: linear-gradient(90deg, transparent, #e50914, transparent); content: ''; box-shadow: 0 0 14px #e50914; }
.backsound-volume-panel__head { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.backsound-volume-panel__head button { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid #e509144d; border-radius: 11px; background: #e5091419; color: #ff4b54; cursor: pointer; }
.backsound-volume-panel__head button:hover, .backsound-volume-panel__head button:focus-visible { border-color: #e50914; background: #e5091430; color: #fff; outline: none; }
.backsound-volume-panel__head > div { display: flex; min-width: 0; flex-direction: column; }
.backsound-volume-panel__head span { color: #fff; font-size: 12px; font-weight: 750; letter-spacing: .035em; }
.backsound-volume-panel__head small { overflow: hidden; margin-top: 2px; color: #888; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.backsound-volume-panel__head > strong { color: #ff5961; font-size: 13px; font-variant-numeric: tabular-nums; }
.backsound-volume-panel__slider { width: 100%; height: 5px; margin: 17px 0 0; appearance: none; border-radius: 999px; outline: none; background: linear-gradient(90deg, #e50914 var(--volume-progress), #3b3b3b var(--volume-progress)); cursor: pointer; }
.backsound-volume-panel__slider::-webkit-slider-thumb { width: 17px; height: 17px; appearance: none; border: 3px solid #fff; border-radius: 50%; background: #e50914; box-shadow: 0 0 0 4px #e509142b, 0 3px 10px #0008; }
.backsound-volume-panel__slider::-moz-range-thumb { width: 11px; height: 11px; border: 3px solid #fff; border-radius: 50%; background: #e50914; box-shadow: 0 0 0 4px #e509142b, 0 3px 10px #0008; }
.backsound-volume-panel__scale { display: flex; align-items: center; gap: 8px; margin-top: 9px; color: #777; font-size: 7px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
.backsound-volume-panel__scale i { height: 1px; flex: 1; background: linear-gradient(90deg, #ffffff0d, #ffffff28, #ffffff0d); }
@keyframes backsound-volume-panel-in { from { opacity: 0; transform: translateY(8px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
.netflix-thanks { padding: 16px; background: #000; }
.netflix-thanks__scene { position: relative; display: flex; min-height: 100svh; align-items: center; justify-content: center; overflow: hidden; border-radius: 16px; background: var(--thanks-background) center 80% / cover no-repeat; }
.netflix-thanks__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, #02090da8, #020406c4), linear-gradient(90deg, #0006, #0002 50%, #0006); }
.netflix-thanks__content { position: relative; z-index: 1; width: min(100%, 1380px); padding: clamp(56px, 8vw, 104px) clamp(20px, 5vw, 72px); color: #fff; text-align: center; }
.netflix-thanks__logo { width: clamp(190px, 24vw, 340px); margin: 0 auto 22px; }
.netflix-thanks__names { color: #fff; font-family: 'Barlow Condensed', sans-serif; font-size: clamp(2.5rem, 5.2vw, 5rem); font-weight: 700; line-height: .95; text-transform: uppercase; }
.netflix-thanks__names span:nth-child(2) { color: var(--accent); }
.netflix-thanks__headline { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; margin-top: 28px; font-size: clamp(1rem, 2vw, 1.65rem); }
.netflix-thanks__headline strong { border-radius: 9px; background: var(--accent); padding: 7px 14px; }
.netflix-thanks__message { max-width: 1260px; margin: 22px auto 0; font-size: clamp(.88rem, 1.45vw, 1.3rem); line-height: 1.75; }
.netflix-thanks__farewell { margin-top: 24px; font-size: clamp(1rem, 1.7vw, 1.35rem); }
.netflix-thanks__families { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 52px; margin-top: clamp(46px, 7vw, 82px); }
.netflix-thanks__family span { font-size: clamp(.95rem, 1.5vw, 1.25rem); }
.netflix-thanks__family h4 { margin-top: 9px; color: #ed1c24; font-size: clamp(1rem, 1.7vw, 1.4rem); font-weight: 700; text-transform: uppercase; }
.netflix-thanks__family p { margin-top: clamp(24px, 3vw, 42px); font-size: clamp(.9rem, 1.45vw, 1.2rem); }
.design-rating { --rating-red: #e50914; --rating-gold: #ffc83d; position: relative; isolation: isolate; width: min(calc(100% - 32px), 760px); margin: 54px auto; overflow: hidden; border: 1px solid #ffffff14; border-radius: 24px; background: radial-gradient(circle at 50% 0, #e5091426, transparent 42%), linear-gradient(145deg, #191919, #0b0b0b); color: #fff; text-align: center; box-shadow: 0 24px 70px #0008, inset 0 1px #ffffff0a; }
.design-rating::before { position: absolute; z-index: 0; top: 0; right: 15%; left: 15%; height: 2px; border-radius: 999px; background: linear-gradient(90deg, transparent, #e50914, transparent); content: ''; }
.design-rating__content { position: relative; z-index: 1; padding: 34px 28px 30px; }
.design-rating__glow { position: absolute; z-index: 0; right: 18%; bottom: -100px; left: 18%; height: 150px; border-radius: 50%; background: #e5091438; filter: blur(48px); }
.design-rating__eyebrow { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 11px; color: #ff5962; font-size: 10px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.design-rating__eyebrow::before { width: 18px; height: 2px; border-radius: 999px; background: currentColor; content: ''; }
.design-rating h2 { margin: 0; color: #fff; font-family: inherit; font-size: clamp(22px, 3vw, 32px); font-weight: 800; line-height: 1.2; }
.design-rating p { max-width: 520px; margin: 9px auto 23px; color: #a7a7a7; font-size: 14px; line-height: 1.55; }
.design-rating__stars { display: flex; align-items: center; justify-content: center; gap: clamp(7px, 1.5vw, 12px); }
.design-rating__star { display: grid; width: clamp(46px, 7vw, 56px); height: clamp(46px, 7vw, 56px); place-items: center; border: 1px solid #3d3d3d; border-radius: 14px; background: linear-gradient(145deg, #242424, #151515); padding: 0; color: #5f5f5f; cursor: pointer; font: inherit; font-size: clamp(25px, 4vw, 32px); line-height: 1; touch-action: manipulation; box-shadow: inset 0 1px #ffffff0a; transition: transform .18s ease, color .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease; }
.design-rating__star:hover, .design-rating__star:focus-visible, .design-rating__star.is-active { border-color: #ffc83dbd; background: linear-gradient(145deg, #40351c, #241e12); color: var(--rating-gold); outline: none; box-shadow: 0 8px 25px #ffc83d1f, inset 0 1px #ffffff12; transform: translateY(-3px); }
.design-rating__selection { min-height: 20px; margin: 14px 0 17px; color: #b5b5b5; font-size: 12px; font-weight: 700; }
.design-rating__submit { display: inline-flex; min-width: 180px; min-height: 46px; align-items: center; justify-content: center; gap: 9px; border: 0; border-radius: 11px; background: linear-gradient(135deg, #e50914, #b20710); padding: 11px 23px; color: #fff; cursor: pointer; font: inherit; font-size: 14px; font-weight: 800; touch-action: manipulation; box-shadow: 0 12px 28px #e5091438; transition: transform .18s ease, filter .18s ease, opacity .18s ease; }
.design-rating__submit:hover:not(:disabled) { filter: brightness(1.12); transform: translateY(-1px); }
.design-rating__submit:disabled { cursor: not-allowed; opacity: .42; box-shadow: none; }
.design-rating__spinner { display: none; width: 17px; height: 17px; border: 2px solid #ffffff59; border-top-color: #fff; border-radius: 50%; animation: design-rating-spin .7s linear infinite; }
.design-rating__submit.is-loading .design-rating__spinner { display: block; }
.design-rating__status { min-height: 20px; margin-top: 12px; color: #75d99a; font-size: 12px; font-weight: 700; }
.design-rating__status.is-error { color: #ff6b75; }
@keyframes design-rating-spin { to { transform: rotate(360deg); } }
.netflix-footer { border-top: 1px solid #242424; background: #080808; padding: 24px 24px 100px; color: #929292; text-align: center; }
.netflix-footer p { margin: 0 auto; font-size: 12px; line-height: 1.7; }
.netflix-footer .netflix-footer__credit { margin-top: 5px; }
.netflix-footer__heart { color: #ed1c24; font-size: 1.15em; }
.netflix-footer a { color: #d7d7d7; font-weight: 700; text-decoration: none; transition: color .2s ease; }
.netflix-footer a:hover { color: #ed1c24; }
.netflix-footer a:focus-visible { border-radius: 3px; outline: 2px solid #ed1c24; outline-offset: 3px; }

@media (min-width: 641px) {
    #app > main { width: 100%; max-width: none; margin: 0; }
    .splash-screen .splash-content { width: min(100%, 680px); padding-block: 64px; }
    .splash-wedding-logo { width: clamp(260px, 22vw, 360px); }
    .splash-brand p { font-size: 1.65rem; }
    .splash-lineage { width: min(100%, 620px); margin-top: 44px; }
    .splash-lineage article { padding: 14px 16px; }
    .splash-lineage article > span { font-size: .7rem; }
    .splash-lineage article p { font-size: .8rem; }
    .splash-profile-single { margin-top: 34px; }
    .splash-profile-single .splash-profile-icon { width: 148px; }
    .splash-guest { margin-top: 42px; }
    .splash-open-button { min-width: 290px; }
    .netflix-thanks { padding: clamp(28px, 3vw, 52px); }
    .netflix-thanks__scene { min-height: calc(100vh - clamp(56px, 6vw, 104px)); }
    .netflix-footer { padding: 26px 32px 104px; }
    .gallery-grid .gallery-ranked { padding-left: 28px; }
    .gallery-rank { font-size: 116px; }
}

@media (max-width: 640px) {
    body.netflix-menu-open #main, body.all-wishes-open #main, body.location-detail-open #main { overflow: hidden; }
    .netflix-topbar, .netflix-topbar.is-visible { left: 0; width: 100%; transform: none; }
    .netflix-topbar { transition: opacity .28s ease; }
    .netflix-topbar__bar { min-height: 58px; padding: max(7px, env(safe-area-inset-top)) 14px 7px; transform: translateY(-120%); transition: transform .38s cubic-bezier(.22, 1, .36, 1); }
    .netflix-topbar.is-visible .netflix-topbar__bar { transform: translateY(0); }
    .netflix-topbar__brand { min-width: 145px; font-size: 22px; }
    .netflix-topbar__toggle { min-width: 96px; padding: 8px 12px 8px 14px; font-size: 11px; }
    .netflix-navigation__backdrop { display: none; }
    .netflix-navigation { z-index: 68; inset: 0; display: flex; width: 100%; height: 100vh; height: 100dvh; min-height: 0; flex-direction: column; overflow: hidden; border: 0; background: radial-gradient(circle at 85% 8%, #e509143d, transparent 35%), linear-gradient(145deg, #171717, #050505 76%); padding: 0 20px; opacity: 1; overscroll-behavior-y: none; transform: translateX(105%); transition: transform .42s cubic-bezier(.22, 1, .36, 1); }
    .netflix-navigation.is-open { transform: translateX(0); }
    .netflix-navigation__head { position: relative; z-index: 2; display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 18px; margin: 0 -20px; border-bottom: 1px solid #ffffff17; background: linear-gradient(180deg, #111 78%, #111111f0); padding: max(22px, env(safe-area-inset-top)) 20px 19px; box-shadow: 0 12px 26px #0006; }
    .netflix-navigation__head p { display: flex; flex-direction: column; margin: 0; }
    .netflix-navigation__head small { color: #999; font-size: 9px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
    .netflix-navigation__head strong { margin-top: 3px; font-family: 'Barlow Condensed', sans-serif; font-size: 29px; line-height: 1; text-transform: uppercase; }
    .netflix-navigation__head strong span { color: #e50914; }
    .netflix-navigation__head button { display: grid; width: 42px; height: 42px; flex: none; place-items: center; border: 1px solid #565656; border-radius: 50%; background: #ffffff0a; padding: 0 0 4px; color: #fff; cursor: pointer; font-size: 31px; line-height: 1; }
    .netflix-navigation ol { display: grid; min-height: 0; flex: 1 1 auto; grid-template-columns: 1fr; align-content: start; gap: 8px; overflow-x: hidden; overflow-y: scroll; margin: 0 -4px; padding: 24px 4px max(96px, calc(env(safe-area-inset-bottom) + 72px)); overscroll-behavior-y: contain; scrollbar-color: #e50914 #181818; scrollbar-width: thin; touch-action: pan-y; -webkit-overflow-scrolling: touch; }
    .netflix-navigation li button { min-height: 58px; border-bottom-color: #ffffff12; border-radius: 12px; background: #ffffff07; padding: 12px 15px; }
    .netflix-navigation li span { width: 31px; font-size: 10px; }
    .netflix-navigation li strong { font-size: 17px; }
    #guest-book .comments-shell, #guest-book > hr { display: none; }
    .guestbook-compact-actions { display: grid; gap: 10px; margin-top: 14px; text-align: center; }
    .guestbook-compact-actions > span { display: flex; align-items: center; gap: 10px; color: #777; font-size: 11px; font-weight: 700; text-transform: uppercase; }
    .guestbook-compact-actions > span::before, .guestbook-compact-actions > span::after { height: 1px; flex: 1; background: #343434; content: ''; }
    .all-wishes-modal { display: block; overflow: hidden; padding: 0; background: #080808; opacity: 0; pointer-events: none; transform: translateX(105%); transition: opacity .2s ease, transform .42s cubic-bezier(.22, 1, .36, 1); }
    .all-wishes-modal.open { opacity: 1; pointer-events: auto; transform: translateX(0); }
    .all-wishes-modal__panel { width: 100%; max-height: none; height: 100vh; height: 100dvh; border: 0; border-radius: 0; box-shadow: none; }
    .all-wishes-modal__header { padding: max(20px, env(safe-area-inset-top)) 18px 17px; }
    .all-wishes-modal__header h2 { font-size: 24px; }
    .all-wishes-modal__header-actions { gap: 7px; }
    .all-wishes-modal__count { padding: 7px 9px; font-size: 10px; }
    .all-wishes-modal__close { min-height: 40px; padding-inline: 10px 12px; }
    .all-wishes-modal__close > strong { font-size: 9px; }
    .all-wishes-modal__search { margin-inline: 14px; }
    .all-wishes-modal__list { padding-inline: 14px !important; }
    .location-detail-modal { right: 0; left: 0; width: 100%; box-shadow: none; }
    .location-detail-modal__header { min-height: 68px; padding: max(15px, env(safe-area-inset-top)) 16px 14px; }
    .location-detail-modal__header h2 { font-size: 24px; }
    .location-detail-modal__close { min-height: 40px; padding-inline: 10px 12px; }
    .location-detail { padding: 24px 14px 30px; }
    .location-detail__map { border-radius: 13px; }
    .location-detail__actions { display: grid; grid-template-columns: 1fr; }
    .location-detail__actions a { width: 100%; }
    .location-detail__copy-maps { grid-column: auto; }
    .gift-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
    .gift-tabs .gift-toggle { min-height: 50px; padding: 7px 4px; font-size: 10px; line-height: 1.25; }
    .transfer-confirmation-form { border-radius: 15px; padding: 16px; }
    .transfer-confirmation-grid { grid-template-columns: 1fr; gap: 13px; }
    .transfer-dropzone { min-height: 138px; padding: 18px 12px; }
    .wish-edit-modal { left: 0; width: 100%; }
    .wish-edit-modal__body { padding: 18px 14px max(22px, env(safe-area-inset-bottom)); }
    .wish-edit-form { border: 0; border-radius: 0; background: transparent; padding: 0; box-shadow: none; }
    .wish-edit-form__actions { display: grid; grid-template-columns: 1fr; }
    .wish-edit-form__actions button[type='submit'] { grid-row: 1; }
    .backsound-player { bottom: max(10px, env(safe-area-inset-bottom)); width: calc(100vw - 24px); grid-template-columns: 42px minmax(0, 1fr) 36px; gap: 8px; border-radius: 14px; padding: 9px; }
    .backsound-player__toggle { width: 42px; height: 42px; }
    .backsound-player__volume-button { width: 36px; height: 36px; border-radius: 10px; }
    .backsound-volume-panel { right: -1px; width: min(280px, calc(100vw - 24px)); padding: 14px; }
    .hero-content { bottom: 100px; }
    .design-rating { width: calc(100% - 28px); margin: 38px auto; border-radius: 20px; }
    .design-rating__content { padding: 28px 15px 25px; }
    .design-rating p { font-size: 13px; }
    .design-rating__stars { gap: 6px; }
    .design-rating__star { width: 46px; height: 46px; border-radius: 12px; font-size: 26px; }
    #timeline { display: grid; grid-template-columns: none; grid-auto-columns: min(84vw, 320px); grid-auto-flow: column; gap: 12px; overflow-x: auto; overflow-y: hidden; padding: 4px 2px 14px; scroll-padding-inline: 2px; scroll-snap-type: x mandatory; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
    .horizontal-rail-hint { gap: 6px; margin: -4px 2px 9px; font-size: 9px; }
    .horizontal-rail-hint span { font-size: 12px; }
    #timeline .story-row { min-height: 0; padding: 16px; scroll-snap-align: start; scroll-snap-stop: always; }
    .story-card-body { margin-top: 12px; }
    .story-num { font-size: 40px; }
    #timeline .story-list p,
    #timeline p { display: block; overflow: visible; -webkit-box-orient: initial; -webkit-line-clamp: unset; }
    .gallery-grid { display: grid; grid-auto-columns: min(72vw, 260px); grid-auto-flow: column; grid-template-columns: none; gap: 10px; overflow-x: auto; padding-bottom: 12px; scroll-snap-type: x mandatory; }
    .gallery-grid figure { scroll-snap-align: start; }
    .horizontal-rail-button { width: 40px; height: 52px; border-radius: 9px; font-size: 37px; }
    .horizontal-rail-button--previous { left: 2px; }
    .horizontal-rail-button--next { right: 2px; }
    .splash-screen .splash-content { min-height: max(100%, 700px); justify-content: flex-start; padding: max(48px, env(safe-area-inset-top)) 20px max(110px, calc(env(safe-area-inset-bottom) + 72px)); }
    .splash-brand, .splash-lineage, .splash-profile-single, .splash-guest { flex-shrink: 0; }
    .splash-ambient__panel { top: 8%; width: 190px; opacity: .78; }
    .splash-ambient__panel--left { left: -20%; }
    .splash-ambient__panel--right { right: -20%; }
    .splash-ambient__ring { top: 22%; width: 105vw; border-color: #e509146e; }
    .splash-ambient__glow { top: 31%; width: 94vw; background: #e509143d; }
    .splash-ambient__beam { top: -8%; height: 106%; opacity: .62; }
    .splash-ambient__beam--left { left: 9%; }
    .splash-ambient__beam--right { right: 9%; }
    .splash-ambient__particles { box-shadow: -42vw -36vh 0 1px #e50914, -34vw -14vh 0 1px #fff9, -24vw 27vh 0 1px #ff3b46, -14vw -29vh 0 1px #e50914, 7vw -37vh 0 1px #fff, 17vw 30vh 0 1px #e50914, 27vw -19vh 0 1px #fff9, 38vw 13vh 0 1px #ff3641, 44vw -3vh 0 1px #e50914, -38vw 37vh 0 1px #fff8, 3vw 41vh 0 1px #ff3440, 33vw 39vh 0 1px #fff9; }
    .splash-ambient.invitation-ambient { opacity: .82; }
    .invitation-ambient::before { right: -55%; bottom: -18%; left: -55%; height: 62%; background-size: 34px 28px; }
    .invitation-ambient .splash-ambient__panel { top: 12%; opacity: .58; }
    .invitation-ambient .splash-ambient__panel--left { left: -24%; }
    .invitation-ambient .splash-ambient__panel--right { right: -24%; }
    .invitation-ambient .splash-ambient__ring { top: 25%; width: 112vw; opacity: .7; }
    .invitation-ambient .splash-ambient__beam { opacity: .5; }
    .splash-lineage { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 28px; }
    .splash-lineage > i { display: none; }
    .splash-lineage article { padding: 10px 9px; text-align: center; }
    .splash-lineage article > h2 { margin-bottom: 7px; font-size: clamp(1.15rem, 6vw, 1.45rem); }
    .splash-lineage article > span { font-size: .52rem; letter-spacing: .08em; }
    .splash-lineage article p { font-size: .6rem; line-height: 1.4; }
    .splash-profile-single { margin-top: 22px; }
    .splash-profile-single .splash-profile-icon { width: clamp(92px, 25vw, 116px); }
    .splash-guest { margin-top: 22px; }
    .splash-open-button { min-height: 52px; margin-top: 18px; padding-inline: 22px; }
    .netflix-thanks { padding: 0; }
    .netflix-thanks__scene { min-height: auto; border-radius: 0; }
    .netflix-thanks__content { padding: 64px 20px 150px; }
    .netflix-thanks__logo { margin-bottom: 18px; }
    .netflix-thanks__headline { flex-direction: column; margin-top: 24px; }
    .netflix-thanks__message { margin-top: 20px; }
    .netflix-thanks__families { grid-template-columns: 1fr; gap: 42px; margin-top: 52px; }
    .netflix-thanks__family p { margin-top: 18px; }
}

@media (prefers-reduced-motion: reduce) {
    #main.invitation-revealing, .netflix-intro-video, .backsound-volume-panel { animation: none !important; transition-duration: .01ms !important; }
    .splash-ambient__panel, .splash-ambient__ring, .splash-ambient__glow, .splash-ambient__beam, .splash-ambient__particles { animation: none; }
    .netflix-pin-transition::before, .netflix-pin-transition__boxes > span { animation: none !important; }
    .topbar-brand-swap-enter-active, .topbar-brand-swap-leave-active { transition: none; }
    .location-detail-modal, .wish-edit-modal { transform: none; transition: none; }
}
/* Public invitation access identity gate */
.public-access-screen { position: fixed; inset: 0; z-index: 10020; display: grid; place-items: center; overflow-y: auto; padding: max(20px, env(safe-area-inset-top)) 16px max(20px, env(safe-area-inset-bottom)); background: #060606; color: #fff; }
.public-access-screen__ambient { position: fixed; inset: 0; pointer-events: none; background: radial-gradient(circle at 50% 15%, rgba(229,9,20,.18), transparent 42%), linear-gradient(145deg, rgba(255,255,255,.035), transparent 42%); }
.public-access-card { position: relative; width: min(100%, 520px); padding: clamp(26px, 6vw, 46px); border: 1px solid rgba(255,255,255,.15); border-radius: 22px; background: rgba(20,20,20,.96); box-shadow: 0 30px 90px rgba(0,0,0,.65); }
.public-access-card__icon { display: grid; width: 52px; height: 52px; margin-bottom: 20px; place-items: center; border-radius: 50%; background: rgba(229,9,20,.16); color: #f21b25; }
.public-access-card__icon svg { width: 27px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.public-access-card__eyebrow { margin: 0 0 8px !important; color: #f21b25 !important; font-size: 12px !important; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.public-access-card h2 { margin: 0 0 12px; color: #fff; font-size: clamp(25px, 5vw, 36px); line-height: 1.12; }
.public-access-card > p:not(.public-access-card__eyebrow) { margin: 0 0 26px; color: #b9b9b9; font-size: 15px; line-height: 1.65; }
.public-access-card label { display: block; margin-bottom: 8px; color: #f4f4f4; font-size: 14px; font-weight: 750; }
.public-access-card label b { color: #f21b25; }
.public-access-card input { width: 100%; min-height: 52px; border: 1px solid #4b4b4b; border-radius: 10px; background: #0c0c0c; color: #fff; padding: 0 15px; font: inherit; font-size: 16px; outline: none; }
.public-access-card input:focus { border-color: #e50914; box-shadow: 0 0 0 3px rgba(229,9,20,.18); }
.public-access-card input[aria-invalid="true"] { border-color: #ff525c; }
.public-access-card__error { display: block; margin-top: 8px; color: #ff7b82; font-size: 13px; line-height: 1.4; }
.public-access-card button { display: flex; width: 100%; min-height: 52px; margin-top: 18px; align-items: center; justify-content: center; gap: 9px; border: 0; border-radius: 10px; background: #e50914; color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.public-access-card button:disabled { cursor: not-allowed; opacity: .55; }
.public-access-card > small { display: block; margin-top: 14px; color: #898989; font-size: 11px; line-height: 1.5; text-align: center; }
.public-access-card__spinner { width: 17px; height: 17px; border: 2px solid rgba(255,255,255,.35); border-top-color: #fff; border-radius: 50%; animation: public-access-spin .7s linear infinite; }
body.public-access-playing { overflow: hidden; }
@keyframes public-access-spin { to { transform: rotate(360deg); } }
