*{box-sizing:border-box} :root{--ink:#302b25;--muted:#665b4a;--blue:#263c58;--rule:#b6a480;--paper:#f0e6cd;--brass:#a78c50}body{margin:0;background:#282622;color:var(--ink);font-family:Georgia,'Times New Roman',serif;line-height:1.5}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.65}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #295d87;outline-offset:4px}a{color:inherit}.demo-bar{position:sticky;top:0;z-index:5;background:#1e3047;color:#f3ead6;display:flex;justify-content:center;gap:28px;padding:9px 14px;font:11px/1.4 Arial,sans-serif;letter-spacing:1px}.demo-bar span:first-child{font-weight:bold}.book{max-width:1130px;margin:30px auto 55px;position:relative;padding-left:34px;box-shadow:0 18px 60px #0008}.binding{position:absolute;inset:0 auto 0 0;width:34px;background:repeating-linear-gradient(90deg,#231b17 0,#45322a 3px,#32251e 5px,#271e19 11px);border:1px solid #685139;border-radius:7px 0 0 7px;box-shadow:inset -7px 0 10px #0009}.binding:before,.binding:after{content:'';position:absolute;left:0;right:0;height:28px;top:75px;background:linear-gradient(#796036,#b39a60,#604a28);border-block:2px solid #514126}.binding:after{top:auto;bottom:90px}.binding span{position:sticky;top:200px;writing-mode:vertical-rl;color:#b6a277;display:block;margin:150px auto;font-size:10px;letter-spacing:6px}.paper{position:relative;min-height:950px;padding:0 60px;background:radial-gradient(ellipse at 0% 60%,#ae88561b,transparent 65%),repeating-linear-gradient(87deg,#a58a5b05 0px,#a58a5b05 1px,transparent 2px,transparent 5px),#f1e8d2;border:1px solid #bcaa82;box-shadow:inset 14px 0 20px #8f744c27,4px 4px 0 #bfb195,7px 7px 0 #655b49}.paper:before{content:'';position:absolute;right:45px;top:0;width:25px;height:72px;background:linear-gradient(90deg,#162b44,#344c67,#162b44);clip-path:polygon(0 0,100% 0,100% 100%,50% 83%,0 100%)}.masthead{height:110px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--rule)}.brand{text-decoration:none;font-size:26px;letter-spacing:5px}.brand span{display:block;font:9px Arial,sans-serif;letter-spacing:2px;margin-top:3px}.seal{margin-right:50px;font-size:40px;color:var(--blue)}main{outline:none;padding-top:35px}.eyebrow{font:10px/1.5 Arial,sans-serif;letter-spacing:2px;color:var(--muted);margin:0 0 8px}h1{font-weight:normal;font-size:54px;letter-spacing:-2px;line-height:1.1;margin:0 0 12px}h2{font-weight:normal;line-height:1.2}.intro{color:var(--muted);font-style:italic;margin:0 0 25px}.heading{position:relative}.heading:after{content:'✧';position:absolute;right:5px;top:0;font-size:75px;color:#9a824d;opacity:.7}.discovery{display:flex;gap:40px;align-items:center;border-block:1px solid var(--rule);padding:20px 0;margin:25px 0}.discovery p{margin:0;color:var(--muted);font-size:13px}.discovery strong{font-size:30px;color:var(--ink);font-weight:normal}.discovery strong span{font-size:20px;color:var(--muted)}.progress-side{flex:1}.progress-side label{display:flex;justify-content:space-between;font-size:13px;font-style:italic}progress{width:100%;height:6px;border:0;display:block;margin-top:10px;background:#d4c7a8}progress::-webkit-progress-bar{background:#d4c7a8}progress::-webkit-progress-value{background:var(--blue)}progress::-moz-progress-bar{background:var(--blue)}.catalog-tools{display:flex;gap:22px;align-items:flex-end}.search-wrap{flex:1}.search-wrap label{display:block;font:11px Arial,sans-serif;margin-bottom:8px;color:var(--muted)}input{width:100%;min-width:0;padding:12px;border:1px solid #a99772;background:#f9f1df80;border-radius:3px;font-size:13px;color:var(--ink)}.filters{display:flex;border-bottom:1px solid var(--rule)}.filters button{background:none;border:0;border-bottom:3px solid transparent;padding:12px 13px 10px;font-size:13px;color:var(--muted);min-height:44px}.filters button[aria-pressed=true]{color:var(--blue);border-bottom-color:var(--blue);font-weight:bold}.catalog-caption{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font:10px Arial,sans-serif;letter-spacing:1px;margin:22px 0 14px}.catalog-caption p{margin:0}.catalog{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.card{position:relative;min-width:0;text-align:center;padding:0 10px 16px;border:1px solid #b8a682;background:linear-gradient(135deg,#fbf5e461,#d0bb8c12);border-radius:2px;color:var(--ink);box-shadow:0 2px 2px #4d3b1b0d}.card:before{content:'';position:absolute;inset:4px;pointer-events:none;border:1px solid #b8a68245}.card:is(button):hover{background:#fff7e5;box-shadow:0 4px 12px #44372420;transform:translateY(-2px)}.specimen{display:block;text-align:left;font:9px Arial,sans-serif;color:#71654f;letter-spacing:1px;margin-top:11px}.art-wrap{position:relative;height:120px;display:grid;place-items:center}.card img{width:100%;height:110px;object-fit:contain}.rarity{font:9px Arial,sans-serif;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);margin:3px 0 8px}.card h2{font-size:17px;overflow-wrap:anywhere;margin:0;min-height:42px;display:grid;place-items:center}.card .caption{font-size:11px;font-style:italic;color:var(--muted);margin:8px 0 0}.mystery{background:#dbd0b440}.mystery .question{position:absolute;color:#f1e8d2;font-size:30px;top:32px;left:0;right:0}.mystery h2{letter-spacing:4px}.mystery .caption{color:#6e6350}.marginalia{text-align:center;font-style:italic;color:var(--muted);font-size:14px;margin:30px 0}.page-footer{display:flex;justify-content:space-between;padding:16px 0;border-top:1px solid var(--rule);color:var(--muted);font:9px Arial,sans-serif;letter-spacing:1px}nav{display:flex;justify-content:center;gap:55px;border-top:1px solid var(--rule);padding:12px 0 18px}nav a{display:flex;align-items:center;gap:8px;text-decoration:none;font-size:13px;min-height:44px;padding:0 8px}nav a span{font-size:23px}nav a[aria-current]{color:var(--blue);font-weight:bold;border-bottom:2px solid var(--blue)}.empty{text-align:center;border:1px dashed var(--rule);padding:35px 15px}.empty>span{font-size:40px}.empty button,.profile-card button{background:var(--blue);color:#fff5df;border:0;padding:12px 18px;border-radius:3px}.note{font-size:13px;color:var(--muted)}.recent-list{display:grid;gap:12px}.recent-row,.profile-card{border:1px solid var(--rule);padding:22px;background:#fff8e52b;margin-bottom:16px}.recent-row{display:flex;gap:20px;align-items:center}.recent-row img{width:75px}.recent-row h2{font-size:21px;margin:0 0 5px}.recent-row p{font-size:13px;margin:0;color:var(--muted)}.profile-card h2{margin-top:10px}.profile-card li{padding-block:5px}.skip{position:fixed;left:15px;top:-80px;z-index:20;background:white;padding:10px}.skip:focus{top:40px}dialog{width:min(460px,calc(100% - 30px));max-height:calc(100dvh - 40px);border:1px solid #9f895b;padding:35px;background:var(--paper);color:var(--ink);box-shadow:0 15px 80px #0008;text-align:center}dialog::backdrop{background:#191b22bd}dialog img{width:100%;height:170px}dialog h2{font-size:30px;margin:12px 0}dialog .close{position:absolute;right:8px;top:8px;width:44px;height:44px;font-size:28px;color:var(--ink);border:0;background:transparent}dl{text-align:left;border-top:1px solid var(--rule);padding-top:10px;font-size:13px}dl div{display:flex;justify-content:space-between;gap:15px;padding:7px 0}dd{margin:0;text-align:right}dt{color:var(--muted)}[hidden]{display:none!important}@media(max-width:850px){.paper{padding-inline:30px}.catalog{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog-tools{flex-direction:column;align-items:stretch;gap:10px}.filters button{flex:1}.catalog-caption span{display:none}}@media(max-width:540px){.demo-bar{font-size:9px;gap:10px;justify-content:space-between;padding:9px 10px;letter-spacing:.5px}.book{margin:0;padding-left:14px;box-shadow:none}.binding{width:14px;border-radius:0}.binding span{display:none}.binding:before,.binding:after{height:20px}.paper{padding:0 18px;min-height:100dvh;border-right:0;box-shadow:inset 8px 0 14px #8f744c1a}.paper:before{right:25px;width:19px;height:55px}.masthead{height:82px}.brand{font-size:23px}.brand span{font-size:7px;letter-spacing:1.6px}.seal{margin-right:38px;font-size:30px}main{padding-top:28px}h1{font-size:39px;letter-spacing:-1px}.heading:after{display:none}.eyebrow{font-size:9px;letter-spacing:1.5px}.intro{font-size:14px}.discovery{margin:21px 0;gap:18px;padding:16px 0}.discovery strong{font-size:27px}.discovery p{font-size:11px}.progress-side label{font-size:11px;gap:8px}.progress-side label span{display:none}.catalog{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card{padding-inline:8px}.card h2{font-size:16px;min-height:40px}.art-wrap{height:106px}.card img{height:100px}.card .caption{font-size:10px}.rarity{font-size:8px;letter-spacing:1.1px}.mystery .question{top:27px}.catalog-caption{margin:18px 0 12px}.page-footer{font-size:7px;gap:10px}.marginalia{font-size:12px}nav{position:sticky;bottom:0;z-index:4;background:#eee3ccec;backdrop-filter:blur(10px);gap:0;justify-content:space-around;margin-inline:-18px;padding:4px 8px}nav a{flex-direction:column;gap:0;font-size:11px;padding:3px 12px}nav a span{font-size:20px}.recent-row{padding:14px;gap:10px}.recent-row img{width:55px}.recent-row h2{font-size:18px}.profile-card{padding:18px}dialog{padding:32px 22px}.search-wrap input{font-size:12px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Collection preview: preserve the illustrated frame; allow comfortable vertical reading inside it. */
#main:has(#spellbook:not([hidden])){overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;padding-bottom:14px}
#spellbook{height:auto;min-height:100%}#catalog.collection-strip{display:block;position:relative;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scrollbar-width:thin;min-height:350px;contain:layout paint}
.collection-strip .strip-track{position:relative}.collection-strip .strip-group{position:absolute;top:0;display:grid;grid-template-rows:repeat(2,164px);gap:8px;padding-right:12px;scroll-snap-align:start;scroll-snap-stop:normal}
.collection-strip .card{margin:0;min-height:44px;height:164px;padding:8px 4px;border:1px solid #89704455;background:#fff6df28;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow:hidden}
.collection-strip .art-wrap{height:100px;flex:0 0 100px;width:100%;display:grid;place-items:center}.collection-strip .card img{width:96px;height:96px;object-fit:contain;padding:0}.collection-strip .card h2{font-size:15px;line-height:1.25;min-height:0;margin:7px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
#catalog:focus-visible{outline:3px solid #295d87;outline-offset:2px}@media(max-width:599px){#spellbook .search-wrap input{font-size:16px}#spellbook .filters button{min-height:44px;font-size:13px}.collection-strip .card h2{font-size:14px}}
@media(prefers-reduced-motion:reduce){#catalog{scroll-behavior:auto!important}}
/* Reflow only when magnification makes the book narrower than the accepted phone layout. Tile sizes stay unchanged. */
.book{container-type:inline-size}
@container(max-width:280px){
 .page-turner{top:79%;height:auto;flex-wrap:wrap;gap:0}
 .page-turner span{order:-1;flex-basis:100%;max-width:none;text-align:center;overflow-wrap:anywhere}
 .page-turner button{flex:1;min-width:0;min-height:24px;font-size:0;padding:2px}
 #previous-page::after{content:'\2190';font-size:16px}
 #next-page::after{content:'\2192';font-size:16px}
 #main{bottom:24%}
}
