:root{color-scheme:dark;--bg:#0a111d;--panel:#1c2a41;--line:#3d526f;--ink:#e1ebff;--muted:#9db2d0;--accent:#ae7aef}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 "Microsoft YaHei UI","Microsoft YaHei",sans-serif}button,input,.button{font:inherit;color:inherit}button,.button{display:flex;align-items:center;justify-content:center;min-height:42px;padding:9px 15px;border:1px solid var(--line);border-radius:6px;background:#23344e;text-decoration:none;cursor:pointer}button:hover,.button:hover{border-color:var(--accent);background:#2c3e59}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #bd96ff;outline-offset:3px}header{display:flex;align-items:center;padding:8px 0;flex:none}header .button{font-size:13px;min-height:38px;padding:7px 12px}.reader-shell{width:min(500px,100%);height:100vh;height:100dvh;min-height:420px;margin:auto;display:flex;flex-direction:column;padding:0 12px max(10px,env(safe-area-inset-bottom));gap:8px}.work-card{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:11px;background:linear-gradient(150deg,#25334b,#18253a);padding:12px 14px 9px;touch-action:pan-y;overflow:hidden;will-change:transform}.work-heading{text-align:center;width:100%;flex:none;padding:0 0 10px}.work-heading h1{font-size:21px;margin:0;line-height:1.4}.work-heading p{margin:4px 0 0;font-size:13px;color:var(--muted);overflow-wrap:anywhere}#workCount{margin-left:12px}.artwork{min-height:0;flex:1;width:100%;display:flex;align-items:center;justify-content:center;position:relative}.artwork img{max-height:100%;max-width:100%;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none}.artwork .gallery-loading{color:var(--muted);text-align:center;padding:20px;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;white-space:pre-line}.artwork .gallery-loading.error{color:#ffbdc5;cursor:pointer}.work-type{margin:8px 0 0;flex:none;color:var(--muted);font-size:12px;text-align:center}footer{display:flex;flex-direction:column;gap:7px;flex:none}.navigation{display:grid;grid-template-columns:1fr 1fr;gap:8px}.list-button{width:100%;min-height:38px;background:#19283e}.list-shell{width:min(1160px,100%);margin:auto;padding:0 18px max(24px,env(safe-area-inset-bottom))}.list-shell header{position:sticky;top:0;background:#0a111df5;z-index:2}.list-shell h1{font-size:24px;margin:18px 0 14px}#listSearch{background:#142237;border:1px solid var(--line);border-radius:6px;padding:12px 14px;width:min(430px,100%);min-height:44px}.list-state{color:var(--muted);font-size:13px}.work-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:16px}.work-tile{display:flex;flex-direction:column;min-width:0;text-decoration:none;color:var(--ink);padding:9px 9px 12px;background:#1b2a41;border:1px solid var(--line);border-top:2px solid var(--accent);border-radius:7px}.work-tile:hover{border-color:#b18ae8}.tile-image{aspect-ratio:300/382;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;text-align:center}.tile-image img{width:100%;height:100%;object-fit:contain}.work-tile strong{font-size:15px;margin-top:9px;text-align:center}.work-tile small{color:var(--muted);margin-top:4px;text-align:center;overflow-wrap:anywhere}::-webkit-scrollbar{width:16px;height:16px}::-webkit-scrollbar-thumb{background:#8d70b3;border:3px solid #101b2b;border-radius:8px}[hidden]{display:none!important}@media(max-width:420px){.reader-shell{padding-inline:8px;gap:6px}.work-card{padding:10px 10px 8px}.work-heading h1{font-size:19px}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.list-shell{padding-inline:12px}.work-tile{padding:6px 6px 10px}.work-tile strong{font-size:14px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.artwork .gallery-loading{flex-direction:column;gap:18px}.artwork .gallery-loading::before{content:'';display:block;flex:none;width:88px;height:112px;border:2px solid #8c67ba;border-radius:9px;background:linear-gradient(135deg,#8e60c31c,#18243b),repeating-radial-gradient(circle at 50% 40%,transparent 0 12px,#a880d615 13px 14px);box-shadow:inset 0 0 0 5px #21314a;animation:cardLoading 1.4s ease-in-out infinite}.artwork .gallery-loading.error::before{animation:none;border-color:#bc7e91}.tile-image{position:relative;flex-direction:column;gap:10px}.tile-image:not(:has(img))::before{content:'';width:26px;height:26px;border:3px solid #4d3b67;border-top-color:#bd93f2;border-radius:50%;animation:spinner 1s linear infinite}@keyframes cardLoading{0%,100%{opacity:.4}50%{opacity:1}}@keyframes spinner{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.artwork .gallery-loading::before,.tile-image::before{animation:none!important}}

body{overflow-x:hidden}.deck-stage{position:relative;flex:1;min-height:0;isolation:isolate;perspective:1200px}.deck-stage>.work-card{position:absolute;inset:0;z-index:3;transform-origin:50% 82%;cursor:grab;user-select:none}.deck-stage>.work-card.dragging{cursor:grabbing}.deck-stage>.deck-under{pointer-events:none}.deck-stage>.deck-leaving{z-index:5;pointer-events:none}.reader-shell{padding-right:24px;gap:10px}.artwork img{width:100%;height:100%;object-fit:contain}button,.button{background:linear-gradient(145deg,#7242ad,#4b2d77);border-color:#a273d6;color:#f0e4ff}button:hover,.button:hover{background:linear-gradient(145deg,#8752c5,#613992);border-color:#c093f4}.list-button{background:linear-gradient(145deg,#644090,#452b6a)}@media(max-width:420px){.reader-shell{padding-right:22px}}

body[data-view="reader"]{height:100vh;height:100dvh;overflow:hidden}body[data-view="reader"] .reader-shell{min-height:0;overflow:visible}body[data-view="list"] header{gap:10px;flex-wrap:wrap}

.deck-stage>.deck-returning{pointer-events:none;z-index:6}

.deck-stage>.work-card{backface-visibility:hidden;transform:translateZ(0);contain:layout style}.deck-stage>.work-card.dragging{transition:none}.deck-stage img{pointer-events:none}
