.ttUtilities{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap}
.ttUtilities .ttRules{margin:0;min-height:42px;padding:8px 14px}
.ttLiveTables{position:relative;display:flex;min-height:51px!important;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid rgba(232,200,122,.72)!important;border-radius:12px!important;color:#fff3d6!important;background:linear-gradient(180deg,rgba(91,67,20,.92),rgba(25,58,42,.94))!important;box-shadow:0 0 0 1px rgba(232,200,122,.12),0 0 24px rgba(232,200,122,.15)!important}
.ttLiveTables span{font:900 11px Barlow;letter-spacing:2px}.ttLiveTables small{display:block;color:#9cf0c1;font:800 8px/1.1 Barlow;letter-spacing:1.15px}
.ttLiveTables::before{content:'';display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:#55d6a0;box-shadow:0 0 10px rgba(85,214,160,.75)}
#v2mbox.marketingModal{width:min(520px,calc(100vw - 28px));max-height:min(760px,calc(100dvh - 30px));overflow:auto;padding:0;border-radius:20px;background:linear-gradient(180deg,#0b271e,#061812);border:1px solid rgba(232,200,122,.48);box-shadow:0 24px 70px rgba(0,0,0,.72)}
.marketingHead{padding:22px 22px 15px;border-bottom:1px solid rgba(232,200,122,.17);background:radial-gradient(90% 120% at 50% 0,rgba(37,91,68,.5),transparent)}
.marketingKicker{display:block;color:#55d6a0;font:800 11px Barlow;letter-spacing:2.2px}.marketingHead h3{margin:5px 0 7px;font:38px/1 'Bebas Neue';letter-spacing:1.2px;color:#f5efdd}.marketingHead p{margin:0;color:#b7c9c0;font:600 14px/1.42 Barlow}
.founderOffer{position:relative;margin:14px 20px 0;padding:14px 15px 13px;border:1px solid rgba(232,200,122,.72);border-radius:14px;background:radial-gradient(100% 150% at 0 0,rgba(201,162,75,.28),transparent 60%),linear-gradient(135deg,rgba(63,45,10,.96),rgba(9,37,27,.96));box-shadow:0 8px 24px rgba(0,0,0,.32),inset 0 1px rgba(255,243,214,.08)}
.founderOffer::before{content:'◆';position:absolute;right:13px;top:11px;color:#e8c87a;font:16px Barlow}.founderOffer span{display:block;color:#9cf0c1;font:900 10px Barlow;letter-spacing:2px}.founderOffer strong{display:block;margin:4px 24px 6px 0;color:#fff3d6;font:27px/1 'Bebas Neue';letter-spacing:1.2px}.founderOffer p{margin:0;color:#d5dfda;font:650 12px/1.42 Barlow}.founderClaimNote{margin:12px 0 4px;padding:9px;border:1px solid rgba(232,200,122,.48);border-radius:9px;background:rgba(107,78,20,.34);color:#fff3d6;font:900 10px/1.2 Barlow;letter-spacing:1.1px}
.marketingBody{padding:16px 20px 21px}.marketingSessions{display:grid;gap:9px;margin-bottom:14px}
.marketingSession{position:relative;display:grid;grid-template-columns:26px 1fr;gap:8px;align-items:center;min-height:72px;padding:10px 12px;border:1px solid rgba(232,200,122,.24);border-radius:13px;background:rgba(3,19,14,.62);cursor:pointer}
.marketingSession:has(input:checked){border-color:#55d6a0;background:rgba(20,73,53,.56);box-shadow:0 0 0 1px rgba(85,214,160,.18)}
.marketingSession input{width:19px;height:19px;accent-color:#55d6a0}.marketingSession b{display:block;color:#f5efdd;font:800 14px Barlow;letter-spacing:.5px}.marketingSession strong{display:block;margin-top:2px;color:#e8c87a;font:24px/1.05 'Bebas Neue';letter-spacing:.8px}.marketingSession small{display:block;margin-top:3px;color:#93aa9f;font:600 11px/1.25 Barlow}
.marketingForm label{display:block;margin-top:11px;color:#d6e2dc;font:800 11px Barlow;letter-spacing:1.3px}.marketingForm input[type=email],.marketingForm select,.marketingForm textarea{box-sizing:border-box;width:100%;min-height:46px;margin-top:5px;padding:10px 12px;border:1px solid rgba(232,200,122,.31);border-radius:10px;background:#071c15;color:#f5efdd;font:700 15px Barlow;outline:none}
.marketingForm textarea{min-height:82px;resize:vertical;line-height:1.35}.marketingForm input:focus,.marketingForm select:focus,.marketingForm textarea:focus{border-color:#55d6a0;box-shadow:0 0 0 2px rgba(85,214,160,.15)}
.marketingConsent{display:grid!important;grid-template-columns:22px 1fr;gap:8px;align-items:start;letter-spacing:0!important;text-transform:none!important;font:600 12px/1.35 Barlow!important;color:#a9bbb2!important}.marketingConsent input{width:18px;height:18px;margin:0;accent-color:#55d6a0}
.marketingPrivacy{margin:10px 0 0;color:#7f988c;font:600 10.5px/1.35 Barlow;text-align:center}
.marketingLoading{padding:34px 22px;text-align:center;color:#d9e6df;font:700 14px Barlow}.marketingSuccess{padding:25px 22px;text-align:center}.marketingSuccess .marketingKicker{margin-bottom:6px}.marketingSuccess h3{margin:0;color:#f5efdd;font:42px/1 'Bebas Neue'}.marketingSuccess strong{display:block;margin:13px 0 5px;color:#e8c87a;font:27px/1.1 'Bebas Neue'}.marketingSuccess p{color:#b7c9c0;font:600 14px/1.45 Barlow}
.eventPassList{display:grid;gap:11px}.eventPass{padding:15px;border:1px solid rgba(232,200,122,.44);border-radius:15px;background:linear-gradient(145deg,rgba(10,36,27,.96),rgba(3,18,13,.96));box-shadow:0 10px 24px rgba(0,0,0,.28)}.eventPass.checked{border-color:rgba(85,214,160,.65);box-shadow:0 0 0 1px rgba(85,214,160,.13),0 10px 24px rgba(0,0,0,.28)}.eventPassTop{display:flex;align-items:center;justify-content:space-between;gap:12px}.eventPassTop span{color:#9cf0c1;font:900 10px Barlow;letter-spacing:1.8px}.eventPassTop b{padding:4px 7px;border-radius:999px;background:rgba(85,214,160,.15);color:#9cf0c1;font:900 9px Barlow;letter-spacing:1.1px}.eventPass h4{margin:8px 0 0;color:#f5efdd;font:29px/1 'Bebas Neue';letter-spacing:.8px}.eventPass>strong{display:block;margin:4px 0 0;color:#e8c87a;font:22px/1.05 'Bebas Neue'}.eventPass p{margin:10px 0;color:#b7c9c0;font:600 12px/1.42 Barlow}.eventAssignment{display:grid;margin:12px 0 3px;padding:12px;border:1px solid rgba(232,200,122,.52);border-radius:12px;background:rgba(91,67,20,.25)}.eventAssignment small{color:#9cf0c1;font:900 9px Barlow;letter-spacing:1.7px}.eventAssignment b{color:#fff3d6;font:33px/1 'Bebas Neue';letter-spacing:1px}.eventAssignment span{color:#d5dfda;font:800 10px Barlow;letter-spacing:.7px}.eventEnter{box-shadow:0 0 18px rgba(85,214,160,.22)!important}.eventFlow{display:grid;gap:6px;margin:14px 0;padding:12px 14px;border-left:2px solid #e8c87a;background:rgba(232,200,122,.06)}.eventFlow b{margin-bottom:2px;color:#fff3d6;font:900 10px Barlow;letter-spacing:1.5px}.eventFlow span{color:#b7c9c0;font:650 11px/1.25 Barlow}.eventPass .v2opt[disabled]{opacity:.62;cursor:default}
.eventFeedbackAction{margin-top:8px!important;box-shadow:0 0 18px rgba(232,200,122,.14)!important}.eventFeedbackReceipt{display:grid;gap:2px;margin-top:9px;padding:10px 12px;border:1px solid rgba(85,214,160,.5);border-radius:10px;background:rgba(20,73,53,.4)}.eventFeedbackReceipt b{color:#9cf0c1;font:900 11px Barlow;letter-spacing:1px}.eventFeedbackReceipt span{color:#bdd1c7;font:650 11px/1.3 Barlow}.eventFeedbackIntro{margin-bottom:4px;padding:12px 13px;border-left:2px solid #55d6a0;background:rgba(85,214,160,.07)}.eventFeedbackIntro b{display:block;color:#fff3d6;font:900 12px Barlow;letter-spacing:1.3px}.eventFeedbackIntro span{display:block;margin-top:3px;color:#9cf0c1;font:750 11px Barlow}.eventFeedbackIntro p{margin:7px 0 0;color:#b7c9c0;font:600 12px/1.4 Barlow}.eventFeedbackForm>label{margin-top:13px}.eventFeedbackResult{border-color:rgba(85,214,160,.6)!important}
@media(max-width:480px){.ttUtilities{gap:5px}.ttUtilities .ttRules{padding:7px 9px;font-size:9px}.ttLiveTables{width:min(240px,82vw)}.ttLiveTables span{font-size:10px}.ttLiveTables small{font-size:7.5px}#v2mbox.marketingModal{max-height:calc(100dvh - 18px)}.marketingHead{padding:18px 17px 13px}.marketingHead h3{font-size:33px}.founderOffer{margin:11px 15px 0;padding:12px}.founderOffer strong{font-size:24px}.founderOffer p{font-size:11.5px}.marketingBody{padding:13px 15px 17px}.marketingSession{min-height:66px}.marketingSession strong{font-size:21px}.eventPass{padding:13px}.eventPass h4{font-size:26px}.eventPass>strong{font-size:20px}.eventAssignment b{font-size:29px}.eventFlow{padding:10px 12px}}

/* The feedback button is the single most important control of the event - feedback is what
   completes Founder qualification. Its supporting line inherited a pale colour onto a gold
   button and was effectively unreadable. Found by screenshotting it, not by any test. */
.v2opt.gold small{display:block;margin-top:3px;color:#4A3A12;opacity:1;font:900 10px/1.3 Barlow;letter-spacing:.5px;text-transform:none}

/* ══ LIVE EVENT / NEXT ROUND (v143) ════════════════════════════════════════════════════ */
.eventLive{margin-bottom:12px;padding:13px;border:1px solid rgba(232,200,122,.34);border-radius:13px;background:linear-gradient(180deg,rgba(107,78,20,.24),rgba(7,29,22,.55));text-align:center}
.eventLive.waiting{border-color:rgba(143,230,180,.42)}
.eventLiveHead{display:flex;align-items:center;justify-content:center;gap:7px}
.eventLiveHead b{color:#8fe6b4;font:900 10px Barlow;letter-spacing:1.7px}
.eventLiveDot{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 8px #4ade80;animation:eventLivePulse 1.8s ease-in-out infinite}
.eventLiveTitle{display:block;margin-top:9px;color:#f3d87e;font:900 13px Barlow;letter-spacing:2px}
.eventLive small{display:block;margin-top:4px;color:#c9b98c;font:600 11px/1.4 Barlow}
.eventLiveNote{color:#9db3a4!important;font-style:italic}
.eventLive .eventNextChoices{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:11px}
.eventLive .eventNextChoices .v2opt{margin:0;min-width:0}
@keyframes eventLivePulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}
@media(max-width:420px){.eventLive .eventNextChoices{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.eventLiveDot{animation:none}}

/* ══ THE EVENT LOBBY + CEREMONIES (v149, David's spec 2026-08-02) ═══════════════════════
   The pass between check-in and the deal is a FLOOR, not a form: full-bleed lobby art
   (corners decorated, centre dark — §7b.10 ownership-art law), a live countdown in
   display gold, the headcount, and the tutorial state. All three art files are optional:
   every surface sits on the plain Exchange emerald if a file is missing. */
#v2mbox.marketingModal .eventSkin{position:relative;min-height:min(640px,calc(100dvh - 80px));padding:22px 20px 18px;border-radius:20px;background:#07231a url('art/event-lobby-portrait.webp') center/cover no-repeat;display:flex;flex-direction:column;justify-content:flex-end;gap:12px}
.eventSkin::before{content:'';position:absolute;inset:0;border-radius:20px;background:linear-gradient(180deg,rgba(4,17,12,.18) 0%,rgba(4,17,12,.04) 38%,rgba(4,17,12,.62) 78%,rgba(4,17,12,.86) 100%);pointer-events:none}
.eventSkin>*{position:relative}
.eventLobby{display:grid;gap:12px;text-align:center}
.eventLobbyCount{display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 12px;border:1px solid rgba(85,214,160,.4);border-radius:999px;background:rgba(4,24,17,.82);backdrop-filter:blur(2px)}
.eventLobbyCount b{color:#9cf0c1;font:900 12px Barlow;letter-spacing:1.8px}
.eventLobbyCount small{color:#7f988c;font:650 10.5px Barlow}
.eventLobbyClock{padding:16px 14px 13px;border:1px solid rgba(232,200,122,.5);border-radius:16px;background:rgba(6,22,16,.84);backdrop-filter:blur(2px);box-shadow:0 10px 30px rgba(0,0,0,.4)}
.eventLobbyClock>small{display:block;color:#9cf0c1;font:900 10px Barlow;letter-spacing:2px}
#eventLobbyCountdown{margin:4px 0 2px;color:#f3d87e;font:76px/1 'Bebas Neue';letter-spacing:3px;text-shadow:0 0 26px rgba(232,200,122,.35);font-variant-numeric:tabular-nums}
.eventLobbyZero{display:block;color:#b7c9c0!important;font:650 10.5px/1.35 Barlow!important;letter-spacing:.4px!important}
.eventLobbyTutorial{display:grid;gap:6px;padding:12px 13px;border:1px solid rgba(232,200,122,.55);border-radius:13px;background:rgba(63,45,10,.78);backdrop-filter:blur(2px);text-align:left}
.eventLobbyTutorial b{color:#fff3d6;font:900 11px Barlow;letter-spacing:1.5px}
.eventLobbyTutorial span{color:#d5dfda;font:600 11.5px/1.4 Barlow}
.eventLobbyTutorial .v2opt{margin:4px 0 0}
.eventLobbyTutorial.done{border-color:rgba(85,214,160,.55);background:rgba(16,54,39,.8)}
.eventLobbyTutorial.done b{color:#9cf0c1}
.eventLobbyHint{padding:0 6px;color:#93aa9f;font:600 10.5px/1.4 Barlow;text-shadow:0 1px 3px rgba(0,0,0,.8)}
.eventLobbyBack{margin:0!important}
/* FOUNDERS EVENT WELCOME — one breath of gold after check-in */
#v2mbox.marketingModal .eventWelcome{position:relative;overflow:hidden;padding:34px 24px 26px;border-radius:20px;background:#07231a url('art/event-lobby-portrait.webp') center/cover no-repeat;text-align:center}
#v2mbox.marketingModal .eventWelcome::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,17,12,.55),rgba(4,17,12,.82));pointer-events:none}
.eventWelcome>*{position:relative}
.eventWelcomeGlow{position:absolute!important;inset:-30% -20% auto;height:70%;background:radial-gradient(50% 60% at 50% 40%,rgba(232,200,122,.28),transparent 70%);animation:eventWelcomeGlow 2.6s ease-in-out infinite alternate;pointer-events:none}
@keyframes eventWelcomeGlow{from{opacity:.55}to{opacity:1}}
.eventCrest{width:128px;height:128px;margin:0 auto 12px;border-radius:50%;overflow:hidden;border:2px solid rgba(232,200,122,.75);box-shadow:0 0 0 6px rgba(232,200,122,.12),0 0 44px rgba(232,200,122,.4);animation:eventCrestIn .7s cubic-bezier(.2,1.4,.4,1) both}
.eventCrest img{width:100%;height:100%;display:block}
.eventCrest b{display:none;font:64px/124px 'Bebas Neue';color:#e8c87a}
.eventCrest.noArt{background:radial-gradient(circle at 50% 40%,#144833,#07231a)}
.eventCrest.noArt b{display:block}
@keyframes eventCrestIn{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.eventWelcome h3{margin:4px 0 2px;color:#f5efdd;font:44px/1 'Bebas Neue';letter-spacing:1.5px}
.eventWelcome strong{display:block;color:#e8c87a;font:22px/1.1 'Bebas Neue';letter-spacing:1px}
.eventWelcome p{margin:12px auto 16px;max-width:340px;color:#cfdcd5;font:600 13px/1.5 Barlow}
/* GAMES BEGINNING / seating splash */
#v2mbox.marketingModal .eventSeating{position:relative;overflow:hidden;padding:46px 24px 42px;border-radius:20px;background:#07231a url('art/event-lobby-portrait.webp') center/cover no-repeat;text-align:center}
#v2mbox.marketingModal .eventSeating::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,17,12,.6),rgba(4,17,12,.85));pointer-events:none}
.eventSeating>*{position:relative}
.eventSeating h3{margin:8px 0 4px;color:#f5efdd;font:40px/1.05 'Bebas Neue';letter-spacing:1.4px}
.eventSeating p{margin:0 auto;max-width:330px;color:#c9d8d0;font:600 13px/1.5 Barlow}
.eventSeatingPulse{position:absolute!important;left:50%;top:26px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:#f3d87e;box-shadow:0 0 14px #f3d87e;animation:eventSeatPulse 1.1s ease-in-out infinite}
@keyframes eventSeatPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(1.7)}}
@media(max-width:480px){#eventLobbyCountdown{font-size:64px}.eventWelcome h3{font-size:38px}.eventCrest{width:108px;height:108px}.eventCrest b{line-height:104px;font-size:54px}.eventSeating h3{font-size:34px}}

/* ══ v157: post-feedback PLAY ANOTHER dialog + leave-without-feedback confirm ══════════ */
#v2mbox.marketingModal .eventPlayAnother{justify-content:center;text-align:center;min-height:min(480px,calc(100dvh - 120px))}
.eventPlayAnother h3{margin:6px 0 4px;color:#f5efdd;font:46px/1 'Bebas Neue';letter-spacing:1.5px}
.eventPlayAnother p{margin:0 auto 16px;max-width:330px;color:#cfdcd5;font:600 13px/1.5 Barlow;text-shadow:0 1px 3px rgba(0,0,0,.7)}
.eventPlayAnother .eventNextChoices{display:grid;gap:8px}
.eventLeaveConfirm{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(3,14,10,.88);border-radius:20px}
.eventLeaveCard{display:grid;gap:9px;max-width:340px;padding:18px 16px;border:1px solid rgba(232,200,122,.6);border-radius:16px;background:linear-gradient(180deg,#0b271e,#061812);box-shadow:0 18px 50px rgba(0,0,0,.6)}
.eventLeaveCard b{color:#f3d87e;font:900 14px Barlow;letter-spacing:1.6px;text-align:center}
.eventLeaveCard p{margin:0;color:#c9d8d0;font:600 12.5px/1.45 Barlow}
.eventLeaveCard .v2opt{margin:0}
/* 44px touch law — every event/marketing action must be tappable. */
.eventNextChoices .v2opt,.eventLeaveCard .v2opt,.marketingSuccess .v2opt,.eventWelcome .v2opt{min-height:46px}

/* ===== v174 THE EVENT TRAILER (CLAUDE.md §7b.17) =========================================
   A full-viewport black stage that fades in over everything, plays the 16:9 film with
   `object-fit:contain`, and fades out. ORIENTATION IS THE PLAYER'S CHOICE: sideways fills a
   phone edge to edge; upright letterboxes the whole frame with black above and below. The
   video is never cropped and the page is never orientation-locked. SKIP and TAP FOR SOUND
   are both ≥44px (§3.11) and sit clear of the notch via safe-area insets. */
#trailerStage{position:fixed;inset:0;z-index:9000;background:#000;display:flex;align-items:center;justify-content:center;
 opacity:0;transition:opacity .5s ease;overscroll-behavior:none}
#trailerStage.on{opacity:1}
body.trailer-playing{overflow:hidden}
#trailerVid{width:100%;height:100%;object-fit:contain;background:#000;display:block}
#trailerStage button{position:absolute;cursor:pointer;font-family:'Barlow Semi Condensed',Barlow,sans-serif;
 -webkit-tap-highlight-color:transparent;touch-action:manipulation}
#trailerSkip{right:calc(14px + env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));
 min-height:44px;min-width:96px;padding:9px 18px;border:1px solid rgba(232,200,122,.6);border-radius:999px;
 background:rgba(6,13,11,.62);color:#F5EFDD;font-weight:800;font-size:13px;letter-spacing:.14em}
#trailerSkip:hover{background:rgba(6,13,11,.85);border-color:#E8C87A}
#trailerSound{left:50%;transform:translateX(-50%);bottom:calc(72px + env(safe-area-inset-bottom));
 min-height:52px;padding:12px 24px;border:1px solid #C9A24B;border-radius:999px;
 background:linear-gradient(180deg,#E8C87A,#C9A24B);color:#1a1206;font-weight:900;font-size:14px;letter-spacing:.16em;
 box-shadow:0 6px 24px rgba(0,0,0,.55);animation:trailerSoundPulse 1.6s ease-in-out infinite}
@keyframes trailerSoundPulse{50%{filter:brightness(1.14)}}
@media(prefers-reduced-motion:reduce){#trailerSound{animation:none}#trailerStage{transition:none}}
/* Landscape phone: keep the controls tight to the corner so they never sit over the frame. */
@media(max-height:460px){
 #trailerSkip{min-height:44px;padding:7px 14px;font-size:12px}
 #trailerSound{bottom:calc(58px + env(safe-area-inset-bottom));min-height:44px;padding:9px 18px;font-size:12.5px}
}

/* v174: the RSVP dead end. Every marketing screen now carries a close, and validation speaks
   next to the fields instead of behind the dialog. */
.marketingClose{position:absolute;top:8px;right:10px;z-index:3;width:44px;height:44px;display:flex;align-items:center;justify-content:center;
 border:1px solid rgba(210,180,104,.42);border-radius:50%;background:rgba(6,20,15,.72);color:#F5EFDD;font:700 17px/1 Barlow;cursor:pointer}
.marketingClose:hover{border-color:#E8C87A;background:rgba(6,20,15,.95)}
#v2mbox.marketingModal{position:relative}
.marketingHead{padding-right:52px}
.marketingFormNotice{margin:8px 0 4px;padding:9px 11px;border:1px solid #E8C87A;border-left-width:4px;border-radius:8px;
 background:rgba(232,200,122,.12);color:#F5EFDD;font:700 13px/1.4 Barlow}
