:root{color-scheme:dark;--ink: #f5f3ef;--dim: rgba(245, 243, 239, .55);--faint: rgba(245, 243, 239, .28);--line: rgba(245, 243, 239, .16);--surface: rgba(18, 18, 18, .82);--z-veil: 5;--z-hud: 8;--z-lightbox: 20;--z-panel: 30;--z-cover: 40;--z-loading: 50;--pad: max(1rem, env(safe-area-inset-left));--pad-top: max(1rem, env(safe-area-inset-top));--pad-bottom: max(1.25rem, env(safe-area-inset-bottom))}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#111;color:var(--ink);font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}#viewport{display:block;width:100vw;height:100vh;touch-action:none;cursor:grab}#viewport.is-dragging{cursor:grabbing}#viewport.is-over-artwork{cursor:pointer}.loading{position:fixed;inset:0;z-index:var(--z-loading);display:grid;place-content:center;gap:1rem;background:#111;transition:opacity .6s ease}.loading[hidden]{display:none}.loading.is-done{opacity:0;pointer-events:none}.loading__bar{width:min(240px,60vw);height:2px;background:#f5f3ef26;overflow:hidden}.loading__fill{height:100%;width:0;background:var(--ink);transition:width .25s ease}.loading__text{margin:0;text-align:center;font-size:.8125rem;letter-spacing:.15em;color:var(--dim)}.veil{position:fixed;inset:0;z-index:var(--z-veil);background:#000;opacity:0;pointer-events:none;transition:opacity .35s ease}.cover{position:fixed;inset:0;z-index:var(--z-cover);display:grid;place-items:center;padding:var(--pad);background:#0c0c0cb8;backdrop-filter:blur(10px) saturate(.9);transition:opacity .6s ease}.cover.is-leaving{opacity:0;pointer-events:none}.cover__inner{max-width:34rem;text-align:center;animation:rise .9s cubic-bezier(.2,.7,.2,1) both}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}.cover__lead{margin:0;font-size:.75rem;letter-spacing:.32em;text-transform:uppercase;color:var(--faint)}.cover__title{margin:.75rem 0 1.5rem;font-size:clamp(2rem,7vw,3.25rem);font-weight:400;letter-spacing:.12em}.cover__blurb{margin:0;font-size:.9375rem;line-height:2;color:var(--dim)}.cover__choices{display:grid;gap:.75rem;margin-top:2.5rem}.cover__choice{display:grid;gap:.4rem;padding:1.1rem 1.5rem;border:1px solid var(--line);border-radius:.75rem;background:#f5f3ef0f;cursor:pointer;text-align:center;transition:background .3s ease,border-color .3s ease}.cover__choice:hover,.cover__choice:focus-visible{background:#f5f3ef24;border-color:var(--ink)}.cover__choice-name{font-size:1.125rem;letter-spacing:.2em}.cover__choice-note{font-size:.8125rem;letter-spacing:.06em;color:var(--dim)}.hud{position:fixed;inset:0;z-index:var(--z-hud);display:grid;grid-template-rows:auto 1fr auto;pointer-events:none;text-shadow:0 1px 14px rgba(0,0,0,.75)}.hud[hidden]{display:none}.hud:before,.hud:after{content:"";position:absolute;left:0;right:0;z-index:-1;pointer-events:none}.hud:before{top:0;height:7rem;background:linear-gradient(rgba(0,0,0,.45),transparent)}.hud:after{bottom:0;height:11rem;background:linear-gradient(transparent,#0000008c)}.hud__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:var(--pad-top) var(--pad) 0}.hud__museum{font-size:.8125rem;letter-spacing:.2em;color:var(--dim)}.hud__index{display:flex;align-items:center;gap:.625rem;min-height:2.75rem;padding:0 1.125rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);backdrop-filter:blur(8px);font-size:.8125rem;letter-spacing:.12em;cursor:pointer;pointer-events:auto;transition:background .25s ease,border-color .25s ease}.hud__index:hover,.hud__index:focus-visible{border-color:var(--ink);background:#282828e6}.hud__index-icon{width:1rem;height:.5rem;border-top:1px solid currentColor;border-bottom:1px solid currentColor;position:relative}.hud__index-icon:after{content:"";position:absolute;inset:calc(50% - .5px) 0 auto;border-top:1px solid currentColor}.hud__hint{align-self:end;justify-self:center;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;margin:0 0 1.5rem;padding:0 var(--pad);font-size:.75rem;letter-spacing:.12em;color:var(--dim);opacity:0;transition:opacity .8s ease}.hud__hint.is-visible{opacity:1}.hud__tour{align-self:end;justify-self:center;display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:.5rem .5rem .5rem 1.25rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);backdrop-filter:blur(8px);pointer-events:auto;font-size:.8125rem;letter-spacing:.12em}.hud__tour[hidden]{display:none}.hud__tour-label{color:var(--dim)}.hud__tour-stop{min-height:2rem;padding:0 1rem;border:0;border-radius:999px;background:var(--ink);color:#111;font-size:.8125rem;letter-spacing:.1em;cursor:pointer}.hud__foot{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:0 var(--pad) var(--pad-bottom)}.hud.is-touring .hud__foot{opacity:0;pointer-events:none}.hud__label{display:grid;justify-items:center;gap:.25rem;min-width:min(20rem,55vw)}.hud__title{font-size:1.125rem;letter-spacing:.05em;min-height:1.5em;text-align:center}.hud__meta{font-size:.75rem;letter-spacing:.14em;color:var(--dim);min-height:1.2em}.hud__step{flex:none;width:2.75rem;height:2.75rem;border:1px solid var(--line);border-radius:50%;background:var(--surface);backdrop-filter:blur(8px);font-size:1.25rem;line-height:1;cursor:pointer;pointer-events:auto;transition:background .25s ease,border-color .25s ease}.hud__step:hover,.hud__step:focus-visible{border-color:var(--ink);background:#282828e6}.board{position:fixed;inset:0;z-index:var(--z-lightbox);display:grid;place-items:center;padding:clamp(.5rem,3vw,2.5rem);background:#0a0a0ae6;backdrop-filter:blur(10px);opacity:0;transition:opacity .25s ease}.board[hidden]{display:none}.board.is-open{opacity:1}.board__panel{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(64rem,100%);height:min(52rem,100%);background:#141414;border:1px solid var(--line);border-radius:.5rem;overflow:hidden}.board__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem .5rem .5rem 1.25rem;border-bottom:1px solid var(--line)}.board__title{margin:0;font-size:.9375rem;font-weight:400;letter-spacing:.14em}.board__close{width:2.75rem;height:2.75rem;flex:none;border:0;border-radius:50%;background:transparent;cursor:pointer;transition:background .2s ease}.board__close:hover,.board__close:focus-visible{background:#f5f3ef1f}.board__frame{width:100%;height:100%;border:0;background:#141414}.panel{position:fixed;top:0;right:0;bottom:0;z-index:var(--z-panel);width:min(26rem,100vw);display:grid;grid-template-rows:auto auto auto minmax(0,1fr);background:#0e0e0ef5;backdrop-filter:blur(16px);border-left:1px solid var(--line);transform:translate(100%);transition:transform .3s cubic-bezier(.3,.8,.3,1);padding-bottom:env(safe-area-inset-bottom)}.panel[hidden]{display:none}.panel.is-open{transform:none}.panel__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:var(--pad-top) 1rem .75rem 1.25rem}.panel__title{margin:0;font-size:.9375rem;font-weight:400;letter-spacing:.2em}.panel__close{width:2.75rem;height:2.75rem;flex:none;border:0;border-radius:50%;background:transparent;cursor:pointer;transition:background .2s ease}.panel__close:hover,.panel__close:focus-visible{background:#f5f3ef1a}.panel__search{padding:0 1.25rem .75rem}.panel__input{width:100%;min-height:2.5rem;padding:0 .875rem;border:1px solid var(--line);border-radius:.5rem;background:#f5f3ef0d;font-size:.875rem}.panel__input::placeholder{color:var(--faint)}.panel__input:focus{outline:none;border-color:var(--dim)}.panel__tabs{display:flex;flex-wrap:wrap;gap:.375rem;padding:0 1.25rem .75rem}.panel__tab{flex:none;display:flex;align-items:baseline;gap:.4rem;min-height:2rem;padding:0 .75rem;border:1px solid transparent;border-radius:999px;background:#f5f3ef0f;font-size:.8125rem;letter-spacing:.06em;white-space:nowrap;cursor:pointer;transition:background .2s ease,border-color .2s ease}.panel__tab:hover{background:#f5f3ef1f}.panel__tab.is-active{background:var(--ink);color:#111}.panel__count{font-size:.6875rem;opacity:.6}.panel__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));align-content:start;gap:1rem .75rem;padding:.25rem 1.25rem 1.5rem;overflow-y:auto;overscroll-behavior:contain}.panel__card{display:grid;gap:.4rem;padding:0;border:0;background:none;text-align:left;cursor:pointer}.panel__card[hidden]{display:none}.panel__thumb{width:100%;height:auto;aspect-ratio:4 / 3;object-fit:contain;background:#f5f3ef0d;border:1px solid transparent;transition:border-color .2s ease}.panel__card:hover .panel__thumb,.panel__card:focus-visible .panel__thumb{border-color:var(--dim)}.panel__card.is-current .panel__thumb{border-color:var(--ink)}.panel__caption{font-size:.75rem;line-height:1.5;color:var(--dim);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.panel__card.is-current .panel__caption{color:var(--ink)}.panel__empty{margin:0;padding:2rem 1.25rem;text-align:center;font-size:.875rem;color:var(--dim)}.panel__empty[hidden]{display:none}.lightbox{position:fixed;inset:0;display:grid;grid-template-rows:minmax(0,1fr);padding:clamp(1rem,4vw,3rem);background:#0a0a0af0;backdrop-filter:blur(12px);opacity:0;transition:opacity .25s ease;z-index:var(--z-lightbox)}.lightbox[hidden]{display:none}.lightbox.is-open{opacity:1}.lightbox__figure{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:1rem;justify-items:center;align-items:center;margin:0;width:100%;height:100%}.lightbox__image{max-width:100%;max-height:100%;object-fit:contain;cursor:default}.lightbox__caption{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:baseline;justify-content:center;font-size:.9375rem;letter-spacing:.05em}.lightbox__link{color:var(--ink);text-decoration-color:#f5f3ef66;text-underline-offset:.3em}.lightbox__link[hidden]{display:none}.lightbox__link:hover{text-decoration-color:currentColor}.lightbox__close{position:absolute;top:max(1rem,env(safe-area-inset-top));right:max(1rem,env(safe-area-inset-right));width:2.75rem;height:2.75rem;border:0;border-radius:50%;background:#f5f3ef1a;color:var(--ink);font-size:1rem;cursor:pointer;transition:background .2s ease}.lightbox__close:hover{background:#f5f3ef33}.tuner{position:fixed;top:max(.75rem,env(safe-area-inset-top));left:max(.75rem,env(safe-area-inset-left));z-index:60;width:20rem;max-height:calc(100vh - 2rem);display:flex;flex-direction:column;border:1px solid var(--line);border-radius:.5rem;background:#0e0e0ef0;backdrop-filter:blur(12px);font-size:.75rem;overflow:hidden}.tuner__head{display:flex;align-items:center;justify-content:space-between;padding:.5rem .5rem .5rem .875rem;border-bottom:1px solid var(--line);letter-spacing:.1em}.tuner__collapse{width:1.75rem;height:1.75rem;border:0;border-radius:.25rem;background:#f5f3ef1a;cursor:pointer}.tuner__body{padding:.75rem .875rem .875rem;overflow-y:auto}.tuner.is-collapsed .tuner__body{display:none}.tuner__row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.25rem .5rem;margin-bottom:.75rem;color:var(--dim)}.tuner__row input[type=range]{grid-column:1 / -1;width:100%;accent-color:var(--ink)}.tuner__row output{font-variant-numeric:tabular-nums;color:var(--ink)}.tuner__row--select{grid-template-columns:1fr}.tuner__select{width:100%;min-height:2rem;border:1px solid var(--line);border-radius:.25rem;background:#f5f3ef0f}.tuner__presets{display:grid;gap:.375rem;margin:.5rem 0}.tuner__presets button,.tuner__copy{min-height:2rem;padding:0 .75rem;border:1px solid var(--line);border-radius:.25rem;background:#f5f3ef14;cursor:pointer}.tuner__presets button:hover,.tuner__copy:hover{background:#f5f3ef2e}.tuner__actions{display:grid}.tuner__note{margin:.75rem 0 0;line-height:1.6;color:var(--faint)}@media(max-width:40rem){.panel{width:100vw;border-left:0}.hud__index-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.hud__index{width:2.75rem;padding:0;justify-content:center}.hud__title{font-size:1rem}.hud__label{min-width:0;flex:1}.hud__hint{margin-bottom:1rem}}@media(max-height:27rem){.hud__hint{display:none}.hud__foot{padding-bottom:max(.5rem,env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){.lightbox,.veil,.loading,.cover,.panel,.hud__hint{transition-duration:.01ms}.cover__inner{animation:none}}
