@font-face{font-family:"One More Display";src:url('./fonts/display.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"One More Interface";src:url('./fonts/interface-medium.woff2') format('woff2');font-weight:400 600;font-style:normal;font-display:swap}
@font-face{font-family:"One More Interface";src:url('./fonts/interface-bold.woff2') format('woff2');font-weight:650 900;font-style:normal;font-display:swap}
@font-face{font-family:"One More CJK";src:url('./fonts/cjk.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"One More CJK Display";src:url('./fonts/cjk-display.woff2') format('woff2');font-weight:700 900;font-style:normal;font-display:swap}
:root{--font-ui:"Segoe UI","One More CJK","Microsoft YaHei",sans-serif;--font-display:Georgia,"Times New Roman",serif;--font-number:Georgia,"Times New Roman",serif;font-family:var(--font-ui)}
body,input,select,textarea{font-family:var(--font-ui)}
.wordmark{font-family:var(--font-display);font-weight:900;font-style:italic;letter-spacing:-.075em}
.table-actions .draw-action{font-family:var(--font-display);font-weight:900;font-style:normal;letter-spacing:-.05em}
.wordmark>span,.question-mark{font-family:inherit;font-style:normal}
.score-box strong,.round-plaque b,.deck-count b,.run-target b,.tile-top b,.cash-action strong,.score-equation,.food-waiver-count b,.bank-receipt b,.score-receipt,.feedback-float,.draft-receipt>b,.dice-result strong,.stakes-select .stake-number{font-family:var(--font-number);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:0}
.score-box>small,.eyebrow,.tile-top,.tile-badge,.preview-slot>span,.preview-slot>small,.relic-rack .relic-charge{font-family:var(--font-ui)}
.tile>strong,.inspector h2,.catalog-card h3,.package h3{font-family:var(--font-ui);font-weight:700}
.card-rule,.lesson p,.event-narrative{font-family:var(--font-ui);font-weight:500}
.guide-pointer span{font-family:var(--font-ui)}
html[lang^=zh]{--font-heading:"One More CJK Display","One More CJK",serif}
html[lang^=zh] :is(h1,h2,h3):not(.wordmark){font-family:var(--font-heading);font-weight:800;letter-spacing:.04em}
html[lang^=zh] :is(.menu-play,.menu-continue,.menu-secondary,.event-actions>.primary,.sealed-reward>button,.route-card>button,.package>button,.stakes-select .stake-label b){font-family:var(--font-heading);font-weight:800;letter-spacing:.07em}
html[lang^=zh] :is(.pan-scene-name,.pan-scene-caption strong,.staple-caption,.press-caption,.parcel-caption){font-family:var(--font-heading);font-weight:800}
html[lang^=zh] :is(.card-rule,.lesson p,.event-narrative,.pan-copy p,.route-fragment p,.item-lore,.story-copy,.selection-summary,.guide-pointer span){font-family:var(--font-ui);font-style:normal}
html[lang^=zh] :is(.tile>strong,.preview-slot>span,.catalog-card h3,.relic-entry h3){font-family:var(--font-ui);font-weight:700;letter-spacing:0}
html[lang=en] .score-box>small{letter-spacing:.8px;font-weight:700}
html[lang=en] .tile>strong{letter-spacing:.15px}

/* Source and destination must remain distinguishable without hovering. */
.card-row .tile.selected,.card-row .tile.selected:hover:not(:disabled){outline:3px solid var(--scarlet);outline-offset:3px;translate:0 -10px;z-index:5}
.tile.selected .tile-top>span{background:var(--scarlet);color:var(--paper);padding:2px 5px;font-size:10px;line-height:1.3;font-weight:800;letter-spacing:.03em;border:1px solid var(--paper);box-shadow:1px 2px 0 var(--night)}
.choosing-on-table .card-row .tile.targetable:not(.selected){outline:2px dashed var(--paper);outline-offset:3px;animation:none}
.tile.chosen-target:not(.selected){outline:3px solid var(--violet);outline-offset:3px}
.card-seat:has(.tile.selected){z-index:8}
.choosing-on-table .tile:not(.targetable,.selected,.chosen-target){opacity:.55}
.lesson .lesson-continue{margin:10px 0 0;padding:8px 15px;border:1px solid var(--paper);background:var(--gold);color:var(--night);font-weight:800;min-height:38px;pointer-events:auto}
.lesson .lesson-copy>strong{color:var(--gold)}
.score-box.target-score .goal-met{font-size:clamp(16px,1.7vw,24px);line-height:1.55}
.score-explanation{display:block;font:inherit;font-size:11px;line-height:1.4;margin-top:5px}
.run-target{border:0;text-align:left;width:100%}
.run-target>.score-help{display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;width:16px;height:16px;flex-shrink:0}
@media(prefers-reduced-motion:reduce){.tile{transition:none}}
html[data-motion=reduced] .tile{transition:none}

/* Lighting lives behind the play surface. Printed illustrations retain flat inks. */
.table-light{position:absolute;inset:0;border-radius:inherit;overflow:hidden;z-index:-1;pointer-events:none;contain:paint}
.table-light:before{content:'';position:absolute;width:78%;height:105%;left:13%;top:-21%;border-radius:50%;background:#fff3bc;opacity:.085;filter:blur(52px)}
.table-light:after{content:'';position:absolute;width:50%;height:110%;right:-35%;bottom:-37%;border-radius:50%;background:var(--night);opacity:.13;filter:blur(40px)}
.game-room:after{box-shadow:inset 1px 2px 0 #fff6d633,inset -7px -9px 0 var(--felt-shadow,#1d6d50),inset 0 0 30px #081a2824}
.game-room:before{border-color:var(--felt-edge,#73be83);opacity:.82}
.salon-felt{box-shadow:inset 1px 2px 0 #fff6d633,inset -8px -10px 0 var(--felt-shadow,#1d6d50),inset 0 0 30px #081a2824}
.tile,.tile:hover:not(:disabled),.flying-face{box-shadow:inset 0 1px 0 #fffdf2,1px 2px 0 #cab9a0,3px 5px 0 #10263055,6px 9px 9px #1026302b}
.tile.paired{box-shadow:inset 0 1px 0 #fffdf2,2px 3px 0 var(--scarlet),4px 7px 0 #10263055,7px 10px 10px #10263024}
.tile.selected{box-shadow:inset 0 1px 0 #fffdf2,2px 3px 0 #cab9a0,5px 8px 0 #10263044,8px 13px 12px #10263033}
@media(hover:hover) and (pointer:fine){.tile:hover:not(:disabled){box-shadow:inset 0 1px 0 #fffdf2,1px 2px 0 #cab9a0,4px 7px 0 #10263044,8px 13px 12px #10263033}}
.score-box{box-shadow:inset 0 1px 0 #fff8e833,3px 5px 0 #10263044,5px 8px 8px #10263018}
.score-box.bank-score{box-shadow:inset 0 1px 0 #fff8e814}
.table-actions .draw-action,.table-actions .draw-action:hover:not(:disabled){box-shadow:inset 0 2px 0 #fff8e866,0 5px 0 color-mix(in srgb,var(--scarlet) 55%,var(--night)),3px 9px 0 #10263044,5px 12px 10px #10263029;border:1px solid var(--paper)}
.table-actions .draw-action:active:not(:disabled){box-shadow:inset 0 1px 0 #fff8e844,0 2px 0 color-mix(in srgb,var(--scarlet) 55%,var(--night)),2px 4px 4px #10263033;translate:1px 3px}
.table-actions .cash-action{box-shadow:inset 0 1px 0 #fff8e82b,2px 4px 0 #10263044}
.casino .action-tray{box-shadow:inset 0 1px 0 #fff8e822,3px 5px 0 #10263033,5px 8px 8px #10263018}
.relic-rack .relic-token,.relic-rack .run-protection{box-shadow:inset 0 1px 0 #fffdf2,2px 4px 0 #10263055,4px 7px 6px #10263024}
.preview-slot.known,.preview-slot.known:hover:not(:disabled){box-shadow:1px 2px 0 #cab9a0,3px 5px 0 #10263044}
.route-card,.package,.catalog-card,.relic-entry{box-shadow:inset 0 1px 0 #fffdf2,3px 5px 0 var(--violet),6px 9px 10px #10182a33}
@media(max-width:600px){
 html[lang=en] .score-box>small{font-size:9px!important;letter-spacing:.35px}
 .table-light:before{width:120%;height:65%;left:-10%;top:12%;filter:blur(28px);opacity:.07}
 .table-light:after{display:none}
 .tile,.tile:hover:not(:disabled){box-shadow:inset 0 1px 0 #fffdf2,1px 2px 0 #cab9a0,3px 5px 0 #10263055,4px 7px 6px #10263024}
}
