:root{--meta-gold:#E8C87A;--meta-ivory:#F5EFDD;--meta-muted:#9db4a9;--meta-ink:#06130f;--meta-panel:#0b281f}
#metaHeader{position:fixed;z-index:28;top:max(12px,env(safe-area-inset-top));left:18px;right:130px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}
#metaHeader button{pointer-events:auto;min-height:52px;border:1px solid rgba(232,200,122,.42);border-radius:14px;background:linear-gradient(180deg,rgba(15,49,37,.96),rgba(6,23,17,.96));color:var(--meta-ivory);box-shadow:0 8px 24px rgba(0,0,0,.4);cursor:pointer}
#metaIdentity{display:flex;align-items:center;gap:10px;padding:5px 14px 5px 5px;text-align:left}
#metaIdentity img{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--meta-gold)}
#metaIdentity span,#metaInfluence span{display:flex;flex-direction:column;line-height:1.05}
#metaIdentity b,#metaInfluence b{font:800 16px 'Barlow Semi Condensed';letter-spacing:.8px}
#metaIdentity small,#metaInfluence small{font:800 11px Barlow;letter-spacing:1.4px;color:var(--meta-muted);margin-top:3px}
#metaInfluence{display:flex;align-items:center;gap:8px;padding:5px 12px}
#metaInfluence img{width:34px;height:34px}
#metaInfluence b{font-family:'Bebas Neue';font-size:20px;color:var(--meta-gold)}
#metaNav{position:fixed;z-index:28;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:6px;padding:6px;border:1px solid rgba(232,200,122,.35);border-radius:17px;background:rgba(4,17,12,.92);box-shadow:0 12px 30px rgba(0,0,0,.55);backdrop-filter:blur(12px)}
#metaNav button{width:110px;min-height:48px;border:0;border-radius:12px;background:transparent;color:#789487;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px}
#metaNav span{font-size:16px;color:#6f9181}#metaNav b{font:800 13px Barlow;letter-spacing:1.4px}
#metaNav button.on,#metaNav button:hover{background:linear-gradient(180deg,rgba(232,200,122,.18),rgba(232,200,122,.06));color:var(--meta-ivory);box-shadow:inset 0 0 0 1px rgba(232,200,122,.35)}
#metaNav button.on span{color:var(--meta-gold)}
body.meta-open #metaHeader,body.meta-open #metaNav{z-index:48}
body.playing #metaHeader,body.playing #metaNav,body.lobby-open #metaHeader,body.lobby-open #metaNav{display:none}
#v3coach{position:fixed;z-index:34;left:50%;bottom:112px;transform:translateX(-50%);width:min(720px,calc(100vw - 28px));display:none;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;box-sizing:border-box;border:1px solid rgba(232,200,122,.72);border-radius:16px;background:linear-gradient(135deg,rgba(6,30,22,.98),rgba(18,52,39,.98));box-shadow:0 14px 45px rgba(0,0,0,.7);color:#f5efdd;pointer-events:auto}#v3coach.on{display:grid;animation:coachIn 220ms ease-out both}@keyframes coachIn{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}.coachStep{min-width:0}.coachStep small{display:block;font:800 11px Barlow;letter-spacing:2px;color:#e8c87a}.coachStep strong{display:block;margin-top:3px;font:400 22px 'Bebas Neue';letter-spacing:1.1px}.coachStep p{margin:3px 0 0;font:700 16px/1.35 Barlow;color:#c7d5ce}.coachActions{display:flex;gap:8px}.coachActions button{min-width:88px;min-height:48px;border:1px solid rgba(232,200,122,.55);border-radius:11px;background:#0a2a20;color:#f5efdd;font:800 14px Barlow;cursor:pointer}.coachActions #coachPrimary{background:linear-gradient(180deg,#f2dfa8,#c9a24b);color:#382b0d}
#v2title{padding-top:62px;padding-bottom:76px;box-sizing:border-box}
.millionaireWord{font-size:clamp(66px,9vw,116px)!important;letter-spacing:.055em!important}
#v2setB,.ttRules{min-width:44px;min-height:44px}
#metaPanel{position:fixed;z-index:45;inset:0;display:none;align-items:center;justify-content:center;padding:72px 18px 86px;background:rgba(2,11,8,.78);backdrop-filter:blur(12px);box-sizing:border-box}
#metaPanel.open{display:flex}body.meta-open #v2title{filter:blur(2px);pointer-events:none}
.metaPanelCard{width:min(960px,96vw);max-height:100%;overflow:hidden;display:flex;flex-direction:column;border:1px solid rgba(232,200,122,.52);border-radius:22px;background:linear-gradient(180deg,rgba(16,52,39,.98),rgba(5,22,16,.99));box-shadow:0 30px 90px rgba(0,0,0,.8),inset 0 1px rgba(255,255,255,.08)}
#metaPanel.open .metaPanelCard{animation:metaPanelIn 220ms cubic-bezier(.2,.8,.25,1) both}@keyframes metaPanelIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
.metaPanelHead{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid rgba(232,200,122,.24)}
.metaPanelHeading{grid-column:2;min-width:0}.metaPanelHeading h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.metaPanelHead small{font:800 11px Barlow;letter-spacing:2.5px;color:var(--meta-muted)}
.metaPanelHead h2{margin:3px 0 0;font:400 34px/1 'Bebas Neue';letter-spacing:2px;color:var(--meta-gold)}
.metaPanelHead>button{height:48px;border:1px solid rgba(232,200,122,.42);background:#081d16;color:var(--meta-ivory);cursor:pointer}.metaPanelClose{grid-column:3;width:48px;border-radius:50%;font:400 30px/1 Barlow}.metaPanelBack{grid-column:1;display:flex;align-items:center;gap:6px;width:auto;padding:0 13px;border-radius:999px;font-family:Barlow}.metaPanelBack[hidden]{display:none}.metaPanelBack span{font-size:28px;line-height:1;margin-top:-2px}.metaPanelBack b{font:800 12px Barlow;letter-spacing:1px}
#metaPanelBody{padding:20px 22px 26px;overflow-y:auto;overscroll-behavior:contain}
.metaLead{margin:0 0 18px;color:#c0d0c8;font:600 16px/1.5 Barlow;max-width:700px}
.metaGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.metaCard{border:1px solid rgba(232,200,122,.25);border-radius:16px;background:linear-gradient(180deg,rgba(15,49,37,.9),rgba(6,24,18,.92));padding:16px;color:var(--meta-ivory);box-shadow:0 8px 20px rgba(0,0,0,.24);transition:border-color 150ms ease,transform 150ms ease,box-shadow 150ms ease}
button.metaCard{cursor:pointer;text-align:left;font-family:inherit}.metaCard:hover{border-color:rgba(232,200,122,.68)}
.metaCard h3{font:400 24px/1 'Bebas Neue';letter-spacing:1.4px;margin:0;color:var(--meta-ivory)}
.metaCard p{font:600 15px/1.45 Barlow;color:var(--meta-muted);margin:8px 0 0}
.metaPrimary,.metaSecondary,.metaDanger{min-height:48px;border-radius:12px;padding:11px 16px;font:800 16px Barlow;letter-spacing:.5px;cursor:pointer}
.metaPrimary{border:1px solid #8c6b22;background:linear-gradient(180deg,#f2dfa8,#e8c87a 48%,#c9a24b);color:#382b0d}
.metaSecondary{border:1px solid rgba(232,200,122,.4);background:#0a2a20;color:var(--meta-ivory)}
.metaDanger{border:1px solid #8a3541;background:#32151c;color:#ffd1d1}
.metaActions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.metaActions>*{flex:1;min-width:150px}
.characterGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.characterCard{position:relative;min-height:210px;border:1px solid rgba(232,200,122,.24);border-radius:16px;padding:12px;background:#071d16;color:var(--meta-ivory);cursor:pointer;text-align:left;overflow:hidden}
.characterCard.on{border-color:var(--meta-gold);box-shadow:0 0 0 1px var(--meta-gold),0 0 25px rgba(232,200,122,.2)}
.characterCard.locked{border-color:rgba(169,138,232,.35)}
.characterCard img{display:block;width:96px;height:96px;border-radius:50%;object-fit:cover;margin:0 auto 10px;border:2px solid rgba(232,200,122,.55)}
.characterCard b{display:block;text-align:center;font:400 20px 'Bebas Neue';letter-spacing:1px}.characterCard small{display:block;text-align:center;font:800 12px/1.35 Barlow;color:var(--meta-muted);margin-top:3px}
.characterCard em{display:block;margin-top:8px;text-align:center;font:800 12px Barlow;color:var(--meta-gold);font-style:normal}
.masteryTrack,.houseTrack{height:10px;border-radius:10px;background:#03110d;border:1px solid rgba(232,200,122,.24);overflow:hidden;margin-top:10px}
.masteryTrack i,.houseTrack i{display:block;height:100%;border-radius:10px;background:linear-gradient(90deg,#8c6b22,#e8c87a,#fff3d6)}
.characterHero{display:grid;grid-template-columns:190px minmax(0,1fr);gap:22px;align-items:start}
.characterHero>img,.characterPortraitWrap>img{width:180px;height:180px;border-radius:50%;object-fit:cover;border:3px solid var(--meta-gold);box-shadow:0 0 34px rgba(232,200,122,.2)}.characterPortraitWrap{position:relative;width:186px;height:186px}.characterTrophy{position:absolute;right:2px;bottom:6px;display:grid;place-items:center;width:34px;height:34px;border:2px solid #fff3d6;border-radius:50%;background:#8c6b22;color:#fff3d6;box-shadow:0 7px 15px rgba(0,0,0,.6)}
.characterHero h3{margin:0;font:400 38px/1 'Bebas Neue';letter-spacing:2px}.characterHero .tag{font:600 16px Barlow;color:var(--meta-muted);margin-top:5px}
.characterBrowse{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin:0 0 16px}.characterBrowse button{min-height:44px;border:1px solid rgba(232,200,122,.35);border-radius:11px;background:#08241b;color:var(--meta-ivory);font:800 13px Barlow;letter-spacing:.8px;cursor:pointer}.characterBrowse b{min-width:70px;text-align:center;color:var(--meta-gold);font:400 21px 'Bebas Neue';letter-spacing:1px}.characterBrowse button:last-child{justify-self:stretch}
.voiceRows{display:grid;gap:10px;margin-top:18px}.voiceRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid rgba(232,200,122,.24);border-radius:14px;padding:13px 14px;background:rgba(4,18,13,.65)}
.voiceRow b{font:400 20px 'Bebas Neue';letter-spacing:1px}.voiceRow span{display:block;font:600 14px Barlow;color:var(--meta-muted);margin-top:3px}.voiceRow .metaActions{margin:0}.voiceRow button{min-width:110px}
.houseChoice{position:relative;padding-top:72px;min-height:250px}.houseChoice>img{position:absolute;top:14px;left:16px;width:48px;height:48px}.houseChoice .houseFaces{display:flex;margin-top:18px}.houseFaces img{width:46px;height:46px;border-radius:50%;object-fit:cover;border:2px solid #0a211b;margin-right:-8px}.houseChoice .metaPrimary{width:100%;margin-top:18px}
.houseStanding{display:grid;grid-template-columns:150px minmax(0,1fr) 54px;gap:12px;align-items:center;margin:13px 0}.houseStanding b{font:400 20px 'Bebas Neue';letter-spacing:1px}.houseStanding strong{font:400 20px 'Bebas Neue';color:var(--meta-gold);text-align:right}
.contractGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.contractCard{position:relative}.contractCard.done{border-color:#55d6a0}.contractCard .progress{font:400 26px 'Bebas Neue';color:var(--meta-gold);margin-top:12px}.contractCard .reward{font:800 13px Barlow;color:#b9cbc2;margin-top:6px}
.trophyCase{margin-top:20px;padding:16px;border:1px solid rgba(232,200,122,.3);border-radius:16px;background:radial-gradient(circle at 10% 10%,rgba(232,200,122,.12),transparent 45%),rgba(4,18,13,.62)}.trophyCase>div:first-child{display:flex;align-items:end;justify-content:space-between;gap:12px}.trophyCase h3{margin:0;font:400 25px 'Bebas Neue';letter-spacing:1px}.trophyCase>div>span{font:700 13px Barlow;color:#9db4a9}.trophyCase>p{margin:10px 0 0;font:600 15px/1.45 Barlow;color:#9db4a9}.trophyGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}.trophyItem{min-height:92px;padding:9px;border:1px solid rgba(232,200,122,.3);border-radius:12px;background:#071d16;color:#f5efdd;cursor:pointer}.trophyItem.on{border-color:#e8c87a;box-shadow:inset 0 0 0 1px #e8c87a,0 0 18px rgba(232,200,122,.14)}.trophyItem i{display:grid;place-items:center;width:32px;height:32px;margin:0 auto 6px;border:1px solid #fff3d6;border-radius:50%;background:#8c6b22;color:#fff3d6;font-style:normal}.trophyItem b,.trophyItem small{display:block;text-align:center}.trophyItem b{font:800 12px/1.2 Barlow}.trophyItem small{margin-top:3px;font:800 9px Barlow;letter-spacing:1px;color:#9db4a9}.trophyItem.on small{color:#e8c87a}
.profileHero{display:grid;grid-template-columns:150px minmax(0,1fr);gap:22px;align-items:center}.profileHero>img,.profileHeroPortrait>img{width:138px;height:138px;border-radius:50%;object-fit:cover;border:3px solid var(--meta-gold)}
/* v163 FOUNDER BADGE on the profile portrait — same gold pill family as .founderProfileCard */
.profileHeroPortrait{position:relative;display:inline-grid;justify-self:start;place-items:center}.profileHeroPortrait>img{border-color:#f3d87e;box-shadow:0 0 0 4px rgba(232,200,122,.18),0 0 26px rgba(255,219,104,.28)}.founderBadge{position:absolute;bottom:-7px;left:50%;transform:translateX(-50%);padding:3px 12px;border:1px solid #fff3d6;border-radius:999px;background:#6b4e14;color:#fff3d6;font:900 10px Barlow;letter-spacing:2.2px;white-space:nowrap;box-shadow:0 3px 10px rgba(0,0,0,.6)}
.profileHero h3{font:400 38px/1 'Bebas Neue';margin:0}.profileStats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:20px}.statCard{text-align:center}.statCard strong{display:block;font:400 30px 'Bebas Neue';color:var(--meta-gold)}.statCard span{font:800 12px Barlow;letter-spacing:1px;color:var(--meta-muted)}
.accountCard{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin-top:18px;padding:15px 16px;border:1px solid rgba(232,200,122,.42);border-radius:14px;background:linear-gradient(135deg,rgba(232,200,122,.13),rgba(7,29,22,.75))}.accountCard.linked{border-color:rgba(85,214,160,.55);background:linear-gradient(135deg,rgba(85,214,160,.12),rgba(7,29,22,.75))}.accountCard span,.accountCard b,.accountCard small{display:block}.accountCard span{font:800 11px Barlow;letter-spacing:1.6px;color:var(--meta-gold)}.accountCard.linked span{color:#7de5ae}.accountCard b{margin-top:3px;font:400 21px 'Bebas Neue';letter-spacing:.7px}.accountCard small{margin-top:2px;font:600 14px Barlow;color:var(--meta-muted)}.accountCard button{min-width:170px}
.accountDialog{text-align:left}.accountDialog .dialogKicker{display:block;font:800 11px Barlow;letter-spacing:2px;color:#e8c87a}.accountDialog h3{margin:5px 0 8px;font:400 31px 'Bebas Neue';letter-spacing:1.4px}.accountDialog p{margin:0 0 16px;font:600 16px/1.45 Barlow;color:#c0d0c8}.accountDialog label{display:block;margin-bottom:14px;font:800 12px Barlow;letter-spacing:1.2px;color:#e8c87a}.accountDialog input{display:block;width:100%;min-height:52px;box-sizing:border-box;margin-top:7px;padding:10px 12px;border:1px solid rgba(232,200,122,.5);border-radius:11px;background:#061a13;color:#f5efdd;font:700 18px Barlow;letter-spacing:.2px}.accountDialog .v2opt{width:100%;min-height:52px;margin-top:8px}
.accountDivider{display:flex;align-items:center;gap:10px;margin:15px 0 11px;color:#789387;font:800 10px Barlow;letter-spacing:1.7px}.accountDivider:before,.accountDivider:after{content:"";height:1px;flex:1;background:rgba(232,200,122,.2)}
.accountGoogle{display:flex!important;align-items:center;justify-content:center;gap:10px;background:#f7f7f7!important;color:#18231e!important;border-color:#fff!important}.accountGoogle span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#fff;color:#4285f4;font:900 18px Arial;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.accountNudge{position:relative;display:grid;gap:5px;margin-top:12px;padding:14px 42px 14px 14px;border:1px solid rgba(232,200,122,.48);border-radius:13px;background:linear-gradient(135deg,rgba(232,200,122,.16),rgba(7,29,22,.94));text-align:left}.accountNudge>span{color:#e8c87a;font:800 10px Barlow;letter-spacing:1.6px}.accountNudge>b{font:400 21px 'Bebas Neue';letter-spacing:.7px}.accountNudge>small{color:#c0d0c8;font:600 14px/1.4 Barlow}.accountNudge .metaPrimary{width:100%;margin-top:7px}.accountNudgeClose{position:absolute;right:8px;top:8px;width:32px;height:32px;border:0;border-radius:50%;background:rgba(0,0,0,.22);color:#c0d0c8;font:400 23px/1 Barlow;cursor:pointer}
.rewardSummary{margin-top:14px;padding:14px;border:1px solid rgba(232,200,122,.35);border-radius:14px;background:rgba(232,200,122,.07)}.rewardSummary h4{margin:0 0 10px;font:400 22px 'Bebas Neue';color:var(--meta-gold)}.rewardLine{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font:700 14px Barlow}.rewardLine b{color:var(--meta-gold)}
.resultHero{position:relative;overflow:hidden;min-height:116px}.resultVictoryCutin{position:absolute;left:8px;bottom:-10px;width:118px;height:132px;object-fit:contain;object-position:center bottom;opacity:.88;filter:drop-shadow(0 8px 10px rgba(0,0,0,.55));pointer-events:none}.resultHero>*:not(.resultVictoryCutin):not(.victoryRays):not(.victoryBurst){position:relative;z-index:1}.resultBody{max-height:min(58vh,540px);overflow-y:auto}.resultbox{width:min(560px,94vw)!important;max-height:92vh!important}.resultActions .v2opt{min-height:48px;font-size:16px!important}
.resultHero.masteryVictory{min-height:250px;padding-left:47%;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(90deg,transparent 30%,rgba(6,25,18,.7) 48%,rgba(8,35,25,.98) 72%),radial-gradient(circle at 25% 45%,rgba(232,200,122,.3),transparent 55%)}.resultHero.masteryVictory .resultVictoryCutin{inset:0 auto 0 0;width:52%;height:100%;object-fit:cover;object-position:center 24%;opacity:1;filter:none}.resultHero.masteryVictory::after{content:"MASTERY IX";position:absolute;left:14px;bottom:10px;z-index:2;padding:5px 8px;border:1px solid rgba(232,200,122,.7);background:rgba(4,17,13,.8);color:#e8c87a;font:800 10px Barlow;letter-spacing:1.5px}
.masteryRewards{margin-top:22px;border-top:1px solid rgba(232,200,122,.25);padding-top:18px}.masteryRewardsHead{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:10px}.masteryRewardsHead h3{margin:0;font:400 27px 'Bebas Neue';letter-spacing:1px}.masteryRewardsHead span{font:800 12px Barlow;color:#9db4a9}.masteryReward{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid rgba(232,200,122,.15)}.masteryReward>strong{font:400 19px 'Bebas Neue';color:#738c80}.masteryReward.unlocked>strong{color:#e8c87a}.masteryReward>div{display:grid;gap:8px}.masteryReward article{display:grid;grid-template-columns:72px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:60px;padding:8px 10px;border:1px solid rgba(232,200,122,.22);border-radius:11px;background:rgba(4,18,13,.55)}.masteryReward article b{font:800 15px Barlow}.masteryReward article small{font:800 11px Barlow;letter-spacing:1px;color:#9db4a9}.masteryReward.locked article{opacity:.62}.masteryReward button{min-height:40px;padding:7px 12px;font-size:13px}.rewardPreview{display:grid;place-items:center;width:64px;height:48px;overflow:hidden;border:1px solid rgba(232,200,122,.35);border-radius:9px;background:#071d16;color:#e8c87a;font:800 10px Barlow}.rewardPreview img{width:100%;height:100%;object-fit:cover}.rewardPreview.frame img{width:38px;height:38px;border-radius:50%;border:2px solid #e8c87a}.rewardPreview.frame.prestige img{border-color:#9cf0c1;box-shadow:0 0 0 2px #1e7a50}.rewardPreview.frame.master img{border-color:#e8c87a;box-shadow:0 0 0 3px #7a3eb0}.rewardPreview.nameplate{font:400 14px 'Bebas Neue';letter-spacing:1px}.rewardPreview.nameplate.prestige{color:#9cf0c1;text-shadow:0 0 8px rgba(85,214,160,.5)}.rewardPreview.entrance{font-size:25px;background:radial-gradient(circle,rgba(232,200,122,.25),#061a13)}.rewardPreview.entrance.prestige{color:#9cf0c1;background:radial-gradient(circle,rgba(85,214,160,.25),#061a13)}.rewardPreview.reaction{width:66px;border-radius:15px;background:#f5efdd;color:#14251d;font-size:8px}.rewardPreview.reaction.master{border:2px solid #d9b8f5;background:#44235f;color:#fff3f8}.cosmeticFrame{position:relative;padding:16px;border:1px solid rgba(232,200,122,.2);border-radius:18px;background:radial-gradient(circle at 100px 90px,rgba(232,200,122,.12),transparent 48%)}.cosmeticFrame.frameSignature{box-shadow:inset 0 0 0 2px rgba(232,200,122,.32),0 0 28px rgba(232,200,122,.12)}.cosmeticFrame.framePrestige{box-shadow:inset 0 0 0 2px #55d6a0,0 0 32px rgba(85,214,160,.22)}.cosmeticFrame.frameMaster{box-shadow:inset 0 0 0 2px #a98ae8,inset 0 0 0 5px rgba(232,200,122,.28),0 0 38px rgba(169,138,232,.3)}.nameplateSignature{color:#e8c87a!important;text-shadow:0 2px #061a13}.nameplatePrestige{color:#9cf0c1!important;text-shadow:0 2px #061a13,0 0 14px rgba(85,214,160,.42)}
.rewardContract{padding:8px 0;border-top:1px solid rgba(85,214,160,.2)}.rewardUnlock{display:grid;gap:3px;margin-top:9px;padding:11px;border:1px solid rgba(232,200,122,.55);border-radius:11px;background:linear-gradient(135deg,rgba(232,200,122,.18),rgba(85,214,160,.08))}.rewardUnlock b{font:400 19px 'Bebas Neue';color:#e8c87a;letter-spacing:1px}.rewardUnlock span{font:700 14px Barlow;color:#f5efdd}.rewardUnlock button{margin-top:6px}.rewardSync{margin-top:10px;text-align:center;font:800 11px Barlow;letter-spacing:1.2px;color:#8fe6b4}.socialList{margin-top:22px}.socialList h3{font:400 25px 'Bebas Neue';letter-spacing:1px}.socialList article{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;border:1px solid rgba(232,200,122,.2);border-radius:12px;margin-top:8px}.socialList img{width:48px;height:48px;border-radius:50%;object-fit:cover}.socialList b,.socialList small{display:block}.socialList b{font:800 16px Barlow}.socialList small{font:600 13px Barlow;color:#9db4a9}.archiveSeason img{width:28px;height:28px;vertical-align:middle}.archiveSeason small{font:700 13px Barlow;color:#9db4a9}
.friendCode{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border:1px solid rgba(232,200,122,.25);border-radius:11px;background:#061a13}.friendCode span{font:800 12px Barlow;letter-spacing:1.2px;color:#9db4a9}.friendCode b{font:400 22px 'Bebas Neue';letter-spacing:2px;color:#e8c87a}.friendAdd{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:8px}.friendAdd input{min-height:48px;box-sizing:border-box;border:1px solid rgba(232,200,122,.35);border-radius:11px;background:#061a13;color:#f5efdd;padding:10px 12px;font:800 16px Barlow;text-transform:uppercase}.friendAdd button{min-width:100px}
.lbIdent.frameSignature #lbMyAv,.lbSeat.frameSignature img{border-color:#f2dfa8;box-shadow:0 0 0 3px #6b4e14,0 0 0 5px rgba(242,223,168,.8),0 10px 24px rgba(0,0,0,.5)}.lbIdent.framePrestige #lbMyAv,.lbSeat.framePrestige img{border-color:#9cf0c1;box-shadow:0 0 0 3px #1e7a50,0 0 0 5px rgba(85,214,160,.7),0 0 24px rgba(85,214,160,.35)}.lbIdent.frameMaster #lbMyAv,.lbSeat.frameMaster img{border-color:#e8c87a;box-shadow:0 0 0 3px #6f43a3,0 0 0 6px rgba(169,138,232,.85),0 0 30px rgba(169,138,232,.5)}.lbIdent.nameplateSignature #lbCharName,.lbSeat.nameplateSignature .nm{color:#e8c87a;text-shadow:0 2px #061a13}.lbIdent.nameplatePrestige #lbCharName,.lbSeat.nameplatePrestige .nm{color:#9cf0c1;text-shadow:0 2px #061a13,0 0 12px rgba(85,214,160,.35)}.lbIdent.trophyEquipped::after,.lbSeat.trophyEquipped::after{content:"◆";position:absolute;z-index:3;display:grid;place-items:center;width:23px;height:23px;border:1px solid #fff3d6;border-radius:50%;background:#8c6b22;color:#fff3d6;font:800 10px Barlow;box-shadow:0 4px 10px rgba(0,0,0,.5)}.lbIdent.trophyEquipped{position:relative}.lbIdent.trophyEquipped::after{left:67px;top:7px}.lbSeat.trophyEquipped::after{left:calc(50% + 13px);top:5px}
.reactionBubble.reactionSignature{border-width:2px;box-shadow:0 0 0 2px rgba(232,200,122,.25),0 10px 25px rgba(0,0,0,.5)}.reactionBubble.reactionMaster{border:2px solid #d9b8f5;background:linear-gradient(155deg,#44235f,#102f28);color:#fff3f8;box-shadow:0 0 0 2px rgba(232,200,122,.32),0 0 25px rgba(169,138,232,.46),0 10px 28px rgba(0,0,0,.52)}.reactionBubble.reactionMaster::after{background:#102f28}.reactionBubble.reactionMaster>b{color:#f2dfa8}
.lbTarget{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.lbTarget button{min-height:58px;border:1px solid rgba(201,162,75,.28);border-radius:11px;background:#071e17;color:#f5efdd;cursor:pointer}.lbTarget button.on{border-color:#e8c87a;background:linear-gradient(180deg,rgba(232,200,122,.22),rgba(232,200,122,.06));box-shadow:inset 0 -3px #e8c87a}.lbTarget button.locked{opacity:.5;filter:saturate(.55);cursor:not-allowed}.lbTarget button.locked span{color:#c99595}.lbTarget b{display:block;font:400 22px 'Bebas Neue'}.lbTarget span{display:block;font:800 11px Barlow;letter-spacing:1px;color:#9db4a9}.lbFairRules{margin-top:9px;padding:9px 10px;border-radius:10px;background:rgba(5,19,14,.62);color:#b9cbc2;font:700 12px/1.45 Barlow;text-align:center}.lbFairRules b{color:#e8c87a}.lbFairRules i{font-style:normal;color:#6f9181;margin:0 5px}
.lbAdvanced{margin-top:12px;border:1px solid rgba(201,162,75,.22);border-radius:12px;background:rgba(4,18,13,.4)}.lbAdvanced summary{cursor:pointer;list-style:none;padding:12px 14px;font:800 13px Barlow;letter-spacing:1.5px;color:#e8c87a}.lbAdvanced summary span{float:right;color:#9db4a9;font-weight:600;letter-spacing:0}.lbAdvanced[open] summary{border-bottom:1px solid rgba(201,162,75,.18)}.lbAdvanced .lbRow{padding:0 12px 12px}
.lbAdvanced:not([open])>:not(summary){display:none!important}
.lbHead{position:relative;padding-left:54px}.lbHeadBack{position:absolute;left:0;top:50%;transform:translateY(-50%);width:44px;height:44px;border:1px solid rgba(232,200,122,.4);border-radius:50%;background:#071d16;color:#f5efdd;font:400 30px/1 Barlow;cursor:pointer}.lbHeadBack:active{transform:translateY(-48%) scale(.95)}
.modalRouteBack{position:sticky;z-index:5;top:-2px;display:inline-flex;align-items:center;min-height:44px;margin:-5px 0 11px;padding:8px 13px;border:1px solid rgba(232,200,122,.48);border-radius:999px;background:rgba(7,29,22,.97);box-shadow:0 5px 14px rgba(0,0,0,.35);color:#f5efdd;font:800 12px Barlow;letter-spacing:.9px;cursor:pointer}.modalRouteBack:hover{border-color:#e8c87a}
@media(max-width:700px){
 #metaHeader{top:max(7px,env(safe-area-inset-top));left:8px;right:52px}#metaHeader button{min-height:46px}#metaIdentity{padding-right:8px}#metaIdentity img{width:34px;height:34px}#metaIdentity b{font-size:14px}#metaIdentity small{font-size:9px;letter-spacing:.8px}#metaInfluence{padding:4px 7px}#metaInfluence img{width:30px;height:30px}#metaInfluence small{display:none}#metaInfluence b{font-size:18px}
 #metaNav{left:8px;right:8px;bottom:max(7px,env(safe-area-inset-bottom));transform:none;justify-content:stretch}#metaNav button{width:auto;flex:1;min-height:52px;flex-direction:column;gap:1px}#metaNav span{font-size:14px}#metaNav b{font-size:11px}
 #v3coach{bottom:112px;grid-template-columns:1fr;gap:10px;padding:12px 13px}.coachStep strong{font-size:20px}.coachStep p{font-size:16px}.coachActions{width:100%}.coachActions button{flex:1;min-height:44px}
 #v2title{padding:66px 12px 74px;justify-content:center;gap:10px;overflow-y:auto}.millionaireWord{font-size:clamp(32px,9.3vw,42px)!important;letter-spacing:.018em!important;max-width:100%;white-space:nowrap}.ttEyebrow{font-size:9px!important;letter-spacing:2px!important}.ttmodes{margin-top:10px!important}.ttmode{min-height:64px;padding:10px 14px!important}.ttmode small{font-size:14px!important;line-height:1.25;margin-top:3px}.ttRules{min-height:44px}
 #metaPanel{padding:60px 8px 68px;align-items:stretch}.metaPanelCard{width:100%;max-height:100%;border-radius:17px}.metaPanelHead{gap:8px;padding:11px 12px}.metaPanelHead h2{font-size:27px}.metaPanelHead>button{height:44px}.metaPanelClose{width:44px}.metaPanelBack{padding:0 10px}.metaPanelBack b{font-size:11px}#metaPanelBody{padding:15px 13px 22px}.metaLead{font-size:16px}
 .metaGrid,.contractGrid{grid-template-columns:1fr}.trophyGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.trophyCase>div:first-child{align-items:start;flex-direction:column}.characterGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.characterCard{min-height:194px;padding:10px}.characterCard img{width:88px;height:88px}.characterCard b{font-size:19px}.characterCard small,.characterCard em{font-size:12px}.houseChoice{min-height:0}
 .characterHero,.profileHero{grid-template-columns:98px minmax(0,1fr);gap:14px}.characterHero>img,.characterPortraitWrap>img,.profileHero>img,.profileHeroPortrait>img{width:92px;height:92px}.founderBadge{font-size:9px;letter-spacing:1.6px;padding:2px 9px}.characterPortraitWrap{width:98px;height:98px}.characterTrophy{width:26px;height:26px;right:1px;bottom:3px}.characterHero h3,.profileHero h3{font-size:30px}.characterBrowse{gap:7px;margin-bottom:12px}.characterBrowse button{font-size:12px;padding:7px}.characterBrowse b{min-width:58px;font-size:19px}.voiceRow{grid-template-columns:1fr}.voiceRow .metaActions{width:100%}.voiceRow button{width:100%}.profileStats{grid-template-columns:repeat(2,1fr)}.accountCard{grid-template-columns:1fr;gap:12px}.accountCard button{width:100%;min-width:0}.accountCard b{font-size:22px}.accountCard small{font-size:16px}
 .houseStanding{grid-template-columns:94px minmax(0,1fr) 42px;gap:8px}.houseStanding b,.houseStanding strong{font-size:17px}
 .masteryRewardsHead{align-items:start;flex-direction:column}.masteryReward{grid-template-columns:62px minmax(0,1fr)}.masteryReward article{grid-template-columns:58px minmax(0,1fr) auto}.masteryReward article small{grid-column:2}.masteryReward article button{grid-column:1/-1;width:100%}.rewardPreview{grid-row:1/3;width:52px;height:46px}.rewardPreview.reaction{width:54px}.rewardLine{font-size:14px;line-height:1.35;align-items:start}.rewardLine b{text-align:right}.socialList article{grid-template-columns:44px minmax(0,1fr)}.socialList article button{grid-column:1/-1;width:100%}
 .resultVictoryCutin{width:92px;height:106px;left:-4px;opacity:.55}.resultHero{padding-left:72px!important;padding-right:12px!important}.resultHero.masteryVictory{min-height:210px;padding-left:43%!important;text-align:left}.resultHero.masteryVictory .resultVictoryCutin{width:46%;height:100%;left:0;opacity:1}.resultHero.masteryVictory .resultTitle{font-size:34px}.resultHero.masteryVictory .resultSub{font-size:15px;line-height:1.3}.resultBody{padding:12px!important;max-height:62vh}.resultActions{grid-template-columns:1fr!important}.resultActions .gold{grid-column:auto!important}
 .lbTarget b{font-size:20px}.lbTarget span{font-size:10px}.lbFairRules{font-size:13px;text-align:left}.lbAdvanced summary span{display:none}
 .lbStep.on{animation:none!important;transform:none!important}.lbAvatarGrid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.lbAvatarChoice{min-height:104px!important}.lbAvatarChoice img{width:58px!important;height:58px!important}.lbAvatarChoice span{font-size:14px!important}.voicePackChoices{grid-template-columns:repeat(3,minmax(0,1fr))!important}.voicePackChoice,.lbVoicePreview{min-height:52px!important}.voicePackChoice b{font-size:12px!important}.voicePackChoice small{font-size:10px!important;line-height:1.15}.lbVoiceEquip{grid-template-columns:1fr!important}.lbContinue{position:static;width:100%!important;margin-top:10px!important}.reactionChoice b{font-size:11px!important}.reactionChoice span{font-size:12px!important;line-height:1.25}.reactionTierHead span{font-size:10px}.lbTarget span{font-size:11px}
}
@media(max-height:690px) and (max-width:700px){#v2title{justify-content:flex-start}.ttSeal,.titleArchitecture,.ttFooter{display:none!important}.tt1{margin-top:10px}.ttmodes{width:100%!important}}
@media(prefers-reduced-motion:reduce){#metaPanel{backdrop-filter:none}#metaPanel.open .metaPanelCard{animation:none}.metaCard,#metaHeader button{transition:none!important}}

/* Final mobile legibility guardrails: explanatory copy stays at body size,
   primary values stay larger, and every persistent control has a full target. */
@media(max-width:700px){
 #v2setB,body:not(.playing) #v2setB{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:10px!important}
 #v2setB span{display:none!important}
 .lbIntro span{max-width:58%;font-size:16px!important;line-height:1.3!important}
 .lbLbl{font-size:16px!important;line-height:1.2;letter-spacing:1.35px!important}
 .lbTarget button{min-height:72px}
 .lbTarget span{font-size:16px!important;line-height:1.15;letter-spacing:.45px}
 .lbFairRules{font-size:16px!important;line-height:1.45!important}
 #lbHint,.lbBack{font-size:16px!important;line-height:1.4!important}
 .metaLead,.socialList small,.archiveSeason small,.rewardLine,.rewardUnlock span{font-size:16px!important;line-height:1.4}
 .friendCode span{font-size:14px}.characterCard small,.characterCard em{font-size:15px!important;line-height:1.3}
}
@media(max-width:360px){
 .lbDifficulty{grid-template-columns:1fr!important}
 .lbDifficulty button{min-width:0;min-height:58px}
}
@media(max-width:400px){
 #v3coach{bottom:128px}
}

/* v120 deterministic tutorial: a compact guide that stays clear of the player's hand. */
.coachProgress{height:3px;margin-top:9px;border-radius:4px;background:rgba(245,239,221,.13);overflow:hidden}.coachProgress i{display:block;height:100%;width:14.285%;border-radius:4px;background:linear-gradient(90deg,#8c6b22,#e8c87a,#8fe6b4);transition:width .25s ease}
body.tutorial #v3coach{left:auto;right:16px;top:86px;bottom:auto;transform:none;width:min(360px,calc(100vw - 32px));grid-template-columns:1fr;align-items:start}
body.tutorial .turnclock{display:none!important}
body.tutorial #v3coach.on{animation:tutorialCoachIn .22s ease-out both}@keyframes tutorialCoachIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
body.tutorial #coachSkip{border-color:rgba(226,61,61,.42);color:#ffcece}
/* v167 (David 2026-08-04): the old 2px ring + 24px glow was invisible on a wide desktop, where
   this button is a small pill in the far corner. Same colours, same geometry — the button is
   never moved or resized — but the halo now reads from across a 2600px window. */
body.tutorial .tutorialFocusDom{animation:tutorialDomPulse 1s ease-in-out infinite;box-shadow:0 0 0 3px #f5efdd,0 0 0 11px rgba(232,200,122,.30),0 0 38px 10px rgba(232,200,122,.9)!important}
#tutorialLeader{display:none;position:fixed;z-index:33;height:2px;transform-origin:0 50%;pointer-events:none;background:linear-gradient(90deg,rgba(232,200,122,.3),#e8c87a);box-shadow:0 0 7px rgba(232,200,122,.72)}
#tutorialLeader.on{display:block}
#tutorialLeader::after{content:"";position:absolute;right:-7px;top:-4px;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:8px solid #e8c87a;filter:drop-shadow(0 0 4px rgba(232,200,122,.8))}
@keyframes tutorialDomPulse{50%{filter:brightness(1.3);transform:scale(1.06)}}
@media(max-width:700px){body.tutorial #v3coach{left:8px;right:8px;top:54px;bottom:auto;width:auto;padding:9px 75px 9px 11px;gap:7px;border-radius:12px}body.tutorial #v3coach.coachLow{top:auto;bottom:62px}body.tutorial .coachStep{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;column-gap:8px}body.tutorial .coachStep small{grid-column:1;white-space:nowrap;font-size:9px}body.tutorial .coachStep strong{grid-column:2;min-width:0;margin:0;font-size:18px!important}body.tutorial .coachStep p,body.tutorial .coachProgress{grid-column:1/-1}body.tutorial .coachStep p{font-size:13px!important;line-height:1.25}body.tutorial .coachActions{width:100%;gap:6px}body.tutorial .coachActions button{min-height:40px;font-size:12px}body.tutorial #coachSkip{position:absolute;right:9px;top:9px;width:58px;min-width:58px;min-height:44px;padding:4px}body.tutorial #coachPrimary{width:100%}.coachProgress{margin-top:6px}}
@media(prefers-reduced-motion:reduce){body.tutorial .tutorialFocusDom{animation:none}body.tutorial #v3coach.on{animation:none}}

/* Table setup: one clear decision path with no floating controls. */
#v3lobby .lbCard{padding-bottom:18px}
#v3lobby .lbHead{padding-right:58px}
#v3lobby .lbHead>span{min-width:0}
#v3lobby .lbHead>#lbSub{flex:0 1 auto;max-width:150px;text-align:right;white-space:nowrap}
.lbSetupIntro{margin-bottom:10px}
.lbSetupGrid{grid-template-columns:1fr;gap:9px}
.lbSetupGrid .lbRow{margin:0;padding:11px 12px}
.lbSetupGrid #lbCountRow,.lbSetupGrid #lbCodeRow{display:flex;align-items:center;justify-content:space-between;gap:18px}
.lbSetupGrid #lbCountRow .lbLbl,.lbSetupGrid #lbCodeRow .lbLbl{margin:0}
.lbTargetRow,.lbDifficultyRow{display:grid;gap:8px}
.lbChoiceNote{color:#9db4a9;font:700 12px/1.3 Barlow;text-align:center;letter-spacing:.2px}
.lbChoiceNote i{margin:0 7px;color:#6f9181;font-style:normal}
.lbReadyDock{position:static;z-index:auto;display:grid;gap:8px;margin-top:10px;padding:0;background:none}
#lbHint{order:0;min-height:18px;margin:0;padding:0 8px;color:#9db4a9;font:700 12px/1.35 Barlow;letter-spacing:.25px}
#lbReady{order:1;min-height:52px;margin:0}
#lbSeats{margin:10px 0 0}
.lbAdvanced{margin-top:0}

@media(max-width:700px){
 #v3lobby .lbCard{padding:12px 11px 14px}
 #v3lobby .lbHead{min-height:46px;padding:0 54px 8px 50px;align-items:center}
 #v3lobby .lbHead span{font-size:16px;letter-spacing:3px}
 #v3lobby .lbHead span small{font-size:8px;letter-spacing:2px}
 #v3lobby .lbHead>#lbSub{max-width:90px;font-size:11px;line-height:1.05;letter-spacing:1px;white-space:normal}
 .lbSetupIntro{margin:8px 0 4px}
 .lbSetupIntro strong{font-size:23px}
 .lbSetupGrid{gap:7px}
 .lbSetupGrid .lbRow{padding:9px 10px}
 .lbSetupGrid #lbCountRow{min-height:58px}
 .lbSetupGrid .lbLbl{margin-bottom:5px;font-size:13px!important;line-height:1.2;letter-spacing:1.2px!important}
 .lbStepper{flex:0 0 150px}
 .lbTarget{gap:6px}
 .lbTarget button{min-height:58px;padding:7px 4px}
 .lbTarget b{font-size:22px}
 .lbTarget span{font-size:12px!important;line-height:1.15;letter-spacing:.35px}
 .lbChoiceNote{font-size:12px;line-height:1.3}
 .lbAdvanced summary{min-height:44px;box-sizing:border-box;padding:13px 12px}
 #lbSeats{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:8px}
 .lbSeat{min-height:70px;padding:5px 2px}
 .lbSeat img{width:36px;height:36px}
 .lbSeat .nm{font-size:10px;line-height:1.1}
 .lbSeat .st{font-size:8px;line-height:1.1;letter-spacing:.2px}
 .lbReadyDock{margin-top:8px;gap:6px;padding:0}
 #lbHint{font-size:12px!important;line-height:1.3!important}
 #lbReady{min-height:52px;padding:10px;font-size:19px}
 .lbBack{margin-top:5px;font-size:13px!important;line-height:1.2!important}
}
@media(max-width:370px){
 #v3lobby .lbHead>#lbSub{display:none}
 .lbTarget span{font-size:11px!important}
 .lbChoiceNote{font-size:11px}
}

/* v134 Founder reward: speech access plus one irreversible core-character mastery ceremony. */
.founderProfileCard{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;margin-top:18px;padding:16px;border:1px solid rgba(244,207,104,.72);border-radius:15px;background:radial-gradient(circle at 92% 10%,rgba(255,224,126,.2),transparent 38%),linear-gradient(135deg,rgba(78,55,10,.7),rgba(8,34,24,.95));box-shadow:0 0 28px rgba(232,200,122,.12),inset 0 1px rgba(255,255,255,.09)}.founderProfileCard span,.founderProfileCard b,.founderProfileCard small{display:block}.founderProfileCard span{font:900 11px Barlow;letter-spacing:2px;color:#ffe69a}.founderProfileCard b{margin-top:4px;font:400 23px 'Bebas Neue';letter-spacing:.9px;color:#fff6d6}.founderProfileCard small{margin-top:3px;font:650 14px/1.35 Barlow;color:#c9d6cf}.founderProfileCard>strong{padding:8px 11px;border:1px solid #ffe69a;border-radius:999px;color:#ffe69a;font:900 11px Barlow;letter-spacing:1.5px}.founderMasteryPicker,.founderMasteryConfirm{text-align:left}.founderMasteryPicker .dialogKicker,.founderMasteryConfirm .dialogKicker{display:block;color:#e8c87a;font:900 10px Barlow;letter-spacing:2px}.founderMasteryPicker h3,.founderMasteryConfirm h3{margin:5px 0 8px}.founderMasteryPicker p,.founderMasteryConfirm p{margin:0 0 15px;color:#c0d0c8;font:650 15px/1.42 Barlow}.founderMasteryGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.founderMasteryChoice{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;min-height:64px;padding:7px 9px;border:1px solid rgba(232,200,122,.32);border-radius:11px;background:#071f17;color:#f5efdd;text-align:left;cursor:pointer}.founderMasteryChoice:hover{border-color:#e8c87a;background:#0d3024}.founderMasteryChoice img{width:46px;height:46px;border-radius:50%;object-fit:cover;border:2px solid #b8943f}.founderMasteryChoice b,.founderMasteryChoice small{display:block}.founderMasteryChoice b{font:400 18px 'Bebas Neue';letter-spacing:.7px}.founderMasteryChoice small{margin-top:2px;color:#9db4a9;font:700 11px Barlow}.founderMasteryConfirm{text-align:center}.founderMasteryConfirm>img{display:block;width:132px;height:132px;margin:14px auto 8px;border:4px solid #e8c87a;border-radius:50%;object-fit:cover;box-shadow:0 0 0 5px rgba(232,200,122,.16),0 0 42px rgba(232,200,122,.34)}
.founderMasteryCeremony{position:fixed;z-index:120;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px;box-sizing:border-box;overflow:hidden;background:radial-gradient(circle at 50% 42%,rgba(98,69,10,.72),rgba(2,13,9,.96) 62%);opacity:0;transform:scale(1.04);transition:opacity .32s ease,transform .5s cubic-bezier(.2,.8,.2,1);pointer-events:none}.founderMasteryCeremony.on{opacity:1;transform:none}.founderMasteryCeremony>span,.founderMasteryCeremony>img,.founderMasteryCeremony>strong,.founderMasteryCeremony>small{position:relative;z-index:3}.founderMasteryCeremony>span{margin-bottom:14px;color:#ffe69a;font:900 12px Barlow;letter-spacing:3.2px}.founderMasteryCeremony>img{width:min(42vw,230px);aspect-ratio:1;border:6px solid #f3d87e;border-radius:50%;object-fit:cover;box-shadow:0 0 0 10px rgba(232,200,122,.14),0 0 75px rgba(255,219,104,.55);animation:founderPortraitIn .8s cubic-bezier(.15,.8,.2,1) both}.founderMasteryCeremony>strong{margin-top:20px;color:#fff7d8;font:400 clamp(36px,7vw,70px)/1 'Bebas Neue';letter-spacing:3px;text-align:center;text-shadow:0 3px 0 #755515,0 0 30px rgba(255,225,127,.65)}.founderMasteryCeremony>small{margin-top:8px;color:#e8c87a;font:900 12px Barlow;letter-spacing:2px;text-align:center}.founderMasteryBurst{position:absolute;z-index:1;width:min(75vw,560px);aspect-ratio:1;border:2px solid rgba(255,229,145,.5);border-radius:50%;box-shadow:0 0 0 22px rgba(255,225,127,.055),0 0 0 68px rgba(255,225,127,.035);animation:founderBurst 1.2s ease-out both}.founderMasteryBurst:before,.founderMasteryBurst:after{content:"";position:absolute;inset:14%;border:1px solid rgba(255,241,188,.45);transform:rotate(45deg)}.founderMasteryBurst:after{transform:rotate(22.5deg)}.founderMasteryParticles{position:absolute;z-index:2;inset:0}.founderMasteryParticles i{--angle:calc(var(--i)*22.5deg);position:absolute;left:50%;top:45%;width:7px;height:18px;border-radius:8px;background:linear-gradient(#fff8d4,#d6a52d);box-shadow:0 0 12px #ffe78f;transform:rotate(var(--angle)) translateY(-52px);animation:founderSpark 1.35s calc(var(--i)*.025s) ease-out both}@keyframes founderPortraitIn{from{opacity:0;transform:scale(.45) rotate(-8deg)}60%{transform:scale(1.08) rotate(2deg)}to{opacity:1;transform:none}}@keyframes founderBurst{from{opacity:0;transform:scale(.2) rotate(-18deg)}55%{opacity:1}to{opacity:.45;transform:scale(1.12) rotate(5deg)}}@keyframes founderSpark{0%{opacity:0;transform:rotate(var(--angle)) translateY(-50px) scale(.3)}25%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateY(-42vh) scale(1.2)}}
@media(max-width:700px){.founderProfileCard{grid-template-columns:1fr}.founderProfileCard .metaPrimary{width:100%}.founderMasteryGrid{grid-template-columns:1fr}.founderMasteryChoice{min-height:58px}.founderMasteryCeremony>img{width:min(58vw,210px)}.founderMasteryCeremony>small{max-width:290px;line-height:1.4}.founderMasteryCeremony>strong{font-size:44px}}@media(prefers-reduced-motion:reduce){.founderMasteryCeremony,.founderMasteryCeremony>*{animation:none!important;transition:none!important}.founderMasteryCeremony.on{opacity:1}}

/* ══ THE FOUNDER MOMENT (v142) ══════════════════════════════════════════════════════════
   Same visual family as the mastery ceremony above, so it reads as part of the game.
   The portrait uses the SAME engraved-band treatment as the in-match Founder portrait
   (see drawAvatar in v3.js) so the thing they see here is the thing others will see at
   the table. Interactive, so unlike the mastery flourish it waits for a choice. */
.founderCeremony{position:fixed;z-index:130;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;overflow:hidden;background:radial-gradient(circle at 50% 40%,rgba(64,46,8,1),rgba(2,13,9,1) 64%);opacity:0;transform:scale(1.04);transition:opacity .34s ease,transform .55s cubic-bezier(.2,.8,.2,1)}
.founderCeremony.on{opacity:1;transform:none}
.founderCeremony>*{position:relative;z-index:3}
.founderCeremonyKicker{margin-bottom:16px;color:#ffe69a;font:900 11px Barlow;letter-spacing:3.4px;text-align:center}
.founderPortrait{position:relative;display:grid;place-items:center;animation:founderPortraitIn .85s cubic-bezier(.15,.8,.2,1) both}
.founderPortrait img{width:min(40vw,196px);aspect-ratio:1;border-radius:50%;object-fit:cover;border:5px solid #f3d87e;box-shadow:0 0 0 7px #8c6b22,0 0 0 9px #fff3d6,0 0 78px rgba(255,219,104,.6)}
.founderPortrait b{position:absolute;bottom:-11px;padding:4px 15px;border:1px solid #fff3d6;border-radius:999px;background:#6b4e14;color:#fff3d6;font:900 11px Barlow;letter-spacing:2.4px;box-shadow:0 4px 12px rgba(0,0,0,.6);animation:founderStamp .5s .5s cubic-bezier(.2,1.5,.4,1) both}
.founderCeremony>strong{margin-top:26px;color:#fff7d8;font:400 clamp(34px,7.5vw,66px)/1 'Bebas Neue';letter-spacing:3px;text-align:center;text-shadow:0 3px 0 #755515,0 0 32px rgba(255,225,127,.7)}
.founderCeremonyList{margin:16px 0 22px;padding:0;list-style:none;max-width:390px;text-align:center}
.founderCeremonyList li{margin:7px 0;color:#e8d9ac;font:600 13px/1.45 Barlow}
.founderCeremonyList li:before{content:"◆ ";color:#f3d87e}
.founderCeremony .v2opt{min-width:min(78vw,290px)}
.founderCeremonyHint{margin-top:10px;color:#c9b98c;font:600 11px Barlow;letter-spacing:.4px;text-align:center;opacity:.9}
.founderCeremonyRays{position:absolute;z-index:1;inset:0;pointer-events:none}
.founderCeremonyRays i{--angle:calc(var(--i)*30deg);position:absolute;left:50%;top:44%;width:6px;height:20px;border-radius:8px;background:linear-gradient(#fff8d4,#d6a52d);box-shadow:0 0 14px #ffe78f;transform:rotate(var(--angle)) translateY(-56px);animation:founderSpark 1.5s calc(var(--i)*.03s) ease-out both}
.founderCeremonyBurst{position:absolute;z-index:1;width:min(78vw,580px);aspect-ratio:1;border:2px solid rgba(255,229,145,.5);border-radius:50%;box-shadow:0 0 0 24px rgba(255,225,127,.06),0 0 0 72px rgba(255,225,127,.035);animation:founderBurst 1.3s ease-out both}
@keyframes founderStamp{from{opacity:0;transform:scale(2.2)}to{opacity:1;transform:none}}
@media(max-width:700px){.founderPortrait img{width:min(52vw,176px)}.founderCeremony>strong{font-size:42px}.founderCeremonyList li{font-size:12px}}
@media(prefers-reduced-motion:reduce){.founderCeremony,.founderCeremony *{animation:none!important;transition:none!important}.founderCeremony.on{opacity:1}}

/* ══ NEXT ROUND PROMPT (v143) ══════════════════════════════════════════════════════════
   Shown on the results screen after an event match. The game asks whether they want
   another game and what size, because the testers are split across two chat apps and
   cannot organise it between themselves. */
.eventNextRound{margin-top:10px;padding:12px;border:1px solid rgba(232,200,122,.34);border-radius:12px;background:linear-gradient(180deg,rgba(107,78,20,.22),rgba(7,29,22,.5));text-align:center}
.eventNextRound>b{display:block;color:#f3d87e;font:900 12px Barlow;letter-spacing:2.2px}
.eventNextRound>small{display:block;margin-top:4px;color:#c9b98c;font:600 11px Barlow;letter-spacing:.3px}
.eventNextChoices{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}
.eventNextChoices .v2opt{margin:0}
.eventNextChoices .v2opt:last-child{grid-column:1 / -1}
.eventNextRound .v2opt{min-width:0}
@media(max-width:420px){.eventNextChoices{grid-template-columns:1fr}.eventNextChoices .v2opt:last-child{grid-column:auto}}

/* ===== v170 THE CARD GUIDE — types, counts and what each does (CLAUDE.md §7b.15).
   Content is generated in v3.js from the ENGINE's own arrays; this file only dresses it. One
   column on a phone, 44px tabs, and the modal body scrolls — the page never scrolls sideways. */
.libraryBox{max-width:980px;width:min(980px,calc(100vw - 24px))}
.cardLibrary h3{margin:6px 0 10px}
.libTabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;position:sticky;top:0;z-index:2;background:linear-gradient(180deg,#071b14 72%,rgba(7,27,20,0))}
.libTabs button{flex:1 1 auto;min-height:44px;padding:6px 10px;border:1px solid rgba(210,180,104,.34);border-radius:9px;background:rgba(9,32,24,.9);color:#cfe2d6;font:800 11px/1.1 'Barlow Semi Condensed',Barlow,sans-serif;letter-spacing:.08em;cursor:pointer}
.libTabs button.on{border-color:#E8C87A;background:linear-gradient(180deg,#E8C87A,#C9A24B);color:#1a1206}
.libBody{max-height:min(64vh,580px);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-right:2px}
.libLead{font:700 14px/1.5 Barlow;color:#cfe2d6;margin:0 0 14px}

/* --- tab 1: the three decks --- */
.libDecks{display:grid;gap:10px}
.libDeck{padding:12px;border:1px solid rgba(210,180,104,.22);border-radius:12px;background:rgba(5,20,15,.55)}
.libDeck header{display:flex;align-items:center;gap:11px;margin-bottom:8px}
.libDeck h4{margin:0;font:900 15px/1.1 'Bebas Neue',Barlow;letter-spacing:.06em;color:#F5EFDD}
.libDeck header b{display:block;font:900 13px/1.3 Barlow;color:#E8C87A}
.libBack{width:34px;height:48px;border-radius:6px;display:block;flex:0 0 auto;border:1.5px solid}
.libBack.b-c{background:#11294A;border-color:#4d63ad}
.libBack.b-o{background:#0B2E1F;border-color:#2E8B57}
.libBack.b-m{background:#2A0E3A;border-color:#8E4DC9}
.libDeckBar{height:8px;border-radius:5px;background:rgba(255,255,255,.06);overflow:hidden;margin-bottom:8px}
.libDeckBar i{display:block;height:100%;border-radius:5px}
.libDeck.d-c .libDeckBar i{background:#4d63ad}
.libDeck.d-o .libDeckBar i{background:#2E8B57}
.libDeck.d-m .libDeckBar i{background:#8E4DC9}
.libDeck p{margin:0;font:600 12.5px/1.5 Barlow;color:#bcd2c6}

/* --- tab 2: the three career types, each with its tier ladder --- */
.libType{padding:12px;border:1px solid rgba(210,180,104,.22);border-radius:12px;background:rgba(5,20,15,.55);margin-bottom:11px;border-left:4px solid}
.libType.t-sal{border-left-color:#4d63ad}
.libType.t-self{border-left-color:#2E8B57}
.libType.t-crime{border-left-color:#D96A6A}
.libType header{display:flex;align-items:baseline;flex-wrap:wrap;gap:9px;margin-bottom:6px}
.libType h4{margin:0;font:900 16px/1.1 'Bebas Neue',Barlow;letter-spacing:.06em;color:#F5EFDD}
.libType header b{font:900 13px/1 Barlow;color:#E8C87A}
.libType header em{font:700 11px/1 Barlow;font-style:normal;color:#9db4a9}
.libType p{margin:0 0 9px;font:600 12.5px/1.5 Barlow;color:#bcd2c6}
.libTiers{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.libTiers li{display:grid;grid-template-columns:auto auto auto 1fr;align-items:baseline;gap:8px;padding:6px 8px;border-radius:8px;background:rgba(255,255,255,.035)}
.libTiers b{font:900 11px/1 'Barlow Semi Condensed',Barlow;letter-spacing:.07em;color:#F5EFDD;white-space:nowrap}
.libTiers em{font:800 11px/1 Barlow;font-style:normal;color:#E8C87A;white-space:nowrap}
.libTiers span{font:600 12px/1.4 Barlow;color:#bcd2c6}

/* --- tabs 3 and 4: the four Opportunity types and the eight Market kinds --- */
.libRarity{display:grid;gap:7px;margin:0 0 16px;padding:11px;border:1px solid rgba(210,180,104,.22);border-radius:12px;background:rgba(5,20,15,.55)}
.libBar{display:grid;grid-template-columns:26px minmax(96px,auto) 1fr 34px;align-items:center;gap:8px}
.libBar b{font:800 11px/1 'Barlow Semi Condensed',Barlow;letter-spacing:.06em;color:#F5EFDD;white-space:nowrap}
.libBar i{height:11px;border-radius:6px;display:block;min-width:8px}
.libBar em{font:900 13px/1 Barlow;color:#E8C87A;font-style:normal;text-align:right}
.libGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:9px}
.libCard{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;padding:9px;border:1px solid rgba(210,180,104,.2);border-radius:11px;background:rgba(6,24,18,.72)}
.libCard img{width:64px;height:64px;object-fit:cover;border-radius:8px;background:rgba(255,255,255,.05);display:block}
.libCard h4{margin:0 0 4px;font:900 13px/1.15 'Barlow Semi Condensed',Barlow;letter-spacing:.04em;color:#F5EFDD}
.libMeta{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:5px}
.libAcc{display:inline-flex;align-items:center;gap:4px;font:800 10px/1 Barlow;letter-spacing:.07em;color:#9db4a9}
.libGem{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 4px;border:1.2px solid rgba(245,239,221,.8);border-radius:5px;font:900 11px/1 Barlow;font-style:normal;color:#100d14}
.libStars{font-size:12px;letter-spacing:1px;line-height:1;white-space:nowrap}
.libStars i{color:#444a66;font-style:normal}
.libCard ul{margin:0;padding-left:15px}
.libCard li{font:600 12px/1.4 Barlow;color:#bcd2c6;margin-bottom:2px}
@media(max-width:700px){
 .libGrid{grid-template-columns:1fr}
 .libBody{max-height:66vh}
 .libTabs button{flex:1 1 44%;font-size:10px}
 .libBar{grid-template-columns:24px 1fr 30px;row-gap:3px}
 .libBar i{grid-column:1/-1}
 .libTiers li{grid-template-columns:auto auto auto;row-gap:2px}
 .libTiers span{grid-column:1/-1}
}

/* ══ VICTORY CEREMONY ON THE RESULTS SCREEN (v176) ═════════════════════════════════════════
   David's ruling 2026-08-05: "when a player wins a match, just a screen is shown plainly. I
   want it animated in, with glow rim sparkles or something victorious and the music plays."
   Built from the SAME parts as the Founder ceremony above — champagne rim, ray fan, burst ring
   (§4.5, one factory per visual concept) — so a win reads as part of the game and not as a
   second visual language bolted on. WINNER ONLY: a losing table keeps the plain box and stays
   silent, and that contrast is what makes the gold mean anything. The rim lives on the box's own
   box-shadow rather than a ::after overlay because #v2mbox scrolls, and an absolutely positioned
   overlay inside a scrolling box only covers its first screenful. */
.resultbox.victoryWin{border-color:rgba(255,229,145,.82)!important;animation:victoryBoxIn .58s cubic-bezier(.18,1.1,.32,1) both,victoryRim 2.8s .6s ease-in-out infinite}
.resultbox.victoryWin .resultHero{background:radial-gradient(120% 150% at 50% 0,rgba(255,225,127,.34),transparent 66%)}
.resultbox.victoryWin .resultTitle{color:#fff7d8;text-shadow:0 2px 0 #6b4e14,0 0 34px rgba(255,225,127,.72);animation:victoryTitleIn .5s .16s cubic-bezier(.2,1.5,.4,1) both}
.resultbox.victoryWin .resultKicker{color:#e8d9ac}
.victoryRays{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.victoryRays i{--angle:calc(var(--i)*30deg);position:absolute;left:50%;top:54%;width:5px;height:17px;margin:-8px 0 0 -2px;border-radius:8px;background:linear-gradient(#fff8d4,#d6a52d);box-shadow:0 0 12px #ffe78f;transform:rotate(var(--angle)) translateY(-40px);animation:victorySpark 1.7s calc(.14s + var(--i)*.045s) ease-out 2 both}
.victoryBurst{position:absolute;left:50%;top:54%;z-index:0;width:186px;height:186px;margin:-93px 0 0 -93px;border:2px solid rgba(255,229,145,.5);border-radius:50%;pointer-events:none;box-shadow:0 0 0 18px rgba(255,225,127,.06);animation:victoryBurst 1.3s .08s ease-out both}
@keyframes victoryBoxIn{from{opacity:0;transform:scale(.86) translateY(18px)}to{opacity:1;transform:none}}
@keyframes victoryTitleIn{from{opacity:0;transform:scale(1.55)}to{opacity:1;transform:none}}
@keyframes victoryRim{0%,100%{box-shadow:0 30px 80px rgba(0,0,0,.78),inset 0 0 0 1px rgba(255,240,190,.34),0 0 26px rgba(232,200,122,.22)}50%{box-shadow:0 30px 80px rgba(0,0,0,.78),inset 0 0 0 1px rgba(255,247,216,.8),0 0 60px rgba(232,200,122,.5)}}
@keyframes victorySpark{0%{opacity:0;transform:rotate(var(--angle)) translateY(-6px) scaleY(.4)}30%{opacity:1}100%{opacity:0;transform:rotate(var(--angle)) translateY(-104px) scaleY(1.6)}}
@keyframes victoryBurst{from{opacity:.9;transform:scale(.14)}to{opacity:0;transform:scale(2.7)}}
@media(max-width:700px){.victoryBurst{width:150px;height:150px;margin:-75px 0 0 -75px}}
@media(prefers-reduced-motion:reduce){.resultbox.victoryWin,.resultbox.victoryWin *{animation:none!important}.victoryRays,.victoryBurst{display:none}}

/* v180 — Amara hosts the tutorial, SPEAKING the coach card (David 2026-08-06): her portrait
   peeks over the card's top-left like a chat avatar, a small notch points from the card to her
   chin (speech-bubble read), and she pulses gently while a step is showing. All of it is
   absolutely positioned INSET over the card's own edge — it can never disturb the coach grid,
   cover the EXIT button (top-right), the leader line, or any board target (§7b geometry laws).
   Motion honours reduced-motion via the media query, the CSS twin of the RMQ law (§7b.11). */
#coachHost{display:none;position:absolute;left:14px;top:-30px;width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid #e8c87a;background:#0a211b;box-shadow:0 4px 14px rgba(0,0,0,.55);z-index:2;pointer-events:none}
body.tutorial #coachHost{display:block} /* Amara belongs to the tutorial only; the shared coach card stays plain elsewhere */
body.tutorial #v3coach.on::before{content:'';position:absolute;left:28px;top:-5px;width:11px;height:11px;transform:rotate(45deg);background:#082018;border-left:1px solid rgba(232,200,122,.72);border-top:1px solid rgba(232,200,122,.72);z-index:1;pointer-events:none}
body.tutorial .coachStep small{padding-left:48px} /* the kicker (AMARA · CHAPTER…) steps aside for her chin; titles and text keep the full width */
@media (prefers-reduced-motion:no-preference){body.tutorial #v3coach.on #coachHost{animation:coachHostSpeak 2.6s ease-in-out infinite}}
@keyframes coachHostSpeak{0%,100%{transform:scale(1);box-shadow:0 4px 14px rgba(0,0,0,.55)}50%{transform:scale(1.06);box-shadow:0 4px 18px rgba(232,200,122,.35)}}
@media(max-width:700px){#coachHost{width:34px;height:34px;left:11px;top:-20px;border-width:1.5px}body.tutorial #v3coach.on::before{left:22px;top:-4px;width:9px;height:9px}body.tutorial .coachStep small{padding-left:36px}}
