*{box-sizing:border-box}
html{background:var(--void);scroll-behavior:auto}
body.gallery-page{max-width:100%;margin:0;overflow-x:hidden;background:var(--void);color:var(--ink);font-family:var(--sf);font-size:var(--fs-body);line-height:var(--lh-body)}
.gallery-page::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.38;background:repeating-linear-gradient(0deg,transparent 0 47px,var(--hair2) 48px,transparent 49px)}
.gallery-page #zzk-nav{position:relative;z-index:var(--zzk-z-nav,60)}
.gallery-page .top{isolation:isolate;background:transparent;border:0;box-shadow:none;backdrop-filter:none}
.gallery-page .top::before{content:"";position:absolute;inset:0 0 -14px;z-index:-1;background:color-mix(in srgb,var(--void) 78%,transparent);backdrop-filter:blur(14px) saturate(.88);mask-image:linear-gradient(#000 0,#000 70%,transparent 100%);pointer-events:none}
.gallery-page main,.gallery-page footer{position:relative;z-index:2}
.gallery-page a{color:inherit}.gallery-page img{display:block;max-width:100%}
.gallery-shell{width:min(100%,var(--data-width));margin:0 auto;padding:clamp(4rem,8vw,8rem) var(--page-gutter) 8rem}
.gallery-shell>*{min-width:0;max-width:100%}
.gallery-kicker,.gallery-section-no,.gallery-status{margin:0;color:var(--murmur);font:600 var(--fs-label)/1.5 var(--mono);letter-spacing:.18em;text-transform:uppercase}
.gallery-breadcrumbs{display:flex;flex-wrap:wrap;gap:.55rem;margin:0 0 1.5rem;color:var(--faint);font:var(--fs-label)/1.45 var(--mono)}
.gallery-breadcrumbs a{text-decoration:none;border-bottom:1px solid var(--hair)}
.gallery-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(19rem,.36fr);min-height:min(66vh,46rem);border-block:1px solid var(--hair);overflow:hidden}
.gallery-hero::after{content:"";position:absolute;left:clamp(1rem,3vw,3.4rem);top:0;bottom:0;width:1px;background:var(--seal);opacity:.72}
.gallery-hero__copy{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:clamp(3rem,7vw,7rem) clamp(2rem,6vw,7rem)}
.gallery-hero h1{max-width:100%;margin:1.6rem 0 1.7rem;font:400 clamp(3.6rem,8vw,8.6rem)/.88 var(--mincho);letter-spacing:-.065em;overflow-wrap:anywhere}
.gallery-hero h1 small{display:block;margin-top:1.1rem;color:var(--faint);font:600 var(--fs-label)/1.5 var(--mono);letter-spacing:.2em}
.gallery-hero__copy>p:last-of-type{max-width:44rem;margin:0;color:var(--dim);font:400 var(--fs-lede)/1.9 var(--mincho)}
.gallery-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2rem}
.gallery-action{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.68rem .9rem;border:1px solid var(--hair);background:transparent;color:var(--ink);text-decoration:none;font:600 var(--fs-label)/1.2 var(--mono);letter-spacing:.08em;cursor:pointer}
.gallery-action:hover,.gallery-action:focus-visible{border-color:var(--acc);outline:0}.gallery-action.is-primary{border-color:var(--seal);color:var(--seal)}
.gallery-action:disabled{cursor:not-allowed;opacity:.48}
.gallery-hero__plate{position:relative;min-width:0;margin:0;border-left:1px solid var(--hair);background:var(--reading)}
.gallery-hero__plate img{width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.gallery-hero__plate figcaption{position:absolute;left:0;right:0;bottom:0;padding:1rem;background:color-mix(in srgb,var(--void) 86%,transparent);backdrop-filter:blur(8px);font:var(--fs-label)/1.5 var(--mono)}
.gallery-ledger{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(2rem,4vw,4rem);border-block:1px solid var(--hair)}
.gallery-ledger div{min-width:0;padding:1.1rem;border-right:1px solid var(--hair)}.gallery-ledger div:last-child{border-right:0}
.gallery-ledger dt,.gallery-ledger dd{margin:0;overflow-wrap:anywhere}.gallery-ledger dt{color:var(--faint);font:var(--fs-label)/1.4 var(--mono);letter-spacing:.11em}.gallery-ledger dd{margin-top:1.4rem;font:400 clamp(1.6rem,3vw,2.8rem)/1 var(--mincho)}
.gallery-route{display:grid;grid-template-columns:minmax(9rem,.24fr) minmax(0,1fr);gap:2rem;padding:clamp(4rem,7vw,7rem) 0;border-bottom:1px solid var(--hair)}
.gallery-route h2{margin:0 0 2rem;font:400 clamp(2rem,4vw,4rem)/1.18 var(--mincho)}
.gallery-route ol{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;border-block:1px solid var(--hair);list-style:none}
.gallery-route li{position:relative;min-width:0;min-height:9rem;padding:1.2rem;border-right:1px solid var(--hair)}.gallery-route li:last-child{border-right:0}
.gallery-route li+li::before{content:"→";position:absolute;left:-.45rem;top:50%;z-index:2;background:var(--void);color:var(--faint);font:var(--fs-label)/1 var(--mono)}
.gallery-route b,.gallery-route span{display:block}.gallery-route b{color:var(--acc);font:var(--fs-label)/1.4 var(--mono);letter-spacing:.1em}.gallery-route span{margin-top:2rem;color:var(--dim);font-size:var(--fs-small)}
.gallery-layout{display:grid;grid-template-columns:minmax(12rem,.22fr) minmax(0,1fr);gap:clamp(2rem,5vw,6rem);padding-top:clamp(4rem,7vw,7rem)}
.gallery-index{position:sticky;top:5rem;align-self:start;max-height:calc(100vh - 6rem);overflow:auto;scrollbar-width:thin}
.gallery-index nav{display:grid;margin-top:1.5rem;border-top:1px solid var(--hair)}
.gallery-index a{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.7rem;padding:.8rem 0;border-bottom:1px solid var(--hair2);color:var(--faint);text-decoration:none;font:var(--fs-label)/1.45 var(--mono)}
.gallery-index a:hover,.gallery-index a:focus-visible,.gallery-index a.is-current{color:var(--ink);outline:0}.gallery-index a span{color:var(--acc)}
.gallery-content{min-width:0}.gallery-section{scroll-margin-top:5rem}.gallery-section+.gallery-section{margin-top:clamp(4rem,8vw,8rem);padding-top:clamp(3rem,6vw,6rem);border-top:1px solid var(--hair)}
.gallery-section__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:end;margin-bottom:1.5rem}.gallery-section__head h2{margin:.5rem 0 0;font:400 clamp(2rem,4vw,4rem)/1.1 var(--mincho)}.gallery-section__head>span{color:var(--faint);font:var(--fs-label)/1.4 var(--mono)}
.batch-grid,.character-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--hair)}
.batch-card,.character-card{min-width:0;background:var(--void)}
.batch-card a,.character-card a{display:flex;height:100%;min-width:0;flex-direction:column;text-decoration:none}
.batch-card figure,.character-card figure{position:relative;aspect-ratio:4/3;margin:0;overflow:hidden;background:var(--reading)}
.batch-card img,.character-card img{width:100%;height:100%;object-fit:cover;object-position:50% 28%;transition:transform .45s var(--ease-world),filter .45s var(--ease-world)}
.batch-card a:hover img,.batch-card a:focus-visible img,.character-card a:hover img,.character-card a:focus-visible img{transform:scale(1.018);filter:contrast(1.04)}
.batch-card figcaption{position:absolute;left:.65rem;top:.65rem;padding:.3rem .45rem;background:color-mix(in srgb,var(--void) 86%,transparent);font:var(--fs-label)/1.25 var(--mono);backdrop-filter:blur(7px)}
.batch-card__body,.character-card__body{display:flex;min-width:0;flex:1;flex-direction:column;padding:1rem}
.batch-card__body>span,.character-card__body>span{color:var(--acc);font:600 var(--fs-label)/1.35 var(--mono);letter-spacing:.1em}.batch-card h3,.character-card h2{margin:.8rem 0 .45rem;font:400 1.45rem/1.25 var(--mincho);overflow-wrap:anywhere}.batch-card p,.character-card p{margin:0;color:var(--dim);font-size:var(--fs-small);overflow-wrap:anywhere}
.batch-card dl,.character-card dl{margin:auto 0 0;padding-top:1.2rem}.batch-card dl div,.character-card dl div{display:grid;grid-template-columns:1fr auto;gap:.8rem;padding:.38rem 0;border-top:1px solid var(--hair2)}.batch-card dt,.batch-card dd,.character-card dt,.character-card dd{margin:0;color:var(--faint);font:var(--fs-label)/1.4 var(--mono)}.batch-card dd,.character-card dd{color:var(--dim);text-align:right}
.batch-card[data-status="qc-fail"]{opacity:.7}.batch-card[data-status="user-approved"]{box-shadow:inset 0 -2px var(--seal)}
.batch-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(15rem,.3fr);gap:2rem;padding:clamp(2rem,5vw,5rem) 0;border-block:1px solid var(--hair)}
.batch-head h1{margin:1rem 0;font:400 clamp(3rem,7vw,7rem)/.94 var(--mincho);letter-spacing:-.05em}.batch-head p{max-width:52rem;margin:0;color:var(--dim)}
.batch-head dl{margin:0}.batch-head dl div{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:.75rem 0;border-top:1px solid var(--hair)}.batch-head dt,.batch-head dd{margin:0;font:var(--fs-label)/1.4 var(--mono)}.batch-head dt{color:var(--faint)}.batch-head dd{color:var(--acc)}
.asset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:2rem;background:var(--hair)}
.asset-card{min-width:0;background:var(--void)}.asset-card a{display:block;text-decoration:none}.asset-card figure{margin:0}.asset-card__visual{display:grid;place-items:center;aspect-ratio:4/3;background:var(--reading);overflow:hidden}.asset-card img{width:100%;height:100%;object-fit:contain}.asset-card figcaption{min-width:0;padding:1rem}.asset-card b,.asset-card span{display:block;overflow-wrap:anywhere}.asset-card b{font:400 1.15rem/1.35 var(--mincho)}.asset-card span{margin-top:.4rem;color:var(--faint);font:var(--fs-label)/1.4 var(--mono)}
.asset-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(20rem,.72fr);gap:clamp(2rem,5vw,5rem);padding-top:1.5rem}
.asset-stage{position:sticky;top:5rem;align-self:start;display:grid;place-items:center;min-width:0;min-height:55vh;background:var(--reading);border-block:1px solid var(--hair)}
.asset-stage img{width:100%;max-height:78vh;object-fit:contain}.asset-record{min-width:0}.asset-record h1{margin:.8rem 0 1rem;font:400 clamp(2.4rem,5vw,5rem)/.98 var(--mincho);letter-spacing:-.045em;overflow-wrap:anywhere}
.asset-facts{margin:2rem 0}.asset-facts div{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:1rem;padding:.7rem 0;border-top:1px solid var(--hair)}.asset-facts dt,.asset-facts dd{min-width:0;margin:0;font:var(--fs-label)/1.5 var(--mono);overflow-wrap:anywhere}.asset-facts dt{color:var(--faint)}.asset-facts dd{color:var(--dim)}
.asset-prompt{margin-top:2rem;border-block:1px solid var(--hair)}.asset-prompt summary{padding:1rem 0;cursor:pointer;font:600 var(--fs-label)/1.4 var(--mono);letter-spacing:.1em}.asset-prompt pre{max-height:38rem;margin:0;padding:1rem;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--reading);color:var(--dim);font:var(--fs-label)/1.65 var(--mono)}
.compare-panel{margin-top:clamp(4rem,7vw,7rem);padding-top:clamp(3rem,5vw,5rem);border-top:1px solid var(--hair)}
.compare-panel__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(14rem,.34fr);gap:2rem;align-items:end}.compare-panel h2{margin:.5rem 0 0;font:400 clamp(2rem,4vw,4rem)/1.1 var(--mincho)}
.compare-select{width:100%;min-height:42px;border:1px solid var(--hair);border-radius:0;background:var(--void);color:var(--ink);font:var(--fs-small)/1.4 var(--mono)}
.compare-modes{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0}.compare-modes button{min-height:38px;padding:.5rem .7rem;border:1px solid var(--hair);border-radius:0;background:transparent;color:var(--ink);font:var(--fs-label)/1.2 var(--mono);cursor:pointer}.compare-modes button[aria-pressed="true"]{border-color:var(--seal);color:var(--seal)}
.compare-stage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--hair)}.compare-stage figure{min-width:0;margin:0;background:var(--reading)}.compare-stage img{width:100%;height:min(62vh,42rem);object-fit:contain}.compare-stage figcaption{padding:.75rem;color:var(--faint);font:var(--fs-label)/1.4 var(--mono)}
.compare-stage.is-split{position:relative;display:block;min-height:min(62vh,42rem);overflow:hidden}.compare-stage.is-split figure{position:absolute;inset:0}.compare-stage.is-split figure:last-of-type{clip-path:inset(0 0 0 var(--split,50%))}.compare-stage.is-split img{height:min(62vh,42rem)}
.compare-range{display:none;width:100%;margin:1rem 0}.compare-stage.is-split+.compare-range{display:block}
.prompt-diff{margin-top:1.5rem;padding:1rem;border:1px solid var(--hair);background:var(--reading);white-space:pre-wrap;overflow-wrap:anywhere;font:var(--fs-label)/1.7 var(--mono)}.prompt-diff del{background:color-mix(in srgb,var(--seal) 16%,transparent);color:var(--seal)}.prompt-diff ins{background:color-mix(in srgb,var(--celadon) 18%,transparent);color:var(--acc);text-decoration:none}
.workbench{width:min(94vw,70rem);max-width:none;padding:0;border:1px solid var(--hair);border-radius:0;background:var(--void);color:var(--ink);box-shadow:var(--shadow-deep)}.workbench::backdrop{background:rgba(0,0,0,.74);backdrop-filter:blur(7px)}
.workbench__head{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border-bottom:1px solid var(--hair)}.workbench__head h2{margin:0;font:400 1.8rem/1.2 var(--mincho)}.workbench__close{width:2.5rem;height:2.5rem;border:1px solid var(--hair);border-radius:0;background:transparent;color:var(--ink);cursor:pointer}
.workbench__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1px;background:var(--hair)}.workbench__pane{min-width:0;padding:1rem;background:var(--void)}.workbench label{display:block;margin-bottom:.7rem;color:var(--faint);font:var(--fs-label)/1.4 var(--mono)}.workbench textarea{width:100%;min-height:22rem;resize:vertical;border:1px solid var(--hair);border-radius:0;background:var(--reading);color:var(--ink);font:var(--fs-label)/1.6 var(--mono)}.workbench .prompt-diff{max-height:26rem;overflow:auto;margin:0}
.workbench__footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border-top:1px solid var(--hair)}.workbench__footer p{max-width:42rem;margin:0;color:var(--faint);font:var(--fs-label)/1.5 var(--mono)}
.gallery-footer{display:flex;justify-content:space-between;gap:2rem;width:min(100%,var(--data-width));margin:0 auto;padding:1.4rem var(--page-gutter) 3rem;border-top:1px solid var(--hair);color:var(--faint);font:var(--fs-label)/1.5 var(--mono)}.gallery-footer a{text-decoration:none;border-bottom:1px solid var(--hair)}
.gallery-error{padding:6rem 0;color:var(--seal);font:var(--fs-small)/1.6 var(--mono)}
@media(max-width:1050px){.batch-grid,.character-grid,.asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-route ol{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-route li{border-bottom:1px solid var(--hair)}.asset-layout{grid-template-columns:minmax(0,1fr)}.asset-stage{position:relative;top:auto;display:block;min-height:0}.asset-stage img{width:100%;height:auto;max-height:none}}
@media(min-width:761px) and (max-width:900px){.gallery-layout{grid-template-columns:minmax(10rem,.26fr) minmax(0,1fr);gap:2rem}.gallery-hero{grid-template-columns:minmax(0,1fr) minmax(14rem,.32fr)}.gallery-hero__copy{padding-inline:clamp(2rem,5vw,4rem)}.gallery-hero h1{font-size:clamp(3.5rem,8.5vw,5.5rem)}.batch-grid,.asset-grid{grid-template-columns:minmax(0,1fr)}.compare-panel__head{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.gallery-shell{padding-top:3rem}.gallery-hero{grid-template-columns:minmax(0,1fr);min-height:0}.gallery-hero::after{left:.7rem}.gallery-hero__copy{padding:3rem 1.5rem}.gallery-hero__plate{min-height:26rem;border-left:0;border-top:1px solid var(--hair)}.gallery-ledger{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-ledger div{border-bottom:1px solid var(--hair)}.gallery-route,.gallery-layout{grid-template-columns:minmax(0,1fr)}.gallery-route ol{grid-template-columns:minmax(0,1fr)}.gallery-route li{min-height:0;border-right:0}.gallery-route li+li::before{content:"↓";left:50%;top:-.4rem}.gallery-index{position:sticky;top:60px;z-index:12;max-height:none;margin-inline:calc(-1 * var(--page-gutter));padding:10px var(--page-gutter) 0;overflow:hidden;background:color-mix(in srgb,var(--void) 90%,transparent);backdrop-filter:blur(14px)}.gallery-index .gallery-section-no{display:none}.gallery-index nav{display:flex;gap:1.2rem;margin:0;overflow-x:auto}.gallery-index a{flex:0 0 auto;min-width:max-content}.batch-grid,.character-grid,.asset-grid{grid-template-columns:minmax(0,1fr)}.batch-head,.compare-panel__head{grid-template-columns:minmax(0,1fr)}.compare-stage{grid-template-columns:minmax(0,1fr)}.workbench__body{grid-template-columns:minmax(0,1fr)}.workbench__footer{align-items:stretch;flex-direction:column}.gallery-footer{flex-direction:column}}
@media(max-width:480px){.gallery-hero h1{font-size:clamp(3.1rem,18vw,5.2rem)}.gallery-ledger{grid-template-columns:minmax(0,1fr)}.asset-facts div{grid-template-columns:minmax(0,1fr)}.gallery-section__head{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.batch-card img,.character-card img{transition:none}.compare-modes [data-mode="blink"]{display:none}}

/* ========================================================================== */
/* 雲笈緣在錄 · V2 book / Eagle / masonry system                              */
/* Structure inherits the book metaphor; images always retain natural ratio.   */
/* ========================================================================== */
.gallery-page{
  --yunji-paper:color-mix(in srgb,var(--void) 96%,var(--celadon) 4%);
  --yunji-leaf:color-mix(in srgb,var(--reading) 76%,transparent);
  --yunji-ink:var(--ink);
  --yunji-thread:var(--seal);
  --yunji-jade:var(--acc);
  --yunji-spine:clamp(10.5rem,13vw,14rem);
  --yunji-inspector:clamp(16rem,20vw,21rem);
  background:var(--yunji-paper)
}
.gallery-page button,.gallery-page a{touch-action:manipulation}
.gallery-page button:focus-visible,.gallery-page a:focus-visible{outline:1px solid var(--yunji-thread);outline-offset:3px}
.gallery-page .image-open{position:relative;display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:zoom-in}
.gallery-page .image-open img{display:block;width:100%;height:auto;object-fit:contain}
.gallery-page .image-open>span,.folio-card__image>span,.asset-card__visual>span{position:absolute;right:.65rem;bottom:.65rem;padding:.32rem .48rem;background:color-mix(in srgb,var(--void) 82%,transparent);color:var(--ink);font:var(--fs-label)/1.2 var(--mono);opacity:0;transition:opacity .2s ease;backdrop-filter:blur(8px)}
.gallery-page .image-open:hover>span,.gallery-page .image-open:focus-visible>span,.folio-card__image:hover>span,.folio-card__image:focus-visible>span,.asset-card__visual:hover>span,.asset-card__visual:focus-visible>span{opacity:1}

/* Total register / book cover */
.register-shell,.volume-shell{width:min(100%,104rem);margin:0 auto;padding:clamp(4.5rem,8vw,7.5rem) var(--page-gutter) 7rem}
.register-cover{display:grid;grid-template-columns:minmax(18rem,.74fr) minmax(0,1.26fr);align-items:start;border-block:1px solid var(--hair);background:linear-gradient(90deg,color-mix(in srgb,var(--yunji-leaf) 92%,transparent),transparent 44%)}
.register-cover__title{position:relative;align-self:stretch;padding:clamp(3rem,6vw,6rem) clamp(2rem,4.5vw,5rem)}
.register-cover__title::before{content:"";position:absolute;left:clamp(.7rem,1.4vw,1.35rem);inset-block:0;width:1px;background:var(--yunji-thread)}
.register-cover__overline{margin:2.7rem 0 0;color:var(--faint);font:400 1.1rem/1.5 var(--mincho);letter-spacing:.24em}
.register-cover h1{margin:1.2rem 0 1.4rem;font:400 clamp(4.2rem,7.5vw,8rem)/.86 var(--mincho);letter-spacing:-.075em}
.register-cover__latin{color:var(--yunji-jade);font:600 var(--fs-label)/1.5 var(--mono);letter-spacing:.18em}
.register-cover__lead{max-width:28rem;margin:clamp(3rem,5vw,5.5rem) 0 0;color:var(--dim);font:400 var(--fs-lede)/1.9 var(--mincho)}
.register-cover__image{min-width:0;margin:0;border-left:1px solid var(--hair);background:var(--reading)}
.register-cover__image img{width:100%;height:auto}
.register-cover__image figcaption{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;padding:1rem;border-top:1px solid var(--hair);color:var(--faint);font:var(--fs-label)/1.5 var(--mono)}
.register-cover__image figcaption b{color:var(--dim);font-weight:400;text-align:right}
.register-ledger{margin-top:0}
.register-preface{display:grid;grid-template-columns:minmax(10rem,.24fr) minmax(0,1fr);gap:clamp(2rem,5vw,6rem);padding:clamp(4rem,7vw,7rem) 0;border-bottom:1px solid var(--hair)}
.register-preface h2{max-width:55rem;margin:0 0 1.5rem;font:400 clamp(2.25rem,4.5vw,4.6rem)/1.18 var(--mincho);letter-spacing:-.035em}
.register-preface p:last-child{max-width:58rem;margin:0;color:var(--dim);line-height:1.9}
.register-volumes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(4rem,7vw,7rem);border:1px solid var(--hair)}
.register-volume{position:relative;min-width:0;min-height:25rem;padding:clamp(1.5rem,3vw,3rem);border-right:1px solid var(--hair);overflow:hidden}
.register-volume:last-child{border-right:0}.register-volume::after{content:"";position:absolute;right:1rem;top:1rem;width:.48rem;height:.48rem;border:1px solid currentColor;transform:rotate(45deg);opacity:.65}
.register-volume>span,.register-volume>small{font:var(--fs-label)/1.5 var(--mono);letter-spacing:.12em}.register-volume>span{color:var(--faint)}
.register-volume h2{margin:3.6rem 0 1.5rem;font:400 clamp(2.7rem,5vw,5rem)/.96 var(--mincho)}
.register-volume p{max-width:20rem;margin:0;color:var(--dim);line-height:1.8}.register-volume small{position:absolute;left:clamp(1.5rem,3vw,3rem);right:1.5rem;bottom:1.5rem;padding-top:.8rem;border-top:1px solid var(--hair2);color:var(--faint)}
.register-volume--hidden{background:color-mix(in srgb,var(--ink) 91%,var(--void));color:var(--void)}
.register-volume--hidden h2{color:color-mix(in srgb,var(--void) 92%,white)}.register-volume--hidden p,.register-volume--hidden span,.register-volume--hidden small{color:color-mix(in srgb,var(--void) 67%,transparent)}
.register-volume--open{background:linear-gradient(135deg,transparent 0 48%,color-mix(in srgb,var(--yunji-thread) 8%,transparent) 48% 52%,transparent 52%)}
.register-list{padding-top:clamp(4rem,7vw,7rem)}
.register-list>header{display:grid;grid-template-columns:minmax(11rem,.3fr) minmax(0,1fr);gap:1.5rem 3rem;align-items:end;margin-bottom:2rem}.register-list>header .gallery-section-no{grid-row:1/3}.register-list>header h2{margin:0;font:400 clamp(2.4rem,4.7vw,4.8rem)/1 var(--mincho)}.register-list>header>p:last-child{margin:0;color:var(--dim)}
.register-character-card{border-block:1px solid var(--hair);background:var(--yunji-leaf)}
.register-character-card>a{display:grid;grid-template-columns:minmax(18rem,.8fr) minmax(0,1.2fr);color:inherit;text-decoration:none}
.register-character-card figure{position:relative;margin:0;border-right:1px solid var(--hair);background:var(--reading)}
.register-character-card img{width:100%;height:auto;object-fit:contain}.register-character-card figcaption{position:absolute;left:.7rem;top:.7rem;padding:.35rem .5rem;background:color-mix(in srgb,var(--void) 86%,transparent);font:var(--fs-label)/1.4 var(--mono);backdrop-filter:blur(8px)}
.register-character-card>a>div{align-self:center;padding:clamp(2rem,5vw,5rem)}.register-character-card>a>div>span{color:var(--yunji-jade);font:600 var(--fs-label)/1.5 var(--mono);letter-spacing:.12em}.register-character-card h3{margin:1.1rem 0 .45rem;font:400 clamp(3rem,6vw,6rem)/.9 var(--mincho)}.register-character-card p{margin:0;color:var(--faint);font:var(--fs-small)/1.5 var(--mono);letter-spacing:.12em}.register-character-card dl{max-width:24rem;margin:3rem 0 0}.register-character-card dl div{display:grid;grid-template-columns:1fr auto;padding:.65rem 0;border-top:1px solid var(--hair)}.register-character-card dt,.register-character-card dd{margin:0;font:var(--fs-label)/1.4 var(--mono)}

/* Character opening spread */
.character-opening{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(21rem,.8fr);align-items:start;border-block:1px solid var(--hair)}
.character-opening__portrait{min-width:0;margin:0;border-right:1px solid var(--hair);background:var(--reading)}
.character-opening__portrait img{width:100%;height:auto;object-fit:contain}.character-opening__portrait figcaption{padding:.8rem 1rem;border-top:1px solid var(--hair);color:var(--faint);font:var(--fs-label)/1.45 var(--mono)}
.character-opening__leaf{position:sticky;top:5rem;align-self:start;padding:clamp(2rem,4vw,4.5rem)}
.character-opening__register{margin:2.4rem 0 0;color:var(--yunji-thread);font:600 var(--fs-label)/1.5 var(--mono);letter-spacing:.14em}
.character-opening h1{margin:1.2rem 0 .5rem;font:400 clamp(3.5rem,6vw,6.5rem)/.9 var(--mincho);letter-spacing:-.06em}.character-opening__roman{margin:0;color:var(--faint);font:600 var(--fs-label)/1.4 var(--mono);letter-spacing:.18em}.character-opening blockquote{margin:clamp(2.5rem,5vw,5rem) 0 0;padding-left:1.4rem;border-left:1px solid var(--yunji-thread);color:var(--dim);font:400 var(--fs-lede)/1.9 var(--mincho)}
.character-opening__facts{margin:3rem 0 0}.character-opening__facts div{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:1rem;padding:.7rem 0;border-top:1px solid var(--hair)}.character-opening__facts dt,.character-opening__facts dd{margin:0;overflow-wrap:anywhere;font:var(--fs-label)/1.45 var(--mono)}.character-opening__facts dt{color:var(--faint)}
.volume-reading{display:grid;grid-template-columns:minmax(10rem,.2fr) minmax(0,1fr);gap:clamp(2rem,5vw,6rem);padding-top:clamp(4rem,7vw,7rem)}
.volume-index{position:sticky;top:5rem;align-self:start}.volume-index>p{margin:0 0 1.2rem;color:var(--faint);font:var(--fs-label)/1.4 var(--mono)}.volume-index nav{display:grid;border-top:1px solid var(--hair)}.volume-index a{padding:.85rem 0;border-bottom:1px solid var(--hair2);color:var(--dim);text-decoration:none;font:var(--fs-label)/1.45 var(--mono)}
.folio-section{scroll-margin-top:5rem}.folio-section+.folio-section{margin-top:clamp(5rem,9vw,10rem);padding-top:clamp(3rem,5vw,5rem);border-top:1px solid var(--hair)}.folio-section>header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1.5rem;margin-bottom:2rem}.folio-section h2{margin:.5rem 0 0;font:400 clamp(2.5rem,5vw,5rem)/1 var(--mincho)}.folio-section>header>a{color:var(--dim);font:var(--fs-label)/1.4 var(--mono)}
.identity-leaf{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(2rem,5vw,6rem);padding:2rem 0;border-block:1px solid var(--hair)}.identity-leaf>p{margin:0;color:var(--dim);font:400 var(--fs-lede)/1.8 var(--mincho)}.identity-leaf ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none;counter-reset:identity}.identity-leaf li{counter-increment:identity;padding:1rem;border-top:1px solid var(--hair2);color:var(--dim)}.identity-leaf li::before{content:counter(identity,decimal-leading-zero) " / ";color:var(--yunji-jade);font:var(--fs-label)/1 var(--mono)}

/* Natural-ratio folio masonry */
.folio-masonry,.asset-masonry{column-count:3;column-gap:1px;background:var(--hair)}
.folio-card,.asset-card{display:inline-block;width:100%;margin:0 0 1px;break-inside:avoid;background:var(--yunji-paper);vertical-align:top}
.folio-card[hidden],.asset-card[hidden]{display:none}
.folio-card.is-selected,.asset-card.is-selected{box-shadow:inset 0 0 0 1px var(--yunji-thread)}
.folio-card__image,.asset-card__visual{position:relative;display:block;width:100%;padding:0;border:0;background:var(--reading);cursor:zoom-in}
.folio-card__image img,.asset-card__visual img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;transition:filter .25s ease}
.folio-card__image:hover img,.asset-card__visual:hover img{filter:contrast(1.035)}
.folio-card__body{padding:1rem 1rem 1.25rem;border-top:1px solid var(--hair2)}.folio-card__body>span{color:var(--yunji-jade);font:600 var(--fs-label)/1.45 var(--mono);letter-spacing:.08em}.folio-card h3{margin:.7rem 0 .45rem;font:400 1.42rem/1.28 var(--mincho)}.folio-card h3 a{text-decoration:none}.folio-card p{margin:0;color:var(--dim);font-size:var(--fs-small)}.folio-card dl{margin:1.2rem 0 0}.folio-card dl div{display:grid;grid-template-columns:1fr auto;padding:.36rem 0;border-top:1px solid var(--hair2)}.folio-card dt,.folio-card dd{margin:0;color:var(--faint);font:var(--fs-label)/1.4 var(--mono)}

