.zdt-timeline-shell{
    --zdt-accent:#27b34a;
    --zdt-line:#0b6b63;
    --zdt-bg:#efefef;
    --zdt-card:#ffffff;
    --zdt-text:#666b70;
    --zdt-shadow:0 14px 34px rgba(0,0,0,.08);
    position:relative;
    background:var(--zdt-bg);
    padding:40px 44px 38px;
    overflow:hidden;
}
.zdt-topbar{
    display:grid;
    grid-template-columns:52px 1fr 52px;
    align-items:center;
    gap:18px;
    margin:0 auto 34px;
}
.zdt-arrow{
    width:40px;height:40px;border-radius:8px;border:2px solid var(--zdt-line);background:transparent;color:var(--zdt-line);
    display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;padding:0;font-size:27px;line-height:1;
}
.zdt-arrow:hover{background:#fff;transform:translateY(-1px)}
.zdt-arrow:disabled{opacity:.5;cursor:not-allowed;transform:none}
.zdt-progress{position:relative;height:32px}
.zdt-progress-line{position:absolute;left:0;right:0;top:50%;height:2px;transform:translateY(-50%);background:var(--zdt-line)}
.zdt-progress-dots{position:relative;z-index:2;height:100%}
.zdt-progress-dots button{position:absolute;top:50%;transform:translate(-50%,-50%);width:18px;height:18px;border-radius:999px;border:none;background:#000;box-shadow:0 0 0 5px var(--zdt-bg);padding:0;cursor:pointer;transition:transform .2s ease,background .2s ease}
.zdt-progress-dots button.is-active{background:var(--zdt-accent);transform:translate(-50%,-50%) scale(1.45)}
.zdt-progress-dots button:hover{transform:translate(-50%,-50%) scale(1.15)}
.zdt-viewport{overflow:hidden}
.zdt-track{display:flex;gap:28px;transition:transform .45s cubic-bezier(.2,.8,.2,1);will-change:transform;touch-action:pan-y}
.zdt-card{position:relative;flex:0 0 calc((100% - 56px)/3)}
.zdt-card-inner{background:var(--zdt-card);padding:18px 18px 14px;min-height:324px;height:100%;box-shadow:0 0 0 1px rgba(0,0,0,.02);transition:transform .24s ease,box-shadow .24s ease}
.zdt-card:hover .zdt-card-inner{transform:translateY(-2px);box-shadow:var(--zdt-shadow)}
.zdt-card-hit{position:absolute;inset:0;z-index:3;background:transparent;border:none;cursor:pointer}
.zdt-image-wrap{width:100%;aspect-ratio:1.82 / 1;overflow:hidden;background:#ddd;margin-bottom:18px}
.zdt-image-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.zdt-no-image{color:#616161;font-size:14px;padding:18px}
.zdt-card-body{font-size:18px;line-height:1.18;color:var(--zdt-text)}
.zdt-card-text{word-break:break-word}
.zdt-card-year{display:none !important}
.zdt-mobile-hint{display:none;margin-top:16px;font-size:13px;color:#6f757a;text-align:center}
.zdt-modal[hidden]{display:none}
.zdt-modal{position:fixed;inset:0;z-index:99999}
.zdt-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.84)}
.zdt-modal-dialog{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;min-height:100vh;padding:36px}
.zdt-modal-panel{position:relative;width:min(860px, calc(100vw - 80px));background:#fff;box-shadow:0 30px 70px rgba(0,0,0,.35)}
.zdt-modal-close{position:absolute;top:-52px;right:0;width:auto;min-width:120px;height:40px;border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.15);color:#fff;font-size:14px;letter-spacing:.02em;cursor:pointer;padding:0 16px}
.zdt-modal-close:hover{background:rgba(255,255,255,.14)}
.zdt-modal-media{background:#111}
.zdt-modal-image{display:block;width:100%;max-height:72vh;object-fit:contain;margin:0 auto;background:#111}
.zdt-modal-caption{background:#fff;padding:18px 18px 20px;min-height:58px}
.zdt-modal-year{font-size:18px;color:#111;font-weight:500;margin-bottom:8px}
.zdt-modal-text{color:#555b60;font-size:16px;line-height:1.5}
.zdt-modal-text:empty{display:none}
.zdt-modal-text p{margin:0 0 10px}
.zdt-modal-text p:last-child{margin-bottom:0}
body.zdt-modal-open{overflow:hidden}
@media (max-width:1100px){
  .zdt-card{flex-basis:calc((100% - 28px)/2)}
  .zdt-card-inner{min-height:305px}
}
@media (max-width:767px){
  .zdt-timeline-shell{padding:24px 18px 22px}
  .zdt-topbar{grid-template-columns:42px 1fr 42px;gap:10px;margin-bottom:22px}
  .zdt-arrow{width:34px;height:34px;font-size:24px}
  .zdt-card{flex-basis:100%}
  .zdt-card-inner{padding:14px 14px 16px;min-height:0}
  .zdt-card-body{font-size:16px}
  .zdt-mobile-hint{display:block}
  .zdt-modal-dialog{padding:14px}
  .zdt-modal-panel{width:min(860px, calc(100vw - 28px))}
  .zdt-modal-close{top:-46px;min-width:92px;height:36px;padding:0 12px}
  .zdt-modal-caption{padding:14px 14px 16px}
  .zdt-modal-year{font-size:17px}
  .zdt-modal-text{font-size:15px}
}


/* v1.3.2 modal/scroll lock fix */
html.zdt-modal-open,
body.zdt-modal-open{
    overflow:hidden !important;
    overscroll-behavior:none;
    touch-action:none;
}
body.zdt-modal-open{
    position:fixed;
    left:0;
    right:0;
    width:100%;
}
.zdt-modal{
    position:fixed;
    inset:0;
    z-index:2147483000;
    isolation:isolate;
}
.zdt-modal-dialog{
    position:fixed;
    inset:0;
    min-height:0;
    width:100%;
}
.zdt-modal-panel{
    max-width:min(860px, calc(100vw - 80px));
    z-index:2;
}
.zdt-modal-backdrop{
    z-index:0;
}
