.timeline-page{--timeline-paper:#f8f2ea;--timeline-ink:#211b18;background:var(--timeline-paper);color:var(--timeline-ink)}.timeline-desktop{position:relative;display:grid;height:calc(100svh - var(--site-header-height));min-height:690px;grid-template-rows:auto minmax(430px,1fr) 68px;overflow:hidden;background:radial-gradient(circle at 14% 9%,rgb(239 179 83/14%),transparent 24rem),radial-gradient(circle at 86% 84%,rgb(141 82 111/10%),transparent 24rem),var(--timeline-paper)}.timeline-head{position:relative;z-index:20;display:grid;grid-template-columns:minmax(20rem,1fr) auto;gap:.8rem 2rem;padding:1.15rem 1.75rem .65rem;border-bottom:1px solid rgb(33 27 24/8%);background:rgb(248 242 234/88%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.timeline-mobile h1,.timeline-title-wrap h1{margin:.2rem 0 0;max-width:20ch;color:var(--timeline-ink);font-size:clamp(1.85rem,3vw,3.4rem);line-height:.94;letter-spacing:-.055em}.timeline-eyebrow{margin:0;color:#9c4c34;font-weight:600;letter-spacing:.16em}.timeline-eyebrow,.timeline-legend{font-family:var(--font-mono),ui-monospace,monospace;font-size:.58rem;text-transform:uppercase}.timeline-legend{display:flex;align-items:flex-start;justify-content:flex-end;gap:.35rem .85rem;padding-top:.25rem;color:rgb(33 27 24/66%)}.timeline-legend-item{display:inline-flex;align-items:center;gap:.38rem;white-space:nowrap}.timeline-legend-item i{display:block;width:.62rem;height:.62rem;border:2px solid #302621;border-radius:50%}.timeline-legend-item--traditional i{border-color:#a36b19;border-radius:1px;background:#f1c259;transform:rotate(45deg) scale(.72)}.timeline-legend-item--contested i{border-color:#a94e30;border-style:dashed}.timeline-help{margin-left:.3rem;border:0;border-bottom:1px solid;background:transparent;color:#9c4c34;font:inherit;text-transform:inherit;cursor:pointer}.timeline-eras{grid-column:1/-1;display:flex;gap:.35rem;overflow-x:auto;padding:.25rem 0 .2rem;scrollbar-width:none}.timeline-eras::-webkit-scrollbar{display:none}.timeline-eras button{display:flex;min-width:max-content;flex-direction:column;align-items:flex-start;gap:.05rem;padding:.44rem .72rem;border:1px solid rgb(33 27 24/13%);border-radius:999px;background:transparent;color:rgb(33 27 24/76%);font-size:.72rem;line-height:1.1;cursor:pointer;transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease}.timeline-eras button:hover{transform:translateY(-1px);border-color:rgb(33 27 24/34%)}.timeline-eras button[aria-pressed=true]{border-color:var(--timeline-ink);background:var(--timeline-ink);color:#fff9f0}.timeline-eras small{font-family:var(--font-mono),ui-monospace,monospace;font-size:.45rem;opacity:.58}.timeline-guide{position:absolute;z-index:45;top:9.6rem;right:1.75rem;display:grid;width:min(25rem,calc(100% - 3.5rem));gap:.25rem;padding:.85rem 1rem;border:1px solid rgb(255 255 255/24%);border-radius:.7rem;background:rgb(33 27 24/94%);color:#fff9f0;box-shadow:0 20px 40px rgb(33 27 24/18%);animation:timeline-card-in .22s cubic-bezier(.2,1,.3,1) both}.timeline-guide strong{font-size:.78rem}.timeline-guide span{color:rgb(255 249 240/70%);font-size:.72rem;line-height:1.45}.timeline-field{position:relative;min-height:0;overflow:hidden;touch-action:pan-y;user-select:none;cursor:grab}.timeline-field[data-dragging=true]{cursor:grabbing}.timeline-atmosphere{position:absolute;inset:0;background-image:radial-gradient(circle at 7% 18%,#c66347 0 1.4px,transparent 1.8px),radial-gradient(circle at 18% 76%,#dfad4a 0 1.6px,transparent 2px),radial-gradient(circle at 48% 12%,#8d526f 0 1.3px,transparent 1.8px),radial-gradient(circle at 74% 68%,#5e806c 0 1.5px,transparent 2px),radial-gradient(circle at 93% 34%,#596a8d 0 1.4px,transparent 1.8px);background-size:191px 137px,263px 181px,223px 157px,281px 197px,173px 149px;opacity:.34;animation:timeline-drift 28s linear infinite alternate}.timeline-bound{position:absolute;z-index:8;top:.35rem;color:var(--timeline-ink);font-family:var(--font-display),system-ui,sans-serif;font-size:clamp(1.65rem,3.4vw,3.75rem);font-weight:800;letter-spacing:-.06em}.timeline-bound--start{left:1.75rem}.timeline-bound--end{right:1.75rem}.timeline-rivers{position:absolute;inset:3.25rem 0 1.8rem;width:100%;height:calc(100% - 5.05rem);overflow:visible}.timeline-river{fill:none;stroke-width:76px;stroke-linecap:round;opacity:.92;animation:timeline-river-in .9s cubic-bezier(.22,1,.36,1) both}.timeline-river:nth-of-type(2){animation-delay:70ms}.timeline-river:nth-of-type(3){animation-delay:.14s}.timeline-river:nth-of-type(4){animation-delay:.21s}.timeline-river:nth-of-type(5){animation-delay:.28s}.timeline-river-line{fill:none;stroke:rgb(255 251 245/77%);stroke-width:1.2px}.timeline-lane-labels{position:absolute;z-index:10;inset:3.25rem 0 1.8rem;pointer-events:none}.timeline-lane-labels span{position:absolute;right:1.6rem;width:9.2rem;color:#fffaf2;font-family:var(--font-mono),ui-monospace,monospace;font-size:.58rem;font-weight:600;letter-spacing:.03em;text-align:right;text-shadow:0 1px 4px rgb(33 27 24/20%);transform:translateY(-50%)}.timeline-lane-labels span:first-child{top:11.2%}.timeline-lane-labels span:nth-child(2){top:30.3%}.timeline-lane-labels span:nth-child(3){top:49.4%}.timeline-lane-labels span:nth-child(4){top:68.5%}.timeline-lane-labels span:nth-child(5){top:87.6%}.timeline-reticle{position:absolute;z-index:9;top:2.9rem;bottom:1.55rem;left:50%;width:1px;background:rgb(33 27 24/68%);pointer-events:none}.timeline-reticle:after,.timeline-reticle:before{content:"";position:absolute;left:50%;width:.55rem;height:1px;background:var(--timeline-ink);transform:translateX(-50%)}.timeline-reticle:before{top:0}.timeline-reticle:after{bottom:0}.timeline-reticle>span{position:absolute;bottom:-.15rem;left:50%;padding:.25rem .45rem;border-radius:999px;background:var(--timeline-ink);color:#fffaf2;font-family:var(--font-mono),ui-monospace,monospace;font-size:.52rem;white-space:nowrap;transform:translate(-50%,100%)}.timeline-markers{position:absolute;z-index:12;inset:3.25rem 0 1.8rem}.timeline-marker{--dot-size:0.82rem;position:absolute;top:var(--marker-y);left:var(--marker-x);width:var(--dot-size);height:var(--dot-size);padding:0;border:0;background:transparent;cursor:pointer;transform:translate(-50%,calc(-50% + var(--marker-offset)))}.timeline-marker-dot{position:absolute;inset:0;display:block;border:2px solid #fffaf2;border-radius:50%;background:var(--timeline-ink);box-shadow:0 0 0 1px rgb(33 27 24/26%);transition:transform .18s cubic-bezier(.2,1,.3,1),box-shadow .18s ease}.timeline-marker--traditional .timeline-marker-dot{border-radius:2px;background:#f4c45c;transform:rotate(45deg) scale(.78)}.timeline-marker--contested .timeline-marker-dot{border:2px dashed #fffaf2;background:#a94e30}.timeline-marker:focus-visible .timeline-marker-dot,.timeline-marker:hover .timeline-marker-dot{transform:scale(1.5);box-shadow:0 0 0 5px rgb(255 250 242/24%)}.timeline-marker--traditional:focus-visible .timeline-marker-dot,.timeline-marker--traditional:hover .timeline-marker-dot{transform:rotate(45deg) scale(1.28)}.timeline-marker[data-selected=true]{--dot-size:1.25rem;z-index:18}.timeline-marker[data-selected=true] .timeline-marker-dot{background:#fffaf2;box-shadow:0 0 0 3px var(--timeline-ink),0 0 0 9px rgb(255 250 242/34%);animation:timeline-selected 1.9s ease-in-out infinite}.timeline-marker--traditional[data-selected=true] .timeline-marker-dot{background:#f4c45c}.timeline-marker--contested[data-selected=true] .timeline-marker-dot{background:#a94e30}.timeline-marker-label{position:absolute;top:50%;left:calc(100% + .5rem);width:max-content;max-width:12rem;overflow:hidden;color:#fffaf2;font-size:.62rem;font-weight:600;opacity:0;pointer-events:none;text-overflow:ellipsis;text-shadow:0 1px 4px rgb(33 27 24/40%);white-space:nowrap;transform:translateY(-50%);transition:opacity .15s ease}.timeline-marker:focus-visible .timeline-marker-label,.timeline-marker:hover .timeline-marker-label{opacity:1}.timeline-event-card{position:absolute;z-index:25;top:49%;left:max(1.25rem,calc(50% - 31rem));width:min(25rem,calc(50% - 4.5rem));padding:1rem 1.05rem .8rem;border:1px solid rgb(255 255 255/14%);border-radius:.85rem;background:rgb(33 27 24/94%);color:#fffaf2;box-shadow:0 22px 55px rgb(33 27 24/20%);transform:translateY(-50%);animation:timeline-card-in .28s cubic-bezier(.2,1,.3,1) both}.timeline-event-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .55rem;font-family:var(--font-mono),ui-monospace,monospace;font-size:.54rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.timeline-event-card .timeline-event-meta{color:rgb(255 250 242/68%)}.timeline-event-card h2{margin:.65rem 0 0;color:#fffaf2;font-size:clamp(1.1rem,1.55vw,1.45rem);line-height:1.02}.timeline-event-card>p{margin:.5rem 0 0;color:rgb(255 250 242/74%);font-size:.72rem;line-height:1.45}.timeline-basis{display:inline-flex;padding:.18rem .4rem;border:1px solid;border-radius:999px;font-family:var(--font-mono),ui-monospace,monospace;font-size:.48rem;font-weight:700;letter-spacing:.06em;line-height:1;text-transform:uppercase}.timeline-basis--historical{color:#5e997a}.timeline-event-card .timeline-basis--historical{color:#94d0ad}.timeline-basis--traditional{color:#a36b19}.timeline-event-card .timeline-basis--traditional{color:#efc96e}.timeline-basis--contested{color:#a94e30;border-style:dashed}.timeline-event-card .timeline-basis--contested{color:#ef977f}.timeline-event-foot{display:grid;gap:.35rem;margin-top:.55rem;padding-top:.5rem;border-top:1px solid rgb(255 255 255/12%);color:rgb(255 250 242/54%);font-size:.58rem;line-height:1.35}.timeline-event-foot a,.timeline-source-list a{color:inherit;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px}.timeline-event-foot>a{color:#f0bc8f;font-weight:700;text-decoration:none}.timeline-event-nav{position:absolute;right:.75rem;bottom:-1.05rem;display:flex;align-items:center;overflow:hidden;border:1px solid rgb(255 255 255/18%);border-radius:999px;background:var(--timeline-ink);color:rgb(255 250 242/66%);font-family:var(--font-mono),ui-monospace,monospace;font-size:.5rem}.timeline-event-nav button{width:2rem;height:2rem;border:0;background:transparent;color:#fffaf2;cursor:pointer}.timeline-event-nav button:disabled{opacity:.25;cursor:default}.timeline-present{position:absolute;z-index:24;right:1.5rem;bottom:.4rem;display:flex;max-width:calc(50% - 2rem);align-items:center;gap:.35rem;padding:.35rem;border:1px solid rgb(33 27 24/13%);border-radius:999px;background:rgb(248 242 234/88%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:rgb(33 27 24/68%);font-family:var(--font-mono),ui-monospace,monospace;font-size:.5rem;overflow:hidden}.timeline-present a,.timeline-present button{min-width:max-content;padding:.35rem .55rem;border:0;border-radius:999px;background:transparent;color:inherit;text-decoration:none}.timeline-present button{display:flex;align-items:center;gap:.4rem;background:var(--timeline-ink);color:#fffaf2;cursor:pointer}.timeline-present button i{width:.4rem;height:.4rem;border-radius:50%;background:#8fc49f;box-shadow:0 0 0 4px rgb(143 196 159/16%);animation:timeline-pulse 2s ease-in-out infinite}.timeline-zoom{position:absolute;z-index:25;bottom:.4rem;left:1.5rem;display:flex;align-items:center;overflow:hidden;border:1px solid rgb(33 27 24/15%);border-radius:999px;background:rgb(248 242 234/88%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:rgb(33 27 24/60%);font-family:var(--font-mono),ui-monospace,monospace;font-size:.5rem}.timeline-zoom button{width:2rem;height:1.9rem;border:0;background:transparent;color:var(--timeline-ink);font-size:1rem;cursor:pointer}.timeline-zoom span{min-width:4.5rem;text-align:center}.timeline-scrubber{position:relative;z-index:30;display:grid;grid-template-columns:10rem 1fr;align-items:center;gap:0 1.2rem;padding:.55rem 1.75rem .5rem;border-top:1px solid rgb(33 27 24/9%);background:rgb(248 242 234/96%)}.timeline-scrubber label{display:grid;gap:.12rem;color:rgb(33 27 24/55%);font-family:var(--font-mono),ui-monospace,monospace;font-size:.48rem;letter-spacing:.08em;text-transform:uppercase}.timeline-scrubber label span{color:var(--timeline-ink);font-family:var(--font-display),system-ui,sans-serif;font-size:1rem;font-weight:700;letter-spacing:-.03em;text-transform:none}.timeline-scrubber input{width:100%;accent-color:#a94e30;cursor:ew-resize}.timeline-scrubber>div{grid-column:2;display:flex;justify-content:space-between;margin-top:-.08rem;color:rgb(33 27 24/42%);font-family:var(--font-mono),ui-monospace,monospace;font-size:.44rem;text-transform:uppercase}.timeline-mobile{display:none}@keyframes timeline-river-in{0%{opacity:0;transform:translateX(-6rem)}to{opacity:.92;transform:none}}@keyframes timeline-card-in{0%{opacity:0;filter:blur(5px)}to{opacity:1;filter:none}}@keyframes timeline-drift{0%{transform:translate3d(-1.2%,-1%,0)}to{transform:translate3d(1.2%,1%,0)}}@keyframes timeline-selected{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@keyframes timeline-pulse{0%,to{opacity:.58;transform:scale(.86)}50%{opacity:1;transform:scale(1.1)}}@media (max-width:1120px){.timeline-head{padding-inline:1rem}.timeline-legend{gap:.35rem}.timeline-legend-item{font-size:.52rem}.timeline-event-card{left:1rem;width:calc(50% - 3rem)}.timeline-lane-labels span{right:.85rem;width:7.5rem}.timeline-present a:nth-of-type(n+2){display:none}}@media (max-width:900px){.timeline-desktop{display:none}.timeline-mobile{display:block;min-height:100svh;padding:3.25rem 1.1rem 4.5rem;background:radial-gradient(circle at 95% 3%,rgb(224 168 126/20%),transparent 18rem),linear-gradient(180deg,rgb(251 249 246/78%),rgb(245 242 236/92%))}.timeline-mobile h1{margin-top:.65rem;font-size:clamp(2.5rem,12vw,4.2rem)}.timeline-mobile-intro{max-width:35rem;margin:1.2rem 0 0;color:var(--ink-soft);font-size:1rem;line-height:1.55}.timeline-mobile-legend{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.1rem}.timeline-mobile-eras{margin-top:2.5rem;border-top:1px solid var(--line-soft)}.timeline-mobile-eras details{border-bottom:1px solid var(--line-soft)}.timeline-mobile-eras summary{display:flex;min-height:4.75rem;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;list-style:none}.timeline-mobile-eras summary::-webkit-details-marker{display:none}.timeline-mobile-eras summary:after{content:"+";color:var(--accent-deep);font-size:1.4rem}.timeline-mobile-eras details[open] summary:after{content:"−"}.timeline-mobile-eras summary>span{color:var(--ink);font-family:var(--font-display),system-ui,sans-serif;font-size:1.2rem;font-weight:700}.timeline-mobile-eras summary small{margin-left:auto;color:var(--ink-faint);font-family:var(--font-mono),ui-monospace,monospace;font-size:.54rem;text-align:right}.timeline-mobile-list{position:relative;display:grid;padding:.5rem 0 2.4rem 1.6rem}.timeline-mobile-list:before{content:"";position:absolute;top:.75rem;bottom:2.65rem;left:.3rem;width:1px;background:linear-gradient(var(--accent),transparent)}.timeline-mobile-list article{position:relative;padding:1rem 0 1.25rem;border-bottom:1px solid var(--line)}.timeline-mobile-list article:before{content:"";position:absolute;top:1.28rem;left:-1.55rem;width:.56rem;height:.56rem;border:2px solid var(--paper);border-radius:50%;background:var(--accent-deep);box-shadow:0 0 0 1px var(--accent-deep)}.timeline-mobile-list h2{margin:.65rem 0 0;font-size:1.35rem}.timeline-mobile-list article>p{margin:.55rem 0 0;color:var(--ink-soft);font-size:.91rem;line-height:1.55}.timeline-mobile-list article>a{display:inline-block;margin-top:.65rem;color:var(--accent-deep);font-size:.8rem;font-weight:700}.timeline-mobile-sources{color:var(--ink-faint)!important;font-size:.68rem!important}.timeline-mobile-present{display:grid;gap:.65rem;margin-top:3rem;padding:1.4rem;border-radius:1rem;background:var(--ink);color:var(--paper)}.timeline-mobile-present>span{color:#efc96e;font-family:var(--font-mono),ui-monospace,monospace;font-size:.58rem;letter-spacing:.12em;text-transform:uppercase}.timeline-mobile-present h2{margin:0;color:var(--paper);font-size:1.55rem}.timeline-mobile-present a{color:rgb(251 249 246/76%);font-size:.82rem}.timeline-correction{display:inline-block;margin-top:1.5rem;color:var(--accent-deep);font-weight:700}}@media (prefers-reduced-motion:reduce){.timeline-page *,.timeline-page :after,.timeline-page :before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}