.carousel-container{display:block;position:relative;width:100%;max-width:500px;overflow:hidden;background:#111827;border:1px solid rgba(243,197,166,.14);border-radius:24px;isolation:isolate}
.carousel-track{display:flex;width:100%;align-items:stretch;transition:transform .45s ease}
.carousel-slide{flex:0 0 100%;min-width:0;width:100%;position:relative}
.carousel-photo-frame{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;background:radial-gradient(ellipse at center,#293040 0%,#111827 75%)}
.carousel-photo-frame .photo-preview{display:block;width:100%;height:100%;max-width:none;border-radius:0;object-fit:contain;cursor:zoom-in}
.carousel-caption{height:76px;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:10px 48px 12px;text-align:center;background:rgba(17,24,39,.96);white-space:normal}
.carousel-caption time{font-size:.76rem;color:#baa996;letter-spacing:.06em}
.carousel-caption strong{font-size:.95rem;font-weight:500;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.carousel-btn{width:38px;height:38px;line-height:34px;padding:0;font-size:1.8rem;background:rgba(7,12,22,.65);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(6px)}
#featured-carousel .carousel-btn{top:calc((100% - 76px)/2)}
.carousel-btn:disabled{visibility:hidden}.carousel-counter{position:absolute;right:12px;top:12px;z-index:2;padding:3px 9px;border-radius:12px;background:rgba(7,12,22,.65);font-size:.72rem;color:#fff;pointer-events:none}
.photo-preview{background:#1b2433;cursor:zoom-in;object-fit:cover}.photo-preview:focus-visible{outline:2px solid #f3c5a6;outline-offset:-3px}.photo-unavailable{opacity:.4}
.timeline-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin-top:12px;white-space:normal}
.timeline-photo-grid .photo-preview{width:100%;height:auto;aspect-ratio:1;border-radius:12px}
.album-thumb{width:80px;height:80px;border-radius:15px}.home-admin-thumb{width:40px;height:40px;border-radius:8px;vertical-align:middle}.drawing-thumb{width:100px;height:auto;border-radius:15px;object-fit:contain}
.timeline-header{gap:8px;flex-wrap:wrap}.timeline-header>strong{flex:1 1 180px;min-width:0}.timeline-header .btn{flex-shrink:0}
.original-viewer{position:fixed;inset:0;z-index:9999;background:rgba(4,8,15,.97);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:60px 16px 22px}
.original-photo{display:block;max-width:100%;max-height:calc(100dvh - 155px);object-fit:contain;min-height:0}
.original-close{position:absolute;right:18px;top:12px;width:44px;height:44px;border-radius:50%;border:1px solid #606878;background:#17202d;color:white;font-size:32px;cursor:pointer}
.original-status{font-size:.85rem;color:#c4c9d1;text-align:center}.original-link{color:#f3c5a6;font-size:.85rem;padding:4px 12px}.carousel-empty{height:240px;display:grid;place-items:center;color:#aaa}
@supports not (height:100dvh){.original-photo{max-height:calc(100vh - 155px)}}
@media(max-width:420px){.container{padding:0 12px}section{padding:24px 14px}h2{font-size:1.65rem}.carousel-container{border-radius:18px}.carousel-caption{padding-left:16px;padding-right:16px}.carousel-photo-frame{aspect-ratio:4/3}}
@media(prefers-reduced-motion:reduce){.carousel-track{transition:none}}
