:root{--blue:#1d71b8;--red:#eb5760;--ink:#1f2933;--muted:#6b7280;--paper:#faf8f4;--card:#fff;--line:#e7e2d8;--maxw:1100px;--radius:14px;--shadow:0 6px 24px #1f293314;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--paper);margin:0;font-family:Lato,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.55}a{color:inherit}img{max-width:100%;display:block}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.25rem}.site-header{border-bottom:1px solid var(--line);backdrop-filter:blur(6px);z-index:10;background:#faf8f4d9;position:sticky;top:0}.site-header .wrap{align-items:center;gap:1rem;height:64px;display:flex}.brandbar{background:linear-gradient(90deg, var(--blue) 0 50%, var(--red) 50% 100%);height:4px}.brandmark{align-items:center;gap:.55rem;text-decoration:none;display:flex}.brandmark img{width:auto;height:34px;display:block}.brandmark span{letter-spacing:.3px;color:var(--ink);font-size:1.05rem;font-weight:900}.site-header nav{gap:1.25rem;margin-left:auto;font-size:.95rem;font-weight:700;display:flex}.site-header nav a{color:var(--muted);text-decoration:none}.site-header .hello{color:var(--blue);text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-left:.9rem;font-weight:800;overflow:hidden}.site-header .hello:empty{display:none}.site-header .nav-admin{color:var(--red)!important}.site-header .nav-admin[hidden]{display:none}.site-header nav a:hover{color:var(--ink)}.site-header nav a[hidden]{display:none}.site-header .viewas{border:1px solid var(--line,#ddd);color:var(--muted);font:inherit;background:#fff;border-radius:6px;padding:.1rem .3rem;font-size:.85rem;font-weight:700}.site-header .viewas[hidden]{display:none}@media (width<=720px){.site-header .wrap{flex-wrap:wrap;gap:.35rem .75rem;height:auto;padding-top:.55rem;padding-bottom:.55rem}.site-header .hello{text-align:right;flex:1 1 0;margin-left:.2rem;font-size:.95rem}.site-header nav{flex-wrap:wrap;flex:1 0 100%;justify-content:center;gap:.4rem .9rem;margin-left:0;font-size:.88rem}.site-header .viewas{max-width:10rem}}body[data-role=member] .hero-cta,body[data-role=member] #timeline,.member-only{display:none}body[data-role=member] .member-only{display:revert}body[data-role=member] .full-only{display:none}.hero{text-align:center;padding:1.6rem 0 .4rem}.hero h1{margin:0 0 .35rem;font-size:clamp(1.5rem,3vw,2.1rem);font-weight:900;line-height:1.1}.hero h1 br{display:none}.hero p{color:var(--muted);max-width:640px;margin:0 auto;font-size:.98rem}.hero .accent{color:var(--blue)}.hero-cta{margin:1rem 0 0}.hero-cta a{border:1.5px solid var(--blue);color:var(--blue);border-radius:999px;padding:.45rem 1.1rem;font-size:.92rem;font-weight:800;text-decoration:none;transition:all .12s;display:inline-block}.hero-cta a:hover{background:var(--blue);color:#fff}.timeline-intro{text-align:center;color:var(--muted);margin:.6rem 0 .25rem;font-size:.92rem}.timeline{border-bottom:2px solid var(--red);scrollbar-width:thin;justify-content:flex-start;align-items:flex-end;gap:.25rem;padding:1rem .25rem .25rem;display:flex;overflow-x:auto}.decade{cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1 0 auto;justify-content:flex-end;align-items:center;gap:.3rem;min-width:58px;padding:.2rem;display:flex}.decade .count{height:1em;color:var(--ink);font-size:.9rem;font-weight:800;line-height:1}.decade .bar{background:var(--blue);border-radius:5px 5px 0 0;width:24px;min-height:4px;transition:background .12s}.decade .lbl{color:var(--muted);white-space:nowrap;font-size:.72rem}.decade:not(.empty):hover .bar{filter:brightness(1.12)}.decade.active .bar{background:var(--red)}.decade.empty{cursor:default}.decade.empty .bar{background:var(--line)}.decade.empty .count{color:#0000}.decade.undated .bar{background:#c9c2b4}.years{flex-wrap:wrap;justify-content:center;gap:.4rem;padding:.85rem 0 .25rem;display:flex}.years[hidden]{display:none}.year{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .75rem;font-size:.82rem;font-weight:700;display:inline-flex}.year .yc{background:var(--blue);color:#fff;border-radius:999px;padding:0 .42rem;font-size:.7rem}.year:not(.empty):hover{border-color:var(--blue)}.year.empty{opacity:.4;cursor:default}.year.active{background:var(--red);color:#fff;border-color:#0000}.year.active .yc{background:#ffffff59}.filters{flex-wrap:wrap;justify-content:center;gap:.5rem;padding:1.5rem 0;display:flex}.chip{border:1px solid var(--line);background:var(--card);cursor:pointer;color:var(--ink);border-radius:999px;padding:.35rem .9rem;font-size:.85rem;font-weight:700}.chip[aria-pressed=true]{color:#fff;border-color:#0000}.chip--tech{color:var(--muted);background:#faf8f2;border-style:dashed}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;padding:1rem 0 4rem;display:grid}.minebar{grid-column:1/-1;justify-content:flex-end;display:flex}.minebar .btn{text-decoration:none}.pcard{color:inherit;border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;text-decoration:none;display:flex;position:relative;overflow:hidden}.pcard>*{min-width:0}.pcard img{aspect-ratio:1;object-fit:cover;width:100%;display:block}.pnoimg{aspect-ratio:1;background:var(--line);place-items:center;font-size:2rem;display:grid}.pbadges{background:#ffffffd9;border-radius:999px;padding:.1rem .4rem;font-size:1rem;position:absolute;top:.45rem;right:.45rem}.pcap{padding:.45rem .55rem;font-size:.8rem;font-weight:700}.pcap small{color:#6b6355;font-weight:400}.pcard:hover{border-color:var(--blue)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:inherit;text-decoration:none;transition:transform .12s,box-shadow .12s;overflow:hidden}#mergebar{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.4rem 0 1rem;display:flex}#mergebar[hidden]{display:none}#mg-info{color:var(--muted);font-size:.88rem;font-weight:700}.grid.selecting .card{cursor:copy}.card.selected{outline:3px solid var(--blue);outline-offset:2px}.card.backhere{outline:3px solid var(--blue);outline-offset:2px;transition:outline-color 1.5s}.card:hover{box-shadow:var(--shadow);transform:translateY(-4px)}.card .thumb{aspect-ratio:4/3;background:#ece7dd 50%/cover no-repeat;position:relative}.albumcount{color:#fff;background:#1f2933c7;border-radius:999px;padding:.15rem .5rem;font-size:.72rem;font-weight:800;position:absolute;top:.5rem;right:.5rem}.hero-btn{cursor:zoom-in;background:0 0;border:none;width:100%;padding:0;display:block}.hero-btn img{border-radius:var(--radius);width:100%;box-shadow:var(--shadow);background:#ece7dd}.thumbstrip{scroll-snap-type:x mandatory;gap:.5rem;padding:.7rem 0 .3rem;display:flex;overflow-x:auto}.thumbstrip .ts{cursor:pointer;scroll-snap-align:start;background:#ece7dd 50%/cover no-repeat;border:2px solid #0000;border-radius:9px;flex:0 0 86px;height:64px;padding:0;transition:border-color .12s;overflow:hidden}.thumbstrip .ts img{object-fit:cover;width:100%;height:100%;display:block}.thumbstrip .ts:hover{border-color:var(--blue)}.lightbox{z-index:50;background:#0a0c10eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox[hidden]{display:none}.lightbox img{border-radius:10px;max-width:92vw;max-height:86vh;box-shadow:0 20px 60px #00000080}.lb-close,.lb-nav{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:999px;position:absolute}.lb-close{width:44px;height:44px;font-size:1.2rem;top:1rem;right:1.25rem}.lb-nav{width:56px;height:56px;font-size:2.2rem;line-height:1;top:50%;transform:translateY(-50%)}.lb-prev{left:1.25rem}.lb-next{right:1.25rem}.lb-close:hover,.lb-nav:hover{background:#ffffff40}@media (width<=720px){.lb-nav{width:44px;height:44px;font-size:1.6rem}}.hero-btn,.thumbstrip .ts{position:relative}.pdfflag{background:var(--red);color:#fff;letter-spacing:.5px;border-radius:5px;padding:.12rem .45rem;font-size:.7rem;font-weight:800;position:absolute;top:.5rem;left:.5rem}.pdfflag.sm{padding:.05rem .3rem;font-size:.58rem;top:.25rem;left:.25rem}.pdfopen{margin-top:.7rem}.card .badges{gap:.3rem;display:flex;position:absolute;top:.5rem;left:.5rem}.card .doctag{background:var(--red);color:#fff;border-radius:5px;padding:.1rem .45rem;font-size:.68rem;font-weight:800}.card .doctag.texttag{background:#5a5245}.card .thumb.textthumb{background:#fbf7ee;padding:2rem .8rem .65rem;overflow:hidden}.card .textthumb .excerpt{color:#5a5245;white-space:pre-line;margin:0;font-size:.72rem;font-style:italic;line-height:1.55}.pdfbox{z-index:60;background:#0a0c10eb;flex-direction:column;align-items:center;padding:3.2rem 1rem 1rem;display:flex;position:fixed;inset:0}.pdfbox[hidden]{display:none}.pdfpages{flex:1;width:min(900px,94vw);overflow:auto}.pdfpages canvas{background:#fff;border-radius:6px;width:100%;height:auto;margin:0 auto .6rem;display:block;box-shadow:0 6px 20px #0006}.pdfmsg{color:#fff;text-align:center;margin-top:2rem}.pdfmsg a{color:#fff}.pdfbar{justify-content:space-between;align-items:center;display:flex;position:absolute;top:.7rem;left:1rem;right:1rem}.pdf-tab{color:#fff;opacity:.9;font-size:.9rem;font-weight:700;text-decoration:none}.pdf-tab:hover{text-decoration:underline}.card .meta{padding:.7rem .85rem}.card .ttl{margin:0 0 .35rem;font-size:.98rem;font-weight:800}.card .sub{color:var(--muted);align-items:center;gap:.5rem;font-size:.8rem;display:flex}.tag{color:#fff;border-radius:999px;padding:.12rem .55rem;font-size:.72rem;font-weight:800;display:inline-block}.card .thumb .playglyph{color:#fff;text-shadow:0 2px 10px #00000080;background:#14181f2e;justify-content:center;align-items:center;font-size:2.4rem;display:flex;position:absolute;inset:0}.card .cardtypes{flex-wrap:wrap;gap:.25rem;margin-top:.35rem;display:flex}.card .cardtypes span{color:#5a5245;background:#f1ede4;border-radius:999px;padding:.08rem .5rem;font-size:.68rem;font-weight:700}.item{grid-template-columns:1.4fr 1fr;gap:2rem;padding:2.5rem 0 4rem;display:grid}.item>*{min-width:0}.item img{border-radius:var(--radius);width:100%;box-shadow:var(--shadow);background:#ece7dd}.item h1{margin:0 0 .5rem;font-size:1.8rem}.item .back{color:var(--muted);font-weight:700;text-decoration:none}.item dl{grid-template-columns:auto 1fr;gap:.4rem 1rem;margin-top:1.25rem;display:grid}.item dt{color:var(--muted);font-weight:700}@media (width<=720px){.item{grid-template-columns:1fr}}footer.site-footer{border-top:1px solid var(--line);color:var(--muted);text-align:center;padding:2rem 0;font-size:.85rem}.demo-banner{color:#7a5b00;text-align:center;background:#fff7e6;border-bottom:1px solid #f0e0b8;padding:.4rem 1rem;font-size:.82rem}
