:root{color-scheme:light;--bg:#f4f2eb;--surface:#fcfbf7;--text:#282e2b;--muted:#697168;--line:#d6d8ce;--accent:#536850;--accent-soft:#e4eadc;--gold:#897448;--stage:#19251e;--stage-line:#29382d;--stage-text:#becbb9;--approved:#386a49;--approved-bg:#e5efe3;--review:#8b5e18;--review-bg:#f6eaca;--wip:#666d6b;--wip-bg:#eceee9;--old:#747a73;--old-bg:#e6e7e1;--overlay:#0a100fe8;--focus:#ad7f2e;--white:#f7f6ef;--shadow:#00000030}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#151b18;--surface:#1c231e;--text:#e5e8db;--muted:#a0aa9b;--line:#354034;--accent:#bdcda5;--accent-soft:#2b3828;--gold:#c1ab76;--approved:#b6d7ac;--approved-bg:#2c412e;--review:#e4c27f;--review-bg:#443922;--wip:#bec5bb;--wip-bg:#303931;--old:#a2aa9e;--old-bg:#2a312b}}
:root[data-theme=dark]{color-scheme:dark;--bg:#151b18;--surface:#1c231e;--text:#e5e8db;--muted:#a0aa9b;--line:#354034;--accent:#bdcda5;--accent-soft:#2b3828;--gold:#c1ab76;--approved:#b6d7ac;--approved-bg:#2c412e;--review:#e4c27f;--review-bg:#443922;--wip:#bec5bb;--wip-bg:#303931;--old:#a2aa9e;--old-bg:#2a312b}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.65 "Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif}button,input,select{font:inherit;color:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--accent)}button{background:transparent;border:1px solid var(--line);border-radius:3px;padding:7px 12px}button:hover{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}h1,h2,h3,p{margin:0}img,video{display:block;max-width:100%}img.pixel,video{image-rendering:pixelated}button:disabled{cursor:default} [hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-80px;left:16px;z-index:100;padding:12px;background:var(--surface)}.skip:focus{top:12px}.masthead{max-width:1600px;margin:auto;padding:26px 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:15px;text-decoration:none;color:var(--text);font:600 24px/1.3 "Noto Serif SC","Songti SC",serif;letter-spacing:3px}.seal{color:var(--gold);font-size:42px;line-height:1}.brand-sub{display:block;font:10px/1.6 system-ui,sans-serif;letter-spacing:2.5px;color:var(--muted);margin-top:6px}.header-right{display:flex;align-items:center;gap:24px;color:var(--muted);font-size:12px}.overview{max-width:1520px;margin:0 auto;padding:30px 0 24px;border-bottom:1px solid var(--line)}.section-kicker{font:10px/1.5 system-ui,sans-serif;letter-spacing:2px;color:var(--muted)}.section-kicker span{letter-spacing:1px;margin-left:10px}.progress-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:16px;gap:12px}.progress-item{border-left:2px solid var(--line);padding:0 16px;text-align:left;border-radius:0;border-top:0;border-right:0;border-bottom:0;min-width:0}.progress-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.progress-title strong{font-size:15px}.progress-title span{font-size:11px;color:var(--muted)}.progress-bar{height:3px;display:flex;background:var(--line);margin:8px 0}.progress-bar i{background:var(--approved)}.progress-bar i.review{background:var(--review)}.progress-meta{font-size:11px;display:flex;gap:12px;flex-wrap:wrap;color:var(--muted)}.overview-note{font-size:11px;color:var(--muted);margin-top:16px}.workspace{max-width:1520px;margin:0 auto;display:grid;grid-template-columns:188px minmax(0,1fr);gap:38px;padding:34px 0 60px}aside{align-self:start;position:sticky;top:20px}#characters{display:flex;flex-direction:column;gap:4px;margin-top:18px}.character-link{display:flex;align-items:center;gap:12px;padding:9px 12px;color:var(--muted);text-decoration:none;border-left:2px solid transparent}.character-link.active{background:var(--accent-soft);border-left-color:var(--accent);color:var(--text)}.character-link:hover{background:var(--accent-soft)}.avatar{width:38px;height:38px;background:var(--stage);overflow:hidden;flex-shrink:0;display:grid;place-items:center;color:var(--stage-text)}.avatar img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.character-link small{display:block;font-size:10px;line-height:1.4;letter-spacing:.6px}.character-link strong{font-size:14px;font-weight:500}.aside-note{font-size:11px;color:var(--muted);padding:24px 14px;line-height:2;border-top:1px solid var(--line);margin-top:24px}.character-header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:0 0 25px;min-width:0}.eyebrow{font:10px/1.5 system-ui,sans-serif;color:var(--gold);letter-spacing:2px;margin-bottom:8px}h1{font:500 38px/1.4 "Noto Serif SC","Songti SC",serif;letter-spacing:4px}.character-desc{color:var(--muted);margin-top:9px;max-width:620px}.character-portrait{width:96px;height:96px;object-fit:contain;background:var(--stage);image-rendering:pixelated;border:1px solid var(--stage-line)}.tabs{display:flex;flex-wrap:wrap;gap:6px}.tabs button{border:0;color:var(--muted);padding:7px 12px;white-space:nowrap}.tabs button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.jobs{padding-bottom:18px;border-bottom:1px solid var(--line)}.jobs small{display:block;font-size:10px;font-weight:400;opacity:.85}.filters{padding:20px 0 16px;border-bottom:1px solid var(--line)}.filter-top{display:flex;gap:16px;justify-content:space-between;align-items:center}.categories{gap:2px}.categories button{font-size:13px;padding:6px 10px}.search{position:relative;display:block;flex:0 1 220px;min-width:160px}.search input{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:3px;padding:8px 30px 8px 12px;outline-offset:1px}.search span:not(.sr-only){position:absolute;right:10px;top:4px;font-size:22px;pointer-events:none;color:var(--muted)}fieldset{border:0;padding:0;margin:15px 0 0;display:flex;flex-wrap:wrap;gap:9px 17px}fieldset label{font-size:12px;display:flex;align-items:center;gap:5px;color:var(--muted);cursor:pointer}input[type=checkbox]{accent-color:var(--accent);width:14px;height:14px;margin:0}.results-bar{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:11px;padding:18px 0}.entries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.card{min-width:0;background:var(--surface);border:1px solid var(--line)}.card-top{padding:18px 20px 14px}.card-kicker{font-size:10px;color:var(--muted);letter-spacing:1px;margin-bottom:7px}.title-line{display:flex;align-items:start;justify-content:space-between;gap:10px}.card h2{font-size:17px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}.badge{display:inline-block;white-space:nowrap;font-size:10px;line-height:1.5;padding:3px 7px;border-radius:2px;background:var(--wip-bg);color:var(--wip);flex-shrink:0}.badge.approved{color:var(--approved);background:var(--approved-bg)}.badge.review{color:var(--review);background:var(--review-bg)}.badge.superseded,.badge.rejected{color:var(--old);background:var(--old-bg)}.stage{background:var(--stage);border-top:1px solid var(--stage-line);border-bottom:1px solid var(--stage-line);min-height:236px;display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden}.stage video{width:100%;max-height:450px;object-fit:contain}.stage.image-stage{height:288px;padding:16px}.image-button{display:flex;justify-content:center;align-items:center;width:100%;height:100%;border:0;border-radius:0;padding:0;background:transparent!important;cursor:zoom-in}.image-button img{object-fit:contain;max-height:100%;max-width:100%}.media-caption{font-size:10px;color:var(--muted);padding:7px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px}.card-body{padding:16px 20px}.description{font-size:12px;line-height:1.9;color:var(--muted);min-height:46px}.date{display:block;color:var(--muted);font-size:10px;margin-top:12px}.extras{border-top:1px solid var(--line);margin-top:14px;padding-top:10px}summary{cursor:pointer;color:var(--accent);font-size:12px;padding:4px 0}.extra-media{margin-top:14px}.extra-media h3{font-size:12px;font-weight:500;margin:0 0 6px}.extra-media .stage{min-height:80px}.extra-media .image-stage{height:230px}.source-details{margin-top:8px}.source-details p{font:10px/1.7 ui-monospace,monospace;overflow-wrap:anywhere;color:var(--muted);margin-top:6px}.placeholder{min-height:184px;color:var(--stage-text);padding:28px;text-align:center;background:var(--stage);display:grid;place-content:center;gap:8px}.placeholder strong{font:400 24px/1.5 "Noto Serif SC",serif;letter-spacing:5px}.placeholder small{font-size:11px}.empty{grid-column:1/-1;border:1px dashed var(--line);text-align:center;padding:64px 20px;color:var(--muted)}.empty p{margin:6px 0 18px}footer{max-width:1520px;margin:auto;border-top:1px solid var(--line);padding:22px 0 30px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:11px}.footer-divider{padding:0 10px;color:var(--gold)}#loading{padding:60px 24px;text-align:center}dialog{width:min(1400px,calc(100% - 32px));max-height:calc(100dvh - 32px);border:1px solid var(--line);padding:0;background:var(--surface);color:var(--text)}dialog::backdrop{background:var(--overlay)}.lightbox-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--line)}.lightbox-bar h2{font-size:14px;margin-right:auto}.lightbox-bar label,.lightbox-bar a{font-size:12px}.lightbox-bar select{background:var(--surface);border:1px solid var(--line);padding:5px}.lightbox-scroll{overflow:auto;max-height:75dvh;background:var(--stage);padding:20px;text-align:center}.lightbox-scroll img{image-rendering:pixelated;display:inline-block;max-width:none}.lightbox-scroll img.fit{max-width:100%;height:auto!important;object-fit:contain;max-height:65dvh}
@media(min-width:1600px){.entries{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1600px){.overview,.workspace,footer{margin-left:40px;margin-right:40px}}@media(max-width:1100px){.workspace{grid-template-columns:150px minmax(0,1fr);gap:24px}.masthead{padding:22px 24px}.overview,.workspace,footer{margin-left:24px;margin-right:24px}.progress-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px}.filter-top{align-items:stretch;flex-direction:column}.search{flex-basis:auto;max-width:100%}.card-top,.card-body{padding-left:16px;padding-right:16px}.stage{min-height:180px}.title-line{flex-wrap:wrap}}
@media(max-width:720px){.masthead{padding:20px 16px;gap:12px}.brand{font-size:20px;gap:10px}.seal{font-size:32px}.brand-sub{font-size:8px;letter-spacing:1.5px}.header-right{gap:0}.edition{display:none}.header-right button{font-size:11px;padding:6px 8px}.overview,.workspace,footer{margin-left:16px;margin-right:16px}.overview{padding:22px 0}.progress-grid{gap:16px 4px}.progress-item{padding:0 10px}.progress-title{align-items:start;gap:4px}.progress-meta{gap:4px 10px;font-size:10px}.overview-note{font-size:10px}.workspace{display:block;padding-top:22px}.workspace aside{position:static;margin-bottom:26px}#characters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:12px;gap:4px}.character-link{display:flex;flex-direction:column;gap:5px;padding:8px 2px;text-align:center;border-left:0;border-bottom:2px solid transparent}.character-link.active{border-bottom-color:var(--accent)}.character-link small{display:none}.character-link strong{font-size:12px}.avatar{width:32px;height:32px}.aside-note{display:none}.character-header{gap:12px;padding-bottom:20px}h1{font-size:30px}.character-desc{font-size:12px}.character-portrait{width:64px;height:64px}.eyebrow{font-size:9px}.jobs{gap:3px}.jobs button{font-size:12px;padding:6px 9px}.jobs small{font-size:9px}.filters{padding:16px 0}.categories button{padding:7px 9px;font-size:12px}fieldset{gap:10px 14px}.entries{grid-template-columns:minmax(0,1fr);gap:20px}.title-line{flex-wrap:nowrap}.stage{min-height:200px}.stage.image-stage{height:288px}.results-bar{font-size:10px}.card h2{font-size:17px}.lightbox-bar{padding:12px;gap:10px}.lightbox-bar h2{flex-basis:100%}.lightbox-scroll{padding:10px}footer{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.progress-toggle{display:none}
@media(max-width:720px){.overview:not([data-expanded=true]) .progress-item.no-plan{display:none}.progress-toggle{display:block;padding:4px 0;margin-top:10px;border:0;font-size:11px;color:var(--muted);text-align:left}.progress-toggle::before{content:"＋ ";color:var(--gold)}.progress-toggle[aria-expanded=true]::before{content:"− "}.overview-note{margin-top:9px}}
/* Full collection: preserve the original paper / forest palette and type. */
.home-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:18px 0 24px}.home-heading h1{font-size:32px;letter-spacing:2px}.home-heading .overview-note{max-width:280px;text-align:right}.queue-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}.queue{border:1px solid var(--line);background:var(--surface);padding:22px;min-width:0;border-top:3px solid var(--review)}.wip-queue{border-top-color:var(--accent)}.queue-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.queue h2{font-size:22px;font-weight:500;letter-spacing:2px}.queue h2 span{font:14px system-ui;letter-spacing:0;color:var(--muted)}.queue .overview-note{margin:5px 0 14px}.queue-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--text);min-width:0}.queue-row:hover{color:var(--accent);background:var(--accent-soft)}.queue-row .queue-image{width:48px;height:48px;flex-shrink:0;background:var(--stage);display:grid;place-items:center;overflow:hidden}.queue-image img{max-width:48px;max-height:48px;image-rendering:pixelated}.queue-row strong{font-size:13px;font-weight:500;display:block;overflow-wrap:anywhere}.queue-row small{display:block;color:var(--muted);font-size:10px;overflow-wrap:anywhere}.queue-row .arrow{margin-left:auto;color:var(--gold)}.queue>button{margin-top:14px;width:100%;font-size:12px}.section-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:25px}.section-tile{display:block;padding:16px;background:var(--surface);border:1px solid var(--line);text-decoration:none}.section-tile:hover{border-color:var(--accent)}.section-tile strong{font-size:15px;color:var(--text)}.count-line{font-size:10px;color:var(--muted);display:block;margin-top:6px;line-height:1.8}#sections{display:grid;margin-top:12px;gap:4px}.section-link{padding:9px 10px;text-decoration:none;color:var(--muted);border-left:2px solid transparent}.section-link.active{background:var(--accent-soft);border-left-color:var(--accent);color:var(--text)}.people-label{margin-top:26px}.character-link{display:block;font-size:13px}.character-link small{font-size:9px;line-height:1.8}.filters select{max-width:220px;border:1px solid var(--line);background:var(--surface);padding:7px;font-size:12px}.filter-top{flex-wrap:wrap;align-items:center}.filter-top label{font-size:12px;min-width:0}.filter-top .search{flex:1 1 260px}.search input{padding-right:12px}.card-top{padding:16px}.card h2{font-size:15px}.card h2 a{color:inherit;text-decoration:none}.card h2 a:hover{text-decoration:underline}.card .title-line{flex-wrap:wrap}.card .image-stage{height:200px;min-height:200px}.card-body{padding:14px 16px}.card .description{min-height:0}.resource-path{font:10px/1.7 ui-monospace,monospace;overflow-wrap:anywhere;color:var(--muted);margin-top:8px}.card .badge{font-size:10px}.card{border-top:3px solid var(--approved)}.card[data-status=review]{border-top-color:var(--review)}.card[data-status=wip]{border-top-color:var(--muted)}.card[data-status=superseded],.card[data-status=rejected]{border-top-color:var(--old)}.wip-note{font-size:11px;color:var(--muted);border-bottom:1px dashed var(--line);padding:8px 16px;background:var(--wip-bg)}.image-stage{overflow:auto!important}.image-button img{max-width:none;max-height:none;flex-shrink:0}.media-stage{background:var(--stage);padding:16px;overflow:auto;min-width:0;display:grid;justify-items:center}.media-stage video{max-width:100%;height:auto;image-rendering:pixelated}.load-more{display:block;margin:28px auto 0;min-width:220px}.detail-head{margin-bottom:24px}.detail-head h1{margin:16px 0 10px;font-size:30px;overflow-wrap:anywhere}.detail-head p{margin:8px 0;color:var(--muted)}.detail-head .badge{font-size:12px}.detail-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.media-card{min-width:0;border:1px solid var(--line);background:var(--surface)}.media-card h2{font-size:14px;padding:16px;overflow-wrap:anywhere}.media-card .image-stage{height:260px}.media-info{padding:14px 16px;font-size:11px;overflow-wrap:anywhere;color:var(--muted)}.media-info p{margin:5px 0}.media-info strong{color:var(--text);font-weight:500}.atlas{border-top:1px solid var(--line);padding:12px 16px}.atlas-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;margin-bottom:10px}.atlas-controls select{max-width:140px;background:var(--surface);padding:5px}.atlas-stage{background:var(--stage);min-height:150px;display:grid;place-items:center;padding:12px;overflow:auto}.atlas canvas{image-rendering:pixelated}.atlas-caption{font-size:10px;color:var(--muted);margin-top:8px}.detail-link{display:block;margin-top:12px;text-decoration:none;font-size:12px}.empty{grid-column:1/-1}.lightbox-scroll img.fit{max-width:none;max-height:none}.placeholder{min-height:200px}.stage .media-error{color:#fff}.section-link small{font-size:9px}.overview-note{overflow-wrap:anywhere}.card-kicker{overflow-wrap:anywhere}.badge.wip{color:var(--accent);background:var(--accent-soft)}
@media(min-width:1300px){.entries{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace{grid-template-columns:200px minmax(0,1fr);gap:28px}}
@media(max-width:900px){.queue-grid{grid-template-columns:1fr 1fr}.section-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.queue{padding:16px}.detail-media-grid{grid-template-columns:1fr}.home-heading{display:block}.home-heading .overview-note{text-align:left;max-width:none}.filter-top{align-items:stretch}.filter-top .search{flex-basis:auto}}
@media(max-width:720px){.home-heading h1{font-size:25px;letter-spacing:1px}.queue-grid{grid-template-columns:1fr}.queue h2{font-size:21px}.section-tile{padding:12px}.section-tile .count-line{font-size:9px}#sections{grid-template-columns:repeat(2,minmax(0,1fr))}.section-link{padding:6px 8px;font-size:12px}#characters{grid-template-columns:repeat(2,minmax(0,1fr))}.character-link{text-align:left;padding:8px}.character-link small{display:block;font-size:9px}.people-label{margin-top:16px}.workspace aside{margin-bottom:24px}.filter-top{display:grid;grid-template-columns:1fr 1fr}.filter-top .search{grid-column:1/-1}.filter-top select{width:100%;max-width:100%}.filter-top label{display:grid}.detail-head h1{font-size:24px;letter-spacing:2px}.detail-media-grid{grid-template-columns:minmax(0,1fr)}.title-line{gap:7px}.count-line{font-size:10px}.queue-row{gap:10px}.image-button{min-width:0}.home-heading .character-desc{line-height:1.9}.queue-image{display:none!important}}
