:root{--bg:#080909;--ink:#f1eee7;--dim:#8a8983;--line:#2e302c;--paper:#eeeae1;--paper-ink:#282921;--serif:Georgia,"Songti SC","Noto Serif CJK SC","SimSun",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--pad:clamp(22px,4.8vw,74px);--ease:cubic-bezier(.22,.61,.36,1)}
*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;scrollbar-gutter:stable}body{margin:0;color:var(--ink);background:var(--bg);font:14px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input{font:inherit}button{color:inherit;background:none;border:0;cursor:pointer;touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}button:disabled{opacity:.45;cursor:wait}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid #d7c9ae;outline-offset:5px}img{display:block;width:100%;max-width:100%}h1,h2,p,figure{margin:0}button[hidden],[hidden]{display:none!important}.skip-link{position:fixed;top:12px;left:20px;transform:translateY(-150%);z-index:50;background:var(--paper);color:#111;padding:12px}.skip-link:focus{transform:none}.site-header{display:flex;justify-content:space-between;align-items:center;padding:26px var(--pad);height:100px;position:absolute;top:0;left:0;width:100%;z-index:5}.wordmark{font:27px var(--serif);letter-spacing:.09em;display:flex;gap:17px;align-items:center;white-space:nowrap}.wordmark span{font:9px var(--sans);letter-spacing:.22em;color:#9c9d94;border-left:1px solid #484942;padding-left:17px}.site-header nav{display:flex;align-items:center;gap:35px;font-size:12px}.site-header nav a{min-height:44px;display:flex;align-items:center;gap:16px}.menu-button{display:flex;align-items:center;gap:15px;min-height:44px;padding:0}.menu-lines{width:28px;height:12px;border-top:1px solid #e1ddd3;border-bottom:1px solid #e1ddd3}.hero{height:100svh;min-height:650px;max-height:1100px;padding:123px var(--pad) 29px;display:flex;flex-direction:column;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#181b17 0,transparent 56%)}.hero-topline{display:flex;justify-content:space-between;color:#7c8075;font-size:9px;letter-spacing:.15em;z-index:1}.hero-topline span:last-child{letter-spacing:.06em}.sphere-stage{flex:1;position:relative;perspective:1100px;touch-action:pan-y;cursor:grab;outline-offset:-2px!important;min-height:380px}.sphere-stage:active{cursor:grabbing}.sphere{position:absolute;inset:50% auto auto 50%;width:0;height:0;transform-style:preserve-3d;will-change:transform}.sphere-card{position:absolute;width:clamp(145px,17vw,240px);height:clamp(100px,12vw,160px);margin:calc(clamp(100px,12vw,160px)/-2) 0 0 calc(clamp(145px,17vw,240px)/-2);padding:0;transform-style:preserve-3d;backface-visibility:visible;transition:filter .3s,opacity .3s;border-radius:2px;box-shadow:0 10px 40px #0007;overflow:hidden;z-index:1}.sphere-card img{height:100%;object-fit:cover;filter:saturate(.82);transition:filter .35s,transform .6s}.sphere-card:hover img,.sphere-card:focus-visible img{filter:saturate(1);transform:scale(1.045)}.sphere-card::after{content:"";position:absolute;inset:0;border:1px solid #ffffff18;pointer-events:none}.hero-copy{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;width:min(520px,80vw);pointer-events:none;z-index:2;text-shadow:0 3px 20px #000}.eyebrow{font-size:9px;letter-spacing:.2em;color:#989c90}.hero-copy h1{font:400 clamp(42px,5.2vw,73px)/1.32 var(--serif);letter-spacing:.02em;margin:25px 0 24px}.hero-copy>p:last-child{font-size:12px;line-height:2;letter-spacing:.06em;color:#b5b7ad}.orbit-outline{position:absolute;width:min(67vw,650px);aspect-ratio:1;top:50%;left:50%;transform:translate(-50%,-50%);opacity:.6;pointer-events:none;transition:opacity .9s}.orbit-outline i{position:absolute;inset:0;border:1px solid #77806629;border-radius:50%}.orbit-outline i:nth-child(2){transform:rotate(30deg) scaleX(.4)}.orbit-outline i:nth-child(3){transform:rotate(-30deg) scaleX(.4)}.orbit-outline b{position:absolute;width:5px;height:5px;border-radius:50%;background:#a6ae8d;top:8%;left:22%;box-shadow:0 0 22px #d1dbac66}.has-photos .orbit-outline{opacity:.15}.hero-bottom{display:flex;justify-content:space-between;align-items:center;z-index:3;font-size:10px;letter-spacing:.04em;color:#9b9d93;gap:20px}.hero-bottom>p{max-width:230px}.archive-link{font-size:11px;color:#e4e2d8;display:flex;align-items:center;gap:24px;min-height:44px}.archive-link span{font-size:20px;font-weight:300}.hero-year{letter-spacing:.15em}.archive{padding:92px var(--pad) 90px;border-top:1px solid var(--line);min-height:520px;scroll-margin-top:25px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:48px;gap:20px}.section-heading h2{font:400 clamp(29px,3.5vw,45px) var(--serif);letter-spacing:.07em;margin-top:15px;display:flex;align-items:baseline;gap:19px}.section-heading h2 span{font:10px var(--sans);color:#85877d;letter-spacing:.06em}.section-heading>p{font-size:11px;color:#8f9286;padding-bottom:8px}.photo-list{display:flex;flex-direction:column}.photo-row{display:grid;grid-template-columns:38px minmax(185px,31%) 1fr 32px;align-items:center;gap:clamp(16px,3.5vw,52px);text-align:left;padding:28px 0;border-top:1px solid #292c26;width:100%;transition:background .25s}.photo-row:last-child{border-bottom:1px solid #292c26}.photo-row:hover{background:#ffffff03}.row-index{font-size:10px;letter-spacing:.08em;align-self:start;padding-top:10px;color:#707469}.row-image{aspect-ratio:3/2;overflow:hidden;background:#171a15}.row-image img{height:100%;object-fit:cover;transition:transform .7s var(--ease);filter:saturate(.82)}.photo-row:hover .row-image img{transform:scale(1.035);filter:saturate(1)}.row-copy h3{font:400 clamp(22px,2.35vw,32px)/1.5 var(--serif);margin:0 0 10px}.row-copy p{font-size:11px;color:#969b8d;margin-bottom:22px}.row-copy small{font-size:9px;letter-spacing:.1em;color:#6e7567}.row-arrow{color:#c4cabb;font-size:22px}.archive-status{color:#8c9184;font-size:13px;line-height:2.1;padding:28px 0 36px}.archive-status button{color:var(--ink);border-bottom:1px solid #727969;margin-left:15px;min-height:44px}.empty-title{font:26px var(--serif);display:block;color:#dedfd4;margin-bottom:8px}.load-more{min-height:50px;display:flex;margin:48px auto 0;gap:22px;align-items:center;border-bottom:1px solid #666c5e;font-size:11px;letter-spacing:.08em;padding:0 14px}.site-footer{padding:35px var(--pad);border-top:1px solid #2b3028;display:flex;justify-content:space-between;gap:20px;align-items:center;color:#818777;font-size:9px;letter-spacing:.1em}.site-footer p{letter-spacing:.06em}.site-footer a{min-height:44px;display:flex;align-items:center;gap:16px}dialog{border:0;color:var(--ink);padding:0;background:transparent}dialog::backdrop{background:#050606ed;backdrop-filter:blur(7px)}.dialog-close{position:fixed;right:var(--pad);top:calc(20px + env(safe-area-inset-top,0px));padding:0 18px;min-height:44px;border:1px solid #62655b;border-radius:999px;background:#11120f;color:#e5e5d9;z-index:5;font-size:11px;display:flex;align-items:center;gap:16px}.dialog-close span{font-size:20px}.about-dialog{width:100%;height:100%;max-width:none;max-height:none;padding:clamp(125px,17vh,220px) var(--pad) 40px;background:#0d0f0c}.about-dialog h2{font:400 clamp(45px,6vw,85px)/1.4 var(--serif);margin:25px 0}.about-dialog>p:not(.eyebrow){color:#a4ab99;font-size:13px;line-height:2.2}.about-dialog>a{display:inline-flex;gap:36px;margin-top:45px;min-height:44px;align-items:center;border-bottom:1px solid #68735b;font-size:12px}.photo-dialog{width:100%;height:100%;max-width:none;max-height:none;overflow:auto;overscroll-behavior:contain;padding:90px 20px 150px;scrollbar-gutter:stable}.ticket{width:min(490px,100%);margin:0 auto;position:relative;--tear:0;filter:drop-shadow(0 22px 45px #0009)}.ticket-paper,.ticket-stub{color:var(--paper-ink);background:var(--paper);mask:linear-gradient(#000 0 0) center/calc(100% - 16px) calc(100% - 16px) no-repeat,radial-gradient(circle at 50% 0,transparent 4px,#000 4.5px) top/16px 8px repeat-x,radial-gradient(circle at 50% 100%,transparent 4px,#000 4.5px) bottom/16px 8px repeat-x,radial-gradient(circle at 0 50%,transparent 4px,#000 4.5px) left/8px 16px repeat-y,radial-gradient(circle at 100% 50%,transparent 4px,#000 4.5px) right/8px 16px repeat-y}.ticket-paper{padding:25px;position:relative;transform-origin:50% 100%;transition:transform .4s var(--ease)}.ticket-head{display:flex;justify-content:space-between;gap:16px;margin-bottom:17px;font-size:9px;letter-spacing:.12em;color:#747668}.ticket-photo{position:relative;background:#25271f;max-height:480px;overflow:hidden}.ticket-photo img{max-height:480px;object-fit:contain;min-height:90px;width:100%}.ticket-copy{padding:21px 2px 0}.ticket-copy h2{font:400 28px/1.4 var(--serif);letter-spacing:.01em}.ticket-place{font-size:11px;color:#77796c;margin-top:7px;overflow-wrap:anywhere}.ticket-note{white-space:pre-wrap;font-size:12px;line-height:1.9;color:#545847;margin-top:17px;overflow-wrap:anywhere}.ticket-metadata{margin:19px 0 0;display:grid;grid-template-columns:55px 1fr;gap:7px 10px;font-size:10px;line-height:1.7;color:#767b68}.ticket-metadata:empty{display:none}.ticket-metadata dt{color:#959989}.ticket-metadata dd{margin:0;overflow-wrap:anywhere}.ticket-foot{margin-top:21px;padding-top:12px;border-top:1px solid #cccdbf;display:flex;justify-content:space-between;font-size:8px;letter-spacing:.1em;color:#939786}.ticket-stub{margin-top:-8px;padding:22px 27px 18px;min-height:84px;width:100%;position:relative;display:flex;align-items:center;justify-content:space-between;text-align:left;gap:12px;touch-action:none;cursor:grab;transform-origin:0 0;z-index:2;will-change:transform}.ticket-stub::before{content:"";position:absolute;left:16px;right:16px;top:9px;border-top:1px dashed #a7aa97}.ticket-stub b{display:block;font:400 13px var(--sans)}.ticket-stub small{font-size:8px;letter-spacing:.13em;color:#8d927c;display:block;margin-top:5px}.ticket-stub i{width:29px;height:17px;background:repeating-linear-gradient(0deg,transparent 0 4px,#a6aa95 4px 5px);flex-shrink:0}.ticket-tools{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 9px;font-size:10px;color:#989e8b;transition:transform .4s var(--ease)}.ticket-tools p{flex:1}.ticket-tools button{border-bottom:1px solid #69745b;color:#d1d8c3;min-height:44px;white-space:nowrap;padding:0 2px}.ticket-fibres{position:absolute;width:100%;height:240px;overflow:visible;pointer-events:none;z-index:3}.postmark{position:absolute;top:14px;right:14px;width:89px;height:89px;border:2px solid #a44b33;color:#a44b33;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;background:#eeeae1e8;font-size:8px;letter-spacing:.08em;transform:rotate(-17deg) scale(1.4);opacity:0;transition:opacity .2s,transform .4s var(--ease);pointer-events:none}.postmark::before{content:"";position:absolute;inset:4px;border:1px solid #a44b33;border-radius:50%}.postmark b{font:400 23px var(--serif)}.ticket.kept .postmark{opacity:1;transform:rotate(-17deg) scale(1)}.ticket.kept .ticket-paper{transform:translateY(17px)}.ticket.kept .ticket-tools{transform:translateY(-55px)}.detail-status{max-width:490px;margin:14px auto 0;color:#abb39b;font-size:11px;text-align:center}.noscript{padding:25px;position:fixed;bottom:0;background:#242820;width:100%;z-index:20}
.sphere.dense .sphere-card{width:var(--dense-card-width,160px);height:var(--dense-card-height,112px);margin:calc(var(--dense-card-height,112px)/-2) 0 0 calc(var(--dense-card-width,160px)/-2)}
html.intro-active,body.intro-active{overflow:hidden}
.intro{position:fixed;inset:0;z-index:200;background:#000;overflow:hidden;display:grid;place-items:center;opacity:1;animation:intro-safe-exit .01s 9s forwards}
body.intro-active .intro{animation:none}
.intro-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.intro-fallback{position:absolute;inset:0;background:radial-gradient(circle at 50% 46%,#14301a 0%,#060c07 42%,#000 72%);opacity:0}
.intro.novideo .intro-fallback{opacity:1}
.intro-veil{position:absolute;inset:0;background:#000;opacity:0;transition:opacity 1.15s ease;z-index:1}
.intro.closing .intro-veil{opacity:1}
.intro.gone{opacity:0;pointer-events:none;transition:opacity .5s linear}
.intro-splash{position:absolute;inset:0;background:#000;display:grid;place-items:center;align-content:center;gap:26px;z-index:2;transition:opacity .6s ease}
.intro-splash.out{opacity:0;pointer-events:none}
.intro-mark{font:400 clamp(34px,4.4vw,58px)/1.2 var(--serif);letter-spacing:.12em;opacity:0;animation:intro-rise 1.25s ease .15s forwards}
.intro-progress{width:clamp(120px,17vw,210px);height:1px;background:#f4f2ef29}
.intro-progress span{display:block;width:100%;height:100%;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .55s ease}
.intro-tag{font:10px var(--sans);letter-spacing:.26em;color:#f4f2ef61;opacity:0;animation:intro-rise .9s ease .7s forwards}
.intro-skip{position:absolute;z-index:3;right:calc(var(--pad) + env(safe-area-inset-right,0px));bottom:calc(var(--pad) + env(safe-area-inset-bottom,0px));min-height:44px;padding:10px 18px;border:1px solid #f4f2ef40;border-radius:999px;font:11px var(--sans);letter-spacing:.1em;color:#f4f2efb3;background:#0003;backdrop-filter:blur(6px);display:flex;align-items:center;gap:22px;transition:opacity .3s,border-color .3s,color .3s}
.intro-skip:hover{color:#fff;border-color:#ffffffb3}
.intro.closing .intro-skip{opacity:0;pointer-events:none}
body.intro-active:not(.intro-revealed) .site-header,body.intro-active:not(.intro-revealed) .hero-topline,body.intro-active:not(.intro-revealed) .hero-copy,body.intro-active:not(.intro-revealed) .hero-bottom,body.intro-active:not(.intro-revealed) .site-footer{opacity:0}
body.intro-revealed .site-header,body.intro-revealed .hero-topline,body.intro-revealed .hero-copy,body.intro-revealed .hero-bottom,body.intro-revealed .site-footer{animation:intro-chrome 1.2s ease .15s both}
@keyframes intro-rise{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@keyframes intro-chrome{from{opacity:0}to{opacity:1}}
@keyframes intro-safe-exit{to{opacity:0;visibility:hidden;pointer-events:none}}
@media(min-width:1600px){.hero{max-height:1100px}.sphere-stage{perspective:1300px}}
@media(max-width:760px){:root{--pad:23px}.site-header{height:83px;padding-top:18px;padding-bottom:18px}.wordmark{font-size:24px;gap:12px}.wordmark span{font-size:7px;padding-left:12px;letter-spacing:.17em}.site-header nav{gap:20px;font-size:11px}.menu-button{gap:10px}.menu-lines{width:23px;height:10px}.hero{padding-top:103px;min-height:630px;max-height:900px}.hero-topline{font-size:7px;letter-spacing:.11em}.hero-topline span:first-child{max-width:170px;line-height:1.8}.sphere-stage{min-height:400px;perspective:900px}.sphere-card{width:132px;height:95px;margin:-47.5px 0 0 -66px}.hero-copy{width:74vw}.hero-copy h1{font-size:47px;margin:20px 0}.hero-copy .eyebrow{font-size:7px}.hero-copy>p:last-child{font-size:10px}.orbit-outline{width:83vw}.hero-bottom{align-items:flex-end;font-size:9px}.hero-bottom>p{max-width:150px}.hero-year{display:none}.archive-link{gap:16px;font-size:10px}.archive{padding-top:58px;padding-bottom:60px;min-height:450px}.section-heading{margin-bottom:26px;display:block}.section-heading>p{margin-top:18px}.section-heading h2{font-size:33px}.photo-row{grid-template-columns:24px minmax(100px,40%) 1fr;gap:13px;padding:22px 0}.row-arrow{display:none}.row-index{font-size:9px}.row-copy h3{font-size:20px;line-height:1.45;margin-bottom:7px;overflow-wrap:anywhere}.row-copy p{font-size:10px;margin-bottom:12px;line-height:1.8}.row-copy small{font-size:8px;letter-spacing:.04em}.site-footer{flex-wrap:wrap;gap:6px 20px;padding-top:25px;padding-bottom:25px;font-size:8px}.site-footer p{order:3;width:100%}.site-footer a{margin-left:auto}.photo-dialog{padding:82px 13px 150px}.ticket-paper{padding:23px 22px}.ticket-copy h2{font-size:26px}.ticket-tools{font-size:9px}.ticket-head{font-size:8px}.dialog-close{right:18px;top:14px}.ticket-stub{padding-left:25px;padding-right:25px}.about-dialog{padding-top:130px}.about-dialog h2{font-size:52px}.about-dialog>p:not(.eyebrow){font-size:12px}}
@media(max-width:375px){:root{--pad:18px}.wordmark span{display:none}.hero-copy h1{font-size:42px}.hero-topline span:first-child{max-width:140px}.hero-bottom>p{max-width:130px}.photo-row{grid-template-columns:18px 40% 1fr;gap:10px}.row-copy h3{font-size:18px}}
@media(max-height:600px) and (min-width:761px){.hero{min-height:630px}.hero-copy h1{font-size:52px}.photo-dialog{padding-top:78px}.ticket{max-width:410px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.intro{display:none}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.sphere{will-change:auto}}

/* A still frame in the archive, a short moving memory in the detail view. */
.row-image { position: relative; }
.live-badge { position: absolute; left: 8px; bottom: 8px; display: inline-flex; align-items: center; gap: 5px; padding: 4px 6px; border: 1px solid #ffffffc9; border-radius: 5px; background: #e9f8f7eb; color: #076f76; font: 500 7px/1 var(--sans); letter-spacing: .08em; pointer-events: none; }
.live-badge i { display: block; width: 6px; height: 6px; border: 1px solid currentColor; border-radius: 50%; box-shadow: inset 0 0 0 1px #e9f8f7; }
.sphere.dense .live-badge { left: 5px; bottom: 5px; padding: 3px 4px; font-size: 6px; gap: 4px; }
.ticket-photo[data-live="true"] { touch-action: pan-y; user-select: none; -webkit-touch-callout: none; }
.ticket-live-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: var(--surface, #f6fbfc); pointer-events: none; }
.ticket-photo > .live-badge { left: 12px; bottom: 12px; font-size: 8px; }
.live-photo-controls { margin: 12px 0 0; }
.live-photo-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 10px; }
.live-photo-actions button { display: inline-flex; justify-content: center; align-items: center; min-height: 38px; padding: 0 12px; border: 1px solid #b2d8da; border-radius: 999px; color: #076f76; background: #e9f8f7; font-size: 10px; }
.live-photo-actions button:hover { border-color: #087f86; background: #ddf2f1; }
.live-photo-actions button[aria-pressed="true"] { color: #fff; background: #087f86; border-color: #087f86; }
.live-photo-actions button:disabled { cursor: default; }
.live-photo-actions > span { color: var(--dim, #53696f); font-size: 9px; }
.live-photo-controls > p { color: var(--dim, #53696f); font-size: 10px; line-height: 1.8; margin: 5px 2px 0; overflow-wrap: anywhere; }
.live-photo-controls > p:empty { display: none; }
@media(max-width:375px) { .live-photo-actions { gap: 7px; } .live-photo-actions > span { flex-basis: 100%; margin-left: 2px; } }

.photo-downloads { margin-top: 22px; padding: 16px 2px 0; border-top: 1px solid var(--line, #e1ebed); }
.photo-download-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.photo-download-link { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 0 14px; border: 1px solid #b2d8da; border-radius: 999px; color: #076f76; background: #e9f8f7; font-size: 11px; cursor: pointer; transition: background .2s, border-color .2s; }
.photo-download-link svg { flex: 0 0 17px; width: 17px; height: 17px; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.photo-download-link + .photo-download-link { background: #fff; }
.photo-download-link:hover { background: #ddf2f1; border-color: #087f86; }
.photo-download-link[aria-disabled="true"] { opacity: .6; cursor: wait; }
.photo-download-hint, .photo-download-status { margin-top: 9px; color: var(--dim, #53696f); font-size: 10px; line-height: 1.8; overflow-wrap: anywhere; }
.photo-download-status { color: #076f76; }
.photo-download-status:empty { display: none; }