/* Eagle-like explorer: lineage / natural-ratio canvas / inspector */
.workspace-shell{width:min(100%,116rem);margin:0 auto;padding:clamp(4.5rem,7vw,6.5rem) var(--page-gutter) 6rem}
.archive-masthead{display:grid;grid-template-columns:minmax(20rem,.9fr) minmax(18rem,.7fr) minmax(15rem,.4fr);gap:clamp(1.5rem,4vw,4rem);align-items:end;padding:2rem 0;border-block:1px solid var(--hair)}
.archive-masthead h1{min-width:0;margin:.65rem 0 0;font:400 clamp(3.1rem,6vw,6.5rem)/.9 var(--mincho);letter-spacing:-.055em;overflow-wrap:anywhere}.archive-masthead>p{display:block;min-width:0;max-width:100%;margin:0;overflow:visible;color:var(--dim);line-height:1.85;white-space:normal!important;word-break:normal!important;overflow-wrap:anywhere!important}.archive-masthead dl{min-width:0;margin:0}.archive-masthead dl div{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:.55rem 0;border-top:1px solid var(--hair)}.archive-masthead dt,.archive-masthead dd{min-width:0;margin:0;overflow-wrap:anywhere;font:var(--fs-label)/1.4 var(--mono)}.archive-masthead dt{color:var(--faint)}.archive-masthead dd{color:var(--yunji-jade)}
.archive-masthead--batch h1{font-size:clamp(2.6rem,4.7vw,5.2rem);overflow-wrap:anywhere}
.archive-explorer{display:grid;grid-template-columns:var(--yunji-spine) minmax(0,1fr) var(--yunji-inspector);gap:1px;margin-top:1px;background:var(--hair);align-items:start}
.lineage-rail,.archive-canvas,.detail-inspector{min-width:0;background:var(--yunji-paper)}
.lineage-rail,.detail-inspector{position:sticky;top:4.6rem;max-height:calc(100vh - 5.2rem);overflow:auto;scrollbar-width:thin}
.lineage-rail{padding:1.1rem}.rail-title{display:grid;gap:.35rem;padding-bottom:1rem;border-bottom:1px solid var(--hair)}.rail-title span{color:var(--faint);font:var(--fs-label)/1.4 var(--mono);overflow-wrap:anywhere}.rail-title b{font:400 2rem/1.1 var(--mincho)}
.lineage-rail nav{display:grid}.lineage-rail nav a,.lineage-rail nav button{display:grid;grid-template-columns:2rem minmax(0,1fr) auto;gap:.5rem;align-items:start;width:100%;padding:.78rem 0;border:0;border-bottom:1px solid var(--hair2);background:transparent;color:var(--dim);text-align:left;text-decoration:none;font:var(--fs-label)/1.4 var(--mono);cursor:pointer}.lineage-rail nav a span,.lineage-rail nav button span{color:var(--yunji-jade)}.lineage-rail nav a b,.lineage-rail nav button b{min-width:0;font-weight:400;overflow-wrap:anywhere}.lineage-rail nav a small{color:var(--faint)}.lineage-rail nav a.is-current,.lineage-rail nav button.is-current{color:var(--yunji-thread)}
.rail-return{display:block;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--hair);color:var(--dim);text-decoration:none;font:var(--fs-label)/1.4 var(--mono)}
.archive-canvas{padding:clamp(1rem,2.2vw,2.2rem)}.archive-canvas .gallery-section+.gallery-section{margin-top:5rem;padding-top:3rem}.archive-canvas .gallery-section__head{margin-bottom:1rem}
.detail-inspector{padding:1.1rem;overflow-wrap:anywhere}.detail-inspector h2{margin:1rem 0 .8rem;font:400 clamp(1.65rem,2.5vw,2.6rem)/1.12 var(--mincho)}.detail-inspector>p:not(.gallery-section-no),.inspector-empty{color:var(--dim);font-size:var(--fs-small);line-height:1.75}.inspector-empty{display:grid;gap:.7rem;padding-top:2rem}.inspector-empty b{font:400 1.35rem/1.3 var(--mincho)}.inspector-status{display:inline-block;margin-top:1.4rem;padding:.26rem .42rem;border:1px solid var(--hair);color:var(--yunji-thread);font:var(--fs-label)/1.3 var(--mono)}
.detail-inspector dl{margin:1.5rem 0}.detail-inspector dl div{display:grid;grid-template-columns:4.3rem minmax(0,1fr);gap:.7rem;padding:.55rem 0;border-top:1px solid var(--hair2)}.detail-inspector dt,.detail-inspector dd{min-width:0;margin:0;overflow-wrap:anywhere;font:var(--fs-label)/1.45 var(--mono)}.detail-inspector dt{color:var(--faint)}.detail-inspector dd{color:var(--dim)}.detail-inspector details{margin-top:1.5rem;border-block:1px solid var(--hair)}.detail-inspector summary{padding:.8rem 0;cursor:pointer;color:var(--faint);font:var(--fs-label)/1.4 var(--mono)}.detail-inspector details p{max-height:16rem;margin:0;padding:0 0 1rem;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--dim);font:var(--fs-label)/1.6 var(--mono)}
.inspector-open{display:block;margin-top:1.5rem;padding:1rem 0;border-block:1px solid var(--yunji-thread);color:var(--yunji-thread);text-decoration:none;font:600 var(--fs-label)/1.4 var(--mono);letter-spacing:.06em}
.asset-masonry{column-count:2}.asset-card figure{margin:0}.asset-card figcaption{padding:.8rem 1rem 1.1rem;border-top:1px solid var(--hair2)}.asset-card figcaption b,.asset-card figcaption span,.asset-card figcaption a{display:block;overflow-wrap:anywhere}.asset-card figcaption b{font:400 1.05rem/1.35 var(--mincho)}.asset-card figcaption span{margin-top:.35rem;color:var(--faint);font:var(--fs-label)/1.4 var(--mono)}.asset-card figcaption a{margin-top:.65rem;color:var(--yunji-jade);font:var(--fs-label)/1.4 var(--mono)}

