/* Native commuting artwork; additive selectors affect status badges only. */
.fotos > .avalon-status-icon > .avalon-status-car { display: none; }
.fotos > .avalon-status-icon.avalon-status-icon--commuting > img,
.fotos > .avalon-status-icon.avalon-status-icon--commuting > .avalon-status-wheel {
  display: none !important;
}
.fotos > .avalon-status-icon.avalon-status-icon--commuting > .avalon-status-car {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.avalon-status-car .avalon-car-vehicle {
  transform-box: view-box;
  transform-origin: 50px 73px;
}
.avalon-status-car .avalon-car-wheel {
  /* Translation belongs to the outer SVG group; rotation stays wheel-centred. */
  transform-box: fill-box;
  transform-origin: center;
}
@media (prefers-reduced-motion: no-preference) {
  .fotos > .avalon-status-icon.avalon-status-icon--commuting .avalon-car-wheel {
    animation: avalon-car-wheel-spin var(--avalon-car-wheel-cycle, .88s) linear infinite;
    animation-delay: var(--avalon-car-phase, 0s);
  }
  .fotos > .avalon-status-icon.avalon-status-icon--commuting.avalon-car--bumpy .avalon-car-vehicle {
    animation: avalon-car-road-0 var(--avalon-car-cycle, 5.8s) ease-in-out infinite;
    animation-delay: var(--avalon-car-phase, 0s);
  }
  .fotos > .avalon-status-icon.avalon-status-icon--commuting.avalon-car--bumpy[data-road-style="1"] .avalon-car-vehicle { animation-name: avalon-car-road-1; }
  .fotos > .avalon-status-icon.avalon-status-icon--commuting.avalon-car--bumpy[data-road-style="2"] .avalon-car-vehicle { animation-name: avalon-car-road-2; }
  .fotos > .avalon-status-icon.avalon-status-icon--commuting.avalon-car--bumpy[data-road-style="3"] .avalon-car-vehicle { animation-name: avalon-car-road-3; }
  .fotos > .avalon-status-icon.avalon-status-icon--commuting.avalon-car--bumpy[data-road-style="4"] .avalon-car-vehicle { animation-name: avalon-car-road-4; }
  .fotos > .avalon-status-icon.avalon-car--paused .avalon-car-vehicle,
  .fotos > .avalon-status-icon.avalon-car--paused .avalon-car-wheel { animation-play-state: paused; }
  @keyframes avalon-car-wheel-spin { to { transform: rotate(360deg); } }
  /* All five roads settle between bumps, and loop without a position jump. */
  @keyframes avalon-car-road-0 {
    0%,14%,39%,100% { transform: translateY(0) rotate(0); }
    19% { transform: translateY(-3px) rotate(-1.8deg); }
    24% { transform: translateY(-5px) rotate(.8deg); }
    30% { transform: translateY(1.5px) rotate(1deg); }
    35% { transform: translateY(-.7px) rotate(-.4deg); }
  }
  @keyframes avalon-car-road-1 {
    0%,10%,42%,64%,90%,100% { transform: translateY(0) rotate(0); }
    16% { transform: translateY(-3px) rotate(-1.5deg); }
    22% { transform: translateY(1px) rotate(1deg); }
    29% { transform: translateY(-4px) rotate(-1deg); }
    36% { transform: translateY(1px) rotate(.5deg); }
    71% { transform: translateY(-2px) rotate(-1deg); }
    80% { transform: translateY(1px) rotate(.7deg); }
  }
  @keyframes avalon-car-road-2 {
    0%,23%,67%,100% { transform: translateY(0) rotate(0); }
    34% { transform: translateY(-2.5px) rotate(-2deg); }
    43% { transform: translateY(-5px) rotate(-.4deg); }
    51% { transform: translateY(-2px) rotate(1.7deg); }
    59% { transform: translateY(1px) rotate(.5deg); }
  }
  @keyframes avalon-car-road-3 {
    0%,9%,35%,56%,84%,100% { transform: translateY(0) rotate(0); }
    15% { transform: translateY(-2px) rotate(1.5deg); }
    21% { transform: translateY(-3.5px) rotate(-1.4deg); }
    28% { transform: translateY(1.3px) rotate(.5deg); }
    63% { transform: translateY(-4.5px) rotate(-1.8deg); }
    70% { transform: translateY(-2px) rotate(1.3deg); }
    77% { transform: translateY(1px) rotate(.5deg); }
  }
  @keyframes avalon-car-road-4 {
    0%,37%,77%,100% { transform: translateY(0) rotate(0); }
    42% { transform: translateY(-1.3px) rotate(-1deg); }
    47% { transform: translateY(.8px) rotate(.7deg); }
    54% { transform: translateY(-5.5px) rotate(-2deg); }
    60% { transform: translateY(-3px) rotate(1.4deg); }
    66% { transform: translateY(1.5px) rotate(.8deg); }
    72% { transform: translateY(-.6px) rotate(-.3deg); }
  }
}
@media (prefers-reduced-motion: reduce) {
  .fotos > .avalon-status-icon .avalon-status-car .avalon-car-wheel,
  .fotos > .avalon-status-icon .avalon-status-car .avalon-car-vehicle {
    animation: none !important;
    transform: none !important;
  }
}
/* Silent night artwork; all selectors stay inside the existing status badge. */
.avalon-status-icon > .avalon-status-moon { display: none; }
.fotos > .avalon-status-icon.avalon-status-icon--sleeping > img { display: none !important; }
.avalon-status-icon--sleeping > .avalon-status-moon {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.avalon-status-moon .avalon-moon-body {
  transform-box: view-box;
  transform-origin: 50px 48px;
}
.avalon-status-icon.avalon-night--left .avalon-moon-body { transform: scaleX(-1); }
.avalon-status-moon .avalon-moon-yawn {
  opacity: 0;
  transform-box: view-box;
  transform-origin: 45px 67px;
  transform: scaleY(.2);
}
.avalon-status-moon .avalon-moon-shooting-star {
  opacity: 0;
  transform-box: view-box;
  transform-origin: 0 0;
}
@media (prefers-reduced-motion: no-preference) {
  /* Toggle the persistent --left side at event START, then add --turn for 3 s. */
  .avalon-status-icon--sleeping.avalon-night--turn .avalon-moon-body {
    animation: avalon-night-turn-right 3s ease-in-out both;
  }
  .avalon-status-icon--sleeping.avalon-night--turn.avalon-night--left .avalon-moon-body {
    animation-name: avalon-night-turn-left;
  }
  .avalon-status-icon--sleeping.avalon-night--yawn .avalon-moon-yawn {
    animation: avalon-night-yawn 4s ease-in-out both;
  }
  .avalon-status-icon--sleeping.avalon-night--yawn .avalon-moon-smile {
    animation: avalon-night-smile 4s ease-in-out both;
  }
  .avalon-status-icon--sleeping.avalon-night--star .avalon-moon-shooting-star {
    animation: avalon-night-shooting-star 2.4s linear both;
  }
  @keyframes avalon-night-turn-left {
    0% { transform: translate(0,0) scaleX(1) rotate(0); }
    22% { transform: translate(-3px,-2px) scaleX(1) rotate(-12deg); }
    50% { transform: translate(0,-6px) scaleX(.05) rotate(-8deg); }
    78% { transform: translate(3px,-2px) scaleX(-1) rotate(8deg); }
    100% { transform: translate(0,0) scaleX(-1) rotate(0); }
  }
  @keyframes avalon-night-turn-right {
    0% { transform: translate(0,0) scaleX(-1) rotate(0); }
    22% { transform: translate(3px,-2px) scaleX(-1) rotate(12deg); }
    50% { transform: translate(0,-6px) scaleX(-.05) rotate(8deg); }
    78% { transform: translate(-3px,-2px) scaleX(1) rotate(-8deg); }
    100% { transform: translate(0,0) scaleX(1) rotate(0); }
  }
  @keyframes avalon-night-yawn {
    0%,10%,94%,100% { opacity: 0; transform: scaleY(.2); }
    30%,65% { opacity: 1; transform: scaleY(1); }
    85% { opacity: 1; transform: scaleY(.4); }
  }
  @keyframes avalon-night-smile {
    0%,8%,96%,100% { opacity: 1; }
    20%,87% { opacity: 0; }
  }
  @keyframes avalon-night-shooting-star {
    0% { opacity: 0; transform: translate(-6px,4px) scale(.65); }
    12% { opacity: 1; transform: translate(10px,10px) scale(.9); }
    62% { opacity: 1; transform: translate(66px,32px) scale(1); }
    79% { opacity: .9; transform: translate(86px,40px) scale(.7); }
    93% { opacity: .25; transform: translate(94px,44px) scale(.25); }
    100% { opacity: 0; transform: translate(96px,45px) scale(0); }
  }
}
/* Scoped additive overlays only: no photo, card, grid or gallery overrides. */
.fotos > .avalon-status-icon {
  position: absolute;
  top: 72px;
  left: 8px;
  width: 38px;
  height: 38px;
  z-index: 12;
  display: block;
  pointer-events: none;
  user-select: none;
  filter: drop-shadow(0 2px 3px rgba(0,0,0,.65));
}
.fotos > .avalon-status-icon[hidden] { display: none !important; }
.fotos > .avalon-status-icon > img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  object-fit: contain !important;
  opacity: 1 !important;
}
.avalon-status-icon > .avalon-status-wheel { display: none; }
.avalon-status-icon > .avalon-status-hourglass { display: none; }
.fotos > .avalon-status-icon--busy > img { display: none !important; }
.avalon-status-icon--busy > .avalon-status-hourglass {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.avalon-status-icon--commuting > .avalon-status-wheel {
  position: absolute;
  display: block;
  width: 9.5%;
  height: 9.5%;
  top: 63.24%;
  border-radius: 50%;
  background: repeating-conic-gradient(#e5edf5 0deg 35deg, #536574 35deg 70deg);
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.avalon-status-icon--commuting > .avalon-status-wheel--rear { left: 18.86%; }
.avalon-status-icon--commuting > .avalon-status-wheel--front { left: 78.87%; }
@media (max-width: 760px) {
  .fotos > .avalon-status-icon { width: 34px; height: 34px; top: 68px; left: 7px; }
}
@media (prefers-reduced-motion: no-preference) {
  .avalon-status-icon--upcoming {
    animation: avalon-status-breathe 3.6s ease-in-out infinite;
  }
  .avalon-status-icon--commuting > .avalon-status-wheel {
    animation: avalon-status-wheel-spin .8s linear infinite;
  }
  .avalon-hourglass-stream { animation: avalon-hourglass-grains .65s linear infinite; }
  /* Last three minutes only; animate the clock, never the card or other statuses. */
  .fotos > .avalon-status-icon--busy:not([hidden]) > .avalon-status-hourglass[data-ending="true"] {
    transform-box: view-box;
    transform-origin: 50% 50%;
    animation: avalon-hourglass-ending 2.5s ease-in-out infinite;
  }
  @keyframes avalon-hourglass-ending { 0%,100% { transform: scale(1); } 50% { transform: scale(1.16); } }
  @keyframes avalon-hourglass-grains { to { stroke-dashoffset: -5.2; } }
  @keyframes avalon-status-wheel-spin {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
  }
  @keyframes avalon-status-breathe { 0%,100% {transform:scale(1)} 50% {transform:scale(1.07)} }
}

/* Code-native break battery; the existing 38/34px badge remains unchanged. */
/* An optional question sits beside, never instead of, the primary break battery. */
.fotos > .avalon-status-icon > img.avalon-status-break-upcoming {
  display: none !important;
  position: absolute;
  top: 50%;
  left: calc(100% + 3px);
  width: 26px !important;
  height: 26px !important;
  transform: translateY(-50%);
  pointer-events: none;
}
.fotos > .avalon-status-icon.avalon-status-icon--break > img.avalon-status-break-upcoming:not([hidden]) {
  display: block !important;
}
@media (max-width: 760px) {
  .fotos > .avalon-status-icon > img.avalon-status-break-upcoming {
    width: 24px !important;
    height: 24px !important;
  }
}
/* Departure is an explicit Reception flag, not inferred travel or location. */
.fotos > .avalon-status-icon > .avalon-status-fishing,
.fotos > .avalon-status-icon > .avalon-status-fishing-fallback { display: none; }
.fotos > .avalon-status-icon.avalon-status-icon--left { width: 58px; height: 58px; }
.fotos > .avalon-status-icon--left > .avalon-status-fishing:not([hidden]),
.fotos > .avalon-status-icon--left > .avalon-status-fishing-fallback:not([hidden]) { display: block; width: 100%; height: 100%; }
.fotos > .avalon-status-icon--left > .avalon-status-fishing-fallback { color: #f5e5be; font: bold 44px/1 sans-serif; text-shadow: 0 1px 3px #000; }
@media (max-width: 760px) {
  .fotos > .avalon-status-icon.avalon-status-icon--left { width: 52px; height: 52px; }
}
.fotos > .avalon-status-icon > .avalon-status-footprints { display: none; }
.fotos > .avalon-status-icon.avalon-status-icon--left > img { display: none !important; }
.fotos > .avalon-status-icon.avalon-status-icon--left > .avalon-status-footprints {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.avalon-status-footprints .avalon-departure-step { opacity: .9; }
@media (prefers-reduced-motion: no-preference) {
  .avalon-status-icon--left .avalon-departure-step {
    animation: avalon-departure-walk 4.8s ease-in-out infinite;
    animation-delay: calc(var(--avalon-step-phase,0s) + var(--avalon-departure-phase,0s));
  }
  .avalon-status-icon.avalon-footprints--paused .avalon-departure-step { animation-play-state: paused; }
  @keyframes avalon-departure-walk {
    0%,100% { opacity: .62; transform: translateY(1px); }
    25%,45% { opacity: 1; transform: translateY(0); }
    75% { opacity: .75; transform: translateY(-1px); }
  }
}
@media (prefers-reduced-motion: reduce) {
  .avalon-status-icon--left .avalon-departure-step {
    animation: none !important;
    opacity: .9;
    transform: none;
  }
}
/* Appointment-start grace affects only the question, not an accompanying battery. */
.fotos > .avalon-status-icon > img.avalon-status-upcoming-grace {
  filter: hue-rotate(70deg);
}
@media (prefers-reduced-motion: no-preference) {
  .fotos > .avalon-status-icon > img.avalon-status-upcoming-grace {
    animation: avalon-upcoming-grace-glow 4s ease-in-out infinite;
  }
  @keyframes avalon-upcoming-grace-glow {
    0%, 100% { filter: hue-rotate(70deg) brightness(.65); }
    50% { filter: hue-rotate(70deg) brightness(1.15); }
  }
}
@media (prefers-reduced-motion: reduce) {
  .fotos > .avalon-status-icon > img.avalon-status-upcoming-grace {
    animation: none !important;
    filter: hue-rotate(70deg);
  }
}
.fotos > .avalon-status-icon > .avalon-status-battery { display: none; }
.fotos > .avalon-status-icon.avalon-status-icon--break > img {
  display: none !important;
}
.fotos > .avalon-status-icon.avalon-status-icon--break > .avalon-status-battery {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.avalon-status-battery .avalon-battery-pulse { opacity: .9; }
@media (prefers-reduced-motion: no-preference) {
  .fotos > .avalon-status-icon.avalon-status-icon--break > .avalon-status-battery .avalon-battery-pulse {
    animation: avalon-battery-breathe 5s ease-in-out infinite;
    animation-delay: var(--avalon-battery-phase, 0s);
  }
  .fotos > .avalon-status-icon.avalon-battery--paused > .avalon-status-battery .avalon-battery-pulse {
    animation-play-state: paused;
  }
  @keyframes avalon-battery-breathe {
    0%, 100% { opacity: .65; }
    50% { opacity: 1; }
  }
}
@media (prefers-reduced-motion: reduce) {
  .fotos > .avalon-status-icon > .avalon-status-battery .avalon-battery-pulse {
    animation: none !important;
    opacity: .9;
  }
}

/* Owner-requested mobile photo framing. Desktop/gallery/other pages unchanged. */
@media (max-width: 760px) {
  body.avalon-page-schedule.avalon-page-main-section .content-holder > .container {
    box-sizing: border-box;
    width: calc(100% + 22px) !important;
    max-width: none !important;
    margin-left: -11px;
    margin-right: -11px;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* The old -32px inset compensated for padding removed by edge-to-edge photos. */
  body.avalon-page-schedule .content-holder .avalon-mobile-weather-days {
    box-sizing: border-box;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .avalon-page-schedule .content-holder .fotos {
    width: 100%;
    height: auto;
    aspect-ratio: 10 / 11;
  }
  .avalon-page-schedule .content-holder .fotos .img_slide {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
