/* NP Arena / Arcade Studio 2.1 — scoped, touch-first game surfaces. */
#gameModal{backdrop-filter:blur(14px);background:rgba(19,29,60,.6);padding:18px}
#gameModal .game-panel,#gameModal .game-dialog,#gameModal .game-shell{max-width:920px;width:min(920px,100%);border-radius:28px;overflow:hidden}
#gameModal .game-stage,#gameStage{min-height:510px!important;height:auto!important;background:#f4f6fd!important;border-radius:22px!important;overflow:hidden;position:relative}
#gameIntro{min-height:490px!important;padding:28px!important;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;background:radial-gradient(ellipse at 20% 0%,color-mix(in srgb,var(--arc-accent,#7360ec) 13%,white),transparent 75%),#f9faff}
#gameIntro.hidden,#gameResult.hidden,.mini-game.hidden{display:none!important}
.arc-intro-art{width:128px;height:128px;border-radius:34px;display:grid;place-items:center;background:linear-gradient(150deg,#fff,var(--arc-soft,#ece8ff));box-shadow:0 22px 44px -22px var(--arc-accent,#7360ec),inset 0 0 0 1px #fff;transform:rotate(-6deg);margin-bottom:10px;color:var(--arc-accent,#7360ec)}
.arc-intro-art svg{width:85px;height:85px;transform:rotate(6deg)}
.arc-kicker{font:800 10px/1.5 system-ui,sans-serif;letter-spacing:2.2px;text-transform:uppercase;color:var(--arc-accent,#7360ec)}
#introTitle{font-size:30px!important;letter-spacing:-1px!important;margin:6px 0!important;color:#1c294a}
#introText{max-width:490px;font-size:14px!important;line-height:1.65!important;color:#69738d!important;text-align:center}
.arc-intro-meta{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:14px 0}.arc-intro-meta span{background:white;border:1px solid #e6eaf3;padding:7px 12px;border-radius:100px;font-size:11px;font-weight:750}
#gameModal .game-primary{background:linear-gradient(120deg,var(--arc-accent,#7461ed),#8271f4)!important;box-shadow:0 8px 20px -10px #665ae0;border:0;border-radius:14px!important;padding:13px 26px!important;font-weight:800!important;min-height:44px;cursor:pointer}
#gameModal button:focus-visible,.campaign-btn:focus-visible{outline:3px solid #137bf4;outline-offset:3px}
#gameResult{min-height:475px;background:radial-gradient(ellipse at top,#e9fff6,white 65%);padding:28px;text-align:center}
#arcadeGame{--arc-accent:#7560ed;--arc-soft:#eeeaff;position:relative!important;width:100%;height:auto!important;padding:14px!important;display:flex;flex-direction:column;gap:12px;background:linear-gradient(145deg,#fafbff,#f0f3fc);box-sizing:border-box;isolation:isolate;user-select:none;-webkit-user-select:none}
.arc-hud{display:flex;gap:8px;align-items:center;justify-content:space-between;min-height:35px}.arc-tag{font-size:10px;letter-spacing:1.6px;font-weight:850;color:var(--arc-accent);text-transform:uppercase}.arc-hud-right{display:flex;gap:7px;align-items:center}.arc-health{font:800 12px system-ui;color:#e66887;letter-spacing:2px}.arc-sound{height:32px;width:36px;background:white;border:1px solid #e5e9f2;border-radius:10px;cursor:pointer;font-size:13px}.arc-state{font-size:12px;color:#606f8e;font-weight:700;max-width:65%;text-wrap:balance}
.arc-play{position:relative;height:390px;min-height:320px;border:1px solid #e1e6f4;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 12% 12%,var(--arc-soft),transparent 55%),#fff;touch-action:none;display:grid;place-items:center}
.arc-play::before{content:"";position:absolute;inset:0;background-image:radial-gradient(#8d9ac818 .9px,transparent .9px);background-size:18px 18px;pointer-events:none;z-index:0}
.arc-play>*{z-index:1}.arc-play canvas{width:100%;height:100%;object-fit:contain;display:block;touch-action:none;position:relative;background:#121e40}
.arc-footer{display:flex;gap:12px;justify-content:space-between;align-items:center;color:#71809b;font-size:11px;min-height:23px}.arc-tip{max-width:80%;line-height:1.45}.arc-timer{height:4px;background:#e2e6f1;border-radius:4px;overflow:hidden}.arc-timer i{display:block;width:100%;height:100%;background:var(--arc-accent);transition:width .1s linear}
.arc-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;width:100%;height:100%;padding:20px;box-sizing:border-box;text-align:center}.arc-prompt{font-size:clamp(24px,5vw,44px);font-weight:900;letter-spacing:-1px;color:#24304e}.arc-sub{font-size:12px;color:#71809b;max-width:95%;line-height:1.6}.arc-grid{display:grid;gap:9px;width:min(90%,460px);grid-template-columns:repeat(var(--cols,4),1fr)}
.arc-cell{position:relative;aspect-ratio:1;border:1px solid #e1e6f1;border-bottom-width:4px;background:linear-gradient(160deg,#fff,#f1f4fc);border-radius:14px;display:grid;place-items:center;min-width:0;min-height:42px;font:850 24px system-ui;color:#52648f;cursor:pointer;touch-action:manipulation;transition:transform .15s,background .15s,box-shadow .15s}
.arc-cell:active{transform:translateY(2px);border-bottom-width:2px}.arc-cell.on,.arc-cell.revealed{background:var(--arc-soft);color:var(--arc-accent);border-color:color-mix(in srgb,var(--arc-accent) 40%,white);box-shadow:0 4px 14px -8px var(--arc-accent)}.arc-cell.matched{background:#e3f8ee;border-color:#a7dfc4;color:#20886a;opacity:.8;transform:scale(.96)}.arc-cell.bad{background:#fff0f3;border-color:#f3b2c2;color:#d35378}.arc-cell.fixed{background:#e7ecf6;color:#3e4c70;border:1px solid #dae2f0;cursor:default}.arc-cell.selected{outline:3px solid var(--arc-accent);outline-offset:-2px}
.arc-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:min(100%,420px)}.arc-choice{border:1px solid #e0e5f2;border-bottom-width:4px;border-radius:14px;background:#fff;min-height:54px;font:800 22px system-ui;color:#465577;padding:10px;cursor:pointer;transition:transform .1s}.arc-choice:active{transform:scale(.97)}
.arc-floating{position:absolute;display:grid;place-items:center;width:76px;height:76px;border:0;border-radius:24px;color:#fff;box-shadow:0 12px 24px -12px var(--arc-accent);background:linear-gradient(140deg,var(--arc-accent),#9a8cf4);font-size:32px;cursor:pointer;touch-action:manipulation;transition:left .12s ease-out,top .12s ease-out;transform:translate(-50%,-50%)}
.arc-target{border-radius:50%;background:radial-gradient(circle,#fff 0 13%,#ed7291 14% 29%,#fff 30% 44%,#ed7291 45% 60%,#fcebf0 61%);box-shadow:0 10px 30px #d8618844;border:3px solid white}
.arc-beat{width:175px;height:175px;border-radius:50%;border:12px solid #ece8ff;background:linear-gradient(145deg,#9080f5,#6b58da);color:white;font-size:35px;font-weight:950;box-shadow:0 16px 0 #dad3f4,0 30px 50px -20px #7056d7;cursor:pointer;touch-action:manipulation}.arc-beat:active{transform:translateY(5px);box-shadow:0 11px 0 #dad3f4}
.arc-tiles{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.arc-letter{width:40px;height:48px;display:grid;place-items:center;background:#fff;border:1px solid #dbe2f0;border-bottom-width:4px;border-radius:10px;font-size:23px;font-weight:900;color:var(--arc-accent)}
.arc-form{display:flex;gap:8px;max-width:100%;width:380px}.arc-input{min-width:0;width:100%;border:2px solid #dfe5f3;border-radius:12px;padding:12px;font-size:17px;text-align:center;outline:none;text-transform:uppercase;background:white}.arc-input:focus{border-color:var(--arc-accent)}
.arc-action{background:var(--arc-accent);color:#fff;border:0;border-radius:12px;padding:10px 18px;font-weight:850;min-height:44px;cursor:pointer}.arc-pop{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);font:900 24px system-ui;color:var(--arc-accent);background:#fffffff0;padding:9px 18px;border-radius:40px;box-shadow:0 8px 24px #21335718;pointer-events:none;animation:arc-pop .65s ease-out forwards;z-index:9}.arc-pop.bad{color:#d15875}@keyframes arc-pop{from{opacity:1;translate:0 10px}to{opacity:0;translate:0 -30px}}
.arc-sudoku{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;width:min(250px,85%);padding:5px;background:#c3cbe0;border-radius:12px}.arc-sudoku .arc-cell{border-radius:5px;font-size:23px;border-bottom-width:1px}.arc-sudoku .arc-cell:nth-child(4n+2){margin-right:3px}.arc-sudoku .arc-cell:nth-child(n+5):nth-child(-n+8){margin-bottom:3px}.arc-keypad{display:flex;gap:9px}.arc-keypad button{min-width:48px;min-height:44px;border-radius:10px;border:1px solid #dedfee;background:white;color:var(--arc-accent);font-weight:900;font-size:19px;cursor:pointer}
.arc-nonogram{display:grid;grid-template-columns:46px repeat(5,40px);grid-template-rows:46px repeat(5,40px);gap:3px}.arc-clue{display:flex;align-items:center;justify-content:center;font:800 11px system-ui;color:#62718f}.arc-nonogram .arc-cell{border-radius:5px;aspect-ratio:auto;min-height:0;font-size:18px;border-width:1px}.arc-nonogram .arc-cell.on{background:var(--arc-accent);color:white;border-color:var(--arc-accent)}
.arc-result-extra{margin:10px 0;color:#6e7b99;font-size:12px}.arc-retry{background:#fff2d8;border:1px solid #ecd49c;color:#805e19;padding:10px 14px;border-radius:10px;margin:8px;cursor:pointer}.arc-v2-art{overflow:hidden;position:relative;background:linear-gradient(145deg,var(--arc-soft),white)!important}.arc-v2-art::before{content:"";position:absolute;width:145px;height:145px;border:1px solid #ffffffbb;border-radius:50%;right:-15px;top:-50px;box-shadow:0 0 0 22px #ffffff38,0 0 0 45px #ffffff22}.arc-v2-art>svg{width:95px;height:95px;color:var(--arc-accent);filter:drop-shadow(0 13px 10px #5c649226);transition:transform .25s;z-index:1}.catalog-game-card:hover .arc-v2-art>svg{transform:translateY(-5px) rotate(-5deg)}.catalog-game-art.arc-v2-art{height:152px!important}.arc-art-tag{position:absolute;left:12px;bottom:9px;font-size:9px;letter-spacing:1.4px;color:#6e7396;font-weight:850}.catalog-game-rights{z-index:2}.catalog-game-card{border:1px solid #e5e9f2!important;box-shadow:0 10px 30px -24px #253d75!important}.catalog-game-body h3{letter-spacing:-.3px}.arc-small-label{font-size:10px;color:#7985a0}
.campaign-card{position:relative;border:1px solid #e4e9f3;border-radius:24px;background:#fff;overflow:hidden;box-shadow:0 14px 32px -24px #35446d}.campaign-art{padding:24px;background:linear-gradient(125deg,#eef0ff,#f4f2ff 60%,#fff0e8);position:relative}.campaign-art::after{content:'✦';position:absolute;right:22px;bottom:5px;font-size:106px;color:#ffffffb0;line-height:1}.campaign-art h3{margin:7px 0;font-size:22px;letter-spacing:-.7px;position:relative;z-index:1}.campaign-prize{font-size:37px;font-weight:950;letter-spacing:-1.5px;color:#5d50cb;position:relative;z-index:1}.campaign-art small{font-size:11px;color:#747393}.campaign-body{padding:20px}.campaign-body p{font-size:13px;line-height:1.6;color:#72809a}.campaign-meta{display:flex;justify-content:space-between;gap:10px;padding:12px 0;font-size:12px;color:#65728e}.campaign-meta b{color:#354461;display:block;margin-top:5px;font-size:14px}.campaign-btn{background:#7460e5;border:0;border-radius:12px;color:#fff;font-weight:850;min-height:45px;width:100%;cursor:pointer}.campaign-btn:disabled{background:#eef2f7;color:#6c7b94;cursor:default}.campaign-status{display:inline-flex;border-radius:20px;background:#fff9;padding:5px 10px;font-size:10px;font-weight:850;color:#6e5eb3}.campaign-rules{font-size:12px;white-space:pre-wrap;color:#74809a;margin-top:12px;line-height:1.7}.campaign-countdown{font-variant-numeric:tabular-nums}.campaign-error{background:#fff0f3;padding:14px;border-radius:12px;color:#b74f6d;font-size:13px}.campaign-notice{background:#f0f7ff;color:#506487;border:1px solid #dfeafb;padding:15px 18px;border-radius:15px;font-size:13px;line-height:1.6;margin-bottom:16px}.campaign-winner{border-radius:12px;background:#eefbf5;padding:12px;margin:8px 0;color:#34755c;font-size:13px;display:flex;justify-content:space-between}.raffle-page-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(310px,100%),1fr));gap:18px}
@media(max-width:600px){#gameModal{padding:7px!important}#gameModal .game-box{width:100%!important;max-height:96dvh!important;overflow:auto!important}#gameStage{min-height:470px!important}#arcadeGame{padding:10px!important}.arc-play{height:365px;min-height:290px}.arc-center{padding:12px;gap:12px}.arc-grid{width:95%;gap:6px}.arc-cell{font-size:21px;border-radius:10px}.arc-footer{font-size:10px}.arc-intro-art{width:105px;height:105px}#introTitle{font-size:27px!important}#gameIntro{padding:18px!important;min-height:460px!important}.arc-floating{width:66px;height:66px}.arc-state{font-size:11px}.arc-nonogram{grid-template-columns:37px repeat(5,37px);grid-template-rows:37px repeat(5,37px)}.arc-prompt{font-size:32px}.arc-form{width:100%}.arcade-canvas .arc-play{height:350px}.arcade-canvas .arc-play canvas{object-fit:fill}.arc-tiles{gap:4px}.arc-letter{width:32px;height:42px;font-size:20px}}
@media(prefers-reduced-motion:reduce){.arc-pop{animation:none;opacity:.85}.arc-floating,.arc-cell,.arc-v2-art>svg,.arc-timer i{transition:none!important}.catalog-game-card:hover .arc-v2-art>svg{transform:none}}
/* Override old canvas auto-height rules: the bottom of the game must remain visible. */
#arcadeGame .arc-play canvas{width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;max-height:none!important;object-fit:fill}
#gameIntro>.intro-icon{display:none!important}
#gameModal .game-box{width:min(920px,100%);max-height:96dvh;overflow:auto}
#gameModal{z-index:20000!important}
@media(max-width:760px){
 #gameModal{padding:7px!important}
 #gameModal .game-shell{width:100%!important;height:auto!important;max-height:96dvh!important;border-radius:22px!important;overflow:auto!important}
 #gameModal .game-top{position:sticky;top:0;z-index:5;background:#fff}
 #gameResult{min-height:390px!important}
}

/* Arcade Studio 2.3 — richer game identity on home/catalog cards. */
.gamegrid .game{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;border:1px solid #eef2f8}
.gamegrid .game:hover{transform:translateY(-3px);box-shadow:0 18px 38px -24px #243c72;border-color:#dce6f5}
.gamegrid .cover.arc-home-art{background:linear-gradient(145deg,var(--arc-soft),#fff 72%)!important;isolation:isolate;overflow:hidden}
.gamegrid .cover.arc-home-art:before{content:"";position:absolute;inset:-22% -18% auto auto;width:145px;height:145px;border-radius:50%;border:22px solid #ffffff75;box-shadow:0 0 0 24px #ffffff35,0 0 0 44px #ffffff1d;z-index:0}
.gamegrid .cover.arc-home-art:after{content:"";position:absolute;inset:auto -30px -54px auto;width:145px;height:95px;border-radius:50%;background:color-mix(in srgb,var(--arc-accent) 15%,transparent);filter:blur(2px);z-index:0}
.arc-home-scene{position:absolute;inset:0;display:grid;place-items:center;padding:12px;z-index:1}
.arc-home-scene svg{width:112px;height:112px;color:var(--arc-accent);filter:drop-shadow(0 18px 16px #253f6e2a);transform:translateY(-3px);transition:transform .25s ease,filter .25s ease}
.game:hover .arc-home-scene svg{transform:translateY(-7px) rotate(-3deg);filter:drop-shadow(0 20px 18px #253f6e35)}
.arc-home-scene i{position:absolute;width:15px;height:15px;border-radius:50%;left:21px;top:25px;background:#fff;box-shadow:18px 63px 0 -4px #ffffffc7,96px 22px 0 -5px #ffffffd9,112px 80px 0 -6px #ffffffbd}
.arc-home-scene b{position:absolute;left:12px;bottom:9px;padding:5px 8px;border-radius:999px;background:#ffffffcf;backdrop-filter:blur(8px);color:#52617f;font-size:8px;letter-spacing:1.2px;font-weight:900;text-transform:uppercase}
.gamegrid .cover.arc-home-art>span{z-index:4;box-shadow:0 8px 20px #30436d1a;border:1px solid #edf1f7;color:#41516e}
.catalog-game-art.arc-v2-art{background:linear-gradient(150deg,var(--arc-soft),#fff 62%,color-mix(in srgb,var(--arc-accent) 10%,#fff))!important}
.catalog-game-art.arc-v2-art>svg{width:106px;height:106px}
.catalog-game-card:hover .arc-v2-art>svg{transform:translateY(-7px) rotate(-4deg) scale(1.03)}
.catalog-game-card .arc-art-tag{background:#ffffffb8;border:1px solid #ffffffd8;backdrop-filter:blur(8px);padding:5px 8px;border-radius:999px;color:#596884;letter-spacing:1.15px}
.catalog-game-card .catalog-game-rights{background:#fff!important;color:#465472!important;border:1px solid #edf1f7;box-shadow:0 8px 18px #30436d15}
#gameModal .game-top{border-bottom:1px solid #edf0f6;background:linear-gradient(180deg,#fff,#fbfcff)}
#arcadeGame .arc-play{box-shadow:inset 0 0 0 1px #ffffff,0 16px 32px -28px #253b68}
#arcadeGame .arc-hud{padding:0 2px}
#arcadeGame .arc-tag{display:inline-flex;align-items:center;gap:6px;background:color-mix(in srgb,var(--arc-accent) 10%,white);border:1px solid color-mix(in srgb,var(--arc-accent) 17%,white);padding:6px 9px;border-radius:999px}
#arcadeGame .arc-state{background:#fff;border:1px solid #e7ebf3;padding:6px 9px;border-radius:999px;box-shadow:0 7px 16px -13px #233c70}
@media(max-width:760px){
 .arc-home-scene svg{width:92px;height:92px}.arc-home-scene b{font-size:7px;left:8px;bottom:7px}.gamegrid .cover.arc-home-art{height:126px!important}
 .catalog-game-art.arc-v2-art>svg{width:88px;height:88px}.catalog-game-card .arc-art-tag{font-size:7px;padding:4px 6px;left:7px;bottom:7px}
}

/* Keep the 720×420 game coordinate system visually undistorted. */
#arcadeGame.arcade-canvas .arc-play{width:min(100%,720px);height:auto!important;min-height:0!important;aspect-ratio:12/7;margin-inline:auto;background:#121e40}
#arcadeGame.arcade-canvas .arc-play canvas{width:100%!important;height:100%!important;object-fit:fill!important}
@media(max-width:600px){#arcadeGame.arcade-canvas .arc-play{width:100%;height:auto!important;min-height:0!important;aspect-ratio:12/7}}
.catalog-game-card .catalog-game-rights{left:12px!important;right:auto!important}
