/* F111: years form a stack of solid planes; opening a layer reveals its own contents. */
html { scroll-behavior:smooth; }
body[data-b7-module="yearbook"] { margin:0; background:#0a0a0a; color:#dededb; font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif; }
body[data-b7-module="yearbook"] .b0-shell-wordmark { display:none; }
body[data-b7-module="yearbook"]:not(.is-ending-visible) #global-nav-root { --b0-nav-paper:rgba(15,15,15,.96); --b0-nav-ink:#eee; --b0-nav-muted:#999; }
body[data-b7-module="yearbook"].is-ending-visible, body[data-b7-module="yearbook"] .page-footer { background:#0a0a0a; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.yr-heading { display:flex; align-items:flex-end; justify-content:space-between; padding-top:145px; margin-bottom:36px; }
.yr-heading>div { display:flex; align-items:baseline; gap:28px; }
.yr-heading h1 { margin:0; font-size:52px; line-height:1.2; font-weight:450; letter-spacing:-.045em; }
.yr-heading p,.yr-heading>span { margin:0 0 4px; color:#81817b; font:10px/1.6 ui-monospace,Menlo,monospace; letter-spacing:.06em; }
.time-archive { padding-bottom:64px; scroll-margin-top:120px; }
.time-toolbar { display:flex; justify-content:space-between; align-items:center; min-height:48px; border-top:1px solid #ffffff1c; }
.time-toolbar p { margin:0; font-size:12px; color:#999993; }
.time-toolbar button { display:flex; align-items:center; gap:9px; min-height:44px; padding:0 0 0 16px; border:0; background:transparent; color:#cecec9; font:inherit; font-size:12px; cursor:pointer; transition:opacity .25s; }
.time-toolbar button:disabled { opacity:.25; cursor:default; }
.year-stack { --fold-ease:cubic-bezier(.65,0,.22,1); --fold-time:720ms; position:relative; width:min(870px,calc(100% - 72px)); margin:72px auto 78px; perspective:1800px; isolation:isolate; }
.time-year-layer { --slab-depth:30px; --surface:#5b5b58; --surface-end:#4e4e4b; --edge-top:#82827c; --edge-side:#343431; --slab-ink:#f0f0e9; position:relative; margin:0 0 10px; transform-style:preserve-3d; }
.time-year-layer[data-year-layer="2024"] { --surface:#90908b; --surface-end:#80807b; --edge-top:#acaca5; --edge-side:#60605a; --slab-ink:#111110; }
.time-year-layer[data-year-layer="2025"] { --surface:#bdbdb6; --surface-end:#aaa9a3; --edge-top:#d7d7ce; --edge-side:#85857e; --slab-ink:#111110; }
.time-year-layer[data-year-layer="2026"] { --surface:#e7e7df; --surface-end:#d3d3ca; --edge-top:#f5f5ed; --edge-side:#a6a69d; --slab-ink:#171715; }
.time-year { position:relative; display:block; width:100%; height:104px; padding:0; margin:0; border:0; background:transparent; color:var(--slab-ink); cursor:pointer; text-align:left; -webkit-tap-highlight-color:transparent; transition:height var(--fold-time) var(--fold-ease); scroll-margin-top:130px; }
.year-slab { position:absolute; inset:0; display:block; transform-style:preserve-3d; transform:translateX(calc(var(--year-index) * 7px)) rotateX(-18deg) rotateY(-10deg); transform-origin:50% 50%; transition:transform var(--fold-time) var(--fold-ease); pointer-events:none; }
.year-face { pointer-events:auto; position:absolute; inset:0; display:flex; align-items:center; gap:34px; padding:0 36px; background:linear-gradient(100deg,var(--surface),var(--surface-end)); box-shadow:inset 0 1px #ffffff32,0 14px 24px #00000026; transform:translateZ(calc(var(--slab-depth) / 2)); transition:background var(--fold-time),box-shadow var(--fold-time),transform var(--fold-time) var(--fold-ease); }
.year-edge { position:absolute; display:block; pointer-events:none; backface-visibility:hidden; transition:opacity .4s; }
.year-edge-top { left:0; top:0; width:100%; height:var(--slab-depth); transform-origin:50% 0; transform:translateZ(calc(var(--slab-depth) / -2)) rotateX(90deg); background:linear-gradient(0deg,var(--edge-top),var(--surface)); border-top:1px solid #ffffff36; }
.year-edge-side { right:0; top:0; width:var(--slab-depth); height:100%; transform-origin:100% 50%; transform:translateZ(calc(var(--slab-depth) / 2)) rotateY(-90deg); background:var(--edge-side); }
.time-year-number { font:400 62px/1 "Helvetica Neue","PingFang SC",sans-serif; letter-spacing:-.055em; font-variant-numeric:tabular-nums; transition:font-size var(--fold-time) var(--fold-ease); }
.year-face small { margin-left:auto; font-size:11px; line-height:1.4; font-weight:400; opacity:.9; }
.time-year-mark { position:relative; flex:none; width:20px; height:20px; opacity:.8; }
.time-year-mark::before,.time-year-mark::after { content:""; position:absolute; left:3px; top:9px; width:14px; height:1px; background:currentColor; }
.time-year-mark::after { transform:rotate(90deg); transition:transform .5s; }
.time-year[aria-expanded="true"] .time-year-mark::after { transform:rotate(0); }
.time-year:focus-visible { outline:2px solid #eee; outline-offset:10px; z-index:3; }
@media(hover:hover) and (pointer:fine) {
 .time-year:not([aria-expanded="true"]):hover .year-slab { transform:translateX(calc(var(--year-index) * 7px)) translateY(-5px) rotateX(-10deg) rotateY(-7deg) translateZ(16px); }
}
.year-stack[data-open="true"] .time-year-layer { --slab-depth:18px; }
.year-stack[data-open="true"] .time-year { height:68px; }
.year-stack[data-open="true"] .year-slab { transform:rotateX(-10deg) rotateY(-3deg); }
.year-stack[data-open="true"] .time-year-number { font-size:38px; }
.year-stack[data-open="true"] .time-year-layer.is-selected { z-index:2; --slab-ink:#191918; }
.year-stack[data-open="true"] .is-selected .time-year { height:128px; }
.year-stack[data-open="true"] .is-selected .year-slab { transform:none; }
.year-stack[data-open="true"] .is-selected .year-face { transform:translateZ(0); background:#e9e9e2; box-shadow:none; }
.year-stack[data-open="true"] .is-selected .year-edge { opacity:0; }
.year-stack[data-open="true"] .is-selected .time-year-number { font-size:68px; }
.time-year-body { display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows var(--fold-time) var(--fold-ease),opacity .4s; overflow-anchor:none; }
.is-selected>.time-year-body { grid-template-rows:1fr; opacity:1; }
.time-year-body-inner { min-height:0; overflow:hidden; background:#e9e9e2; color:#252523; }
.year-content { padding:0 36px 34px; }
.time-pending { margin:0; padding:14px 0 35px; font-size:16px; line-height:1.8; color:#62625d; }
.time-branches { border-top:1px solid #22222229; }
.time-month-layer { border-bottom:1px solid #22222229; }
.time-month { display:grid; grid-template-columns:25px 100px 1fr 20px; align-items:center; gap:18px; width:100%; min-height:101px; margin:0; padding:22px 0; border:0; background:none; color:#30302c; text-align:left; cursor:pointer; -webkit-tap-highlight-color:transparent; scroll-margin-top:115px; }
.time-month-number { font:11px/1.4 ui-monospace,Menlo,monospace; color:#73736b; }
.time-month strong { font-size:27px; line-height:1.3; font-weight:450; letter-spacing:-.04em; }
.time-month small { font-size:11px; line-height:1.7; color:#6a6a62; }
.time-month i { font:normal 20px/1 "Helvetica Neue",sans-serif; color:#6a6a62; }
.time-month[aria-expanded="true"] i { font-size:0; }
.time-month[aria-expanded="true"] i::before { content:"−"; font-size:20px; }
.time-month:hover { color:#000; }
.time-month:focus-visible { outline:2px solid #222; outline-offset:-6px; }
.time-month-body { display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows 620ms var(--fold-ease),opacity .4s; overflow-anchor:none; }
.time-month-layer.is-selected>.time-month-body { grid-template-rows:1fr; opacity:1; }
.time-month-body-inner { min-height:0; overflow:hidden; }
.time-record-panel { max-width:650px; padding:0 0 34px; margin:0 0 0 43px; }
.time-record-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.time-record-date { color:#73736a; font:11px/1.5 ui-monospace,Menlo,monospace; }
.time-close-month,.time-close-bottom { display:flex; align-items:center; min-height:44px; padding:0; border:0; background:transparent; color:#63635b; font:inherit; font-size:11px; cursor:pointer; }
.time-close-month:hover,.time-close-bottom:hover { color:#111; }
.time-close-month:focus-visible,.time-close-bottom:focus-visible { outline:2px solid #222; outline-offset:4px; }
.time-record-source { margin:4px 0 37px; color:#73736a; font-size:11px; line-height:1.7; }
.time-record { margin:0 0 37px; }
.time-record h3 { margin:0 0 14px; color:#292926; font-size:17px; line-height:1.5; font-weight:500; }
.time-record-body { color:#45453f; font-size:17px; line-height:1.95; }
.time-record-body p { margin:0 0 18px; }
.time-close-bottom { border-bottom:1px solid #22222235; }
.time-scrub { display:flex; gap:17px; width:252px; margin:0 auto; align-items:center; }
.time-scrub>span { font:9px/1.4 ui-monospace,Menlo,monospace; color:#898981; }
.time-scrub label { flex:1; min-width:0; }
.time-scrub input { display:block; width:100%; height:44px; margin:0; appearance:none; background:transparent; cursor:ew-resize; }
.time-scrub input::-webkit-slider-runnable-track { height:1px; background:#4e4e47; }
.time-scrub input::-webkit-slider-thumb { appearance:none; width:8px; height:8px; margin-top:-3.5px; border-radius:50%; background:#d3d3c7; box-shadow:0 0 0 5px #0a0a0a; }
.time-scrub input::-moz-range-track { height:1px; background:#4e4e47; }
.time-scrub input::-moz-range-thumb { width:8px; height:8px; border:0; border-radius:50%; background:#d3d3c7; }
@media(max-width:1050px) {
 .year-stack { width:calc(100% - 40px); }
 .year-face { padding-inline:28px; }
 .year-content { padding-inline:28px; }
 .time-month { grid-template-columns:22px 80px 1fr 18px; gap:15px; }
 .time-record-panel { margin-left:37px; }
}
@media(max-width:720px) {
 .yr-heading { padding-top:112px; margin-bottom:26px; }
 .yr-heading>div { display:block; }
 .yr-heading h1 { font-size:42px; }
 .yr-heading p { margin:14px 0 0; font-size:8px; }
 .yr-heading>span { margin-bottom:0; font-size:9px; }
 .time-archive { padding-bottom:48px; scroll-margin-top:92px; }
 .time-toolbar p,.time-toolbar button { font-size:11px; }
 .year-stack { width:calc(100% - 18px); margin:52px auto 55px; perspective:1300px; }
 .time-year-layer { --slab-depth:20px; margin-bottom:9px; }
 .time-year { height:84px; scroll-margin-top:104px; }
 .year-slab { transform:translateX(calc(var(--year-index) * 2px)) rotateX(-17deg) rotateY(-7deg); }
 .year-face { padding-inline:19px; gap:15px; }
 .time-year-number { font-size:46px; }
 .year-face small { font-size:10px; }
 .time-year-mark { width:16px; height:16px; }
 .time-year-mark::before,.time-year-mark::after { width:11px; left:2px; top:7px; }
 .year-stack[data-open="true"] .time-year-layer { --slab-depth:12px; }
 .year-stack[data-open="true"] .time-year { height:60px; }
 .year-stack[data-open="true"] .time-year-number { font-size:33px; }
 .year-stack[data-open="true"] .is-selected .time-year { height:102px; }
 .year-stack[data-open="true"] .is-selected .time-year-number { font-size:52px; }
 .year-content { padding:0 19px 25px; }
 .time-pending { padding:8px 0 20px; font-size:14px; }
 .time-month { grid-template-columns:22px 1fr 18px; gap:8px 12px; min-height:98px; padding-block:19px; scroll-margin-top:100px; }
 .time-month strong { font-size:25px; }
 .time-month i { grid-column:3; grid-row:1; }
 .time-month small { grid-column:2/4; grid-row:2; font-size:10px; }
 .time-month-number { font-size:10px; }
 .time-record-panel { margin:0; padding-bottom:26px; }
 .time-record-date,.time-close-month { font-size:10px; }
 .time-record-source { margin:2px 0 29px; font-size:10px; }
 .time-record { margin-bottom:30px; }
 .time-record h3 { font-size:16px; margin-bottom:12px; }
 .time-record-body { font-size:16px; line-height:1.9; }
 .time-scrub { width:210px; gap:14px; }
}
@media(max-width:360px) {
 .year-face { padding-inline:15px; gap:10px; }
 .time-year-number { font-size:41px; }
 .year-face small { font-size:9px; }
 .year-content { padding-inline:15px; }
 .time-month { column-gap:9px; }
 .time-month strong { font-size:23px; }
}
@media(min-width:721px) and (max-height:850px) {
 .yr-heading { padding-top:118px; margin-bottom:26px; }
 .yr-heading h1 { font-size:46px; }
 .year-stack { margin-top:44px; margin-bottom:44px; }
 .time-year { height:84px; }
 .time-year-number { font-size:52px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; }
}
