:root{color-scheme:dark;font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;background:#131b19;color:#f4ead5}*{box-sizing:border-box}body{margin:0;min-height:100dvh;display:grid;place-items:center;padding:12px;background:radial-gradient(ellipse at top,#34473d,#101916)}button,input{font:inherit}button{cursor:pointer;color:#f6ead4;background:#29483c;border:1px solid #CEB88C;border-radius:7px;padding:.8em 1.4em;transition:background .15s}button:hover:not(:disabled){background-color:#47634f}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,input:focus-visible{outline:3px solid #CEB88C;outline-offset:3px}.primary{background:#CEB88C;color:#21372b;font-weight:bold}.primary:hover:not(:disabled){background-color:#CEB88C}.quiet{background:#132a2399;border-color:#CEB88C55;font-size:1.05cqw;padding:.5em .9em}.table{position:relative;width:min(1100px,100%,calc((100dvh - 24px)*4/3));aspect-ratio:4/3;min-width:280px;overflow:hidden;container-type:inline-size;border:1px solid #CEB88C77;border-radius:14px;box-shadow:0 24px 90px #0007;background:radial-gradient(ellipse at 48% 30%,#365a46,#193d31 75%)}.table:after{content:"";position:absolute;inset:1cqw;border:1px solid #CEB88C30;border-radius:9px;pointer-events:none;z-index:8}.auth,.gameScreen{position:absolute;inset:0}.customBackground{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;pointer-events:none}.eyebrow{font-size:.9cqw;letter-spacing:.25em;color:#CEB88C}.utility{position:absolute;bottom:2.1%;right:2.6%;display:flex;gap:.7cqw;z-index:9}.titleArt{position:absolute;inset:-8% 16% 0 17%;opacity:.55;pointer-events:none}.titleArt img{width:100%;height:100%;object-fit:contain}.titleSilhouette{position:absolute;top:4%;left:17%;width:65%;height:85%;border:1px solid #CEB88C33;border-radius:45% 45% 20% 20%;background:linear-gradient(#4d715a77,#142f26);display:grid;place-items:start center;padding-top:15%;box-shadow:0 0 0 2cqw #8c9b6d05}.titleSilhouette span{font-family:Georgia,serif;font-size:21cqw;color:#a2ac7c33}.titleLogo{position:absolute;left:5%;top:10%;z-index:1}.titleLogo>small{font-size:1cqw;letter-spacing:.3em;color:#CEB88C}.titleLogo h1{font-family:Georgia,serif;font-weight:normal;font-size:8.6cqw;line-height:.85;letter-spacing:-.04em;margin:2cqw 0;color:#efe1bd;text-shadow:0 4px 30px #0003}.titleLogo h1 span{font-size:4cqw;vertical-align:middle;margin-left:1cqw;color:#CEB88C}.titleLogo p{font-size:1.15cqw;letter-spacing:.2em;margin-top:2.4cqw;color:#b9c9b7}.titleRanking{position:absolute;right:4%;top:4%;width:23%;padding:1.7cqw;background:#10291fd9;border:1px solid #CEB88C66;border-radius:7px;z-index:2}.titleRanking h2{font-size:1.5cqw;font-weight:normal;margin:.8cqw 0 1.2cqw}.titleRanking .quiet{margin-top:.8cqw;padding:.3em 0;background:none;border:0}.titleRanking .rankRow{font-size:1.05cqw;grid-template-columns:2cqw 1fr;gap:.6cqw;padding:.6cqw 0}.titleRanking .rankRow b{grid-column:2;font-size:1cqw;color:#CEB88C}.loginPanel{position:absolute;width:38%;left:31%;bottom:5%;padding:3.2cqw 3cqw 1.5cqw;background:linear-gradient(135deg,#e6dac0,#cbb990);border:3px solid #52654e;border-radius:8px;color:#233b2e;box-shadow:0 13px 35px #0005;z-index:3;text-align:center}.panelClip{position:absolute;top:-1.5cqw;left:28%;width:44%;height:3cqw;border:3px solid #a7a790;border-radius:6px;background:#3a5145;box-shadow:0 3px 6px #0003}.loginPanel .eyebrow{color:#617153;margin-bottom:1cqw}.loginPanel label{display:block;text-align:left;font-size:1.3cqw;margin-bottom:1.2cqw}.loginPanel input{display:block;width:100%;border:0;border-bottom:2px solid #687958;background:transparent;border-radius:0;padding:.8cqw .4cqw;color:#203a2b;font-size:1.45cqw;margin-top:.3cqw;outline-offset:0}.loginPanel input::placeholder{color:#748267}.loginPanel .primary{font-size:1.4cqw;margin-top:.7cqw;background:#2b4839;color:#f1e6c9;border:0;padding:.7em 2.4em}.register{display:block;margin:1cqw auto 0;border:0;background:none!important;color:#344e39;font-size:1cqw;padding:.3em}.loginPanel>small{font-size:.85cqw;color:#5b6e52}#authError{min-height:1.3em;font-size:1cqw;color:#9c3030;margin:.4cqw 0}.version{position:absolute;bottom:2.4%;left:3%;font-family:Georgia,serif;color:#b8bd9c;font-size:1.3cqw}.wallet{position:absolute;top:3.5%;right:3.5%;width:24%;z-index:5;text-align:right;background:#102b22e0;border:1px solid #CEB88C77;border-radius:6px;padding:1.1cqw 1.6cqw}.wallet>span{font-size:1.05cqw;color:#b0c4b2;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wallet>b{display:block;font-family:Georgia,serif;font-size:3.3cqw;font-weight:normal;color:#CEB88C;font-variant-numeric:tabular-nums}.wallet>small{font-size:.9cqw;color:#e7ad9e}.tableEdge{position:absolute;left:0;right:0;top:76%;bottom:0;border-top:3px solid #CEB88C80;background:#122b2388;transform:skewY(-2deg);transform-origin:left}.portrait{position:absolute;right:2%;top:16%;width:35%;height:75%;z-index:2;pointer-events:none}.portrait>img{width:100%;height:100%;object-fit:contain;object-position:bottom}#portraitPlaceholder{height:100%;position:relative;opacity:.85}.placeholderHead{position:absolute;width:75%;aspect-ratio:1;left:12.5%;top:1%;border:2px solid #b9c8a25c;border-radius:48% 48% 44% 44%;background:linear-gradient(145deg,#74947a55,#294b3c);display:grid;place-items:center}.placeholderHead span{font-family:Georgia,serif;font-size:5cqw;letter-spacing:.4em;transform:translateX(.2em);color:#bdcaaa80}.placeholderBody{position:absolute;top:44%;bottom:6%;left:8%;width:84%;border-radius:34% 34% 6% 6%;background:linear-gradient(#63866d66,#244737);border:2px solid #afc49744;text-align:center;padding-top:3cqw;color:#b1c19155;font-size:9cqw}#portraitPlaceholder>small{position:absolute;bottom:0;left:0;right:0;text-align:center;color:#aabd9f;font-size:1.1cqw}.speech{position:absolute;left:9%;top:20%;width:45%;min-height:19%;border:2px solid #b4be9366;border-radius:24px;background:#19372dd9;padding:3.4cqw 2.5cqw;display:grid;place-items:center;font-family:serif;font-size:3.3cqw;color:#e7debd;z-index:3}.speech:after{content:"";position:absolute;right:-2cqw;bottom:2.5cqw;border-left:2cqw solid #b4be9366;border-top:1cqw solid transparent;border-bottom:1cqw solid transparent}.betPanel{position:absolute;left:6%;bottom:8%;width:52%;z-index:4}.betSummary{display:flex;align-items:center;justify-content:space-between;gap:1cqw}.betSummary label{font-size:1.3cqw;color:#b9c7ae}.betSummary b{display:block;font-family:Georgia,serif;font-size:6cqw;color:#CEB88C;font-weight:normal}.betSummary button{font-size:2cqw;padding:.8em 1.4em}.betLine{height:2px;background:#CEB88C77;margin:1.7cqw 0 2.2cqw}.betRow{display:flex;align-items:center;gap:3cqw}.chip{width:7cqw;height:7cqw;border-radius:50%;border:3px dashed #CEB88C;background:#304c3c;font-family:Georgia,serif;font-size:2.1cqw;padding:0}.betRow .quiet{font-size:1.2cqw}#limit{display:block;margin-top:1.2cqw;font-size:1cqw;color:#b2c3a7}.dealerHand,.playerHand{position:absolute;left:3%;width:60%;z-index:4;border:1px solid #CEB88C55;border-radius:10px;background:#122c2399;padding:1.6cqw}.dealerHand{top:4%;height:29%}.playerHand{bottom:7%;height:29%}.handLabel{font-size:1cqw;letter-spacing:.2em;color:#b9c7ab;display:flex;align-items:center;gap:1cqw;margin-bottom:1.2cqw}.handLabel>b{font-size:1.4cqw;color:#CEB88C;letter-spacing:0}.handLabel>span{margin-left:auto;font-size:1cqw;letter-spacing:.05em}.cards{display:flex;align-items:center;justify-content:center}.card{position:relative;flex:0 0 auto;width:9cqw;height:12.8cqw;margin-left:1cqw;border:2px solid #e5d9be;border-radius:6px;background:#f4eddb;box-shadow:0 5px 12px #0004;color:#284236;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:3.4cqw}.card:first-child{margin-left:0}.card.red{color:#ac4842}.card small{font-size:2.4cqw}.card.back{background:repeating-linear-gradient(45deg,#284d43,#284d43 5px,#365c4e 5px,#365c4e 6px);border:4px solid #CEB88C;color:#CEB88C;font-size:4cqw}.card img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;border-radius:4px}.cards.crowded .card{margin-left:-4.7cqw}.cards.crowded .card:first-child{margin-left:0}.message{position:absolute;left:4%;top:35%;width:57%;text-align:center;z-index:4}.message p{font-size:1.8cqw;margin:.3cqw 0}.message small{font-size:1.5cqw;color:#CEB88C}.actionPanel{position:absolute;left:4%;top:51%;width:57%;display:flex;justify-content:space-between;gap:2cqw;z-index:5}.actionPanel button{flex:1;font-size:2cqw;padding:.65em .5em}.actionPanel small{display:block;font-size:1cqw;font-weight:normal;margin-top:.3em}.gameScreen.inRound .speech{left:66%;top:44%;width:31%;min-height:10%;font-size:1.55cqw;padding:1.4cqw;border-radius:12px}.gameScreen.inRound .speech:after{right:auto;left:3cqw;top:-1.3cqw;bottom:auto;border-left:1cqw solid transparent;border-right:1cqw solid transparent;border-top:0;border-bottom:1.3cqw solid #b4be9366}.notice{position:fixed;bottom:12px;max-width:90vw;background:#573c31;color:white;border:1px solid #d8a68c;padding:12px 20px;border-radius:8px;z-index:20;font-size:13px}dialog{max-width:min(580px,90vw);max-height:85dvh;border:1px solid #CEB88C;border-radius:12px;background:#17382d;color:#f0e7d5;padding:30px;box-shadow:0 20px 100px #0008}dialog::backdrop{background:#050d0bd9}dialog .eyebrow{font-size:10px}dialog h2{font-size:21px}dialog p,dialog li{font-size:13px;line-height:1.9}dialog ul{padding-left:20px}.close{position:absolute;right:12px;top:9px;background:none;border:0;font-size:23px;padding:0 6px}.rankRow{display:grid;grid-template-columns:40px 1fr auto;gap:10px;padding:12px 7px;border-bottom:1px solid #CEB88C26;font-size:13px}.rankRow.mine{color:#CEB88C;background:#CEB88C20}.rankRow span{overflow-wrap:anywhere}.rankRow b{font-variant-numeric:tabular-nums;white-space:nowrap}[hidden]{display:none!important}@container(max-width:500px){.quiet{font-size:1.6cqw}.titleRanking .rankRow{font-size:1.4cqw}.titleRanking .rankRow b{font-size:1.3cqw}.loginPanel{width:44%;left:28%;bottom:7%;padding:3cqw 2cqw 1cqw}.loginPanel label{font-size:1.8cqw}.loginPanel input{font-size:2cqw}.loginPanel .primary{font-size:2cqw}.register{font-size:1.5cqw}.loginPanel>small{font-size:1.2cqw}#authError{font-size:1.4cqw}.speech{border-radius:12px}.card{border-width:1px;border-radius:4px}.card.back{border-width:2px}.chip{border-width:2px}.wallet>span{font-size:1.5cqw}.wallet>small{font-size:1.3cqw}.handLabel{font-size:1.4cqw}.handLabel>b{font-size:1.7cqw}.betSummary label{font-size:1.8cqw}#limit{font-size:1.5cqw}.message p{font-size:2cqw}.actionPanel small{font-size:1.4cqw}}
/* Supplied artwork: positions follow プレイ中イメージ.png at 1280 × 960. */
#playScene{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.artMode .portrait,.artMode .tableEdge{display:none}
.artMode .wallet{top:auto;bottom:9.3%;right:2%;width:19%;z-index:6;background:#233743e8;border-color:#CEB88C;color:#CEB88C;padding:.8cqw 1cqw}
.artMode .wallet>b{font-size:2.7cqw}.artMode .wallet>span{font-size:.95cqw}
.artMode .dealerHand,.artMode .playerHand{border:0;border-radius:0;background-color:transparent;background-repeat:no-repeat;background-size:100% 100%;padding:2.7cqw 2.9cqw}
.artMode .dealerHand{left:2.03125%;top:2.916667%;width:56.71875%;height:35.9375%;background-image:url('assets/play/dealer-frame.png')}
.artMode .playerHand{left:.703125%;top:60.520833%;bottom:auto;width:77.65625%;height:39.479167%;background-image:url('assets/play/player-frame.png');padding:3.4cqw 3.9cqw}
.artMode .handLabel{color:#CEB88C;margin-bottom:1.8cqw;font-size:1.1cqw;text-shadow:0 1px 3px #172332}
.artMode .handLabel>b{color:#CEB88C}.artMode .cards{justify-content:flex-start;padding-left:.8cqw}
.artMode .card{width:8.7cqw;height:12.5cqw;margin-left:1.1cqw}
.artMode .card:first-child{margin-left:0}.artMode .cards.crowded .card{margin-left:-4.7cqw}.artMode .cards.crowded .card:first-child{margin-left:0}
.artMode .playerHand .cards{justify-content:center}.artMode .playerHand .card{width:10cqw;height:14.3cqw}.artMode .playerHand .cards.crowded .card{margin-left:-4cqw}.artMode .playerHand .cards.crowded .card:first-child{margin-left:0}
.artMode .actionPanel{left:4.765625%;top:46.770833%;width:51.328125%;height:11.875%;gap:0;justify-content:space-between}
.artMode .actionPanel #stand,.artMode .actionPanel #hit{flex:none;width:43.9878%;height:100%;padding:0;border:0;border-radius:0;background-color:transparent;background-size:100% 100%;background-repeat:no-repeat;color:transparent;font-size:0;box-shadow:none}
.artMode .actionPanel #stand{background-image:url('assets/play/stand.png')}.artMode .actionPanel #hit{background-image:url('assets/play/hit.png')}
.artMode .actionPanel #stand small,.artMode .actionPanel #hit small{display:none}
.artMode .actionPanel button:hover:not(:disabled){filter:brightness(1.12)}.artMode .actionPanel button:active:not(:disabled){transform:translateY(2px)}
.artMode .actionPanel #nextRound{flex:none;width:70%;height:75%;margin:auto;background:#90394f;border:2px solid #CEB88C;color:#CEB88C}
.artMode .message{left:3%;top:39.8%;width:55%;text-shadow:0 1px 4px #1b2537}
.artMode.inRound .speech{display:none}
.artMode .betPanel{background:#253641e8;padding:2cqw;border:2px solid #CEB88C;border-radius:4px;bottom:7%;left:4%;width:50%}
.artMode .speech{background:#283743e8;border-color:#CEB88C;color:#CEB88C}
.artMode .betSummary .primary{background:#913951;border-color:#CEB88C;color:#CEB88C}
.artMode .chip{background:#305a62}.table:has(.artMode:not([hidden])):after{display:none}
.table:has(.artMode:not([hidden])) .utility{right:1.8%;bottom:2%;max-width:20%;flex-wrap:wrap;justify-content:flex-end;gap:.4cqw}
.table:has(.artMode:not([hidden])) .utility .quiet{font-size:1cqw;background:#293845dd;border-color:#CEB88C66}
.artMode .message{top:39.2%;height:7.4%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1cqw;color:#CEB88C}
.artMode .message #message{font-size:1.7cqw;font-weight:bold;line-height:1.15;margin:0}
.message #outcomeDetail{font-size:1.1cqw;line-height:1.2;margin:.15cqw 0;color:#f5e7c5}
.artMode .message #delta{font-size:1.15cqw;line-height:1.1}
.message[data-result="lose"] #message{color:#f1b2a6}
.message[data-result="blackjack"] #message,.message[data-result="win"] #message{color:#CEB88C}
.handEvent{position:absolute;bottom:2.1cqw;left:3cqw;right:3cqw;text-align:center;font-weight:bold;font-size:1.8cqw;letter-spacing:.06em;color:#CEB88C;text-shadow:0 2px 3px #1c2636,0 0 8px #1c2636}
.handEvent[data-kind="bust"]{color:#ffb5aa}
.artMode .playerHand .handEvent{bottom:2.6cqw;font-size:2cqw}

@container(max-width:500px){.artMode .message #message{font-size:2cqw}.message #outcomeDetail{font-size:1.4cqw}.artMode .message #delta{font-size:1.3cqw}.handEvent{font-size:2cqw}.artMode .playerHand .handEvent{font-size:2.2cqw}}
#soundDialog{width:min(420px,85vw)}#soundVolume{display:block;width:100%;margin:20px 0;accent-color:#CEB88C}.muteLabel{display:flex;align-items:center;gap:8px}#soundMuted{width:18px;height:18px;accent-color:#CEB88C}#soundLevel{float:right;color:#CEB88C}
/* v1.6: original supplied UI, without synthetic rough outlines. */
.gameScreen{isolation:isolate}
.artMode .wallet{left:79.0625%;right:auto;top:79.8%;bottom:auto;width:19.3%;height:11.7%;padding:0 .7cqw 1.2cqw;background:transparent url('assets/play/wallet-line.png') bottom/100% auto no-repeat;border:0;border-radius:0;text-align:left;color:#CEB88C}
.artMode .wallet>span{font-size:1.6cqw;color:#CEB88C}.artMode .wallet>b{font-size:3.9cqw;color:#CEB88C}.artMode .wallet>small{position:absolute;top:-1.4cqw;font-size:.95cqw}
.table:has(.artMode:not([hidden])) .utility{left:79.0625%;right:auto;bottom:auto;top:91.77%;width:21.875%;max-width:none;flex-wrap:nowrap;gap:0}
.table:has(.artMode:not([hidden])) .utility button.quiet{flex:0 0 25%;width:5.46875cqw;height:5.46875cqw;padding:0;border:0;background-color:transparent;background-size:100% 100%;font-size:0;color:transparent}
#soundButton{background-image:none}
.table:has(.artMode:not([hidden])) #soundButton{background-image:url('assets/play/settings.png')}
.table:has(.artMode:not([hidden])) #rulesButton{background-image:url('assets/play/rules.png')}
.table:has(.artMode:not([hidden])) #rankButton{background-image:url('assets/play/ranking.png')}
.table:has(.artMode:not([hidden])) #logout{background-image:url('assets/play/logout.png')}
.artMode .speech{left:9.375%;top:9.8958%;width:47.5781%;height:39.4792%;min-height:0;padding:0 5cqw 3cqw 0;background:transparent url('assets/play/speech.png') center/100% 100% no-repeat;border:0;border-radius:0;color:#303b60;font-size:4cqw;white-space:pre-line;text-align:center;isolation:isolate}
.artMode .speech:after{display:none}.artMode .speech:before{content:"";position:absolute;inset:0 -1.31% -2.37% 0;z-index:-1;background:url('assets/play/speech-shadow.png') center/100% 100% no-repeat;mix-blend-mode:multiply}
.artMode .betPanel{inset:0;width:100%;padding:0;border:0;background:transparent;pointer-events:none}
.artMode .betPanel button{pointer-events:auto}
.artMode .betSummary{display:contents}.artMode .betSummary label{position:absolute;left:7.65%;top:57.5%;font-size:0}
.artMode .betSummary b{font-size:7.8cqw;color:#CEB88C}
.artMode #deal{position:absolute;left:40.625%;top:57.7083%;width:22.5781%;height:11.875%;padding:0;border:0;border-radius:0;font-size:0;color:transparent;background:transparent url('assets/play/bet.png') center/100% 100% no-repeat}
.artMode .betLine{position:absolute;left:3.90625%;top:71.77%;width:63.5156%;height:.83333%;margin:0;background:url('assets/play/bet-line.png') center/100% 100% no-repeat}
.artMode .betRow{display:contents}
.artMode .betRow button{position:absolute;top:83.125%;width:10.2344%;height:13.5417%;padding:0;border:0;border-radius:0;color:transparent;font-size:0;background-color:transparent;background-size:100% 100%;background-repeat:no-repeat}
.artMode [data-chip="5"]{left:3.8281%;background-image:url('assets/play/chip5.png')}
.artMode [data-chip="25"]{left:17.5%;background-image:url('assets/play/chip25.png')}
.artMode [data-chip="100"]{left:31.25%;background-image:url('assets/play/chip100.png')}
.artMode #clearBet{left:44.21875%;background-image:url('assets/play/clear.png')}
.artMode #limit{position:absolute;left:4%;top:74%;margin:0;font-size:1.2cqw;color:#CEB88C}
.artMode button:hover:not(:disabled),.table:has(.artMode:not([hidden])) .utility button:hover:not(:disabled){filter:brightness(1.14)}
#endingArt{position:absolute;inset:0;pointer-events:none;z-index:4}
#endTitle{position:absolute;left:16%;top:39.7%;width:31.5%;height:8.8%;object-fit:contain}
.bear{position:absolute;left:1.71875%;top:40.20833%;width:11.171875%;height:20.9375%;background:url('assets/play/bear-win.png') center/100% 100% no-repeat;isolation:isolate}
.bear.right{left:49.84375%;transform:scaleX(-1)}
.bear:before{content:"";position:absolute;inset:0 -5.6% -4.5% 0;background:url('assets/play/bear-shadow.png') center/100% 100% no-repeat;mix-blend-mode:multiply;z-index:-1}
#endingArt[data-kind="bust"] .bear{background-image:url('assets/play/bear-bust.png')}
#endingArt[data-kind="lose"] .bear{background-image:url('assets/play/bear-lose.png')}
#endingArt[data-kind="blackjack"] .bear{background-image:url('assets/play/bear-blackjack.png')}
#endingArt[data-kind="push"] .bear{display:none}
.artMode.finished .actionPanel{left:14.6875%;top:48.645833%;width:33.515625%;height:11.875%}
.artMode.finished #nextRound{width:100%;height:100%;padding:0;margin:0;border:0;border-radius:0;font-size:0;color:transparent;background:transparent url('assets/play/next.png') center/100% 100% no-repeat}
/* Spoken result remains available to screen readers; hand badges show bust/21 visually. */
.artMode.finished .message{width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.endOverlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:7}
#endDark{mix-blend-mode:multiply}#endLight{mix-blend-mode:color-dodge}
.confetti{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:8;pointer-events:none}
#bgmVolume{display:block;width:100%;margin:20px 0;accent-color:#CEB88C}#bgmLevel{float:right;color:#CEB88C}
#soundDialog{width:min(480px,90vw)}#soundDialog a{color:#CEB88C;text-underline-offset:3px}#soundDialog hr{border:0;border-top:1px solid #CEB88C55;margin:24px 0}

/* v1.6.1: each multiply shadow blends with the scene, below its foreground. */
.artMode .speech{background-image:url('assets/play/speech.png');isolation:auto}
.artMode .speech:before,.bear:before{display:none}
#speechShadow{position:absolute;left:9.375%;top:9.8958%;width:48.203125%;height:40.416667%;mix-blend-mode:multiply;z-index:2;pointer-events:none}
.inRound #speechShadow{display:none}
#endingArt{display:contents}
.bear{isolation:auto;z-index:4}
.bearShadow{position:absolute;left:1.71875%;top:40.20833%;width:11.796875%;height:21.875%;mix-blend-mode:multiply;z-index:3;pointer-events:none}
.bearShadow.right{left:49.21875%;transform:scaleX(-1)}
#endingArt[data-kind="push"] .bearShadow{display:none}
#endTitleShadow{position:absolute;left:16%;top:39.7%;width:31.5%;height:8.8%;object-fit:contain;mix-blend-mode:multiply;z-index:3;pointer-events:none}
#endTitle{z-index:4}
.artMode button:hover:not(:disabled){background-color:transparent}
.table:has(.artMode:not([hidden])) .utility{left:76.5625%;z-index:6}
/* Bottom-to-top: UI, confetti, loss shadow (loss only), result light. */
.confetti{z-index:7}
#endDark{z-index:8}
#endLight{z-index:9}

/* v1.7 reference layout: four 58px icons inside x1012..1256, clear of the 1003px card frame. */
.table:has(.artMode:not([hidden])) .utility{left:79.0625%;width:19.0625%;gap:.3125cqw;justify-content:flex-start}
.table:has(.artMode:not([hidden])) .utility button.quiet{flex:0 0 4.53125cqw;width:4.53125cqw;height:4.53125cqw}
.bear.left{transform:scaleX(-1)}.bear.right{transform:none}
.bearShadow.left{left:1.09375%;transform:scaleX(-1)}.bearShadow.right{left:49.84375%;transform:none}
#endingArt[data-kind="push"] .bear{display:block;background-image:url('assets/play/bear-push.png')}
#endingArt[data-kind="push"] .bearShadow{display:block}
#pokeRai{position:absolute;left:61%;top:12%;width:38%;height:64%;z-index:2;background:transparent;border:0;padding:0;box-shadow:none;cursor:pointer;touch-action:manipulation}
#pokeRai:hover:not(:disabled){background:transparent;filter:none}
#speechText{white-space:pre-line;line-height:1.5}
#speechText .unrevealed{visibility:hidden}
#bgmTrack{width:100%;padding:10px;margin:10px 0;color:#CEB88C;background:#203a32;border:1px solid #CEB88C;border-radius:6px}
#bgmStatus{min-height:1.5em;font-size:12px}
/* Original title artwork at reference coordinates. */
#titleScene{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.titleMode .titleArt,.titleMode .titleLogo,.titleMode .panelClip,.titleMode .loginPanel>.eyebrow,.titleMode .loginPanel>small{display:none}
.titleLogoArt{position:absolute;left:1.875%;top:2.916667%;width:27.34375%;height:27.8125%;z-index:5;pointer-events:none}
.titleLogoShadow{position:absolute;left:1.875%;top:2.916667%;width:28.046875%;height:28.75%;mix-blend-mode:multiply;z-index:4;pointer-events:none}
.titleMode .loginPanel{left:38.203125%;top:47.5%;bottom:auto;width:23.671875%;height:44%;padding:0;border:0;background:none;box-shadow:none;border-radius:0;color:#442d41;text-align:left}
.titleMode .loginPanel label{font-size:1.8cqw;margin:0 0 3.6cqw;height:7.9cqw}
.titleMode .loginPanel input{height:2.7cqw;margin:0;padding:.2cqw 0;border:0;background:transparent;color:#442d41;font-size:1.8cqw;mix-blend-mode:multiply;filter:contrast(1.08)}
.titleMode .loginPanel input::placeholder{color:#806777;font-size:1.2cqw}
.titleMode .loginPanel #login{display:block;width:100%;margin:1cqw 0 0;padding:.8cqw;background:transparent;color:#442d41;font-size:2.3cqw}
.titleMode .loginPanel .register{color:#442d41;font-size:.95cqw;margin:2.8cqw 0 0;padding:0;white-space:nowrap}
.titleMode #authError{font-size:1cqw;color:#7c173c;margin:.7cqw 0;line-height:1.3;background:#fff3}
.titleMode .titleRanking{right:1.5%;top:1.5%;width:20%;border:0;background:transparent;padding:0;z-index:4;color:#CEB88C}
.titleMode .titleRanking>.eyebrow{display:none}.titleMode .titleRanking h2{font-size:2.6cqw;color:#CEB88C;margin:0 0 .7cqw}
.titleMode .rankRow{color:#CEB88C}.titleMode .rankRow b{color:#CEB88C}
.titleMode .version{color:#CEB88C;left:1.4%;font-size:1.7cqw}
.table:has(.titleMode:not([hidden])):after{display:none}
.table:has(.titleMode:not([hidden])) .utility{right:1.2%;bottom:1.7%;gap:.3cqw}
.table:has(.titleMode:not([hidden])) .utility button{width:5.46875cqw;height:5.46875cqw;font-size:0;border:0;padding:0;background:transparent center/100% 100% no-repeat}
.table:has(.titleMode:not([hidden])) #soundButton{background-image:url('assets/title/settings.png')}
.table:has(.titleMode:not([hidden])) #rulesButton{background-image:url('assets/title/rules.png')}
.table:has(.titleMode:not([hidden])) #rankButton{display:none}

/* Keep supplied 150x200 cards at their original 3:4 proportions, including alpha edges. */
.artMode .card.artCard,.artMode .playerHand .card.artCard{height:auto;aspect-ratio:3/4;border:0;background:transparent;box-shadow:none;border-radius:0;color:transparent;font-size:0}
.artMode .card.artCard small{visibility:hidden}
.card.artCard img{object-fit:contain;border-radius:0}

/* Labels are rendered in the supplied font underneath the title's processing. */
.srOnly{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.titleMode .loginPanel label{position:relative}
.titleMode .loginPanel input{position:absolute;top:2.8cqw;left:-6.3cqw;width:16cqw;height:2.7cqw;mix-blend-mode:multiply;filter:contrast(1.08)}
.titleMode .loginPanel #login{position:absolute;top:29.5cqw;left:4.1cqw;width:15.8cqw;height:7.5cqw;margin:0;padding:0;background:transparent}
.titleMode .loginPanel .register{position:absolute;top:32cqw;left:0;margin:0}
.titleMode #authError{position:absolute;top:34.2cqw;left:0;width:100%}

/* v1.7.3: touch controls keep the original 4:3 artwork intact. */
.rankingHeading{display:block;width:100%;height:2.6cqw;object-fit:contain;object-position:left center}
button,a,input,select{touch-action:manipulation}
button{-webkit-tap-highlight-color:transparent}
#mobileControls,#mobileLoginBoard{display:none}
body.touchLayout{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;padding:8px 8px max(12px,env(safe-area-inset-bottom));gap:10px}
.touchLayout .table{width:min(1100px,100%);min-width:0;flex:none}
.touchLayout #mobileControls{display:block;width:min(650px,100%);padding:10px;background:#172b32;border:1px solid #CEB88C;border-radius:10px}
#mobileStatus{font-size:14px;margin:0 0 10px;line-height:1.6;color:#CEB88C}
.mobileButtons{display:flex;flex-wrap:wrap;gap:8px}
#mobileUtilities{margin-top:10px;padding-top:10px;border-top:1px solid #CEB88C55}
.mobileButtons button{flex:1 1 auto;min-width:44px;min-height:44px;font-size:15px;padding:10px 12px}
.touchLayout #mobileLoginBoard{display:block;position:absolute;left:24%;top:34%;width:52%;height:63%;z-index:3;border:0;background:transparent;padding:0}
#mobileLogin{width:min(430px,94vw);padding:24px;max-height:90dvh;overflow:auto}
#mobileLogin .loginPanel{position:static;width:100%;height:auto;margin:0;padding:0;border:0;box-shadow:none;background:transparent;text-align:left}
#mobileLogin .panelClip,#mobileLogin .eyebrow,#mobileLogin .loginPanel>small{display:none}
#mobileLogin label{display:block;position:static;height:auto;margin:18px 0;font-size:16px;color:#CEB88C}
#mobileLogin .srOnly{position:static;display:inline;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal}
#mobileLogin input{position:static;display:block;width:100%;height:48px;margin-top:8px;padding:10px;font-size:16px;border:1px solid #CEB88C;background:#142a26;color:#f4ead5}
#mobileLogin #login,#mobileLogin #register{position:static;display:block;width:100%;height:auto;min-height:48px;margin:14px 0;padding:10px;font-size:16px;white-space:normal}
#mobileLogin #authError{position:static;font-size:14px;color:#ffb6b6}
.touchLayout dialog .close{min-width:44px;min-height:44px}
.touchLayout #soundDialog input[type=range]{min-height:44px;width:100%}
@media (hover:none){button:hover:not(:disabled){filter:none!important}.artMode button:hover:not(:disabled){background-color:transparent}}

/* Local-only version: personal records replace the public leaderboard. */
@font-face{font-family:"Matsun-Maru Retro Lamp";src:url("assets/title/retro-lamp.ttf") format("truetype");font-display:swap}
.titleMode .titleRanking{right:2.5%;top:3.5%;width:25%;padding:1.4cqw 1.5cqw;background:#17263dc9;border:1px solid #ceb88c77;border-radius:5px;color:#f3e8d0;z-index:4}
.titleMode .titleRanking>.eyebrow{display:block;font-size:1cqw;font-weight:800;letter-spacing:.16em;color:#f0cda0}
.titleMode .titleRanking h2{font-family:Georgia,serif;font-size:2.4cqw;font-weight:bold;letter-spacing:.08em;color:#fff1d2;margin:.45cqw 0 .9cqw;text-shadow:0 2px 4px #101326}
.titleMode #titleRanking{display:grid;gap:.75cqw}
.titleMode .recordLine{display:flex;flex-direction:column;gap:.15cqw;padding:.55cqw .65cqw;background:#0e172b8c;border:1px solid #e7d5b444;border-radius:3px}
.titleMode .recordLine span{font-size:1cqw;font-weight:800;letter-spacing:.06em;color:#d9c9b2}
.titleMode .recordLine b{font-family:Georgia,serif;font-size:1.9cqw;font-weight:bold;color:#ffe2a6;text-shadow:0 1px 3px #000}
.titleMode .loginPanel label{height:7.9cqw;margin:0}
.titleMode .loginPanel input{top:8.5cqw;left:0;width:100%;height:3.8cqw;padding:.2cqw .3cqw;border:0;background:transparent;color:#252b59;font-family:"Matsun-Maru Retro Lamp","Yu Gothic",sans-serif;font-size:1.7cqw;font-weight:bold;text-align:center;outline-offset:0}
.titleMode .loginPanel input::placeholder{color:#79677b;font-size:1.25cqw;font-weight:bold;opacity:.9}
.titleMode .loginPanel #login{top:23cqw;left:0;width:100%;height:4.2cqw;padding:0;background:transparent;border:0;box-shadow:none;color:transparent;font-size:0}
.titleMode #authError{display:none;background:transparent}
.titleMode #authError:not(:empty){display:block;position:absolute;top:28cqw;left:0;width:100%;font-size:1cqw;color:#7c173c;background:#fff9}
.titleMode .version{font-weight:bold;text-shadow:0 1px 4px #0008}


/* v1.8.3: align title-screen controls with the artwork and keep the hit area over START. */
.titleMode .loginPanel label {
  position: relative;
}
.titleMode .loginPanel input {
  top: 2.0cqw;
  left: 0;
  width: 100%;
  height: 3.8cqw;
  z-index: 2;
  pointer-events: auto;
}
.titleMode .loginPanel #login {
  top: 17.5cqw;
  left: 0;
  width: 100%;
  height: 7.5cqw;
  z-index: 3;
  margin: 0;
  padding: 0;
  pointer-events: auto;
  cursor: pointer;
}
.titleMode .loginPanel form {
  position: static;
}
.titleMode #titleScene {
  pointer-events: none;
}

/* v1.8.4: nudge the name input slightly lower. */
.titleMode .loginPanel input { top: 3.0cqw; }

/* v1.8.6: nudge the name field slightly lower. */
.titleMode .loginPanel input { top: 3.0cqw; }

/* v1.8.8: move the name input a little farther down. */
.titleMode .loginPanel input { top: 3.5cqw; }
