.v2-theme { --purple: #3669c8; --purple-soft: #dbe9ff; background: linear-gradient(180deg,#eaf7ff,#f9fbff); }
.v2-theme .topbar { align-items: center; }
.v2-theme .hero-card--quest { background: linear-gradient(135deg,#3d72cb 0%,#66afd9 100%); }.v2-theme .quest-scene { min-height:330px; background: linear-gradient(rgba(134,211,255,.03),rgba(42,128,87,.10)),url('assets/v2/optimized/island-race-background-v4-wide.webp') center/cover; box-shadow: inset 0 -36px 0 rgba(25,93,60,.10); }.v2-theme .quest-scene::before,.v2-theme .quest-scene::after,.v2-theme .quest-hills,.v2-theme .monster-gate { display:none; }
.v2-theme .safe-home { right:1%; bottom:2%; z-index:6; width:112px; height:166px; border:0; border-radius:0; background:transparent; box-shadow:none; transform:none; overflow:visible; }.v2-theme .safe-home::before,.v2-theme .safe-home::after { display:none; }.v2-theme .safe-home img { display:block; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 8px 7px rgba(31,67,113,.25)); }.v2-theme .safe-home small { top:-9px; left:50%; z-index:7; width:76px; color:#fff; background:rgba(39,86,146,.80); transform:translateX(-50%); }
.v2-theme .chase-track { right:8%; bottom:14%; left:7%; z-index:3; border-color:rgba(255,255,255,.80); background:rgba(255,255,255,.66); box-shadow:0 7px 0 rgba(22,94,67,.14),inset 0 2px 0 rgba(255,255,255,.86); }.v2-theme .chase-track span { border-color:#9ab7df; background:rgba(255,255,255,.92); }.v2-theme .chase-monster { bottom:13%; z-index:4; width:126px; height:126px; }.v2-theme .pet-runner { bottom:14%; z-index:5; width:100px; height:100px; }.v2-theme .pet-runner img,.v2-theme .chase-monster img { filter:drop-shadow(0 9px 5px rgba(20,59,91,.24)); }
.v2-theme .pet-card-art { background:linear-gradient(145deg,#e8f7ff,#e3efff); }.v2-theme .pet-card-art img { width:98px; height:86px; }.v2-theme .finish-monster img { content:none; }
@media (max-width:590px) { .v2-theme .topbar { flex-wrap:wrap; }.v2-theme .quest-scene { min-height:270px; }.v2-theme .safe-home { right:-1%; bottom:4%; width:82px; height:124px; }.v2-theme .safe-home small { top:-14px; }.v2-theme .chase-track { right:5%; bottom:15%; left:5%; }.v2-theme .chase-monster { bottom:13%; width:93px; height:93px; }.v2-theme .pet-runner { bottom:15%; width:77px; height:77px; } }

/* Second-version character sizing and finale art. */
.v2-theme .pet-card-art { min-height: 108px; display: grid; place-items: center; }
.v2-theme .pet-card-art img { width: 94px; height: 94px; object-fit: contain; }
.v2-theme .pet-runner { display: grid; place-items: end center; }
.v2-theme .pet-runner img { width: 100%; height: 100%; object-fit: contain; }
.v2-theme .finish-scene-art { width: min(326px, 95%); height: 178px; gap: 6px; }
.v2-theme .finish-cage { width: 146px; height: 150px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
.v2-theme .finish-cage::before, .v2-theme .finish-cage::after, .v2-theme .finish-cage-bars, .v2-theme .finish-cage-lock, .v2-theme .finish-pet::before, .v2-theme .finish-pet::after { display: none; }
.v2-theme .finish-cage .finish-pet { width: 100%; height: 100%; margin: 0; }
.v2-theme .finish-cage .finish-pet img { width: 100%; height: 100%; object-fit: contain; }
.v2-theme .finish-monster { width: 156px; height: 156px; margin: 0; }
.v2-theme .finish-monster img { content: none; width: 100%; height: 100%; object-fit: contain; }
.v2-theme .finish-laugh { display: none; }
@media (max-width: 590px) {
  .v2-theme .pet-card-art { min-height: 95px; }
  .v2-theme .pet-card-art img { width: 84px; height: 84px; }
  .v2-theme .finish-scene-art { width: min(284px, 96%); height: 146px; gap: 2px; }
  .v2-theme .finish-cage { width: 124px; height: 128px; }
  .v2-theme .finish-monster { width: 134px; height: 134px; }
}

/* Integrated background: the road and lighthouse belong to one painted island scene. */
.v2-theme .quest-scene {
  background: linear-gradient(rgba(134,211,255,.02),rgba(42,128,87,.06)), url('assets/v2/optimized/island-race-background-v4-wide.webp') center/cover;
  box-shadow: inset 0 -28px 0 rgba(25,93,60,.06);
}
.v2-theme .safe-home,
.v2-theme .chase-track { display: none; }
.v2-theme .chase-monster { bottom: 21%; z-index: 4; }
.v2-theme .pet-runner { bottom: 22%; z-index: 5; }
@media (max-width: 590px) {
  .v2-theme .chase-monster { bottom: 20%; }
  .v2-theme .pet-runner { bottom: 21%; }
}

/* One unified scene: remove old decorative overlays and keep both runners on the painted road. */
.v2-theme .quest-scene .cloud,
.v2-theme .quest-scene .moon { display: none; }
.v2-theme .chase-monster { bottom: var(--monster-road-bottom, 12%); transition: left .5s ease, bottom .5s ease; }
.v2-theme .pet-runner { bottom: var(--pet-road-bottom, 15%); transition: left .5s ease, bottom .5s ease; }

@media (max-width: 590px) {
  .v2-theme .quest-scene { background-position: 60% center; }
}

/* Generated adventure assets: per-pet shield overlays and illustrated supply icons. */
.v2-theme .pet-runner { isolation: isolate; overflow: visible; }
.v2-theme .pet-runner .pet-shield-effect { position: absolute; z-index: -1; inset: -42%; display: block; width: 184%; height: 184%; max-width: none; max-height: none; opacity: 0; object-fit: contain; pointer-events: none; filter: drop-shadow(0 0 7px rgba(255,231,116,.72)); transform: scale(.82) rotate(-7deg); transition: opacity .26s ease, transform .36s ease; animation: none; }
.v2-theme .quest-scene.has-shield .pet-runner::after { display: none; }
.v2-theme .quest-scene.has-shield .pet-runner .pet-shield-effect { opacity: 1; transform: scale(1) rotate(0deg); animation: pet-shield-orbit 2.2s linear infinite; }
.v2-theme .quest-supply-icon { overflow: hidden; background: radial-gradient(circle at 32% 26%,#fff 0 12%,#eef5ff 36%,#e9edff 100%); }
.v2-theme .quest-supply-icon img { display: block; width: 134%; height: 134%; max-width: none; max-height: none; object-fit: contain; filter: drop-shadow(0 2px 2px rgba(72,67,142,.16)); }
@keyframes pet-shield-orbit { 0%,100% { filter: drop-shadow(0 0 7px rgba(255,231,116,.72)); } 50% { filter: drop-shadow(0 0 13px rgba(255,245,164,.98)); } }
@media (max-width:590px) { .v2-theme .pet-runner .pet-shield-effect { inset:-48%; width:196%; height:196%; } .v2-theme .quest-supply-icon img { width:140%; height:140%; } }

/* Use the verified transparent shield artwork, with a distinct pet-color tint. */
.v2-theme .pet-runner { --shield-hue: 0deg; }
.v2-theme .pet-runner--bunny { --shield-hue: 126deg; }
.v2-theme .pet-runner--pup { --shield-hue: 28deg; }
.v2-theme .pet-runner--cat { --shield-hue: 248deg; }
.v2-theme .pet-runner .pet-shield-effect { filter: hue-rotate(var(--shield-hue)) drop-shadow(0 0 7px rgba(255,231,116,.72)); }
@keyframes pet-shield-orbit { 0%,100% { filter: hue-rotate(var(--shield-hue)) drop-shadow(0 0 7px rgba(255,231,116,.72)); } 50% { filter: hue-rotate(var(--shield-hue)) drop-shadow(0 0 13px rgba(255,245,164,.98)); } }

/* Direction and motion cleanup: rabbit runs toward the lighthouse; remove legacy speed lines. */
.v2-theme .quest-scene.has-sprint .pet-runner::before { display: none; }
.v2-theme .finish-cage .finish-pet.is-rabbit-cage::before,
.v2-theme .finish-cage .finish-pet.is-rabbit-cage::after { position: absolute; z-index: 4; top: 54%; display: block; width: 3.8%; height: 7.5%; border-radius: 58% 58% 72% 72%; background: linear-gradient(180deg,#e7fbff,#62c7f1); box-shadow: 0 1px 0 rgba(39,125,184,.26); content: ""; }
.v2-theme .finish-cage .finish-pet.is-rabbit-cage::before { left: 32%; transform: rotate(13deg); }
.v2-theme .finish-cage .finish-pet.is-rabbit-cage::after { left: 48%; transform: rotate(-13deg); }

/* Monster scale: 50% larger than the original v2 scene size. */
.v2-theme .chase-monster { width: 189px; height: 189px; }
@media (max-width:590px) { .v2-theme .chase-monster { width: 140px; height: 140px; } }

/* Parent management follows the daily decision order on every screen size. */
.parent-grid--management { grid-template-columns: minmax(0,1fr); }
.parent-grid--management > .parent-panel { grid-column: 1 / -1; }
.parent-panel--current { border-color: #c9def6; background: linear-gradient(145deg,#ffffff 0%,#f7fbff 68%,#edf6ff 100%); }
.parent-panel--current .section-heading { padding-bottom: 13px; border-bottom: 1px solid #dcecf9; }
.parent-panel--current .section-kicker { color: #2d6eb2; }
.parent-panel--current .helper-note { margin: 0 0 12px; }
.activity-item { border: 1px solid #e5e1f0; }
.activity-item.is-gain { border-color: #bfe8ca; background: #f3fff6; }
.activity-item.is-gain .activity-symbol { background: #dff7e6; }
.activity-item.is-gain .activity-amount { color: #16884a; }
.activity-item.is-spend { border-color: #f3d6a8; background: #fff9ed; }
.activity-item.is-spend .activity-symbol { background: #fff0cf; }
.activity-item.is-spend .activity-amount { color: #bb6813; }
.activity-item > div { min-width: 0; flex: 1; }
.activity-meta { color: #746d88; }
.activity-amount { flex: 0 0 auto; font-size: 14px; font-weight: 900; white-space: nowrap; }
@media (max-width:590px) { .activity-item { align-items: center; gap: 9px; } .activity-amount { font-size: 13px; } }

/* Keep the chase readable: both runners move in place while their positions stay on the painted road. */
.v2-theme .quest-scene:not(.is-failed) .chase-monster img {
  transform-origin: 50% 84%;
  animation: monster-run-cycle .72s ease-in-out infinite;
}
.v2-theme .quest-scene:not(.is-failed) .pet-runner img {
  transform-origin: 50% 84%;
  animation: pet-run-cycle .66s ease-in-out infinite;
}
@keyframes monster-run-cycle {
  0%, 100% { transform: translateY(1px) rotate(-1.2deg) scaleX(1); }
  50% { transform: translateY(-6px) rotate(1.5deg) scaleX(1.015); }
}
@keyframes pet-run-cycle {
  0%, 100% { transform: translateY(1px) rotate(1deg) scaleX(1); }
  50% { transform: translateY(-5px) rotate(-1.4deg) scaleX(1.01); }
}

/* Keep the failure scene balanced: cage base meets the monster's feet and sits closer to it. */
.v2-theme .finish-cage {
  transform: translateX(-16px) scale(.82) scaleX(1.25);
  transform-origin: center bottom;
}
@media (max-width: 590px) {
  .v2-theme .finish-cage {
    transform: translateX(-12px) scale(.82) scaleX(1.25);
  }
}@media (prefers-reduced-motion: reduce) {
  .v2-theme .quest-scene:not(.is-failed) .chase-monster img,
  .v2-theme .quest-scene:not(.is-failed) .pet-runner img { animation: none; }
}

