:root{--font-outfit:var(--font-harmonyos-sans);--dynamic-background:#fff;--dynamic-font-color:#2a2725;--dynamic-accent-color:#c8a05f;color-scheme:light}
html{scrollbar-gutter:stable}body{color:var(--dynamic-font-color);background:#fff;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--dynamic-accent-color);outline-offset:8px}header{pointer-events:none}header a{pointer-events:auto}.haipai-logo{width:75px;height:48px;object-fit:contain}.year-hero h1{line-height:1.5}.year-display{display:block;white-space:nowrap;color:var(--dynamic-font-color)}.year-range{font-size:clamp(48px,15vw,160px)!important;letter-spacing:-.035em}.exact-intro{height:calc(640px + 200lvh)}.intro-overlay{z-index:2}.intro-sticky{overflow:hidden}.intro-image{height:100%;width:100%;opacity:0;filter:blur(30px);will-change:opacity,filter,transform}.intro-image img{width:100%;height:100%;object-fit:cover}.image-caption{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);font-size:12px;color:white;text-shadow:0 1px 5px #0008}.story-space{height:25lvh}.history-story{margin-top:48px;margin-bottom:25lvh;align-items:start}.story-figure img{max-height:90lvh}.story-figure figcaption{text-align:center;font-size:12px;line-height:1.4;opacity:.6}.event-copy{margin-top:24px}.story-copy h2{overflow-wrap:anywhere}.next-year{background:#2a2725;color:#c8a05f;margin-top:25lvh;gap:30px}.next-year-link{display:flex;flex-direction:column;align-items:center;line-height:1;gap:36px}.next-year .year-display{color:inherit}.next-year-link:hover{color:white}.next-year-link svg{transition:transform .25s}.next-year-link:hover svg{transform:translateX(8px)}footer{background:#2a2725;color:#fff;font-size:12px;padding:24px 40px;text-align:center;opacity:1}.reading-progress{position:fixed;left:0;top:0;height:100vh;width:2px;background:#ff6900;transform:scaleY(0);transform-origin:top;z-index:80;pointer-events:none}.current-year{opacity:0;transition:opacity .3s;pointer-events:none}.current-year.is-visible{opacity:1}.current-year:has(+*){max-width:180px}.next-fixed{position:fixed;bottom:32px;left:40px;z-index:40;color:var(--dynamic-accent-color);transition:transform .2s}.next-fixed:hover{transform:scale(1.2)}.language-label{position:fixed;right:40px;top:32px;z-index:40;font-size:20px;line-height:24px}.directory-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;width:28px;height:28px;color:var(--dynamic-accent-color);background:none;border:none;cursor:pointer}.directory-toggle span{width:28px;height:2px;display:block;background:currentColor;transition:transform .3s,opacity .2s}.directory-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(8px) rotate(45deg)}.directory-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.directory-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.directory{position:fixed;inset:0;z-index:61;height:100dvh;overflow-y:auto;overscroll-behavior:contain;background:#ffffffb3;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:0 28px;scrollbar-width:none}.directory[hidden]{display:none}.directory-inner{display:flex;gap:32px;padding:33.33lvh 0;min-height:100%}.directory-inner>h2{flex:1;text-align:right;color:var(--dynamic-accent-color);font-size:20px;font-weight:600;line-height:1;padding-top:2px}.directory ol{display:flex;flex:1;flex-direction:column;gap:32px;padding-right:60px}.timeline-row{position:relative;line-height:1.25;font-size:20px;transform-origin:left}.timeline-row a{display:flex;gap:12px;align-items:baseline;transform-origin:left;transition:transform .2s}.timeline-row a:hover{transform:scale(1.1)}.timeline-row.current{color:var(--dynamic-accent-color);font-weight:600}.tick{display:block;flex:0 0 20px;width:20px;height:1px;background:currentColor;align-self:center;margin-right:8px}.timeline-row+.timeline-row:before{content:"";position:absolute;left:0;bottom:calc(50% + 12px);height:32px;width:4px;background:repeating-linear-gradient(to top,currentColor 0,currentColor 1px,transparent 1px,transparent 8px);opacity:.45}.nav-year{display:block;flex:0 0 52px;white-space:nowrap}.nav-event{display:block;font-weight:400}body.directory-open .current-year,body.directory-open .next-fixed,body.directory-open .language-label{opacity:0}body.directory-open .directory-toggle{z-index:63}body.is-dark .haipai-logo{filter:brightness(0) invert(1)}body.is-dark .language-label{color:white}body.is-dark .current-year,body.is-dark .next-fixed,body.is-dark .directory-toggle{color:#c8a05f}body.is-dark.directory-open .haipai-logo{filter:none}
@media(min-width:1536px){.directory-inner>h2,.timeline-row{font-size:30px}.nav-year{flex-basis:72px}.directory ol{padding-right:10vw}}
@media(max-width:1023px){.history-story{margin-bottom:25lvh}.story-figure{margin-bottom:24px}.story-copy{max-width:650px;margin:auto;width:100%}.story-figure img{max-height:75lvh}.history-story .story-copy{order:2}}
@media(max-width:767px){header{padding-top:16px}.haipai-logo{width:50px;height:32px}.intro-overlay h3{overflow-wrap:anywhere;line-height:1.12}.intro-overlay p{line-height:1.6}.current-year{max-width:155px!important;font-size:20px;top:24px;left:28px}.current-year.is-visible{padding-right:8px;background:linear-gradient(90deg,#ffffffd9 85%,transparent)}.language-label{top:auto;right:auto;left:28px;bottom:28px;font-size:16px}.next-fixed{top:24px;bottom:auto;right:28px;left:auto}.story-space{height:12lvh}.intro-image img{object-position:50% 50%}.history-story{margin-top:0}.next-year{gap:24px;margin-top:20lvh}.next-year-link{gap:30px}.directory-inner{display:block;padding:25lvh 0}.directory-inner>h2{text-align:right;margin-bottom:32px;padding:0;font-size:20px}.directory ol{padding:0;gap:32px}.timeline-row{font-size:18px}.timeline-row a{flex-direction:row-reverse;gap:12px}.tick{margin-right:0;margin-left:8px;flex-basis:20px}.nav-year{flex-basis:44px;text-align:right}.nav-event{text-align:right;flex:1}.timeline-row+.timeline-row:before{right:0;left:auto}.directory-toggle{width:32px;height:32px}.directory-toggle span{width:28px}.image-caption{bottom:80px}.year-hero .year-display{font-size:128px}.year-hero .year-range{font-size:15vw!important}.next-year .year-display{font-size:128px}.next-year .year-range{font-size:15vw!important}footer{padding-bottom:84px}body.is-dark .current-year.is-visible{background:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}[data-reveal]{transform:none!important;opacity:1!important}.intro-image{filter:none!important}}
@media(min-width:768px) and (max-width:1279px){.current-year-range{font-size:16px;line-height:1.15;max-width:60px!important;white-space:nowrap}.current-year-range>span{display:block}}

/* A larger, tightly set statement closes the same black-to-white scroll. */
.history-end{padding:0;text-align:center;background:#fff}
.history-end .year-handoff-stage,.history-end .year-handoff-light{padding:80px 96px}
.history-end .history-end-title{display:flex;flex-direction:column;gap:.32em;width:9.2em;max-width:1280px;font-family: var(--font-harmonyos-sans);font-size:clamp(64px,8.2vw,152px);font-weight:600;line-height:1.16;letter-spacing:.035em;color:#c8a05f}
.history-end-title span{display:block;align-self:flex-start;white-space:nowrap}
.history-end-title span+span{align-self:flex-end}
@media(max-width:767px){
  .history-end .year-handoff-stage,.history-end .year-handoff-light{padding:80px 28px}
  .history-end .history-end-title{width:100%;max-width:600px;font-size:clamp(44px,14vw,80px);gap:.42em;letter-spacing:.02em}
}

/* Original EraNavigation SVG geometry; keep the accessible button wrapper. */
.directory-toggle{align-items:center;gap:0}.directory-toggle svg{flex:none}.directory-toggle .menu-ink{fill:var(--dynamic-font-color)}.directory-close-icon{display:none;fill:var(--dynamic-font-color);transform:scale(1.1)}.directory-toggle[aria-expanded=true] .directory-open-icon{display:none}.directory-toggle[aria-expanded=true] .directory-close-icon{display:block}body.is-dark .directory-toggle .menu-ink{fill:#fff}body.is-dark.directory-open .directory-toggle .menu-ink{fill:var(--dynamic-font-color)}

/* Reference Logo: a masked backdrop layer blurs text only as it passes the header. */
header{padding-top:16px;padding-bottom:24px;isolation:isolate}
header::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);mask-image:linear-gradient(black 30%,transparent);-webkit-mask-image:linear-gradient(black 30%,transparent)}
header>a{position:relative;z-index:40;display:block}.haipai-logo{display:block;position:relative;z-index:40}
/* Independent directory surface: natural row positions remain unchanged by motion. */
.directory{background:#ffffff00;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);transition:background-color .3s,backdrop-filter .3s;pointer-events:none}
.directory.is-open{background:#ffffffb3;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);pointer-events:auto}
.directory-inner{opacity:0;filter:blur(24px);transition:opacity .3s,filter .3s}
.directory.is-open .directory-inner{opacity:1;filter:blur(0)}
.directory-inner>h2,.timeline-row{will-change:transform,filter,opacity}.directory-inner>h2{align-self:flex-start}
.timeline-row+.timeline-row:before{content:none}.directory-ticks{position:absolute;bottom:50%;left:0;width:4px;height:var(--tick-height,52px);display:flex;flex-direction:column;justify-content:space-evenly;pointer-events:none}
.directory-ticks i{display:block;flex:0 0 1px;height:1px;width:4px;background:currentColor;opacity:.5}
.nav-year{flex-basis:48px}.directory-toggle{transition:scale .2s}.directory-toggle:hover{scale:1.2}.directory-toggle:active{scale:.9}
@media(min-width:1536px){.nav-year{flex-basis:72px}}
@media(max-width:767px){.directory-ticks{left:auto;right:0}.nav-year{flex-basis:48px}.directory-inner>h2{text-align:right}.haipai-logo{width:50px;height:32px}}
@media(prefers-reduced-motion:reduce){.directory-inner>h2,.timeline-row{filter:none!important;transform:none!important;opacity:1!important}.directory-inner{filter:none!important}.directory-toggle{scale:1!important}}

/* Detail-only native scroll handoff; match the next hero's fixed year geometry. */
html:has(body[data-view="detail"]){overscroll-behavior-y:none}
.year-handoff{position:relative;display:block;height:260lvh;min-height:0}
.year-handoff-stage{position:sticky;top:0;display:flex;align-items:center;justify-content:center;background:#2a2725;color:#c8a05f}
.year-handoff-light{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#fff;color:#2a2725;clip-path:inset(var(--handoff-reveal,100%) 0 0)}
body[data-view="detail"].is-handoff:not(.directory-open) .directory-toggle .menu-ink{fill:var(--handoff-menu-ink,#fff)}
body[data-view="detail"] .year-hero,body[data-view="detail"] .year-handoff-stage{height:100vh;height:100dvh}
.year-handoff-stage h2{margin:0;line-height:1.5}
.year-handoff-fallback{position:absolute;right:28px;bottom:28px;left:28px;text-align:center;font-size:16px;line-height:1.5}
.year-handoff-fallback a{text-decoration:underline;text-underline-offset:4px}
.year-load-error{position:absolute;bottom:44px;left:28px;right:28px;text-align:center;color:#2a2725;font-size:14px;line-height:1.5}
body[data-view="detail"].is-handoff .current-year,body[data-view="detail"].is-handoff .next-fixed{opacity:var(--handoff-side-opacity,1);transition:none;pointer-events:none}
body[data-view="detail"].is-handoff.directory-open .current-year,body[data-view="detail"].is-handoff.directory-open .next-fixed{opacity:0}

/* Keep the return link above the header blur and outside the hero's flow. */
body[data-view="detail"] .all-history-link{position:fixed;left:32px;top:18px;z-index:40;display:flex;align-items:center;min-height:44px;font-size:14px;line-height:20px;color:#2a2725;white-space:nowrap}
body[data-view="detail"].is-dark .all-history-link{color:#fff}
body[data-view="detail"].directory-open .all-history-link{visibility:hidden;pointer-events:none}
@media(max-width:767px){
  body[data-view="detail"] .all-history-link{left:28px;top:auto;bottom:22px}
  body[data-view="detail"].is-handoff .all-history-link{color:var(--handoff-mobile-link-ink,#fff)}
}

/* Let the shared footer finish the page without fixed history controls on top. */
body.history-footer-visible:not(.directory-open) > :is(.history-header,.current-year,.next-fixed,.directory-toggle,.all-history-link,.timeline-detail-link,.language-label,.reading-progress){opacity:0!important;visibility:hidden;pointer-events:none}
body > [data-haipai-site-footer]{flex-shrink:0;padding:0;opacity:1}
