:root{--parchment: #e8d4a8;--parchment-light: #f0e0bc;--parchment-deep: #d3bc88;--ink: #3d2817;--ink-soft: #6a4a2a;--ink-faded: #8a6a3a;--amber: #b5371a;--display: "Fraunces", "Palatino Linotype", Palatino, serif;--body: "IBM Plex Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", "Courier New", monospace}body{background:var(--parchment);background-image:radial-gradient(ellipse at 20% 30%,rgba(168,137,92,.18) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(168,137,92,.15) 0%,transparent 50%);color:var(--ink);font-family:var(--body);min-height:100vh;margin:0}.page{max-width:1380px;margin:0 auto;padding:40px 24px 60px;position:relative;z-index:1}.back-link{display:inline-block;margin-bottom:24px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);text-decoration:none;transition:color .22s ease}.back-link:hover{color:var(--amber)}.page-header{text-align:center;margin-bottom:28px}.volume-strip{font-family:var(--mono);font-size:10.5px;letter-spacing:.35em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px}.page-title{font-family:var(--display);font-size:64px;font-weight:400;font-style:italic;letter-spacing:.01em;color:var(--ink);line-height:1;margin:0 0 16px}.page-title .dot{color:var(--amber);margin-left:4px}.page-deck{font-family:var(--display);font-style:italic;font-size:19px;color:var(--ink-soft);max-width:640px;margin:0 auto;line-height:1.55}.map-wrap{position:relative;margin:36px 0 24px;border:1px solid var(--ink-faded);background:var(--parchment-light);box-shadow:inset 0 0 0 1px #3d281726,0 12px 36px #3d281738,0 2px 6px #3d28171f;aspect-ratio:3840 / 1866;overflow:visible;will-change:transform;contain:layout}.map-image{position:absolute;inset:0;background-image:url(/assets/read-realm-map.png);background-size:cover;background-position:center;filter:sepia(.05)}.map-marker{position:absolute;transform:translate(-50%,-50%);width:44px;height:56px;background:transparent;border:0;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;z-index:5}.marker-ring{display:block;width:38px;height:38px;border-radius:50%;background:#e8d4a8f2;border:1.5px solid rgba(61,40,23,.85);position:relative;transition:transform .22s ease,box-shadow .22s ease}.marker-dot{position:absolute;top:19px;left:50%;width:8px;height:8px;border-radius:50%;background:#b5371ae6;transform:translate(-50%,-50%);transition:background .22s ease;pointer-events:none}.marker-numeral{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:#3d2817e6;margin-top:4px;text-shadow:0 0 4px rgba(232,212,168,.9)}.map-marker:hover .marker-ring,.map-marker:focus-visible .marker-ring{transform:scale(1.18);box-shadow:0 0 12px #b5371a66}.map-marker:hover .marker-dot,.map-marker:focus-visible .marker-dot{background:#b5371a}.map-marker:focus-visible{outline:2px solid var(--amber);outline-offset:4px;border-radius:4px}.marker-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;width:140px;padding:8px 10px 9px;background:#e8d4a8fa;border:1px solid var(--ink-soft);border-radius:3px;box-shadow:0 6px 14px #3d281740;display:flex;flex-direction:column;gap:3px;text-align:center;transform:translate(-50%) scale(.92);transform-origin:bottom center;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;z-index:10}.marker-tooltip:before,.marker-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:0;height:0;border-style:solid}.marker-tooltip:before{border-width:7px 7px 0 7px;border-color:var(--ink-soft) transparent transparent transparent}.marker-tooltip:after{border-width:6px 6px 0 6px;border-color:rgba(232,212,168,.98) transparent transparent transparent;margin-top:-1px}.tooltip-genre{font-family:var(--display);font-style:italic;font-size:13px;line-height:1.2;color:var(--ink)}.tooltip-count{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}.map-marker:hover .marker-tooltip,.map-marker:focus-visible .marker-tooltip{opacity:1;transform:translate(-50%) scale(1)}.map-legend{list-style:none;padding:0;margin:24px auto;display:grid;grid-template-columns:1fr 1fr;grid-auto-flow:column;grid-template-rows:repeat(4,auto);gap:10px 40px;max-width:760px;font-family:var(--display);font-style:italic;font-size:17px;color:var(--ink)}.map-legend li{display:grid;grid-template-columns:38px minmax(140px,auto) 1fr;column-gap:10px;align-items:baseline}.legend-numeral{font-family:var(--mono);font-style:normal;font-size:11px;letter-spacing:.12em;color:var(--amber)}.legend-genre{font-family:var(--display);font-style:italic;font-size:14px;color:var(--ink-soft)}@media (max-width: 600px){.map-legend{grid-template-columns:1fr;grid-template-rows:auto;grid-auto-flow:row;max-width:360px}}.footnote{text-align:center;font-style:italic;font-family:var(--display);color:var(--ink-faded);font-size:15px;margin:20px 0 0}.backdrop{position:fixed;inset:0;background:#3d281752;z-index:99;opacity:0;pointer-events:none;transition:opacity .38s ease}.backdrop.open{opacity:1;pointer-events:auto}.panel{position:fixed;top:0;right:0;width:520px;max-width:92vw;height:100vh;background:linear-gradient(160deg,var(--parchment-light) 0%,var(--parchment) 60%,var(--parchment-deep) 100%);box-shadow:-10px 0 40px #3d281752;border-left:1px solid var(--ink-soft);padding:48px 40px 60px;overflow-y:auto;z-index:100;transform:translate(100%);transition:transform .52s cubic-bezier(.65,0,.35,1);font-family:var(--body)}.panel.open{transform:translate(0)}.panel-close{position:absolute;top:20px;right:24px;background:transparent;border:1px solid var(--ink-soft);width:32px;height:32px;border-radius:50%;font-size:18px;cursor:pointer;color:var(--ink);font-family:var(--display);display:flex;align-items:center;justify-content:center;transition:all .22s ease}.panel-close:hover{color:var(--amber);border-color:var(--amber);transform:rotate(90deg)}.panel-region-header{font-family:var(--mono);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px}.panel-title{font-family:var(--display);font-size:38px;font-style:italic;letter-spacing:.01em;margin:0 0 6px;color:var(--ink);line-height:1.05;font-weight:500}.panel-title .dot{color:var(--amber)}.panel-meta{font-family:var(--mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faded);margin-bottom:28px;padding-bottom:16px;border-bottom:1px solid var(--ink-faded);position:relative}.panel-meta:after{content:"❖";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);background:var(--parchment);color:var(--amber);padding:0 8px;font-size:12px}.panel-intro{font-style:italic;font-family:var(--display);font-size:15px;color:var(--ink-soft);margin:0 0 32px;line-height:1.6}.panel-books{display:block}.book{display:grid;grid-template-columns:90px 1fr;gap:20px;align-items:start;padding:18px 0;border-bottom:1px dotted rgba(138,106,58,.4)}.book:last-child{border-bottom:none}.book-cover{display:block;width:90px;height:135px;background:linear-gradient(140deg,#4a3828,#2a1d12 60%,#1a120a);border-radius:2px;box-shadow:0 4px 10px #3d281766,inset 0 0 0 1px #00000026;position:relative;overflow:hidden;transition:transform .24s ease,box-shadow .24s ease}.book-cover:hover{transform:translateY(-3px);box-shadow:0 8px 18px #3d281780,inset 0 0 0 1px #00000026}.book-cover:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#00000040;z-index:2}.book-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}.book-cover-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:8px;text-align:center;color:#fff5dceb;font-family:var(--display);font-style:italic;font-size:11px;line-height:1.2;font-weight:500;z-index:1}.book-info{padding-top:4px}.book-title{font-family:var(--display);font-size:18px;font-style:italic;line-height:1.25;color:var(--ink);margin:0 0 6px;font-weight:500}.book-author{font-family:var(--mono);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft)}.empty-state{text-align:center;padding:40px 20px;font-style:italic;font-family:var(--display);color:var(--ink-soft);font-size:15px;line-height:1.6}.empty-state-glyph{font-size:36px;display:block;margin-bottom:16px;opacity:.5}@media (max-width: 720px){.page-title{font-size:42px}.page-deck{font-size:16px}.panel{padding:48px 24px 40px}.panel-title{font-size:30px}.book{grid-template-columns:64px 1fr;gap:14px}.book-cover{width:64px;height:94px}.marker-tooltip{display:none}}
