.aht-timeline, .aht-timeline * { box-sizing: border-box; }
.aht-timeline { margin: 0 auto; max-width: var(--aht-max); padding: 55px 28px; position: relative; width: 100%; }
.aht-items { display: flex; flex-direction: column; gap: var(--aht-gap); position: relative; z-index: 2; }
.aht-item { align-items: center; display: grid; gap: clamp(64px, 10vw, 150px); grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: max(var(--aht-img-h), 260px); opacity: 1; position: relative; }
.aht-item-anchor { height: 1px; left: 50%; position: absolute; top: 50%; width: 1px; }
.aht-visual { display: flex; justify-content: center; min-width: 0; }
.aht-content { background: var(--aht-card); border: 1px solid color-mix(in srgb, var(--aht-line), transparent 64%); border-radius: var(--aht-event-card-radius, var(--aht-card-radius)); padding: clamp(25px, 3.2vw, 43px); position: relative; }
.aht-shadow-soft .aht-content { box-shadow: 0 18px 45px rgba(15, 23, 42, .08); }
.aht-shadow-strong .aht-content { box-shadow: 0 22px 60px rgba(15, 23, 42, .16); }
.aht-item-left .aht-visual { grid-column: 1; grid-row: 1; }
.aht-item-left .aht-content { grid-column: 2; grid-row: 1; }
.aht-item-right .aht-content { grid-column: 1; grid-row: 1; }
.aht-item-right .aht-visual { grid-column: 2; grid-row: 1; }
.aht-image-wrap { border-radius: var(--aht-event-img-radius, var(--aht-img-radius)); height: var(--aht-event-img-h, var(--aht-img-h)); max-width: 100%; overflow: hidden; position: relative; width: min(100%, var(--aht-event-img-w, var(--aht-img-w))); }
.aht-image-wrap.has-image::after { background: var(--aht-event-overlay-color, var(--aht-overlay-color)); content: ""; inset: 0; opacity: var(--aht-event-overlay-opacity, var(--aht-overlay-opacity)); pointer-events: none; position: absolute; z-index: 1; }
.aht-image { border-radius: inherit; box-shadow: 0 18px 40px rgba(15, 23, 42, .11); display: block; height: 100%; max-width: 100%; object-fit: var(--aht-img-fit); width: 100%; }
.aht-image-placeholder { align-items: flex-end; background: linear-gradient(145deg, color-mix(in srgb, var(--aht-active), white 88%), #f8fafc); border-radius: inherit; display: flex; gap: 8%; height: 100%; justify-content: center; overflow: hidden; width: 100%; }
.aht-image-placeholder span { background: color-mix(in srgb, var(--aht-active), white 50%); border-radius: 50% 50% 0 0; display: block; height: 45%; width: 18%; }
.aht-image-placeholder span:nth-child(2) { height: 68%; }
.aht-image-placeholder span:nth-child(3) { height: 34%; }
.aht-year { color: var(--aht-active); font: 700 14px/1.2 var(--aht-title-font); letter-spacing: .08em; margin-bottom: var(--aht-year-title-gap); text-transform: uppercase; }
.aht-year-badge .aht-year { background: color-mix(in srgb, var(--aht-active), white 89%); border-radius: 999px; display: inline-block; padding: 7px 12px; }
.aht-title { color: var(--aht-title) !important; font-family: var(--aht-event-title-font, var(--aht-title-font)) !important; font-size: var(--aht-event-title-size, var(--aht-title-size)) !important; font-weight: 720; letter-spacing: -.025em; line-height: 1.14 !important; margin: 0 0 var(--aht-title-body-gap) !important; text-transform: var(--aht-title-transform); }
.aht-body { color: var(--aht-text); font-family: var(--aht-event-body-font, var(--aht-body-font)); font-size: var(--aht-event-body-size, var(--aht-body-size)); line-height: 1.7; }
.aht-body p { color: inherit; font: inherit; margin: 0 0 1em; }
.aht-body p:last-child { margin-bottom: 0; }
.aht-path-layer { inset: 0; overflow: visible; pointer-events: none; position: absolute; z-index: 3; }
.aht-path-base, .aht-path-progress { fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: var(--aht-line-width); vector-effect: non-scaling-stroke; }
.aht-path-base { stroke: var(--aht-line); }
.aht-path-progress { stroke: var(--aht-active); transition: stroke-dashoffset .08s linear; }
.aht-path-dots circle { fill: var(--aht-card); stroke: var(--aht-active); stroke-width: 3px; vector-effect: non-scaling-stroke; }
.aht-moving-dot { fill: var(--aht-marker); filter: drop-shadow(0 3px 7px rgba(15, 23, 42, .28)); opacity: 0; stroke: var(--aht-marker-border); stroke-width: var(--aht-marker-border-w); transform-box: fill-box; transform-origin: center; transition: opacity .2s ease; vector-effect: non-scaling-stroke; }
.aht-marker-ring { fill: none; opacity: 0; stroke: var(--aht-marker-border); stroke-width: 3px; transform-box: fill-box; transform-origin: center; vector-effect: non-scaling-stroke; }
.aht-marker-hit-pulse .aht-moving-dot { animation: aht-marker-pulse .72s ease-out; }
.aht-marker-hit-ripple .aht-marker-ring { animation: aht-marker-ripple .9s ease-out; }
.aht-marker-hit-bounce .aht-moving-dot { animation: aht-marker-bounce .7s cubic-bezier(.34, 1.56, .64, 1); }
.aht-marker-hit-glow .aht-moving-dot { animation: aht-marker-glow .85s ease-out; }
.aht-marker-hit-pop .aht-moving-dot { animation: aht-marker-pop .58s cubic-bezier(.34, 1.56, .64, 1); }
@keyframes aht-marker-pulse { 0%, 100% { transform: scale(1); } 45% { transform: scale(1.7); } }
@keyframes aht-marker-ripple { 0% { opacity: .85; transform: scale(.65); } 100% { opacity: 0; transform: scale(2.8); } }
@keyframes aht-marker-bounce { 0%, 100% { transform: translateY(0); } 38% { transform: translateY(-15px); } 68% { transform: translateY(4px); } }
@keyframes aht-marker-glow { 0%, 100% { filter: drop-shadow(0 3px 7px rgba(15, 23, 42, .28)); } 45% { filter: drop-shadow(0 0 15px var(--aht-marker-border)) drop-shadow(0 0 26px var(--aht-marker-border)); } }
@keyframes aht-marker-pop { 0% { transform: scale(.55); } 50% { transform: scale(1.75); } 76% { transform: scale(.9); } 100% { transform: scale(1); } }
.aht-fallback-line { background: var(--aht-line); bottom: 55px; left: 50%; position: absolute; top: 55px; width: var(--aht-line-width); }
.aht-enhanced .aht-fallback-line { display: none; }
.aht-reveal-fade-up .aht-item, .aht-reveal-fade .aht-item { opacity: 0; transition: opacity .65s ease, transform .65s cubic-bezier(.22, 1, .36, 1); }
.aht-reveal-fade-up .aht-item { transform: translateY(34px); }
.aht-reveal-fade-up .aht-item.is-visible, .aht-reveal-fade .aht-item.is-visible { opacity: 1; transform: none; }
.aht-message { background: #f8fafc; border-left: 4px solid #2563eb; padding: 14px 17px; }

@media (max-width: 767px) {
  .aht-timeline { padding: 35px 12px 35px 52px; }
  .aht-items { gap: max(55px, calc(var(--aht-gap) * .62)); }
  .aht-item { display: flex; flex-direction: column; gap: 22px; min-height: 0; }
  .aht-item-anchor { left: -30px; }
  .aht-content, .aht-visual { width: 100%; }
  .aht-content { order: 1; padding: 25px 22px; }
  .aht-visual { order: 2; }
  .aht-image-wrap { height: min(var(--aht-event-img-h, var(--aht-img-h)), 62vw); width: 100%; }
  .aht-fallback-line { left: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .aht-timeline .aht-item { opacity: 1 !important; transform: none !important; transition: none !important; }
  .aht-moving-dot, .aht-marker-ring, .aht-path-progress { animation: none !important; transition: none; }
}

@supports not (color: color-mix(in srgb, white, black)) {
  .aht-content { border-color: #e2e8f0; }
  .aht-year-badge .aht-year { background: #eff6ff; }
  .aht-image-placeholder { background: #f1f5f9; }
}
