/* Device discovery is shared; the compact phone floor keeps playable games in view. */
.cab-play { display: none; }
.mobile-create { display: none; }
.cab-device, .game-support { color: var(--spark); font: 600 12px/1.45 var(--font-body); }
.game-support { margin: 0; }
.cab-device { display: block; margin: 7px 0; }
.cab-device[data-support="desktop"], .cab-device[data-support=""] { color: var(--muted); }
.device-filters { display: flex; flex-wrap: wrap; gap: 7px; }
.device-filters button { appearance: none; min-height: 44px; padding: 9px 13px; border: 1px solid var(--line); border-radius: 10px; background: var(--well); color: var(--muted); font: 600 13px/1.3 var(--font-body); cursor: pointer; }
.device-filters button[aria-pressed="true"] { background: #28413e; border-color: var(--spark); color: #b9ffea; }
.panel { align-items: safe center; }
@media (max-width: 760px), (pointer: coarse) and (max-width: 1024px) {
  .app { height: 100dvh; }
  .bar { padding-block: 4px; gap: 8px; min-height: 46px; }
  body[data-panel="pHub"] .mobile-create { display: flex; align-items: center; min-height: 44px; color: var(--signal); font: 700 12px/1.2 var(--font-body); text-decoration: none; }
  .bar .brand { font-size: 16px; }
  .active-game-title { font-family: var(--font-body); font-size: 13px; }
  .onair { font-size: 9px; padding: 5px 7px; letter-spacing: .06em; }
  .heard, .meter, .readout { display: none; }
  body:not(.voice-active) .listen, body[data-panel="pHub"] .listen { display: none; }
  .hub { gap: 10px; padding-top: 10px; }
  .hero { display: block; padding: 4px 0 2px; }
  .hero .marquee, .hero .launch { display: none; }
  .hero-copy { gap: 6px; }
  .hero-kicker { font-size: 10px; }
  .hero-sub { max-width: 45ch; font-size: 19px; }
  .game-types { gap: 5px; }
  .game-types-label { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
  .catalog-tools { gap: 9px; }
  .catalog-bar { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
  .catalog-search { grid-column: 1; grid-row: 1; }
  .catalog-search input { font: 400 16px/1.4 var(--font-body); padding: 10px; min-height: 44px; }
  .catalog-toggle { grid-column: 2; grid-row: 1; min-height: 44px; padding: 10px; font: 700 12px/1 var(--font-body); letter-spacing: 0; }
  .catalog-summary { grid-column: 1/-1; grid-row: 2; font: 400 11px/1.4 var(--font-body); }
  .device-filters { flex-wrap: nowrap; gap: 6px; }
  .device-filters button { flex: 1; min-width: 0; padding: 8px 7px; font-size: 12px; }
  .catalog-filters { grid-template-columns: minmax(0,1fr); padding: 14px; gap: 12px; }
  .catalog-field select { font-size: 16px; min-height: 44px; }
  .shelves { gap: 24px; }
  .shelf { scroll-margin-top: 12px; gap: 0; }
  .shelf-head { gap: 7px; padding-bottom: 9px; margin-bottom: 10px; }
  .shelf-head h2 { font-size: 20px; text-shadow: 0 0 12px color-mix(in srgb,var(--hue) 45%,transparent); animation: none; }
  .shelf-head p { display: none; }
  .shelf-icon svg { width: 23px; height: 23px; }
  .shelf-head::after { height: 1px; box-shadow: none; opacity: .5; }
  .cabinets { grid-template-columns: minmax(0,1fr); gap: 10px; }
  .cab-slot { border-radius: 13px; grid-template-rows: auto auto; background: #231d50; box-shadow: inset 0 0 0 1px #514773; }
  .cab-slot:hover, .cab-slot:has(:focus-visible) { transform: none; }
  .cab { grid-template-columns: 84px minmax(0,1fr); grid-template-rows: auto 1fr auto; gap: 5px 12px; padding: 12px; min-height: 130px; }
  .cab-top { grid-column: 2; grid-row: 1; margin: 0; padding: 1px 42px 0 0; min-width: 0; min-height: 0; background: none; box-shadow: none; border-radius: 0; }
  .cab-name { font-size: 15px; line-height: 1.25; text-shadow: none; }
  .cab-best { display: none; }
  .cab-screen { grid-column: 1; grid-row: 1 / 4; align-self: center; width: 84px; height: 94px; aspect-ratio: auto; margin: 0; padding: 3px; border-radius: 9px; }
  .cab-screen canvas { border-radius: 6px; }
  .cab-screen::after { inset: 3px; border-radius: 6px; }
  .cab-body { grid-column: 2; grid-row: 2; padding: 0; min-width: 0; gap: 0; }
  .cab-tag { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: #c8c1e8; font: 400 13px/1.4 var(--font-body); }
  .cab-device { font-size: 12px; margin: 5px 0 0; }
  .cab-meta, .cab-panel, .cab>.cab-coin { display: none; }
  .cab-play { display: block; grid-column: 2; grid-row: 3; width: fit-content; color: var(--signal); font: 800 13px/1.5 var(--font-body); }
  .cab-actions { position: absolute; right: 6px; top: 4px; padding: 0; }
  .cab-save { min-height: 44px; width: 44px; border: 0; font-size: 0; }
  .cab-save::before { content: '☆'; font: 400 23px/1 var(--font-body); }
  .cab-save[aria-pressed="true"]::before { content: '★'; }
  .cab-rank { display: none; }
  .cab-slot .mkt { margin: 0 12px 12px; grid-template-columns: minmax(0,1fr) auto; grid-template-areas: 'id trade'; gap: 8px; padding: 9px 10px; }
  .mkt .spark, .mkt-moves { display: none; }
  .mkt-trade { min-height: 44px; display: flex; align-items: center; padding: 8px 10px; }
  .cab.make { min-height: 140px; grid-template-columns: 84px minmax(0,1fr); }
  .cab.make .cab-coin { display: none; }
  .card { padding: 18px; gap: 12px; border-radius: 13px; }
  .card h2 { font-size: 25px; }
  .card .lede { font-size: 15px; line-height: 1.55; }
  .card .linkbtn { min-height: 44px; display: inline-flex; align-items: center; }
  .card .btn { min-height: 44px; }
  .btn, .duel-side .btn, .boxing-control { min-height: 44px; }
  .stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .clip video { max-height: 200px; }
  .feedback-field textarea, .feedback-field input, .submit input { font-size: 16px; }
  .foundry-shell, .open-game-shell { width: 100%; min-width: 0; margin: 8px 0 24px; padding: 14px; }
  .foundry-machine, .foundry-resources>div, .foundry-prestige { min-width: 0; }
  .foundry-machine .btn { min-height: 44px; }
}
@media (max-height: 500px) and (orientation: landscape) {
  .bar { padding-block: 5px; flex-wrap: nowrap; }
  .active-game-title { order: 0; flex: initial; font-size: 12px; white-space: nowrap; }
  .panel:not(.floor) { padding-block: 8px; }
  .card { gap: 8px; }
}

/* Pixel gauges, restrained motion, and a compact player destination for post-run EXP. */
.game-logo{object-fit:cover;border-radius:14px;background:var(--well);border:1px solid #8270bc;image-rendering:auto;flex:none}.result-identity{display:flex;align-items:center;gap:12px;min-width:0}.result-identity .eyebrow{line-height:1.5}.results-media,.results-competition{display:grid;align-content:start;gap:16px;min-width:0}.results-competition:has(>[hidden]):not(:has(>:not([hidden]))){display:none}.replay-button{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:15px;min-height:64px;min-width:220px;padding:12px 19px;overflow:hidden;border:1px solid #ffe2a1;border-radius:13px;background:linear-gradient(155deg,#ffe59a,#ffc14f 42%,#ff9942);color:#351b0b;box-shadow:0 6px 0 #99501a,0 11px 25px #ffb54733;transition:transform .15s,box-shadow .15s}.replay-button>span:nth-child(2){display:grid;text-align:left;gap:6px}.replay-button b{font:400 19px/1 var(--font-display);text-transform:uppercase}.replay-button small{font:700 9px/1.1 var(--font-mono);letter-spacing:.15em}.replay-symbol{font-size:25px;filter:drop-shadow(0 2px #fff5)}.replay-arrow{font-size:29px}.replay-button::after{content:'';position:absolute;inset:-30% auto -30% -70%;width:36%;background:linear-gradient(90deg,transparent,#fff8,transparent);transform:skewX(-22deg);animation:replay-shine 4.5s ease-in-out infinite;pointer-events:none}.replay-button:hover{transform:translateY(-2px);box-shadow:0 8px 0 #99501a,0 14px 28px #ffb54755}.replay-button:active{transform:translateY(5px);box-shadow:0 1px 0 #99501a}.replay-button:disabled{animation:none;transform:none}.results-media:has(>#overClip[hidden]):has(>#overMarket[hidden]){display:none}.results-competition #overBoard{grid-column:auto}.result-replay-actions{gap:16px}
@keyframes replay-shine{0%,65%{left:-70%}90%,100%{left:150%}}
@media(min-width:1200px){#pOver{padding:18px 24px;align-items:safe center}.results-card,.results-card:has(.results-market[hidden]){width:min(1680px,100%);grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;padding:20px;align-items:start}.results-main{align-content:start;gap:12px}.results-main h2{font-size:30px}.results-main .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.results-main .stats dd{font-size:24px}.results-card .feedback-form{grid-column:auto;grid-template-columns:minmax(0,1fr);gap:12px;margin:0;padding:0;border:0}.results-card .feedback-heading,.results-card .feedback-actions{grid-column:auto}.results-card .feedback-heading h3{font-size:18px}.results-card .feedback-field textarea{min-height:100px}.results-card .clip{grid-template-columns:minmax(0,1fr);gap:12px;padding:12px;margin:0}.results-card .clip video{max-height:150px;aspect-ratio:16/9}.results-card .clip-side{gap:9px}.results-card .clip-side .btn{padding:9px 11px;font-size:12px;min-height:40px}.results-card .fine{font-size:12px;line-height:1.45}.results-card .score-challenge{padding:14px}.results-card .score-challenge h3{font-size:17px}.results-card .board{padding:14px}.results-card .board li{font-size:12px;gap:6px}.results-card .board li b{font-size:14px}.results-card .board li a{font-size:10px}.results-card .match-options{gap:7px}.results-card .match-options .btn{font-size:12px;padding:10px 12px}.results-card .score-percentile{font-size:12px;padding:10px}.results-card .intro-market{padding:12px}.results-card .im-head{gap:6px}.results-card .im-price{font-size:18px}.results-card .im-stats{gap:7px}.results-card .im-chart .spark.big{height:90px}.results-card .im-axis{font-size:9px}.results-card .im-foot{gap:10px}.results-card .im-foot .fine{font-size:10px}.results-card .retro-curve{padding:10px}.results-card .exp-reward{padding:13px}.results-card .exp-reward-head strong{font-size:26px}.results-card .replay-button{min-width:0;width:100%}.results-main>.row{gap:16px}.results-main>.row>.replay-button{flex:1 0 100%}.results-main>.row>#overMenu{min-height:40px;padding:10px 18px}}
@media(max-width:1199px){.results-card,.results-card:has(.results-market[hidden]){width:min(760px,100%);grid-template-columns:minmax(0,1fr)}.results-card .feedback-form{grid-column:1}.results-media .clip{margin:0}.results-competition{grid-column:1}.replay-button{min-width:210px}}
@media(prefers-reduced-motion:reduce){.replay-button::after{animation:none;display:none}.replay-button{transition:none}}
.brand{min-width:0;gap:8px}.brand .marquee{font-size:clamp(18px,2.3vw,32px);line-height:1.25}.brand img{width:32px;height:32px}.header-menu{position:relative;flex:none;z-index:60}.header-menu summary{list-style:none;cursor:pointer;min-height:44px;display:flex;align-items:center;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--well);font:600 12px/1 var(--font-mono)}.header-menu summary::-webkit-details-marker{display:none}.header-menu nav{position:absolute;top:calc(100% + 10px);left:0;min-width:200px;max-width:calc(100vw - 32px);padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 15px 35px #0009;display:grid}.header-menu a{padding:11px 13px;min-height:44px;color:var(--text);font:600 13px/1.5 var(--font-body);text-decoration:none;border-radius:7px}.header-menu a:hover{background:var(--well);color:var(--signal)}body[data-panel="pHub"] .bar .meter,body[data-panel="pHub"] .bar .readout{display:none}.hero{justify-content:center}.results-board{grid-column:1/-1}.match-options{display:flex;flex-wrap:wrap;gap:8px}.match-options .btn{min-height:44px}.score-percentile{margin:0;padding:12px;border:1px solid #7860a8;border-radius:9px;color:#d9bbff;font:600 13px/1.6 var(--font-body)}.match-entry-dialog{display:grid;gap:12px}.match-entry-dialog:not([open]){display:none}.match-entry-dialog p{margin:0}.match-entry-dialog input{width:100%;min-width:0;font-size:16px}.match-entry-dialog .stats{margin:12px 0 0;grid-template-columns:repeat(2,minmax(0,1fr))}.match-entry-dialog .row{flex-wrap:wrap}.match-entry-dialog .btn{min-height:44px}.entry-selected{box-shadow:inset 0 0 0 2px var(--spark)!important}
@media(max-width:760px),(pointer:coarse) and (max-width:1024px){.brand .marquee{font-size:18px}.brand img{width:25px;height:25px}.header-menu summary{font-size:11px;padding:8px}.header-menu nav{left:auto;right:0}.bar .brand{gap:5px}.bar{flex-wrap:nowrap}body:not([data-panel="pHub"]) .bar{flex-wrap:wrap}.hero-kicker{letter-spacing:0}.header-menu{order:1}.player-badge{order:2}}
@media(max-width:360px){.brand .marquee{font-size:14px}.brand img{width:22px;height:22px}.bar{gap:6px}.header-menu summary{padding:7px}}
.retro-curve{--curve:0%;min-width:0;padding:14px;border:1px solid var(--line,#3e3688);border-radius:10px;background:var(--well,#120f33);color:var(--text,#f4f0ff)}.curve-heading{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font:600 11px/1.4 var(--font-mono,monospace);letter-spacing:.04em;margin-bottom:10px}.curve-heading>span{color:var(--muted,#aca5db)}.curve-heading>b{color:var(--spark,#6ee7c8)}.curve-track{height:20px;position:relative;border:2px solid #7062ac;border-radius:4px;background:#08061d;isolation:isolate;overflow:hidden;box-shadow:inset 0 3px 0 #0007,0 2px 0 #0007}.curve-track::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(5% - 3px),#100b2b 0 5%);pointer-events:none;z-index:2}.curve-fill{display:block;height:100%;min-width:0;background:linear-gradient(#caffac,#6ee7c8 45%,#29a68d);box-shadow:0 0 15px #6ee7c877;transition:width .8s cubic-bezier(.16,1,.3,1);animation:curve-fill-in .75s cubic-bezier(.16,1,.3,1)}.curve-coin{position:absolute;left:clamp(2px,calc(var(--curve) - 8px),calc(100% - 18px));top:-1px;z-index:3;color:#ffd06b;font:normal 18px/1 monospace;text-shadow:0 0 6px #ffb547,1px 2px #5a2c03;transition:left .8s cubic-bezier(.16,1,.3,1)}.retro-curve small{display:block;margin-top:9px;color:var(--muted,#aca5db);font:400 10px/1.5 var(--font-mono,monospace)}.retro-curve.graduated{border-color:#e7b65c}.retro-curve.graduated .curve-fill{background:linear-gradient(#fff2ac,#ffb547,#bf6b17)}.retro-curve.compact{padding:9px 10px}.compact .curve-heading{font-size:9px;margin-bottom:6px}.compact .curve-track{height:13px}.compact .curve-coin{font-size:13px}.mkt>.retro-curve{grid-column:1/-1;width:100%}.intro-market>.retro-curve{margin-top:12px}#tradeCurve{margin:18px 0 22px}.player-badge{appearance:none;position:relative;display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 12px;border:1px solid #7561b7;border-radius:10px;color:var(--text);background:linear-gradient(145deg,#30225b,#191334);font:600 11px/1.35 var(--font-mono,monospace);cursor:pointer;flex:none;box-shadow:0 3px 0 #0b0820;overflow:hidden}.player-badge:focus-visible{outline:3px solid var(--signal);outline-offset:3px}.player-badge>i{font:normal 23px/1 monospace;color:#ffcf68;filter:drop-shadow(0 0 5px #ffb54755)}.player-badge span{display:grid;gap:2px;text-align:left}.player-badge b{font-size:11px;color:#e1c5ff}.player-badge small{font-size:10px;color:var(--spark)}.player-wallet-mini{border-left:1px solid #7561b7;padding-left:10px}.player-xp-track{position:absolute;bottom:0;left:0;right:0;height:3px;background:#100b25}.player-xp-track i{display:block;width:var(--xp,0%);height:100%;background:#d1a5ff;transition:width .65s ease}.player-badge.xp-arrived{animation:xp-arrived .65s ease}.exp-reward{padding:16px;border:1px solid #7050ad;border-radius:12px;background:radial-gradient(ellipse at top right,#49306d,#1b153c 70%);display:grid;gap:10px;position:relative;isolation:isolate;overflow:hidden}.exp-reward-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.exp-reward-head strong{font:400 28px/1.2 var(--font-display);color:#d4b0ff}.exp-reward-head span{font:600 11px/1.3 var(--font-mono);color:var(--spark)}.exp-reasons{display:flex;flex-wrap:wrap;gap:7px}.exp-reasons span,.exp-unlocked{font:600 10px/1.5 var(--font-mono);background:#100b25;padding:5px 8px;border-radius:5px;color:#d4c9f4}.exp-unlocked{color:#ffcf68}.exp-fill{height:7px;background:#100b25;border-radius:3px;overflow:hidden}.exp-fill i{display:block;width:var(--xp,0%);height:100%;background:linear-gradient(90deg,#865aff,#d9b4ff);transition:width .8s ease}.exp-note{font:400 11px/1.5 var(--font-body);color:var(--muted)}.xp-flight{position:fixed;z-index:2000;pointer-events:none;left:0;top:0;color:#e9c4ff;text-shadow:0 0 8px #b98cff;font:700 17px/1 monospace;will-change:transform,opacity}.xp-flight b{color:#ffcb6d;font-size:23px}.player-dialog{width:min(560px,calc(100% - 28px));max-height:85dvh;overflow:auto;background:var(--panel);color:var(--text);border:1px solid #705ca0;border-radius:18px;padding:24px}.player-dialog::backdrop{background:#09051bba;backdrop-filter:blur(6px)}.player-dialog-head{display:flex;justify-content:space-between;align-items:start;gap:15px}.player-dialog-head h2{font:400 24px/1.3 var(--font-display);margin:0}.player-dialog-head button{flex:none}.player-dialog p{font:400 13px/1.6 var(--font-body);color:var(--muted)}.passport-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:18px 0}.passport-stats>div{background:var(--well);border-radius:9px;padding:12px;min-width:0}.passport-stats dt{font:500 10px/1.5 var(--font-mono);color:var(--muted)}.passport-stats dd{margin:5px 0 0;color:#dac0ff;font:400 22px/1.2 var(--font-display)}.passport-badges{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.passport-badge{padding:12px;background:#181333;border:1px solid var(--line);border-radius:9px;color:var(--muted);font:600 11px/1.5 var(--font-mono)}.passport-badge.unlocked{color:#ffd884;border-color:#967035;background:#382a32}.passport-badge small{display:block;color:var(--muted);font:400 11px/1.5 var(--font-body);margin-top:4px}.passport-wallet{padding-top:18px;border-top:1px solid var(--line);margin-top:20px}.passport-wallet h3{font:400 16px/1.4 var(--font-display);margin:0}.passport-wallet .row{flex-wrap:wrap;gap:8px}.passport-wallet .btn{min-height:44px}.passport-choices{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.passport-status{overflow-wrap:anywhere}.passport-fees{color:var(--spark)!important}.xp-toast{position:fixed;z-index:2100;top:84px;right:18px;max-width:min(360px,calc(100% - 36px));padding:14px 18px;border:1px solid #c6a2ff;border-radius:12px;background:#2f2055;color:#eedbff;font:600 13px/1.5 var(--font-mono);box-shadow:0 8px 35px #0008;pointer-events:none}.exp-spark{position:absolute;width:5px;height:5px;background:#ffd36d;pointer-events:none;animation:exp-spark .8s ease-out forwards}.player-dialog .linkbtn{min-height:44px;display:inline-flex;align-items:center}
@keyframes curve-fill-in{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}@keyframes xp-arrived{35%{box-shadow:0 0 25px #b98cffaa;transform:scale(1.06)}}@keyframes exp-spark{to{transform:translate(var(--dx),var(--dy));opacity:0}}
@media(max-width:760px),(pointer:coarse) and (max-width:1024px){.player-wallet-mini{display:none!important}.player-badge{padding:5px 8px;gap:6px;max-width:105px}.player-badge>i{font-size:19px}.player-badge b,.player-badge small{font-size:9px}.bar{gap:7px}.retro-curve{padding:12px}.curve-heading{font-size:10px}.mkt>.retro-curve.compact{display:none}.player-dialog{padding:18px}.player-dialog-head h2{font-size:20px}.passport-stats>div{padding:9px}.passport-stats dd{font-size:19px}.xp-toast{top:65px}.exp-reward-head strong{font-size:24px}}
@media(max-width:380px){body[data-panel="pHub"] .mobile-create{display:none}}
@media(prefers-reduced-motion:reduce){.curve-fill,.curve-coin,.exp-fill i,.player-xp-track i{transition:none;animation:none}.player-badge.xp-arrived,.exp-spark{animation:none}.xp-flight{display:none}}
@media(max-width:760px),(pointer:coarse) and (max-width:1024px){.mkt>.retro-curve.compact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;padding:0;border:0;background:none}.mkt .compact .curve-heading{display:contents}.mkt .compact .curve-heading>span{display:none}.mkt .compact .curve-heading>b{grid-column:2;grid-row:1;font-size:9px;max-width:130px}.mkt .compact .curve-track{grid-column:1;grid-row:1;height:10px}.mkt .compact .curve-coin{font-size:11px}}
@media(max-width:1100px){.player-wallet-mini{display:none!important}.player-badge{padding:5px 9px;gap:7px}}

.cab-logo{position:absolute;left:18px;top:18px;z-index:2;width:40px;height:40px;border-radius:10px;box-shadow:0 3px 8px #0008;pointer-events:none}@media(max-width:760px){.cab-logo{left:12px;top:12px;width:28px;height:28px;border-radius:7px}}

@media(min-width:1200px){.results-card .market-details{width:100%;font:400 11px/1.5 var(--font-body);color:var(--muted)}.market-details summary{cursor:pointer;min-height:28px;display:list-item}.results-card .market-details p{margin:8px 0 0}.results-card .im-chart .spark{height:85px}.results-card .retro-curve small{font-size:9px}.results-card .im-foot .btn{padding:9px 14px;min-height:40px}.results-card .im-stats dt{font-size:9px}.results-card .im-stats dd{font-size:13px}}
@media(min-width:1200px) and (max-height:850px){#pOver{padding:12px 18px}.results-card,.results-card:has(.results-market[hidden]){padding:16px;gap:16px}.results-main{gap:9px}.results-main .game-logo{width:44px;height:44px}.results-main h2{font-size:26px}.results-card .score-challenge{padding:11px;gap:9px}.results-card .score-challenge p{margin:0}.results-card .results-competition{gap:12px}.results-card .board{padding:11px}.results-card .board .match-options{flex-wrap:nowrap}.results-card .match-options .btn{font-size:10px;padding:8px;min-height:36px}.results-card .score-percentile{font-size:11px;line-height:1.45;padding:8px}.results-card .board{gap:10px}.results-card .clip video{max-height:110px}.results-card .clip{gap:8px;padding:10px}.results-card .clip-side{gap:7px}.results-card .clip-side .btn{min-height:36px;padding:7px 9px;font-size:11px}.results-card .im-chart .spark{height:65px}.results-card .im-chart{margin-top:8px}.results-card .intro-market{padding:10px}.results-card .retro-curve{padding:8px;margin-top:8px}.results-card .im-foot{margin-top:8px;gap:7px}}

@media(min-width:1200px) and (max-height:850px){.results-card .intro-market{gap:7px}.results-card .im-chart .spark.big{height:65px}.results-card .retro-curve.compact{margin-top:0;padding:7px}.results-card .retro-curve.compact .curve-track{height:13px}.results-card .im-chart,.results-card .im-foot{margin-top:0}.results-card .clip .fine{font-size:11px}.results-card .board .fine{font-size:11px}.results-card .results-competition .match-options{gap:5px}}

/* Wallet connection is a direct header action, separate from cosmetic EXP. */
.player-wallet-button{max-width:190px;min-width:100px}.player-wallet-button span{min-width:0}.player-wallet-button b,.player-wallet-button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-wallet-button:disabled{cursor:wait}.passport-wallet{scroll-margin:18px}
@media(max-width:760px){.player-wallet-button{max-width:120px;min-width:88px}.player-wallet-button b{font-size:11px}.player-wallet-button small{font-size:10px}}
.claim-result{border:1px solid var(--af-mint,#7cf8d2);display:grid;gap:10px;margin:14px 0;color:var(--af-cream,#fff6df)}.claim-result .row{display:flex;flex-wrap:wrap;gap:14px}.claim-result strong{color:var(--af-mint,#7cf8d2)}
.claim-result{padding:16px;border-radius:14px;background:var(--af-glass-deep,#130e2c)}.claim-result[hidden]{display:none!important}
.player-dialog-head{position:sticky;top:0;z-index:2;background:var(--af-glass-deep,#130e2c);padding-block:8px}.passport-wallet{scroll-margin-top:96px}
@media(max-width:760px){body[data-panel="pHub"] .bar .brand{flex:none;min-width:27px}body[data-panel="pHub"] .bar .brand .marquee{display:none}body[data-panel="pHub"] .bar .brand img{display:block;width:27px;height:27px}}

/* Platform chrome stays compact; the game owns its visual language. */
body[data-game="aurora-weave"] .active-game-title{color:#b6ffe4;font-family:Georgia,serif;font-style:italic;text-transform:none;letter-spacing:.04em;text-shadow:0 0 16px #81ffd766}
body[data-game="lantern-keeper"] .active-game-title{color:#ffd29e;font-family:Georgia,serif;text-transform:none;text-shadow:2px 2px #7e3d43}
body[data-game="glacier-glide"] .active-game-title{color:#cff6ff;font-family:'Trebuchet MS',sans-serif;font-style:italic;letter-spacing:-.04em;text-shadow:2px 2px #207099}
body[data-in-game="true"] .bar{gap:12px;flex-wrap:nowrap;min-height:66px}
body[data-in-game="true"] .bar .brand{margin-right:0;flex:none}
body[data-in-game="true"] .bar .brand .marquee{display:none}
body[data-in-game="true"] .bar .brand img{width:32px;height:32px}
body[data-in-game="true"] .active-game-title{order:10;margin-left:auto;max-width:48%;text-align:right;font:900 clamp(19px,2.5vw,34px)/1.08 Impact,'Arial Black',sans-serif;text-transform:uppercase;letter-spacing:.035em;color:var(--game-accent);white-space:normal;text-wrap:balance;overflow:visible}
body[data-in-game="true"] .bar .player-badge{order:3;margin-left:0}
body[data-in-game="true"] .header-menu{order:1}
body[data-in-game="true"] .bar .meter,body[data-in-game="true"] .bar .readout{max-width:85px}
body[data-in-game="true"] .bar .onair{order:4}
body[data-in-game="true"] .listen{display:none}
body[data-game="reactor-foundry"] .bar,body[data-game="scrapstorm"] .bar{background:#101b20;border-color:#48616b}
body[data-game="reactor-foundry"] .active-game-title{color:#ffb347;font-family:Impact,'Arial Narrow',sans-serif;letter-spacing:.09em;text-shadow:2px 2px #5e3423}
body[data-game="neon-wake"] .active-game-title{color:#79ffb9;font-style:italic;letter-spacing:.12em;text-shadow:0 0 14px #20ff8b66}
body[data-game="rift-runner"] .active-game-title{color:#ff866e;font-style:italic;letter-spacing:-.03em;text-shadow:3px 3px #3f2b56}
body[data-game="pulse-breaker"] .active-game-title{font-family:'Arial Black',sans-serif;color:#ffdf54;letter-spacing:-.07em;text-shadow:2px 2px #b02b40}
body[data-game="orbit-needle"] .active-game-title{font-family:var(--font-mono);font-weight:500;color:#e7ff9e;letter-spacing:.1em}
body[data-game="scrapstorm"] .active-game-title{font-family:Impact,sans-serif;color:#d7e7f0;letter-spacing:.16em;text-shadow:2px 2px #48616b}
body[data-game="spark-cascade"] .active-game-title{font-family:'Trebuchet MS',sans-serif;color:#ffb9d4;letter-spacing:-.03em;text-shadow:2px 2px #b1386c,0 0 10px #ff558866}
body[data-game$="-reversi"] .active-game-title,body[data-game$="-five"] .active-game-title,body[data-game="progress-knight"] .active-game-title{font-family:Georgia,serif;text-transform:none;color:#edd5a0;font-style:italic}
body[data-game$="-boxes"] .active-game-title{font-family:'Trebuchet MS',sans-serif;color:#ffb795;transform:rotate(-2deg)}
body[data-game="a-dark-room"] .active-game-title{font:400 clamp(20px,2.5vw,32px)/1.1 Georgia,serif;color:#eee;text-transform:none}
.pov-toggle{order:2;flex:none;min-height:38px;padding:7px 10px;border:1px solid #6a6385;border-radius:7px;color:#ded8f3;background:#171527;font:600 11px/1.2 var(--font-body);cursor:pointer}
.pov-toggle[aria-pressed="true"]{color:#b1ffdf;border-color:#63d5a6;background:#133c30}
.pov-dialog{width:min(540px,calc(100% - 28px));max-height:85dvh;overflow:auto;padding:24px;border:1px solid #9a8db9;border-radius:16px;background:#221d38;color:#eee;box-shadow:0 20px 90px #0009}
.pov-dialog::backdrop{background:#080611c9;backdrop-filter:blur(6px)}
.pov-dialog h2{font:800 24px/1.2 var(--font-body);margin:0 0 16px}.pov-dialog p{font:400 14px/1.6 var(--font-body);color:#c9c4d7}.pov-dialog .row{flex-wrap:wrap}
/* Ore, steel, power: a production floor, rather than a stack of purple cards. */
body[data-game="reactor-foundry"] #pFoundry{background:radial-gradient(ellipse at 50% 0,#31454c,#0d171c 70%);color:#e8e3ce;align-items:start;padding:20px}
#pFoundry .foundry-shell{--well:#14242b;--line:#465c62;--muted:#b5c3be;--signal:#ffb347;--spark:#a9d9b4;--font-display:Impact,'Arial Narrow',sans-serif;width:min(1240px,100%);margin:0 auto;padding:22px;border:1px solid #5c7277;border-radius:3px;background:linear-gradient(120deg,#26363b,#1a292e);box-shadow:0 15px 70px #0007,inset 0 1px #a5b2a84d;font-family:var(--font-mono);position:relative}
#pFoundry .foundry-shell::before{content:'';display:block;height:6px;margin:-22px -22px 18px;background:repeating-linear-gradient(125deg,#e2a84b 0 12px,#222b2e 12px 24px)}
#pFoundry .foundry-header{align-items:center}.foundry-header .eyebrow{margin:0;font-size:10px;letter-spacing:.16em}#pFoundry .foundry-header .eyebrow{color:#ffb347}#foundryCores{font-size:11px!important;color:#b8c6c2!important;margin:7px 0!important}
#pFoundry .fine{font:400 11px/1.65 var(--font-mono);color:#b5c3be;margin:7px 0}
.foundry-reactor{height:140px;position:relative;display:grid;place-items:center;overflow:hidden;border:1px solid #4e676e;background:repeating-linear-gradient(90deg,#ffffff04 0 1px,transparent 1px 32px),linear-gradient(#0b1a21,#142c31);margin:14px 0 0}
.foundry-reactor::before{content:'';position:absolute;width:90px;height:90px;border:13px double #8ce3bc;border-radius:50%;box-shadow:0 0 25px #76ffc93d,inset 0 0 20px #76ffc944;animation:reactor-spin 22s linear infinite;border-right-color:#345957;border-bottom-color:#345957}
.foundry-reactor::after{content:'⚡';font:400 44px/1 system-ui;color:#fff4b6;text-shadow:0 0 24px #8dffc7}
.foundry-reactor span{position:absolute;left:14px;top:10px;font:500 9px var(--font-mono);letter-spacing:.15em;color:#8faeaf}
.foundry-reactor b{position:absolute;right:12px;bottom:10px;font:500 10px var(--font-mono);color:#a0e8ba}
#pFoundry .foundry-resources{gap:1px;border:1px solid #4e676e;margin:0 0 16px;background:#4e676e}
#pFoundry .foundry-resources>div{background:#10232a;border:0;border-radius:0;gap:5px;padding:14px;position:relative}
#pFoundry .foundry-resources>div::before{content:'';position:absolute;top:12px;right:12px;width:5px;height:5px;background:#f5ae62;box-shadow:0 0 8px currentColor}
#pFoundry .foundry-resources>div:nth-child(2)::before{background:#c7d7dd}#pFoundry .foundry-resources>div:nth-child(3)::before{background:#b7ed7d}#pFoundry .foundry-resources>div:nth-child(4)::before{background:#75d3e3}
#pFoundry .foundry-resources span{color:#b3c7c4;font-size:10px}#pFoundry .foundry-resources strong{font:500 clamp(24px,3vw,34px)/1.2 var(--font-mono);color:#f0c477}
#pFoundry .btn,#pFoundry .foundry-import{border-radius:3px;font:700 12px/1.4 var(--font-mono);min-height:44px}#pFoundry .btn{background:#e5b46b;color:#1d282a;border:1px solid #ffe4ab;box-shadow:0 3px #815a36;padding:11px 14px}#pFoundry .btn.ghost{background:#273d43;border-color:#657b7e;color:#d2e0d8;box-shadow:0 3px #101d23}#pFoundry .btn:disabled{opacity:.5}
#pFoundry .foundry-actions{gap:10px;margin-bottom:15px}#foundryMachines{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
#pFoundry .foundry-machine{grid-template-columns:1fr;margin:0;padding:18px;border-radius:3px;background:linear-gradient(140deg,#31454b,#203139);border-color:#566c70;gap:14px;position:relative}
#pFoundry .foundry-machine::before{content:'01 / EXTRACTION';font:500 9px/1.4 var(--font-mono);letter-spacing:.12em;color:#d3ab6a}#pFoundry .foundry-machine:nth-child(2)::before{content:'02 / METALLURGY'}#pFoundry .foundry-machine:nth-child(3)::before{content:'03 / POWER GRID'}#pFoundry .foundry-machine:nth-child(4)::before{content:'04 / COMPUTATION'}
#pFoundry .foundry-machine h3{font:500 22px/1.2 Impact,sans-serif;letter-spacing:.05em;text-transform:uppercase;margin:0}#pFoundry .foundry-machine p{font-size:11px}#pFoundry .foundry-machine h3 span{font-family:var(--font-mono);color:#ffca7e}
#pFoundry .foundry-buy{grid-template-columns:1fr 1fr;gap:8px}#pFoundry .foundry-buy>span{grid-column:1/-1;color:#d5d8bc;font-size:11px}#pFoundry .foundry-prestige{border-radius:3px;border-color:#8b7955;background:#2e3934;padding:16px}#pFoundry .foundry-prestige h3{font-family:Impact,sans-serif;text-transform:uppercase;letter-spacing:.08em}
@keyframes reactor-spin{to{transform:rotate(360deg)}}
/* Each board has its own physical material and color system. */
body[data-game$="-gravity"] #pDuel{background:#102f59}body[data-game$="-gravity"] .duel-shell{background:#17457b;border-color:#4e83b3;border-radius:6px}.duel-board.gravity{background:#1c67c4;border:5px solid #104b92;box-shadow:0 8px #0b376d}.duel-board.gravity .duel-cell{background:#124b8a;border-color:#347bd0}
body[data-game$="-reversi"] #pDuel{background:radial-gradient(ellipse,#214c3a,#081f19)}body[data-game$="-reversi"] .duel-shell{background:#163a2b;border-color:#6b8060;border-radius:4px}.duel-board.reversi{background:#176248;border:7px solid #392f20;gap:1px}.duel-board.reversi .duel-cell{background:#226c50;border-color:#173f30}.duel-board.reversi .duel-cell[data-piece="1"]::before,.duel-board.five .duel-cell[data-piece="1"]::before{background:radial-gradient(circle at 35% 30%,#596263,#111819 65%);box-shadow:0 3px 3px #0008}.duel-board.reversi .duel-cell[data-piece="2"]::before,.duel-board.five .duel-cell[data-piece="2"]::before{background:radial-gradient(circle at 35% 30%,#fff,#d6d2c2 65%);box-shadow:0 3px 3px #0007}
body[data-game$="-five"] #pDuel{background:#3b2f24}body[data-game$="-five"] .duel-shell{background:#564433;border-color:#ac8d5e;border-radius:2px}.duel-board.five{background:repeating-linear-gradient(2deg,#c6a774 0 3px,#c8ab7b 4px 8px);border:7px solid #795b33}.duel-board.five .duel-cell{background:linear-gradient(transparent 49%,#775b3d 49% 51%,transparent 51%),linear-gradient(90deg,transparent 49%,#775b3d 49% 51%,transparent 51%)}
body[data-game$="-boxes"] #pDuel{background:#29515c}body[data-game$="-boxes"] .duel-shell{background:#254b55;border-color:#91c0bd}.duel-board.boxes{background:repeating-linear-gradient(#fff8df 0 23px,#d6ddd2 24px 25px);border:5px solid #e8c992;box-shadow:3px 7px #122b33}.duel-board.boxes .duel-dot{background:#203846}.duel-board.boxes .duel-edge:not([data-piece="1"]):not([data-piece="2"]){background:#aab7ac}.duel-board.boxes .duel-box{border-radius:2px}
body[data-game="a-dark-room"] #pOpenGame{background:#f4f2ee;color:#222}body[data-game="a-dark-room"] .open-game-shell{background:#fff;color:#222;border-color:#ccc;border-radius:0}body[data-game="a-dark-room"] .open-game-shell .fine{color:#555}
body[data-game="progress-knight"] #pOpenGame{background:#24312b}body[data-game="progress-knight"] .open-game-shell{background:#d7ceb3;color:#263228;border:4px double #8b794f;border-radius:2px}body[data-game="progress-knight"] .open-game-shell .fine{color:#4b5948}
/* Preview canvases always fill their cabinet; no outer letterbox, even on portrait thumbnails. */
.cab-screen{overflow:hidden;padding:0}.cab-screen canvas{width:100%;height:100%;border-radius:inherit}.cab-screen::after{inset:0}
body[data-game="pulse-breaker"] #actionHud .action-button{background:#f0e6ce;color:#222;border:2px solid #222;border-radius:2px;box-shadow:3px 3px #222}
body[data-game="neon-wake"] #actionHud .action-button{background:#071f1e;color:#85ffc9;border-color:#3dba91;border-radius:2px}
body[data-game="rift-runner"] #actionHud .action-button{background:#452844;color:#ffd2ad;border-color:#e48b79;border-radius:4px}
body[data-game="scrapstorm"] #actionHud .action-button{background:#253d49;color:#e6eff2;border-color:#8aafb8;border-radius:2px}
body[data-game="orbit-needle"] #actionHud .action-button{background:#0b151b;color:#ecffb5;border-color:#859e73;border-radius:99px}
body[data-game="spark-cascade"] #actionHud .action-button{background:#ffdae8;color:#673659;border:2px solid #fff4ed;border-radius:18px;box-shadow:0 3px #9e4d7a}
@media(max-width:760px){body[data-in-game="true"] .bar{gap:8px;min-height:57px;padding-block:6px}body[data-in-game="true"] .bar .brand img{width:27px;height:27px}body[data-in-game="true"] .active-game-title{flex:1;max-width:none;font-size:clamp(17px,4.3vw,23px);order:10;line-height:1.05}body[data-in-game="true"] .bar .player-badge{display:none}body[data-in-game="true"] .bar .onair{font-size:8px;letter-spacing:0;padding:5px}body[data-in-game="true"] .bar .onair i{display:none}.pov-toggle{max-width:80px;font-size:10px;padding:7px}.pov-dialog{padding:18px}body[data-game="reactor-foundry"] #pFoundry{padding:10px}#pFoundry .foundry-shell{padding:14px}#pFoundry .foundry-shell::before{margin:-14px -14px 12px}.foundry-reactor{height:115px}.foundry-reactor::before{width:68px;height:68px}.foundry-reactor span{font-size:8px;max-width:80px}#pFoundry .foundry-resources{grid-template-columns:repeat(4,minmax(0,1fr))}#pFoundry .foundry-resources>div{padding:12px 7px}#pFoundry .foundry-resources strong{font-size:20px}#pFoundry .foundry-resources span{font-size:8px}#pFoundry .foundry-resources>div::before{display:none}#pFoundry .foundry-actions{display:grid;grid-template-columns:1fr 1fr}#pFoundry .foundry-actions #foundryBoost{grid-column:1/-1}#foundryMachines{grid-template-columns:1fr}#pFoundry .foundry-machine{padding:14px}.cab-screen{padding:0}.cab-screen::after{inset:0}}
@media(prefers-reduced-motion:reduce){.foundry-reactor::before{animation:none}}

body[data-game="online-boxing"] .bar{background:#0b1724;border-color:#3b596c}body[data-game="online-boxing"] .active-game-title{color:#f2eada;font-style:italic;text-shadow:2px 2px #b74741}
body[data-game="online-boxing"] #pBoxing{background:radial-gradient(ellipse,#25465d,#0b1724)}body[data-game="online-boxing"] .boxing-lobby{background:#142b3d;border:1px solid #698493;border-radius:3px}.boxing-lobby>h2{display:none}body[data-game="online-boxing"] .boxing-lobby .btn{border-radius:3px;background:#e9dcc0;color:#172a37}body[data-game="online-boxing"] .boxing-lobby .btn.ghost{background:#263d4d;color:#e9dcc0;border-color:#6c8190}.boxing-bars{background:#0b1724}.boxing-side label{color:#ff857b}.boxing-side:last-child label{color:#a6d4ff}
#pIntro .result-identity .eyebrow,#pLaneIntro .result-identity .eyebrow,#pGliderIntro .result-identity .eyebrow{display:none}

.foundry-guide summary{font:600 12px/1.5 var(--font-mono);color:#d5bd8b;cursor:pointer;min-height:28px}body[data-game="pulse-breaker"] #actionReadout,body[data-game="pulse-breaker"] #actionHint{color:#253441}body[data-game="pulse-breaker"] #actionPause{background:#f3e5c6;color:#253441;border:1px solid #39444a;border-radius:3px}
@media(max-width:760px){body[data-in-game="true"] .active-game-title{font-size:clamp(19px,5vw,26px)}#pFoundry .fine{font-size:12px}#pFoundry .foundry-resources span{font-size:9px}#pFoundry .foundry-resources strong{font-size:23px}#pFoundry .foundry-machine p{font-size:12px}}

body[data-game="online-boxing"] .boxing-side progress::-webkit-progress-value{background:linear-gradient(90deg,#bf3948,#ff8879)}body[data-game="online-boxing"] .boxing-side:last-child progress::-webkit-progress-value{background:linear-gradient(90deg,#397fbd,#a5d6ff)}body[data-game="online-boxing"] .boxing-side progress::-moz-progress-bar{background:#ff756e}body[data-game="online-boxing"] .boxing-side:last-child progress::-moz-progress-bar{background:#88c7ff}
body[data-game$="-reversi"] .duel-seats span,body[data-game$="-five"] .duel-seats span{color:#eee6d2}body[data-game$="-reversi"] .duel-seats span::before,body[data-game$="-five"] .duel-seats span::before{content:'';display:inline-block;width:11px;height:11px;margin-right:7px;border-radius:50%;background:#161d20;border:1px solid #aaa}body[data-game$="-reversi"] .duel-seats span:last-child::before,body[data-game$="-five"] .duel-seats span:last-child::before{background:#fff9e6}

body[data-game="neon-wake"]{--world-panel:#0a2729f5;--world-text:#d5ffee;--world-muted:#9dc9ba;--world-accent:#8dffba;--world-font:monospace;--world-radius:2px}
body[data-game="rift-runner"]{--world-panel:#472d48f5;--world-text:#ffe5c8;--world-muted:#e4bcb8;--world-accent:#ffb69b;--world-font:Impact,sans-serif;--world-radius:4px}
body[data-game="pulse-breaker"]{--world-panel:#f6ebd5f5;--world-text:#24313b;--world-muted:#4a5962;--world-accent:#f6c348;--world-font:'Arial Black',sans-serif;--world-radius:2px}
body[data-game="orbit-needle"]{--world-panel:#101f24f5;--world-text:#e8f4d8;--world-muted:#b1c5ba;--world-accent:#e7ff9e;--world-font:monospace;--world-radius:20px}
body[data-game="scrapstorm"]{--world-panel:#213c49f5;--world-text:#e2eff1;--world-muted:#b3c9d0;--world-accent:#b6e2ed;--world-font:Impact,sans-serif;--world-radius:2px}
body[data-game="spark-cascade"]{--world-panel:#ffedf2f5;--world-text:#623b69;--world-muted:#825b81;--world-accent:#ffb4cf;--world-font:'Trebuchet MS',sans-serif;--world-radius:24px}
body[data-game$="-reversi"]{--world-panel:#19392bf5;--world-text:#f0e9ce;--world-muted:#b7c9af;--world-accent:#dfd3a2;--world-font:Georgia,serif;--world-radius:4px}
body[data-game$="-gravity"]{--world-panel:#16457bf5;--world-text:#f0e9ce;--world-muted:#bdcbe2;--world-accent:#f8c36f;--world-font:'Arial Black',sans-serif;--world-radius:6px}
body[data-game$="-five"]{--world-panel:#564433f5;--world-text:#f9efd5;--world-muted:#dfc9a9;--world-accent:#f4d5a3;--world-font:Georgia,serif;--world-radius:2px}
body[data-game$="-boxes"]{--world-panel:#fff5dff5;--world-text:#263b48;--world-muted:#5a706e;--world-accent:#edaf85;--world-font:'Trebuchet MS',sans-serif;--world-radius:6px}
body[data-game] #pIntro .card{background:var(--world-panel,var(--panel));color:var(--world-text,var(--text));border-color:var(--world-accent,var(--line));border-radius:var(--world-radius,18px)}
body[data-game] #pIntro h2{font-family:var(--world-font,var(--font-display))}body[data-game] #pIntro .lede,body[data-game] #pIntro .status{color:var(--world-muted,var(--muted))}
/* An accent's label is an ink color, independent of the panel's material. Secondary
   actions retain the shared glass treatment, including their disabled states. */
body[data-game] #pIntro .btn{border-radius:var(--world-radius,99px)}
body[data-game] #pIntro .btn:not(.ghost):not(:disabled){background:var(--world-accent,var(--signal));color:var(--world-on-accent,var(--af-ink,#15102f))}
body[data-game] #pIntro .linkbtn,body[data-game] #pIntro .game-support{color:var(--world-text,var(--text))}
body[data-game] #pIntro :is(.btn:not(.ghost),.linkbtn):focus-visible{outline:3px solid var(--world-text,var(--af-mint));outline-offset:4px}
@media(forced-colors:active){body[data-game] #pIntro .btn:not(.ghost):not(:disabled){color:ButtonText;background:ButtonFace}body[data-game] #pIntro :is(.btn,.linkbtn):focus-visible{outline-color:Highlight}}
.duel-board.reversi .duel-cell[data-piece="0"]::before{background:transparent;box-shadow:none}.duel-board.reversi .duel-cell[data-legal="true"][data-piece="0"]::before{background:#d5d9b18c;width:18%}
body[data-game] .duel-shell{--well:var(--world-panel,#1c1745);--line:#758372;--muted:var(--world-muted,#b7c9af);--signal:var(--world-accent,#e7d4a4);--font-display:var(--world-font,Georgia,serif)}body[data-game] .duel-side h3{font-weight:700}body[data-game] .duel-terms{background:#ffffff0a}body[data-game] .duel-side .btn{border-radius:5px}
/* The EXP destination returns after a run, even when the phone's play header is compact. */
@media(max-width:760px){body[data-in-game="true"][data-panel="pOver"] .bar{flex-wrap:wrap}body[data-in-game="true"][data-panel="pOver"] .bar .player-badge{display:flex;max-width:90px;min-height:38px}body[data-in-game="true"][data-panel="pOver"] .active-game-title{min-width:95px;flex:1}body[data-panel="pOver"] #povToggle[aria-pressed="false"]{display:none}}
/* Keep the direct wallet action reachable while playing on a phone. */
@media(max-width:760px){body[data-in-game="true"] .bar #headerWallet{display:flex;max-width:94px;min-width:82px;min-height:44px;padding:5px 7px}body[data-in-game="true"] .bar #headerWallet b{font-size:10px}body[data-in-game="true"] .bar #headerWallet small{font-size:9px}}
@media(max-width:360px){body[data-in-game="true"] .bar{flex-wrap:wrap}body[data-in-game="true"] .active-game-title{flex:1 0 100%;max-width:100%;font-size:17px}}

/* The live POV and recorded POV share geometry from POV.rect(). */
.pov-preview{position:absolute;z-index:5;overflow:hidden;border:2px solid #fff;border-radius:9%;box-sizing:border-box;box-shadow:0 4px 22px #0008;pointer-events:none;background:#100c29}
.pov-preview[hidden]{display:none}.pov-preview video{display:block;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.pov-preview-label{position:absolute;left:8px;top:8px;padding:3px 6px;border-radius:5px;background:#100c29bb;color:#fff;font:700 10px var(--font-mono)}
.pov-preview button{position:absolute;pointer-events:auto;touch-action:none;min-width:44px;min-height:44px;border:0;color:#fff;background:#100c29b8;font:700 12px var(--font-body);cursor:pointer}
.pov-edit{right:0;bottom:0;border-radius:9px 0 0 0}.pov-preview .pov-resize{font-size:25px;border:1px solid #fff9;border-radius:8px;cursor:nwse-resize}
.pov-preview[data-corner="bottom-right"] .pov-resize{left:0;top:0}.pov-preview[data-corner="bottom-left"] .pov-resize{right:0;top:0;cursor:nesw-resize}
.pov-preview[data-corner="top-right"] .pov-resize{left:0;bottom:0;cursor:nesw-resize}.pov-preview[data-corner="top-left"] .pov-resize{right:0;bottom:0}
.pov-preview[data-corner="top-left"] .pov-edit{left:0;right:auto}.pov-settings{display:grid;gap:10px;margin:18px 0}.pov-settings label{display:flex;justify-content:space-between;gap:16px;font-weight:700}.pov-settings input[type="range"]{width:100%;min-height:44px;accent-color:var(--af-mint)}

.pov-preview[data-corner="bottom-right"] .pov-preview-label{left:auto;right:8px}.pov-preview button:focus-visible{outline:3px solid var(--af-mint);outline-offset:-4px}

/* Games own their materials: tropical surf, charge radar, and a living cloud garden. */
body[data-game="tide-dash"] .bar{background:#07596a;border-color:#8fd7ca}body[data-game="tide-dash"] .active-game-title{color:#fff1b4;font-family:Georgia,serif;font-style:italic;text-transform:none;letter-spacing:-.05em;text-shadow:2px 3px #164d63}
body[data-game="flux-parry"] .bar{background:#09252c;border-color:#557d76}body[data-game="flux-parry"] .active-game-title{color:#e8f9df;font-family:monospace;letter-spacing:.15em;text-shadow:3px 0 #537970}
body[data-game="tide-dash"] #actionHud .action-button{background:#fff4c8;color:#075262;border:2px solid #f8ffdf;border-radius:26px 8px;box-shadow:0 4px #236f76;font-family:Georgia,serif;font-weight:800}
body[data-game="flux-parry"] #actionHud .action-button{background:#183b3e;color:#e5ffeb;border:1px solid #7ca899;border-radius:3px;box-shadow:0 4px #05151a;font-family:monospace}
body[data-game="tide-dash"] #actionHint{color:#fff9d9}body[data-game="flux-parry"] #actionHint{color:#cee7d7}
body[data-game="tide-dash"] #actionPause{background:#fff4c8;color:#075262;border:1px solid #efffd8}body[data-game="flux-parry"] #actionPause{background:#15393e;color:#e2f6e3;border:1px solid #668b80}
body[data-game="cloud-garden"] .bar{background:#173b42;border-color:#75988b}body[data-game="cloud-garden"] .active-game-title{font-family:Georgia,serif;font-style:italic;text-transform:none;color:#e9efbf;letter-spacing:-.03em}
body[data-game="cloud-garden"] #pCloudGarden{background:radial-gradient(ellipse at 20% 0,#3a6165,#102d33 65%);color:#ecf3d4;padding:18px;align-items:start;font-family:Georgia,serif}
#pCloudGarden .garden-shell{width:min(1120px,100%);min-width:0;margin:auto;border:1px solid #829b82;border-radius:100px 100px 10px 10px;background:#1e403d;box-shadow:0 24px 80px #0006;overflow:hidden}
.garden-sky{height:220px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 110%,#b0c5a5,#759ba1 40%,#173f51);border-bottom:1px solid #b1c3a0}
.garden-sky::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 24.6%,#d6e6bc3b 24.8% 25.2%,transparent 25.4% 50%);border-radius:100px 100px 0 0;border:8px double #c7d8aa55;pointer-events:none}
.garden-orb{position:absolute;right:17%;top:26px;width:76px;height:76px;border-radius:50%;background:#f6e4aa;box-shadow:0 0 65px #fff0b74a}
.garden-cloud{position:absolute;left:-12%;width:65%;height:56px;background:#d1dfd13b;border-radius:50%;filter:blur(8px)}.garden-cloud-a{top:40px}.garden-cloud-b{left:55%;top:100px;width:60%}
.garden-sky>span{position:absolute;left:22px;top:24px;max-width:130px;font:600 9px/1.7 monospace;letter-spacing:.2em;color:#dce7cf}
.garden-canopy{position:absolute;left:5%;right:5%;bottom:-24px;height:80px;border-radius:50%;background:#264c3b;box-shadow:0 -8px #477657}
.garden-canopy i{position:absolute;bottom:50px;left:10%;width:9px;height:86px;background:#8caf80;border-radius:50%;transform:rotate(-12deg);transform-origin:bottom;animation:garden-sway 8s ease-in-out infinite alternate}
.garden-canopy i::before,.garden-canopy i::after{content:'';position:absolute;top:10px;left:-22px;width:30px;height:22px;border-radius:2px 95% 2px 95%;background:#bfd69d;transform:rotate(20deg)}.garden-canopy i::after{left:3px;top:35px;background:#8ebc9b;transform:rotate(-110deg)}
.garden-canopy i:nth-child(2){left:25%;height:115px;animation-delay:-2s}.garden-canopy i:nth-child(3){left:39%;height:66px;animation-delay:-5s}.garden-canopy i:nth-child(4){left:52%;height:138px;animation-delay:-1s}.garden-canopy i:nth-child(4)::before{background:#f0cf9c}.garden-canopy i:nth-child(5){left:66%;height:90px;animation-delay:-6s}.garden-canopy i:nth-child(6){left:78%;height:115px;animation-delay:-3s}.garden-canopy i:nth-child(7){left:89%;height:80px;animation-delay:-7s}
#pCloudGarden .garden-header,#pCloudGarden .garden-economy,#pCloudGarden .garden-actions,#pCloudGarden .garden-growers,#pCloudGarden .garden-research,#pCloudGarden .garden-rebirth,#pCloudGarden .garden-save,#pCloudGarden .garden-shell>p,#pCloudGarden #gardenTake{margin:20px 24px}
.garden-kicker{font:italic 25px/1.25 Georgia,serif;margin:0 0 8px;color:#e9edbb}#gardenSeason{margin:0;color:#bdd6bd;font:500 12px/1.6 monospace}
.garden-economy{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;border-block:1px solid #8fa77a}.garden-economy>div{min-width:0;padding:17px 10px;background:#173932}.garden-economy span{display:block;font:600 10px/1.5 monospace;color:#c0d6bc;letter-spacing:.08em}.garden-economy strong{display:block;margin-top:6px;color:#fff3bd;font:400 clamp(22px,3vw,36px)/1.1 Georgia,serif;overflow-wrap:anywhere}
.garden-actions{display:flex;gap:12px;flex-wrap:wrap}.garden-actions>*{min-width:0}
#pCloudGarden button,#pCloudGarden .garden-file{appearance:none;border:1px solid #b0c297;border-radius:5px 18px 5px 18px;padding:12px 16px;min-height:46px;background:#36584a;color:#eef3cb;box-shadow:0 3px #112d29;font:700 14px/1.3 Georgia,serif;cursor:pointer;transition:filter .15s,transform .15s}
#pCloudGarden button:hover{filter:brightness(1.13)}#pCloudGarden button:active{transform:translateY(2px)}#pCloudGarden button:focus-visible,#pCloudGarden input:focus-visible,#pCloudGarden summary:focus-visible{outline:3px solid #e0f6b6;outline-offset:3px}#pCloudGarden button:disabled{opacity:.55;cursor:default;transform:none;filter:none}
#pCloudGarden #gardenGather,#pCloudGarden #gardenConfirmYes{background:#e3d29c;color:#234238;border-color:#fff2bb}
#pCloudGarden .garden-note{font:400 13px/1.6 Georgia,serif;color:#c0d6bd;max-width:none}#pCloudGarden p{overflow-wrap:anywhere}
.garden-growers{display:grid;grid-template-columns:1fr 1fr;gap:14px}.garden-grower{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px 14px;align-items:center;padding:20px 16px;border:1px solid #739273;background:linear-gradient(145deg,#2d5141,#1d3d36);border-radius:5px 30px 5px 5px}.garden-grower h3{font:400 24px/1.1 Georgia,serif;margin:0 0 7px;color:#e7ecc2}.garden-grower h3 b{font:500 16px monospace;color:#e8cf8c}.garden-grower p{margin:5px 0}.garden-grower>button{grid-column:1/-1;width:100%}
.garden-species-art{height:82px;position:relative;align-self:end}.garden-species-art i{position:absolute;bottom:0;left:24px;height:64px;width:4px;background:#b4cb8f;transform:rotate(-13deg);transform-origin:bottom}.garden-species-art i::after{content:'';position:absolute;top:0;left:-11px;width:25px;height:17px;border-radius:70% 5px 70% 5px;background:#bfd49f;transform:rotate(18deg)}.garden-species-art i:nth-child(2){height:44px;left:15px;transform:rotate(-39deg)}.garden-species-art i:nth-child(3){height:49px;transform:rotate(31deg)}
.garden-grower[data-species="moss"] .garden-species-art i{height:25px;width:11px;border-radius:50%;background:#9cb68b}.garden-grower[data-species="moss"] .garden-species-art i::after{background:#d1dd9b;width:20px;height:20px}.garden-grower[data-species="vine"] .garden-species-art i::after{border-radius:50% 50% 40% 40%;background:#b0c5cc}.garden-grower[data-species="lily"] .garden-species-art i::after{background:#f0c6a0;border-radius:40% 5% 40% 5%;width:28px;height:28px}
.garden-research,.garden-rebirth{padding:18px;border:1px solid #738c6a;border-radius:10px;background:#284638}.garden-research{display:flex;align-items:center;gap:20px}.garden-research>div{flex:1;min-width:0}#pCloudGarden h3{margin:0 0 8px;font-family:Georgia,serif;font-weight:400}#pCloudGarden .garden-rebirth h3,#pCloudGarden .garden-research h3{font-size:24px}.garden-rebirth>button{width:100%}.garden-rebirth .garden-actions{margin:14px 0 0!important}#gardenConfirm{margin-top:18px;border-top:1px solid #7f976d;padding-top:12px}#gardenConfirm p{font-size:14px;line-height:1.6}
.garden-save summary{cursor:pointer;min-height:44px;display:list-item;padding-block:12px;font:700 14px Georgia,serif}.garden-save .garden-actions{margin-inline:0!important}.garden-file{display:inline-flex;flex-direction:column;gap:8px;max-width:100%;font-size:13px!important}.garden-file input{font:400 12px/1.4 Georgia,serif;max-width:100%;width:220px;color:#dce8c9}.garden-file input::file-selector-button{background:#244333;color:#edf2cb;border:1px solid #9aac82;border-radius:4px;padding:7px}
@keyframes garden-sway{to{transform:rotate(9deg)}}
@media(max-width:640px){body[data-game="cloud-garden"] #pCloudGarden{padding:9px}#pCloudGarden .garden-shell{border-radius:54px 54px 8px 8px}.garden-sky{height:185px}.garden-sky::after{border-radius:54px 54px 0 0}.garden-sky>span{font-size:8px;left:14px;top:18px;max-width:85px}.garden-orb{width:58px;height:58px;right:16%;top:26px}#pCloudGarden .garden-header,#pCloudGarden .garden-economy,#pCloudGarden .garden-actions,#pCloudGarden .garden-growers,#pCloudGarden .garden-research,#pCloudGarden .garden-rebirth,#pCloudGarden .garden-save,#pCloudGarden .garden-shell>p,#pCloudGarden #gardenTake{margin:16px 13px}.garden-kicker{font-size:23px}.garden-economy>div{padding:13px 7px}.garden-economy span{font-size:8px;min-height:24px}.garden-economy strong{font-size:25px}.garden-growers{grid-template-columns:1fr}.garden-actions{display:grid;grid-template-columns:minmax(0,1fr)}.garden-research{display:grid;gap:8px}.garden-grower{padding:16px 13px}#pCloudGarden button{font-size:14px}#pCloudGarden .garden-note{font-size:14px}.garden-file input{font-size:16px}}
@media(prefers-reduced-motion:reduce){.garden-canopy i{animation:none}#pCloudGarden button{transition:none}}
@media(forced-colors:active){#pCloudGarden .garden-shell,#pCloudGarden .garden-grower,#pCloudGarden button{border:1px solid CanvasText}#pCloudGarden button:disabled{color:GrayText}}

/* Canvas HUD is the single visible score; the live region remains available to assistive technology. */
body[data-game="tide-dash"] #actionReadout,body[data-game="flux-parry"] #actionReadout{position:absolute;left:-10000px;top:auto;right:auto;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Sunbreak Surf Club: warm surf-poster typography, navy ink and sun-faded coral. */
body[data-game="tide-dash"]{--world-panel:#fff0d7f7;--world-text:#173d4a;--world-muted:#46636a;--world-accent:#f9a277;--world-font:"Trebuchet MS",sans-serif;--world-radius:24px}
body[data-game="tide-dash"] .bar{background:#123c50;border-color:#b3e0ce}
body[data-game="tide-dash"] .active-game-title{color:#ffe4ad;font-family:"Arial Black",sans-serif;font-style:italic;letter-spacing:-.05em;text-shadow:3px 3px #b45a57}
body[data-game="tide-dash"] #actionHud .action-button{background:#fff2c9;color:#174556;border-color:#fffbe7;border-radius:12px;box-shadow:0 4px #164b5b;font-family:"Trebuchet MS",sans-serif}
body[data-game="tide-dash"] #actionHint{color:#fff7d7;background:#103f50ed;padding:6px 12px;border-radius:12px;font-family:"Trebuchet MS",sans-serif;font-size:13px}
body[data-game="tide-dash"] #actionPause{background:#fff2c9;color:#174556;border-color:#fffbe7;border-radius:12px}

/* A circuit board, a carved seed tray, and a chess-club table: three separate game worlds. */
body[data-game$="-hex"]{--world-panel:#12343bf5;--world-text:#eff9ec;--world-muted:#b2cbd0;--world-accent:#ffc068;--world-font:'Arial Black',sans-serif;--world-radius:7px}
body[data-game$="-mancala"]{--world-panel:#4b3022f5;--world-text:#ffedcc;--world-muted:#dfc5a4;--world-accent:#ffd08a;--world-font:Georgia,serif;--world-radius:20px}
body[data-game$="-checkers"]{--world-panel:#371f2cf5;--world-text:#f9eddb;--world-muted:#d9bac6;--world-accent:#ebc182;--world-font:Georgia,serif;--world-radius:6px}
body[data-game$="-hex"] .active-game-title{color:#9bf5d8;font-family:'Arial Black',sans-serif;letter-spacing:.12em;text-shadow:2px 2px #175b59}
body[data-game$="-mancala"] .active-game-title{color:#ffe4ac;font-family:Georgia,serif;text-transform:none;font-style:italic;text-shadow:1px 2px #6b4427}
body[data-game$="-checkers"] .active-game-title{color:#f5d8a4;font-family:Georgia,serif;letter-spacing:.08em;text-shadow:2px 2px #733449}
body[data-game$="-hex"] #pDuel{background:repeating-linear-gradient(0deg,#61e4b106 0 1px,transparent 1px 28px),repeating-linear-gradient(90deg,#61e4b106 0 1px,transparent 1px 28px),radial-gradient(ellipse at 40% 20%,#1b4a52,#071e25)}
body[data-game$="-mancala"] #pDuel{background:radial-gradient(ellipse at 35% 0,#855b35,#291b15 85%)}
body[data-game$="-checkers"] #pDuel{background:repeating-linear-gradient(115deg,#ffffff03 0 1px,transparent 1px 13px),radial-gradient(ellipse at 50% 0,#653a4b,#1c1119 80%)}
body[data-game$="-hex"] .duel-shell{background:linear-gradient(135deg,#31657433,#153a40ee);border-color:#568c8f;border-radius:7px;box-shadow:inset 0 1px #b5fff922,0 24px 80px #041d20a6}
body[data-game$="-mancala"] .duel-shell{background:linear-gradient(135deg,#d2a76b19,#472d21ed);border-color:#b78d58;border-radius:20px;box-shadow:inset 0 1px #ffe4a42b,0 24px 80px #1d100db3}
body[data-game$="-checkers"] .duel-shell{background:linear-gradient(125deg,#9a5e7026,#371f2ced);border-color:#af8574;border-radius:6px;box-shadow:inset 0 1px #f4d9b72b,0 24px 80px #150c12b3}
body:is([data-game$="-hex"],[data-game$="-mancala"],[data-game$="-checkers"]) .duel-status{color:var(--world-accent);font-size:14px;line-height:1.5}
body:is([data-game$="-hex"],[data-game$="-mancala"],[data-game$="-checkers"]) .duel-main{color:var(--world-text)}
body:is([data-game$="-hex"],[data-game$="-mancala"],[data-game$="-checkers"]) .duel-clock{color:#b6f0dd}
body:is([data-game$="-hex"],[data-game$="-mancala"],[data-game$="-checkers"]) .duel-seats span{border-color:#ffffff38;color:#ffca6f}
body:is([data-game$="-hex"],[data-game$="-mancala"],[data-game$="-checkers"]) .duel-seats span:last-child{color:#9de4d2}
.duel-board.hex{width:min(100%,58vh,570px);aspect-ratio:1.2;display:flex;flex-direction:column;justify-content:center;gap:0;padding:6% 1%;border:0;background:transparent;box-shadow:none;overflow:visible}
.hex-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;width:70%;margin-left:calc(var(--row) * 4.8%);margin-top:-2.4%;flex:0 0 auto}
.hex-row .duel-cell{aspect-ratio:.87;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);border:0;border-radius:0;background:#41666a;box-shadow:none}
.hex-row .duel-cell::before{position:absolute;inset:2px;width:auto;aspect-ratio:auto;border-radius:0;clip-path:inherit;background:#244b53;box-shadow:inset 0 2px #ffffff16}
.hex-row .duel-cell[data-piece="1"]::before{background:linear-gradient(140deg,#ffe5a0,#ffbd55 70%,#b87524)}
.hex-row .duel-cell[data-piece="2"]::before{background:linear-gradient(140deg,#ceffed,#79e2c5 70%,#318f8c)}
.hex-row .duel-cell[data-legal="true"][data-piece="0"]::before{width:auto;background:#2c5960}
.hex-row .duel-cell:not(:disabled):hover::before{background:#3c7579}
.hex-row .duel-cell:focus-visible{outline:0;background:#fff3d2}
.hex-row .duel-cell:focus-visible::before{inset:5px}
.hex-row .duel-cell[data-last="true"]::after{background:transparent;width:30%;border:2px solid #fff1cf;z-index:1}
.hex-row:first-child .duel-cell,.hex-row:last-child .duel-cell{background:#ffbe62}
.hex-row .duel-cell:first-child,.hex-row .duel-cell:last-child{background:#87e7ce}
.duel-board.mancala{width:100%;aspect-ratio:2.2;grid-template-columns:.7fr 6fr .7fr;grid-template-rows:1fr 1fr;gap:9px;padding:18px 12px;background:repeating-linear-gradient(3deg,#dba66709 0 3px,#00000008 4px 5px),linear-gradient(135deg,#bc8245,#9e6534);border:3px solid #dfb276;border-radius:55px;box-shadow:inset 0 3px #fff0ba44,0 8px 0 #56341e,0 16px 28px #170e1690}
.mancala-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;min-width:0}
.mancala-row:nth-child(2){grid-column:2;grid-row:1}.mancala-row:nth-child(3){grid-column:2;grid-row:2}
.mancala-row .duel-cell,.mancala-store{border-radius:45%;background:radial-gradient(ellipse at 50% 70%,#78532b,#422517);border:1px solid #603a21;box-shadow:inset 0 5px 8px #190c1280,0 1px #e5ba7755;min-width:0}
.mancala-row .duel-cell::before,.mancala-row .duel-cell::after{display:none}
.mancala-row .duel-cell{display:flex;align-items:center;justify-content:flex-end;flex-direction:column;gap:2px;padding:4px 0;min-height:54px;color:#ffdd95;font:700 15px var(--font-mono)}
.mancala-row .duel-cell[data-owner="2"]{color:#b4f0dc}
.mancala-row .duel-cell[data-legal="true"]{border-color:#ffe1a8;box-shadow:inset 0 5px 8px #190c1280,0 0 0 1px #e6bd75}
.mancala-row .duel-cell[data-last="true"]{outline:2px solid #ffebba;outline-offset:1px}
.mancala-row .duel-cell:not(:disabled):hover{background:radial-gradient(ellipse at 50% 70%,#9c6e37,#54311e)}
.mancala-seeds{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;width:70%;min-height:17px;align-content:end;justify-items:center}
.mancala-seeds i{display:block;width:5px;height:7px;max-width:100%;border-radius:55%;background:#f3c16b;box-shadow:inset 1px 1px #fff3cb;transform:rotate(-22deg)}
.mancala-seeds i:nth-child(3n){background:#9ae3c6;transform:rotate(35deg)}
.mancala-store{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;grid-row:1 / 3;font:500 10px var(--font-mono);color:#b4f0dc;min-width:0}
.mancala-store:last-child{grid-column:3;color:#ffdd95}.mancala-store strong{font-size:clamp(16px,2vw,24px)}
.duel-board.checkers{grid-template-columns:repeat(8,minmax(0,1fr));gap:0;padding:5px;border:6px solid #bc9767;border-radius:4px;background:#74462e;box-shadow:0 5px #4d2b1e,0 12px 30px #140b1480;width:min(100%,58vh,520px)}
.duel-board.checkers .duel-cell{aspect-ratio:1;border:0;border-radius:0;background:#eed9ae}
.duel-board.checkers .duel-cell[data-dark="true"]{background:#592839}
.duel-board.checkers .duel-cell::before{background:transparent;box-shadow:none;width:78%}
.duel-board.checkers .duel-cell[data-piece="1"]::before,.duel-board.checkers .duel-cell[data-piece="3"]::before{background:radial-gradient(circle at 35% 25%,#fff1bf,#eeb04c 45%,#a56828);border:2px solid #ad7534;box-shadow:inset 0 0 0 3px #ebbc6d,2px 3px 2px #0007}
.duel-board.checkers .duel-cell[data-piece="2"]::before,.duel-board.checkers .duel-cell[data-piece="4"]::before{background:radial-gradient(circle at 35% 25%,#fffbed,#eee2cb 45%,#a9977e);border:2px solid #b8a68c;box-shadow:inset 0 0 0 3px #f7ead2,2px 3px 2px #0007}
.duel-board.checkers .duel-cell:is([data-piece="3"],[data-piece="4"])::after{content:'♛';position:absolute;display:grid;place-items:center;width:auto;aspect-ratio:auto;color:#542e2c;background:transparent;border:0;font:bold clamp(14px,3vw,26px)/1 Georgia;z-index:1}
.duel-board.checkers .duel-cell[data-legal="true"]::before{outline:2px solid #f9e19b;outline-offset:1px}
.duel-board.checkers .duel-cell[data-selected="true"]{box-shadow:inset 0 0 0 3px #fff1c2;background:#8d4853}
.duel-board.checkers .duel-cell[data-destination="true"]::before{width:30%;background:#f3d38e88;border:2px solid #ffdf9b;box-shadow:none}
.duel-board.checkers .duel-cell:focus-visible{outline:3px solid #99f7d1;outline-offset:-3px}
.duel-board.checkers .duel-cell[data-last="true"]{box-shadow:inset 0 0 0 2px #f3d38e}
@media(max-width:760px){.duel-board.hex{width:100%;padding-block:4%;aspect-ratio:1.2}.duel-board.mancala{gap:6px;padding:14px 8px;border-radius:35px;min-height:160px}.mancala-row{gap:4px}.mancala-row .duel-cell{font-size:12px;min-height:56px}.mancala-seeds{gap:1px;width:75%}.mancala-seeds i{width:4px;height:5px}.mancala-store{font-size:8px}.duel-board.checkers{width:100%;border-width:4px;padding:3px}.duel-board.checkers .duel-cell:is([data-piece="3"],[data-piece="4"])::after{font-size:20px}}
@media(forced-colors:active){.hex-row .duel-cell{clip-path:none;border:1px solid ButtonText}.hex-row .duel-cell::before{clip-path:none}.duel-board.checkers .duel-cell[data-dark="true"]{border:1px solid CanvasText}.duel-board.checkers .duel-cell[data-piece="1"]::before,.duel-board.checkers .duel-cell[data-piece="3"]::before{background:Highlight}.mancala-seeds i{background:CanvasText}}
/* Keep intrinsic board ratios and status text inside narrow shell tracks. */
body:is([data-game$="-hex"],[data-game$="-mancala"],[data-game$="-checkers"]) .duel-shell{min-width:0}
body:is([data-game$="-hex"],[data-game$="-mancala"],[data-game$="-checkers"]) .duel-top{min-width:0}
body:is([data-game$="-hex"],[data-game$="-mancala"],[data-game$="-checkers"]) .duel-status{min-width:0;flex:1;overflow-wrap:anywhere}
body:is([data-game$="-hex"],[data-game$="-mancala"],[data-game$="-checkers"]) .duel-clock{flex-shrink:0;white-space:nowrap}
body[data-game^="local-"] #duelClock{display:none}
.duel-board.mancala{min-width:0;max-width:100%;grid-template-columns:minmax(0,.7fr) minmax(0,6fr) minmax(0,.7fr)}
@media(max-width:760px){
 body:is([data-game$="-hex"],[data-game$="-mancala"],[data-game$="-checkers"]) .duel-shell{grid-template-columns:minmax(0,1fr)}
 .duel-board.mancala{aspect-ratio:auto}
 body[data-game$="-hex"] .duel-shell{padding-inline:12px}
 .duel-board.hex{padding-inline:0;max-width:100%;min-width:0}
 .hex-row{gap:1px;margin-left:calc(var(--row) * 5%)}
}

/* arcade.fun platform identity. Canonical guidance: /brand.html and docs/brand-guide.md.
   Scope intentionally excludes hosted game documents and third-party engine builds. */
:root{
 --af-night:#100c29;--af-ink:#15102f;--af-glass:rgba(32,24,70,.91);--af-glass-deep:rgba(19,14,44,.95);
 --af-cream:#fff6df;--af-muted:#c2b8df;--af-gold:#ffbf53;--af-mint:#7cf8d2;--af-violet:#b59aff;--af-coral:#ff879e;
 --af-edge:rgba(190,163,255,.4);--af-edge-bright:rgba(223,207,255,.7);--af-highlight:rgba(255,255,255,.12);
 --af-radius:20px;--af-control-radius:12px;--af-glow:0 0 28px rgba(151,104,255,.12);
 --af-shadow:0 18px 48px rgba(5,2,21,.4),inset 0 1px 0 var(--af-highlight);
 --af-font-display:'Bungee','Arial Black',Impact,sans-serif;--af-font-body:'Figtree',system-ui,sans-serif;--af-font-mono:'IBM Plex Mono',ui-monospace,monospace;
}
body[data-brand="arcade"]{color:var(--af-cream);font-family:var(--af-font-body);-webkit-font-smoothing:antialiased}
/* The arcade sign: solid letter faces, a short extrusion and one traveling light reflection.
   The duplicate reflection is decorative; the home link supplies the accessible name. */
.brand .af-wordmark,.wordmark .af-wordmark,.brand-wordmark .af-wordmark{
 position:relative;display:inline-block;isolation:isolate;flex:none;
 font-family:var(--af-font-display);font-weight:400;line-height:1.3;letter-spacing:.025em;
 text-transform:uppercase;white-space:nowrap;font-kerning:none;font-variant-ligatures:none;color:#ffce69;
 text-shadow:0 1px #ffe6a3,1px 2px #a65c25,2px 3px #6e361b,0 0 15px #ffb54735;
}
.af-wordmark>.af-logo-fun{color:#ff8bc5;font:inherit;letter-spacing:inherit;text-shadow:0 1px #ffd2ec,1px 2px #a53c79,2px 3px #66264f,0 0 16px #ff62b645}
.af-wordmark::after{
 content:attr(data-wordmark);position:absolute;inset:0;pointer-events:none;
 font:inherit;letter-spacing:inherit;font-kerning:none;font-variant-ligatures:none;text-shadow:none;color:transparent;
 background:linear-gradient(108deg,transparent 40%,#ffdf8d80 44%,#fff8d8 48%,#fff 50%,#cbfff5 52%,#ff83cf90 56%,transparent 60%) 170% 0 / 300% 100% no-repeat;
 -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
 filter:drop-shadow(0 0 4px #fff0ae) drop-shadow(0 0 11px #ff86c4);
 opacity:0;animation:af-wordmark-sweep 6.4s cubic-bezier(.4,0,.2,1) infinite;
}
@keyframes af-wordmark-sweep{
 0%,4%{background-position:170% 0;opacity:0}
 7%{opacity:1}
 31%{background-position:-70% 0;opacity:1}
 35%,100%{background-position:-70% 0;opacity:0}
}
.brand:hover .af-wordmark,.brand:focus-visible .af-wordmark,.wordmark:hover .af-wordmark,.brand-wordmark:hover .af-wordmark{filter:drop-shadow(0 0 7px #ffb54750)}
@media(max-width:520px){
 .brand>.af-wordmark:not(.marquee),.wordmark>.af-wordmark,.brand-wordmark>.af-wordmark{font-size:clamp(16px,5vw,22px)}
 body:is([data-brand-page="studio"],[data-brand-page="toolbox"]) .brand>span:not(.af-wordmark){display:none}
}
@media(prefers-reduced-motion:reduce){.af-wordmark::after{animation:none;display:none}}
@media(forced-colors:active){.brand .af-wordmark,.wordmark .af-wordmark,.brand-wordmark .af-wordmark,.af-wordmark>.af-logo-fun{color:LinkText;text-shadow:none;filter:none}.af-wordmark::after{display:none}}
body[data-brand="arcade"] :is(input,textarea,select,button){box-sizing:border-box}
/* A safe baseline for every platform field, including forms without a component class. */
body[data-brand="arcade"] :is(input:where(:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="hidden"]):not([type="button"]):not([type="submit"])),textarea,select){
 min-width:0;max-width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--af-edge);border-radius:var(--af-control-radius);
 background:linear-gradient(145deg,rgba(145,104,255,.06),transparent 60%),var(--af-glass-deep);color:var(--af-cream);caret-color:var(--af-gold);
 box-shadow:inset 0 2px 6px rgba(3,0,16,.3),inset 0 1px 0 rgba(255,255,255,.04);font:500 16px/1.45 var(--af-font-body);
 transition:border-color .16s,box-shadow .16s,background-color .16s;color-scheme:dark;
}
body[data-brand="arcade"] :is(input,textarea)::placeholder{color:var(--af-muted);opacity:.85}
body[data-brand="arcade"] :is(input,textarea,select):hover:not(:disabled){border-color:var(--af-edge-bright)}
body[data-brand="arcade"] :is(input,textarea,select):focus-visible{border-color:var(--af-gold);outline:2px solid var(--af-mint);outline-offset:3px;box-shadow:inset 0 1px 0 #ffffff0c,0 0 0 4px #7cf8d212,0 0 22px #b59aff26}
body[data-brand="arcade"] :is(input,textarea,select)[aria-invalid="true"]{border-color:var(--af-coral);box-shadow:inset 3px 0 var(--af-coral)}
body[data-brand="arcade"] :is(input,textarea,select):disabled{color:#b1a8cc;border-color:#75658d80;opacity:.75;cursor:not-allowed}
body[data-brand="arcade"] input[readonly]{border-style:dashed;color:#d7c9f2}
body[data-brand="arcade"] textarea{resize:vertical}
body[data-brand="arcade"] select option{background:var(--af-ink);color:var(--af-cream)}
body[data-brand="arcade"] input:is([type="checkbox"],[type="radio"],[type="range"]){accent-color:var(--af-gold)}
body[data-brand="arcade"] input[type="file"]{font-size:13px;padding:8px}
body[data-brand="arcade"] input[type="file"]::file-selector-button{min-height:36px;margin-right:10px;padding:7px 12px;background:linear-gradient(#ffe1a1,var(--af-gold));color:#2c1a0c;border:1px solid #ffe5b9;border-radius:7px;font:700 12px var(--af-font-body);cursor:pointer;box-shadow:0 2px #9b6128}
body[data-brand="arcade"] :is(button,.button,.btn):focus-visible{outline:3px solid var(--af-mint);outline-offset:4px}
body[data-brand="arcade"] :is(.btn:not(.replay-button),.button,button.primary){
 min-height:44px;border:1px solid #ffe4ad;border-radius:var(--af-control-radius);color:#30200c;
 background:linear-gradient(155deg,#ffe6ad 0%,var(--af-gold) 58%,#ffac43 100%);box-shadow:inset 0 1px #fff9,0 3px 0 #85501d,0 7px 20px #ffbf5314;
 font-family:var(--af-font-body);font-weight:800;text-decoration:none;transition:transform .15s,box-shadow .15s,filter .15s;
}
body[data-brand="arcade"] :is(.btn:not(.replay-button),.button,button.primary):hover:not(:disabled){filter:brightness(1.06);box-shadow:inset 0 1px #fffb,0 4px 0 #85501d,0 9px 25px #ffbf5326;transform:translateY(-1px)}
body[data-brand="arcade"] :is(.btn:not(.replay-button),.button,button.primary):active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px #fff6,0 1px #85501d}
body[data-brand="arcade"] :is(.btn.ghost,button.quiet){background:linear-gradient(145deg,#c6a6ff12,#8b9df407),var(--af-glass-deep);color:var(--af-cream);border:1px solid var(--af-edge);box-shadow:inset 0 1px #ffffff12,0 3px 0 #09061f;font-weight:700}
body[data-brand="arcade"] .btn.ghost:hover:not(:disabled){border-color:var(--af-violet);box-shadow:inset 0 1px #ffffff20,0 4px #09061f,0 0 20px #b59aff20}
body[data-brand="arcade"] :is(.btn,button.primary):disabled{background:linear-gradient(140deg,#65507d,#3c3155);color:#e3d5ef;border-color:#9b7eaf7a;box-shadow:inset 0 1px #ffffff12;opacity:.7;transform:none;filter:none;cursor:not-allowed}
/* Platform overlays remain recognisable over any game's art. */
body[data-brand="arcade"] :is(.card,.player-dialog,.pov-dialog,.workspace,.tool-card){background:linear-gradient(135deg,#b49aff10,transparent 40%),var(--af-glass);border:1px solid var(--af-edge);border-radius:var(--af-radius);box-shadow:var(--af-shadow),var(--af-glow)}
body[data-brand="arcade"] :is(.card,.player-dialog,.pov-dialog){backdrop-filter:blur(20px) saturate(135%);-webkit-backdrop-filter:blur(20px) saturate(135%)}
body[data-brand="arcade"] .bar{background:linear-gradient(105deg,#c4a7ff0d,transparent 55%),rgba(23,16,52,.95);border-bottom-color:var(--af-edge);box-shadow:0 1px 0 #ffffff07,0 7px 25px #07031a20;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
body[data-brand="arcade"] .header-menu summary,body[data-brand="arcade"] .pov-toggle{background:linear-gradient(140deg,#b59aff14,transparent),var(--af-glass-deep);border-color:var(--af-edge);box-shadow:inset 0 1px #ffffff16,0 2px #09061f;border-radius:10px}
body[data-brand="arcade"] .header-menu nav{background:var(--af-glass-deep);border-color:var(--af-edge-bright);box-shadow:var(--af-shadow);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
body[data-brand="arcade"] .header-menu a:hover{background:#b59aff18;color:var(--af-gold)}
/* Game lobbies are platform UI; games themselves keep their own materials and palette. */
body[data-brand="arcade"][data-game="online-boxing"] .boxing-lobby{background:linear-gradient(130deg,#b59aff12,transparent 45%),var(--af-glass);border:1px solid var(--af-edge-bright);border-radius:22px;box-shadow:var(--af-shadow),0 0 50px #956bff12}
body[data-brand="arcade"][data-game="online-boxing"] .boxing-lobby .btn{border-radius:12px;background:linear-gradient(155deg,#ffe7ae,var(--af-gold) 60%,#ffac43);border:1px solid #ffe2a9;color:#2d1b0a;box-shadow:inset 0 1px #fff8,0 3px #85501d}
body[data-brand="arcade"][data-game="online-boxing"] .boxing-lobby .btn.ghost{background:linear-gradient(140deg,#b59aff13,transparent),var(--af-glass-deep);color:var(--af-cream);border-color:var(--af-edge);box-shadow:inset 0 1px #ffffff17,0 3px #08051c}
body[data-brand="arcade"] .boxing-invite label{color:var(--af-muted);font-size:13px}
body[data-brand="arcade"] .boxing-invite input{width:100%;font-family:var(--af-font-mono);font-size:14px}
body[data-brand="arcade"] :is(.boxing-lobby,.pov-dialog) details summary{min-height:36px;display:flex;align-items:center;color:var(--af-muted);cursor:pointer}
body[data-brand="arcade"] .boxing-lobby details summary::before{content:'▸';color:var(--af-gold);margin-right:9px}
body[data-brand="arcade"] .boxing-lobby details[open] summary::before{content:'▾'}
body[data-brand="arcade"] :is(.boxing-lobby,.pov-dialog) .fine{color:var(--af-muted)}
/* Other first-party surfaces consume the same primitives without changing their layout. */
body[data-brand-page="trade"] :is(.panel,.box),body[data-brand-page="make"] :is(.box,.panel),body[data-brand-page="developers"] section{background:linear-gradient(130deg,#b59aff0b,transparent 50%),var(--af-glass);border-color:var(--af-edge);border-radius:var(--af-radius);box-shadow:var(--af-shadow)}
body[data-brand-page="trade"] .amount{border-color:var(--af-violet);background:var(--af-glass-deep);box-shadow:inset 0 1px #ffffff12,0 0 22px #b59aff10}
body[data-brand-page="trade"] .amount input{border:0;box-shadow:none;background:transparent;padding:8px;min-height:46px;font:600 25px/1.3 var(--af-font-mono)}
body[data-brand-page="trade"] .amount:focus-within{border-color:var(--af-gold);outline:2px solid var(--af-mint);outline-offset:3px}
body[data-brand-page="trade"] .amount input:focus-visible{outline:none;box-shadow:none}
body[data-brand-page="trade"] .seg{border:1px solid var(--af-edge);box-shadow:inset 0 1px #ffffff12;background:var(--af-glass-deep)}
body[data-brand-page="trade"] .seg button[aria-pressed="true"]{background:linear-gradient(#ffdd93,var(--af-gold));color:#2d1c09;box-shadow:inset 0 1px #fff6}
body[data-brand-page="trade"] .seg.sell button.sell[aria-pressed="true"]{background:linear-gradient(#ffc2b5,#ff879e);color:#360b1e}
body[data-brand-page="studio"],body[data-brand-page="toolbox"]{background:radial-gradient(ellipse at 8% 5%,#6e3a9a2b,transparent 48%),var(--af-night);--bg:var(--af-night);--panel:#241a43;--well:var(--af-ink);--ink:var(--af-cream);--muted:var(--af-muted);--line:var(--af-edge);--orange:var(--af-gold)}
body[data-brand-page="studio"] .workspace{box-shadow:var(--af-shadow),0 0 60px #b59aff0b}
body[data-brand-page="studio"] .project-rail{background:#100c294d}
body[data-brand-page="studio"] .topbar,body[data-brand-page="toolbox"] .topbar{background:#15102fdd;border-color:var(--af-edge);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
body[data-brand-page="studio"] .brief-pane,body[data-brand-page="studio"] .project-pane{background:transparent}
body[data-brand-page="studio"] .workflow-options>label{border-color:var(--af-edge);background:#100c2955}
body[data-brand-page="studio"] .workflow-options>label:has(input:checked){background:#7cf8d211;border-color:var(--af-mint);box-shadow:inset 0 1px #ffffff12}
body[data-brand-page="studio"] .intro h1,body[data-brand-page="toolbox"] .intro h1{font-family:var(--af-font-display);font-size:clamp(32px,4vw,56px);letter-spacing:0;line-height:1.15}
body[data-brand-page="studio"] .intro h1 em,body[data-brand-page="toolbox"] .intro h1 em{font-style:normal;color:#d4b7ff}
@supports not (backdrop-filter:blur(1px)){body[data-brand="arcade"] :is(.card,.player-dialog,.pov-dialog){background:#241a49}}
@media(max-width:760px){body[data-brand="arcade"] :is(input:where(:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"])),textarea,select),body[data-brand="arcade"] .boxing-invite input{font-size:16px}body[data-brand="arcade"] :is(.card,.player-dialog,.pov-dialog){backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}}
@media(prefers-reduced-motion:reduce){body[data-brand="arcade"] :is(input,textarea,select,button,.btn,.button){transition:none!important;transform:none!important}}
@media(prefers-reduced-transparency:reduce){body[data-brand="arcade"] :is(.card,.player-dialog,.pov-dialog,.workspace,.tool-card,.boxing-lobby){background:#241a49!important;backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(forced-colors:active){body[data-brand="arcade"] :is(input,textarea,select,.btn,button.primary,.card){border:1px solid CanvasText;box-shadow:none}body[data-brand="arcade"] :is(.btn,button.primary){color:ButtonText;background:ButtonFace}}
body[data-brand="arcade"][data-game="online-boxing"] #pBoxing{background:linear-gradient(180deg,#140d2b33,#1b10364d)}
body[data-brand="arcade"] .boxing-options :is(#boxQueue,#boxReady){grid-column:1/-1}
body[data-brand="arcade"] .listen{background:linear-gradient(90deg,#b59aff0a,transparent),var(--af-glass-deep);border-top-color:var(--af-edge)}

body[data-brand-page="studio"] #connect{background:linear-gradient(155deg,#ffe7ae,var(--af-gold));border:1px solid #ffe3aa;border-radius:12px;color:#2d1b0a;box-shadow:inset 0 1px #fff8,0 3px #85501d}
@media(max-width:760px){body[data-brand="arcade"] :is(input,textarea,select):is(#title,#code,#prompt){font-size:16px}}

body[data-brand="arcade"] input:-webkit-autofill{ -webkit-text-fill-color:var(--af-cream);caret-color:var(--af-gold);-webkit-box-shadow:0 0 0 1000px var(--af-ink) inset;box-shadow:0 0 0 1000px var(--af-ink) inset}
body[data-brand="arcade"] .pov-toggle[aria-pressed="true"]{background:linear-gradient(140deg,#7cf8d218,transparent),#103629;color:#b9ffe5;border-color:var(--af-mint);box-shadow:inset 0 1px #ffffff17,0 0 16px #7cf8d215}

/* Gravity Four keeps its own cobalt cabinet, gold/mint discs and physical board feel. */
.duel-board.gravity{
 grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));
 position:relative;isolation:isolate;overflow:hidden;gap:4px;
 border:5px solid #16569e;border-top-color:#4c9bf0;border-radius:20px;
 background:linear-gradient(145deg,#3587e9,#1b5cb1 70%);
 box-shadow:inset 0 2px #9cd8ff70,0 8px #0b376d,0 16px 28px #041b3a50;
 --gravity-piece:#ffbf53;
}
.duel-board.gravity[data-turn="2"]{--gravity-piece:#73ead5}
.duel-board.gravity .duel-cell{
 min-width:0;min-height:0;border-radius:50%;border:1px solid #5498e9;
 background:radial-gradient(ellipse at 50% 95%,#1d5c9c,#092e60 88%);
 box-shadow:inset 0 3px 5px #031b3b99,0 1px #88c9ff55;overflow:visible;
}
.duel-board.gravity .duel-cell::before,.duel-board.gravity .duel-cell::after{display:none}
.duel-board.gravity .duel-cell:not(:disabled):hover{background:#14518f;border-color:#a5daff}
.duel-board.gravity .duel-cell:focus-visible{outline:3px solid #b4ffe9;outline-offset:-2px}
.gravity-disc{
 position:relative;display:block;width:76%;aspect-ratio:1;border-radius:50%;pointer-events:none;
 border:1px solid #ffe6ac;background:radial-gradient(circle at 32% 24%,#fff6d5,#ffc455 38%,#f4a625 68%,#b86716);
 box-shadow:inset 0 -3px 3px #a75a1f66,inset 0 2px 2px #fff7c8,0 3px 5px #031e4c80;
}
[data-piece="2"]>.gravity-disc{border-color:#bdfff1;background:radial-gradient(circle at 32% 24%,#eefffc,#80efdc 38%,#38b8ad 72%,#19797f);box-shadow:inset 0 -3px 3px #176b7266,inset 0 2px 2px #e0fff7,0 3px 5px #031e4c80}
.gravity-disc::before{content:'';position:absolute;inset:15%;border:1px solid #ffffff42;border-radius:50%}
[data-last="true"]>.gravity-disc::after{content:'';position:absolute;inset:43%;border:1px solid #fff9de;border-radius:50%;background:#173a5a}
.gravity-arriving{z-index:2}
.gravity-arriving>.gravity-disc{animation:gravity-drop var(--gravity-duration) both}
@keyframes gravity-drop{
 0%{transform:translateY(var(--gravity-from)) scale(.96,1.05);animation-timing-function:cubic-bezier(.55,0,1,1)}
 68%{transform:translateY(0) scale(1.12,.86);animation-timing-function:ease-out}
 82%{transform:translateY(-18%) scale(.97,1.04);animation-timing-function:ease-in}
 100%{transform:translateY(0) scale(1)}
}
.duel-board.gravity .gravity-arriving::after{
 content:'';display:block;position:absolute;width:82%;aspect-ratio:1;border:2px solid var(--gravity-piece);border-radius:50%;pointer-events:none;
 animation:gravity-impact var(--gravity-duration) both;
}
@keyframes gravity-impact{0%,65%{opacity:0;transform:scale(.7)}70%{opacity:.85;transform:scale(.85)}100%{opacity:0;transform:scale(1.5)}}
.duel-board.gravity .duel-cell[data-preview="true"]::before{
 content:'';display:block;width:76%;aspect-ratio:1;border-radius:50%;background:var(--gravity-piece);opacity:.28;
 border:2px dashed #ecfff8;box-shadow:none;pointer-events:none;
}
.duel-board.gravity .duel-cell[data-winning="true"]{border-color:#fff2ba;box-shadow:inset 0 0 14px #fff2b540,0 0 10px #ffe6a34d}
.duel-board.gravity [data-winning="true"]>.gravity-disc{animation:gravity-win .48s ease-in-out var(--gravity-celebrate-delay,0ms) 2 alternate;box-shadow:0 0 0 2px #fff2c8,0 0 22px #ffe4a377}
.duel-board.gravity .gravity-arriving[data-winning="true"]>.gravity-disc{animation:gravity-drop var(--gravity-duration) both,gravity-win .48s ease-in-out var(--gravity-celebrate-delay,0ms) 2 alternate}
@keyframes gravity-win{from{filter:brightness(1)}to{filter:brightness(1.45) drop-shadow(0 0 6px #fff3af)}}
body[data-game$="-gravity"] .duel-seats span{transition:background .18s,border-color .18s;position:relative;padding-left:30px}
body[data-game$="-gravity"] .duel-seats span::before{content:'';position:absolute;left:10px;top:calc(50% - 5px);width:10px;height:10px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}
body[data-game$="-gravity"] .duel-seats [data-turn="true"]{animation:gravity-turn .3s ease-out}
@keyframes gravity-turn{from{box-shadow:inset 0 0 25px #ffffff45}to{box-shadow:inset 0 0 0 #fff0}}
body[data-game$="-gravity"] .duel-status{color:#ffdf91;min-height:2.8em;line-height:1.4}
@media(max-width:680px){.duel-board.gravity{gap:3px;padding:6px;border-width:4px;border-radius:14px;width:min(100%,64vh,440px)}body[data-game$="-gravity"] .duel-seats span{padding-left:26px}}
@media(prefers-reduced-motion:reduce){.duel-board.gravity *,.duel-board.gravity *::after,body[data-game$="-gravity"] .duel-seats span{animation:none!important;transition:none!important}.gravity-disc{transform:none!important}}
@media(forced-colors:active){.duel-board.gravity,.duel-board.gravity .duel-cell{border:1px solid CanvasText}.gravity-disc{background:Highlight;border:2px solid CanvasText}[data-piece="2"]>.gravity-disc{background:Canvas;border:3px double CanvasText}.duel-board.gravity [data-winning="true"]{outline:3px solid Highlight}}

/* Reactor Foundry keeps its own industrial palette; save choices use the shared dialog. */
#pFoundry .foundry-savebar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid #55756b;background:#142b29;margin-top:12px}
#pFoundry .foundry-savebar strong{font:700 13px/1.5 var(--font-mono);color:#c2f3d1}
#pFoundry .foundry-savebar p{font:400 12px/1.6 var(--font-body);color:#c3d1c9;margin:4px 0 0}
#pFoundry .foundry-objective{display:grid;grid-template-columns:1fr 160px;align-items:center;gap:24px;background:#1a2a2e;border:1px solid #60766e;border-left:4px solid #edba6c;padding:18px;margin:16px 0}
#pFoundry .foundry-objective .eyebrow{color:#e8c38d;font-size:11px}
#pFoundry .foundry-objective h3{color:#f6e6c9;font:500 24px/1.2 Impact,'Arial Narrow',sans-serif;letter-spacing:.03em;margin:6px 0}
#pFoundry .foundry-objective p{color:#c9d3ca;font:400 14px/1.55 var(--font-body);margin:0}
#pFoundry progress{width:100%;height:10px;border:0;border-radius:6px;overflow:hidden;background:#0f1d22;accent-color:#afe6bf}
#pFoundry progress::-webkit-progress-bar{background:#0f1d22}#pFoundry progress::-webkit-progress-value{background:#afe6bf}#pFoundry progress::-moz-progress-bar{background:#afe6bf}
#pFoundry .foundry-bulk{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:20px 0 12px}
#pFoundry .foundry-bulk>span{font:500 12px/1.4 var(--font-mono);color:#cad6cc;margin-right:auto}
#pFoundry .foundry-bulk [aria-pressed="true"]{background:#d9b67c;color:#17292b;border-color:#ffe5ae}
#pFoundry .foundry-resources small{color:#c5dfce;font:500 12px/1.4 var(--font-mono)}
#pFoundry .foundry-machine .foundry-running{font-weight:700;color:#eac386}
#pFoundry .foundry-machine .foundry-running[data-running="true"]{color:#b8efc9}
#pFoundry .fine,#pFoundry .foundry-machine p,#pFoundry .foundry-buy>span{font-size:13px}
.foundry-merge{width:min(700px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow-y:auto}
.foundry-merge p{line-height:1.6;font-size:14px}.foundry-save-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.foundry-save-options article{min-width:0;padding:16px;border:1px solid var(--af-violet);background:var(--af-glass-deep);border-radius:12px}
.foundry-save-options h3{font-size:15px;margin:0 0 8px}.foundry-save-options p{margin:0;overflow-wrap:anywhere}
.foundry-merge .row{gap:10px;flex-wrap:wrap}.foundry-merge .row>.btn{min-height:44px;white-space:normal}
.foundry-recovery-item{padding:14px 0;border-top:1px solid var(--af-violet);margin-bottom:10px}.foundry-recovery-item p{overflow-wrap:anywhere}
.foundry-merge-policy{margin:10px 0}.foundry-merge-policy summary{min-height:44px;display:flex;align-items:center;color:var(--af-mint);cursor:pointer;font-size:14px}.foundry-merge-policy summary::before{content:'▸';margin-right:8px}.foundry-merge-policy[open] summary::before{content:'▾'}
@media(max-width:760px){#pFoundry .foundry-savebar{align-items:stretch;flex-direction:column;gap:10px;padding:12px}#pFoundry .foundry-objective{grid-template-columns:1fr;gap:14px;padding:14px}#pFoundry .foundry-resources{grid-template-columns:repeat(2,minmax(0,1fr))}#pFoundry .foundry-resources>div{padding:14px 12px}#pFoundry .foundry-resources span{font-size:11px}#pFoundry .foundry-resources strong{font-size:26px}#pFoundry .foundry-bulk>span{flex-basis:100%;margin-bottom:4px}#pFoundry .foundry-bulk .btn{flex:1}.foundry-save-options{grid-template-columns:1fr}.foundry-merge .row>.btn{width:100%}}
/* Reactor operations: an industrial control deck, with a distinct place for each loop. */
#pFoundry [hidden]{display:none!important}
#pFoundry .foundry-reactor{height:78px;margin-top:10px}
#pFoundry .foundry-reactor::before{width:46px;height:46px;border-width:8px;left:20px}
#pFoundry .foundry-reactor::after{font-size:26px;position:absolute;left:43px}
#pFoundry .foundry-reactor span{left:102px;top:20px;font-size:10px}
#pFoundry .foundry-reactor b{left:102px;right:12px;bottom:19px;text-align:left;font-size:11px;letter-spacing:.08em}
#pFoundry .foundry-resources{grid-template-columns:repeat(4,minmax(0,1fr))}
#pFoundry .foundry-objective{margin:16px 0;grid-template-columns:1fr minmax(150px,220px)}
#pFoundry .foundry-objective-control{display:grid;gap:10px;min-width:0}
#pFoundry .foundry-objective progress{width:100%}
#pFoundry .foundry-operations{display:grid;grid-template-columns:1fr 1fr;gap:14px}
#pFoundry .foundry-operation{min-width:0;border:1px solid #5d7679;border-top:3px solid #8cddb5;padding:18px;background:linear-gradient(145deg,#1c3439,#12272d);position:relative}
#pFoundry .foundry-operation header{display:flex;align-items:center;justify-content:space-between;gap:12px}
#pFoundry .foundry-operation h3,#pFoundry .foundry-section-heading h3,#pFoundry .foundry-workshop-card h3{font:500 25px/1.2 Impact,'Arial Narrow',sans-serif;letter-spacing:.04em;margin:5px 0;text-transform:uppercase;color:#f1e6c6}
#pFoundry .foundry-operation p,#pFoundry .foundry-workshop-card p{font:400 13px/1.6 var(--font-mono);color:#bed1c8;margin:12px 0}
#pFoundry .foundry-operation .eyebrow,#pFoundry .foundry-section-heading .eyebrow,#pFoundry .foundry-workshop-card .eyebrow{font:600 10px/1.5 var(--font-mono);color:#e5bb76;letter-spacing:.12em;margin:0}
#pFoundry .foundry-badge{font:600 10px/1.5 var(--font-mono);color:#adf0cf;background:#12282d;border:1px solid #4a6c67;padding:6px 9px;white-space:nowrap}
#foundryPulsePath{display:flex;align-items:center;gap:5px;list-style:none;padding:0;margin:18px 0;min-height:49px}
#foundryPulsePath li{flex:1;min-width:0;text-align:center;border:1px solid #526e72;background:#0b2027;padding:12px 2px;font:600 11px/1.4 var(--font-mono);color:#a4bab7;position:relative;white-space:nowrap}
#foundryPulsePath li.current{border-color:#ffd18b;color:#ffe1a5;box-shadow:inset 0 -3px #e7b36a}
#foundryPulsePath li.done{color:#a3e9c4;border-color:#6baf8f;background:#22433d}
#pFoundry .foundry-pulse-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#pFoundry .foundry-pulse-buttons .btn{padding-inline:7px;min-height:52px;color:#ffdda3;border-color:#b1976d;background:#34423e}
#pFoundry .foundry-salvage{border-top-color:#dba95f}
#pFoundry .foundry-salvage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}
#pFoundry .foundry-salvage-grid .btn{min-height:50px;background:repeating-linear-gradient(135deg,#1c3339 0 6px,#233d42 6px 12px);font-size:19px;color:#edc883;padding:8px;overflow-wrap:anywhere}
#pFoundry .foundry-salvage-grid .btn[data-searched="true"]{background:#274b40;color:#c3f4d9;opacity:1;border-color:#679d81;font-size:12px;text-transform:uppercase}
#pFoundry .foundry-operation .foundry-operation-note{font-size:11px;color:#9fbbb3;margin-bottom:0}
#pFoundry .foundry-activity-result{min-height:40px;font:500 12px/1.6 var(--font-mono);color:#bbefd0;background:#132b2d;border-left:3px solid #86cca7;padding:12px 14px;margin:12px 0 24px;overflow-wrap:anywhere}
#pFoundry .foundry-view-tabs{position:sticky;top:0;z-index:4;background:#1b2e33;padding-top:10px;display:flex;gap:8px;border-bottom:1px solid #69807a;padding-bottom:14px;flex-wrap:wrap}
#pFoundry .foundry-view-tabs .btn{font-size:13px;min-height:48px;flex:1}
#pFoundry .foundry-view-tabs [aria-pressed="true"],#pFoundry .foundry-district-tabs [aria-pressed="true"],#pFoundry .foundry-focus-options [aria-pressed="true"]{background:#d9b67c;color:#17292b;border-color:#ffe5ae}
#pFoundry .foundry-view-tabs span{font-size:10px;margin-left:4px;border:1px solid currentColor;padding:2px 4px;white-space:nowrap}
#pFoundry .foundry-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 12px}
#pFoundry .foundry-section-heading h3{font-size:27px}
#pFoundry .foundry-guide summary{min-height:44px;display:flex;align-items:center}
#pFoundry .foundry-focus{padding:14px;background:#182c31;border:1px solid #435e61;margin:10px 0 18px}
#pFoundry .foundry-focus .eyebrow{font-size:10px;color:#b7d4c5;margin:0 0 10px}
#pFoundry .foundry-focus-options{display:flex;gap:8px;flex-wrap:wrap}
#pFoundry .foundry-focus .fine{min-height:20px;margin:12px 0 0}
#pFoundry .foundry-district-tabs{display:flex;gap:8px;margin:18px 0 10px}
#pFoundry .foundry-district-tabs .btn{flex:1;white-space:normal}
#pFoundry .foundry-machine::before,#pFoundry .foundry-machine:nth-child(n)::before{content:attr(data-line);text-transform:uppercase;font-size:10px}
#pFoundry .foundry-machine[hidden]{display:none!important}
#pFoundry .foundry-machine .foundry-line-toggle{grid-column:1/-1;min-height:44px;box-shadow:none;background:transparent}
#pFoundry .foundry-machine .foundry-buy .btn{white-space:normal}
#pFoundry .foundry-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}
#pFoundry .foundry-workshop-card{padding:20px;border:1px solid #526d70;background:linear-gradient(140deg,#2c4248,#1a3036);display:flex;flex-direction:column;align-items:start;min-width:0}
#pFoundry .foundry-workshop-card h3{margin-top:12px}
#pFoundry .foundry-workshop-card .foundry-price{color:#ffcd85;font-size:12px;margin-top:auto;padding-top:12px}
#pFoundry .foundry-workshop-card .foundry-reward{color:#acedd0;font-size:12px;margin-top:0}
#pFoundry .foundry-workshop-card .btn{width:100%;white-space:normal}
#pFoundry .btn:focus-visible{outline:3px solid #c1ffe2;outline-offset:3px}
@media(max-width:760px){
  #pFoundry .foundry-reactor b{font-size:9px;letter-spacing:0}
  #pFoundry .foundry-reactor span{font-size:8px}
  #pFoundry .foundry-resources{grid-template-columns:repeat(2,minmax(0,1fr))}
  #pFoundry .foundry-objective{grid-template-columns:1fr}
  #pFoundry .foundry-objective-control{grid-template-columns:1fr;gap:12px}
  #pFoundry .foundry-operations,#pFoundry .foundry-card-grid{grid-template-columns:1fr}
  #pFoundry .foundry-operation{padding:14px}
  #pFoundry .foundry-operation h3{font-size:23px}
  #pFoundry .foundry-operation header{gap:8px}
  #pFoundry .foundry-badge{font-size:9px;padding:5px}
  #pFoundry .foundry-view-tabs{gap:6px}
  #pFoundry .foundry-view-tabs .btn{flex-basis:calc(50% - 6px);padding-inline:8px;font-size:12px}
  #pFoundry .foundry-view-tabs .btn:last-child{flex-basis:calc(50% - 6px)}
  #pFoundry .foundry-focus-options{display:grid;grid-template-columns:1fr 1fr}
  #pFoundry .foundry-district-tabs{display:grid;grid-template-columns:1fr;gap:8px}
  #pFoundry .foundry-section-heading{align-items:start}
  #pFoundry .foundry-section-heading h3{font-size:23px}
  #pFoundry .foundry-workshop-card{padding:16px}
}

#pFoundry #foundryOperations{scroll-margin-top:10px}
@media(prefers-reduced-transparency:reduce){#pFoundry .foundry-operation,#pFoundry .foundry-workshop-card{background:#1c3439}}
/* Keep keyboard focus and in-page jumps clear of the department bar. */
#pFoundry{scroll-padding-top:80px}
@media(max-width:760px){#pFoundry{scroll-padding-top:145px}}

/* Shared feedback composer, including its compact results-screen version. */
.feedback-compose{min-width:0;display:grid;gap:10px}.feedback-topics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px}
body[data-brand="arcade"] .feedback-topic{min-width:0;min-height:44px;padding:10px 8px;border:1px solid var(--af-edge);border-radius:12px;background:var(--af-glass-deep);box-shadow:none;color:var(--af-muted);font:600 14px/1.25 var(--font-body);display:flex;gap:7px;align-items:center;justify-content:center}
body[data-brand="arcade"] .feedback-topic>span{font-size:18px;line-height:1;color:var(--af-violet)}
body[data-brand="arcade"] .feedback-topic[aria-pressed="true"]{color:var(--af-cream);background:#ffbf5315;border-color:var(--af-gold);box-shadow:inset 0 0 0 1px #ffbf5320}
body[data-brand="arcade"] .feedback-topic[aria-pressed="true"]>span{color:var(--af-gold)}
.feedback-writing-note{display:flex;justify-content:space-between;align-items:start;gap:16px;color:var(--af-muted);font:400 12px/1.5 var(--font-body)}
#feedbackCount{white-space:nowrap;font-variant-numeric:tabular-nums}.feedback-text-error{color:var(--af-coral);font:500 13px/1.5 var(--font-body);margin:0}
.feedback-back{display:none}.feedback-dialog .feedback-back{display:inline-flex}.feedback-footnote{grid-column:1/-1;margin:0;color:var(--af-muted);font:400 12px/1.5 var(--font-body)}
.feedback-success{text-align:center;padding:24px 12px}.feedback-success-icon{display:grid;place-items:center;width:52px;height:52px;border:1px solid #7cf8d25c;border-radius:50%;margin:0 auto 16px;background:#7cf8d212;color:var(--af-mint);font:600 28px/1 var(--font-body)}
.feedback-success h3{font:400 22px/1.3 var(--font-display);margin:0 0 10px;color:var(--af-cream)}.feedback-success p{font:400 15px/1.6 var(--font-body);color:var(--af-muted);margin:0 auto;max-width:38ch}
.feedback-form[data-sent="true"] :is(.feedback-heading,.feedback-compose,.feedback-options,#feedbackSend,.feedback-draft-note){display:none}
.feedback-form[data-state="error"] #feedbackStatus{color:var(--af-coral)}.feedback-form[data-sent="true"] .feedback-actions{grid-template-columns:1fr}
#feedbackStatus:empty{display:none}#feedbackTextError[hidden],#feedbackSuccess[hidden]{display:none}
.feedback-reward summary{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}.feedback-reward summary::before{content:'+';color:var(--af-gold);font:500 20px/1 var(--font-body);width:14px}.feedback-reward[open] summary::before{content:'−'}
.feedback-optional{margin-left:auto;color:var(--af-muted);font:400 12px/1.4 var(--font-body)}
body[data-brand="arcade"] #feedbackDialog{width:min(780px,calc(100% - 32px));max-width:none;padding:0;border-radius:24px;max-height:calc(100dvh - 32px);overflow:hidden;background:linear-gradient(130deg,#3a2b6033,transparent 50%),var(--af-glass);border-color:#a88ee35c;box-shadow:0 30px 100px #0009,inset 0 1px #e2ceff21}
#feedbackDialog[open]{display:flex;flex-direction:column}#feedbackDialog::backdrop{background:#090615b8;backdrop-filter:blur(6px)}
#feedbackDialog .feedback-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 28px 0;flex:none}
.feedback-game{display:flex;align-items:center;gap:12px;min-width:0}.feedback-game img{flex:none;border-radius:10px;border:1px solid var(--af-edge);object-fit:cover}.feedback-game>div{min-width:0}.feedback-overline{font:500 10px/1.5 var(--font-mono);color:var(--af-gold);letter-spacing:.13em}.feedback-game p{font:600 14px/1.4 var(--font-body);color:var(--af-cream);margin:2px 0 0;overflow-wrap:anywhere}
#feedbackDialog #feedbackClose{display:grid;place-items:center;flex:none;width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;border:1px solid var(--af-edge);box-shadow:none;background:#15102f66;color:var(--af-muted);font:400 20px/1 var(--font-body)}
#feedbackDialog .feedback-dialog-intro{padding:22px 28px 0;flex:none}#feedbackDialog #feedbackTitle{font:400 clamp(24px,2.5vw,28px)/1.25 var(--font-display);letter-spacing:0;margin:0 0 10px;color:var(--af-cream)}
#feedbackDialog #feedbackIntro{font:400 15px/1.55 var(--font-body);color:var(--af-muted);margin:0}
#feedbackDialog .feedback-context{display:inline-flex;gap:7px;align-items:center;padding:5px 9px;border-radius:7px;margin:14px 0 0;font:500 12px/1.4 var(--font-body);color:var(--af-mint);background:#7cf8d209;border:1px solid #7cf8d222}
#feedbackDialog .feedback-context::before{content:'●';font-size:7px}#feedbackDialog #feedbackSlot{min-height:0;overflow:auto;padding:22px 28px 20px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b59aff55 transparent}
#feedbackDialog .feedback-form{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;margin:0;border:0;padding:0}#feedbackDialog .feedback-heading{display:none}
#feedbackDialog .feedback-message{font:600 14px/1.5 var(--font-body);gap:10px;color:var(--af-cream)}
#feedbackDialog #feedbackText{font:400 16px/1.55 var(--font-body);min-height:140px;max-height:280px;padding:14px 16px;border-radius:14px;border:1px solid #b59aff59;background:#100c2980;box-shadow:inset 0 2px 8px #0002;resize:vertical;color:var(--af-cream)}
#feedbackDialog #feedbackText::placeholder{color:#a89cbd;opacity:1}body[data-brand="arcade"] #feedbackDialog #feedbackText:focus-visible{border-color:var(--af-mint);outline:2px solid var(--af-mint);outline-offset:2px;box-shadow:none}
#feedbackDialog #feedbackText[aria-invalid="true"]{border-color:var(--af-coral)}
#feedbackDialog .feedback-options{padding:0;border-top:1px solid var(--af-edge);gap:12px}#feedbackDialog .feedback-options .fine{font:400 13px/1.6 var(--font-body);margin:0;color:var(--af-muted)}
#feedbackDialog .feedback-reward{padding-top:4px}#feedbackDialog .feedback-reward summary{font:500 14px/1.5 var(--font-body);color:var(--af-muted)}#feedbackDialog .feedback-reward[open] summary{margin-bottom:10px;color:var(--af-cream)}#feedbackDialog .feedback-reward .feedback-field{font-family:var(--font-body);font-size:13px;color:var(--af-cream);margin:14px 0 10px}
#feedbackDialog .feedback-actions{display:grid;grid-template-columns:1fr 1.2fr;gap:12px;margin:0;align-items:center;position:sticky;bottom:0;z-index:2;padding:12px 0 4px;background:#21183f;box-shadow:0 -8px 12px #21183f}#feedbackDialog .feedback-actions>.btn{display:flex;justify-content:center;align-items:center;gap:12px;min-height:48px;border-radius:12px;font:700 15px/1.3 var(--font-body);padding:12px 14px}
#feedbackDialog #feedbackSend{grid-column:2;grid-row:1}#feedbackDialog #feedbackBack{grid-column:1;grid-row:1}#feedbackDialog .feedback-actions .status,#feedbackDialog .feedback-receipt{grid-column:1/-1;font:400 13px/1.6 var(--font-body);margin:0}
#feedbackDialog .feedback-receipt{color:var(--af-mint);width:fit-content;text-underline-offset:4px}
#feedbackDialog .feedback-footnote{margin-top:-6px;font-size:11px;text-align:center}#feedbackDialog .feedback-form[data-sent="true"] #feedbackBack{grid-column:1/-1}#feedbackDialog .feedback-form[data-sent="true"] #feedbackSend{display:none}
#feedbackDialog .feedback-form[data-sent="true"] #feedbackBack{background:var(--af-gold);color:var(--af-night);border:1px solid #ffdd9f;box-shadow:0 3px #8b5d25}.feedback-success{grid-column:1/-1}
@media(max-width:600px){body[data-brand="arcade"] #feedbackDialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:20px}#feedbackDialog .feedback-dialog-head{padding:18px 18px 0}#feedbackDialog .feedback-dialog-intro{padding:18px 18px 0}#feedbackDialog #feedbackTitle{font-size:23px}#feedbackDialog #feedbackIntro{font-size:14px}#feedbackDialog #feedbackSlot{padding:18px}#feedbackDialog .feedback-form{gap:16px}#feedbackDialog #feedbackText{min-height:128px;padding:12px;font-size:16px}#feedbackDialog .feedback-actions{grid-template-columns:1fr 1.15fr;gap:8px}#feedbackDialog .feedback-actions>.btn{font-size:14px;padding:12px 8px}#feedbackDialog .feedback-context{font-size:11px}.feedback-writing-note{gap:10px;font-size:11px}.feedback-game img{width:32px;height:32px}.feedback-game{gap:9px}}
@media(prefers-reduced-transparency:reduce){#feedbackDialog::backdrop{backdrop-filter:none;background:#090615e6}}
@media(max-width:600px){#feedbackDialog .feedback-topic{padding:10px 4px;gap:4px;font-size:13px;white-space:nowrap}#feedbackDialog .feedback-topic>span{font-size:16px;flex:none}}
@media(forced-colors:active){body[data-brand="arcade"] .feedback-topic[aria-pressed="true"]{outline:2px solid Highlight}.feedback-success-icon{border-color:ButtonText}}

.evolver-panel { grid-column:1/-1; min-width:0; padding:0; }
.evolver-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
body[data-brand="arcade"] .evolver-toggle { display:inline-flex; align-items:center; gap:10px; min-height:48px; padding:10px 14px; border:1px solid var(--af-edge); border-radius:14px; background:var(--af-glass-deep); color:var(--af-cream); box-shadow:none; font:700 15px/1.3 var(--af-font-body); }
.evolver-toggle svg { width:22px; height:24px; flex:none; }
.evolver-mic-state { display:inline-block; min-width:32px; text-align:center; font:600 12px/1.6 var(--af-font-body); color:var(--af-muted); }
body[data-brand="arcade"] .evolver-toggle.enabled, .evolver-dock.enabled { border-color:var(--af-mint); background:#183a3c; color:var(--af-mint); }
.evolver-toggle.enabled .evolver-mic-state { color:var(--af-mint); }
.evolver-settings { margin-left:auto; min-width:0; }
.evolver-settings>summary { display:flex; align-items:center; min-height:44px; padding:6px 2px; color:var(--af-muted); font:600 13px/1.4 var(--af-font-body); cursor:pointer; gap:8px; }
.evolver-settings>summary::after { content:'⌄'; }
.evolver-settings[open] { flex-basis:100%; order:2; }
.evolver-settings[open]>summary::after { content:'⌃'; }
.evolver-settings-body { padding:16px; border:1px solid var(--af-edge); border-radius:14px; background:var(--af-glass-deep); }
.evolver-settings-body label { display:block; margin:0 0 8px; color:var(--af-cream); font:600 14px/1.4 var(--af-font-body); }
.evolver-settings-body select { width:100%; }
.evolver-settings-body p, .evolver-caption, .evolver-status, .evolver-preview { margin:10px 0; color:var(--af-muted); font:400 13px/1.55 var(--af-font-body); }
.evolver-status { min-height:20px; color:var(--af-mint); }
.evolver-preview { padding:10px 12px; border-left:2px solid var(--af-mint); background:#7cf8d209; color:var(--af-cream); overflow-wrap:anywhere; }
.evolver-panel .feedback-message { margin-top:14px; }
.evolver-panel textarea { width:100%; min-height:160px; max-height:360px; padding:14px 16px; font:400 16px/1.55 var(--af-font-body); resize:vertical; }
.evolver-panel .feedback-topics { margin:0 0 16px; }
.evolver-row { display:flex; flex-wrap:wrap; gap:9px; margin:12px 0; align-items:center; }
.evolver-row .btn { min-height:44px; font-size:13px; padding:10px 13px; }
.evolver-actions .linkbtn { margin-left:auto; min-height:44px; }
.evolver-panel a { color:var(--af-mint); }
#evolverContinue { color:var(--af-night); }
@media(max-width:400px) { .evolver-settings-body .feedback-topics { grid-template-columns:1fr; } }
.feedback-options { grid-column:1/-1; }
.evolver-dock { position:absolute; right:max(12px,env(safe-area-inset-right,0px)); bottom:max(80px,calc(var(--feedback-controls-height,0px) + 86px)); z-index:12; display:grid; place-items:center; width:52px; height:52px; min-height:52px; padding:13px; border:1px solid var(--af-edge); border-radius:50%; background:var(--af-glass-deep); color:var(--af-muted); box-shadow:var(--af-shadow); touch-action:manipulation; cursor:pointer; }
.evolver-dock svg { width:24px; height:24px; }
.evolver-dock-dot { position:absolute; width:8px; height:8px; right:2px; top:2px; border-radius:50%; background:var(--af-muted); border:2px solid var(--af-ink); }
.evolver-dock.enabled .evolver-dock-dot { background:var(--af-mint); }
.evolver-dock:focus-visible, .evolver-settings summary:focus-visible { outline:2px solid var(--af-mint); outline-offset:4px; }
.evolver-hold { touch-action:none; }
.evolver-toast { position:fixed; right:16px; top:85px; z-index:40; max-width:calc(100% - 32px); padding:16px; border:1px solid var(--af-mint); border-radius:14px; background:var(--af-glass-deep); color:var(--af-cream); box-shadow:var(--af-shadow); font-size:14px; }
.evolver-toast a { color:var(--af-mint); margin-left:12px; }
.evolver-toast button { margin-left:12px; min-height:44px; min-width:44px; }
body[data-brand-page="evolve"]{margin:0;background:radial-gradient(ellipse at 80% 0,#64498c33,transparent 50%),var(--af-night);font:16px/1.6 var(--af-font-body)}.evolve-top{padding:18px 30px;border-bottom:1px solid var(--af-edge);display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;align-items:center}.evolve-top a{color:var(--af-gold);text-decoration:none;font:400 22px var(--af-font-display)}.evolve-top .btn{padding:10px 15px}.evolve-main{max-width:1250px;padding:35px 24px 65px;margin:auto}.evolve-main h1{font:400 clamp(28px,5vw,48px)/1.2 var(--af-font-display);margin:15px 0}.evolve-main h2{font:400 23px var(--af-font-display)}.evolve-main .eyebrow{font:600 11px var(--af-font-mono);color:var(--af-mint);letter-spacing:.12em}.evolve-main .btn{padding:12px 18px;cursor:pointer}.evolve-main .muted{color:var(--af-muted)}.evolve-layout{display:grid;grid-template-columns:minmax(290px,.8fr) minmax(0,1.4fr);gap:24px}.evolve-card{padding:24px;border:1px solid var(--af-edge);border-radius:20px;background:var(--af-glass);box-shadow:var(--af-shadow);min-width:0}.evolve-card textarea{width:100%;min-height:150px}.evolve-card iframe{width:100%;height:600px;border:1px solid var(--af-edge);border-radius:12px;background:var(--af-ink)}.evolve-card label{display:block;margin:15px 0 8px}.evolve-card a{color:var(--af-mint)}.evolve-job{padding:15px 0;border-top:1px solid var(--af-edge);display:flex;gap:18px;justify-content:space-between;align-items:center;flex-wrap:wrap}.evolve-payment{margin-top:18px;padding-top:18px;border-top:1px solid var(--af-edge)}.evolve-payment p{overflow-wrap:anywhere}.evolve-status{color:var(--af-mint);white-space:pre-wrap}.evolve-error{color:var(--af-coral)}.evolve-main dialog{background:var(--af-glass-deep);color:var(--af-cream);padding:25px;width:min(520px,calc(100% - 24px));border:1px solid var(--af-edge);border-radius:20px}.evolve-main dialog::backdrop{background:#07041bba;backdrop-filter:blur(8px)}
@media(max-width:760px){.evolve-layout{grid-template-columns:1fr}.evolve-top{padding:14px 18px}.evolve-top a{font-size:18px}.evolve-main{padding:25px 16px 45px}.evolve-card{padding:18px}.evolve-card iframe{height:70vh;min-height:420px}.evolver-row .btn{flex:1 1 130px}.evolver-dock{max-width:200px;font-size:11px}.evolve-job{gap:8px}}
@media(prefers-reduced-transparency:reduce){.evolve-card,.evolver-panel,.evolver-dock{background:var(--af-ink)}.evolve-main dialog::backdrop{backdrop-filter:none}}

[hidden]{display:none!important}

.evolve-layout{align-items:start}.evolve-card:has(#evoPreview){position:sticky;top:20px}.evolve-card details{margin:14px 0;color:var(--af-muted);font-size:13px}.evolve-card summary{min-height:44px;cursor:pointer;display:flex;align-items:center}.evolve-card .evolve-payment .muted{font-size:13px}.evolve-card .evolve-payment p{font-size:14px}.evolve-card #evoBalance{color:var(--af-gold);font-family:var(--af-font-mono)}@media(max-width:760px){.evolve-card:has(#evoPreview){position:static}}

.stage:has(.pad3d:not([hidden])) .evolver-dock{bottom:max(184px,calc(env(safe-area-inset-bottom,0px) + 184px))}

/* Readable controls, while each world keeps its palette, type and materials. */
/* Keep one visual score display; this live region is for assistive technology. */
#actionReadout { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
body[data-game="tide-dash"] #actionHint { color:#fff7d7; font-weight:700; }
body[data-game="pulse-breaker"] #actionHud .action-button:focus-visible { outline-color:#24313b; }

/* Paper launchers use ink for all links and device declarations. */
body:is([data-game="a-dark-room"],[data-game="progress-knight"]) .open-game-shell .eyebrow { color:#715018; }
body:is([data-game="a-dark-room"],[data-game="progress-knight"]) .open-game-shell .game-support { color:#294d40; }
body:is([data-game="a-dark-room"],[data-game="progress-knight"]) .open-game-links a { color:#343456; font-size:14px; min-height:44px; display:inline-flex; align-items:center; }
body:is([data-game="a-dark-room"],[data-game="progress-knight"]) .open-game-links a:focus-visible { outline:3px solid #343456; outline-offset:3px; }

/* The Dots board is paper; its surrounding cabinet is dark teal. */
body[data-game$="-boxes"] .duel-shell { --muted:#c5ddd7; }
.duel-board.boxes .duel-edge:not([data-piece="1"]):not([data-piece="2"]) { background:#64776f; }
.duel-board.boxes .duel-edge[data-piece="1"] { background:#a85a14; }
.duel-board.boxes .duel-edge[data-piece="2"] { background:#17675d; }
.duel-board.boxes .duel-box[data-piece="1"] { color:#643609; background:#efbd77; }
.duel-board.boxes .duel-box[data-piece="2"] { color:#133f38; background:#91d7bf; }
.duel-board.boxes .duel-edge:focus-visible { outline-color:#172e35; }
.duel-board.reversi .duel-cell[data-legal="true"][data-piece="0"]::before { width:24%; background:#dce9bb; box-shadow:0 0 0 1px #0c3025; }
.duel-terms, .duel-rules, .duel-side .fine { font-size:14px; line-height:1.6; }
.duel-badge { font-size:11px; }
.duel-rules summary { min-height:44px; display:flex; align-items:center; }
.duel-rules summary::before { content:'▸'; margin-right:7px; }
.duel-rules[open] summary::before { content:'▾'; }

/* Industrial micro labels should still be readable from a phone. */
#pFoundry .fine, #pFoundry .foundry-machine p, #foundryCores { font-size:13px!important; }
#pFoundry .foundry-machine::before, #pFoundry .foundry-resources span, #pFoundry .foundry-buy>span { font-size:11px; }
.boxing-side small, .boxing-round small, .boxing-connection, .boxing-pad-caption { font-size:12px; line-height:1.4; }
.boxing-control { font-size:13px; }
.boxing-control small { font-size:11px; }
@media(max-width:760px) {
  .boxing-side label { font-size:11px; }
  .boxing-side small { font-size:11px; }
  .boxing-control { min-height:48px; font-size:12px; }
  .boxing-control small { display:none; }
  .boxing-pad-caption { display:none; }
  .duel-seats { font-size:13px; }
  .mancala-row .duel-cell { font-size:13px; }
  .mancala-store { font-size:11px; }
}
@media(forced-colors:active) {
  .duel-board.boxes .duel-edge { border:1px solid ButtonText; }
  body:is([data-game="a-dark-room"],[data-game="progress-knight"]) .open-game-links a { color:LinkText; }
}

/* Sunseed's own garden table: carved walnut, sun-gold and jade. */
body[data-game$="-mancala"]{--world-panel:#172e29;--world-muted:#c1cfc2;--world-text:#fff0d2;--world-accent:#edc276;--world-radius:24px}
body[data-game$="-mancala"] #pDuel{
 background:radial-gradient(ellipse at 15% 5%,#70846640,transparent 45%),radial-gradient(ellipse at 95% 80%,#be8a3520,transparent 40%),repeating-linear-gradient(125deg,#e7ddb603 0 1px,transparent 1px 18px),#112923;
 padding:clamp(16px,3vw,40px);align-items:safe center;
}
body[data-game$="-mancala"] .duel-shell{width:min(1360px,100%);grid-template-columns:minmax(0,1fr) 260px;gap:clamp(24px,3vw,44px);padding:clamp(20px,3vw,40px);border-color:#8eab8b40;background:linear-gradient(145deg,#284136e8,#152e29f5);border-radius:26px;box-shadow:inset 0 1px #d9e7bf15,0 24px 70px #071d1980}
body[data-game$="-mancala"] .duel-main{gap:18px}
body[data-game$="-mancala"] .duel-top .eyebrow{color:#c4d6be;letter-spacing:.15em;font-size:11px}
body[data-game$="-mancala"] .duel-badge{color:#e8d6b3;border-color:#a9b29755}
body[data-game$="-mancala"] .duel-status{font:500 clamp(24px,2.5vw,36px)/1.15 Georgia,serif;color:#fff0ce}
body[data-game$="-mancala"] .duel-seats{gap:10px}
body[data-game$="-mancala"] .duel-seats span{border:1px solid #c5b48233;background:#0d221e66;padding:12px 16px;border-radius:12px;font-size:14px;line-height:1.4;color:#f8d28b}
body[data-game$="-mancala"] .duel-seats span:last-child{color:#a0dec7}
body[data-game$="-mancala"] .duel-seats [data-turn="true"]{background:#eac57a15;border-color:#eac57a;box-shadow:inset 3px 0 #eac57a}
body[data-game$="-mancala"] .duel-seats span:last-child[data-turn="true"]{border-color:#9bd8bd;box-shadow:inset 3px 0 #9bd8bd;background:#9bd8bd12}
body[data-game$="-mancala"] .duel-side{border-left:1px solid #c5d0b52b;padding-left:24px;gap:16px;align-self:stretch}
body[data-game$="-mancala"] .duel-side>h3,body[data-game$="-mancala"] #duelTip{display:none}
.mancala-guide{color:#d0dbca;font:14px/1.6 var(--font-body,sans-serif)}
.mancala-kicker{font:600 10px/1.5 var(--font-mono);letter-spacing:.14em;color:#e2c182;margin:0 0 12px}
.mancala-guide h3{font:400 27px/1.18 Georgia,serif!important;color:#fff0ce;margin:0 0 26px!important}
.mancala-guide ol{list-style:none;counter-reset:harvest;padding:0;display:grid;gap:22px;margin:0}
.mancala-guide li{counter-increment:harvest;display:grid;grid-template-columns:26px 1fr;column-gap:10px}
.mancala-guide li::before{content:'0' counter(harvest);grid-row:1/3;font:12px/1.9 var(--font-mono);color:#e2c182}
.mancala-guide li strong{font-weight:600;color:#fff0d6;font-size:16px}
.mancala-guide li span{grid-column:2}
.mancala-guide-end{border-top:1px solid #c5d0b52b;padding-top:16px;margin:22px 0 0;color:#c1cfc2}
body[data-game="online-mancala"] #pDuel[data-phase="lobby"] .mancala-guide{display:none}
body[data-game$="-mancala"] .duel-terms{background:#0b211e80;border-radius:12px}
body[data-game$="-mancala"] .duel-side .btn{border-radius:10px;min-height:44px}
body[data-game$="-mancala"] #duelMessage:empty{display:none}
.duel-board.mancala{display:flex;flex-direction:column;gap:16px;aspect-ratio:auto;min-height:0;width:100%;padding:0;border:0;background:transparent;box-shadow:none;border-radius:0;color:#fff0ce}
.mancala-orientation{display:flex;justify-content:space-between;gap:10px;align-items:center;font:600 10px/1.4 var(--font-mono);letter-spacing:.08em}
.mancala-jade{color:#afe5d0}.mancala-sun{color:#f7d18c}.mancala-flow{color:#b7c6b6;font-size:9px;letter-spacing:.02em}
.mancala-tray{display:grid;grid-template-columns:minmax(52px,.8fr) minmax(0,6fr) minmax(52px,.8fr);grid-template-rows:1fr 1fr;gap:18px;padding:26px 18px;position:relative;isolation:isolate;
 background:repeating-linear-gradient(3deg,#efc58908 0 2px,#42220e0c 3px 5px),radial-gradient(ellipse at 20% 0,#e9b97655,transparent 70%),linear-gradient(125deg,#b87942,#c5945a 45%,#996035);
 border:3px solid #deb37b;border-top-color:#f2cc91;border-radius:70px;box-shadow:inset 0 0 0 4px #69402155,inset 0 8px 12px #ffdf9a30,0 9px #59371f,0 13px 0 #30251b,0 24px 30px #05191270;
}
.mancala-row{gap:10px}
body[data-game$="-mancala"][data-item-theme="moonstone"] .mancala-tray{background:radial-gradient(ellipse at 20% 0,#bceef855,transparent 70%),repeating-linear-gradient(25deg,#e3efff12 0 2px,#12183008 3px 7px),linear-gradient(125deg,#5b647e,#9ba7bc 45%,#49556f);border-color:#c9dcef;box-shadow:inset 0 0 0 4px #32425755,inset 0 8px 12px #dceaff30,0 9px #35455f,0 13px #162335,0 24px 30px #05191270}
body[data-game$="-mancala"][data-item-theme="moonstone"] .mancala-tray .duel-cell,body[data-game$="-mancala"][data-item-theme="moonstone"] .mancala-store{background:radial-gradient(ellipse at 50% 80%,#435b70,#1d334c 65%,#11243a);border-color:#668598;box-shadow:inset 0 7px 12px #061426b0,0 2px #d3eaff80}
.mancala-row .duel-cell,.mancala-tray .mancala-store{border-radius:46%;background:radial-gradient(ellipse at 50% 80%,#754724 0,#4b2d1c 65%,#291e18);border:2px solid #58391f;box-shadow:inset 0 7px 12px #20150db0,0 2px #f8d19c80;position:relative;color:#ffe4a6}
.mancala-row .duel-cell{min-height:110px;aspect-ratio:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:15px 3px 8px;gap:0;transition:border-color .16s,box-shadow .16s,transform .16s}
.mancala-row .duel-cell[data-owner="2"]{color:#b8e9d3}
.mancala-row .duel-cell:not(:disabled){border-color:#f8d486;cursor:pointer;box-shadow:inset 0 6px 12px #20150db0,0 0 0 2px #edc27625,0 2px #f8d19c80}
.mancala-row .duel-cell:disabled{opacity:1;filter:none}
.mancala-row .duel-cell[data-empty="true"] .mancala-count{opacity:.5}
.mancala-row .duel-cell:not(:disabled):hover{background:radial-gradient(ellipse at 50% 80%,#936333,#4e3320);transform:translateY(-2px)}
.mancala-row .duel-cell[data-selected="true"]{outline:3px solid #fff0bd;outline-offset:3px;transform:translateY(-3px)}
.mancala-row .duel-cell:focus-visible{outline:3px solid #c7ffdf;outline-offset:4px;z-index:3}
.mancala-row .duel-cell[data-last="true"]{outline:0}
.mancala-pocket-label{position:absolute;top:7px;left:0;right:0;text-align:center;font:500 10px/1 var(--font-mono);color:#d3b18d;letter-spacing:.05em}
.mancala-seeds{position:relative;display:block;flex:1;width:100%;min-height:44px;margin-top:6px;max-height:72px}
.mancala-seeds i{position:absolute;left:var(--seed-x);top:var(--seed-y);width:9px;height:13px;border-radius:45% 60% 50% 55%;background:radial-gradient(ellipse at 28% 25%,#fff4bc,#edb951 55%,#a16628);box-shadow:1px 3px 3px #160d0ca0,inset 1px 1px #ffe9a6;transform:translate(-50%,-50%) rotate(var(--seed-angle))}
.mancala-seeds i:nth-child(3n){background:radial-gradient(ellipse at 28% 25%,#e6f9d7,#99c8a2 55%,#3f7a66);transform:translate(-50%,-50%) rotate(var(--seed-angle))}
.mancala-seeds i:nth-child(4n){background:radial-gradient(ellipse at 28% 25%,#fff8e0,#dfbb85 55%,#99714b)}
.mancala-count{font:600 clamp(20px,2vw,27px)/1.2 var(--font-mono);text-shadow:0 2px #21160f;margin-top:2px}
.mancala-tray .mancala-store{grid-row:1/3;display:flex;flex-direction:column;justify-content:flex-end;padding:32px 3px 24px;gap:6px;overflow:visible}
.mancala-tray .mancala-store[data-owner="1"]{grid-column:3;color:#ffe4a6}
.mancala-store .mancala-pocket-label{top:21px;font-size:9px;white-space:normal;line-height:1.5;padding:0 8px}
.mancala-store .mancala-count{font-size:clamp(28px,3vw,40px)}
.mancala-store .mancala-seeds{min-height:55px;max-height:120px}
.mancala-route{display:none;position:absolute;right:-3px;top:-3px;padding:4px 6px;border-radius:20px;background:#d5e9cc;color:#183e32;box-shadow:0 2px 8px #18150e70;font:700 12px/1 var(--font-mono);z-index:2}
.mancala-tray [data-route="true"] .mancala-route{display:block}
.mancala-tray [data-route="true"]{border-color:#cae8bd}
.mancala-tray [data-landing="true"]{box-shadow:inset 0 7px 12px #20150db0,0 0 0 3px #d6f0c4}
.mancala-tray [data-landing="true"] .mancala-route{background:#f8d78b;color:#402b19}
.mancala-action{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#0c241e99;border:1px solid #c7d4ac33;border-radius:14px;padding:18px;margin-top:5px;min-height:94px}
.mancala-action>div{min-width:0}.mancala-action strong{font:500 21px/1.3 Georgia,serif;color:#fff0ce}.mancala-action p{font:14px/1.5 var(--font-body,sans-serif);color:#c1d1c0;margin:6px 0 0}
body[data-game$="-mancala"] .mancala-sow{flex-shrink:0;min-height:48px;background:linear-gradient(#f4d99e,#dfb263);color:#302619;border:1px solid #ffe3ab;border-radius:10px;font-weight:700;box-shadow:inset 0 1px #fff4ca,0 3px #80643d;padding:13px 19px}
body[data-game$="-mancala"] .mancala-sow:disabled{background:#b9bba41c;color:#c6cbb5;border-color:#c6cbb54d;box-shadow:none;opacity:1;cursor:default}
.mancala-news{font:14px/1.5 var(--font-body,sans-serif);color:#e2d3ac;margin:0;min-height:22px;padding-left:12px;border-left:2px solid #d4ad64}
.mancala-board-foot{display:flex;justify-content:space-between;gap:10px;font:11px/1.5 var(--font-mono);color:#b4c6b7}
@media(max-width:1050px){body[data-game$="-mancala"] .duel-shell{grid-template-columns:minmax(0,1fr)}body[data-game$="-mancala"] .duel-side{border-left:0;border-top:1px solid #c5d0b52b;padding:20px 0 0;grid-template-columns:repeat(2,minmax(0,1fr))}.mancala-guide{grid-column:1/-1}.mancala-guide h3{margin-bottom:18px!important}.mancala-guide h3 br{display:none}.mancala-guide ol{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.mancala-guide-end{margin-top:16px}}
@media(max-width:600px){
 body[data-game$="-mancala"] #pDuel{padding:12px 8px;align-items:start}
 body[data-game$="-mancala"] .duel-shell{padding:18px 12px;border-radius:18px;gap:20px}
 body[data-game$="-mancala"] .duel-main{gap:14px}
 body[data-game$="-mancala"] .duel-seats span{font-size:12px;padding:10px}
 body[data-game$="-mancala"] .duel-status{font-size:27px}
 .mancala-orientation{font-size:10px;gap:4px}.mancala-flow{display:none}
 .mancala-jade{order:2}.mancala-sun{order:1}
 .mancala-jade::after{content:' ↑'}.mancala-sun::after{content:' ↓'}
 .mancala-tray{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:60px repeat(6,64px) 60px;gap:9px 22px;padding:18px 24px;border-radius:58px;max-width:390px;width:100%;margin:0 auto}
 .mancala-row{display:contents}
 .mancala-row .duel-cell{grid-row:var(--pit-row);grid-column:1;min-height:64px;padding:9px 5px 5px;display:grid;grid-template-columns:1fr 30px;border-radius:44%;gap:0}
 .mancala-row .duel-cell[data-owner="2"]{grid-column:2}
 .mancala-tray .mancala-store{grid-row:1;grid-column:1/3;min-height:60px;flex-direction:row;align-items:center;justify-content:space-between;padding:9px 18px;border-radius:45%;gap:8px}
 .mancala-tray .mancala-store[data-owner="1"]{grid-row:8;grid-column:1/3}
 .mancala-store .mancala-pocket-label{position:static;max-width:60px;font-size:11px;padding:0}
 .mancala-store .mancala-seeds{min-height:30px;max-height:38px;width:40%;margin:0}
 .mancala-store .mancala-count{font-size:30px;margin:0}
 .mancala-row .mancala-count{font-size:22px;margin:6px 3px 0 0}
 .mancala-seeds{min-height:34px;max-height:40px;margin-top:3px}
 .mancala-seeds i{width:8px;height:11px}
 .mancala-pocket-label{font-size:9px;top:5px}
 .mancala-action{position:sticky;bottom:8px;z-index:5;flex-direction:column;align-items:stretch;padding:13px;gap:10px;margin-top:2px;background:#17392f;box-shadow:0 -6px 22px #10292088}
 .mancala-action strong{font-size:22px}.mancala-action p{font-size:14px}
 .mancala-board-foot{font-size:10px;flex-wrap:wrap}
 body[data-game$="-mancala"] .duel-side{grid-template-columns:minmax(0,1fr)}
 body[data-game="online-mancala"] #pDuel[data-phase="lobby"] .duel-side{order:-1;border-top:0;border-bottom:1px solid #c5d0b52b;padding:0 0 18px}
 .mancala-guide ol{grid-template-columns:1fr;gap:18px}
 .mancala-guide h3{font-size:26px!important}
}
@media(prefers-reduced-motion:reduce){.mancala-row .duel-cell{transition:none!important;transform:none!important}}
@media(forced-colors:active){.mancala-tray,.mancala-row .duel-cell,.mancala-tray .mancala-store,.mancala-action{background:Canvas;border:2px solid CanvasText;box-shadow:none;color:CanvasText}.mancala-tray [data-selected="true"],.mancala-tray [data-landing="true"]{outline:3px solid Highlight;box-shadow:none}.mancala-tray .mancala-route{background:Highlight;color:HighlightText}.mancala-seeds i{background:CanvasText;box-shadow:none}.mancala-pocket-label,.mancala-count{color:CanvasText;text-shadow:none}}
/* The sowing hand follows the real counterclockwise route, one seed per landing. */
.mancala-flying-seed{position:absolute;z-index:8;pointer-events:none;width:14px;height:19px;border-radius:46% 60% 48% 55%;background:radial-gradient(ellipse at 25% 20%,#fffbd5,#efc36a 55%,#9c6024);box-shadow:0 4px 7px #170e0ba0,inset 1px 1px #fff2c5;transform:translate(-50%,-50%) rotate(-25deg)}
.mancala-flying-seed[data-batch="true"]{width:auto;height:auto;min-width:32px;padding:8px;border-radius:50%;font:700 15px/1 var(--font-mono);color:#392716;transform:translate(-50%,-50%)}
.mancala-tray [data-sowing="true"]{outline:3px solid #ffe4a3!important;outline-offset:3px;box-shadow:inset 0 6px 12px #20150db0,0 0 24px #f6cd6f55}
.mancala-tray [data-capturing="true"]{outline:3px solid #b6f6d1!important;outline-offset:3px}
.duel-board.mancala[data-sowing="true"] .mancala-sow:disabled{color:#ffe6b2;background:#e3bd6b18;border-color:#e2c18488;font-variant-numeric:tabular-nums}
@media(prefers-reduced-motion:reduce){.mancala-flying-seed{display:none}.mancala-tray [data-sowing="true"],.mancala-tray [data-capturing="true"]{box-shadow:none}}
@media(forced-colors:active){.mancala-flying-seed{background:Highlight;color:HighlightText}.mancala-tray [data-sowing="true"],.mancala-tray [data-capturing="true"]{outline-color:Highlight!important}}
/* Pace, visual replay and a literal capture route keep the harvest readable. */
.mancala-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:-4px}
.mancala-toolbar label{display:flex;align-items:center;gap:10px;font:12px/1.4 var(--font-body,sans-serif);color:#ced9c5}
body[data-game$="-mancala"] .mancala-toolbar select{min-height:44px;max-width:180px;border:1px solid #b9c9a64d;border-radius:10px;background:#12352d;color:#f7dfab;font:600 14px var(--font-body,sans-serif);padding:8px 30px 8px 12px;cursor:pointer}
body[data-game$="-mancala"] .mancala-toolbar option{background:#12352d;color:#f7dfab}
body[data-game$="-mancala"] .mancala-replay{min-height:44px;font-size:13px;border-radius:10px;padding:9px 14px;color:#e5dfbe;background:#13372e;border-color:#b9c9a64d}
body[data-game$="-mancala"] .mancala-toolbar :disabled{opacity:.65;cursor:default}
.mancala-flight-layer{position:absolute;inset:0;pointer-events:none;z-index:8}
.mancala-flying-seed[data-capture="true"]{width:16px;height:22px;background:radial-gradient(ellipse at 28% 20%,#ffffe8,#ffe291 48%,#b57d34);box-shadow:0 3px 7px #16100cb3,0 0 8px #ffdc9780}
.mancala-capture-link{position:absolute;height:3px;background:repeating-linear-gradient(90deg,#d5ffd9 0 7px,transparent 7px 13px);transform-origin:0 50%;z-index:6;pointer-events:none;filter:drop-shadow(0 1px 2px #172b21)}
.mancala-capture-link::after{content:'';position:absolute;right:0;top:-5px;border-left:13px solid #d5ffd9;border-top:6px solid transparent;border-bottom:6px solid transparent}
.mancala-capture-tag{position:absolute;top:-12px;left:50%;transform:translateX(-50%);z-index:9;white-space:nowrap;border-radius:6px;background:#173e30;color:#e7ffdc;font:700 11px/1.2 var(--font-mono);padding:5px 7px;box-shadow:0 2px 6px #101b14a0}
.mancala-capture-tag:empty{display:none}
.mancala-tray [data-capture-preview="true"]{outline:3px solid #b4edc7!important;outline-offset:3px}
.mancala-tray [data-capture-store="true"]{outline:3px solid #ffe1a0!important;outline-offset:4px;box-shadow:inset 0 6px 12px #20150db0,0 0 22px #f5d67c70}
.duel-board.mancala[data-phase="capture"] .mancala-action{background:#224637;border-color:#c5edaa;box-shadow:0 0 0 2px #d8fdb414}
.duel-board.mancala[data-phase="capture"] .mancala-action strong{font:700 28px/1.2 Georgia,serif;color:#fff0b4}
@media(max-width:600px){.mancala-toolbar{gap:8px;align-items:end}.mancala-toolbar label{display:grid;gap:5px;font-size:12px}.mancala-toolbar select{width:136px}.mancala-replay{max-width:140px}.mancala-capture-tag{font-size:10px;padding:4px}.duel-board.mancala[data-phase="capture"] .mancala-action strong{font-size:25px}}
@media(prefers-reduced-motion:reduce){.mancala-capture-link{filter:none}}
@media(forced-colors:active){.mancala-capture-link{background:Highlight;filter:none}.mancala-capture-link::after{border-left-color:Highlight}.mancala-capture-tag{background:Highlight;color:HighlightText;box-shadow:none}.mancala-tray [data-capture-store="true"],.mancala-tray [data-capture-preview="true"]{outline-color:Highlight!important}}
@media(max-width:600px){
 .mancala-tray{grid-template-rows:54px repeat(6,56px) 54px;row-gap:8px;scroll-margin-bottom:80px}
 .mancala-row .duel-cell{min-height:56px}
 .mancala-tray .mancala-store{min-height:54px}
 .duel-board.mancala[data-sowing="true"] .mancala-sow{display:none}
}

/* Shared material definitions: shop previews use the same finishes as the actual table. */
[data-board-theme="moonstone"]{--item-board:radial-gradient(ellipse at 20% 0,#bceef855,transparent 70%),repeating-linear-gradient(25deg,#e3efff12 0 2px,#12183008 3px 7px),linear-gradient(125deg,#5b647e,#9ba7bc 45%,#49556f);--item-edge:#c9dcef;--item-depth:#35455f;--item-pocket:radial-gradient(ellipse at 50% 80%,#435b70,#1d334c 65%,#11243a);--item-rim:#668598;--item-shine:#d3eaff80}
[data-board-theme="rosewood"]{--item-board:repeating-linear-gradient(4deg,#efae5a10 0 2px,#270b090c 3px 6px),radial-gradient(ellipse at 18% 0,#f7af6255,transparent 65%),linear-gradient(125deg,#7b3434,#ad5c42 45%,#4d2028);--item-edge:#e4ac75;--item-depth:#4b2020;--item-pocket:radial-gradient(ellipse at 50% 80%,#6c3328,#341e22 65%,#200f18);--item-rim:#a66148;--item-shine:#ffd3a580}
[data-board-theme="jade"]{--item-board:repeating-linear-gradient(145deg,#b9ffd219 0 2px,transparent 3px 34px),radial-gradient(ellipse at 20% 0,#c0ffcf88,transparent 70%),linear-gradient(125deg,#1b705e,#66b794 45%,#24554b);--item-edge:#b4e4b3;--item-depth:#183f36;--item-pocket:radial-gradient(ellipse at 50% 80%,#2c6551,#123c33 65%,#072a25);--item-rim:#7db794;--item-shine:#d4ffd080}
[data-board-theme="obsidian"]{--item-board:repeating-linear-gradient(125deg,transparent 0 55px,#d9af5c33 56px,#d9af5c0a 58px,transparent 60px 130px),radial-gradient(ellipse at 20% 0,#8d839955,transparent 65%),linear-gradient(125deg,#252234,#4c4354 45%,#171723);--item-edge:#dbb768;--item-depth:#171521;--item-pocket:radial-gradient(ellipse at 50% 80%,#393142,#181723 65%,#0d111c);--item-rim:#aa8f59;--item-shine:#ffe5a080}
[data-board-theme]:not([data-board-theme=""]) .mancala-tray,[data-board-theme]:not([data-board-theme=""]) .shop-board-art{background:var(--item-board);border-color:var(--item-edge);box-shadow:inset 0 0 0 4px #15273555,inset 0 8px 12px #ffffff18,0 7px var(--item-depth),0 11px #10151d,0 18px 28px #05191260}
[data-board-theme]:not([data-board-theme=""]) .mancala-tray .duel-cell,[data-board-theme]:not([data-board-theme=""]) .mancala-store,[data-board-theme]:not([data-board-theme=""]) .shop-preview-pit{background:var(--item-pocket);border-color:var(--item-rim);box-shadow:inset 0 7px 12px #061426b0,0 2px var(--item-shine)}
[data-piece-theme="pearl"]{--item-seed:radial-gradient(circle at 30% 22%,#ffffff,#fff1da 38%,#d3b5c9 75%,#96758b);--item-seed-alt:radial-gradient(circle at 30% 22%,#ffffff,#ffe0df 38%,#d0a6bc 75%,#92718d);--item-seed-shape:50%;--item-seed-shadow:inset 1px 1px #fff,1px 3px 3px #160d0ca0}
[data-piece-theme="aurora"]{--item-seed:conic-gradient(from 25deg,#d8fff5,#27a99d,#94ffe2,#4874af,#c5fff2);--item-seed-alt:conic-gradient(from 25deg,#ffe7ff,#b2439a,#ddbbff,#7855b8,#ffe3fc);--item-seed-shape:28%;--item-seed-shadow:inset 1px 1px #e0fffa,1px 3px 3px #160d0ca0,0 0 5px #66ffd533}
[data-piece-theme="ember"]{--item-seed:radial-gradient(ellipse at 30% 20%,#ffedc2,#ffb034 40%,#d74a25 75%,#6c281f);--item-seed-alt:radial-gradient(ellipse at 30% 20%,#fffbd6,#ffd674 40%,#dc7b2b 75%,#713427);--item-seed-shape:38% 58% 45% 60%;--item-seed-shadow:inset 1px 1px #ffe6a6,1px 3px 3px #160d0ca0,0 0 6px #ff8a2540}
[data-piece-theme="starlight"]{--item-seed:linear-gradient(140deg,#fffbe1,#ffd066 52%,#d78b29);--item-seed-alt:linear-gradient(140deg,#efffff,#8affdf 52%,#369caa);--item-seed-shape:0;--item-seed-shadow:none}
[data-piece-theme]:not([data-piece-theme=""]) .mancala-seeds i,[data-piece-theme]:not([data-piece-theme=""]) .mancala-flying-seed:not([data-batch="true"]),[data-piece-theme]:not([data-piece-theme=""]) .shop-piece{background:var(--item-seed);border-radius:var(--item-seed-shape);box-shadow:var(--item-seed-shadow)}
[data-piece-theme]:not([data-piece-theme=""]) .mancala-seeds i:nth-child(3n),[data-piece-theme]:not([data-piece-theme=""]) .shop-piece:nth-child(3n){background:var(--item-seed-alt)}
[data-piece-theme="pearl"] .mancala-seeds i{height:10px;width:10px}
[data-piece-theme="starlight"] .mancala-seeds i,[data-piece-theme="starlight"] .shop-piece,[data-piece-theme="starlight"] .mancala-flying-seed:not([data-batch="true"]){clip-path:polygon(50% 0,63% 34%,100% 38%,73% 62%,82% 100%,50% 79%,18% 100%,27% 62%,0 38%,37% 34%);width:12px;height:13px}
.mancala-shop-link{font:600 13px/1.3 var(--font-body,sans-serif);color:#f7dfab;min-height:44px;display:inline-flex;align-items:center;gap:6px;text-underline-offset:4px;white-space:nowrap}
.mancala-toolbar{flex-wrap:wrap}.mancala-toolbar .mancala-shop-link{margin-left:auto}
@media(max-width:600px){.mancala-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mancala-toolbar label{min-width:0}.mancala-toolbar .mancala-replay,.mancala-toolbar select{max-width:none!important;width:100%!important}.mancala-toolbar .mancala-shop-link{grid-column:1/-1;order:3;margin-left:0;width:100%;justify-content:center;border:1px solid #b9c9a64d;border-radius:10px;background:#13372e}}
@media(forced-colors:active){[data-board-theme] .mancala-tray,[data-board-theme] .mancala-tray .duel-cell,[data-board-theme] .mancala-store,[data-board-theme] .shop-board-art,[data-board-theme] .shop-preview-pit{background:Canvas;border-color:CanvasText;box-shadow:none}[data-piece-theme] .mancala-seeds i,[data-piece-theme] .shop-piece,[data-piece-theme] .mancala-flying-seed{background:CanvasText;box-shadow:none}.mancala-shop-link{color:LinkText}}

/* Campaign maps inherit the platform controls; each chapter has its own landscape color. */
.panel.campaign-panel { background:linear-gradient(135deg,#0d1424f5,#1b1233f5); padding:24px 24px 44px; }
.campaign-shell { --chapter-accent:var(--af-gold); width:min(1180px,100%); min-width:0; color:var(--af-cream); font:16px/1.5 var(--af-font-body); }
.campaign-shell h2,.campaign-shell h3,.campaign-shell p { margin:0; }
.campaign-hero h2 { font:800 clamp(26px,4vw,44px)/1.12 var(--af-font-body); letter-spacing:-.025em; margin:8px 0 14px; }
.campaign-hero>p:not(.campaign-kicker) { max-width:760px; color:var(--af-muted); }
.campaign-kicker { font:600 11px/1.5 var(--af-font-mono); letter-spacing:.13em; color:var(--chapter-accent); }
.campaign-save { font:500 12px/1.5 var(--af-font-mono); margin-top:12px!important; color:var(--af-muted); }
.campaign-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.campaign-brief { margin:24px 0; padding:20px 24px; border:1px solid var(--af-edge); border-left:4px solid var(--chapter-accent); border-radius:16px; background:var(--af-glass); box-shadow:var(--af-shadow); }
.campaign-brief h3 { font-size:25px; margin:4px 0 8px; }
.campaign-brief .btn { margin-top:16px; }
.campaign-objective { font:500 12px/1.7 var(--af-font-mono); margin-top:10px!important; color:var(--af-muted); }
.campaign-chapters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.campaign-chapter { position:relative; min-width:0; overflow:hidden; padding:20px 16px 16px; border:1px solid var(--af-edge); border-radius:18px; background:linear-gradient(150deg,color-mix(in srgb,var(--chapter-accent) 13%,#15102f),#15102f 70%); box-shadow:var(--af-shadow); }
.campaign-chapter:before { content:''; position:absolute; width:130px; height:130px; border:1px solid var(--chapter-accent); border-radius:50%; top:-85px; right:-30px; opacity:.35; }
.campaign-chapter-number { color:var(--chapter-accent); font:400 30px/1 var(--af-font-display); }
.campaign-chapter h3 { font-size:20px; margin:12px 0 8px; }
.campaign-chapter>p { font-size:14px; color:var(--af-muted); min-height:64px; }
.campaign-chapter .campaign-mechanic { color:var(--chapter-accent); font:600 11px/1.6 var(--af-font-mono); min-height:38px; margin:14px 0; }
.campaign-missions { display:grid; gap:8px; }
.campaign-mission { display:grid; grid-template-columns:25px 1fr; gap:2px 8px; width:100%; min-height:68px; padding:12px; border:1px solid var(--af-edge); border-radius:10px; text-align:left; color:var(--af-cream); background:var(--af-glass-deep); font:600 14px/1.3 var(--af-font-body); cursor:pointer; }
.campaign-mission>span { grid-row:span 2; font:600 12px/1.8 var(--af-font-mono); color:var(--chapter-accent); }
.campaign-mission strong { font-weight:600; }
.campaign-mission small { color:var(--af-muted); font-size:11px; }
.campaign-mission:disabled { opacity:.5; cursor:default; }
.campaign-mission[aria-pressed=true] { border-color:var(--chapter-accent); box-shadow:inset 3px 0 var(--chapter-accent); }
.campaign-mission:hover:not(:disabled) { background:#33254a; }
.campaign-result { max-width:750px; margin:40px auto; padding:32px; background:var(--af-glass); border:1px solid var(--af-edge); border-radius:var(--af-radius); box-shadow:var(--af-shadow); }
.campaign-result h2 { font:800 clamp(25px,5vw,40px)/1.15 var(--af-font-body); margin:16px 0; }
.campaign-medals { color:var(--chapter-accent); font-size:25px; letter-spacing:4px; }
.campaign-goals { padding:0; list-style:none; line-height:2; margin:20px 0; }
.goal-clear { color:var(--af-mint); }.goal-missed { color:var(--af-coral); }
.campaign-back { position:absolute; z-index:3; right:16px; bottom:16px; }
@media(max-width:960px) { .campaign-chapters { grid-template-columns:repeat(2,minmax(0,1fr)); }.campaign-chapter>p { min-height:42px; } }
@media(max-width:520px) { .panel.campaign-panel { padding:20px 12px 40px; }.campaign-chapters { grid-template-columns:1fr; }.campaign-brief { padding:16px; }.campaign-result { margin:12px 0; padding:22px 16px; }.campaign-actions .btn { flex:1 1 140px; }.campaign-back { font-size:11px; bottom:9px; right:9px; }.campaign-chapter>p { min-height:0; } }
@media(prefers-reduced-transparency:reduce) { .panel.campaign-panel { background:#15102f; } }
@media(forced-colors:active) { .campaign-mission,.campaign-chapter,.campaign-brief { border:1px solid CanvasText; }.campaign-mission[aria-pressed=true] { outline:2px solid Highlight; } }
.campaign-chapter-unlock { margin:22px 0!important; padding:16px; border:1px solid var(--chapter-accent); border-radius:12px; background:#ffffff06; color:var(--chapter-accent); }

/* A game is the hero. Actions have hierarchy; reference material is available on demand. */
body[data-game] .entry-panel { background:radial-gradient(ellipse at 15% 30%,color-mix(in srgb,var(--world-accent,var(--game-accent)) 9%,transparent),transparent 65%),#10151f; padding:clamp(18px,4vw,64px); }
body[data-game] .entry-panel .game-entry {
  width:min(1140px,100%); padding:0; gap:0; display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);
  background:var(--world-panel,#211c3b); color:var(--world-text,#fff6df); border:1px solid color-mix(in srgb,var(--world-accent,var(--game-accent)) 30%,#303647);
  border-radius:22px; overflow:clip; box-shadow:0 32px 90px #0006; backdrop-filter:none;
}
.entry-visual { margin:0; position:relative; min-height:440px; overflow:hidden; background:#101624; }
.entry-canvas { display:block; width:100%; height:100%; position:absolute; inset:0; }
.entry-visual::after { content:''; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 60px #0002; }
.entry-preview-label { position:absolute; left:20px; top:20px; padding:7px 10px; border:1px solid #ffffff38; border-radius:6px; background:#10151dd9; color:#fff7df; font:600 10px/1.2 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; }
.entry-visual .result-identity { position:absolute; bottom:22px; left:22px; margin:0; z-index:1; }
.entry-visual .game-logo { width:48px; height:48px; box-shadow:0 6px 22px #0008; }
.entry-copy { padding:clamp(24px,3.4vw,48px); display:flex; flex-direction:column; gap:18px; min-width:0; justify-content:center; }
body[data-game] .entry-copy .entry-kicker { margin:0; color:var(--world-muted,#c5bdd5); font:600 11px/1.5 var(--font-mono); letter-spacing:.13em; text-transform:uppercase; }
body[data-game] .entry-copy h2 { font-size:clamp(30px,3.5vw,48px); line-height:1.08; letter-spacing:-.025em; color:var(--world-text,#fff6df); }
.entry-copy p { margin:0; }
body[data-game] .entry-copy .entry-hook { color:var(--world-muted,#c5bdd5); font:400 16px/1.65 var(--font-body); }
body[data-game] .entry-copy .entry-controls { font:600 13px/1.6 var(--font-body); color:var(--world-text,#fff6df); }
body[data-game] .entry-copy .game-support { font-size:12px; color:var(--world-muted,#c5bdd5); }
.entry-actions { gap:12px; align-items:center; flex-wrap:wrap; }
body[data-game] .entry-actions .entry-play { min-height:56px; padding:15px 28px; font:800 17px/1.3 var(--font-body); border-radius:10px; }
.entry-play::before,.open-game-play::before { content:'▶'; font-size:.7em; display:inline-block; margin-right:12px; }
.entry-actions .status { flex-basis:100%; font-size:12px; }
.entry-actions .linkbtn { margin-left:auto; }
body[data-game] .entry-guide { color:var(--world-text,#fff6df); font:400 14px/1.7 var(--font-body); border-top:1px solid color-mix(in srgb,var(--world-text,#fff6df) 15%,transparent); }
.entry-guide summary,.entry-scores summary { min-height:44px; display:flex; align-items:center; cursor:pointer; font:600 13px/1.5 var(--font-body); list-style:none; gap:12px; }
.entry-guide summary::after,.entry-scores summary::after { content:'+'; margin-left:auto; font:400 20px/1 var(--font-body); }
.entry-guide[open] summary::after,.entry-scores[open] summary::after { content:'−'; }
.entry-guide summary::-webkit-details-marker,.entry-scores summary::-webkit-details-marker { display:none; }
body[data-game] .entry-copy .entry-instructions { font:400 14px/1.7 var(--font-body); color:var(--world-muted,#c5bdd5); margin:5px 0 12px; }
.entry-copy .modes { margin:0; }
.entry-extras { grid-column:1/-1; min-width:0; }
.entry-extras:empty { display:none; }
.entry-extras .intro-market:not([hidden]),.entry-scores { margin:0; padding:16px 26px; background:#101426; color:#ece8f4; border:0; border-top:1px solid #ffffff1f; }
.entry-scores summary { color:#ece8f4; }
.entry-scores .board { margin:8px 0 0; }
.entry-scores:not([open]) { padding-block:3px; }
/* Matchmaking keeps its distinct, honest set of alternatives. */
body[data-game="online-boxing"] #pBoxing .game-entry { background:#112a39; border-color:#47616c; }
#pBoxing .entry-visual { min-height:600px; }
#pBoxing .entry-copy { gap:14px; }
#pBoxing .entry-copy .boxing-options { display:grid; }
#pBoxing .entry-copy #boxQueue { grid-column:1/-1; }
#pBoxing .entry-copy .boxing-options .btn { min-height:48px; }
#pBoxing .entry-copy .fine { font-size:13px; }
#pBoxing .entry-copy>details summary { min-height:44px; }
/* The imported games have a proper entry, then give the whole stage to the game. */
body:is([data-game="progress-knight"],[data-game="a-dark-room"]) #pOpenGame {
  --entry-ink:#f7edd9; --entry-muted:#b6c8bc; --entry-accent:#e7c781; --entry-surface:#102c25; --entry-line:#9bb39235;
  display:grid; align-items:safe center; padding:clamp(18px,4vw,64px); background:radial-gradient(ellipse at 20% 20%,#36593b66,transparent 60%),#091b18; color:var(--entry-ink);
}
body[data-game="a-dark-room"] #pOpenGame { --entry-ink:#f5eddd; --entry-muted:#c5bdaf; --entry-accent:#f1be83; --entry-surface:#252721; --entry-line:#d8c8a935; background:#141713; }
body:is([data-game="progress-knight"],[data-game="a-dark-room"]) #pOpenGame .open-game-shell {
  width:min(1200px,100%); max-width:1200px; margin:0 auto; padding:0; background:var(--entry-surface); color:var(--entry-ink);
  border:1px solid var(--entry-line); border-radius:20px; box-shadow:0 32px 100px #0006; min-width:0;
}
.open-game-entry { display:grid; grid-template-columns:minmax(0,1.14fr) minmax(0,1fr); }
.open-game-cover { margin:0; min-height:520px; position:relative; overflow:hidden; border-radius:20px 0 0 0; background:#20382b; }
.open-game-cover img { display:block; width:100%; height:100%; position:absolute; object-fit:cover; object-position:58% center; }
.open-game-cover::after { content:''; position:absolute; inset:60% 0 0; background:linear-gradient(transparent,#061b15d9); pointer-events:none; }
.open-game-cover figcaption { position:absolute; bottom:20px; left:22px; right:22px; z-index:1; color:#fff5df; font:500 12px/1.5 var(--font-body); text-shadow:0 1px 3px #000; }
.open-game-copy { padding:clamp(28px,4vw,56px); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:22px; min-width:0; }
.open-game-copy .entry-kicker { color:var(--entry-accent); font:600 11px/1.5 var(--font-mono); text-transform:uppercase; letter-spacing:.16em; margin:0; }
body[data-game] #pOpenGame #openGameTitle { display:block; margin:0; color:var(--entry-ink); font:400 clamp(36px,4.5vw,62px)/1.04 Georgia,serif; letter-spacing:-.035em; text-wrap:balance; }
.open-game-pitch { font:400 16px/1.7 var(--font-body); margin:0; color:var(--entry-muted); max-width:36ch; }
.open-game-facts { display:flex; flex-wrap:wrap; gap:8px 18px; color:var(--entry-ink); font:600 11px/1.5 var(--font-body); }
.open-game-facts span+span::before { content:'·'; margin-right:14px; color:var(--entry-accent); }
body[data-game] #pOpenGame .open-game-play { min-height:58px; padding:16px 26px; border:1px solid #fff0bb; border-radius:9px; background:linear-gradient(140deg,#f6df9f,#ddb66b); color:#202b22; font:800 17px/1.4 var(--font-body); box-shadow:0 4px 0 #806139,0 8px 28px #e8c27918; }
body[data-game] #pOpenGame .open-game-play:disabled { background:#385347; border-color:#719381; color:#c6d3c4; box-shadow:none; }
#pOpenGame .open-game-save { margin:-8px 0 0; color:var(--entry-muted); font:400 12px/1.6 var(--font-body); }
#pOpenGame .open-game-byline { margin:5px 0 0; color:var(--entry-muted); font:400 12px/1.6 var(--font-body); }
.open-game-tools { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:8px 24px; border-top:1px solid var(--entry-line); position:relative; }
.open-game-tools a,.open-game-about summary { min-height:44px; display:inline-flex; align-items:center; font:600 12px/1.4 var(--font-body); color:var(--entry-ink); text-decoration:none; cursor:pointer; }
.open-game-tools>a:hover { text-decoration:underline; }
.open-game-about { min-width:0; }
.open-game-about summary { gap:12px; list-style:none; }
.open-game-about summary::before { content:'+'; color:var(--entry-accent); font-size:20px; }
.open-game-about[open] summary::before { content:'−'; }
.open-game-about summary::-webkit-details-marker { display:none; }
.open-game-notes { position:absolute; left:0; right:0; top:100%; padding:22px 26px; z-index:6; color:var(--entry-ink); background:var(--entry-surface); border:1px solid var(--entry-line); border-radius:0 0 16px 16px; box-shadow:0 22px 45px #0005; max-height:45dvh; overflow:auto; }
.open-game-notes p { font:400 14px/1.65 var(--font-body); color:var(--entry-muted); margin:0 0 16px; }
.open-game-links { display:flex; flex-wrap:wrap; gap:4px 22px; }
body:is([data-game="progress-knight"],[data-game="a-dark-room"]) #pOpenGame .open-game-links a { color:var(--entry-accent); font-size:13px; }
.open-game-session { color:var(--entry-muted); font:500 12px/1.5 var(--font-body); margin-right:auto; }
body[data-game] #pOpenGame[data-mode="play"] { padding:0; display:block; overflow:hidden; }
body[data-game] #pOpenGame .open-game-shell[data-mode="play"] { width:100%; height:100%; max-width:none; border:0; border-radius:0; display:grid; grid-template-rows:auto minmax(0,1fr); }
body[data-game] #pOpenGame #openGameArea { margin:0; min-height:0; border-radius:0; overflow:hidden; }
body[data-game] #pOpenGame #openGameArea iframe { height:100%; min-height:0; width:100%; border:0; }
body[data-game] #pOpenGame :is(button,a,summary):focus-visible { outline:3px solid var(--entry-accent); outline-offset:4px; }
@media(max-width:760px) {
  body[data-game] .entry-panel { padding:14px; align-items:start; }
  body[data-game] .entry-panel .game-entry { grid-template-columns:minmax(0,1fr); border-radius:16px; }
  .entry-visual,#pBoxing .entry-visual { min-height:0; height:180px; }
  .entry-preview-label { left:14px; top:14px; font-size:9px; }
  .entry-visual .result-identity { left:auto; right:14px; bottom:14px; }
  .entry-visual .game-logo { width:38px; height:38px; }
  .entry-copy { padding:24px 22px; gap:14px; }
  body[data-game] .entry-copy h2 { font-size:30px; }
  body[data-game] .entry-copy .entry-hook { font-size:15px; }
  .entry-actions .entry-play { flex:1; }
  .entry-actions .status { order:3; }
  .entry-extras .intro-market:not([hidden]),.entry-scores { padding-inline:20px; }
  body:is([data-game="progress-knight"],[data-game="a-dark-room"]) #pOpenGame { padding:14px; align-items:start; }
  .open-game-entry { grid-template-columns:minmax(0,1fr); }
  .open-game-cover { min-height:0; height:220px; border-radius:20px 20px 0 0; }
  .open-game-cover img { object-position:center 45%; }
  .open-game-cover figcaption { bottom:14px; left:18px; font-size:10px; }
  .open-game-copy { padding:26px 24px; gap:18px; }
  body[data-game] #pOpenGame #openGameTitle { font-size:40px; max-width:15ch; }
  .open-game-pitch { font-size:15px; }
  body[data-game] #pOpenGame .open-game-play { width:100%; }
  .open-game-tools { padding-inline:18px; gap:12px; }
  .open-game-session { display:none; }
  .open-game-notes { position:static; padding:12px 0; border:0; box-shadow:none; max-height:none; }
  .open-game-tools:has(.open-game-about[open]) { display:block; }
}
@media(max-height:550px) and (min-width:761px) {
  body[data-game] .entry-panel { align-items:start; padding:16px; }
}
@media(prefers-reduced-motion:no-preference) {
  .entry-play,.open-game-play { transition:transform .16s,box-shadow .16s; }
  .entry-play:hover,.open-game-play:hover { transform:translateY(-1px); }
}
@media(forced-colors:active) {
  body[data-game] .entry-panel .game-entry,body[data-game] #pOpenGame .open-game-shell { border:1px solid CanvasText; }
  body[data-game] #pOpenGame .open-game-play { color:ButtonText; background:ButtonFace; border-color:ButtonText; }
  .entry-preview-label,.open-game-cover figcaption { color:CanvasText; background:Canvas; text-shadow:none; }
}
/* A deliberate visual vocabulary for each native world, including the older cabinets. */
body[data-game="lane"]{--world-panel:#13283df5;--world-text:#e9f3ee;--world-muted:#b6c9d5;--world-accent:#f0c471;--world-font:var(--font-mono)}
body[data-game="glider"]{--world-panel:#163b49f5;--world-text:#fff2d4;--world-muted:#c0d8d6;--world-accent:#f4d08e;--world-font:Georgia,serif}
body[data-game="puffin"]{--world-panel:#442b36f5;--world-text:#fff0d5;--world-muted:#e4bcc1;--world-accent:#ffc6a0;--world-font:'Trebuchet MS',sans-serif}
body[data-game="hop"]{--world-panel:#2d3449f5;--world-text:#f7eed3;--world-muted:#c4c9d6;--world-accent:#e8d18d;--world-font:'Trebuchet MS',sans-serif}
body[data-game="spells"]{--world-panel:#302640f5;--world-text:#ffedda;--world-muted:#d8bed9;--world-accent:#d4b3fa;--world-font:Georgia,serif}
body[data-game="pew"]{--world-panel:#142b39f5;--world-text:#f5ecd7;--world-muted:#b4d2d6;--world-accent:#f8d789;--world-font:var(--font-mono)}
body[data-game="notes"]{--world-panel:#f0e7d4f5;--world-text:#25364c;--world-muted:#465b65;--world-accent:#e9bd6b;--world-font:Georgia,serif}
body[data-game="drag"]{--world-panel:#38242bf5;--world-text:#ffe7cf;--world-muted:#dfb9ba;--world-accent:#ffa883;--world-font:Impact,sans-serif}
body[data-game="colors"]{--world-panel:#fff0d6f5;--world-text:#243644;--world-muted:#53606a;--world-accent:#f5bdca;--world-font:'Trebuchet MS',sans-serif}
body[data-game="rope"]{--world-panel:#23352ef5;--world-text:#faf0ca;--world-muted:#bfd1ba;--world-accent:#e9d783;--world-font:Georgia,serif}
body[data-game="bubble"]{--world-panel:#123a44f5;--world-text:#e3f9ed;--world-muted:#b5d4d7;--world-accent:#b2edd7;--world-font:'Trebuchet MS',sans-serif}
body[data-game="lanterns"]{--world-panel:#302b32f5;--world-text:#ffebcc;--world-muted:#ddc4b6;--world-accent:#f2c88c;--world-font:Georgia,serif}
body[data-game="chop"]{--world-panel:#282b49f5;--world-text:#fff0d9;--world-muted:#c6c9e2;--world-accent:#e8c46c;--world-font:'Arial Black',sans-serif}
body[data-game="robot"]{--world-panel:#19343df5;--world-text:#e0f4ed;--world-muted:#b5d2d5;--world-accent:#a6dedb;--world-font:var(--font-mono)}
body[data-game="math"]{--world-panel:#f2ecd7f5;--world-text:#243c38;--world-muted:#52695f;--world-accent:#d5c688;--world-font:'Trebuchet MS',sans-serif}
body[data-game="mask"]{--world-panel:#493044f5;--world-text:#fff0df;--world-muted:#e6bfd9;--world-accent:#fac1dc;--world-font:Georgia,serif}
body[data-game="munch"]{--world-panel:#233e33f5;--world-text:#f5efca;--world-muted:#c4d5b5;--world-accent:#bee9ad;--world-font:'Trebuchet MS',sans-serif}
body[data-game="pilot"]{--world-panel:#152c3df5;--world-text:#e6f5fc;--world-muted:#b3d0de;--world-accent:#a9d9ef;--world-font:var(--font-mono)}
body[data-game="point"]{--world-panel:#372c40f5;--world-text:#ffe8e6;--world-muted:#dac2dc;--world-accent:#f1b9d6;--world-font:Impact,sans-serif}
body[data-game="dragon"]{--world-panel:#422c25f5;--world-text:#fff0d7;--world-muted:#e1c4b3;--world-accent:#ffc58d;--world-font:Georgia,serif}
body[data-game="captain"]{--world-panel:#163b4bf5;--world-text:#fff1cd;--world-muted:#c2d9d9;--world-accent:#e9cd87;--world-font:Georgia,serif}
body[data-game="shoutoff"]{--world-panel:#312c3cf5;--world-text:#fff0d4;--world-muted:#d5c1d6;--world-accent:#e9c47c;--world-font:Impact,sans-serif}
body[data-game="pong"]{--world-panel:#143b37f5;--world-text:#e9f8dd;--world-muted:#bfd6c5;--world-accent:#d8e79b;--world-font:var(--font-mono)}
body[data-game="tide-dash"]{--world-panel:#fff0d0f5;--world-text:#174b56;--world-muted:#3b6067;--world-accent:#f4d28d;--world-font:Georgia,serif;--world-radius:18px}
body[data-game="flux-parry"]{--world-panel:#103332f5;--world-text:#dff9e9;--world-muted:#bbd1c4;--world-accent:#9ce9dd;--world-font:var(--font-mono);--world-radius:6px}
body[data-game="lantern-keeper"]{--world-panel:#31252df5;--world-text:#ffebd0;--world-muted:#dec6c1;--world-accent:#ffd1a1;--world-font:Georgia,serif;--world-radius:12px}
body[data-game="glacier-glide"]{--world-panel:#dff5fcf5;--world-text:#183e54;--world-muted:#355d6f;--world-accent:#f3d391;--world-font:'Trebuchet MS',sans-serif;--world-radius:16px}
body[data-game="aurora-weave"]{--world-panel:#15363af5;--world-text:#dcfff0;--world-muted:#b9d8cd;--world-accent:#a2f0cc;--world-font:Georgia,serif;--world-radius:20px}
body[data-game] .entry-copy h2{font-family:var(--world-font,var(--font-display))}
body[data-game] .entry-copy .ai-status{color:var(--world-text,#fff6df);font:500 12px/1.6 var(--font-body);background:color-mix(in srgb,var(--world-text,#fff6df) 5%,transparent);padding:10px 12px;border-radius:8px}
body[data-game] .entry-copy :is(.status,.fine){color:var(--world-muted,#c5bdd5)}
/* Lite mode removes costly glass; it must preserve each world's opaque palette. */
html.lite body[data-game] .entry-panel .game-entry{background:var(--world-panel,#211c3b)}

/* 3D worlds: the WebGL canvas under the game canvas, and the on-screen controls (js/three-kit.js). */
.gl3d { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.gl3d[hidden] { display: none; }
.world3d-canvas { touch-action: none; cursor: grab; }
.world3d-canvas:active { cursor: grabbing; }
.pad3d { position: absolute; inset: 0; pointer-events: none; z-index: 3; }
.pad3d[hidden] { display: none; }
.pad3d button { pointer-events: auto; touch-action: none; user-select: none; -webkit-user-select: none; }
.pad3d-pause { position: absolute; top: 12px; right: 14px; }
.pad3d-btn { position: absolute; display: grid; place-items: center; border-radius: 50%; border: 3px solid #1a1540; box-shadow: 0 4px 0 #1a1540, 0 0 0 2px #fff8e633 inset; font: 400 11px var(--font-display); letter-spacing: .04em; color: var(--night); cursor: pointer; opacity: .9; }
.pad3d-btn:active { transform: translateY(3px); box-shadow: 0 1px 0 #1a1540; }
.pad3d-jump { right: max(18px, env(safe-area-inset-right, 0px)); bottom: max(26px, env(safe-area-inset-bottom, 0px)); width: 84px; height: 84px; background: var(--signal); }
.pad3d-action { right: calc(max(18px, env(safe-area-inset-right, 0px)) + 96px); bottom: max(40px, env(safe-area-inset-bottom, 0px)); width: 66px; height: 66px; background: var(--spark); }
@media (max-height: 500px) and (orientation: landscape) {
  .pad3d-jump { width: 70px; height: 70px; bottom: 14px; }
  .pad3d-action { width: 56px; height: 56px; bottom: 24px; right: calc(max(18px, env(safe-area-inset-right, 0px)) + 80px); }
}

.pad3d-sneak { right: max(18px, env(safe-area-inset-right, 0px)); bottom: max(40px, env(safe-area-inset-bottom, 0px)); width: 74px; height: 74px; background: var(--ice); }
.hush-skip { position: absolute; top: 12px; left: 14px; z-index: 3; }
.hush-skip[hidden] { display: none; }
@media (max-height: 500px) and (orientation: landscape) { .pad3d-sneak { width: 62px; height: 62px; bottom: 24px; } }

.tycoon-menu{margin:16px 0;padding-top:12px;border-top:1px solid #b4cee344}
.tycoon-menu>p{margin:8px 0;font-size:13px}

/* A factory map, never a new-game / level reset. */
.tycoon-map-button{position:absolute;left:12px;top:12px;z-index:4;min-height:44px}
.tycoon-map-button[hidden],.tycoon-map[hidden]{display:none}
.tycoon-map{position:absolute;inset:0;z-index:7;overflow:auto;padding:20px;background:#111a2eef}
.tycoon-map-card{width:min(1100px,100%);margin:auto;min-width:0}
.tycoon-map-card h2{font-size:clamp(24px,4vw,38px)}
.tycoon-inventory{padding:12px;background:#121c31;border:1px solid #a4c4d655;border-radius:12px;font:500 13px/1.7 var(--font-mono);overflow-wrap:anywhere}
.tycoon-districts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
.tycoon-districts article{display:flex;flex-direction:column;min-width:0;padding:16px;border:1px solid #b4cee344;border-radius:14px;background:#1a293b}
.tycoon-districts h3{font:700 18px/1.3 var(--font-body);margin:0 0 8px;color:#ffe5ad}
.tycoon-districts p{font:500 14px/1.5 var(--font-body);margin:0 0 12px;color:#dde6ee}
.tycoon-districts button{margin-top:auto;white-space:normal;min-height:44px}
@media(max-width:850px){.tycoon-districts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.tycoon-map{padding:12px}.tycoon-districts{grid-template-columns:1fr}.tycoon-map-card{padding:18px}.tycoon-map-card>.btn{width:100%}}
@media(prefers-reduced-transparency:reduce){.tycoon-map{background:#111a2e}}

/* Three distinct game objects: illustrated theatre, an observatory table, a wooden goban. */
body[data-game="mask"]{--world-panel:#eee4d3;--world-text:#33272a;--world-muted:#6a5653;--world-accent:#843d3a;--world-on-accent:#fff3dc;--world-font:Georgia,serif;--world-radius:3px}
body[data-game="mask"] .active-game-title{font:600 clamp(23px,3vw,36px)/1 Georgia,serif;letter-spacing:-.04em;color:#eadac0;text-transform:none}
body[data-game="mask"] .entry-panel{background:#22191c}
body[data-game="mask"] .entry-panel .game-entry{border-radius:3px;border-color:#a1876e;box-shadow:0 20px 70px #0005}
body[data-game="mask"] .entry-visual{background:#482a2c}
body[data-game="mask"] #pIntro .entry-play{border-radius:2px;box-shadow:0 3px #532c2c;border:1px solid #6a2f2d;background:#843d3a;color:#fff3dc}
body[data-game="mask"] #pIntro .entry-copy h2{font-family:Georgia,serif;font-weight:500;font-size:clamp(34px,4vw,54px);letter-spacing:-.045em}
body[data-game="mask"] #introCam{background:#dfd1bb;color:#493b36;border-radius:2px}
body:is([data-game$="-reversi"],[data-game$="-five"]) #pDuel{align-items:safe center;padding:24px}
body[data-game$="-reversi"]{--world-panel:#152734;--world-text:#eee6d2;--world-muted:#b7c6c9;--world-accent:#d4bc86;--world-font:Georgia,serif;--world-radius:2px}
body[data-game$="-five"]{--world-panel:#eee6d5;--world-text:#302d28;--world-muted:#655c50;--world-accent:#693c30;--world-on-accent:#fff4df;--world-font:Georgia,serif;--world-radius:2px}
body[data-game$="-reversi"] .active-game-title{font:500 clamp(21px,2.7vw,34px)/1 Georgia,serif;letter-spacing:.02em;font-style:normal;color:#e2cf9f}
body[data-game$="-five"] .active-game-title{font:500 clamp(24px,3vw,38px)/1 Georgia,serif;letter-spacing:-.045em;font-style:normal;color:#f1e5cc}
body[data-game] #pDuel[data-board="reversi"]{background:#0e1d28;color:#eee6d2}
body[data-game] #pDuel[data-board="five"]{background:#cec2ac;color:#302d28}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-shell{
 width:min(1200px,100%);grid-template-columns:minmax(0,1fr) 250px;gap:40px;padding:28px 34px;border:0;border-radius:0;box-shadow:none;
 background:transparent;--signal:var(--world-accent);--muted:var(--world-muted);--well:var(--world-panel);--font-display:Georgia,serif;
}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-main{gap:12px}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-side{gap:16px;align-self:center;border-left:1px solid #99886a55;padding:12px 0 12px 28px}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-side h3{font:500 32px/1.1 Georgia,serif;letter-spacing:-.035em;color:var(--world-text)}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-side .fine{font-size:14px;line-height:1.65;color:var(--world-muted)}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-top .eyebrow{font:500 11px/1.5 var(--font-mono);letter-spacing:.12em;color:var(--world-muted)}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-badge{border:0;border-radius:0;padding:0;color:var(--world-muted);font-size:12px}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-status{font:500 22px/1.25 Georgia,serif;color:var(--world-text);min-height:28px}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-clock{font-size:12px;color:var(--world-muted)}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-seats{gap:20px;border-bottom:1px solid #a3917055;margin-bottom:8px}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-seats>span{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 10px;border:0;border-bottom:3px solid transparent;border-radius:0;padding:12px 4px 12px 34px;background:transparent;color:var(--world-text);font-family:var(--font-body)}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-seats [data-turn="true"]{border-bottom-color:var(--world-accent)}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-seats span::before{position:absolute;left:0;top:20px;width:22px;height:22px;margin:0;background:radial-gradient(circle at 35% 30%,#596268,#111a20 75%);border:1px solid #7d8586;box-shadow:0 2px 3px #0004}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-seats span:last-child::before{background:radial-gradient(circle at 35% 30%,#fffef5,#cec9b9);border-color:#faf4e2}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-seats small{font:600 10px/1.5 var(--font-mono);letter-spacing:.035em;color:var(--world-muted);grid-column:1;grid-row:1}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-seats strong{font:500 32px/1 Georgia,serif;grid-column:2;grid-row:1/3}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-seats em{font:400 12px/1.3 var(--font-body);font-style:normal;color:var(--world-muted)}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-terms{border:0;border-top:1px solid #99886a55;padding:16px 0 0;border-radius:0;background:transparent}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-side .btn{border-radius:3px;min-height:46px;box-shadow:none}
#pDuel[data-board="reversi"] .duel-side .btn.ghost{background:#1c3442;border-color:#7b8a8c;color:#ede2c8}
#pDuel[data-board="five"] .duel-side .btn.ghost{background:#e8dec9;border-color:#94816a;color:#443a2e}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-rules{color:var(--world-text);font-size:14px}
#pDuel:is([data-board="reversi"],[data-board="five"]) .duel-rules summary{font-size:14px;color:var(--world-text)}
#pDuel:is([data-board="reversi"],[data-board="five"]) .table-caption{display:flex;justify-content:space-between;gap:14px;font:500 11px/1.5 var(--font-mono);color:var(--world-muted);padding-top:3px}
#pDuel .table-caption[hidden]{display:none}
/* A continuous surface, an engraved grid, and separate physical pieces. */
.duel-board:is(.five,.reversi){--board-pad:28px;position:relative;isolation:isolate;width:min(100%,max(320px,calc(100dvh - 285px)),640px);padding:var(--board-pad);border-radius:2px;gap:0;grid-template-rows:repeat(var(--table-size,8),minmax(0,1fr));box-shadow:0 4px 0 #0b151c,0 16px 24px #0004;background-image:url("/game-art/table-surfaces.png");background-size:200% 100%;background-repeat:no-repeat}
.duel-board.reversi{border:3px solid #9d875e;background-position:100% 0;--table-size:8;grid-template-columns:repeat(8,minmax(0,1fr))}
.duel-board.five{background-color:#d5b986;background-blend-mode:luminosity;border:4px solid #9c7444;border-bottom-color:#6f4d2c;background-position:0 0;--table-size:9;grid-template-columns:repeat(9,minmax(0,1fr));box-shadow:0 5px 0 #765637,0 18px 28px #6750334d}
.duel-board:is(.five,.reversi)>.duel-cell{border-radius:0;box-shadow:none;overflow:visible;min-height:0;min-width:0;background:transparent;padding:0}
.duel-board.reversi>.duel-cell{border:solid #d9c69a38;border-width:0 1px 1px 0;background:#132a3bdf}
.duel-board.reversi>.duel-cell:nth-of-type(8n+1){border-left-width:1px}
.duel-board.reversi>.duel-cell[data-i="0"],.duel-board.reversi>.duel-cell[data-i="1"],.duel-board.reversi>.duel-cell[data-i="2"],.duel-board.reversi>.duel-cell[data-i="3"],.duel-board.reversi>.duel-cell[data-i="4"],.duel-board.reversi>.duel-cell[data-i="5"],.duel-board.reversi>.duel-cell[data-i="6"],.duel-board.reversi>.duel-cell[data-i="7"]{border-top-width:1px}
.duel-board.reversi>.duel-cell[data-shade="1"]{background:#102535df}
.duel-board:is(.five,.reversi)>.duel-cell::before,.duel-board:is(.five,.reversi)>.duel-cell::after{display:none;content:none}
.duel-board.reversi>.duel-cell[data-piece="0"][data-legal="true"]::before{content:'';display:block;width:22%;min-width:6px;aspect-ratio:1;background:transparent;border:1px solid #e9d49c;border-radius:50%;box-shadow:none}
.duel-board.reversi>.duel-cell[data-piece="0"][data-legal="true"]:hover{background:#f3da9f19}
.duel-board.reversi>.duel-cell[data-piece="0"][data-legal="true"]:hover::before{width:65%;border-style:dashed}
.duel-board.five>.duel-cell{border:0;background:transparent}
.duel-board.five>.duel-cell:not(:disabled):hover{background:#50351a10;border:0}
.duel-board.five>.duel-cell:focus-visible{outline:2px solid #873d32;outline-offset:-3px}
.duel-board.reversi>.duel-cell:focus-visible{outline:2px solid #f4dfb0;outline-offset:-3px}
.table-lattice{position:absolute;inset:calc(var(--board-pad) + (100% - var(--board-pad)*2)/18);border:1px solid #583e27;background:linear-gradient(90deg,#583e27 1px,transparent 1px),linear-gradient(#583e27 1px,transparent 1px);background-size:12.5% 12.5%;pointer-events:none;z-index:-1}
.table-coordinates{position:absolute;pointer-events:none;display:grid;color:#d4c297;font:500 12px/1 Georgia,serif;align-items:center;justify-items:center}
.five>.table-coordinates{color:#5d4328}
.table-coordinates:is(.top,.bottom){grid-template-columns:repeat(var(--count),1fr);left:var(--board-pad);right:var(--board-pad);height:16px}
.table-coordinates.top{top:5px}.table-coordinates.bottom{bottom:5px}
.table-coordinates:is(.left,.right){grid-template-rows:repeat(var(--count),1fr);top:var(--board-pad);bottom:var(--board-pad);width:16px}
.table-coordinates.left{left:5px}.table-coordinates.right{right:5px}
.table-star{position:absolute;width:5px;height:5px;background:#563b25;border-radius:50%;pointer-events:none}
.table-piece{position:relative;display:block;width:79%;aspect-ratio:1;pointer-events:none;transform-style:preserve-3d}
.table-face,.table-back{position:absolute;inset:0;border-radius:50%;backface-visibility:hidden;border:1px solid #7c8588;background:radial-gradient(circle at 34% 27%,#667076,#263239 40%,#0b131a 85%);box-shadow:inset 0 -2px 3px #0008,0 3px 3px #0006}
[data-piece="2"]>.table-piece>.table-face,[data-piece="1"]>.table-piece>.table-back{background:radial-gradient(circle at 34% 27%,#fffef6,#e9e4d5 58%,#bdb9a9);border-color:#fff8e6;box-shadow:inset 0 -2px 3px #a49d8b80,0 3px 3px #0005}
.table-back{transform:rotateY(180deg)}
.duel-cell[data-last="true"]>.table-piece>.table-face::after{content:'';position:absolute;inset:40%;border:1.5px solid #e4bc74;border-radius:50%}
.duel-cell[data-piece="2"][data-last="true"]>.table-piece>.table-face::after{border-color:#794d32}
.duel-cell[data-winning="true"]>.table-piece{outline:2px solid #9b3b2d;outline-offset:2px;border-radius:50%}
.table-flipping>.table-piece{animation:table-flip .36s ease-in-out both}
.table-arriving>.table-piece{animation:table-place .28s cubic-bezier(.2,.8,.2,1) both}
@keyframes table-flip{from{transform:rotateY(180deg)}to{transform:rotateY(0)}}
@keyframes table-place{from{transform:translateY(-14px) scale(1.04);opacity:.4}to{transform:translateY(0) scale(1);opacity:1}}
body:is([data-game$="-reversi"],[data-game$="-five"]) .entry-panel .game-entry{border-radius:3px}
body:is([data-game$="-reversi"],[data-game$="-five"]) #pIntro .entry-play{border-radius:3px}
@media(max-width:760px){
 body:is([data-game$="-reversi"],[data-game$="-five"]) #pDuel{padding:14px 10px;align-items:start}
 #pDuel:is([data-board="reversi"],[data-board="five"]) .duel-shell{grid-template-columns:1fr;padding:0;gap:26px}
 #pDuel:is([data-board="reversi"],[data-board="five"]) .duel-main{gap:10px}
 #pDuel:is([data-board="reversi"],[data-board="five"]) .duel-side{border-left:0;border-top:1px solid #99886a55;padding:22px 4px 10px;align-self:auto}
 #pDuel:is([data-board="reversi"],[data-board="five"]) .duel-side h3{font-size:26px}
 #pDuel:is([data-board="reversi"],[data-board="five"]) .duel-seats{gap:10px;margin-bottom:5px}
 #pDuel:is([data-board="reversi"],[data-board="five"]) .duel-seats>span{padding:9px 0 9px 28px;gap:2px 6px}
 #pDuel:is([data-board="reversi"],[data-board="five"]) .duel-seats small{font-size:9px}
 #pDuel:is([data-board="reversi"],[data-board="five"]) .duel-seats strong{font-size:28px}
 #pDuel:is([data-board="reversi"],[data-board="five"]) .duel-seats span::before{top:16px;width:19px;height:19px}
 #pDuel:is([data-board="reversi"],[data-board="five"]) .duel-status{font-size:22px}
 .duel-board:is(.five,.reversi){--board-pad:18px;width:min(100%,590px);border-width:3px}
 .table-coordinates{font-size:11px}.table-coordinates:is(.top,.bottom){height:12px}.table-coordinates.top{top:2px}.table-coordinates.bottom{bottom:2px}.table-coordinates:is(.left,.right){width:12px}.table-coordinates.left{left:2px}.table-coordinates.right{right:2px}
 #pDuel:is([data-board="reversi"],[data-board="five"]) .table-caption{font-size:10px;gap:8px}
 body[data-game="mask"] #pIntro .entry-copy h2{font-size:34px}
}
@media(prefers-reduced-motion:reduce){.table-piece{animation:none!important;transform:none!important}.table-back{display:none}}
@media(prefers-reduced-transparency:reduce){.duel-board.reversi>.duel-cell{background:#132b3c}.duel-board.reversi>.duel-cell[data-shade="1"]{background:#102432}}
@media(forced-colors:active){.duel-board:is(.five,.reversi){background:Canvas;border:2px solid CanvasText}.duel-board.reversi>.duel-cell{border:1px solid CanvasText}.table-face{background:CanvasText;border:2px solid CanvasText}[data-piece="2"]>.table-piece>.table-face{background:Canvas;border:3px double CanvasText}.table-lattice{border-color:CanvasText;background-image:linear-gradient(90deg,CanvasText 1px,transparent 1px),linear-gradient(CanvasText 1px,transparent 1px)}.table-coordinates{color:CanvasText!important}.duel-cell[data-winning="true"]{outline:3px solid Highlight}}

.reversi>.table-coordinates span{background:#112735d9;padding:1px 3px}

/* Store of Vibe owns its game world; platform navigation keeps arcade.fun's shared brand. */
body[data-game="store-of-vibe"] .stage{background:#0b1028}
body[data-game="store-of-vibe"] #cv{touch-action:none}
body[data-game="store-of-vibe"] .entry-visual{background:#0b1028;border-color:#62f5ce55}
body[data-game="store-of-vibe"] .entry-kicker{color:#7cf8d2}
body[data-game="store-of-vibe"] .entry-hook{max-width:38ch}
.vibe-entry-options{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px}
.vibe-entry-options .btn{min-height:44px;font-size:14px}
.vibe-entry-options .btn[aria-pressed="true"]{border-color:#7cf8d2;box-shadow:0 0 0 1px #7cf8d2 inset;background:#173d3a;color:#fff6df}
.vibe-entry-note{font-size:13px!important;line-height:1.5!important;color:#c2b8df;margin:0 0 10px}
.vibe-thesis-link{color:#7cf8d2;font-size:14px;display:inline-flex;align-items:center;min-height:44px;gap:5px}
.vibe-hud{position:absolute;inset:0;z-index:4;pointer-events:none;font:600 14px/1.35 Figtree,system-ui,sans-serif;color:#fff6df}
.vibe-hud[hidden],.vibe-reconnect[hidden]{display:none!important}
.vibe-story[hidden],.vibe-reaction[hidden]{display:none!important}
.vibe-story{position:absolute;inset:0;z-index:9;display:grid;place-items:center;padding:16px;background:#080b20dc;pointer-events:auto}
.vibe-story-card{position:relative;width:min(640px,100%);max-height:100%;overflow:auto;border:1px solid #7cf8d288;background:linear-gradient(145deg,#222046,#11172f);box-shadow:0 12px 0 #0006;border-radius:16px;padding:28px;overscroll-behavior:contain}
.vibe-story-card .eyebrow{font:700 12px/1.5 "IBM Plex Mono",monospace;color:#7cf8d2;letter-spacing:.08em;margin:0 0 12px}
.vibe-story-card h2{font:400 clamp(23px,4vw,33px)/1.15 Bungee,system-ui,sans-serif;color:#fff6df;margin:12px 0 18px;max-width:22ch}
.vibe-story-card p{font:500 15px/1.6 Figtree,system-ui,sans-serif;color:#e3dbee;margin:12px 0}
.vibe-story-card .vibe-speaker{color:#ffcf72;font-weight:800;margin:0;padding-right:62px}
.vibe-story-portrait{float:right;width:48px;height:54px;position:relative;border-bottom:8px solid #080e27;margin:0 0 8px 12px}
.vibe-story-portrait::before{content:"";position:absolute;left:8px;top:2px;width:32px;height:24px;background:var(--speaker);box-shadow:0 24px var(--speaker);clip-path:polygon(0 0,100% 0,100% 90%,75% 90%,75% 100%,25% 100%,25% 90%,0 90%)}
.vibe-story-portrait::after{content:"";position:absolute;left:14px;top:11px;width:5px;height:6px;background:#141329;box-shadow:15px 0 #141329,8px 12px #fff6df}
.vibe-story-task{padding:13px 15px;margin:18px 0;background:#090f25;border-left:3px solid #7cf8d2;border-radius:5px}
.vibe-story-task b{color:#7cf8d2;font:700 12px/1.4 "IBM Plex Mono",monospace}.vibe-story-task p{margin:7px 0 0;color:#fff6df;font-weight:650}
.vibe-story-card .btn{min-height:48px}.vibe-story-card .vibe-story-foot{font-size:13px;color:#c2b8df;margin:13px 0 0}
.vibe-reaction{position:absolute;bottom:16px;right:16px;max-width:410px;margin:0;padding:13px 16px;border:1px solid #7cf8d288;border-radius:10px;background:#12162df5;color:#fff6df;font-size:15px;line-height:1.5;box-shadow:0 5px 0 #0006}
.vibe-commons-result{margin:18px 0;padding:16px;background:#11182d;border:1px solid #7cf8d266;border-radius:10px}.vibe-commons-result p{font-size:15px;line-height:1.5}.vibe-commons-result .btn{white-space:normal}
.vibe-top{position:absolute;top:12px;left:14px;right:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}
.vibe-mission{min-width:0;max-width:690px;background:#111529f0;border:1px solid #627a9d80;box-shadow:0 4px 0 #0006;padding:10px 14px;border-radius:8px;pointer-events:auto}
.vibe-mission-kicker{display:flex;align-items:center;gap:9px;color:#7cf8d2;font:700 12px/1.4 "IBM Plex Mono",monospace;letter-spacing:.06em}
.vibe-mission-kicker b{color:#ffbf53;white-space:nowrap}
.vibe-objective{display:block;font-size:14px;font-weight:650;line-height:1.35;margin-top:4px}
.vibe-progress{width:100%;height:5px;display:block;border:0;border-radius:0;margin-top:9px;accent-color:#7cf8d2;background:#28324c}
.vibe-progress::-webkit-progress-bar{background:#28324c}.vibe-progress::-webkit-progress-value{background:#7cf8d2}.vibe-progress::-moz-progress-bar{background:#7cf8d2}
.vibe-tools{display:flex;flex-direction:column;gap:6px;pointer-events:auto}
.vibe-tools .btn{min-height:44px;padding:7px 12px;font-size:13px;background:#15182cf5;color:#fff6df;border:1px solid #7785ad}
.vibe-stats{position:absolute;top:115px;left:14px;display:flex;align-items:center;flex-wrap:wrap;gap:7px;max-width:calc(100% - 110px)}
.vibe-stat{border:1px solid #8a91bb65;background:#12162cf0;border-radius:5px;padding:6px 9px;font:600 13px/1.25 "IBM Plex Mono",monospace;white-space:nowrap}
.vibe-stat strong{color:#ffdf94;font-weight:700}.vibe-stat[data-kind="hearts"] strong{color:#ff8aa6}.vibe-stat[data-kind="vibe"] strong{color:#7cf8d2}
.vibe-market-off{color:#aeb8d7;font-size:12px}
.vibe-bottom{position:absolute;bottom:12px;left:14px;right:14px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.vibe-key-help{max-width:570px;background:#111529ec;border:1px solid #7583aa70;border-radius:6px;padding:9px 12px;font-size:13px;line-height:1.45;pointer-events:auto}
.vibe-key-help b{color:#7cf8d2}.vibe-key-help small{display:block;color:#c2bdd7;font-size:13px;margin-top:3px}
.vibe-touch{display:none;align-items:flex-end;justify-content:space-between;gap:8px;width:100%}
.vibe-joystick{width:112px;height:112px;flex:none;border:2px solid #97bdc788;border-radius:50%;background:#12182be8;position:relative;pointer-events:auto;touch-action:none;box-shadow:0 4px 0 #0006}
.vibe-joystick::before{content:"";position:absolute;inset:21px;border:1px dashed #7cf8d255;border-radius:50%}
.vibe-stick{position:absolute;left:36px;top:36px;width:36px;height:36px;background:#7cf8d2;border-radius:50%;border:2px solid #d5fff0;box-shadow:0 4px 0 #245e64;pointer-events:none;transform:translate(var(--stick-x,0px),var(--stick-y,0px))}
.vibe-touch-actions{display:flex;align-items:flex-end;gap:9px;pointer-events:auto}
.vibe-touch-button{min-width:62px;min-height:62px;border-radius:12px;border:2px solid #b1fff0;background:#214f55;color:#fff6df;font:800 13px Figtree,system-ui,sans-serif;box-shadow:0 4px 0 #061e30;touch-action:none;padding:8px}
.vibe-touch-button[data-action="pulse"]{min-width:76px;min-height:76px;background:#ffd06e;border-color:#fff1b5;color:#33204b;border-radius:50%;box-shadow:0 4px 0 #7d3c53}
.vibe-touch-button:active{transform:translateY(3px);box-shadow:0 1px 0 #061e30}.vibe-touch-button:focus-visible,.vibe-joystick:focus-visible{outline:3px solid #fff6df;outline-offset:4px}
.vibe-mobile-hint{display:none;position:absolute;bottom:137px;left:14px;right:14px;background:#111529ed;border:1px solid #7583aa70;border-radius:5px;padding:7px 9px;font-size:13px;color:#fff6df;text-align:center}
.vibe-reconnect{position:absolute;inset:0;display:grid;place-items:center;background:#090d228c;pointer-events:auto;padding:16px}
.vibe-reconnect-card{max-width:440px;width:100%;padding:28px;border:2px solid #7cf8d2;background:#14162df5;box-shadow:0 10px 0 #0006;border-radius:12px;pointer-events:auto}
.vibe-reconnect-card .eyebrow{color:#7cf8d2}.vibe-reconnect-card h2{font:800 clamp(24px,5vw,38px)/1.15 Bungee,system-ui,sans-serif;color:#fff6df;margin:10px 0}.vibe-reconnect-card p{font-size:15px;line-height:1.6;color:#d0c9e5;margin:12px 0 20px}.vibe-reconnect-card .row{gap:10px}
body[data-game="store-of-vibe"] .feedback-bubble{bottom:84px}
@media(pointer:coarse),(max-width:650px){
 .vibe-touch{display:flex}.vibe-key-help{display:none}.vibe-mobile-hint{display:block}
 .vibe-top{top:8px;left:8px;right:8px;gap:6px}.vibe-mission{padding:9px 10px;border-radius:6px}.vibe-mission-kicker{font-size:11px;letter-spacing:.02em;gap:5px}.vibe-objective{font-size:13px;line-height:1.35}.vibe-tools .btn{padding:5px 8px;font-size:12px;min-width:52px}.vibe-stats{top:119px;left:8px;gap:5px;max-width:calc(100% - 16px)}.vibe-stat{padding:5px 7px;font-size:13px}.vibe-stat[data-kind="score"]{display:none}.vibe-bottom{left:12px;right:12px;bottom:10px}.vibe-mobile-hint{left:8px;right:8px;bottom:135px;font-size:13px;padding:6px 7px}
 body[data-game="store-of-vibe"] .feedback-bubble{bottom:155px}
}
@media(max-height:570px) and (min-width:651px){.vibe-top{top:7px}.vibe-mission{padding:7px 12px}.vibe-stats{top:94px}.vibe-bottom{bottom:8px}.vibe-key-help{padding:6px 10px}.vibe-key-help small{display:none}}
@media(prefers-reduced-transparency:reduce){.vibe-mission,.vibe-stat,.vibe-key-help,.vibe-mobile-hint,.vibe-reconnect-card{background:#12162d}}
@media(forced-colors:active){.vibe-mission,.vibe-stat,.vibe-key-help,.vibe-mobile-hint,.vibe-tools .btn,.vibe-touch-button,.vibe-joystick,.vibe-reconnect-card{background:Canvas;color:CanvasText;border:1px solid CanvasText}.vibe-stick{background:Highlight}.vibe-progress{accent-color:Highlight}}
@media(max-width:650px){
 .vibe-story{padding:8px}.vibe-story-card{padding:18px;border-radius:12px}.vibe-story-card h2{font-size:23px;margin:12px 0}.vibe-story-card p{font-size:14px;line-height:1.5}.vibe-story-card .eyebrow{font-size:11px}.vibe-story-task{padding:10px 12px;margin:14px 0}.vibe-story-card .btn{width:100%;white-space:normal}.vibe-story-card .vibe-story-foot{font-size:13px}.vibe-reaction{left:8px;right:8px;bottom:135px;max-width:none;padding:10px 12px;font-size:14px}.vibe-hud[data-speaking="true"] .vibe-mobile-hint{display:none}
 body[data-game="store-of-vibe"] .entry-visual{height:150px;min-height:150px;max-height:150px;aspect-ratio:auto}
 body[data-game="store-of-vibe"] .entry-copy{padding:17px}
 body[data-game="store-of-vibe"] .entry-copy h2{font-size:clamp(21px,6.9vw,28px)!important;line-height:1.08!important;margin:10px 0}
 body[data-game="store-of-vibe"] .entry-hook{font-size:14px;line-height:1.45;margin:10px 0}
 body[data-game="store-of-vibe"] .entry-kicker{font-size:10px;line-height:1.45}
 body[data-game="store-of-vibe"] .vibe-entry-options,body[data-game="store-of-vibe"] .vibe-entry-note{display:none}
 body[data-game="store-of-vibe"] .entry-controls{font-size:13px;margin:8px 0}
 body[data-game="store-of-vibe"] .entry-actions{margin:12px 0 0}
}

.vibe-story-memory{border-top:1px solid #7cf8d244;margin-top:16px;padding-top:12px}.vibe-story-memory b{font:700 11px/1.4 "IBM Plex Mono",monospace;color:#b59aff}.vibe-story-memory p{font-size:14px;color:#d5d1ec;margin:6px 0}

.vibe-story-portrait i{position:absolute;left:11px;top:29px;width:26px;height:15px;background:var(--speaker);box-shadow:0 5px 0 #263653;z-index:1}.vibe-story-portrait i::after{content:"";position:absolute;left:3px;top:19px;width:7px;height:5px;background:#fff6df;box-shadow:13px 0 #fff6df}

/* Platform controls stay outside the original Eon Bloom document. */
.panel.eon-bloom-host{display:grid;grid-template-rows:auto minmax(0,1fr);place-items:stretch;padding:0;overflow:hidden;background:#071c21}
.eon-bloom-toolbar{display:flex;align-items:center;gap:10px;min-width:0;padding:6px 12px;border-bottom:1px solid var(--af-violet,#b59aff);background:var(--af-glass-deep,#130e2c);color:var(--af-cream,#fff6df)}
.eon-bloom-beta{font:700 12px/1.4 var(--af-font-body,system-ui);color:var(--af-mint,#7cf8d2);white-space:nowrap}
.eon-bloom-save{margin-right:auto;font:400 12px/1.4 var(--af-font-body,system-ui);color:var(--af-muted,#c2b8df)}
.eon-bloom-toolbar .btn{flex:none;min-height:44px;margin:0;white-space:nowrap}
.eon-bloom-viewport{position:relative;min-width:0;min-height:0;overflow:hidden}
.eon-bloom-area,.eon-bloom-area iframe{display:block;width:100%;height:100%;min-width:0;min-height:0;border:0;background:#071c21}
.eon-bloom-status{position:absolute;inset:12px 12px auto;z-index:1;width:fit-content;max-width:calc(100% - 24px);padding:12px 16px;border:1px solid var(--af-violet,#b59aff);border-radius:12px;background:var(--af-glass-deep,#130e2c);color:var(--af-cream,#fff6df);font:400 14px/1.5 var(--af-font-body,system-ui)}
.eon-bloom-host:fullscreen{width:100%;height:100%;background:#071c21}
@media(max-width:600px){.eon-bloom-toolbar{gap:6px;padding-inline:8px}.eon-bloom-save{display:none}.eon-bloom-beta{margin-right:auto;font-size:11px}.eon-bloom-toolbar .btn{padding-inline:10px;font-size:12px}}
@media(forced-colors:active){.eon-bloom-toolbar,.eon-bloom-status{background:Canvas;color:CanvasText;border-color:CanvasText}.eon-bloom-beta,.eon-bloom-save{color:CanvasText}}

/* Lite graphics (js/perf.js) for slower computers: solid panels instead of blurred glass, and no
   looping effects. Everything stays readable and usable; only the extra polish goes. */
html.lite *, html.lite *::before, html.lite *::after, html.lite ::backdrop { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
html.lite body[data-brand="arcade"] :is(.card, .player-dialog, .pov-dialog) { background: #241a49; }
html.lite :is(.onair.rec i, .shelf-head h2, .cab-coin:not(.inserting) .coin-words .ready, .cab-coin:not(.inserting) .coin-mech, .garden-canopy i),
html.lite .replay-button::after, html.lite .foundry-reactor::before { animation: none !important; }

/* The arcade floor is one machine console and a collection of game cabinets.
   Scoped to the floor: game worlds, wallet dialogs and trade pages keep their own UI. */
#pHub { background: linear-gradient(180deg, #100c2970, #100c29d9 700px); }
body[data-panel="pHub"]:not(.voice-active) .listen { display: none; }
#pHub .hub { width: min(1280px, 100%); gap: 32px; padding-top: 24px; }
.floor-console {
  position: relative; display: grid; gap: 14px; min-width: 0; padding: 20px;
  border: 1px solid var(--af-edge); border-radius: 20px 20px 12px 12px;
  background: radial-gradient(ellipse at 80% 0, #7253aa21, transparent 55%), var(--af-glass-deep);
  box-shadow: inset 0 1px #ffffff20, inset 0 -4px #07041b, 0 16px 40px #05021640;
}
.floor-console::before { content: ''; position: absolute; inset: -1px 22px auto; height: 2px; background: linear-gradient(90deg, transparent, var(--af-violet), var(--af-mint), var(--af-gold), transparent); }
#pHub .hero { display: flex; flex-wrap: nowrap; gap: 30px; justify-content: space-between; padding: 0 0 16px; text-align: left; border-bottom: 1px solid #c7afff20; }
#pHub .hero-copy { flex: 1; justify-items: start; gap: 8px; }
.floor-eyebrow { display: flex; align-items: center; gap: 9px; margin: 0; color: var(--af-muted); font: 600 10px/1.5 var(--af-font-mono); letter-spacing: .14em; text-transform: uppercase; }
.floor-eyebrow>span:first-child { width: 6px; height: 6px; border-radius: 50%; background: var(--af-mint); box-shadow: 0 0 9px #7cf8d260; }
.floor-free { margin-left: 5px; padding-left: 14px; border-left: 1px solid var(--af-edge); color: var(--af-mint); }
#pHub .hero-kicker { color: var(--af-cream); font: 400 clamp(22px, 2.2vw, 28px)/1.24 var(--af-font-display); letter-spacing: -.02em; text-shadow: none; text-wrap: initial; }
#pHub .hero-sub { max-width: 90ch; color: var(--af-muted); font: 400 14px/1.55 var(--af-font-body); text-wrap: initial; }
.floor-create { flex: none; display: flex; align-items: center; gap: 14px; padding: 16px 20px; border: 1px solid #b59aff60; border-radius: 12px; color: var(--af-cream); text-decoration: none; background: linear-gradient(135deg, #b59aff19, #100c2950); box-shadow: inset 0 1px #ffffff14, 0 3px #08051d; }
.floor-create>span:first-child { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid #b59aff80; border-radius: 10px; color: var(--af-gold); font-size: 28px; background: #b59aff15; }
.floor-create b { display: block; font: 800 15px/1.4 var(--af-font-body); }
.floor-create small { display: block; margin-top: 3px; color: var(--af-muted); font: 400 12px/1.4 var(--af-font-body); }
.floor-create:hover { border-color: var(--af-gold); background-color: #b59aff14; }
.floor-create:focus-visible { outline: 3px solid var(--af-mint); outline-offset: 4px; }
#pHub .game-types { gap: 0; }
#pHub .shelf-nav { gap: 6px; padding: 0; }
#pHub .shelf-nav .jump { flex: 1 0 auto; min-height: 44px; justify-content: center; gap: 6px; padding: 10px; border: 1px solid #b59aff30; border-radius: 6px; background: linear-gradient(#39305070, #1b1535); color: var(--af-cream); box-shadow: inset 0 1px #ffffff12, 0 3px #08051b; font: 600 11px/1.2 var(--af-font-body); letter-spacing: 0; text-transform: none; }
#pHub .shelf-nav .jump svg { width: 15px; height: 15px; }
#pHub .shelf-nav .jump:hover { border-color: var(--hue); background: color-mix(in srgb, var(--hue) 12%, #1b1535); }
#pHub .shelf-nav .jump:active { transform: translateY(2px); box-shadow: inset 0 1px #ffffff12; }
#pHub .catalog-bar { display: grid; grid-template-columns: minmax(200px, 1fr) auto auto; gap: 14px; }
#pHub .catalog-search input { min-height: 46px; border-radius: 8px; font-size: 15px; padding-left: 14px; }
#pHub .catalog-summary { color: var(--af-muted); font: 400 11px/1.4 var(--af-font-mono); max-width: 32ch; }
#pHub .catalog-toggle { min-height: 46px; border: 1px solid var(--af-edge); border-radius: 8px; background: #29203e; color: var(--af-cream); box-shadow: inset 0 1px #ffffff15, 0 3px #08051b; font: 600 12px/1.2 var(--af-font-body); letter-spacing: 0; text-transform: none; }
#pHub .catalog-toggle.active { color: var(--af-mint); border-color: #7cf8d280; }
#pHub .catalog-filters { background: #0d0921; border-color: #b59aff40; border-radius: 10px; }
#pHub .catalog-filter-foot p { font: 400 12px/1.5 var(--af-font-body); }
#pHub .shelves { gap: 36px; }
#pHub .shelf { gap: 14px; }
#pHub .shelf-head { gap: 8px 12px; padding-bottom: 12px; }
#pHub .shelf-head h2 { color: var(--af-cream); font: 400 22px/1.3 var(--af-font-display); text-shadow: none; animation: none; }
#pHub .shelf-icon svg { width: 24px; height: 24px; }
#pHub .shelf-head::after { height: 1px; opacity: .55; background: linear-gradient(90deg, var(--hue), #b59aff20); box-shadow: none; }
#pHub .shelf-head p { flex-basis: 100%; margin: 0; color: var(--af-muted); font: 400 13px/1.5 var(--af-font-body); }
#pHub .shelf-count { margin-left: auto; border: 0; background: none; padding: 0; color: var(--af-muted); font: 500 11px/1.4 var(--af-font-mono); }
#pHub .cabinets { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
#pHub .cab-slot {
  display: grid; grid-template-rows: 1fr auto auto; min-width: 0; border: 1px solid color-mix(in srgb, var(--hue) 38%, #34294e); border-radius: 16px 16px 10px 10px;
  background: linear-gradient(90deg, #ffffff0b, transparent 5px calc(100% - 5px), #ffffff0b), linear-gradient(160deg, #302442, #181227 65%);
  box-shadow: inset 3px 0 #ffffff07, inset -3px 0 #0004, 0 10px 20px #05021450; transition: transform .18s, box-shadow .18s;
}
#pHub .cab-slot:hover, #pHub .cab-slot:has(:focus-visible) { transform: translateY(-3px); box-shadow: 0 0 0 1px var(--hue), 0 0 24px -12px var(--hue), 0 16px 28px #05021470; }
#pHub .cab { --hue: inherit; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto 1fr auto; gap: 0; min-height: 0; padding: 0; }
#pHub .cab:focus-visible { outline: 3px solid var(--af-mint); outline-offset: 4px; }
#pHub .cab-top { grid-column: auto; grid-row: auto; display: flex; justify-content: start; gap: 9px; min-height: 66px; margin: 6px 6px 0; padding: 10px 42px 10px 10px; border-radius: 10px 10px 3px 3px; background: radial-gradient(ellipse at 50% 0, color-mix(in srgb, var(--hue) 18%, #151025), #110d20); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--hue) 40%, #332947), inset 0 2px #ffffff0c; animation: none; }
#pHub .cab-name { min-width: 0; color: #fff6df; font: 400 16px/1.25 var(--af-font-display); text-shadow: 0 0 14px color-mix(in srgb, var(--hue) 25%, transparent); overflow-wrap: anywhere; }
#pHub .cab-logo { position: static; width: 29px; height: 29px; flex: none; border: 1px solid #ffffff40; border-radius: 7px; box-shadow: 0 2px 6px #0005; }
#pHub .cab-save { position: absolute; z-index: 2; right: 10px; top: 17px; display: grid; place-items: center; width: 44px; min-height: 44px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: #c2b8df; font-size: 0; cursor: pointer; }
#pHub .cab-save::before { content: '☆'; font: 400 24px/1 var(--af-font-body); }
#pHub .cab-save[aria-pressed="true"] { color: var(--af-gold); }
#pHub .cab-save[aria-pressed="true"]::before { content: '★'; }
#pHub .cab-save:hover { background: #b59aff20; }
#pHub .cab-screen { grid-column: auto; grid-row: auto; position: relative; align-self: auto; width: auto; height: auto; aspect-ratio: 16 / 10; margin: 6px 8px 0; padding: 0; border-radius: 5px; overflow: hidden; box-shadow: 0 0 0 2px #080612, 0 0 0 3px #ffffff0c; }
#pHub .cab-screen canvas { border-radius: inherit; }
#pHub .cab-screen::after { inset: 0; border-radius: inherit; background: linear-gradient(125deg, #ffffff0c, transparent 30%), repeating-linear-gradient(0deg, #05020a0a 0 1px, transparent 1px 4px); }
#pHub .cab-best { position: absolute; right: 6px; bottom: 6px; z-index: 1; display: block; max-width: calc(100% - 12px); padding: 5px 7px; border: 1px solid #ffffff30; background: #110b25eb; color: var(--af-cream); text-shadow: none; font: 600 9px/1.3 var(--af-font-mono); letter-spacing: .04em; overflow-wrap: anywhere; }
#pHub .cab-best:empty { display: none; }
#pHub .cab-body { grid-column: auto; grid-row: auto; display: block; padding: 14px 14px 12px; min-width: 0; }
#pHub .cab-tag { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; color: #d3c9e5; font: 400 14px/1.45 var(--af-font-body); overflow: hidden; }
#pHub .cab-deck { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 8px; margin: 0 7px 7px; padding: 12px 9px; border: 1px solid #ffffff12; border-radius: 3px 3px 6px 6px; background: linear-gradient(180deg, #61557450, #191323 65%); box-shadow: inset 0 2px #ffffff0c, 0 3px #090611; }
#pHub .cab-panel { grid-column: 1; grid-row: 1; display: flex; width: auto; height: 20px; gap: 6px; margin: 0; padding: 0; clip-path: none; background: none; }
#pHub .cab-panel .stick { width: 15px; height: 15px; }
#pHub .cab-panel .knob { width: 8px; height: 8px; }
#pHub .cab-panel .knob:nth-child(2) { margin-left: 3px; }
#pHub .cab-hint { grid-column: 1; grid-row: 2; color: var(--af-muted); font: 500 11px/1.3 var(--af-font-mono); }
#pHub .cab-coin { display: flex; grid-column: 2; grid-row: 1 / 3; gap: 8px; margin: 0; padding: 7px 10px 7px 6px; }
#pHub .coin-words { font-size: clamp(7px, .58vw, 8px); letter-spacing: 0; }
#pHub .coin-mech { width: 25px; height: 32px; }
#pHub .cab-rank { display: block; padding: 0 14px 9px; text-align: left; color: var(--af-muted); font: 500 10px/1.5 var(--af-font-mono); }
#pHub .cab-rank:empty { display: none; }
/* A restrained market readout; the full chart and every trading control remain one click away. */
#pHub .mkt { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: 'id trade' 'curve curve'; gap: 10px; margin: 2px 8px 8px; padding: 10px; background: #100c22c0; border-radius: 5px; box-shadow: inset 0 1px #b59aff30; }
#pHub .mkt-sym { color: var(--af-gold); font-size: 12px; }
#pHub .mkt-cap { font-size: 11px; letter-spacing: 0; }
#pHub .mkt .spark, #pHub .mkt-moves { display: none; }
#pHub .mkt-buttons { gap: 4px; }
#pHub .mkt-trade { display: inline-flex; align-items: center; min-height: 44px; padding: 7px 10px; border-radius: 6px; font-size: 12px; }
#pHub .mkt>.retro-curve.compact { grid-area: curve; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 0; border: 0; background: none; }
#pHub .mkt .compact .curve-heading { display: contents; }
#pHub .mkt .compact .curve-heading>span { display: none; }
#pHub .mkt .compact .curve-heading>b { grid-column: 2; grid-row: 1; color: var(--af-muted); font: 500 9px/1.4 var(--af-font-mono); }
#pHub .mkt .compact .curve-track { grid-column: 1; grid-row: 1; height: 9px; }
#pHub .mkt .compact .curve-coin { font-size: 10px; }
#pHub .community-create { border-radius: 12px; background: linear-gradient(110deg, #b59aff14, transparent), var(--af-glass-deep); }
@media (min-width: 1024px) { #pHub .cabinets { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1023px) { #pHub .hero-kicker { font-size: 25px; } .floor-create { padding: 12px; } #pHub .catalog-bar { grid-template-columns: minmax(0, 1fr) auto; } #pHub .catalog-summary { grid-row: 2; grid-column: 1 / -1; max-width: none; } #pHub .catalog-toggle { grid-column: 2; grid-row: 1; } }
@media (max-width: 760px), (pointer: coarse) and (max-width: 1024px) {
  #pHub .hub { padding-top: 12px; gap: 24px; }
  .floor-console { gap: 12px; padding: 16px; border-radius: 14px; }
  #pHub .hero { display: block; padding-bottom: 14px; }
  #pHub .hero-copy { gap: 10px; }
  #pHub .hero-kicker { font-size: clamp(18px, 4.7vw, 26px); }
  #pHub .hero-sub { font-size: 13px; line-height: 1.5; }
  .floor-eyebrow { font-size: 9px; }
  .floor-create { display: none; }
  #pHub .shelf-picker { display: block; font-size: 16px; border-radius: 8px; }
  #pHub .shelf-nav { display: none; }
  #pHub .catalog-bar { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  #pHub .catalog-search input { font-size: 16px; }
  #pHub .catalog-toggle { padding-inline: 10px; font-size: 12px; }
  #pHub .catalog-summary { font-size: 10px; grid-row: 2; grid-column: 1 / -1; }
  #pHub .catalog-filters { grid-template-columns: minmax(0, 1fr); padding: 12px; }
  #pHub .shelf-head h2 { font-size: 20px; }
  #pHub .shelf-head p { display: none; }
  #pHub .shelf { gap: 10px; }
  #pHub .shelf-head { margin-bottom: 0; }
  #pHub .cabinets { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  #pHub .cab-top { min-height: 58px; padding-top: 8px; padding-bottom: 8px; }
  #pHub .cab-save { top: 13px; }
  #pHub .cab-name { font-size: 17px; }
  #pHub .cab-screen { aspect-ratio: 16 / 9; }
  #pHub .cab-body { padding: 12px 14px; }
  #pHub .cab-tag { font-size: 14px; }
  #pHub .cab-deck { grid-template-columns: minmax(0, 1fr) auto; padding: 10px 14px; }
  #pHub .cab-coin { padding: 7px 12px 7px 7px; }
  #pHub .coin-words { font-size: 8px; }
  #pHub .cab-hint { font-size: 11px; }
  #pHub .mkt { margin: 0 8px 8px; padding: 8px 12px; }
  #pHub .cab-rank { display: block; }
}
@media (prefers-reduced-motion: reduce) { #pHub .cab-slot { transition: none; } #pHub .cab-slot:hover, #pHub .cab-slot:has(:focus-visible) { transform: none; } }
@media (prefers-reduced-transparency: reduce) { .floor-console { background: #17112e; } }
@media (forced-colors: active) { .floor-console, #pHub .cab-slot, #pHub .cab-top, #pHub .cab-deck, #pHub .cab-coin { border: 1px solid CanvasText; } #pHub .cab-save { color: ButtonText; } #pHub .cab-save[aria-pressed="true"] { outline: 1px solid Highlight; } }