/* Full-image inspector */
.gallery-lightbox{width:100vw;max-width:none;height:100vh;max-height:none;margin:0;padding:0;border:0;background:rgba(8,10,10,.94);color:#f3f2ec}.gallery-lightbox::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(8px)}.gallery-lightbox__close{position:fixed;right:1.2rem;top:1.2rem;z-index:2;width:3rem;height:3rem;border:1px solid rgba(255,255,255,.35);border-radius:0;background:rgba(0,0,0,.35);color:#fff;font-size:1.5rem;cursor:pointer}.gallery-lightbox figure{display:grid;grid-template-rows:minmax(0,1fr) auto;width:100%;height:100%;margin:0;padding:clamp(1.2rem,3vw,3rem)}.gallery-lightbox img{align-self:center;justify-self:center;width:auto;max-width:92vw;height:auto;max-height:86vh;object-fit:contain}.gallery-lightbox figcaption{display:flex;justify-content:space-between;gap:2rem;padding-top:.8rem;color:rgba(255,255,255,.7);font:var(--fs-label)/1.4 var(--mono)}.gallery-lightbox figcaption b{color:#fff;font-weight:400}

/* Existing single-record page: preserve full image and book-page proportions. */
.asset-stage{background:var(--yunji-leaf)}.asset-stage img{width:100%;height:auto;max-height:none;object-fit:contain}.asset-record{padding:1rem 0}.asset-record h1{overflow-wrap:anywhere}

@media(max-width:1280px){
  .gallery-page{--yunji-spine:10.5rem;--yunji-inspector:16rem}
  .archive-masthead{grid-template-columns:minmax(18rem,.9fr) minmax(15rem,.6fr) minmax(13rem,.4fr);gap:1.5rem}
  .folio-masonry{column-count:2}
}
@media(max-width:1040px){
  .register-cover{grid-template-columns:minmax(16rem,.7fr) minmax(0,1.3fr)}
  .register-volumes{grid-template-columns:minmax(0,1fr)}.register-volume{min-height:17rem;border-right:0;border-bottom:1px solid var(--hair)}.register-volume:last-child{border-bottom:0}
  .character-opening{grid-template-columns:minmax(0,1.12fr) minmax(18rem,.88fr)}
  .archive-explorer{grid-template-columns:9.5rem minmax(0,1fr) 15rem}
  .archive-masthead{grid-template-columns:minmax(0,1fr) minmax(15rem,.55fr)}.archive-masthead>dl{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--hair)}.archive-masthead>dl div{display:block;padding:.8rem;background:var(--yunji-paper)}.archive-masthead>dl dd{margin-top:.55rem}
  .archive-canvas{padding:1rem}.asset-masonry{column-count:1}
}
@media(max-width:860px){
  .register-shell,.volume-shell,.workspace-shell{padding-top:4rem}
  .register-cover,.character-opening,.register-character-card>a{grid-template-columns:minmax(0,1fr)}
  .register-cover__image,.character-opening__portrait,.register-character-card figure{border-left:0;border-right:0;border-top:1px solid var(--hair)}
  .register-cover__title{min-height:30rem}.register-cover__image{grid-row:1}.register-cover__title{grid-row:2}
  .register-cover__image figcaption{grid-template-columns:minmax(0,1fr)}.register-cover__image figcaption b{text-align:left}
  .register-preface,.register-list>header,.identity-leaf,.volume-reading{grid-template-columns:minmax(0,1fr)}
  .character-opening__leaf{position:relative;top:auto}.volume-index{position:sticky;top:3.5rem;z-index:8;margin-inline:calc(-1 * var(--page-gutter));padding:.7rem var(--page-gutter);overflow:hidden;background:color-mix(in srgb,var(--yunji-paper) 90%,transparent);backdrop-filter:blur(12px)}.volume-index>p{display:none}.volume-index nav{display:flex;gap:1.2rem;overflow-x:auto;border-top:0}.volume-index a{flex:0 0 auto;border-bottom:0}
  .archive-masthead{grid-template-columns:minmax(0,1fr)}.archive-masthead>dl{grid-column:auto}
  .archive-explorer{display:flex;flex-direction:column;background:transparent}.lineage-rail,.detail-inspector{position:relative;top:auto;width:100%;max-height:none;overflow:visible}
  .lineage-rail{order:1;position:sticky;top:3.4rem;z-index:10;padding:.65rem var(--page-gutter);margin-inline:calc(-1 * var(--page-gutter));width:calc(100% + 2 * var(--page-gutter));background:color-mix(in srgb,var(--yunji-paper) 91%,transparent);backdrop-filter:blur(12px);border-block:1px solid var(--hair)}.rail-title{display:none}.lineage-rail nav{display:flex;gap:1.1rem;overflow-x:auto}.lineage-rail nav a,.lineage-rail nav button{flex:0 0 auto;width:auto;min-width:max-content;border-bottom:0;grid-template-columns:auto auto auto}.rail-return{display:none}
  .archive-canvas{order:2;width:100%;padding:1rem 0}.detail-inspector{order:3;border-top:1px solid var(--hair);padding:1.5rem 0}
  .asset-masonry,.folio-masonry{column-count:2}
}
@media(max-width:620px){
  .register-cover__title{min-height:0}.register-cover h1{font-size:clamp(3.7rem,19vw,6rem)}
  .register-preface{gap:1.2rem}.register-volume{padding:1.5rem}.register-volume small{left:1.5rem}
  .register-character-card>a>div{padding:2rem 1.2rem}.character-opening__leaf{padding:2rem 1.2rem}.character-opening h1{font-size:clamp(3rem,14vw,4.8rem)}
  .identity-leaf ol{grid-template-columns:minmax(0,1fr)}
  .folio-masonry,.asset-masonry{column-count:1}
  .archive-masthead>dl{grid-template-columns:repeat(3,minmax(0,1fr))}
  .archive-masthead--batch>dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .archive-masthead>p{word-break:break-all!important}
  .gallery-lightbox figcaption{display:grid;gap:.3rem}
}
