:root{--bg:#f5efe1;--bg-elev:#faf5e8;--border:#e6dcc6;--text:#2c2419;--text-muted:#6b6256;--accent:#6b7a3a;--accent-text:#fff;--shadow-card:0 8px 24px #00000014}*{box-sizing:border-box}html,body{background-color:var(--bg);color:var(--text);margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}button{font-family:inherit}.app{flex-direction:column;min-height:100vh;display:flex}.app-main{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:0 24px 48px}.app-header{background:var(--bg-elev);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:24px;padding:18px 32px;display:flex;position:sticky;top:0}.app-brand{align-items:center;gap:12px;display:flex}.app-brand-mark{object-fit:contain;width:44px;height:44px}.app-brand-name{letter-spacing:-.01em;font-family:Georgia,Times New Roman,serif;font-size:1.7rem;font-weight:700}.app-nav{gap:4px;margin-left:12px;display:flex}.app-nav-link{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:8px 16px;font-size:1rem;transition:background .15s}.app-nav-link:hover{background:#0000000d}.app-nav-link.active{border-bottom:2px solid var(--text);border-radius:0;padding-bottom:6px;font-weight:600}.app-search{background:var(--bg);border:1px solid var(--border);border-radius:999px;align-items:center;gap:10px;width:100%;max-width:380px;margin-left:auto;padding:8px 18px;transition:border-color .15s,box-shadow .15s;display:flex}.app-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #6b7a3a26}.app-search i{color:var(--text-muted)}.app-search input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:.95rem}.app-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;width:100%;max-width:1280px;margin:0 auto;padding:24px 24px 16px;display:flex}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--bg-elev);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:999px;padding:8px 16px;font-size:.92rem;transition:background .15s,color .15s,border-color .15s}.chip:hover{border-color:var(--accent)}.chip.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.sort-row{color:var(--text-muted);align-items:center;gap:8px;font-size:.9rem;display:flex}.sort-label{font-weight:500}.sort-select{background:var(--bg-elev);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;padding:6px 10px;font-size:.9rem}.sort-direction{background:var(--bg-elev);border:1px solid var(--border);cursor:pointer;width:32px;height:32px;color:var(--text);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.sort-direction:hover{border-color:var(--accent)}.bookshelf{background:url(/Bokhylle_asset_1.png) 0 0/1100px 1100px;border-radius:12px;padding:26px;position:relative;box-shadow:0 35px 80px #140c0580,0 6px 14px #140c0559,inset 0 3px #ffe1af73,inset 0 8px 14px -6px #ffe1af2e,inset 3px 0 #ffe1af2e,inset -3px 0 #00000059,inset 0 -4px #0000008c,inset 0 -10px 16px -8px #00000080,inset 0 0 0 1px #00000073}.bookshelf-empty{text-align:center;color:#e8d9b9;background:url(/Bokhylle_asset_1.png) 0 0/1100px 1100px;border-radius:4px;padding:80px 20px;font-style:italic;box-shadow:inset 0 0 60px #000000b3}.bookshelf-grid{background:radial-gradient(65% 50px at 50% 245px,#ffc3782e,#ffc37800 75%) 0 0/100% 290px repeat-y,url(/Bokhylle_asset_3.png) 0 161px/100% 290px,#2a1808 url(/Bokhylle_asset_1.png) 0 0/1100px 1100px;border-radius:4px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));grid-auto-rows:290px;gap:0;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 14px 22px -8px #000000f2,inset 14px 0 22px -12px #000000d9,inset -14px 0 22px -12px #000000d9,inset 0 -10px 16px -6px #000c,inset 0 0 100px #00000080,inset 0 0 0 1px #000000b3}.bookshelf-grid:after{content:"";pointer-events:none;background:url(/Bokhylle_asset_5.png) 0 0/100% 100% no-repeat;height:30px;position:absolute;bottom:0;left:0;right:0}.shelf-cell{cursor:pointer;color:inherit;background:0 0;border:none;justify-content:center;align-items:flex-end;padding:30px 14px;display:flex;position:relative}.shelf-cell:focus-visible{outline-offset:-8px;border-radius:4px;outline:2px solid #ffdcaa99}.book-on-shelf{z-index:1;filter:drop-shadow(3px 6px 8px #000000b3);width:100%;max-width:140px;transition:transform .25s,filter .25s;display:block;position:relative}.shelf-cell:hover .book-on-shelf,.shelf-cell:focus-visible .book-on-shelf{filter:drop-shadow(5px 14px 16px #000000bf);transform:translateY(-10px)}.book-cover{aspect-ratio:2/3;object-fit:cover;background:#222;border-radius:2px;width:100%;display:block}.modal-backdrop{z-index:100;background:#140e068c;justify-content:center;align-items:center;padding:20px;animation:.15s fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-elev);border-radius:12px;grid-template-columns:240px 1fr;gap:0;width:100%;max-width:720px;max-height:90vh;display:grid;position:relative;overflow-y:auto;box-shadow:0 30px 80px #0006}.modal-close{color:var(--text-muted);cursor:pointer;z-index:1;background:0 0;border:none;font-size:1.8rem;line-height:1;position:absolute;top:8px;right:12px}.modal-close:hover{color:var(--text)}.modal-cover-wrap{background:linear-gradient(#efe4cc,#d9cba7);justify-content:center;align-items:center;padding:24px;display:flex}.modal-cover{aspect-ratio:2/3;object-fit:cover;border-radius:3px;width:100%;max-width:200px;box-shadow:0 12px 24px #0000004d}.modal-body{padding:28px 28px 24px}.modal-title{letter-spacing:-.01em;margin:0 0 4px;font-family:Georgia,Times New Roman,serif;font-size:1.6rem}.modal-author{color:var(--text-muted);margin:0 0 18px;font-style:italic}.modal-facts{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;margin:0 0 22px;display:grid}.modal-facts>div{background:var(--bg);border-radius:8px;padding:8px 12px}.modal-facts dt{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px;font-size:.72rem}.modal-facts dd{margin:0;font-weight:600}.dice-value{font-weight:700}.modal-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0 0 8px;font-size:.9rem}.terningkast-list{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.terningkast-list li{background:var(--bg);border-radius:6px;justify-content:space-between;padding:6px 12px;font-size:.92rem;display:flex}.terningkast-value{font-weight:700}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:20px;padding-top:24px;display:grid}.stat-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:20px 22px 16px;box-shadow:0 2px 8px #0000000a}.stat-card--wide{grid-column:1/-1}.stat-card-header{margin-bottom:12px}.stat-card-title{color:var(--text);margin:0 0 2px;font-family:Georgia,Times New Roman,serif;font-size:1.15rem;font-weight:700}.stat-card-desc{color:var(--text-muted);margin:0;font-size:.85rem}.stat-card-body{margin-left:-8px}.stats-loading{text-align:center;color:var(--text-muted);padding:40px 0;font-style:italic}.geo-wrap{background:#faf5e8;border-radius:8px;width:100%;height:380px;overflow:hidden}.geo-wrap svg{display:block}.geo-country{transition:fill .12s ease-in-out}.geo-country:hover{fill:#a85a40}@media (width<=720px){.app-header{flex-wrap:wrap;gap:12px;padding:14px 18px}.app-search{order:3;max-width:100%;margin-left:0}.app-toolbar{padding:18px 16px 12px}.app-main{padding:0 16px 32px}.bookshelf{padding:14px}.bookshelf-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.shelf-cell{padding:22px 10px 36px}.modal{grid-template-columns:1fr}.modal-cover-wrap{padding:20px}.stats-grid{grid-template-columns:1fr}.stat-card{padding:16px 14px 12px}}@media (width<=480px){.bookshelf{padding:10px}.bookshelf-grid{background:radial-gradient(65% 40px at 50% 178px,#ffc3782e,#ffc37800 75%) 0 0/100% 210px repeat-y,url(/Bokhylle_asset_3.png) 0 117px/100% 210px,#2a1808 url(/Bokhylle_asset_1.png) 0 0/800px 800px;grid-template-columns:repeat(auto-fill,minmax(85px,1fr));grid-auto-rows:210px}.shelf-cell{padding:14px 5px 22px}.book-on-shelf{max-width:110px}}@media (prefers-reduced-motion:reduce){.book-on-shelf,.modal-backdrop{transition:none;animation:none}}
