*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}html,body,#root{touch-action:manipulation;overscroll-behavior:none;background:#1a1a2e;height:100%;margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif;overflow:hidden}.booth{position:fixed;inset:0;overflow:hidden}.preview{object-fit:cover;width:100%;height:100%}.preview.mirrored{transform:scaleX(-1)}.review-photo{object-fit:cover;background:#000;width:100%;height:100%;position:absolute;inset:0}.countdown{color:#fff;text-shadow:0 0 60px #0009;pointer-events:none;place-items:center;font-size:min(45vh,45vw);font-weight:800;animation:1s ease-out countdown-pop;display:grid;position:absolute;inset:0}@keyframes countdown-pop{0%{opacity:0;transform:scale(1.6)}20%{opacity:1;transform:scale(1)}to{opacity:.85;transform:scale(.9)}}.flash{pointer-events:none;background:#fff;animation:.3s ease-out forwards flash-fade;position:absolute;inset:0}@keyframes flash-fade{0%{opacity:1}to{opacity:0}}.attract{cursor:pointer;position:absolute;inset:0}@keyframes slide-fade-in{0%{opacity:0}to{opacity:1}}.filmstrip{pointer-events:none;flex-direction:column;gap:10px;display:flex;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.filmstrip img{border:2px solid #ffffffd9;border-radius:6px;width:auto;height:13vh;box-shadow:0 4px 16px #00000080}.slideshow{cursor:none;background:#0b0b10;position:fixed;inset:0;overflow:hidden}.slideshow-print{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;margin:auto;position:absolute;inset:0}.slideshow-in{animation:1.8s both slide-fade-in}.slideshow-empty{text-align:center;color:#fff;place-content:center;gap:8px;display:grid;position:absolute;inset:0}.slideshow-empty h1{margin:0;font-size:7vmin}.slideshow-empty p{opacity:.75;font-size:3vmin}.attract-ui{pointer-events:none;flex-direction:column;justify-content:flex-end;align-items:center;gap:14px;padding-bottom:6vh;display:flex;position:absolute;inset:0}.attract-ui .start-button{pointer-events:auto;position:static;transform:none}.attract-ui .start-button:active{transform:scale(.96)}.attract-hint{color:#fff;text-shadow:0 2px 12px #000c;opacity:.85;font-size:20px}.update-banner{z-index:40;color:#111;cursor:pointer;background:#ffd54f;border:none;border-radius:999px;padding:12px 26px;font-size:16px;font-weight:700;animation:.4s both slide-fade-in;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000073}.secret-corner{z-index:20;width:90px;height:90px;position:absolute;top:0;left:0}.session{pointer-events:none;position:absolute;inset:0}.get-ready{color:#fff;text-shadow:0 0 40px #000000b3;place-items:center;font-size:min(8vh,8vw);font-weight:800;animation:.4s both slide-fade-in;display:grid;position:absolute;inset:0}.shot-progress{color:#fff;text-shadow:0 2px 10px #000c;font-size:22px;font-weight:600;position:absolute;top:24px;right:32px}.mode-chooser{z-index:15;background:#101018;flex-direction:column;justify-content:center;align-items:center;gap:2vh;padding:2vh 3vw;animation:.25s both slide-fade-in;display:flex;position:absolute;inset:0}.mode-title{color:#fff;text-shadow:0 2px 16px #000000b3;margin:0;font-size:min(5.5vh,5.5vw);font-weight:800}.mode-grid{flex:1;grid-template-columns:repeat(2,1fr);gap:2vh;width:100%;max-width:170vh;min-height:0;display:grid}.mode-tile{cursor:pointer;background:#000;border:5px solid #ffffff2e;border-radius:18px;padding:0;display:block;position:relative;overflow:hidden}.mode-tile.highlighted{border-color:#ff4f81;box-shadow:0 0 0 4px #ff4f8159,0 10px 40px #00000080}.mode-video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.mode-video.mirrored{transform:scaleX(-1)}.mode-label{color:#fff;text-shadow:0 1px 8px #000c;background:linear-gradient(#0000,#000000bf);padding:10px 0 12px;font-size:min(3.2vh,3.2vw);font-weight:800;position:absolute;bottom:0;left:0;right:0}.mode-hint{color:#fff;opacity:.85;text-shadow:0 2px 10px #000c;font-size:min(2.6vh,2.6vw)}.finished{background:#101018;justify-content:center;align-items:center;padding-bottom:80px;display:flex;position:absolute;inset:0;overflow:hidden}.finished-print{object-fit:contain;width:auto;max-width:calc(100dvw - 48px);height:auto;max-height:calc(100dvh - 140px);animation:.6s both slide-fade-in;box-shadow:0 12px 60px #0009}.qr-panel{z-index:10;color:#111;background:#fff;border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:18px;font-size:18px;font-weight:700;display:flex;position:absolute;bottom:16px;left:16px;box-shadow:0 8px 30px #00000080}.qr-code{width:max(25vh,min(28vh,28vw));height:max(25vh,min(28vh,28vw));display:block}.result-actions{z-index:10;gap:14px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.done-button,.stay-button{cursor:pointer;border:none;border-radius:999px;padding:14px 30px;font-size:18px;font-weight:700;box-shadow:0 6px 24px #00000073}.done-button{color:#fff;background:#ff4f81}.stay-button{color:#111;font-variant-numeric:tabular-nums;background:#ffffffeb;min-width:140px}html.guest-mode,html.guest-mode body,html.guest-mode #root{height:auto;min-height:100%;overflow:auto}.guest{color:#fff;background:#14141f;flex-direction:column;align-items:center;min-height:100svh;padding:0 16px 40px;display:flex}.guest-header{text-align:center;width:100%;max-width:720px;padding:18px 0}.guest-brand{font-size:22px;font-weight:800}.guest-status{text-align:center;max-width:420px;margin-top:10vh;font-size:18px;line-height:1.5}.guest-status button{color:#fff;cursor:pointer;background:#ff4f81;border:none;border-radius:999px;padding:8px 18px;font-size:16px}.guest-photo{border-radius:8px;width:auto;max-width:min(94vw,560px);height:auto;max-height:70svh;box-shadow:0 10px 40px #00000080}.guest-actions{flex-direction:column;align-items:center;gap:18px;margin-top:24px;display:flex}.guest-save{color:#fff;cursor:pointer;background:#ff4f81;border:none;border-radius:999px;padding:16px 40px;font-size:20px;font-weight:700}.guest-save:disabled{opacity:.6}.guest-link{color:#9fd7ff;font-size:17px}.guest-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;width:100%;max-width:900px;display:grid}.guest-cell img{object-fit:cover;aspect-ratio:2/3;background:#000;border-radius:6px;width:100%;height:100%}.settings h2{margin:32px 0 4px;font-size:22px}.settings-note{opacity:.85;overflow-wrap:anywhere;font-size:15px}.version-line{opacity:.6;margin-top:24px;font-family:monospace}.download-button{z-index:10;color:#fff;background:#4fc3ff;border-radius:999px;padding:12px 24px;font-size:16px;font-weight:600;text-decoration:none;position:absolute;bottom:16px;right:16px}.debug-info{z-index:10;color:#fff;background:#0009;border-radius:999px;padding:8px 16px;font-family:monospace;font-size:14px;position:absolute;top:16px;left:16px}.zoom-crop{z-index:10;color:#fff;background:#000000a6;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:8px;font-family:monospace;font-size:13px;display:flex;position:absolute;top:76px;right:16px}.zoom-crop img{image-rendering:auto;border-radius:8px;width:min(30vh,30vw);height:min(30vh,30vw)}.ba-toggle{z-index:10;color:#111;cursor:pointer;background:#ffd54f;border:none;border-radius:999px;padding:12px 24px;font-size:16px;font-weight:600;position:absolute;top:16px;right:16px}.labs{color:#fff;background:#14141f;flex-direction:column;align-items:center;gap:12px;min-height:100svh;padding:24px 16px 60px;display:flex}.labs h1{margin:0;font-size:24px}.labs-note{opacity:.8;text-align:center;max-width:640px;margin:0;font-size:14px}.labs-status{color:#ffd54f;text-align:center;margin:0;font-size:15px}.labs-setup{flex-wrap:wrap;justify-content:center;gap:10px;max-width:640px;display:flex}.labs-setup input{color:#fff;background:#1f1f2e;border:1px solid #ffffff4d;border-radius:8px;flex:1;min-width:260px;padding:10px 14px;font-size:15px}.labs-setup>button{color:#fff;cursor:pointer;background:#ff4f81;border:none;border-radius:999px;padding:10px 28px;font-size:16px;font-weight:700}.labs-canvas{width:min(92vw,720px)}.labs-canvas canvas{border-radius:12px;width:100%;height:auto}.labs-controls{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.labs-capture{color:#111;cursor:pointer;background:#4fc3ff;border:none;border-radius:999px;padding:10px 24px;font-size:16px;font-weight:700}.labs-still{flex-direction:column;align-items:center;gap:10px;display:flex}.labs-still img{border-radius:12px;max-width:min(92vw,640px);box-shadow:0 10px 40px #00000080}.settings{z-index:30;color:#fff;background:#14141f;padding:40px 6vw 60px;font-size:18px;position:absolute;inset:0;overflow-y:auto}.settings h1{margin:0 0 24px}.settings-row{border-bottom:1px solid #ffffff1f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 0;display:flex}.settings-row input[type=text]{color:#fff;background:#1f1f2e;border:1px solid #ffffff4d;border-radius:8px;min-width:280px;padding:10px 14px;font-size:18px}.settings-row input[type=checkbox]{width:26px;height:26px}.settings-row input[type=range]{accent-color:#ff4f81;width:min(340px,60vw)}.settings-options{flex-wrap:wrap;gap:10px;display:flex}.option{color:#fff;cursor:pointer;background:#1f1f2e;border:2px solid #ffffff40;border-radius:10px;padding:10px 18px;font-size:16px}.option.selected{background:#33202b;border-color:#ff4f81}.frame-option{flex-direction:column;align-items:center;gap:6px;display:flex}.frame-thumb{background:repeating-conic-gradient(#555 0% 25%,#777 0% 50%) 0 0/16px 16px;border-radius:4px;width:auto;height:110px}.exit-settings{color:#fff;cursor:pointer;background:#ff4f81;border:none;border-radius:999px;margin-top:28px;padding:14px 40px;font-size:20px;font-weight:700}.start-button{color:#fff;cursor:pointer;background:#ff4f81;border:none;border-radius:999px;padding:24px 64px;font-size:32px;font-weight:700;position:absolute;bottom:6vh;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0006}.start-button:active{transform:translate(-50%)scale(.96)}.camera-error{color:#fff;text-align:center;background:#1a1a2ef2;place-items:center;padding:40px;font-size:24px;display:grid;position:absolute;inset:0;overflow-y:auto}.camera-error-message{margin:0 0 24px}.camera-diagnostics{text-align:left;background:#00000059;border-radius:12px;max-width:720px;padding:20px 28px;font-size:16px}.camera-diagnostics h2{margin:0 0 12px;font-size:18px}.camera-diagnostics ul{margin:0;padding:0;list-style:none}.camera-diagnostics li{border-bottom:1px solid #ffffff26;flex-direction:column;gap:2px;padding:10px 0;display:flex}.probe-ok strong{color:#7dff9b}.probe-fail strong{color:#ff8f8f}.probe-id{opacity:.6;font-size:13px}.retry-button{color:#fff;cursor:pointer;background:#ff4f81;border:none;border-radius:999px;margin-top:16px;padding:10px 28px;font-size:16px;font-weight:600}.vb{background:var(--vb-bg,#140507);color:var(--vb-text,#f3e4df);font-family:Segoe UI,system-ui,sans-serif;position:absolute;inset:0;overflow:hidden}.vb-preview{object-fit:cover;width:100%;height:100%;position:absolute;inset:0;transform:scaleX(-1)}.vb-vignette{pointer-events:none;box-shadow:inset 0 0 40vh 12vh var(--vb-vignette,#3a0a0f);background:radial-gradient(ellipse at center, transparent 40%, var(--vb-bg,#140507) 120%);position:absolute;inset:0}.vb-overlay{z-index:5;text-align:center;background:color-mix(in srgb, var(--vb-bg,#140507) 55%, transparent);flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:24px;display:flex;position:absolute;inset:0}.vb-error{max-width:640px;color:var(--vb-text);background:color-mix(in srgb, var(--vb-bg) 80%, #000);border-radius:16px;padding:24px 28px;font-size:20px}.vb-headline{letter-spacing:.01em;text-shadow:0 2px 20px #0009;margin:0;font-size:clamp(24px,5vw,44px);font-weight:700}.vb-ping{background:var(--vb-accent);color:var(--vb-accent-text);border-radius:999px;padding:12px 24px;font-size:18px;font-weight:700;position:absolute;top:24px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #0006}.vb-code-dots{gap:18px;display:flex}.vb-code-dots.vb-code-error{animation:.4s vb-shake}@keyframes vb-shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.vb-dot{border:2px solid var(--vb-muted);border-radius:50%;width:20px;height:20px}.vb-dot.filled{background:var(--vb-accent);border-color:var(--vb-accent)}.vb-try-again{color:var(--vb-muted);margin:0;font-size:18px}.vb-checking{color:var(--vb-muted);margin:0}.vb-keypad{grid-template-columns:repeat(3,84px);gap:16px;display:grid}.vb-key{border:2px solid color-mix(in srgb, var(--vb-accent) 45%, transparent);background:var(--vb-panel);width:84px;height:84px;color:var(--vb-text);cursor:pointer;border-radius:50%;font-size:34px;font-weight:600}.vb-key:active{background:var(--vb-accent);color:var(--vb-accent-text);transform:scale(.94)}.vb-key-empty{cursor:default;background:0 0;border:none}.vb-key-back{font-size:26px}.vb-walkup{color:var(--vb-muted);cursor:pointer;background:0 0;border:none;margin-top:8px;font-size:17px;text-decoration:underline}.vb-greeting h1{margin:0;font-size:clamp(30px,7vw,56px)}.vb-prompts-title{margin:0 0 8px;font-size:clamp(22px,4vw,34px)}.vb-prompt-cards{flex-direction:column;gap:14px;width:min(560px,92vw);max-height:62vh;display:flex;overflow-y:auto}.vb-prompt-card{border:2px solid color-mix(in srgb, var(--vb-accent) 40%, transparent);background:var(--vb-panel);color:var(--vb-text);text-align:left;cursor:pointer;border-radius:16px;padding:20px 22px;font-size:20px;line-height:1.3;position:relative}.vb-prompt-card:active{transform:scale(.99)}.vb-prompt-card.vb-live-now{border-color:var(--vb-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--vb-accent) 30%, transparent)}.vb-live-badge{background:var(--vb-accent);color:var(--vb-accent-text);vertical-align:middle;border-radius:999px;margin-right:10px;padding:3px 10px;font-size:13px;font-weight:700;display:inline-block}.vb-say-anything{background:var(--vb-accent);color:var(--vb-accent-text);cursor:pointer;border:none;border-radius:999px;padding:22px 48px;font-size:26px;font-weight:700}.vb-done{border:2px solid var(--vb-muted);color:var(--vb-text);cursor:pointer;background:0 0;border-radius:999px;margin-top:6px;padding:12px 32px;font-size:18px}.vb-countdown{background:color-mix(in srgb, var(--vb-bg) 35%, transparent)}.vb-count-number{color:var(--vb-accent);text-shadow:0 4px 40px #000000b3;font-size:clamp(80px,22vw,200px);font-weight:800}.vb-record-ui{z-index:5;pointer-events:none;position:absolute;inset:0}.vb-prompt-card-top{text-align:center;background:color-mix(in srgb, var(--vb-panel) 88%, transparent);width:min(680px,90vw);position:absolute;top:24px;left:50%;transform:translate(-50%)}.vb-rec-badge{color:#fff;font-variant-numeric:tabular-nums;background:#00000080;border-radius:999px;align-items:center;gap:10px;padding:10px 18px;font-size:20px;display:flex;position:absolute;top:24px;right:24px}.vb-rec-dot{background:#ff3b30;border-radius:50%;width:14px;height:14px;animation:1.2s infinite vb-pulse}@keyframes vb-pulse{0%,to{opacity:1}50%{opacity:.3}}.vb-stop{pointer-events:auto;color:#fff;cursor:pointer;background:#ff3b30;border:none;border-radius:999px;padding:20px 56px;font-size:26px;font-weight:700;position:absolute;bottom:6vh;left:50%;transform:translate(-50%)}.vb-review-player{background:#000;border-radius:14px;width:min(720px,92vw);max-height:62vh}.vb-review-actions{gap:16px;display:flex}.vb-btn{border:2px solid var(--vb-muted);background:var(--vb-panel);color:var(--vb-text);cursor:pointer;border-radius:999px;padding:16px 40px;font-size:20px;font-weight:600}.vb-btn-primary{background:var(--vb-accent);color:var(--vb-accent-text);border:none}.vb-sealed .vb-seal{font-size:clamp(70px,18vw,150px)}.vb-sealed h1{margin:0;font-size:clamp(26px,5vw,44px)}.vb-corner{z-index:20;width:90px;height:90px;position:absolute;top:0;left:0}.host{color:#f2f2f7;background:#14141f;min-height:100svh;padding:0 0 200px;font-family:system-ui,sans-serif}.host-login{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:40px 24px;display:flex}.host-login input,.reveal-login input{letter-spacing:6px;text-align:center;color:#fff;background:#1f1f2e;border:1px solid #444;border-radius:10px;width:200px;padding:12px;font-size:28px}.host-login button,.reveal-login button{color:#fff;cursor:pointer;background:#ff4f81;border:none;border-radius:999px;padding:12px 40px;font-size:18px;font-weight:700}.host-error,.reveal-error{color:#ff8f8f}.host-header{padding:20px 16px 8px}.host-header h1{margin:0;font-size:24px}.host-sub{color:#9aa0b4;font-size:14px}.host-tabs{z-index:10;background:#14141f;gap:4px;padding:8px 12px;display:flex;position:sticky;top:0;overflow-x:auto}.host-tab{color:#cdd;cursor:pointer;background:#1f1f2e;border:1px solid #333;border-radius:999px;flex:none;padding:10px 16px;font-size:15px}.host-tab.active{color:#fff;background:#ff4f81;border-color:#ff4f81}.host-main{padding:12px 16px}.host-add,.host-bulk-actions,.host-reel-actions{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.host-add input,.host-bulk textarea,.host-groups-input{color:#fff;background:#1f1f2e;border:1px solid #444;border-radius:8px;flex:1;min-width:180px;padding:10px 12px;font-size:15px}.host button{color:#fff;cursor:pointer;background:#4a4a6a;border:none;border-radius:8px;padding:10px 16px;font-size:15px}.host-seed{background:#1f1f2e;border-radius:10px;margin-bottom:12px;padding:16px}.host-seed select{border-radius:6px;margin:0 8px;padding:8px}.host-prompt-list,.host-guest-list,.host-clip-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.host-prompt,.host-guest,.host-clip{background:#1f1f2e;border-radius:10px;padding:12px}.host-prompt.live{outline:2px solid #ff4f81}.host-prompt-text{cursor:text}.host-live-badge,.reveal-caption strong{font-weight:700}.host-live-badge{color:#fff;background:#ff4f81;border-radius:999px;margin-right:8px;padding:2px 8px;font-size:11px;display:inline-block}.host-prompt-actions,.host-guest-actions,.host-clip-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.host-prompt-actions select,.host-prompt-main input{color:#fff;background:#14141f;border:1px solid #444;border-radius:6px;flex:1;min-width:140px;padding:8px}.host-icon{background:#33334a;border-radius:8px;width:38px;height:38px;padding:0;font-size:16px}.host-icon.active{background:#ff4f81}.host-icon:disabled{opacity:.3}.host-del{background:#5a2233}.host-guest-top{justify-content:space-between;align-items:baseline;display:flex}.host-guest-name{font-size:17px;font-weight:600}.host-guest-code{letter-spacing:3px;color:#ffd54f;font-family:monospace;font-size:22px}.host-bulk textarea{width:100%;margin-bottom:8px}.host-clip-head{cursor:pointer;justify-content:space-between;gap:10px;display:flex}.host-clip-prompt{color:#9aa0b4;margin-top:2px;font-size:13px;display:block}.host-clip-meta{text-align:right;color:#9aa0b4;flex-direction:column;font-size:13px;display:flex}.host-clip-video,.host-clip-body video{background:#000;border-radius:8px;width:100%;margin-top:10px}.host-clip-actions a{color:#4fc3ff;padding:10px 16px}.host-empty,.host-reel-status,.reveal-status{color:#9aa0b4}.host-party{flex-wrap:wrap;gap:20px;display:flex}.host-party-col{flex:1;min-width:220px}.host-party-col ul{padding:0;list-style:none}.host-party-col li{border-bottom:1px solid #2a2a3a;padding:6px 0}.host-party-col li.done{color:#7dff9b}.host-controls{z-index:20;background:#0e0e18;border-top:1px solid #2a2a3a;padding:12px 16px;position:fixed;bottom:0;left:0;right:0}.host-toggles{flex-direction:column;gap:4px;font-size:14px;display:flex}.host-toggles label{align-items:center;gap:8px;display:flex}.host-ping{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.host-ping input{color:#fff;background:#1f1f2e;border:1px solid #444;border-radius:6px;flex:1;min-width:160px;padding:8px}.host-clear-ping{background:#5a2233!important;font-size:12px!important}.host-storage{color:#9aa0b4;margin:6px 0 0;font-size:13px}.host-reel-opts{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.host-reel-opts input[type=text]{color:#fff;background:#1f1f2e;border:1px solid #444;border-radius:6px;padding:8px}.host-reel-list{padding:0;list-style:none}.host-reel-prompt{background:#1f1f2e;border-radius:10px;margin-bottom:8px;padding:12px}.host-reel-prompt-head{justify-content:space-between;font-size:16px;display:flex}.host-reel-prompt ul{padding:8px 0 0;list-style:none}.host-reel-prompt li.excluded{opacity:.4}.reveal{color:#fff;background:#000;font-family:system-ui,sans-serif;position:fixed;inset:0}.reveal-login,.reveal-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:40px;display:flex}.reveal-player{justify-content:center;align-items:center;display:flex}.reveal-video{object-fit:contain;background:#000;width:100%;height:100%}.reveal-title-card{text-align:center;padding:40px}.reveal-title-card h1{margin:0;font-size:clamp(32px,6vw,72px)}.reveal-title-card p{color:#c9a24a;font-size:clamp(18px,3vw,28px)}.reveal-caption{text-align:center;background:#0000008c;border-radius:12px;flex-direction:column;align-items:center;gap:4px;max-width:80vw;padding:12px 28px;display:flex;position:absolute;bottom:100px;left:50%;transform:translate(-50%)}.reveal-caption strong{font-size:24px}.reveal-controls{opacity:.3;background:#0009;border-radius:999px;align-items:center;gap:10px;padding:10px 16px;transition:opacity .2s;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.reveal-controls:hover{opacity:1}.reveal-controls button{color:#fff;cursor:pointer;background:#2a2a3a;border:none;border-radius:50%;width:48px;height:48px;font-size:20px}.reveal-controls button.active{background:#ff4f81}.reveal-progress{color:#9aa0b4;padding:0 8px}.rsvp{background:radial-gradient(120% 60% at 50% 108%, var(--vb-vignette,#3a0a0f) 0%, transparent 62%), radial-gradient(90% 40% at 50% -12%, var(--vb-vignette,#3a0a0f) 0%, transparent 55%), var(--vb-bg,#140507);min-height:100svh;color:var(--vb-text,#f3e4df);padding:max(24px, env(safe-area-inset-top)) 16px 56px;justify-content:center;align-items:flex-start;font-family:Georgia,Palatino Linotype,Times New Roman,serif;display:flex;position:relative}.rsvp:before{content:"";pointer-events:none;background:radial-gradient(50% 60% at 50% 100%,#ffaa5024,#0000 70%);height:60vh;animation:4.5s ease-in-out infinite rsvp-candle;position:fixed;inset:auto 0 -20vh}@keyframes rsvp-candle{0%,to{opacity:.75}38%{opacity:1}55%{opacity:.82}72%{opacity:.95}}.rsvp-card{background:color-mix(in srgb, var(--vb-panel,#24090d) 82%, transparent);border:1px solid color-mix(in srgb, var(--vb-muted,#b98d86) 30%, transparent);border-radius:16px;width:min(460px,100%);padding:28px 22px 30px;position:relative;box-shadow:0 24px 70px #0000008c}.rsvp-center{text-align:center}.rsvp-eyebrow{text-transform:uppercase;letter-spacing:3px;color:var(--vb-muted,#b98d86);margin:0 0 6px;font-size:12px}.rsvp-headline{margin:0 0 10px;font-size:clamp(26px,7.5vw,34px);font-weight:600;line-height:1.15}.rsvp-tease{margin:0 0 22px;font-style:italic}.rsvp-muted{color:var(--vb-muted,#b98d86);font-size:15px}.rsvp-body{font-size:17px;line-height:1.5}.rsvp-intro{margin:0 0 18px;font-style:italic}.rsvp-field{margin:0 0 14px;display:block}.rsvp-field span{letter-spacing:1px;text-transform:uppercase;color:var(--vb-muted,#b98d86);margin-bottom:6px;font-size:13px;display:block}.rsvp-field input,.rsvp-field textarea{box-sizing:border-box;border:1px solid color-mix(in srgb, var(--vb-muted,#b98d86) 45%, transparent);width:100%;color:var(--vb-text,#f3e4df);background:#00000059;border-radius:10px;padding:12px 14px;font-family:inherit;font-size:17px}.rsvp-field input:focus,.rsvp-field textarea:focus{border-color:var(--vb-accent,#a01722);outline:none}.rsvp-link{color:var(--vb-muted,#b98d86);cursor:pointer;background:0 0;border:none;margin:0 0 14px;padding:0;font-family:inherit;font-size:15px;text-decoration:underline}.rsvp-plusone{border:1px dashed color-mix(in srgb, var(--vb-muted,#b98d86) 45%, transparent);border-radius:12px;margin:0 0 14px;padding:14px 14px 2px}.rsvp-plusone-head{letter-spacing:1px;text-transform:uppercase;color:var(--vb-muted,#b98d86);justify-content:space-between;align-items:baseline;margin-bottom:10px;font-size:13px;display:flex}.rsvp-plusone-head .rsvp-link{margin:0}.rsvp-error{color:#ff9d8f;font-size:15px}.rsvp-accept{background:var(--vb-accent,#a01722);width:100%;color:var(--vb-accent-text,#fff5f0);letter-spacing:.5px;cursor:pointer;box-shadow:0 8px 30px color-mix(in srgb, var(--vb-accent,#a01722) 45%, transparent);border:none;border-radius:999px;margin-top:8px;padding:18px 20px;font-family:inherit;font-size:21px;font-weight:700}.rsvp-accept:disabled{opacity:.6}.rsvp-detail{border-top:1px solid color-mix(in srgb, var(--vb-muted,#b98d86) 25%, transparent);margin-top:14px;padding:16px 0 4px}.rsvp-detail h2{letter-spacing:2px;text-transform:uppercase;color:var(--vb-muted,#b98d86);margin:0 0 6px;font-size:13px;font-weight:600}.rsvp-detail p{margin:0 0 8px;font-size:16px;line-height:1.45}.rsvp-big{font-weight:600;font-size:20px!important}.rsvp-team{background:#00000040;border-top:none;border-radius:12px;padding:16px 14px 8px}.rsvp-foot{text-align:center;color:var(--vb-muted,#b98d86);margin:22px 0 0;font-size:13px;font-style:italic}.rsvp-respond-by{text-align:center;letter-spacing:1px;color:#e7c169;margin:-4px 0 14px;font-size:15px;font-style:italic}.rsvp-team-explainer{color:var(--vb-muted,#b98d86);font-style:italic}.rsvp-paybox{margin:4px 0 10px}.rsvp-venmo{text-align:center;color:#fff;background:#008cff;border-radius:999px;margin:10px 0;padding:14px 18px;font-size:18px;font-weight:700;text-decoration:none;display:block}.rsvp-zelle{margin:8px 0;font-size:15px}.rsvp-copy{border:1px solid color-mix(in srgb, var(--vb-muted,#b98d86) 60%, transparent);color:var(--vb-text,#f3e4df);cursor:pointer;background:0 0;border-radius:999px;margin-left:6px;padding:4px 12px;font-family:inherit;font-size:13px}.rsvp-paid{cursor:pointer;align-items:center;gap:10px;margin:12px 0 8px;font-size:17px;display:flex}.rsvp-paid input{accent-color:#e7c169;width:22px;height:22px}.rsvp-toll-message{margin:0 0 14px;font-style:italic}.rsvp-preview-banner{color:#e7c169;text-align:center;border:1px dashed #e7c169;border-radius:8px;margin:0 0 14px;padding:8px 12px;font-size:14px}.host-preview-toll{margin:0 8px 12px 0}.host-pay{border-radius:999px;margin-left:6px;padding:2px 8px;font-size:12px}.host-pay.unpaid{color:#f0c9c9;background:#4a2b2b}.host-pay.sent{color:#f0e3c9;background:#4a432b}.host-pay.received{color:#c9f0cd;background:#2b4a2f}.host-pay.lapsed{color:#aaa;background:#333}.host-pay.late{color:#dcc9f0;background:#3b2b4a}.host-rsvp-money{color:#c7cbe0;margin-bottom:12px;font-size:14px}.host-rsvp-guest-actions .host-pay-btn{padding:4px 8px;font-size:12px}.host-rsvp-summary{margin-bottom:12px;font-size:18px}.host-rsvp-note{color:#c9f0cd;background:#2b4a2f;border-radius:8px;margin:0 0 10px;padding:8px 12px}.host-rsvp-share{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.host-rsvp-url{word-break:break-all;background:#1f1f2e;border-radius:8px;flex:100%;padding:8px 10px;font-size:13px}.host-rsvp-card{background:#1f1f2e;border-radius:12px;margin-bottom:14px;padding:14px}.host-rsvp-card h3{margin:0 0 10px;font-size:16px}.host-rsvp-toggle{cursor:pointer;-webkit-user-select:none;user-select:none}.host-rsvp-config label{margin-bottom:10px;display:block}.host-rsvp-config label span{color:#9aa0b4;margin-bottom:4px;font-size:12px;display:block}.host-rsvp-config input,.host-rsvp-config textarea,.host-rsvp-brief{box-sizing:border-box;color:#fff;background:#14141f;border:1px solid #444;border-radius:8px;width:100%;padding:8px 10px;font-family:inherit;font-size:15px}.host-rsvp-team-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.host-rsvp-team-name{color:#fff;background:0 0;border:1px solid #0000;border-radius:8px;flex:1;min-width:0;padding:6px 10px;font-size:17px;font-weight:700}.host-rsvp-team-name:focus{background:#14141f;border-color:#555;outline:none}.host-rsvp-count{color:#9aa0b4;font-size:14px}.host-rsvp-brief{margin-bottom:10px}.host-rsvp-guests{margin:0;padding:0;list-style:none}.host-rsvp-guest{border-top:1px solid #2c2c3e;padding:10px 0}.host-rsvp-guest-main{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.host-rsvp-code{letter-spacing:2px;color:#ffd479;margin-left:auto;font-family:monospace;font-size:16px}.host-rsvp-guest-sub{color:#9aa0b4;flex-wrap:wrap;gap:14px;margin:4px 0;font-size:14px;display:flex}.host-rsvp-guest-actions{align-items:center;gap:8px;display:flex}.host-rsvp-guest-actions select{color:#fff;background:#14141f;border:1px solid #444;border-radius:8px;padding:6px 8px;font-size:14px}.host-rsvp-badge{color:#cdd;background:#2c2c3e;border-radius:999px;padding:2px 8px;font-size:12px}.host-rsvp-badge.wait{color:#ffd479;background:#4a3a1f}.host-rsvp-badge.team{color:#9fd0ff;background:#23364a}.host-rsvp-feed{margin:0;padding:0;list-style:none}.host-rsvp-feed li{border-top:1px solid #2c2c3e;flex-wrap:wrap;align-items:baseline;gap:8px;padding:8px 0;font-size:15px;display:flex}.host-rsvp-when{color:#9aa0b4;margin-left:auto;font-size:13px}.host-rsvp-diet{color:#9aa0b4;flex:100%;font-size:14px}.host-rsvp-hint{color:#9aa0b4;margin:8px 0 0;font-size:13px}.signin-box{flex-direction:column;gap:10px;max-width:340px;display:flex}.signin-box input{color:#fff;background:#1f1f2e;border:1px solid #444;border-radius:10px;padding:12px 14px;font-size:17px}.signin-box button{color:#fff;cursor:pointer;background:#ff4f81;border:none;border-radius:999px;padding:12px 20px;font-size:16px;font-weight:700}.signin-box button:disabled{opacity:.5}.signin-box .signin-again{color:#9aa0b4;background:0 0;padding:4px;font-weight:400;text-decoration:underline}.signin-error{color:#ff8f8f}.signin-note{color:#9aa0b4;margin:0;font-size:13px}.settings .signin-box input{background:#1f1f2e}.host-account-line{color:#9aa0b4}.host-signout{color:#9aa0b4;cursor:pointer;background:0 0;border:none;font-size:14px;text-decoration:underline}.account-page{color:#f2f2f7;background:#14141f;flex-direction:column;align-items:center;min-height:100svh;padding:32px 16px 64px;font-family:system-ui,sans-serif;display:flex}.account-card{background:#1f1f2e;border-radius:16px;flex-direction:column;gap:12px;width:min(420px,100%);padding:28px 22px;display:flex}.account-card h1{margin:0}.account-wide{align-items:stretch;max-width:720px;margin:0 auto}.account-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.account-header h1{margin:0}.account-who{color:#9aa0b4;font-size:14px}.account-btn{text-align:center;color:#fff;background:#ff4f81;border-radius:999px;padding:12px 20px;font-weight:700;text-decoration:none;display:inline-block}.account-link{color:#9aa0b4;cursor:pointer;background:0 0;border:none;padding:2px;font-size:14px;text-decoration:underline}.account-error{color:#ff8f8f}.account-new{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.account-new input{color:#fff;background:#1f1f2e;border:1px solid #444;border-radius:10px;flex:1;min-width:200px;padding:10px 12px;font-size:16px}.account-new button,.account-event-actions button{color:#fff;cursor:pointer;background:#4a4a6a;border:none;border-radius:8px;padding:10px 16px;font-size:15px}.account-event{background:#1f1f2e;border-radius:12px;margin-bottom:14px;padding:14px 16px}.account-event.archived{opacity:.6}.account-event-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.account-event-name{color:#fff;background:0 0;border:1px solid #0000;border-radius:8px;flex:1;min-width:160px;padding:6px 10px;font-size:18px;font-weight:700}.account-event-name:focus{background:#14141f;border-color:#555;outline:none}.account-badge{color:#9fd0ff;background:#23364a;border-radius:999px;padding:2px 8px;font-size:12px}.account-storage{color:#9aa0b4;margin-left:auto;font-size:14px}.account-event-links{flex-wrap:wrap;gap:14px;margin:8px 0;display:flex}.account-event-links a{color:#9fd0ff;font-size:14px}.account-event-row{flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0;font-size:15px;display:flex}.account-toggle{align-items:center;gap:8px;display:flex}.account-cohosts{color:#cdd;flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0;font-size:14px;display:flex}.account-cohost{background:#2c2c3e;border-radius:999px;padding:4px 10px}.account-invite{gap:6px;display:flex}.account-invite input{color:#fff;background:#14141f;border:1px solid #444;border-radius:8px;padding:6px 10px;font-size:14px}.account-invite button{color:#fff;cursor:pointer;background:#4a4a6a;border:none;border-radius:8px;padding:6px 12px;font-size:14px}.account-event-actions{gap:8px;margin-top:10px;display:flex}.account-danger{background:#5a2430!important}.account-note{color:#9aa0b4;font-size:13px}.rsvp-invite{flex-direction:column;align-items:center}.rsvp-artful{background-image:var(--rsvp-bg-portrait);background-position:top;background-repeat:no-repeat;background-size:cover;background-color:var(--vb-bg,#140507)}@media (orientation:landscape){.rsvp-artful{background-image:var(--rsvp-bg-wide,var(--rsvp-bg-portrait))}}@media (hover:hover) and (pointer:fine){.rsvp-artful{background-attachment:fixed}}.rsvp-stack{flex-direction:column;align-items:center;gap:18px;width:min(560px,100%);padding-top:8px;display:flex}.rsvp-title-img{filter:drop-shadow(0 6px 24px #0009);width:min(420px,88%);height:auto;margin-top:10px}.rsvp-hero{border:2px solid #d9a441;border-radius:14px;width:min(520px,94%);line-height:0;position:relative;overflow:hidden;box-shadow:0 14px 44px #0000008c}.rsvp-hero-video{object-fit:cover;background:#000;width:100%;max-height:62svh;display:block}.rsvp-gold-date{color:#e7c169;letter-spacing:1px;text-align:center;text-shadow:0 2px 10px #000000b3;margin:0;font-size:clamp(19px,5.2vw,24px);font-weight:600}.rsvp-panel{-webkit-backdrop-filter:blur(6px);background:#0c0406b8;border:1px solid #ffffff17;border-radius:18px}.rsvp-sound{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000009e;border:none;border-radius:999px;padding:10px 16px;font-family:inherit;font-size:15px;position:absolute;bottom:12px;right:12px}.rsvp-date .rsvp-arrival{white-space:nowrap}.rsvp-hosts{justify-content:center;gap:18px;margin:18px 0;display:flex}.rsvp-host{text-align:center;margin:0}.rsvp-host img,.rsvp-host-initial{object-fit:cover;border:2px solid color-mix(in srgb, var(--vb-accent,#a01722) 70%, transparent);border-radius:50%;width:84px;height:84px;box-shadow:0 6px 24px #00000080}.rsvp-host-initial{background:var(--vb-panel,#24090d);color:var(--vb-muted,#b98d86);justify-content:center;align-items:center;font-size:34px;display:inline-flex}.rsvp-host figcaption{letter-spacing:1px;margin-top:8px;font-size:15px}.rsvp-invite-headline{text-align:center;margin:6px 0 8px;font-size:clamp(24px,6.5vw,30px);font-weight:600}.rsvp-invite-intro{text-align:center;margin:0 0 8px}.rsvp-engraved{outline-offset:4px;text-align:center;background:linear-gradient(#e7c1690f,#00000026);border:3px double #b8913f;border-radius:4px;outline:1px solid #e7c16940;margin:20px 0 6px;padding:22px 18px 8px}.rsvp-engraved-section{padding:0 0 16px}.rsvp-engraved-section+.rsvp-engraved-section:before{content:"◆";color:#b8913f;letter-spacing:0;margin:0 auto 14px;font-size:9px;display:block}.rsvp-engraved-section h2{letter-spacing:4px;text-transform:uppercase;color:#e7c169;margin:0 0 6px;font-size:13px;font-weight:600}.rsvp-engraved-section p{margin:0;font-size:16px;line-height:1.55}.rsvp-on-art{text-shadow:0 1px 3px #000000f2,0 2px 14px #000000d9;padding:0 6px}.rsvp-on-art .rsvp-invite-headline,.rsvp-details-panel .rsvp-engraved{margin-top:0}.rsvp-engraved-section.rsvp-details-prize h2{letter-spacing:5px;text-shadow:0 0 18px #e7c16959;margin-bottom:8px;font-size:clamp(22px,6.4vw,28px)}.rsvp-engraved-section.rsvp-details-prize p{font-size:17px}.rsvp-respond{border-top:1px solid #e7c1694d;margin-top:22px;padding-top:18px}.rsvp-respond-heading{text-align:center;color:#e7c169;margin:0 0 16px;font-size:clamp(21px,5.6vw,25px);font-weight:600}.rsvp-late{margin-top:22px}.rsvp-accept-line{text-align:center;letter-spacing:.5px;color:var(--vb-accent-text,#fff5f0);margin:4px 0 18px;font-size:19px;font-weight:700}.rsvp-after{text-align:center;margin:20px 0 0;font-size:16px;font-style:italic}.host-invite-block{border-bottom:1px solid #2c2c3e;margin-bottom:12px;padding-bottom:12px}.host-invite-label{color:#9aa0b4;margin-bottom:6px;font-size:13px;display:block}.host-invite-current{align-items:center;gap:10px;margin:6px 0;display:flex}.host-invite-current a{color:#9fd0ff}.host-invite-thumb{object-fit:cover;border-radius:6px;width:72px;height:48px}.host-invite-preview-thumb{object-fit:contain;background:#000;border-radius:6px;width:160px;height:84px}.host-crest-thumb{object-fit:contain;flex:none;width:40px;height:40px}.host-crest-empty{border:1px dashed #ffffff40;border-radius:6px;display:inline-block}.host-invite-crests{margin:0;padding:0;list-style:none}.host-invite-crest{flex-wrap:wrap;align-items:center;gap:8px 10px;padding:6px 0;display:flex}.host-invite-crest-name{min-width:120px}.host-invite-hint{opacity:.75;margin:8px 0 4px;font-size:.85em;display:block}.host-invite-progress{color:#ffd479;margin:6px 0 0}.host-invite-progress progress{vertical-align:middle;accent-color:#ffd479;width:140px;margin-right:6px}.host-invite-error{color:#ff8a80;margin:6px 0 0;font-weight:600}.host-invite-hosts{margin:0 0 10px;padding:0;list-style:none}.host-invite-host{align-items:center;gap:10px;padding:6px 0;display:flex}.host-invite-host input[type=text]{color:#fff;background:#14141f;border:1px solid #444;border-radius:8px;flex:1;min-width:100px;padding:8px 10px;font-size:15px}.host-invite-avatar{object-fit:cover;border-radius:50%;flex:none;width:44px;height:44px}.host-invite-avatar-empty{color:#9aa0b4;background:#2c2c3e;justify-content:center;align-items:center;font-size:20px;display:inline-flex}.host-invite-photo-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#4a4a6a;border-radius:8px;padding:8px 12px;font-size:14px}.host-invite-photo-btn input{display:none}.signin-sent{margin:0;font-size:18px;font-weight:600}.signin-box .signin-code{letter-spacing:10px;text-align:center;padding:14px;font-family:ui-monospace,monospace;font-size:30px}.signin-box .signin-resend{color:#f2f2f7;background:0 0;border:1px solid #555;font-weight:600}.signin-box a.signin-again{color:#9aa0b4;text-align:center;font-size:14px}.rsvp-intro{z-index:60;cursor:pointer;background:#000;justify-content:center;align-items:center;transition:opacity .7s .7s;display:flex;position:fixed;inset:0}.rsvp-intro-fading{opacity:0;pointer-events:none}.rsvp-intro-tap{color:#e7c169;letter-spacing:4px;-webkit-user-select:none;user-select:none;margin:0;font-family:Georgia,serif;font-size:clamp(20px,5.5vw,28px);animation:2.6s ease-in-out infinite rsvp-tap-pulse}@keyframes rsvp-tap-pulse{0%,to{opacity:.25}50%{opacity:.85}}.rsvp-intro-video{object-fit:contain;background:#000;width:100%;height:100%;transition:opacity .6s}.rsvp-intro-video.out{opacity:0}.rsvp-intro-controls{padding:28px max(16px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));opacity:0;pointer-events:none;cursor:default;background:linear-gradient(#0000,#000000bf);align-items:center;gap:10px;transition:opacity .4s;display:flex;position:absolute;bottom:0;left:0;right:0}.rsvp-intro-controls.shown{opacity:1;pointer-events:auto}.rsvp-intro-play{color:#fff;cursor:pointer;background:#ffffff24;border:none;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;padding:0;display:grid}.rsvp-intro-time{color:#fffc;font-variant-numeric:tabular-nums;text-align:center;flex:none;min-width:34px;font-size:12px}.rsvp-intro-scrub{accent-color:#e7c169;cursor:pointer;flex:1;min-width:0;height:32px;margin:0}.rsvp-watch-again{color:#e7c169;opacity:.8;letter-spacing:1px;cursor:pointer;background:0 0;border:none;align-self:center;padding:4px 8px;font-family:inherit;font-size:14px}.rsvp-decline-link{color:var(--vb-muted,#b98d86);cursor:pointer;background:0 0;border:none;margin:14px auto 0;font-family:inherit;font-size:15px;text-decoration:underline;display:block}.rsvp-confirm-decline{color:#f3e4df;box-shadow:none;background:#3a2a2d}.rsvp-decline-message{text-align:center;font-style:italic}.host-rsvp-badge.declined{color:#e2a1a1;background:#3a2328}.host-rsvp-silent{color:#cdd;margin:0 0 8px;padding:0;list-style:none}.host-rsvp-silent li{border-top:1px solid #2c2c3e;padding:4px 0}.host-rsvp-invited{margin-top:10px;display:block}.host-rsvp-invited span{color:#9aa0b4;margin-bottom:4px;font-size:12px;display:block}.host-rsvp-invited textarea{box-sizing:border-box;color:#fff;background:#14141f;border:1px solid #444;border-radius:8px;width:100%;padding:8px 10px;font-family:inherit;font-size:14px}.host-rsvp-visits,.host-rsvp-capleft{color:#9aa0b4;font-size:14px}.turret{background:radial-gradient(120% 70% at 50% 110%, var(--vb-vignette,#3a0a0f) 0%, transparent 60%), var(--vb-bg,#140507);min-height:100svh;color:var(--vb-text,#f3e4df);font-family:Georgia,serif;position:relative}.turret-pad{position:fixed}.turret-room{text-align:center;max-width:560px;margin:0 auto;padding:28px 16px 48px}.turret-title{color:#e7c169;letter-spacing:2px;margin:0 0 4px;font-size:clamp(26px,7vw,34px)}.turret-sub{color:var(--vb-muted,#b98d86);margin:0 0 20px}.turret-grid,.game-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:12px;margin:0 0 18px;display:grid}.turret-face,.game-face{background:color-mix(in srgb, var(--vb-panel,#24090d) 80%, transparent);color:inherit;cursor:pointer;border:2px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;font-family:inherit;display:flex}.turret-face img,.game-face img{object-fit:cover;border-radius:50%;width:72px;height:72px}.turret-initial,.game-face span{width:72px;height:72px;color:var(--vb-muted,#b98d86);background:#0006;border-radius:50%;justify-content:center;align-items:center;font-size:30px;display:inline-flex}.turret-name,.game-face em{font-size:13px;font-style:normal;line-height:1.2}.turret-face.shielded,.game-face.shielded{opacity:.35;cursor:not-allowed}.turret-face.picked,.game-face.picked{border-color:#a01722;box-shadow:0 0 18px #a0172299}.turret-confirm{background:var(--vb-accent,#a01722);width:100%;max-width:320px;color:var(--vb-accent-text,#fff5f0);cursor:pointer;border:none;border-radius:999px;padding:14px 20px;font-family:inherit;font-size:18px;font-weight:700}.turret-confirm:disabled{opacity:.4}.turret-state{color:var(--vb-muted,#b98d86);margin:14px 0 0}.turret-sealed{color:#e7c169;letter-spacing:1px;font-size:20px}.turret-disagree{color:#ff9d8f}.turret-note{color:#e7c169;margin:10px 0 0}.breakfast{background:radial-gradient(120% 70% at 50% 110%, var(--vb-vignette,#3a0a0f) 0%, transparent 60%), var(--vb-bg,#140507);min-height:100svh;color:var(--vb-text,#f3e4df);text-align:center;justify-content:center;align-items:center;font-family:Georgia,serif;display:flex;overflow:hidden}.breakfast-login{flex-direction:column;gap:14px}.breakfast-login input{letter-spacing:6px;text-align:center;color:#fff;background:#0006;border:1px solid #444;border-radius:10px;width:200px;padding:12px;font-size:28px}.breakfast-login button{background:var(--vb-accent,#a01722);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:12px 40px;font-size:18px;font-weight:700}.breakfast-idle h1{color:#e7c169;letter-spacing:3px;font-size:clamp(34px,6vw,72px);animation:5s ease-in-out infinite rsvp-tap-pulse}.breakfast-black{background:#000;position:fixed;inset:0}.breakfast-line{color:#e7c169;letter-spacing:2px;padding:0 6vw;font-size:clamp(28px,5vw,56px);animation:1.6s both breakfast-fade-in}.breakfast-end{color:var(--vb-text,#f3e4df)}@keyframes breakfast-fade-in{0%{opacity:0}to{opacity:1}}.breakfast-victim img,.breakfast-initial{object-fit:cover;border:4px solid #a01722;border-radius:50%;width:min(38vh,340px);height:min(38vh,340px);animation:.9s cubic-bezier(.2,1.4,.4,1) both breakfast-sting;box-shadow:0 0 80px #a017228c}.breakfast-initial{color:var(--vb-muted,#b98d86);background:#00000080;justify-content:center;align-items:center;font-size:120px;display:inline-flex}@keyframes breakfast-sting{0%{opacity:0;filter:brightness(3)saturate(0);transform:scale(.4)}55%{opacity:1;transform:scale(1.06)}to{filter:none;transform:scale(1)}}.breakfast-victim p{letter-spacing:2px;margin:18px 0 0;font-size:clamp(26px,4.5vw,48px)}.breakfast-banished img{border-color:#9aa0b4;box-shadow:0 0 60px #9aa0b466}.breakfast-banish-label{color:var(--vb-muted,#b98d86);font-size:clamp(16px,2.5vw,26px)!important}.breakfast-role-name{margin:0;font-size:clamp(26px,4vw,44px)}.breakfast-role-was{color:var(--vb-muted,#b98d86);margin:8px 0;font-size:clamp(16px,2.5vw,26px)}.breakfast-role-card{letter-spacing:8px;margin:0;font-size:clamp(48px,9vw,110px);animation:.9s cubic-bezier(.2,1.4,.4,1) both breakfast-sting}.role-traitor .breakfast-role-card{color:#ff2e3f;text-shadow:0 0 40px #a01722e6}.role-faithful .breakfast-role-card{color:#9fd0ff;text-shadow:0 0 40px #78aaffb3}.game-card{background:#14141f;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:8px 6px;font-size:13px;display:flex}.game-card.status-banished{opacity:.6}.game-card.status-murdered{opacity:.45}.game-photo{cursor:pointer;line-height:0}.game-photo img,.game-photo-empty{object-fit:cover;border-radius:50%;width:64px;height:64px}.game-photo-empty{color:#9aa0b4;background:#2c2c3e;justify-content:center;align-items:center;font-size:24px;display:inline-flex}.game-photo-input,.host-player-photo-input{display:none}.host-player-photo{cursor:pointer;margin-right:8px;line-height:0}.host-player-photo img,.host-player-photo-empty{object-fit:cover;border-radius:50%;width:36px;height:36px}.host-player-photo-empty{color:#9aa0b4;background:#2c2c3e;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.game-name{text-align:center;font-weight:600}.game-badge{border-radius:999px;padding:1px 8px;font-size:11px}.game-badge.alive{color:#9fe0a8;background:#1e3a24}.game-badge.banished{color:#e0cf9f;background:#3a3324}.game-badge.murdered{color:#e09fab;background:#3a1e24}.game-card-controls{gap:8px;display:flex}.game-mini{color:#cdd;align-items:center;gap:4px;font-size:12px;display:inline-flex}.game-mini-traitor{color:#ff8f9d}.game-mini select{color:#fff;background:#14141f;border:1px solid #444;border-radius:6px;padding:2px 6px}.game-picks{color:#cdd;margin:0 0 10px;padding:0;font-size:14px;list-style:none}.game-picks li{padding:3px 0}.game-locked{color:#ffd479}.game-reveal-btn{font-weight:700;background:#7a1420!important}.game-face{border:2px solid #0000}.game-tally-face{padding-bottom:4px;position:relative}.game-tally-face.leader{border-color:#e7c169;box-shadow:0 0 16px #e7c1698c}.game-tally-face.tie{border-color:#9aa0b4;box-shadow:0 0 12px #9aa0b480}.game-face-tap{cursor:pointer;color:inherit;background:0 0;border:none;line-height:0;position:relative}.game-face-tap img,.game-face-tap span{object-fit:cover;border-radius:50%;width:64px;height:64px}.game-face-tap span{color:#9aa0b4;background:#0006;justify-content:center;align-items:center;font-size:26px;display:inline-flex}.game-count{color:#fff;background:#a01722;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;font-size:13px;display:inline-flex;position:absolute;top:-4px;right:-6px}.game-ghost-badge{font-size:16px;position:absolute;bottom:-2px;right:-4px}.game-lead-badge{color:#241704;background:#e7c169;border-radius:6px;padding:1px 5px;font-size:10px;position:absolute;top:-4px;left:-6px}.game-ghost-active{color:#ffd479;background:#3a3324!important}.game-tally-controls{gap:6px;display:flex}.game-log{color:#cdd;margin:0 0 12px;padding:0;font-size:14px;list-style:none}.game-log li{border-top:1px solid #2c2c3e;flex-wrap:wrap;align-items:baseline;gap:8px;padding:6px 0;display:flex}.game-override{margin-top:10px}.turret-idle{justify-content:center;align-items:center;min-height:100svh;display:flex}.turret-idle-name{color:#e7c169;letter-spacing:3px;opacity:.85;text-align:center;padding:0 6vw;font-size:clamp(28px,6vw,54px);animation:6s ease-in-out infinite rsvp-tap-pulse}.turret-corner{z-index:20;background:0 0;border:none;width:90px;height:90px;position:fixed;top:0;left:0}.turret-pinpad input{letter-spacing:10px;text-align:center;color:#fff;background:#00000073;border:1px solid #555;border-radius:12px;width:220px;margin-bottom:14px;padding:12px;font-size:30px}.turret-done{color:#e7c169;letter-spacing:4px;font-size:clamp(30px,7vw,56px);animation:1.2s both breakfast-fade-in}.turret-hold{-webkit-user-select:none;user-select:none;touch-action:none;position:relative;overflow:hidden}.turret-hold:before{content:"";width:var(--hold,0%);background:#00000059;transition:width 50ms linear;position:absolute;inset:0}.turret-hold.holding{box-shadow:0 0 24px #a01722cc}.breakfast-intro-video{object-fit:contain;background:#000;width:100%;height:100%;position:fixed;inset:0}.breakfast-table{background:radial-gradient(90% 70% at 50% 100%,#241009 0%,#0b0507 70%),#0b0507;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.env-envelope{aspect-ratio:3/2;width:min(58vw,62vh,560px);animation:2s both env-arrive;position:relative}@keyframes env-arrive{0%{opacity:0;transform:translateY(30px)scale(.94)}to{opacity:1;transform:none}}.env-body{background:linear-gradient(160deg,#d9c9a3,#bfae85);border-radius:8px;position:absolute;inset:0;box-shadow:0 22px 70px #000000b3}.env-flap{clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;z-index:2;background:linear-gradient(#ccbb93,#b3a276);height:55%;transition:transform 1.2s;position:absolute;top:0;left:0;right:0}.env-unfold .env-flap{transform:rotateX(160deg)}.env-seal{aspect-ratio:1;z-index:3;width:20%;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)}.env-seal-half{background:radial-gradient(circle at 35% 30%,#b8323f,#6d0f1a 70%);border-radius:50%;transition:transform 1s,opacity 1s;position:absolute;inset:0;box-shadow:0 4px 14px #0000008c}.env-seal-half.left{clip-path:polygon(0 0,55% 0,45% 100%,0 100%)}.env-seal-half.right{clip-path:polygon(55% 0,100% 0,100% 100%,45% 100%)}.env-crack .env-seal-half.left{opacity:0;transform:translate(-46%,18%)rotate(-24deg)}.env-crack .env-seal-half.right{opacity:0;transform:translate(46%,22%)rotate(21deg)}.env-crack .env-envelope{animation:.35s env-shake}@keyframes env-shake{0%,to{transform:none}30%{transform:translate(-6px)rotate(-.6deg)}60%{transform:translate(5px)rotate(.5deg)}}.env-letter-peek{z-index:1;background:#efe6cf;border-radius:4px 4px 0 0;height:0;transition:height 1.3s,transform 1.3s;position:absolute;bottom:8%;left:6%;right:6%}.env-unfold .env-letter-peek{height:120%;transform:translateY(-18%)}.env-paper{color:#2a2118;text-align:center;background:radial-gradient(120% 100% at 50% 0,#f2e9d4 0%,#e2d5b6 80%),#e2d5b6;border-radius:6px;width:min(88vw,120vh,760px);max-height:88vh;padding:clamp(20px,4vw,44px);font-family:Georgia,serif;animation:1.1s both breakfast-fade-in;overflow:hidden;box-shadow:0 26px 90px #000000bf}.env-line{letter-spacing:1px;color:#4a1016;margin:0 0 18px;font-size:clamp(22px,3.6vw,40px);animation:1.4s both breakfast-fade-in}.env-victims{flex-wrap:wrap;justify-content:center;gap:clamp(14px,3vw,30px);display:flex}.env-victim{margin:0;animation:1.4s both env-victim-in}@keyframes env-victim-in{0%{opacity:0;filter:sepia();transform:translateY(14px)}to{opacity:1;filter:sepia(.35);transform:none}}.env-victim img,.env-victim-initial{object-fit:cover;filter:sepia(.35);border:3px solid #6d0f1a;border-radius:4px;width:clamp(110px,18vw,200px);height:clamp(110px,18vw,200px)}.env-victim-initial{color:#6d0f1a;background:#cbbc9a;justify-content:center;align-items:center;font-size:64px;display:inline-flex}.env-victim figcaption{color:#2a2118;margin-top:8px;font-size:clamp(16px,2.6vw,26px);font-style:italic}.env-closing{color:#4a1016;letter-spacing:1px;margin:22px 0 0;font-size:clamp(20px,3.2vw,34px);animation:1.4s both breakfast-fade-in}.rsvp-letter{box-sizing:border-box;text-align:center;width:min(520px,100%);position:relative}.letter-parchment{--vb-text:#2a1a0e;--vb-muted:#6b4a2e;color:var(--vb-text);filter:drop-shadow(0 22px 40px #0009);padding:44px 26px 38px}.letter-parchment:before{content:"";z-index:0;border-style:solid;border-width:40px 44px;border-image:var(--letter-parchment) 14% 20% fill / 40px 44px stretch;pointer-events:none;background:0 0;position:absolute;inset:0}.letter-parchment>*{z-index:1;position:relative}.letter-head{margin:4px 0 6px}.letter-name{color:#e7c169;text-shadow:0 2px 14px #00000073;overflow-wrap:anywhere;margin:0;font-family:Pinyon Script,Snell Roundhand,Apple Chancery,cursive;font-size:clamp(58px,17vw,88px);line-height:1.05}.letter-parchment .letter-name{color:#4a1508;text-shadow:none}.letter-line{letter-spacing:.5px;margin:2px 0 0;font-size:19px;font-style:italic}.letter-team{margin:28px 0 8px}.letter-crest{filter:drop-shadow(0 8px 18px #00000073);width:min(230px,62%);height:auto;margin:0 auto 10px;display:block}.letter-team-name{letter-spacing:3px;text-transform:uppercase;margin:0 0 6px;font-size:24px}.letter-duty{max-width:34em;margin:0 auto 8px;font-size:17px;line-height:1.5}.letter-explainer{max-width:34em;color:var(--vb-muted,#b98d86);margin:10px auto 0;font-size:14px;font-style:italic;line-height:1.55}.letter-oath{margin:26px 0 0}.letter-oath-title{letter-spacing:5px;text-transform:uppercase;color:var(--vb-muted,#b98d86);align-items:center;gap:12px;margin:0 0 4px;font-size:15px;font-weight:400;display:flex}.letter-oath-title:before,.letter-oath-title:after{content:"";border-top:1px solid color-mix(in srgb, currentColor 45%, transparent);flex:1}.letter-oath-list{text-align:left;margin:0;padding:0;list-style:none}.letter-oath-list>li{border-bottom:1px dashed color-mix(in srgb, var(--vb-muted,#b98d86) 35%, transparent);grid-template-columns:28px 1fr;gap:12px;padding:16px 0;display:grid}.letter-oath-list h3{letter-spacing:2px;text-transform:uppercase;color:var(--vb-muted,#b98d86);margin:1px 0 6px;font-size:13px}.letter-oath-list p{margin:0 0 6px;line-height:1.5}.letter-big{font-size:19px;font-weight:700}.letter-muted{color:var(--vb-muted,#b98d86);font-size:15px}.letter-tick{color:#e7c169;background:#e7c1691a;border:1.5px solid #e7c169;border-radius:50%;place-items:center;width:26px;height:26px;display:grid}.letter-parchment .letter-tick{color:#9a6a12;background:#b5832a1f;border-color:#b5832a}.letter-calendar{color:inherit;border:1.5px solid #c9a14a;border-radius:999px;margin-top:8px;padding:8px 16px;font-size:15px;text-decoration:none;display:inline-block}.letter-pay .rsvp-paybox{margin:0}.letter-parchment .rsvp-copy{border-color:#8a6a44}.rsvp-letter .rsvp-paid input{appearance:none;cursor:pointer;background:0 0;border:2px solid #c9a14a;border-radius:6px;flex:none;place-content:center;width:26px;height:26px;margin:0;display:grid}.rsvp-letter .rsvp-paid input:before{content:"";border-bottom:3px solid #c9a14a;border-left:3px solid #c9a14a;width:12px;height:6px;margin-top:-3px;transition:transform .15s;transform:rotate(-45deg)scale(0)}.rsvp-letter .rsvp-paid input:checked{background:#c9a14a29}.rsvp-letter .rsvp-paid input:checked:before{transform:rotate(-45deg)scale(1)}.letter-countdown{color:#e7c169;margin:26px 0 6px;font-size:21px;font-style:italic}.letter-parchment .letter-countdown{color:#7a1c0c}.letter-preview-banner{background:#0000008c;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;display:flex}.letter-replay{color:#e7c169;cursor:pointer;background:0 0;border:1px solid #e7c169;border-radius:999px;padding:4px 12px;font-family:inherit;font-size:13px}.letter-curtain{z-index:70;pointer-events:none;background:#000c;position:fixed;inset:0}.letter-curtain-dim{animation:.45s both letter-dim}.letter-curtain-stamp{animation:.22s .4s letter-shake}.letter-curtain-unroll{animation:1.2s .3s both letter-undim}.letter-seal-drop{width:min(170px,42vw);position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.letter-curtain-stamp .letter-seal-drop{animation:.62s cubic-bezier(.55,0,.75,.2) both letter-stamp}.letter-curtain-unroll .letter-seal-drop{animation:.9s both letter-seal-lift}.letter-seal-drop.has-img{width:min(340px,84vw)}.letter-seal-img{filter:drop-shadow(0 14px 22px #000000b3);width:100%;height:auto;display:block}.letter-seal-svg{filter:drop-shadow(0 12px 20px #000000b3);width:100%;height:auto;display:block}.letter-waiting{visibility:hidden}.letter-unrolling{animation:2s cubic-bezier(.25,.7,.3,1) both letter-unroll}@keyframes letter-dim{0%{background:0 0}to{background:#000c}}@keyframes letter-undim{0%{background:#000c}to{background:0 0}}@keyframes letter-stamp{0%{opacity:0;transform:translate(-50%,-50%)scale(2.7)}64%{opacity:1;transform:translate(-50%,-50%)scale(1)}78%{transform:translate(-50%,-50%)scale(.92,.88)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes letter-seal-lift{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-160%)scale(.55)}}@keyframes letter-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px,2px)}50%{transform:translate(3px,-2px)}75%{transform:translate(-2px,1px)}}@keyframes letter-unroll{0%{clip-path:inset(0 0 100%);transform-origin:top;transform:scaleY(.97)}to{clip-path:inset(0);transform-origin:top;transform:scaleY(1)}}.rsvp-scorched{color:#ead6c4;background:radial-gradient(90% 45% at 50% -5%,#82220a66,#0000 62%),radial-gradient(110% 55% at 50% 108%,#a02c0c73,#0000 60%),#070302}.rsvp-scorched.rsvp-artful{background-image:radial-gradient(110% 55% at 50% 108%, #a02c0c73, transparent 60%), linear-gradient(#060201db, #060201ed), var(--rsvp-bg-portrait)}@media (orientation:landscape){.rsvp-scorched.rsvp-artful{background-image:radial-gradient(110% 55% at 50% 108%, #a02c0c73, transparent 60%), linear-gradient(#060201db, #060201ed), var(--rsvp-bg-wide,var(--rsvp-bg-portrait))}}.rsvp-scorched:before{background:radial-gradient(50% 60% at 50% 100%,#ff461433,#0000 70%);animation-duration:2.6s}.seal-page{text-align:center;--vb-text:#ead6c4;--vb-muted:#a8836f;width:min(500px,100%)}.seal-hero{width:min(480px,100%);height:auto;margin:0 auto 4px;display:block;-webkit-mask-image:radial-gradient(70% 68%,#000 52%,#0000 100%);mask-image:radial-gradient(70% 68%,#000 52%,#0000 100%)}.seal-eyebrow{letter-spacing:3px;text-transform:uppercase;color:#a8836f;margin:6px 0 2px;font-size:13px}.seal-title{letter-spacing:5px;text-transform:uppercase;color:#d4532f;text-shadow:0 0 22px #ff5a1e66;margin:0 0 12px;font-size:clamp(28px,8vw,38px);font-weight:400}.seal-lead{color:#c9ab97;margin:0 0 16px;font-style:italic}.seal-ledger{text-align:left;background:repeating-linear-gradient(#0000 0 31px,#d4532f29 31px 32px),linear-gradient(#140906,#0d0504);border:1px solid #d4532f59;border-left:4px double #d4532fa6;border-radius:4px;padding:12px 18px 14px 22px;box-shadow:inset 0 0 40px #000000b3,0 18px 50px #0009}.seal-ledger-head{letter-spacing:2.5px;text-transform:uppercase;color:#a8836f;border-bottom:1px solid #d4532f73;justify-content:space-between;gap:12px;padding-bottom:6px;font-size:11px;display:flex}.seal-ledger-entry{color:#f0dccb;margin:8px 0 6px;font-size:18px;font-style:italic;line-height:32px}.seal-ledger-sum{letter-spacing:2px;text-transform:uppercase;color:#a8836f;border-top:3px double #d4532f80;justify-content:space-between;align-items:baseline;padding-top:8px;font-size:13px;display:flex}.seal-ledger-amount{letter-spacing:1px;color:#d4532f;text-shadow:0 0 14px #ff5a1e59;font-size:30px}.seal-settle{text-align:left;margin-top:20px}.rsvp-scorched .rsvp-field input{background:#0000008c;border-color:#d4532f66}.rsvp-scorched .rsvp-field input:focus{border-color:#d4532f}.rsvp-scorched .rsvp-paid input{accent-color:#d4532f}.rsvp-scorched .rsvp-accept{background:linear-gradient(#9b2412,#5c0f07);border-color:#ff784666;box-shadow:0 0 24px #ff461440}@media (prefers-reduced-motion:reduce){.letter-unrolling,.letter-curtain-stamp .letter-seal-drop{animation:none}}.letter-after{max-width:30em;color:var(--vb-muted,#b98d86);margin:14px auto 0;font-size:16px;font-style:italic;line-height:1.5}.seal-decline-message{color:#f0dccb;max-width:32em;margin:0 auto 10px;font-size:18px;font-style:italic;line-height:1.6}.seal-decline .rsvp-accept{margin-top:8px}.rsvp-letter .rsvp-venmo,.seal-page .rsvp-venmo{color:#f1cf7e;letter-spacing:1px;text-shadow:0 1px #28000499;background:linear-gradient(#a3202b 0%,#7a1019 55%,#5c0a12 100%);border:1px solid #c9a14a;font-family:Georgia,Palatino Linotype,serif;transition:filter .15s,transform .1s,box-shadow .15s;box-shadow:inset 0 1px #ffc8aa2e,0 4px 14px #3c040859}.rsvp-letter .rsvp-venmo:hover,.seal-page .rsvp-venmo:hover{filter:brightness(1.12);box-shadow:inset 0 1px #ffc8aa38,0 6px 18px #3c040873,0 0 0 1px #c9a14a59}.rsvp-letter .rsvp-venmo:active,.seal-page .rsvp-venmo:active{filter:brightness(.95);transform:translateY(1px);box-shadow:inset 0 2px 6px #1e000280}.rsvp-letter .rsvp-venmo:focus-visible,.seal-page .rsvp-venmo:focus-visible{outline-offset:3px;outline:2px solid #c9a14a}.rsvp-letter .rsvp-copy,.seal-page .rsvp-copy{letter-spacing:.5px;color:#9a6a12;background:0 0;border:1px solid #c9a14a;padding:2px 10px;font-size:12px;transition:background .15s}.seal-page .rsvp-copy{color:#e2bd6a}.rsvp-letter .rsvp-copy:hover,.seal-page .rsvp-copy:hover{background:#c9a14a24}.rsvp-letter .rsvp-copy:active,.seal-page .rsvp-copy:active{transform:translateY(1px)}
