/* Playable Revelia surfaces. Generated scene art frames real, accessible game
   controls; card identities, target positions and outcomes come from replay. */
.shell .amuse-playing .amuse-heading { padding:8px 44px 8px 12px; }
.shell .amuse-playing .amuse-heading > .exp-eyebrow { display:none; }
.shell .amuse-playing .amuse-heading h1 { font-size:20px; margin:0; }
.shell .amuse-playing .amuse-heading .amuse-wallet { display:none; }
.shell .amuse-game-heading { min-height:32px; margin-bottom:6px; }
.shell .amuse-game-heading h2 { font-size:20px; letter-spacing:-.025em; }
.shell .amuse-playing .amuse-game-heading h2 { display:none; }
.shell .amuse-playing .amuse-game-heading { justify-content:flex-end; min-height:24px; margin-bottom:4px; }
.shell .amuse-playing .amuse-footer { display:grid; grid-template-columns:44px minmax(0,1fr); gap:6px; position:relative; }
.shell .amuse-playing .amuse-footer > small { grid-column:1/-1; margin:0; }
.shell .amuse-playing .amuse-footer .amuse-rules { margin:0; }
.shell .amuse-playing .amuse-footer .amuse-rules > summary { width:44px; height:44px; padding:0; display:grid; place-items:center; cursor:pointer; border:1px solid var(--gui-edge); border-radius:14px; background:var(--gui-sheet); }
.shell .amuse-playing .amuse-footer .amuse-rules > summary::marker { content:''; }
.shell .amuse-playing .amuse-footer .amuse-rules > summary .exp-icon { width:22px; height:22px; }
.shell .amuse-playing .amuse-footer .amuse-rules > p { position:absolute; left:0; right:0; bottom:100%; max-height:200px; overflow:auto; padding:14px; border:1px solid var(--gui-edge); border-radius:16px; background:var(--gui-sheet); color:var(--pm-ui-text); box-shadow:var(--gui-shadow); z-index:3; }
.shell .amusements :is(.amuse-game-stake,.amuse-result-stake,.amuse-exchange-rate,.amuse-stake-row,.amuse-actions,.amuse-footer) .amuse-sprite { display:inline-block; width:22px; height:22px; margin:0; vertical-align:middle; flex:none; }
.shell .amusements :is(.amuse-game-stake,.amuse-result-stake,.amuse-exchange-rate,.amuse-stake-row,.amuse-actions,.amuse-footer) .exp-icon { width:16px; height:16px; flex:none; }
.shell .amuse-exchange-rate { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:6px 0 8px; font-size:13px; }
.shell .amuse-exchange-rate small { flex-basis:100%; }
.shell .amuse-stake-row { display:inline-flex; align-items:center; gap:6px; }
.shell .amuse-stake-row select { margin:0; min-width:80px; }
.shell .amuse-cashier { display:flex; flex-wrap:wrap; align-items:start; gap:8px; padding:8px; }
.shell .amuse-cashier > details { flex:1 1 90px; min-width:0; }
.shell .amuse-cashier > details > summary { min-height:44px; display:flex; align-items:center; gap:6px; cursor:pointer; font-weight:700; }
.shell .amuse-cashier > details > summary .amuse-sprite { width:24px; height:24px; margin:0; }
.shell .amuse-cashier .amuse-actions { display:grid; grid-template-columns:1fr; }
.shell .amuse-cashier .amuse-actions button { display:flex; align-items:center; justify-content:center; gap:5px; min-width:0; }
.shell .amuse-cashier .amuse-actions .amuse-currency-ticket { width:24px; height:16px; flex:none; }
.shell .amusements .amuse-currency-ticket { vertical-align:middle; object-fit:contain; }
.shell .amuse-result-stake { display:inline-flex; align-items:center; gap:4px; margin-left:8px; font-size:13px; }
.shell .amuse-result > p > strong { display:inline-flex; align-items:center; gap:5px; }
.shell .amuse-result > p > strong > .amuse-sprite { width:24px; height:24px; display:inline-block; margin:0; }
.shell .amuse-play-surface { display:grid; grid-template-columns:minmax(160px,.8fr) minmax(0,1.2fr); min-width:0; border:1px solid var(--gui-edge); border-radius:20px; overflow:hidden; background:var(--pm-ui-surface); box-shadow:var(--gui-shadow); }
.shell .amuse-play-art { margin:0; min-width:0; min-height:160px; overflow:hidden; background:var(--pm-ui-surface-soft); }
.shell .amuse-play-art > .amuse-illustration { display:block; width:100%; height:100%; max-height:none; object-fit:cover; object-position:center; }
.shell .amuse-play-controls { min-width:0; padding:12px; }
.shell .amuse-play-controls > .amuse-instruction { margin:0 0 10px; font-size:13px; line-height:1.35; padding:8px 10px; }
.shell .amuse-target-mark { width:18px; height:18px; display:grid; place-items:center; position:absolute; right:2px; top:2px; }
.shell .amuse-target-mark .exp-icon { width:17px; height:17px; color:#a47722; }
.shell .amuse-ring-board { gap:5px; }
.shell .amuse-ring-board .amuse-control { position:relative; border-radius:16px; background:var(--gui-sheet)!important; }
.shell .amuse-ring-board .amuse-control:has(.amuse-target-mark) { box-shadow:inset 0 0 0 2px #e9b75b; }
.shell .amuse-grid { margin:8px auto; gap:7px; }
.shell .amuse-grid .amuse-control { border-radius:17px; background:var(--gui-sheet)!important; box-shadow:0 3px 8px var(--pm-ui-shadow); }
.shell .amuse-grid.water { background:linear-gradient(150deg,#75c9d7,#4c9faf); border:0; border-radius:18px; padding:8px; }
.shell .amuse-grid.memory .amuse-control { background:linear-gradient(145deg,#6f374b,#432e45)!important; color:#f8dfae!important; }
.shell .amuse-grid.memory .amuse-control:has(.amuse-sprite) { background:var(--gui-sheet)!important; box-shadow:inset 0 0 0 2px var(--pm-ui-accent); }
.shell .amuse-shells .amuse-control { background:var(--gui-sheet)!important; border-radius:18px; min-height:100px!important; }
.shell .amuse-pearl { width:14px; height:14px; border-radius:50%; background:#fff6d8; box-shadow:0 2px 5px #38495844; font-size:0; top:42px; }
.shell .amuse-tower { border-radius:30px 30px 12px 12px; border:3px solid #cba66d; background:linear-gradient(90deg,#283743,#455768,#283743); overflow:visible; }
.shell .amuse-tower i { background:linear-gradient(90deg,#f7d98a,#e5a750); box-shadow:0 0 12px #f7d98a77; }
.shell .amuse-striker input { accent-color:var(--pm-ui-accent); }
.shell .amuse-hands > div { background:linear-gradient(135deg,#246466,#194951); color:#edf7f4; border:0; border-radius:18px; }
.shell .amuse-hands h3 { color:#edf7f4; }
.shell .amuse-playing-card { background:#f8f2e6; color:#35414f; border:1px solid #d7c9b0; border-radius:8px; box-shadow:0 4px 7px #12384244; }
.shell .amuse-playing-card.red { color:#b93e53; }
.shell .amuse-playing-card.back { background:linear-gradient(145deg,#893b58,#432d48); color:#f0c47d; border-color:#dab984; }
.shell .amuse-playing-card.held { border:2px solid var(--pm-ui-accent); box-shadow:0 0 0 2px #61d7cc44,0 4px 10px var(--pm-ui-shadow); }
.shell .amuse-playing-card.held small { color:#246c5e; }
.shell .amuse-reels { border:2px solid #d8b67e; border-radius:20px; background:linear-gradient(135deg,#314351,#1f2c38); }
.shell .amuse-reels > div { clip-path:none; border-radius:12px; background:#f9efd9; box-shadow:inset 0 2px 5px #6c504332; }
.shell .amuse-die { color:var(--pm-ui-text); filter:drop-shadow(0 5px 8px var(--pm-ui-shadow)); }
.shell .amuse-result { background:linear-gradient(140deg,color-mix(in srgb,var(--section-a) 18%,var(--pm-ui-surface)),var(--pm-ui-surface)); border:1px solid var(--gui-edge); border-radius:18px; }
.shell .amuse-result h2 { color:var(--pm-ui-text); }
.shell .amuse-result > p > strong { color:var(--gui-success); font-size:20px; }
.shell .amuse-rules { margin-top:6px; }
.shell .amuse-catalogue [data-amuse-launch] { transition:translate 180ms var(--pm-ui-ease),box-shadow 180ms ease; }
.shell .amuse-catalogue [data-amuse-launch]:active:not(:disabled) { translate:0 2px; }
@media(max-width:600px) {
 .shell .amuse-casino .amuse-catalogue [data-amuse-launch]:has(img.amuse-illustration) { min-height:86px!important; gap:3px; padding:5px!important; }
 .shell .amuse-casino .amuse-catalogue [data-amuse-launch] .amuse-illustration { height:36px; }
 .shell .amuse-play-surface { grid-template-columns:minmax(0,1fr); }
 .shell .amuse-play-art { min-height:0; height:48px; }
 .shell .amuse-play-art > .amuse-illustration { object-position:center 48%; }
 .shell .amuse-play-controls { padding:10px; }
 .shell .amuse-play-controls .amuse-grid .amuse-control { height:64px; }
 .shell .amuse-play-controls .amuse-sprite { height:46px; width:46px; }
 .shell .amuse-play-controls .amuse-ring-board .amuse-sprite { width:28px; height:46px; }
 .shell .amuse-play-controls .amuse-ring-board { margin:8px auto; }
 .shell .amuse-playing-card { width:43px; height:64px; margin:2px; }
 .shell .amuse-poker .amuse-playing-card { height:68px; }
 .shell .amuse-hands > div { padding:8px; margin:6px 0; }
 .shell .amuse-hands { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:6px; }
 .shell .amuse-hands > div { padding:6px; }
 .shell .amuse-hands h3 { font-size:12px; margin:0 0 6px; }
 .shell .amuse-hands .amuse-playing-card { width:38px; height:60px; margin:1px; }
 .shell .amuse-game-heading h2 { font-size:18px; }
 .shell .amuse-shells .amuse-control { min-height:88px!important; }
 .shell .amuse-playing .amuse-footer small { font-size:11px; }
}
@media(max-height:500px) and (orientation:landscape) {
 .shell .amuse-playing { display:grid; grid-template-columns:112px minmax(0,1fr); grid-template-rows:minmax(0,1fr) auto; gap:6px 10px; position:relative; }
 .shell .amuse-playing .amuse-heading { grid-column:1; grid-row:1; background-image:linear-gradient(0deg,#18383de8,transparent 85%),var(--amuse-game-art); background-size:cover; background-position:center; display:flex; align-items:flex-end; padding:12px; }
 .shell .amuse-playing .amuse-heading h1 { color:#fff5df; font-size:17px; padding-bottom:26px; }
 .shell .amuse-playing .amuse-reading { grid-column:2; grid-row:1; padding:0 6px 0 0; }
 .shell .amuse-playing .amuse-footer { grid-column:1/-1; grid-row:2; }
 .shell .amuse-playing .amuse-game-heading { position:absolute; left:12px; bottom:66px; margin:0; color:#fff5df; }
 .shell .amuse-playing .amuse-play-surface { grid-template-columns:minmax(0,1fr); }
 .shell .amuse-playing .amuse-play-art { display:none; }
 .shell .modal-amusements:has(.amuse-playing) > .exp-icon-button:first-child { left:12px; right:auto; }
 .shell .amuse-playing .amuse-roulette { grid-template-columns:repeat(6,minmax(44px,1fr)); margin:6px auto; }
 .shell .amuse-play-surface { grid-template-columns:130px minmax(0,1fr); }
 .shell .amuse-play-art { min-height:0; height:auto; }
 .shell .amuse-play-controls { padding:8px; }
 .shell .amuse-play-controls .amuse-grid { grid-template-columns:repeat(3,minmax(44px,1fr)); max-width:320px; margin:6px auto; }
 .shell .amuse-play-controls .amuse-grid .amuse-control { height:48px; }
 .shell .amuse-play-controls .amuse-sprite { width:34px; height:34px; }
 .shell .amuse-play-controls .amuse-instruction { font-size:12px; padding:6px 8px; margin-bottom:6px; }
 .shell .amuse-playing-card { height:58px; width:38px; margin:2px; }
 .shell .amuse-hands { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
 .shell .amuse-hands > div { margin:0; padding:7px; }
 .shell .amuse-reels { padding:10px; margin:6px auto; }
 .shell .amuse-die { font-size:64px; line-height:1; }
 .shell .amuse-shells .amuse-control { min-height:72px!important; }
}
@media(prefers-reduced-motion:no-preference) {
 html:not(.calm-motion) body:not(.calm-motion) .amuse-play-surface { animation:venue-table-arrive 260ms var(--pm-ui-ease) both; }
 html:not(.calm-motion) body:not(.calm-motion) .amuse-playing-card { animation:venue-card-deal 240ms var(--pm-ui-ease) both; }
 html:not(.calm-motion) body:not(.calm-motion) .amuse-playing-card:nth-child(2) { animation-delay:40ms; }
 html:not(.calm-motion) body:not(.calm-motion) .amuse-playing-card:nth-child(3) { animation-delay:80ms; }
 html:not(.calm-motion) body:not(.calm-motion) .amuse-die { animation:venue-die-land 380ms var(--pm-ui-ease) both; }
 html:not(.calm-motion) body:not(.calm-motion) .amuse-result .amuse-reels > div { animation:venue-reel-land 420ms var(--pm-ui-ease) both; }
 html:not(.calm-motion) body:not(.calm-motion) .amuse-result .amuse-reels > div:nth-child(2) { animation-delay:60ms; }
 html:not(.calm-motion) body:not(.calm-motion) .amuse-result .amuse-reels > div:nth-child(3) { animation-delay:120ms; }
 html:not(.calm-motion) body:not(.calm-motion) .amuse-result > p > strong { display:inline-block; animation:venue-prize-pop 420ms var(--pm-ui-ease) both; }
}
@keyframes venue-table-arrive { from{opacity:.3;translate:0 6px} to{opacity:1;translate:0 0} }
@keyframes venue-card-deal { from{opacity:.2;transform:translateY(-8px) rotate(-4deg)} to{opacity:1;transform:none} }
@keyframes venue-die-land { from{opacity:.3;transform:translateY(-10px) rotate(-14deg)} 70%{transform:translateY(2px) rotate(3deg)} to{opacity:1;transform:none} }
@keyframes venue-reel-land { from{opacity:.3;transform:translateY(-12px)} 70%{transform:translateY(3px)} to{opacity:1;transform:none} }
@keyframes venue-prize-pop { from{opacity:.2;transform:scale(.9)} 70%{transform:scale(1.04)} to{opacity:1;transform:none} }
@media(prefers-reduced-motion:reduce) { .amusements :is(.amuse-play-surface,.amuse-playing-card,.amuse-die,.amuse-result *,[data-amuse-launch]) { animation:none!important;transition:none!important; } }
.calm-motion .amusements :is(.amuse-play-surface,.amuse-playing-card,.amuse-die,.amuse-result *,[data-amuse-launch]) { animation:none!important;transition:none!important; }
:root.strong-contrast .shell .amusements :is(.amuse-play-surface,.amuse-play-controls,.amuse-instruction,.amuse-hands>div) { background:var(--pm-ui-surface); color:var(--pm-ui-text); border:1px solid var(--pm-ui-line); }
:root.strong-contrast .shell .amusements .amuse-hands h3 { color:var(--pm-ui-text); }

.venue-shortcuts{position:absolute;top:calc(100% + 8px);right:12px;display:flex;gap:8px;max-width:100%;z-index:5}.venue-shortcuts .exp-icon-button{width:auto;flex:0 1 auto;min-height:44px;padding:8px 12px;gap:7px;font-size:12px;background:var(--ui-panel,#20252c);box-shadow:0 3px 12px #0003}.venue-shortcuts .exp-icon{width:20px;height:20px;flex:0 0 20px}

/* Compact controls float over continuous, edge-to-edge map artwork. */
body:not(.fullscreen-over-dialog):has(.route-map-clean) .global-fullscreen{display:none}
body.floating-fullscreen:not(.fullscreen-over-dialog) .shell .route-map-clean>.exp-map-heading{margin-left:0}
.shell .exp-app .exploration-system.route-map-clean>.exp-map-heading{top:12px;left:12px;right:12px;width:auto;max-width:none;min-height:0;margin:0;padding:10px 12px;display:flex;flex-direction:row;align-items:center;gap:10px;border-radius:16px;background:none;box-shadow:none}
.shell .route-map-clean .exp-map-title{flex:1;min-width:0;max-width:none;padding:0;border:0;background:none;box-shadow:none}
.shell .route-map-clean .exp-map-title h2{font-size:16px;line-height:1.2;margin:3px 0;text-wrap:balance}
.shell .route-map-clean .exp-map-title>small{font-size:10px;letter-spacing:0}
.shell .route-map-clean .exp-resources{position:static;display:flex;flex-direction:column;align-items:flex-end;gap:3px;width:auto}
.shell .route-map-clean .map-wallet,.shell .route-map-clean .map-actions{display:flex;align-items:center;gap:4px}
.shell .route-map-clean .exp-hud-amount{min-height:28px;padding:0 3px;background:none;box-shadow:none}
.shell .route-map-clean .exp-hud-amount .exp-money{font-size:14px;gap:3px}
.shell .route-map-clean .exp-money img{max-width:22px;max-height:20px;object-fit:contain}
.shell .route-map-clean .venue-shortcuts{position:static;display:flex;gap:4px;max-width:none}
.shell .route-map-clean .venue-shortcuts .exp-icon-button,.shell .route-map-clean .exploration-tools>summary{display:grid;place-items:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:10px;border-radius:12px;box-shadow:none;background:var(--pm-ui-surface-soft)}
.shell .route-map-clean .exploration-tools>summary .exp-icon{width:20px;height:20px;transform:none}
.shell .exp-app .exploration-system.route-map-clean>.exp-board-viewport{inset:0!important;height:auto!important}
.shell .exp-app .exploration-system.route-map-clean>.exp-map-dock{position:absolute;top:auto;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:auto;max-width:none;margin:0;display:flex;flex-direction:row;align-items:center;gap:6px;padding:6px;border-radius:16px;background:none;box-shadow:none}
.shell .route-map-clean .exp-party-strip{position:static;inset:auto;flex:1;min-width:0;width:auto;max-width:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:0;border-radius:0;background:none;box-shadow:none}
.shell .route-map-clean .exp-party-card{width:auto;min-height:44px;padding:3px;display:flex;flex-direction:row;gap:4px;background:none;border:0;box-shadow:none}
.shell .route-map-clean .exp-party-image{width:22px;height:26px;flex:0 0 22px}
.shell .route-map-clean .exp-party-copy{gap:2px;min-width:0}
.shell .route-map-clean .exp-party-copy strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shell .route-map-clean .exp-party-copy small{font-size:10px;line-height:1.1;white-space:nowrap}
.shell .route-map-clean .exp-party-temp{font-size:9px;display:block}
.shell .route-map-clean .exp-path-controls{display:block;flex:0 0 auto;width:auto;max-width:120px;padding:0}
.shell .route-map-clean .exp-path-heading{min-height:44px;display:block}
.shell .route-map-clean .exp-path-hint,.shell .route-map-clean .exp-path-options{display:none}
.shell .route-map-clean .route-compare-button{display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:10px;border-radius:12px;background:var(--pm-ui-surface-soft)}
.shell .route-map-clean .journey-banter{flex:0 0 100%}
.shell .route-map-clean .exp-map-dock:has(.journey-banter){flex-wrap:wrap}
@media(min-aspect-ratio:4/3){
 .shell .exp-app .exploration-system.route-map-clean>.exp-map-heading{top:12px;right:auto;width:clamp(158px,23vw,260px);flex-direction:column;align-items:stretch}
 .shell .route-map-clean .exp-resources{align-items:stretch}
 .shell .route-map-clean .map-wallet,.shell .route-map-clean .map-actions{justify-content:space-between}
 .shell .route-map-clean .exploration-tools>nav{left:0;right:auto}
 .shell .exp-app .exploration-system.route-map-clean>.exp-map-dock{left:auto;right:12px;width:clamp(158px,23vw,260px);flex-direction:column;align-items:stretch}
 .shell .route-map-clean .exp-party-strip{display:flex;flex-direction:column;align-items:stretch}
 .shell .route-map-clean .exp-path-controls{max-width:none}
 .shell .exp-app .exploration-system.route-map-clean>.exp-board-viewport{inset:0!important}
}

.shell .route-map-clean .map-actions>.exp-icon-button{display:grid;place-items:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:10px;border-radius:12px;background:var(--pm-ui-surface-soft);box-shadow:none}
.shell .route-map-clean .map-actions>.exp-icon-button .exp-icon{width:20px;height:20px}
.shell .route-map-clean .exp-map-title{flex:1;width:auto}
.shell .route-map-clean .exp-map-title h2{max-width:190px}
.shell .route-map-clean .exp-journey-progress{max-width:190px}
.shell .route-map-clean .exp-path-heading{background:none;box-shadow:none}
@media(max-width:359px) and (max-aspect-ratio:3/4){.shell .route-map-clean .map-actions{flex-wrap:wrap;justify-content:flex-end;max-width:140px}.shell .route-map-clean .venue-shortcuts{order:1}}

.shell .route-map-clean :is(.exp-map-title,.map-wallet,.exp-party-copy){text-shadow:0 1px 4px #000b}
