/* Shared navigation geometry; each anime keeps its own backdrop. */
html:has(body[data-view=library]){scrollbar-gutter:stable}
body[data-view=library][data-archive]{background-color:#282824;color:#eee8d7;min-height:100dvh;overflow-x:clip}
body[data-view=library][data-archive=hunter]{background-color:#263b2e}
body[data-view=library][data-archive] .site-header{position:relative;left:auto;right:auto;top:auto;height:68px;width:100%;max-width:none;margin:0;padding:0 max(24px,calc((100vw - 1280px)/2));border:0;border-bottom:1px solid #55554b;box-shadow:none;background:#20211e;color:#eee8d7}
body[data-view=library][data-archive] .brand svg,body[data-view=library][data-archive] .brand small,body[data-view=library][data-archive] .count{display:none}
body[data-view=library][data-archive] .brand span{font-size:32px}
body[data-view=library][data-archive] .site-header nav{gap:24px}
body[data-view=library][data-archive] .site-header nav button{font-size:14px;color:#ccc6b5;display:block}
body[data-view=library][data-archive] .site-header nav button.active:after{bottom:10px;background:#dad1b9;height:2px}
#library[data-theme]{max-width:1328px;margin:auto;padding:20px 24px 32px}
#library[data-theme] .book-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 220px;grid-template-rows:56px 44px;gap:12px 20px;min-height:0;margin:0 0 24px;padding:0;align-items:center}
#library[data-theme] .book-heading{grid-column:1;grid-row:1;order:initial;position:relative;width:auto;height:56px;display:flex;align-items:center;padding-left:55px;gap:0;min-width:0}
#library[data-theme] h1{font-family:Galmuri,system-ui,sans-serif;font-size:32px;font-weight:700;line-height:1.3;letter-spacing:0;text-shadow:none;color:#eee8d7;margin:0;white-space:nowrap}
#book-cover{position:absolute;left:0;top:2px;width:38px;height:52px;transform:none;filter:none;padding:0}
#book-cover .book-art{object-fit:contain}
#library[data-theme] .back-button{grid-column:2;grid-row:1;order:initial;justify-self:end;margin:0;padding:8px 12px;height:44px;border:1px solid #68685b;background:#30312b;color:#ddd7c4;font-size:12px;box-shadow:none}
#library[data-theme] .filters{grid-column:1;grid-row:2;order:initial;display:flex;flex-wrap:nowrap;gap:6px;width:auto;flex:none;margin:0}
#library[data-theme] .filters button{height:44px;padding:8px 14px;font-size:13px;white-space:nowrap;color:#d8d1c0;background:#30312b;border:1px solid #68685b;box-shadow:none}
#library[data-theme] .filters button[aria-pressed=true]{color:#262823;background:#ddd5c0;border-color:#ddd5c0}
#library[data-theme] .search{grid-column:2;grid-row:2;order:initial;width:100%;min-width:0;height:44px;min-height:44px;margin:0;padding:0 12px;gap:8px;display:flex;color:#d7cfbb;background:#20211e;border:1px solid #68685b}
#library[data-theme] .search input{width:100%;min-width:0;font-size:13px;color:#eee8d7;padding:8px 0;background:transparent}
#library[data-theme] .search input::placeholder{color:#b5ad99}
#library[data-theme] .search:focus-within{outline:2px solid #d7cfbb;outline-offset:2px}
body[data-view=library][data-archive] button:focus-visible,body[data-view=library][data-archive] a:focus-visible{outline-color:#eac188}
.catalog-meta{color:#b6b09d;border-color:#55554b}
.catalog-card{background:#30312b;border-color:#626257;box-shadow:3px 3px 0 #1d1e1a;color:#eee8d7}
.catalog-art{background:#24251f}
.catalog-type,.catalog-description{color:#c1bba8}
.catalog-action{color:#eee8d7;border-color:#626257}.catalog-action:hover{color:#fff8e5}
.catalog-pending{color:#b6b09d;border-color:#626257}
#catalog-empty{background:#30312b;border-color:#68685b;color:#eee8d7}
#catalog-empty p{color:#c1bba8}#catalog-empty .primary{background:#ddd5c0;color:#282824}

/* The cover is the reverse of the LEFT leaf: both faces share one hinge. */
.hunter-archive{position:relative;width:min(100%,calc((100dvh - 260px)*1.7));aspect-ratio:1.7;margin:auto;perspective:2400px;--book-open-duration:1400ms}
.hunter-archive .greed-book{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;padding:0;border:0;background:transparent;box-shadow:none;display:grid;grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:0;transform-style:preserve-3d;animation:none}
.book-leaf{position:relative;min-width:0;min-height:0;transform-origin:calc(100% + 13px) center;transform-style:preserve-3d;z-index:4}
.book-leaf-back{position:absolute;inset:0;transform:rotateY(180deg);backface-visibility:hidden;background:#304ca0;border:4px solid #132847;box-shadow:inset 0 0 0 3px #6588c4,6px 6px 0 #171d2266;overflow:hidden}
.book-leaf-back img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.hunter-archive .book-paper{position:absolute;inset:0;min-height:0;padding:18px 22px 12px;border:8px solid #304ca0;box-shadow:inset 0 0 0 3px #d5ceb0,inset -6px 0 #c5c4a7;display:grid;grid-template-rows:24px minmax(0,1fr) 24px;row-gap:10px;backface-visibility:hidden;animation:none;transform:none;overflow:hidden}
.hunter-archive .pocket-caption{padding:0;font-size:9px;letter-spacing:0}
#library[data-theme=hunter] .work-grid{height:100%;min-height:0;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:12px 10px;align-items:stretch}
.hunter-archive .program-card,.hunter-archive .empty-pocket{height:100%;min-height:0;aspect-ratio:auto}
.hunter-archive .program-card{grid-template-rows:24px minmax(0,1fr) 30px;border-width:3px;padding:3px}
.hunter-archive .card-header{font-size:11px;gap:4px}.hunter-archive .card-number{font-size:9px}
.hunter-archive .card-footer{padding:3px 4px;gap:3px}.hunter-archive .card-type{font-size:8px}.hunter-archive .card-rule{height:2px}
.hunter-archive .page-footer{padding:0;font-size:9px;align-items:center}
.hunter-archive .book-binding{z-index:5;height:100%}
.hunter-archive .book-binding i{left:-18px;width:58px;height:24px;border-width:5px}
.hunter-archive .book-console{min-height:0;height:100%;margin:0;padding:20px 20px 16px;border:8px solid #304ca0;box-shadow:inset 0 0 0 3px #4991b5,inset 0 0 0 6px #123d5d;z-index:1;backface-visibility:hidden;overflow:hidden}
.hunter-archive .book-screen{min-height:0;flex:1;overflow:hidden;padding:14px 16px;gap:12px}
.screen-scroll{width:100%;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#687971 #142226;display:flex;flex-direction:column;align-items:flex-start;padding:0 4px 4px 0}
.screen-scroll>*{flex-shrink:0}
.screen-scroll:focus-visible{outline:2px solid #d7cfbb;outline-offset:2px}
.hunter-archive .screen-id{font-size:11px;margin-bottom:8px}
.hunter-archive .screen-title{font-size:clamp(20px,2vw,28px);line-height:1.5}
.hunter-archive .screen-art{width:52%;height:auto;max-height:170px;margin:12px auto;animation:none}
.hunter-archive .screen-description{font-size:14px;line-height:1.8;margin:9px 0 0}
.hunter-archive .screen-type{font-size:11px}
.hunter-archive .screen-action,.hunter-archive .screen-pending{flex-shrink:0;margin-top:0;font-size:15px;padding:9px 15px}
.hunter-archive .console-controls{flex:0 0 126px;padding-top:18px;gap:12px;grid-template-columns:1.05fr .62fr 1fr}
.hunter-archive .console-buttons button{font-size:12px;padding:7px 4px}
.hunter-archive .console-left{gap:14px}.hunter-archive .book-speaker{width:74px}
.hunter-archive .book-pad{grid-template-rows:repeat(3,32px);gap:2px}.hunter-archive .book-pad button{font-size:30px}
#library[data-theme=hunter] #book-empty{position:absolute;inset:52px 20px 42px;min-height:0;padding:16px;z-index:6}
#library[data-theme=hunter] #book-empty strong{font-size:18px}
.book-intro{position:absolute;inset:0;z-index:8}
#book-open{position:absolute;left:25%;top:0;width:calc(50% - 13px);height:100%;padding:0;background:transparent}
#book-open:focus-visible{outline-offset:8px}
.hunter-archive[data-phase=closed] .greed-book{transform:translateX(-25%)}
.hunter-archive[data-phase=closed] .book-leaf{transform:rotateY(180deg)}
.hunter-archive[data-phase=closed] .book-binding{visibility:hidden}
.hunter-archive[data-phase=closed] .book-console{visibility:hidden}
.hunter-archive[data-phase=opening] .greed-book{animation:book-unfold-position var(--book-open-duration) cubic-bezier(.4,0,.2,1) both}
.hunter-archive[data-phase=opening] .book-leaf{animation:book-unfold-leaf var(--book-open-duration) cubic-bezier(.4,0,.2,1) both}
.hunter-archive[data-phase=opening] .book-binding{animation:book-unfold-rings var(--book-open-duration) linear both}
@keyframes book-unfold-position{from{transform:translateX(-25%)}to{transform:translateX(0)}}
@keyframes book-unfold-leaf{from{transform:rotateY(180deg)}to{transform:rotateY(0)}}
@keyframes book-unfold-rings{0%,75%{opacity:0}100%{opacity:1}}

@media(max-width:1100px) and (min-width:901px){
 .hunter-archive .book-paper{padding:16px 14px 12px}.hunter-archive .book-console{padding:16px 14px 12px}
 .hunter-archive .card-header{font-size:10px;gap:3px}.hunter-archive .card-number{font-size:8px}
 .hunter-archive .screen-description{font-size:13px}.hunter-archive .screen-art{width:60%}
}
@media(min-width:901px) and (max-height:760px){
 .hunter-archive{width:min(100%,calc(510px*1.7));height:510px;aspect-ratio:auto}
}
@media(max-width:900px){
 body[data-view=library][data-archive] .site-header{height:60px;padding:0 16px}
 body[data-view=library][data-archive] .brand span{font-size:26px}
 body[data-view=library][data-archive] .site-header nav{gap:14px}
 body[data-view=library][data-archive] .site-header nav button{font-size:12px}
 #library[data-theme]{padding:16px 16px 32px}
 #library[data-theme] h1{font-size:28px}
 #library[data-theme] .book-toolbar{grid-template-columns:minmax(0,1fr) 180px;gap:10px 12px;margin-bottom:20px}
 /* Mobile reading uses two fixed-height pages with a horizontal hinge. */
 .hunter-archive{width:min(100%,560px);height:1140px;aspect-ratio:auto;perspective:2000px}
 .hunter-archive .greed-book{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:560px 20px 560px;gap:0}
 .book-leaf{transform-origin:center calc(100% + 10px)}
 .book-leaf-back{transform:rotateX(180deg)}
 .hunter-archive .book-binding{display:block;position:relative;left:auto;right:auto;top:auto;height:20px;border:0;border-top:3px solid #102b60;border-bottom:2px solid #071e48}
 .hunter-archive .book-binding i{top:-16px!important;left:12%;width:23px;height:53px;transform:rotate(4deg)}
 .hunter-archive .book-binding i:nth-child(2){left:36%}.hunter-archive .book-binding i:nth-child(3){left:60%}.hunter-archive .book-binding i:nth-child(4){left:84%}
 .hunter-archive .book-paper{padding:20px 22px 14px}
 .hunter-archive .book-console{padding:22px}
 .hunter-archive .screen-art{width:58%;max-height:185px}
 .hunter-archive .screen-title{font-size:26px}
 .hunter-archive .console-controls{flex-basis:150px;grid-template-columns:minmax(93px,1fr) minmax(20px,.35fr) 132px;gap:10px}
 .hunter-archive .book-pad{width:132px;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px);gap:0}.hunter-archive .book-pad button{font-size:35px;min-height:44px}
 .hunter-archive .console-buttons button{min-width:44px;min-height:44px}
 .hunter-archive .card-header{font-size:12px}.hunter-archive .card-number{font-size:10px}.hunter-archive .card-type{font-size:10px}
 #book-open{left:0;top:0;width:100%;height:560px}
 .hunter-archive[data-phase=closed] .greed-book{transform:translateY(-580px)}
 .hunter-archive[data-phase=closed] .book-leaf{transform:rotateX(180deg)}
 .hunter-archive[data-phase=opening] .greed-book{animation-name:book-unfold-position-mobile}
 .hunter-archive[data-phase=opening] .book-leaf{animation-name:book-unfold-leaf-mobile}
 @keyframes book-unfold-position-mobile{from{transform:translateY(-580px)}to{transform:translateY(0)}}
 @keyframes book-unfold-leaf-mobile{from{transform:rotateX(180deg)}to{transform:rotateX(0)}}
}
@media(max-width:580px){
 body[data-view=library][data-archive] .site-header{height:56px;padding:0 12px}
 body[data-view=library][data-archive] .brand span{font-size:24px}
 body[data-view=library][data-archive] .site-header nav{gap:13px}
 #library[data-theme]{padding:12px 12px 24px}
 #library[data-theme] .book-toolbar{grid-template-columns:minmax(0,1fr) 90px;grid-template-rows:52px 44px 44px;gap:10px 8px;margin-bottom:20px}
 #library[data-theme] .book-heading{height:52px;padding-left:0}
 #library[data-theme] h1{font-size:26px}
 #book-cover{left:auto;right:0;width:32px;height:42px;top:5px}
 #library[data-theme] .book-heading:has(#book-cover:not([hidden])){padding-right:42px}
 #library[data-theme] .filters{grid-column:1/-1;width:100%;gap:5px}
 #library[data-theme] .filters button{font-size:12px;padding:8px 10px}
 #library[data-theme] .search{grid-column:1/-1;grid-row:3}
 #library[data-theme] .back-button{padding:8px 10px}
 .hunter-archive .book-paper{padding:16px 12px 12px}
 .hunter-archive .book-console{padding:18px 14px 14px}
 .hunter-archive .program-card{grid-template-rows:30px minmax(0,1fr) 25px;padding:2px;gap:3px}
 .hunter-archive .card-header{font-size:11px}.hunter-archive .card-number{font-size:8px}.hunter-archive .card-type{font-size:8px}
 .hunter-archive .card-rule{display:none}
 .hunter-archive .screen-art{width:min(70%,140px);max-height:100px}
 .hunter-archive .screen-title{font-size:24px}
 .hunter-archive .pocket-caption,.hunter-archive .page-footer{font-size:8px}
 .hunter-archive .empty-pocket{border-width:3px;font-size:17px}
 #library[data-theme=hunter] #book-empty{inset:52px 16px 42px}
}
@media(max-width:360px){
 .hunter-archive .console-controls{grid-template-columns:minmax(93px,1fr) 132px}
 .hunter-archive .console-slot{display:none}
 .hunter-archive .card-header{font-size:10px}.hunter-archive .card-type{font-size:7px}
 .hunter-archive .screen-description{font-size:13px}
 .hunter-archive .screen-title{font-size:21px}
}
@media(prefers-reduced-motion:reduce){.hunter-archive .greed-book,.book-leaf,.book-binding{animation:none!important}}
