:root{--bg: #000000;--bg-soft: #0a0a0a;--ink: #F0F0F0;--ink-soft: #999999;--line: #ffffff1a;--accent: #D97757;--accent-soft: #D9775733;--shadow: 0 0 0 1px rgba(255,255,255,.04), 0 20px 50px -10px rgba(0,0,0,.7);--shadow-active: 0 0 0 1px rgba(255,255,255,.12), 0 30px 70px -10px rgba(0,0,0,.85), 0 0 80px -10px rgba(217,119,87,.15);--modal-bg: rgba(0, 0, 0, .92);--modal-ink: #f0f0f0;--modal-border: rgba(255, 255, 255, .3);--modal-spinner-track: rgba(255, 255, 255, .1);--modal-spinner-head: rgba(255, 255, 255, .7);--serif: "Source Han Serif", "Noto Serif SC", "Songti SC", Georgia, serif;--sans: -apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif}:root[data-theme=darkroom-light]{--bg: #150707;--bg-soft: #220c0c;--ink: #f7d9c8;--ink-soft: #b8907f;--line: #D9775733;--accent: #ff8a5e;--accent-soft: #ff8a5e44;--shadow: 0 0 0 1px rgba(255,138,94,.08), 0 20px 50px -10px rgba(0,0,0,.7);--shadow-active: 0 0 0 1px rgba(255,138,94,.28), 0 30px 70px -10px rgba(0,0,0,.85), 0 0 80px -10px rgba(255,138,94,.35);--modal-bg: rgba(28, 6, 6, .94);--modal-ink: #f7d9c8;--modal-border: rgba(255, 138, 94, .45);--modal-spinner-track: rgba(255, 138, 94, .15);--modal-spinner-head: rgba(255, 138, 94, .9)}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}html,body,.info-bar,.info-bar .shuffle-btn,.info-bar .brand,.piece,.piece .caption,.image-modal,.image-modal-caption,.image-modal-close,.image-modal-img,.image-modal-spinner-ring{transition:background-color .6s ease,color .4s ease,border-color .4s ease,box-shadow .4s ease}.piece img,.image-modal-img{transition:filter .6s ease}:root[data-theme=darkroom-light] body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse 90% 55% at 50% -10%,rgba(255,138,94,.18),transparent 60%),radial-gradient(ellipse 60% 80% at 100% 100%,rgba(217,119,87,.08),transparent 70%)}.info-bar{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:18px 32px;background:linear-gradient(to bottom,var(--bg) 60%,transparent);pointer-events:none;font-size:13px;letter-spacing:.02em}.info-bar>*{pointer-events:auto}.info-bar .brand{font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:.12em;color:var(--ink);flex-shrink:0}.info-bar .brand .brand-line{display:inline}.info-bar .meta{display:flex;gap:8px;color:var(--ink-soft);align-items:center}.meta-row{display:contents}@media(max-width:480px){.info-bar{padding:14px 16px}.info-bar .meta{flex-direction:row;align-items:center;gap:8px}.info-bar .meta-row{display:flex;gap:8px;align-items:center}.info-bar .brand{display:flex;flex-direction:column;gap:6px;font-size:20px}.info-bar .brand .brand-line{display:block;height:24px;line-height:24px}}.info-bar .meta strong{color:var(--ink);font-weight:600;margin-right:2px}.info-bar .shuffle-btn{background:transparent;border:1px solid var(--ink-soft);color:var(--ink);padding:4px 10px;border-radius:999px;font-family:var(--sans);font-size:12px;letter-spacing:.06em;cursor:pointer;text-decoration:none;white-space:nowrap;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px}.info-bar .shuffle-btn:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.info-bar .shuffle-btn:active{transform:scale(.96)}.darkroom-light-btn .bulb{display:inline-block;width:7px;height:7px;border-radius:50%;background:#4a4a4a;box-shadow:none;transition:background-color .4s ease,box-shadow .4s ease}:root[data-theme=darkroom-light] .darkroom-light-btn{border-color:var(--accent);color:var(--accent)}:root[data-theme=darkroom-light] .darkroom-light-btn .bulb{background:var(--accent);box-shadow:0 0 8px 1.5px var(--accent);animation:bulb-pulse 2.4s ease-in-out infinite}@keyframes bulb-pulse{0%,to{box-shadow:0 0 8px 1.5px var(--accent)}50%{box-shadow:0 0 12px 3px var(--accent)}}.wall{position:relative;width:100%;height:100vh;padding:80px 24px 24px;overflow:hidden;z-index:2}.piece{position:absolute;cursor:grab;transform-origin:center;will-change:transform,z-index,box-shadow;transition:opacity .4s ease,transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease,z-index 0s,top .55s cubic-bezier(.2,.7,.2,1),left .55s cubic-bezier(.2,.7,.2,1);border-radius:4px;box-shadow:var(--shadow);user-select:none;-webkit-user-drag:none;touch-action:none}.piece:active{cursor:grabbing}.piece img{display:block;width:100%;height:100%;border-radius:4px;pointer-events:none}:root[data-theme=darkroom-light] .piece img{filter:saturate(.55) sepia(.35) hue-rotate(-10deg) brightness(.92)}.piece:hover{box-shadow:var(--shadow-active)}.piece.is-active{z-index:9999!important;box-shadow:var(--shadow-active)}.piece.is-entering{opacity:0}.piece.is-entered{opacity:1}.piece .caption{position:absolute;left:50%;bottom:-32px;transform:translate(-50%);background:var(--ink);color:var(--bg);font-size:11px;letter-spacing:.06em;padding:5px 10px;border-radius:3px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s ease}.piece.is-active .caption{opacity:1}@media(hover:hover){.piece:hover .caption{opacity:1}}.image-modal{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;background:var(--modal-bg);opacity:0;transition:opacity .25s ease,background-color .6s ease;cursor:zoom-out}.image-modal[hidden]{display:none}.image-modal.is-open{opacity:1}.image-modal-figure{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:92vw;max-height:92vh;cursor:default;margin:0}.image-modal-caption{color:var(--modal-ink);font-size:12px;letter-spacing:.12em;opacity:.55;text-align:center;font-family:var(--sans)}.image-modal-close{position:absolute;top:24px;right:24px;background:transparent;border:1px solid var(--modal-border);color:var(--modal-ink);width:40px;height:40px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;font-family:var(--sans)}.image-modal-close:hover{background:#ffffff1a;border-color:#fff9;transform:scale(1.05)}.image-modal-close:active{transform:scale(.95)}.image-modal-spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;display:none;z-index:2}.image-modal-spinner.is-show{display:block}.image-modal-spinner-ring{width:100%;height:100%;border:3px solid var(--modal-spinner-track);border-top-color:var(--modal-spinner-head);border-radius:50%;animation:image-modal-spin .8s linear infinite}@keyframes image-modal-spin{to{transform:rotate(360deg)}}.image-modal-img{display:block;max-width:92vw;max-height:84vh;object-fit:contain;border-radius:4px;box-shadow:0 30px 80px #0009;background:#0a0a0a;cursor:zoom-in;transform-origin:center;transition:transform .15s ease,filter .6s ease,background-color .6s ease;will-change:transform;user-select:none;-webkit-user-drag:none}:root[data-theme=darkroom-light] .image-modal-img{filter:saturate(.55) sepia(.35) hue-rotate(-10deg);background:#1a0808}.image-modal-img.is-pannable{cursor:grab}.image-modal-img.is-panning{cursor:grabbing}
