/* Activity and completion share one control; undo remains a separate touch target. */
.progress-undo{flex:0 0 auto;min-width:44px;min-height:44px;padding:6px!important;border:0;border-radius:9px;background:#ffffff05;color:var(--muted,#b6c5d0);font:500 10px Inter,Arial,sans-serif}
.progress-undo:hover,.progress-undo:focus-visible{background:#ffffff10;color:var(--ink,#fff)}
.progress-actions{--control-accent:var(--phase,var(--dossier-accent,var(--accent,#ffc365)));align-items:stretch;gap:5px}.progress-actions .complete-button{flex:1;min-width:0}.progress-actions .progress-undo{margin-top:13px}
.progress-actions .route-options-button{flex:0 0 44px;width:44px}.progress-actions .check-box{flex-shrink:0}
.progress-actions.is-playing .complete-button,.entry-quick-actions.is-playing .quick-finish{background:color-mix(in srgb,var(--control-accent,var(--accent)) 24%,transparent)}
.progress-actions [data-complete]:disabled,.entry-quick-actions [data-finish]:disabled{opacity:1;cursor:default;transform:none}
.dossier-footer .progress-actions{display:flex;flex-wrap:wrap}.dossier-footer .progress-undo{margin-top:0}.dossier-actions .entry-quick-actions{margin-top:0;flex:1}
.comic-interlude .progress-undo{color:#725b34;background:#30293808}

/* An active entry has a living signal without shifting the touch targets. */
.status-playing:is(.adventure-card,.operation,.comic-interlude){box-shadow:0 12px 55px color-mix(in srgb,var(--entry-accent,var(--accent)) 13%,transparent)}
.status-playing .poster-wrap{box-shadow:0 12px 35px color-mix(in srgb,var(--phase) 26%,transparent)}
.status-playing .station-orbit{animation:active-station 3s ease-in-out infinite}.status-playing .node-light{box-shadow:0 0 25px color-mix(in srgb,var(--phase) 45%,transparent)}
@keyframes active-station{50%{opacity:.45;transform:scale(1.14)}}
.comic-cover,.operation-cover,.level-panel .driver-card{position:relative}
.level-tab.status-playing .level-check{display:grid!important;place-items:center;background:var(--accent);color:#173242;opacity:1}.level-check .activity-signal{width:17px;height:14px}
.progress-actions .check-box svg{width:18px;height:18px}.dossier-complete .check-box{display:grid;place-items:center;margin:0!important}
.summary-resume.is-playing{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.header-rewards{display:flex;align-items:center;gap:7px;min-height:42px;padding:9px 11px;border:0;border-radius:11px;background:#ffffff05;color:#d8d9e2;font:500 11px Inter,Arial,sans-serif}
.header-rewards>svg{width:17px;height:17px}.header-rewards b{display:grid;place-items:center;min-width:19px;height:19px;border-radius:50%;background:var(--accent,#ffc365);color:#141722;font-size:10px}.header-rewards.has-rewards{color:var(--accent,#ffc365);background:color-mix(in srgb,var(--accent,#ffc365) 10%,transparent)}
.reward-notice{position:fixed;z-index:90;bottom:24px;right:24px;max-width:calc(100vw - 32px);display:flex;align-items:center;gap:14px;padding:16px 18px;background:#172331f5;box-shadow:0 16px 70px #0007;backdrop-filter:blur(20px);border-radius:16px;color:#f5eedf;animation:reward-arrival .35s ease-out both}
.reward-notice>svg{width:25px;height:25px;color:var(--accent,#ffc365);flex-shrink:0}.reward-notice>span{font:500 12px/1.5 Inter,Arial,sans-serif;max-width:250px}.reward-notice .reward-open{min-height:44px;padding:10px 13px;background:var(--accent,#ffc365);color:#101a22;border:0;border-radius:9px;white-space:nowrap;font:600 11px Inter,Arial,sans-serif}.reward-dismiss{display:grid;place-items:center;width:44px;min-height:44px;padding:8px;border:0;border-radius:9px;color:#a2b1bf}.reward-dismiss svg{width:17px;height:17px}
@keyframes reward-arrival{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
.rewards-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}.reward-card{padding:22px;border-radius:14px;background:#ffffff05}.reward-card.unlocked{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,transparent),#ffffff04)}.reward-card>small{color:var(--accent);font-size:10px}.reward-card h3{margin:12px 0!important;font-size:20px}.reward-card p{font-size:12px}.reward-card .button{margin-top:10px;min-height:44px;gap:8px}.reward-card .reward-meter{height:4px;border-radius:4px;background:#ffffff0b;margin:18px 0 12px;overflow:hidden}.reward-meter i{display:block;height:100%;background:var(--accent);transition:width .45s}
.rewards-log-link{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0;padding:15px 18px;border-radius:12px;background:color-mix(in srgb,var(--accent) 9%,transparent);width:100%;text-align:left;font-size:12px}.rewards-log-link b{color:var(--accent);font-size:11px}
.mobile-dock .dock-button:last-child{position:relative}body[data-rewards]:not([data-rewards="0"]) .mobile-dock .dock-button:last-child:after{content:'';position:absolute;top:6px;right:calc(50% - 19px);width:7px;height:7px;border-radius:50%;background:var(--accent,#ffc365);box-shadow:0 0 12px color-mix(in srgb,var(--accent,#ffc365) 45%,transparent)}
@media(max-width:1100px){.header-rewards>span{display:none}.header-rewards{padding:9px;gap:4px}}
@media(max-width:800px){.canon-header .header-rewards{min-height:40px;padding:7px;background:transparent}.header-rewards>svg{width:18px;height:18px}.header-rewards b{min-width:15px;height:15px;font-size:9px}.reward-notice{inset:auto 12px calc(82px + env(safe-area-inset-bottom)) 12px;max-width:none;padding:12px;gap:9px;flex-wrap:wrap}.reward-notice>span{flex:1;max-width:none}.reward-notice .reward-open{order:3;margin-left:34px}.reward-dismiss{width:32px}.rewards-grid{grid-template-columns:1fr}}
.reduced-motion .station-orbit,.pause-motion .station-orbit,.reduced-motion .reward-notice,.pause-motion .reward-notice{animation:none!important}
@media(prefers-reduced-motion:reduce){.station-orbit,.reward-notice{animation:none!important}}

/* A shared media symbol fits every world; the artwork supplies its character. */
.material-card{--activity-accent:var(--phase,#ffc365)}
.adventure-card,.operation{--activity-accent:var(--entry-accent,var(--accent,#ffc365))}
.comic-interlude{--activity-accent:#d5ad60}.level-panel{--activity-accent:var(--accent,#ffe04b)}.world-card{--activity-accent:var(--world-accent,#a380ff)}
.activity-art{display:none;position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none;z-index:1;color:var(--activity-accent,#ffc365);contain:paint}
:is(.status-playing,.world-card.is-playing) .activity-art{display:block}
.activity-wash{position:absolute;inset:0;background:radial-gradient(ellipse at 0 0,color-mix(in srgb,var(--activity-accent,#ffc365) 32%,transparent),transparent 62%),radial-gradient(ellipse at 100% 100%,color-mix(in srgb,var(--activity-accent,#ffc365) 24%,transparent),transparent 55%);mix-blend-mode:screen;opacity:.65;animation:active-light 4s ease-in-out infinite alternate}
.activity-emblem{position:absolute;right:14px;bottom:16px;width:52px;height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:16px;background:linear-gradient(145deg,#ffffff13,#ffffff03),#17171cdb;backdrop-filter:blur(12px);box-shadow:0 5px 18px #0004;color:color-mix(in srgb,var(--activity-accent,#ffc365) 45%,#fff)}
.activity-emblem:before{content:'';position:absolute;inset:-5px;z-index:-1;border-radius:20px;background:color-mix(in srgb,var(--activity-accent,#ffc365) 18%,transparent);filter:blur(9px);animation:active-breathe 3s ease-in-out infinite}
.activity-signal{display:inline-flex;align-items:center;justify-content:center;width:24px;height:22px;flex-shrink:0}.activity-signal>svg{width:100%;height:100%;overflow:visible}
.activity-emblem{width:60px;height:48px;gap:0}.activity-emblem .activity-signal{width:42px;height:32px}
.signal-game>svg{animation:controller-sway 3.6s ease-in-out infinite;transform-origin:50% 65%}.controller-stick{animation:controller-input 2.4s ease-in-out infinite}.controller-button{animation:controller-press 1.8s ease-in-out infinite}.button-b{animation-delay:-.9s}.book-page{animation:page-turn 3s ease-in-out infinite;transform-origin:16px center}.screen-play{animation:screen-light 3s ease-in-out infinite}
@keyframes controller-sway{0%,100%{transform:translateY(1px) rotate(-5deg)}45%{transform:translateY(-2px) rotate(4deg)}70%{transform:translateY(0) rotate(-1deg)}}
@keyframes controller-input{0%,100%{translate:0 0}25%{translate:1px -1px}50%{translate:-1px 1px}75%{translate:0 -1px}}
@keyframes controller-press{0%,35%,100%{opacity:.4}45%,65%{opacity:1}}
@keyframes page-turn{0%,65%,100%{opacity:1;transform:scaleX(1)}80%{opacity:.4;transform:scaleX(.45)}}
@keyframes screen-light{0%,100%{opacity:.65}50%{opacity:1}}
.status-playing:is(.adventure-card,.operation,.comic-interlude),.world-card.is-playing{box-shadow:0 18px 60px color-mix(in srgb,var(--activity-accent) 16%,transparent),0 4px 20px #0004}
.material-card.status-playing .poster-wrap{box-shadow:0 14px 35px #0006,0 0 35px color-mix(in srgb,var(--activity-accent) 26%,transparent)}
.status-playing .adventure-body{background:radial-gradient(ellipse at 0 0,color-mix(in srgb,var(--activity-accent) 15%,transparent),transparent 68%)}
.status-playing :is(.card-title,.adventure-body h3,.operation-content h3){color:color-mix(in srgb,var(--activity-accent) 25%,#fff)}
.operation.status-playing:before{opacity:.5}.operation.status-playing .operation-cover{box-shadow:0 14px 35px #0007,0 0 35px color-mix(in srgb,var(--activity-accent) 26%,transparent)}
.operation .activity-emblem{width:44px;height:50px;right:9px;bottom:12px;border-radius:14px}
.adventure-scene .activity-emblem{left:50%;right:auto;transform:translateX(-50%);bottom:16px}
.comic-interlude .activity-emblem{width:30px;height:36px;right:5px;bottom:6px;gap:3px;border-radius:9px}.comic-interlude .activity-emblem .activity-signal{width:20px;height:19px}
.level-panel.status-playing .driver-card{box-shadow:0 0 45px color-mix(in srgb,var(--activity-accent) 22%,transparent);background:radial-gradient(ellipse at 50% 15%,color-mix(in srgb,var(--activity-accent) 16%,transparent),transparent 72%),#1b3050}
.driver-card .activity-art{z-index:1}.driver-card .activity-wash{opacity:.4}
.driver-card .activity-emblem{top:14px;right:16px;bottom:auto;width:40px;height:46px;gap:4px;border-radius:12px}.driver-card .activity-emblem .activity-signal{width:30px;height:24px}
.world-card .activity-emblem{right:18px;top:18px;bottom:auto}
@keyframes active-light{from{opacity:.35}to{opacity:.7}}
@keyframes active-breathe{0%,100%{opacity:.45;scale:.94}50%{opacity:.9;scale:1.08}}
@media(max-width:800px){.activity-emblem{right:12px;bottom:14px}}
:is(.reduced-motion,.pause-motion) .activity-art *,:is(.reduced-motion,.pause-motion) .activity-emblem:before{animation:none!important}
@media(prefers-reduced-motion:reduce){.activity-art *,.activity-emblem:before{animation:none!important}}

:is(.reduced-motion,.pause-motion) .activity-signal *{animation:none!important}@media(prefers-reduced-motion:reduce){.activity-signal *{animation:none!important}}
