
.game-choice{border:1px solid #d9dfed;border-radius:14px;padding:14px;margin:18px 0;background:#f7f9ff}
.game-choice legend{font-weight:700;padding:0 5px}.game-choice label{display:flex;align-items:center;gap:8px;min-height:44px;font-size:15px}.game-choice input{width:18px;height:18px}.game-choice p{font-size:13px;line-height:1.7;color:#56647e}
.party-stage:has(.decision-game){padding:0;border:0;background:transparent}.party-stage:has(.decision-game)>.stage-top{padding:0 4px 14px}.party-stage:has(.decision-game)>.stage-content{padding:0;justify-content:start}.party-stage:has(.decision-game)>.stage-footer{margin-top:16px}.party-stage:has(.decision-game)>h2{padding:0 4px}
.decision-game{--lime:#d9ff75;--ink:#101c2c;position:relative;width:100%;max-width:100%;border-radius:26px;background:#101c2c;color:#f4f6f8;border:1px solid #33455b;box-shadow:0 18px 40px #10233125,0 3px 0 #07101b;overflow:hidden;text-align:center;isolation:isolate}
.decision-game *{box-sizing:border-box}.arcade-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 22px 0}
.arcade-badge{color:#d9ff75;font-size:10px;font-weight:800;letter-spacing:1.4px;text-align:left}
.decision-game button{font:inherit;cursor:pointer;min-height:46px;transition:transform .15s,background .15s;border-radius:12px}
.decision-game button:active{transform:translateY(2px)}.decision-game button:focus-visible,.decision-game input:focus-visible,.decision-game summary:focus-visible{outline:3px solid #fff;outline-offset:4px}
.decision-game .arcade-sound{background:#223249;border:1px solid #40526a;color:#c3d0e0;font-size:11px;padding:8px 12px;flex-shrink:0;min-height:44px;border-radius:25px}
.arcade-heading{padding:20px 24px 12px}.decision-game h3{color:#f7f8fc;font-size:clamp(24px,3vw,32px);letter-spacing:-1.1px;line-height:1.25;margin:0 0 9px;font-weight:850}
.arcade-heading>p{color:#a8b8cc;font-size:13px;line-height:1.65;margin:0}
.arcade-hud{margin:8px 24px 0;display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #2e4056;border-bottom:1px solid #2e4056;padding:12px 0;color:#d1dbea;font-size:12px}
.arcade-state{font-family:monospace;letter-spacing:1.5px;color:#d9ff75;display:flex;align-items:center;gap:6px}.arcade-state:before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.arcade-hud strong{font-size:12px;font-variant-numeric:tabular-nums;font-weight:650;overflow-wrap:anywhere;text-align:right}
.game-scene{position:relative;width:100%;overflow:hidden;background:#121e2f}.game-scene canvas{display:block;width:100%;height:auto;max-width:100%}
.game-actions{display:flex;justify-content:center;gap:10px;padding:2px 24px 0;margin:0}
.decision-game .game-actions button{background:#26394f;color:#edf3fb;border:1px solid #496078;padding:13px 17px;font-size:14px;line-height:1.35;font-weight:700;box-shadow:0 4px 0 #07111f;touch-action:manipulation}
.decision-game .game-actions button:hover:not(:disabled){background:#344b65;transform:translateY(-1px)}
.decision-game .game-actions .arcade-primary{background:#d9ff75;color:#1f3026;border-color:#e1ffa0;box-shadow:0 4px 0 #8ea940;min-width:180px}
.decision-game .game-actions .arcade-primary:hover:not(:disabled){background:#e8ffaa}
.decision-game .game-actions button:disabled{opacity:.65;cursor:default}.game-controls-food{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:8px}.decision-game .game-controls-food button{min-width:0;width:100%;font-size:12px;padding:13px 4px}
.arcade-power{display:flex;align-items:center;gap:10px;margin-top:19px;color:#aabbd0;font-size:11px}.arcade-power input[type=range]{flex:1;min-width:0;max-width:100%;height:24px;padding:0;background:transparent;border:0;box-shadow:none;accent-color:#d9ff75}.arcade-power strong{min-width:32px;color:#d9ff75;font-size:11px}.arcade-power>span{white-space:nowrap}
.arcade-time{height:3px;background:#2c3c52;margin:22px 24px 0;border-radius:3px;overflow:hidden}.arcade-time span{height:100%;display:block;width:0;background:#d9ff75;box-shadow:0 0 8px #d9ff7577}
.decision-game .game-status{font-size:12px;line-height:1.7;color:#b2c3d8;margin:12px 24px 4px;min-height:21px}
.decision-game .game-skip{background:transparent;border:0;color:#d0dbe8;text-decoration:underline;text-underline-offset:4px;font-size:12px;padding:10px 15px;margin:0 auto 8px;max-width:100%}
.arcade-rules{background:#0c1625;border-top:1px solid #293b50;padding:0 20px;text-align:left}.arcade-rules summary{color:#91a5bf;font-size:11px;cursor:pointer;min-height:46px;display:flex;align-items:center;justify-content:space-between;list-style:none}.arcade-rules summary:after{content:'+';font-size:17px}.arcade-rules[open] summary:after{content:'−'}.arcade-rules p{color:#aebed1;font-size:12px;line-height:1.8;margin:0 0 16px}
.arcade-reveal{position:absolute;z-index:5;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;background:#101b2bcc;backdrop-filter:blur(6px);gap:10px;animation:arcade-arrive .4s cubic-bezier(.2,.8,.3,1);overflow-wrap:anywhere}
.arcade-reveal[hidden]{display:none}.reveal-star{font-size:54px;line-height:1;color:#d9ff75;text-shadow:0 0 30px #d9ff7555}.reveal-label{color:#b6c8de;font-size:12px;letter-spacing:1px}.reveal-title{color:#fff;font-size:clamp(25px,4vw,44px);line-height:1.25;max-width:100%;font-weight:850}.reveal-sub{font-size:12px;color:#afc2d9;line-height:1.8}
@keyframes arcade-arrive{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
.game-controls-teams{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0 30px 25px;margin-top:-36px;position:relative;perspective:900px}
.decision-game .portal-door{--portal:#d9ff75;position:relative;background:#0b1525!important;border:1px solid #537052!important;box-shadow:0 0 25px #d9ff7510!important;padding:0!important;border-radius:54px 54px 13px 13px!important;min-height:180px;color:#d9ff75!important;overflow:visible;perspective:600px}
.decision-game .portal-door:nth-child(2){--portal:#b1a5ff;border-color:#73689e!important}.decision-game .portal-door:nth-child(3){--portal:#ff9b83;border-color:#926356!important}
.portal-panel{position:absolute;inset:4px 4px 38px;border-radius:50px 50px 7px 7px;border:1px solid var(--portal);background:linear-gradient(135deg,#304047,#172535);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;transform-origin:left center;transition:transform 1s cubic-bezier(.2,.8,.4,1);box-shadow:inset 0 0 20px #ffffff09}
.portal-panel:after{content:'';position:absolute;right:10px;top:62%;width:6px;height:6px;border-radius:50%;background:var(--portal);box-shadow:0 0 8px var(--portal)}
.portal-symbol{color:var(--portal);font-size:38px;font-weight:400;line-height:1}.portal-number{font-family:monospace;font-size:12px;color:var(--portal);letter-spacing:3px}.portal-label{position:absolute;bottom:11px;left:0;right:0;color:var(--portal);font-size:11px}
.decision-game .portal-door.selected{background:radial-gradient(ellipse,var(--portal),#344551)!important;opacity:1!important;box-shadow:0 0 32px #d9ff7533!important}.portal-door.selected .portal-panel{transform:rotateY(-108deg)}.decision-game[data-portal] .portal-door:not(.selected){opacity:.3}
.race-roster{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;padding:14px 24px 0}.race-roster .race-lane{display:inline-flex;align-items:center;gap:5px;margin:0;max-width:100%;font-size:10px;color:#bed0e2;background:#233247;border-radius:20px;padding:5px 9px;overflow-wrap:anywhere}.race-roster .race-lane:before{content:'';background:var(--racer);width:6px;height:6px;border-radius:50%;flex-shrink:0}
.food-categories,.food-candidates{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.food-categories label,.food-candidates label{display:flex;gap:6px;align-items:center;min-height:44px;border:1px solid #d7dfec;border-radius:10px;padding:7px 10px;font-size:14px}.food-candidates{max-height:290px;overflow:auto}.food-actions{display:flex;flex-wrap:wrap;gap:8px}.food-result{text-align:center}.food-result h3{font-size:clamp(28px,5vw,46px);overflow-wrap:anywhere}.food-result p{color:#52627a}.food-edit{display:flex;gap:8px;margin-top:10px}.food-edit input{min-width:0;flex:1}.food-edit button{flex-shrink:0}.party-tabs{flex-wrap:wrap}
@media(max-width:400px){.arcade-top{padding:12px 14px 0;gap:6px}.arcade-badge{font-size:9px;letter-spacing:.5px}.arcade-heading{padding:16px 14px 10px}.arcade-heading>p{font-size:12px}.arcade-hud{margin:7px 14px 0}.arcade-hud strong{font-size:10px}.game-actions{padding-left:12px;padding-right:12px;gap:6px}.decision-game .game-controls-food button{font-size:10px;padding:12px 2px}.game-controls-teams{gap:8px;padding:0 18px 20px;margin-top:-20px}.decision-game .portal-door{min-height:128px}.portal-symbol{font-size:27px}.portal-label{font-size:10px}.arcade-reveal{padding:16px}.reveal-star{font-size:35px}.reveal-title{font-size:26px}.food-edit{flex-wrap:wrap}.food-edit input{flex-basis:100%}.arcade-rules{padding:0 14px}}
@media(prefers-reduced-motion:reduce){.decision-game *{animation:none!important;transition:none!important}}

.portal-door.scanning{filter:brightness(1.35);box-shadow:0 0 28px #d9ff7540!important}.decision-game .portal-door{cursor:default}

.arcade-finalists{display:flex;gap:7px;justify-content:center;padding:0 24px 15px;counter-reset:menu}.arcade-finalists>span{flex:1;min-width:0;max-width:50%;color:#bacbdf;background:#22334a;border:1px solid #3b5068;padding:9px 5px;border-radius:10px;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.arcade-finalists>span:before{counter-increment:menu;content:'0' counter(menu);display:block;color:#8399b2;font:10px monospace;margin-bottom:4px}.arcade-finalists>span.chosen{color:#d9ff75;border-color:#d9ff75;background:#354436}.arcade-climax .arcade-state{color:#ffad8c}.arcade-climax .arcade-time span{background:#ffad8c}

@media(max-width:400px){.arcade-order .arcade-reveal{padding:12px;gap:6px}.arcade-order .reveal-star{display:none}.arcade-order .reveal-sub{font-size:11px}}

.contest-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:16px 20px 0}.contest-entry{display:flex;align-items:center;gap:6px;min-width:0;background:#203147;border:1px solid #354a63;border-radius:10px;padding:8px;font-size:11px;text-align:left}.contest-entry>span{flex:1;min-width:0;overflow-wrap:anywhere}.contest-entry:before{content:'';flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--racer)}.arrival-label{font-size:10px;color:#92a7c0;white-space:nowrap}.contest-entry.arrived{border-color:var(--racer)}.contest-entry.arrived .arrival-label{color:var(--racer)}.contest-sample{font-size:11px;color:#9fb2cc;margin:12px 20px 0;line-height:1.6}
@media(max-width:400px){.contest-roster{padding:12px 12px 0;gap:5px}.contest-entry{font-size:10px;padding:7px 5px}.arcade-reveal{gap:6px;padding:12px}.arcade-reveal .reveal-star{display:none}}

.menu-slot{margin:24px 20px 20px;border:2px solid #78875b;border-radius:24px;background:linear-gradient(145deg,#344944,#17263b);padding:18px 14px 14px;box-shadow:inset 0 0 0 5px #152335,0 8px 0 #081323}.slot-sign{color:#d9ff75;letter-spacing:3px;font:bold 16px monospace;text-align:center;margin:0 0 20px}.slot-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.slot-reel{min-width:0}.slot-window{position:relative;height:240px;overflow:hidden;background:#f0f2de;border:3px solid #101c2c;border-radius:12px}.slot-window:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(#17263b99,transparent 34%,transparent 67%,#17263b99)}.slot-strip{will-change:transform}.slot-item{height:80px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;padding:7px 4px;border-bottom:1px solid #ced5c1;color:#243a38;overflow:hidden}.slot-food-icon{font-size:16px;color:#769141;line-height:18px}.slot-menu-name{font-weight:750;font-size:14px;line-height:17px;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.slot-pick-line{position:absolute;left:0;right:0;top:77px;height:82px;pointer-events:none;border-top:3px solid #f79373;border-bottom:3px solid #f79373;box-shadow:inset 0 0 14px #ffad6033;z-index:1}.slot-reel.stopped .slot-window{border-color:#d9ff75;box-shadow:0 0 16px #d9ff7533}.slot-reel.stopped .slot-pick-line{border-color:#a3bc55}.slot-column-status{color:#b8c9df;font-size:11px;line-height:1.5;text-align:center;margin:10px 0 0;min-height:34px;overflow-wrap:anywhere}.slot-reel.stopped .slot-column-status{color:#d9ff75}.slot-note{color:#b4c4d5;font-size:12px;text-align:center;line-height:1.6;margin:12px 0 0}
@media(max-width:400px){.menu-slot{margin:16px 12px;padding:16px 8px 10px}.slot-columns{gap:5px}.slot-menu-name{font-size:11px;line-height:15px}.slot-sign{font-size:13px;letter-spacing:2px}.slot-column-status{font-size:10px}}

.reveal-roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;max-height:240px;overflow:auto;padding:12px 4px;overscroll-behavior:contain}
.reveal-roster:empty{display:none}.winner-arrival,.arrival-team{background:#243448;border:1px solid #536579;border-radius:12px;padding:10px;color:#f1f8ef;overflow-wrap:anywhere}
.winner-arrival{display:flex;align-items:center;gap:10px;animation:arrival-pop .35s ease-out}.winner-arrival span{color:#d9ff75;font-weight:800}.arrival-team h4{color:#d9ff75;margin:0 0 8px}.arrival-team ul{padding:0;list-style:none;margin:0}.team-arrival{padding:4px 0;animation:arrival-pop .35s ease-out}
@keyframes arrival-pop{from{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.winner-arrival,.team-arrival{animation:none}}

.roulette-candidates-label{color:#c3d1cd!important;font-size:13px!important;margin:14px 0 8px!important}
.roulette-candidates{display:flex;flex-wrap:wrap;gap:7px;max-height:170px;overflow:auto;padding:5px 2px;overscroll-behavior:contain}
.roulette-candidate{border:1px solid #4b6261;border-radius:20px;padding:6px 11px;font-size:13px;color:#d5ded9;background:#213734;overflow-wrap:anywhere;max-width:100%}
.roulette-candidate.active{color:#182317;background:#d9ff75;border-color:#eaffb1;box-shadow:0 0 14px #d9ff7540;font-weight:800}

.secret-cards .sc-deck-zone{height:172px;position:relative;display:grid;place-items:center}.secret-cards .sc-deck{position:relative;width:82px;height:112px}.secret-cards .sc-deck-card{position:absolute;inset:0;border:1px solid #b6d490;border-radius:10px;background:repeating-linear-gradient(45deg,#263d38 0px,#263d38 7px,#2e4840 7px,#2e4840 8px);box-shadow:0 8px 16px #0005;display:grid;place-items:center;color:#def3b1;font-size:29px}.secret-cards .sc-deck-card:after{content:'';position:absolute;inset:7px;border:1px solid #b6d49055;border-radius:5px}.secret-cards .sc-teams{display:grid;grid-template-columns:repeat(var(--teams,2),minmax(0,1fr));gap:20px}.secret-cards .sc-team{min-width:0;border-top:1px solid #8caa9144;padding-top:15px}.secret-cards .sc-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.secret-cards .sc-heading h2{font-size:16px;letter-spacing:-.03em;margin:0;color:var(--accent)}.secret-cards .sc-heading small{color:#a3b2aa;font-size:12px}.secret-cards .sc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.secret-cards .sc-slot{aspect-ratio:1.28;perspective:900px;border-radius:12px;background:#0a151b44;border:1px dashed #71827544;position:relative}.secret-cards .sc-card{position:absolute;inset:-1px;opacity:0;transform-style:preserve-3d;border-radius:12px;will-change:transform;z-index:1}.secret-cards .sc-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-direction:column}.secret-cards .sc-back{border:1px solid #aeca8a;background:repeating-linear-gradient(45deg,#263d38 0px,#263d38 9px,#314c43 9px,#314c43 10px);color:#d9edaa;box-shadow:0 7px 12px #0004}.secret-cards .sc-back:before{content:'';position:absolute;inset:8px;border:1px solid #c6daa257;border-radius:6px}.secret-cards .sc-back span{font-size:clamp(24px,4vw,38px);font-family:serif}.secret-cards .sc-front{transform:rotateY(180deg);background:linear-gradient(140deg,#ffffff30,transparent 70%),var(--accent);color:#172720;border:2px solid var(--accent);box-shadow:0 0 25px #d2f59c18}.secret-cards .sc-front strong{font-size:clamp(16px,2.7vw,27px);letter-spacing:-.04em;overflow-wrap:anywhere;padding:8px;text-align:center}.secret-cards .sc-front small{font-size:10px;color:#34483b;letter-spacing:.13em}.secret-cards .sc-card.sc-revealed{opacity:1;transform:rotateY(180deg)}.secret-cards .sc-slot.sc-current{box-shadow:0 0 0 2px var(--accent),0 0 28px #deffae44}.secret-cards .sc-progress{height:3px;background:#4c635355;margin-top:24px;border-radius:3px;overflow:hidden}.secret-cards .sc-progress span{display:block;height:100%;background:#ddf9a2;width:0}

.secret-cards{padding:14px;background:radial-gradient(ellipse at top,#345048,#14242a);border:1px solid #456052;border-radius:16px}
.secret-cards .sc-teams{grid-template-columns:repeat(2,minmax(0,1fr));max-height:520px;overflow:auto;padding:8px;overscroll-behavior:contain}
.secret-cards .sc-front,.secret-cards .sc-back{position:absolute;inset:0;backface-visibility:hidden;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-direction:column}
.secret-cards .sc-heading h4{margin:0;color:var(--accent);font-size:16px}
.secret-cards .sc-front strong{font-size:clamp(14px,2vw,23px);line-height:1.3}
.secret-cards .team-arrival{animation:none;padding:8px}
.secret-cards .sc-front small{color:#34483b}
.secret-cards .sc-revealed{opacity:1}
@media(max-width:600px){.secret-cards{padding:10px}.secret-cards .sc-teams{grid-template-columns:1fr;gap:20px}.secret-cards .sc-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.secret-cards .sc-slot{aspect-ratio:.85}.secret-cards .sc-deck-zone{height:150px}.secret-cards .sc-front strong{font-size:15px;padding:5px}}
