:root {
  --gold: #f7c84b;
  --gold2: #a8680b;
  --red: #c9150d;
  --dark: #090302;
  --cream: #fff2bf;
}
* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  margin: 0; color: white; overflow-x: hidden;
  font-family: "Barlow Condensed", "Noto Sans SC", sans-serif;
  background:
    radial-gradient(circle at 50% 17%, rgba(255,200,65,.25), transparent 23%),
    linear-gradient(115deg, transparent 49.6%, rgba(255,193,71,.08) 50%, transparent 50.4%),
    radial-gradient(ellipse at center bottom, #5c0e05 0, #250402 48%, #070201 100%);
}
body::before { content:""; position:fixed; inset:0; pointer-events:none; opacity:.16; background-image:radial-gradient(#ffdf7d 1px, transparent 1px); background-size:24px 24px; }
.lights { position:fixed; inset:0; pointer-events:none; background:linear-gradient(73deg, transparent 44%, rgba(255,236,179,.08) 50%, transparent 56%), linear-gradient(-73deg, transparent 44%, rgba(255,236,179,.08) 50%, transparent 56%); }
button { font:inherit; }
.topbar { height:88px; display:flex; align-items:center; justify-content:center; position:relative; border-bottom:1px solid rgba(247,200,75,.25); background:linear-gradient(#180807, rgba(15,3,2,.72)); box-shadow:0 8px 30px #0009; z-index:5; }
.brand { width:300px; min-height:62px; display:flex; align-items:center; justify-content:center; gap:8px; font-weight:900; font-style:italic; letter-spacing:-1px; color:#080300; text-shadow:0 1px #fff4a4; background:radial-gradient(ellipse, #fff2a3 0, #f7bd25 45%, #a35c04 72%, transparent 74%); filter:drop-shadow(0 0 12px #f0a51488); }
.brand-small { font-size:25px; transform:skew(-7deg); }.brand-or { color:#b00b05; font-size:17px; border-radius:50%; padding:6px 5px; background:#1a0502; text-shadow:0 1px #ff7159; }
.icon-btn { position:absolute; top:23px; width:42px; height:42px; color:var(--gold); border:1px solid #805519; border-radius:50%; background:#190805; cursor:pointer; font-size:22px; box-shadow:inset 0 0 8px #000; }.icon-btn:hover { background:#3a120a; }.icon-btn:first-child { left:22px; }.icon-btn:last-child { right:22px; }
.game-shell { display:grid; grid-template-columns:170px minmax(550px, 1fr) 170px; max-width:1280px; margin:0 auto; padding:22px 20px 42px; gap:25px; min-height:calc(100vh - 88px); }
.money-board { display:flex; flex-direction:column; gap:6px; padding-top:67px; }
.money-item { height:34px; display:flex; align-items:center; justify-content:space-between; padding:0 13px; font-size:20px; font-weight:800; letter-spacing:.5px; color:#1a0801; background:linear-gradient(100deg,#b3690b,#ffe26b 48%,#c57c11); border:1px solid #ffda69; clip-path:polygon(7% 0,100% 0,93% 100%,0 100%); transition:.35s; box-shadow:inset 0 1px #fff7a6; }
.money-item span { font-size:13px; opacity:.65; }.money-item.gone { color:#6e5a48; background:linear-gradient(100deg,#281a15,#4b3c32,#211511); border-color:#554337; text-decoration:line-through; opacity:.72; }
.money-item.last { animation:pulseMoney 1s infinite alternate; }
@keyframes pulseMoney { to { filter:brightness(1.45); box-shadow:0 0 18px #ffc735; } }
.stage { min-width:0; position:relative; display:flex; flex-direction:column; }
.status-row { display:grid; grid-template-columns:80px 1fr 80px; align-items:center; gap:12px; min-height:55px; }
.round-pill { text-align:center; border:1px solid #754718; border-radius:6px; background:#160704dd; padding:3px; }.round-pill span { display:block; color:#c39c63; font-size:10px; letter-spacing:1.3px; }.round-pill strong { color:var(--gold); font-size:25px; line-height:25px; }
.instruction { text-align:center; color:#ffe8aa; font-weight:800; font-size:21px; letter-spacing:.5px; text-shadow:0 2px 6px #000; }
.banker-display { height:62px; max-width:360px; width:80%; margin:8px auto 17px; border:1px solid #846226; border-radius:50%; text-align:center; background:radial-gradient(ellipse,#35130b,#0d0302 72%); box-shadow:0 0 22px #e8a82922, inset 0 0 15px #000; display:flex; flex-direction:column; justify-content:center; }
.banker-label { color:#a88957; font-size:10px; letter-spacing:3px; }.banker-display strong { color:#ffe280; font-size:24px; line-height:25px; }
.cases { display:grid; grid-template-columns:repeat(6, 1fr); gap:23px 13px; align-content:center; flex:1; padding:6px 8px 12px; perspective:800px; }
.case { position:relative; aspect-ratio:1.48; min-height:55px; border:0; border-radius:6px 6px 12px 12px; cursor:pointer; color:#211000; font-weight:900; font-size:25px; background:linear-gradient(145deg,#fff1a0 0,#e1a82c 25%,#8c5004 53%,#edbd3d 76%,#a75e08); box-shadow:inset 0 2px #fff8bd, inset 0 -5px 8px #5b2a00aa, 0 7px 5px #0008, 0 0 0 2px #6c3905; transition:transform .18s, filter .18s; }
.case::before { content:""; position:absolute; width:42%; height:12px; left:29%; top:-10px; border:5px solid #c18a20; border-bottom:0; border-radius:8px 8px 0 0; }
.case::after { content:""; position:absolute; inset:8px 9px; border:1px solid #ffe38666; border-radius:2px; }
.case:hover { transform:translateY(-6px) rotateX(4deg); filter:brightness(1.2); }.case:active { transform:translateY(1px); }
.case.chosen { animation:chosen 1s infinite alternate; box-shadow:0 0 25px #ffe06d, 0 7px 5px #0008; }.case.opened { pointer-events:none; animation:openCase .65s forwards; }
@keyframes chosen { to { transform:scale(1.07); filter:brightness(1.25); } }
@keyframes openCase { 45% { transform:rotateY(100deg) scale(1.1); } 100% { transform:rotateY(180deg) scale(0); opacity:0; } }
.player-case-wrap { height:70px; display:flex; align-items:center; justify-content:center; gap:12px; opacity:.25; transition:.4s; }.player-case-wrap.active { opacity:1; }.player-caption { font-size:12px; color:#d0a766; letter-spacing:2px; }.mini-case { width:77px; height:45px; display:grid; place-items:center; color:#2b1000; font-size:24px; font-weight:900; border-radius:5px 5px 9px 9px; background:linear-gradient(135deg,#ffdf73,#9b5708); border:2px solid #f7d15b; box-shadow:0 0 18px #f5b32255; }
.modal-backdrop { position:fixed; inset:0; z-index:20; display:grid; place-items:center; padding:20px; background:#020000c9; backdrop-filter:blur(8px); transition:.3s; }.modal-backdrop.hidden { opacity:0; pointer-events:none; }
.modal-card { width:min(520px,100%); text-align:center; padding:30px 34px 34px; border:2px solid #b9811d; border-radius:18px; background:radial-gradient(circle at 50% 0,#542014,#160503 55%,#080202); box-shadow:0 0 70px #f3ac252f, inset 0 0 30px #000; transform:scale(1); transition:.3s; }.hidden .modal-card { transform:scale(.8); }
.phone { color:#efc14e; font-size:43px; animation:ring .55s 3; }.phone.hidden { display:none; } @keyframes ring { 25%{transform:rotate(12deg)} 75%{transform:rotate(-12deg)} }
.eyebrow { color:#b9975f; font-size:13px; letter-spacing:4px; margin:6px 0; }.modal-card h1 { margin:4px 0; color:#ffe280; font-size:64px; line-height:1; text-shadow:0 0 24px #f1b62766; }.modal-card>p:not(.eyebrow) { color:#d5c2a7; font-family:"Noto Sans SC",sans-serif; font-size:14px; }
.deal-actions { display:grid; grid-template-columns:1fr 1fr; gap:15px; margin-top:27px; }.deal-btn { min-height:78px; cursor:pointer; border-radius:9px; border:2px solid; color:#fff; box-shadow:inset 0 1px #ffffff55, 0 7px 15px #0009; }.deal-btn span { display:block; font-weight:900; font-size:28px; }.deal-btn small { opacity:.75; font-family:"Noto Sans SC",sans-serif; }.deal-btn.yes { background:linear-gradient(#35a34a,#126524); border-color:#65d278; }.deal-btn.no { background:linear-gradient(#d03126,#83120c); border-color:#f15f51; }.deal-btn:hover { filter:brightness(1.2); transform:translateY(-2px); }
.primary-btn { border:1px solid #ffde6c; color:#211000; background:linear-gradient(#ffeb83,#bd7910); border-radius:6px; padding:13px 42px; font-size:19px; font-weight:800; cursor:pointer; margin-top:19px; }.hidden { display:none !important; }
.toast { position:fixed; z-index:30; left:50%; top:50%; transform:translate(-50%,-50%) scale(.7); opacity:0; pointer-events:none; min-width:230px; text-align:center; padding:20px 25px; border-radius:10px; background:#120402ee; border:2px solid #d49a29; color:#ffe385; font-size:30px; font-weight:900; box-shadow:0 0 60px #000; transition:.25s; }.toast.show { opacity:1; transform:translate(-50%,-50%) scale(1); }
@media (max-width:900px) { .game-shell { grid-template-columns:105px minmax(390px,1fr) 105px; gap:8px; padding-inline:8px; }.money-item { font-size:15px; height:31px; padding-inline:8px; }.cases { gap:18px 8px; }.case { font-size:20px; min-height:48px; } }
@media (max-width:650px) { .topbar { height:70px; }.brand { transform:scale(.82); }.game-shell { grid-template-columns:1fr 1fr; padding:8px 7px 25px; gap:5px; }.stage { grid-column:1/-1; grid-row:1; }.money-board { grid-row:2; padding-top:5px; gap:3px; }.money-board.left { grid-column:1; }.money-board.right { grid-column:2; }.money-item { height:27px; clip-path:none; font-size:15px; }.cases { grid-template-columns:repeat(5,1fr); gap:18px 8px; min-height:440px; padding-inline:4px; }.case { min-height:47px; }.banker-display { margin-bottom:12px; }.instruction { font-size:17px; }.modal-card h1 { font-size:48px; } }

/* Live studio atmosphere */
.audience{position:fixed;z-index:0;inset:auto 0 0;height:25vh;overflow:hidden;opacity:.66;pointer-events:none;background:linear-gradient(transparent,#070101 62%)}
.audience-row{position:absolute;left:-1%;width:102%;height:70px;background:radial-gradient(circle at 17px 17px,#1b0b09 0 10px,transparent 11px) 0 0/34px 45px repeat-x;filter:drop-shadow(0 -3px 4px #f0a72b22)}
.audience-row::after{content:"";position:absolute;inset:22px 0 0;background:repeating-linear-gradient(90deg,#120605 0 26px,transparent 26px 34px)}
.audience-row.back{bottom:49px;transform:scale(.88);opacity:.6}.audience-row.front{bottom:0;background-position:11px 1px}
.stage{z-index:1;border-radius:48% 48% 4% 4%/8% 8% 2% 2%;background:radial-gradient(ellipse at 50% 104%,#b2480b33,transparent 50%);box-shadow:inset 0 -3px #bd761533}
.studio-sign{position:absolute;right:6px;top:-17px;color:#e25c4e;font:700 9px/1 sans-serif;letter-spacing:2px;border:1px solid #7d221b;padding:4px 7px;border-radius:3px;background:#1a0302;box-shadow:0 0 10px #e63426;animation:liveBlink 1.8s infinite}
@keyframes liveBlink{50%{color:#ff9c90;box-shadow:0 0 17px #ff3c2b}}
.banker-display{height:70px;max-width:430px;width:85%;border-radius:12px 12px 50% 50%;background:linear-gradient(90deg,#070202,#34140d 50%,#070202);display:grid;grid-template-columns:72px 1fr 72px;align-items:center;overflow:hidden;position:relative}
.banker-display::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 35%,#ffe9971c 48%,transparent 60%);transform:translateX(-100%);animation:boothScan 4s infinite}@keyframes boothScan{70%,100%{transform:translateX(120%)}}
.banker-copy{display:flex;flex-direction:column;justify-content:center;z-index:1}.banker-silhouette{height:70px;position:relative;background:none}
.banker-silhouette::before{content:"";position:absolute;z-index:0;left:50%;top:calc(27% - 13px);width:26px;height:26px;border-radius:50%;background:#020202;box-shadow:0 0 12px #da9d3766;transform:translateX(-50%)}
.banker-silhouette::after{content:"";position:absolute;z-index:1;bottom:-13px;left:8px;width:55px;height:52px;border-radius:50% 50% 0 0;background:#020202;box-shadow:0 0 12px #da9d3766}.banker-silhouette i{position:absolute;z-index:2;width:7px;height:3px;border-radius:50%;left:28px;top:19px;background:#d92b20;box-shadow:14px 0 #d92b20,0 0 7px #ff1d0d,14px 0 7px #ff1d0d}
.desk-phone{z-index:1;color:#b1874d;display:flex;flex-direction:column;align-items:center;transform:translateX(-44px)}.desk-phone span{font-size:26px}.desk-phone small{font-size:7px;letter-spacing:1px}.banker-display.ringing{animation:boothRing .3s infinite alternate;box-shadow:0 0 36px #ffb52f88,inset 0 0 15px #000}.banker-display.ringing .desk-phone span{color:#ffe173;animation:phoneShake .12s infinite alternate}@keyframes boothRing{to{filter:brightness(1.35)}}@keyframes phoneShake{to{transform:rotate(12deg) scale(1.12)}}
.presenter{position:absolute;z-index:3;left:50%;bottom:63px;width:58px;height:124px;transform:translateX(-50%);pointer-events:none;filter:drop-shadow(0 8px 5px #000)}.presenter-head{position:absolute;z-index:2;left:16px;top:0;width:28px;height:31px;border-radius:48% 48% 44% 44%;background:linear-gradient(100deg,#c8895e,#f1bd90 52%,#a96f4e);box-shadow:inset 0 5px 4px #8b5738}.presenter-head i{position:absolute;width:4px;height:2px;background:#271108;border-radius:50%;top:15px;left:7px;box-shadow:10px 0 #271108}.presenter-body{position:absolute;left:7px;top:28px;width:46px;height:88px;clip-path:polygon(20% 0,80% 0,100% 100%,0 100%);background:linear-gradient(90deg,#080808,#333 47%,#090909);border-top:5px solid #fff}.presenter-body::after{content:"";position:absolute;left:19px;top:2px;border:7px solid transparent;border-top:20px solid #921910}.presenter-body span{position:absolute;bottom:6px;left:12px;color:#d1ad68;font-size:8px;letter-spacing:1px}.presenter-mic{position:absolute;z-index:4;right:0;top:34px;width:4px;height:38px;background:#171717;transform:rotate(-20deg);border-radius:4px}.presenter-mic::before{content:"";position:absolute;top:-7px;left:-3px;width:10px;height:12px;border-radius:50%;background:#6b625c}
.model{--skin:#e7ad83;--skin-shadow:#9e6042;--hair-dark:#160a08;--hair-light:#4a251b;--dress-dark:#6a0308;--dress-light:#e22028;--face-width:43px;--face-left:38px;--eye-gap:18px;--mouth-width:10px;position:absolute;z-index:8;bottom:58px;width:118px;height:218px;pointer-events:none;opacity:0;visibility:hidden;filter:drop-shadow(0 10px 8px #000b);transform-origin:50% 100%}.model-left{left:7%;transform:translateX(-140px)}.model-right{right:7%;transform:translateX(140px)}.model-head{position:absolute;z-index:3;left:var(--face-left);top:3px;width:var(--face-width);height:50px;border-radius:48% 48% 43% 43%;background:linear-gradient(100deg,var(--skin-shadow),var(--skin) 48%,#f8d6bd);box-shadow:inset 0 5px 5px #0002}.model-head i{position:absolute;left:9px;top:23px;width:5px;height:3px;border-radius:50%;background:#24120e;box-shadow:var(--eye-gap) 0 #24120e}.model-head em{position:absolute;left:50%;top:35px;width:var(--mouth-width);height:5px;border-bottom:2px solid #8d2529;border-radius:50%;transform:translateX(-50%)}.model-hair{position:absolute;z-index:2;left:27px;top:-4px;width:65px;height:83px;border-radius:52% 48% 34% 45%;background:linear-gradient(100deg,var(--hair-dark),var(--hair-light) 55%,var(--hair-dark));box-shadow:9px 6px 0 var(--hair-dark)}.model[data-hair="1"] .model-hair{height:60px;border-radius:55% 55% 26% 26%;box-shadow:none}.model[data-hair="2"] .model-hair{left:22px;width:75px;border-radius:45% 58% 48% 30%;box-shadow:-7px 8px 0 var(--hair-dark)}.model[data-hair="3"] .model-hair{top:-8px;height:72px;border-radius:65% 35% 52% 34%;box-shadow:8px -4px 0 var(--hair-light)}.model[data-hair="4"] .model-hair{height:96px;border-radius:48% 52% 35% 45%;box-shadow:-8px 7px 0 var(--hair-dark)}.model[data-hair="5"] .model-hair{top:0;height:54px;border-radius:50%;box-shadow:15px 4px 0 -5px var(--hair-light)}.model-body{position:absolute;z-index:1;left:20px;top:48px;width:80px;height:160px;clip-path:polygon(28% 0,72% 0,88% 30%,100% 100%,0 100%,12% 30%);background:linear-gradient(100deg,var(--dress-dark),var(--dress-light) 48%,var(--dress-dark));box-shadow:inset 12px 0 #ffda9833}.model-body::before,.model-body::after{content:"";position:absolute;top:37px;width:18px;height:82px;border-radius:12px;background:var(--skin)}.model-body::before{left:-7px;transform:rotate(-13deg)}.model-body::after{right:-7px;transform:rotate(13deg)}.held-case{position:absolute;z-index:6;left:-20px;top:112px;width:158px;height:77px;border:4px solid #633801;border-radius:7px 7px 13px 13px;background:linear-gradient(145deg,#fce88d,#c98413 46%,#6c3502);box-shadow:inset 0 -8px 10px #5d2600aa,0 10px 12px #0009;perspective:500px}.held-case::before{content:"";position:absolute;left:58px;top:-15px;width:36px;height:15px;border:5px solid #b77914;border-bottom:0;border-radius:8px 8px 0 0}.held-case i{position:absolute;z-index:2;inset:-4px;border:4px solid #754403;border-radius:7px;background:linear-gradient(#ffe98b,#9e5d09);transform-origin:50% 0}.held-case strong{position:absolute;z-index:1;inset:8px 3px;display:grid;place-items:center;border:2px solid #f9cf50;border-radius:4px;background:#100201;color:#ffe47d;font-size:27px;letter-spacing:-1px;text-shadow:0 0 12px #ffbe25;opacity:0}.model.revealing{visibility:visible}.model-left.revealing{animation:hostessLeftReveal 2.55s ease-in-out both}.model-right.revealing{animation:hostessRightReveal 2.55s ease-in-out both}.model.revealing .held-case i{animation:caseLidReveal 2.55s ease-in-out both}.model.revealing .held-case strong{animation:caseMoneyReveal 2.55s ease-in-out both}.model.reveal-low .held-case strong{color:#a8ffd0;border-color:#52d795;text-shadow:0 0 15px #39e68e}.model.reveal-high .held-case strong{color:#ff9b87;border-color:#e8422d;text-shadow:0 0 17px #ff2e17}
.presenter{transform-origin:50% 100%;animation:hostIdle 4.8s ease-in-out infinite}.presenter-head{transform-origin:50% 80%;animation:hostLook 7.2s ease-in-out infinite}.presenter-mic{transform-origin:50% 100%;animation:micIdle 3.6s ease-in-out infinite}
@keyframes hostIdle{0%,100%{transform:translateX(-50%) rotate(-.5deg) scaleY(1)}45%{transform:translateX(-50%) rotate(.7deg) scaleY(1.012)}70%{transform:translateX(-50%) rotate(.15deg) scaleY(.996)}}
@keyframes hostLook{0%,38%,100%{transform:translateX(0) rotate(0)}48%,62%{transform:translateX(2px) rotate(3deg)}68%{transform:translateX(-1px) rotate(-2deg)}}
@keyframes micIdle{0%,100%{transform:rotate(-20deg)}50%{transform:rotate(-15deg) translateY(-2px)}}
@keyframes hostessLeftReveal{0%{opacity:0;transform:translateX(-140px) scale(.9)}14%,82%{opacity:1;transform:translateX(0) scale(1)}92%{opacity:1;transform:translateX(-8px) scale(.98)}100%{opacity:0;transform:translateX(-140px) scale(.9)}}
@keyframes hostessRightReveal{0%{opacity:0;transform:translateX(140px) scale(.9)}14%,82%{opacity:1;transform:translateX(0) scale(1)}92%{opacity:1;transform:translateX(8px) scale(.98)}100%{opacity:0;transform:translateX(140px) scale(.9)}}
@keyframes caseLidReveal{0%,27%{transform:rotateX(0)}39%,84%{transform:rotateX(112deg)}92%,100%{transform:rotateX(0)}}
@keyframes caseMoneyReveal{0%,34%{opacity:0;transform:scale(.78)}43%,82%{opacity:1;transform:scale(1)}91%,100%{opacity:0;transform:scale(.88)}}
.model-head{background:linear-gradient(100deg,var(--skin-shadow),var(--skin) 48%,color-mix(in srgb,var(--skin),white 16%))}
@media(prefers-reduced-motion:reduce){.model.revealing{opacity:1!important;visibility:visible!important;transform:none!important}.model.revealing .held-case i{transform:rotateX(112deg)}.model.revealing .held-case strong{opacity:1}}
@media(prefers-reduced-motion:reduce){.presenter,.presenter-head,.presenter-mic,.model,.model-head,.model-hair{animation:none!important}}
.money-item{position:relative;overflow:hidden;animation:boardEnter .45s both;animation-delay:calc(var(--row,0)*25ms)}.money-item::after{content:"";position:absolute;inset:-20% auto -20% -35%;width:23%;transform:skewX(-20deg);background:#fff9cba8;animation:moneyShine 4.2s infinite;animation-delay:calc(var(--row,0)*120ms)}
@keyframes moneyShine{0%,72%{left:-35%}88%,100%{left:130%}}@keyframes boardEnter{from{opacity:0;transform:translateX(var(--enter,-25px))}to{opacity:1;transform:none}}
.money-item.eliminating{z-index:3;animation:moneyEliminate .72s forwards!important}.money-item.eliminating::after,.money-item.gone::after{animation:none}@keyframes moneyEliminate{0%{transform:scale(1);filter:brightness(1)}20%{transform:scale(1.12);filter:brightness(2);box-shadow:0 0 24px #fff08b}55%{transform:scale(.96);background:#d51e11;color:white}100%{transform:scale(1);filter:none;background:#281a15;color:#6e5a48;border-color:#554337;opacity:.72}}
@media(max-width:650px){html,body{overflow-x:hidden}.cases{padding-inline:35px}.model{bottom:64px;scale:.76}.model-left{left:8%}.model-right{right:8%}.presenter{bottom:59px;transform:translateX(-50%) scale(.88)}}

/* Negotiation, modes and zone personalities */
.game-mode{position:absolute;right:74px;top:28px;height:34px;color:#f1c96d;background:#160604;border:1px solid #76501e;border-radius:6px;padding:0 8px;font:700 13px "Noto Sans SC",sans-serif;outline:none}
.offer-ticker{width:min(350px,82%);height:45px;margin:-13px auto 7px;display:grid;grid-template-columns:1fr auto 1fr;gap:3px 7px;align-items:start;position:relative;color:#967d5e;font-size:8px;letter-spacing:.7px}.offer-ticker small{grid-column:1/-1;text-align:center;color:#c7a869;font-size:8px;letter-spacing:1.3px}.offer-ticker span:last-of-type{text-align:right}.offer-ticker b{text-align:center;color:#e1b958;font-size:11px;white-space:nowrap}.offer-ticker::after{content:"";position:absolute;left:0;right:0;bottom:5px;height:4px;border-radius:4px;background:linear-gradient(90deg,#a91c16,#a66c2d 42%,#d5bb71 50%,#639d65 58%,#2ca95d);box-shadow:inset 0 1px #fff4,0 0 6px #e7942544}.offer-ticker i{position:absolute;z-index:1;bottom:0;left:50%;width:3px;height:15px;border-radius:2px;background:#fff0b0;box-shadow:0 0 7px #fff3a0;transform:translateX(-50%);transition:left .65s cubic-bezier(.2,.8,.2,1)}.offer-ticker i::after{content:"";position:absolute;left:50%;bottom:-1px;width:8px;height:8px;background:#ffe278;border:1px solid #5b3506;transform:translateX(-50%) rotate(45deg)}
.money-board.left{filter:drop-shadow(0 0 7px #57c99522)}.money-board.right{filter:drop-shadow(0 0 9px #ef342f22)}
.money-item.low-zone{background:linear-gradient(100deg,#267b61,#7fe0a5 48%,#299470);border-color:#a2f0bc;color:#06261b}.money-item.low-zone::after{background:#e2fff1aa}.money-item.danger-zone{background:linear-gradient(100deg,#8e180e,#ffb537 49%,#a5140b);border-color:#ffbf4e;color:#2a0702}.money-item.gone{color:#6e5a48;background:linear-gradient(100deg,#281a15,#4b3c32,#211511);border-color:#554337}
.monopoly-tracker{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;width:min(520px,94%);margin:0 auto 6px}.property-chip{min-width:0;padding:3px;border:1px solid #fff5;border-radius:4px;color:#111;text-align:center;opacity:.8}.property-chip b,.property-chip small{display:block}.property-chip b{font-size:9px}.property-chip small{overflow:hidden;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.property-chip.won{opacity:1;box-shadow:0 0 13px currentColor;animation:propertyWon .8s infinite alternate}.property-chip.revealed small{font-size:8px;font-weight:900}.property-chip.revealed{outline:2px solid #fff9;outline-offset:-3px}.property-chip.estimated.revealed{outline-style:dashed}@keyframes propertyWon{to{filter:brightness(1.45);transform:translateY(-1px)}}
.supporters{position:fixed;z-index:35;bottom:24px;display:grid;place-items:center;width:min(300px,38vw);min-height:54px;margin:0;padding:11px 18px;border:1px solid #ffc84f;border-radius:8px;background:linear-gradient(110deg,#180504f2,#5b160df2 62%,#1a0504f2);color:#fff0b0;box-shadow:inset 0 0 0 2px #7d441a66,0 0 24px #000c,0 0 16px #dc8b2633;pointer-events:none;opacity:0;visibility:hidden;transition:.2s}.supporters::before{content:"AUDIENCE";position:absolute;top:-9px;left:12px;padding:2px 7px;border:1px solid #d79427;border-radius:3px;background:#100201;color:#dcae55;font-size:7px;letter-spacing:1.8px}.supporters span{display:block;font:900 17px/1.25 "Noto Sans SC",sans-serif;letter-spacing:.5px;text-align:center;text-shadow:0 2px 4px #000}.supporters.side-left{left:22px;right:auto;transform:translate(-18px,10px) scale(.94)}.supporters.side-right{right:22px;left:auto;transform:translate(18px,10px) scale(.94)}.supporters.speaking{visibility:visible;opacity:1;transform:translate(0,0) scale(1);animation:supportBubble .26s cubic-bezier(.2,1.4,.4,1) both}.supporters::after{content:"";position:absolute;bottom:-9px;width:16px;height:16px;border-right:1px solid #ffc84f;border-bottom:1px solid #ffc84f;background:#3a0e09;transform:rotate(45deg)}.supporters.side-left::after{left:30px}.supporters.side-right::after{right:30px}.supporters.crowd-good{border-color:#f7d264;box-shadow:inset 0 0 0 2px #91652366,0 0 24px #000c,0 0 18px #f2b52f55}.supporters.crowd-bad{border-color:#e9533e}.supporters.crowd-bad::after{border-color:#e9533e}@keyframes supportBubble{from{opacity:0;filter:blur(2px);scale:.88}to{opacity:1;filter:none;scale:1}}
.offer-history{position:absolute;z-index:6;right:6px;top:132px;width:92px;max-height:205px;padding:7px;border:1px solid #725322;border-radius:7px;background:#0d0403e8;box-shadow:0 5px 18px #0009;text-align:left}.offer-history small{display:block;padding-bottom:5px;border-bottom:1px solid #5e4323;color:#c6a15b;font-size:8px;letter-spacing:1px}.offer-history ol{display:flex;flex-direction:column-reverse;gap:3px;max-height:170px;margin:5px 0 0;padding:0;overflow:auto;list-style:none}.offer-history li{display:flex;justify-content:space-between;color:#8e7961;font-size:8px}.offer-history li b{color:#ffe07a;font-size:10px}
#modal.modal-backdrop{background:#02000038;backdrop-filter:none;grid-template-columns:190px minmax(320px,520px) 190px;column-gap:16px}#modal .modal-card{grid-column:2;width:100%;box-shadow:0 0 32px #000d,inset 0 0 30px #000}.monopoly-tracker{border:2px solid #dbc260;border-radius:8px;padding:4px;background:#080808;box-shadow:0 0 15px #d9ae3f55}.property-chip{border-width:2px;font-weight:900}.money-item[class*="monopoly-"]:not(.gone){border-width:2px;box-shadow:inset 0 0 0 1px #fff6,0 0 8px currentColor;filter:saturate(1.25) brightness(1.05)}
@media(max-width:900px){#modal.modal-backdrop{grid-template-columns:112px minmax(300px,480px) 112px;padding-inline:5px}.offer-history{right:2px;width:78px}}@media(max-width:650px){#modal.modal-backdrop{display:flex;align-items:flex-start;justify-content:center;padding-top:78px;background:#02000022}#modal .modal-card{width:min(94vw,430px);max-height:55vh;overflow:auto}.offer-history{top:145px;width:70px;max-height:150px}.supporters{bottom:12px;width:min(285px,76vw)}.supporters.side-left{left:10px}.supporters.side-right{right:10px}}
.money-item.monopoly-black,.property-chip.monopoly-black{background:#292929;color:#fff}.money-item.monopoly-lightblue,.property-chip.monopoly-lightblue{background:#55a4ec;color:#071b2d}.money-item.monopoly-green,.property-chip.monopoly-green{background:#35bd68;color:#061d0d}.money-item.monopoly-yellow,.property-chip.monopoly-yellow{background:#f1ca35;color:#261c00}.money-item.monopoly-red,.property-chip.monopoly-red{background:#e32928;color:#280303}.money-item.monopoly-orange,.property-chip.monopoly-orange{background:#f18431;color:#2b1000}.money-item.monopoly-pink,.property-chip.monopoly-pink{background:#e894cf;color:#2b0822}.money-item.monopoly-purple,.property-chip.monopoly-purple{background:#9360ad;color:#16091d}.money-item.monopoly-rail,.property-chip.monopoly-rail{background:#73b7d9;color:#071c26}.money-item.monopoly-darkblue,.property-chip.monopoly-darkblue{background:#3357a9;color:#fff}.money-item[class*="monopoly-"].gone{color:#6e5a48;background:linear-gradient(100deg,#281a15,#4b3c32,#211511)}
.counter-btn{width:100%;margin-top:12px;padding:9px;border:1px solid #967128;border-radius:6px;color:#f6d274;background:#190704;cursor:pointer;font-weight:800;letter-spacing:1px}.counter-btn:hover{background:#39200d;box-shadow:0 0 14px #e6a52b44}.counter-panel{margin-top:15px;padding:14px;border:1px solid #79551f;border-radius:8px;background:#090202}.counter-panel label{display:block;color:#dabd82;font-family:"Noto Sans SC",sans-serif;font-size:12px;margin-bottom:8px}.counter-panel>div{display:flex;align-items:center;gap:6px}.counter-panel>div>span{color:#f4ce62;font-size:24px}.counter-panel input{min-width:0;flex:1;height:42px;background:#210b07;border:1px solid #9a6d27;color:#ffe186;border-radius:5px;padding:0 10px;font-size:22px;font-weight:800}.counter-panel button{height:42px;border:1px solid #ffd86a;border-radius:5px;background:linear-gradient(#e7af36,#85500b);color:#1e0a00;font-weight:900;cursor:pointer}.counter-panel small{display:block;margin-top:7px;color:#9c8068}
.toast.bad{border-color:#d62b20;color:#ff8f82}
@media(max-width:650px){.game-mode{right:53px;top:73px;z-index:8;height:28px;font-size:11px}.game-shell{padding-top:35px}.money-board{display:grid;grid-template-columns:1fr;gap:3px}.money-board .money-item{width:100%;padding-inline:7px}.offer-ticker{margin-top:-10px}.deal-actions{gap:8px}.deal-btn{min-height:66px}.deal-btn span{font-size:24px}.counter-panel>div{flex-wrap:wrap}.counter-panel input{width:65%}.counter-panel button{flex:1}.modal-card{padding:25px 18px}.modal-card h1{font-size:44px}}


/* Local leaderboard */
.leaderboard-open{position:absolute;left:74px;top:28px;height:34px;padding:0 12px;border:1px solid #76501e;border-radius:6px;color:#f1c96d;background:#160604;cursor:pointer;font-weight:800}.leaderboard-open:hover{background:#3a160c;box-shadow:0 0 12px #d89b2d44}
.score-entry{margin-top:15px;padding:13px;border:1px solid #7c5a24;border-radius:8px;background:linear-gradient(135deg,#0b0202,#271109)}.score-entry label{display:block;margin-bottom:8px;color:#f2d588;font:700 13px "Noto Sans SC",sans-serif}.score-controls{display:flex;gap:7px}.score-entry input{min-width:0;flex:1;height:41px;padding:0 11px;border:1px solid #98702c;border-radius:5px;color:#ffe6a0;background:#180706;font:700 17px "Noto Sans SC",sans-serif;outline:none}.score-entry input:focus{border-color:#ffdb65;box-shadow:0 0 10px #e5ae3944}.score-entry button{padding:0 16px;border:1px solid #ffda69;border-radius:5px;color:#231000;background:linear-gradient(#ffe477,#b97410);font-weight:900;cursor:pointer}.score-entry button:disabled{filter:grayscale(1);cursor:default}.score-entry small{display:block;min-height:15px;margin-top:6px;color:#79d895}.cf-turnstile{width:100%;min-height:65px;margin:0 auto 8px}
.leaderboard-card{width:min(650px,100%);padding:27px}.leaderboard-card h2{margin:2px 0 16px;color:#ffe18a;font-size:34px}.leaderboard-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:12px}.leaderboard-tabs button{padding:8px 3px;border:1px solid #6d4d22;border-radius:5px;color:#b99d70;background:#120504;cursor:pointer}.leaderboard-tabs button.active{color:#221000;background:linear-gradient(#ffe477,#b97410);border-color:#ffe477;font-weight:900}.leaderboard-list{max-height:min(55vh,440px);overflow:auto;padding-right:4px}.leaderboard-row{display:grid;grid-template-columns:38px minmax(80px,1fr) minmax(115px,1fr) auto;align-items:center;gap:8px;min-height:48px;margin-bottom:4px;padding:5px 11px;border:1px solid #4e321c;border-radius:6px;background:#100504;text-align:left}.leaderboard-row>b{font-size:17px;text-align:center;color:#cfad6a}.leaderboard-row>span{overflow:hidden;color:#f3ddaf;font:700 14px "Noto Sans SC",sans-serif;text-overflow:ellipsis;white-space:nowrap}.leaderboard-row>small{color:#8e7862}.leaderboard-row>strong{color:#ffd868;font-size:19px}.leaderboard-row.top-1{border-color:#e7bd42;background:linear-gradient(90deg,#3b2509,#170804);box-shadow:inset 3px 0 #ffd95c}.leaderboard-row.top-2{border-color:#9eaaa9}.leaderboard-row.top-3{border-color:#9c602e}.leaderboard-empty{padding:45px 10px;color:#9e866f;text-align:center}
@media(max-width:650px){.leaderboard-open{left:7px;top:73px;height:28px;padding:0 7px;font-size:11px}.leaderboard-card{padding:22px 12px}.leaderboard-card h2{font-size:27px}.leaderboard-tabs button{min-height:42px;font-size:11px}.leaderboard-row{grid-template-columns:30px 1fr auto;gap:5px;padding-inline:6px}.leaderboard-row>small{display:none}.leaderboard-row>strong{font-size:15px}.score-controls{flex-wrap:wrap}.score-entry input{width:100%;font-size:16px}.score-entry button{height:44px;flex:1}}

/* Phone layout: keep the studio readable, controls tappable, and dialogs usable. */
@media(max-width:650px){
  body{background-attachment:fixed}.topbar{height:112px;align-items:flex-start;padding-top:4px}.brand{width:235px;min-height:58px;transform:scale(.78)}
  .icon-btn{top:10px;width:40px;height:40px}.icon-btn:first-child{left:9px}.icon-btn:last-child{right:9px}
  .leaderboard-open,.game-mode{top:72px;height:34px;font-size:12px}.leaderboard-open{left:9px}.game-mode{right:9px;max-width:190px}
  .game-shell{min-height:calc(100dvh - 112px);padding:10px 7px 28px}.stage{min-height:540px}.studio-sign{top:-7px}
  .status-row{grid-template-columns:58px 1fr 58px;gap:6px;min-height:50px}.round-pill strong{font-size:21px}.instruction{font-size:16px;line-height:1.15}
  .banker-display{width:92%;height:64px;grid-template-columns:58px 1fr 58px;margin:5px auto 14px}.banker-silhouette{height:64px}.banker-label{font-size:8px}.banker-display strong{font-size:21px}
  .monopoly-tracker{grid-template-columns:repeat(3,1fr);width:98%}.property-chip{min-height:28px}.property-chip small{white-space:normal;line-height:1.05}
  .cases{grid-template-columns:repeat(5,minmax(0,1fr));gap:17px 7px;min-height:350px;padding:14px 28px 8px}.case{min-height:44px;font-size:19px}.case::before{height:9px;top:-8px;border-width:4px}.case::after{inset:6px}
  .model{bottom:61px}.presenter{bottom:57px;scale:.88}.player-case-wrap{height:62px}
  .money-board{padding-top:8px}.money-item{height:30px;font-size:14px}.money-item span{font-size:10px}
  #modal.modal-backdrop{align-items:flex-end;padding:8px;background:#02000042}#modal .modal-card{width:100%;max-height:72dvh;padding:18px 14px calc(18px + env(safe-area-inset-bottom));border-radius:18px 18px 8px 8px;overflow:auto}.modal-card h1{font-size:42px}.phone{font-size:32px}.deal-actions{margin-top:16px}.deal-btn,.counter-btn,.primary-btn{min-height:48px}
  .counter-panel{padding:11px}.counter-panel input{height:46px;font-size:20px}.counter-panel button{min-width:100px;height:46px}.counter-panel small{line-height:1.25}
  #leaderboardModal{padding:8px;align-items:flex-end}#leaderboardModal .leaderboard-card{width:100%;max-height:88dvh;padding-bottom:calc(18px + env(safe-area-inset-bottom));overflow:auto;border-radius:18px 18px 8px 8px}.leaderboard-list{max-height:56dvh}
  .supporters{bottom:calc(10px + env(safe-area-inset-bottom));width:min(300px,82vw)}
}
@media(max-width:390px){
  .game-mode{max-width:170px}.cases{padding-inline:20px;gap-inline:6px}.case{font-size:18px}.money-item{padding-inline:5px;font-size:13px}.money-item span{font-size:9px}
  .counter-panel>div{display:grid;grid-template-columns:auto minmax(0,1fr)}.counter-panel button{grid-column:1/-1;width:100%}
}

/* Reveal focus uses one full-viewport dimmer. Focused elements are promoted
   above this single layer instead of adding nested dark overlays. */
body::after{content:"";position:fixed;z-index:31;inset:0;background:#09000000;backdrop-filter:blur(0);opacity:0;visibility:hidden;pointer-events:none;transition:background .28s,backdrop-filter .28s,opacity .28s,visibility .28s}
body.reveal-focus::after{background:#09000066;backdrop-filter:blur(1.7px);opacity:1;visibility:visible}
.cases{position:relative}
/* Release the normal stage/cases stacking contexts so these two focused
   elements can participate directly above the global dimmer. */
body.reveal-focus .stage{z-index:auto}
body.reveal-focus .cases{z-index:auto;perspective:none}
body.reveal-focus .cases .case.reveal-target{z-index:41;filter:none;opacity:1}
.model-left,.model-right{left:50%;right:auto}
.model-left{transform:translateX(calc(-50% - 150px))}.model-right{transform:translateX(calc(-50% + 150px))}
@keyframes hostessLeftReveal{0%{opacity:0;transform:translateX(calc(-50% - 150px)) scale(.9)}14%,82%{opacity:1;transform:translateX(-50%) scale(1)}92%{opacity:1;transform:translateX(calc(-50% - 8px)) scale(.98)}100%{opacity:0;transform:translateX(calc(-50% - 150px)) scale(.9)}}
@keyframes hostessRightReveal{0%{opacity:0;transform:translateX(calc(-50% + 150px)) scale(.9)}14%,82%{opacity:1;transform:translateX(-50%) scale(1)}92%{opacity:1;transform:translateX(calc(-50% + 8px)) scale(.98)}100%{opacity:0;transform:translateX(calc(-50% + 150px)) scale(.9)}}
.held-case strong{z-index:5;box-shadow:0 0 18px #000,0 0 24px currentColor}.held-case i{z-index:2}
.presenter{z-index:9;opacity:0;visibility:hidden;transform:translate(-50%,18px) scale(.92);animation:none;transition:opacity .25s,transform .32s,visibility .32s}
.presenter.calling{opacity:1;visibility:visible;transform:translateX(-50%);animation:hostCall .55s cubic-bezier(.2,1.25,.4,1) both}
.presenter-phone{position:absolute;z-index:4;right:-5px;top:27px;width:15px;height:39px;border:3px solid #1b1816;border-radius:9px;color:#d6bd79;background:linear-gradient(90deg,#171411,#51473a,#171411);font-size:0;transform:rotate(-24deg);box-shadow:0 0 7px #e7b74855}
.presenter-phone::before,.presenter-phone::after{content:"";position:absolute;left:-4px;width:17px;height:10px;border-radius:7px;background:#211d19}.presenter-phone::before{top:-3px}.presenter-phone::after{bottom:-3px}
@keyframes hostCall{0%{opacity:0;transform:translate(-50%,18px) scale(.9)}70%{opacity:1;transform:translate(-50%,-2px) scale(1.03)}100%{opacity:1;transform:translateX(-50%)}}
@media(max-width:650px){.model-left,.model-right{left:50%;right:auto}.presenter.calling{transform:translateX(-50%) scale(.88)}}
@media(prefers-reduced-motion:reduce){body::after{transition:none}.presenter.calling{opacity:1;visibility:visible;transform:translateX(-50%);animation:none!important}}

/* Hair sits behind the silhouette; the case lid folds down toward the audience. */
.model-hair{z-index:0}
.held-case i{transform-origin:50% 100%}
@keyframes caseLidReveal{0%,27%{transform:rotateX(0)}39%,84%{transform:rotateX(-112deg)}92%,100%{transform:rotateX(0)}}
@media(prefers-reduced-motion:reduce){.model.revealing .held-case i{transform:rotateX(-112deg)}}

/* Case reveals lock to the exact horizontal and vertical center of the stage. */
.model,.model-left,.model-right{top:50%;bottom:auto;left:50%;right:auto}
.model-left{transform:translate(calc(-50% - 150px),-50%)}.model-right{transform:translate(calc(-50% + 150px),-50%)}
@keyframes hostessLeftReveal{0%{opacity:0;transform:translate(calc(-50% - 150px),-50%) scale(.9)}14%,82%{opacity:1;transform:translate(-50%,-50%) scale(1)}92%{opacity:1;transform:translate(calc(-50% - 8px),-50%) scale(.98)}100%{opacity:0;transform:translate(calc(-50% - 150px),-50%) scale(.9)}}
@keyframes hostessRightReveal{0%{opacity:0;transform:translate(calc(-50% + 150px),-50%) scale(.9)}14%,82%{opacity:1;transform:translate(-50%,-50%) scale(1)}92%{opacity:1;transform:translate(calc(-50% + 8px),-50%) scale(.98)}100%{opacity:0;transform:translate(calc(-50% + 150px),-50%) scale(.9)}}
@media(prefers-reduced-motion:reduce){.model.revealing{transform:translate(-50%,-50%)!important}}

/* A longer, tightening push-in holds the closed case before the reveal. */
.model-left.revealing,.model-right.revealing,.model.revealing .held-case i,.model.revealing .held-case strong{animation-duration:4.2s}
@keyframes hostessLeftReveal{0%{opacity:0;transform:translate(calc(-50% - 150px),-50%) scale(.88)}10%{opacity:1;transform:translate(-50%,-50%) scale(.92)}55%{opacity:1;transform:translate(-50%,-50%) scale(1.04)}68%,86%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}94%{opacity:1;transform:translate(calc(-50% - 8px),-50%) scale(1.04)}100%{opacity:0;transform:translate(calc(-50% - 150px),-50%) scale(.92)}}
@keyframes hostessRightReveal{0%{opacity:0;transform:translate(calc(-50% + 150px),-50%) scale(.88)}10%{opacity:1;transform:translate(-50%,-50%) scale(.92)}55%{opacity:1;transform:translate(-50%,-50%) scale(1.04)}68%,86%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}94%{opacity:1;transform:translate(calc(-50% + 8px),-50%) scale(1.04)}100%{opacity:0;transform:translate(calc(-50% + 150px),-50%) scale(.92)}}
@keyframes caseLidReveal{0%,56%{transform:rotateX(0)}65%,88%{transform:rotateX(-112deg)}95%,100%{transform:rotateX(0)}}
@keyframes caseMoneyReveal{0%,61%{opacity:0;transform:scale(.78)}68%,87%{opacity:1;transform:scale(1)}94%,100%{opacity:0;transform:scale(.88)}}
@media(prefers-reduced-motion:reduce){.model.revealing,.model.revealing .held-case i,.model.revealing .held-case strong{animation:none!important}.model.revealing .held-case i{transform:rotateX(-112deg)}.model.revealing .held-case strong{opacity:1}}

/* The reveal is centered in the visible screen, not the taller scrollable stage. */
.model,.model-left,.model-right{position:fixed;z-index:40;top:50dvh;left:50vw;bottom:auto;right:auto}
@media(max-width:650px){.desk-phone{transform:translateX(-36px)}}

/* The active case number travels with the hostess and stays above the held case. */
.model-case-number{position:absolute;z-index:3;inset:0;display:grid;place-items:center;color:#211000;text-shadow:0 1px #ffe78a,0 2px 3px #7b4305;font:900 34px/1 "Barlow Condensed",sans-serif;letter-spacing:0;opacity:0;transform:scale(.84);pointer-events:none}
.model.revealing .model-case-number{animation:caseNumberReveal 4.2s ease-in-out both}
@keyframes caseNumberReveal{0%,8%{opacity:0;transform:scale(.84)}14%,56%{opacity:1;transform:scale(1)}62%,100%{opacity:0;transform:scale(.9)}}
@media(prefers-reduced-motion:reduce){.model.revealing .model-case-number{opacity:0;transform:scale(1);animation:none!important}}
