:root{--color-bg: #121212;--color-surface: #1e1e1e;--color-border: #333333;--color-text: #e0e0e0;--color-text-muted: #999999;--color-accent: #8b8b8b;--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-success: #4ade80;--color-success-bg: #14532d;--color-success-border: #166534;--color-error-bg: #450a0a;--color-error-border: #7f1d1d;--color-progress: #6b9b7a}*{box-sizing:border-box;margin:0;padding:0}.line-clamp-1{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}.page-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.page-header h1{font-size:2rem;font-weight:600;margin:0}.page-header-actions{display:flex;gap:.5rem;flex-wrap:wrap}.container{max-width:1200px;margin:0 auto;padding:2rem;flex:1;width:100%}.subtitle{color:var(--color-text-muted);font-size:1.1rem}.form-container{max-width:400px}.form{display:flex;flex-direction:column;gap:1rem}.form-inline{flex-direction:row;flex-wrap:wrap;align-items:flex-end}.form-inline .form-group{flex:1;min-width:150px}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group label{font-size:.85rem;font-weight:500;color:var(--color-text-muted)}.form-group input,.form-group textarea,.form-group select{padding:.5rem;font-size:1rem;border:1px solid var(--color-border);border-radius:4px;background-color:var(--color-surface);color:var(--color-text)}.form-group textarea{width:100%;resize:vertical;box-sizing:border-box;font-family:inherit}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--color-accent)}.error-message{padding:1rem;background-color:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:4px;color:var(--color-danger);margin-bottom:1rem}.success-message{padding:1rem;background-color:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:4px;color:var(--color-success);margin-bottom:1rem}.section{margin-bottom:2rem}.section h2{font-size:1.25rem;margin-bottom:1rem}.empty-state{text-align:center;padding:2rem;color:var(--color-text-muted)}@media(max-width:768px){.page-header{flex-direction:column;align-items:flex-start}.page-header h1{font-size:1.5rem}.container{padding:1rem}}.overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;animation:overlay-in .4s ease forwards}.overlay--closing{animation:overlay-out .3s ease forwards}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes overlay-out{0%{opacity:1}to{opacity:0}}.overlay__bg{position:absolute;inset:-40px;background-size:cover;background-position:center;filter:blur(10px) saturate(1.3);z-index:0;pointer-events:none;animation:bg-zoom .6s ease forwards}@keyframes bg-zoom{0%{transform:scale(1.15);opacity:0}to{transform:scale(1);opacity:1}}.overlay__scrim{position:absolute;inset:0;z-index:1;pointer-events:none}.overlay:has(.overlay__bg) .overlay__scrim{background:radial-gradient(ellipse at center,#0006,#000000b3)}.overlay:not(:has(.overlay__bg)) .overlay__scrim{background:#000000d9}.overlay__close{position:absolute;top:1.25rem;right:1.25rem;z-index:10;background:#ffffff1a;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);color:#ffffffe6;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s}.overlay__close:hover{background:#fff3;transform:scale(1.1)}.overlay__content{position:relative;z-index:5;display:flex;flex-direction:column;max-width:720px;width:90vw;max-height:90vh;overflow-y:auto;overscroll-behavior:contain;animation:content-enter .5s cubic-bezier(.16,1,.3,1) forwards}.overlay__top-row{display:flex;align-items:center;gap:3rem}.overlay__content--closing{animation:content-exit .25s ease forwards}@keyframes content-enter{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes content-exit{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(20px) scale(.97)}}.overlay__book-scene{flex-shrink:0;animation:book-float-in .6s cubic-bezier(.16,1,.3,1) .1s both;filter:drop-shadow(0 20px 40px rgba(0,0,0,.5))}@keyframes book-float-in{0%{opacity:0;transform:translateY(40px) rotateY(-10deg)}to{opacity:1;transform:translateY(0) rotateY(0)}}.overlay__details{flex:1;min-width:0;display:flex;flex-direction:column;gap:.6rem;animation:details-slide-in .5s ease .2s both}@keyframes details-slide-in{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.overlay__title{margin:0;font-size:1.6rem;font-weight:700;line-height:1.2;color:#fff!important;text-shadow:0 2px 8px rgba(0,0,0,.4)}.overlay__authors{margin:0;font-size:1rem;color:#ffffffb3}.overlay__divider{width:40px;height:2px;background:#fff3;border-radius:1px;margin:.25rem 0}.overlay__rating{filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.overlay__meta-text{font-size:.85rem;color:#fff9}.overlay__review{display:flex;gap:.75rem;padding:.85rem 1rem;background:#ffffff12;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);border-radius:10px;margin-top:.25rem;animation:review-fade-in .4s ease .4s both}@keyframes review-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.overlay__review-icon{flex-shrink:0;color:#fff6;margin-top:2px}.overlay__review-text{font-size:.9rem;line-height:1.6;color:#ffffffd9;overflow:hidden}.overlay__review-text p{margin:0 0 .4rem}.overlay__review-text p:last-child{margin-bottom:0}.overlay__progress{display:flex;flex-direction:column;gap:.4rem}.overlay__progress-track{width:100%;height:6px;background:#ffffff1f;border-radius:3px;overflow:hidden}.overlay__progress-fill{height:100%;background:linear-gradient(90deg,var(--color-accent),#60a5fa);border-radius:3px;transition:width .6s ease;box-shadow:0 0 8px #60a5fa66}.overlay__progress-text{font-size:.85rem;color:#fff9}.overlay__badge{display:inline-block;padding:.25rem .75rem;font-size:.8rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:20px;color:#fffc;text-transform:capitalize;width:fit-content;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.overlay__description{font-size:.85rem;line-height:1.6;color:#ffffffd9;overflow:hidden}.overlay__description p{margin:0 0 .4rem}.overlay__description p:last-child{margin-bottom:0}.overlay__events{margin-top:1.25rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.overlay__events-title{font-size:.8rem;font-weight:500;color:#ffffff80;text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem}.overlay__event{display:flex;align-items:flex-start;gap:.6rem;padding:.35rem 0}.overlay__event-content{flex:1;min-width:0}.overlay__event-text{font-size:.8rem;color:#ffffffb3;line-height:1.4}.overlay__event-time{display:block;font-size:.7rem;color:#fff6;margin-top:.1rem}.overlay__book-scene{cursor:pointer;transition:filter .3s ease}.overlay--focused .overlay__content{max-width:none;width:auto;align-items:center;justify-content:center}.overlay--focused .overlay__top-row{justify-content:center}@media(max-width:640px){.overlay__content{padding:1rem;max-height:85vh;overflow-y:auto}.overlay__top-row{flex-direction:column;gap:1.5rem}.overlay__book-scene{flex-shrink:0}.overlay__details{align-items:center;text-align:center}.overlay__divider{margin-left:auto;margin-right:auto}.overlay__review{text-align:left}.overlay__title{font-size:1.3rem}}.nav-dropdown.svelte-1cz6ozg{position:relative}.trigger.svelte-1cz6ozg{display:inline-flex;align-items:center;gap:.25rem;padding:.5rem .75rem;background:none;border:none;border-radius:4px;color:var(--color-text-muted);font-family:inherit;font-size:.9rem;cursor:pointer;transition:background-color .2s,color .2s}.trigger.svelte-1cz6ozg:hover,.trigger.active.svelte-1cz6ozg{background-color:var(--color-bg);color:var(--color-text)}.caret.svelte-1cz6ozg{font-size:.7rem;transition:transform .15s}.nav-dropdown.open.svelte-1cz6ozg .caret:where(.svelte-1cz6ozg){transform:rotate(180deg)}.panel.svelte-1cz6ozg{position:absolute;top:calc(100% + .25rem);right:0;min-width:10rem;padding:.25rem;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;box-shadow:0 8px 24px #00000014;display:none;flex-direction:column;gap:.15rem;z-index:100}.panel.visible.svelte-1cz6ozg{display:flex}.panel.svelte-1cz6ozg a{display:block;padding:.5rem .75rem;border-radius:4px;color:var(--color-text-muted);font-size:.9rem;text-decoration:none;white-space:nowrap;transition:background-color .2s,color .2s}.panel.svelte-1cz6ozg a:hover{background-color:var(--color-bg);color:var(--color-text)}@media(max-width:768px){.trigger.svelte-1cz6ozg{display:none}.panel.svelte-1cz6ozg{position:static;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;min-width:0;padding:0;background:none;border:none;box-shadow:none}}.navbar.svelte-rfuq4y{display:flex;justify-content:space-between;align-items:center;padding:.25rem 2rem;background-color:var(--color-surface);border-bottom:1px solid var(--color-border);--color-surface: #ffffff;--color-border: #e0e0e0;--color-bg: #f5f5f5;--color-text: #333333;--color-text-muted: #666666;--color-accent: #555555}.navbar-brand.svelte-rfuq4y{text-decoration:none;display:flex;align-items:center}.navbar-logo.svelte-rfuq4y{height:64px;width:auto}.navbar-brand.svelte-rfuq4y:hover{color:var(--color-accent)}.navbar-menu.svelte-rfuq4y{display:flex;align-items:center;gap:.5rem}.navbar-item.svelte-rfuq4y{padding:.5rem .75rem;text-decoration:none;color:var(--color-text-muted);border-radius:4px;font-size:.9rem;transition:background-color .2s,color .2s}.navbar-item.svelte-rfuq4y:hover{background-color:var(--color-bg);color:var(--color-text)}.navbar-btn.svelte-rfuq4y{background:none;border:none;cursor:pointer;font-family:inherit}@media(max-width:768px){.navbar.svelte-rfuq4y{flex-direction:column;gap:.75rem;padding:1rem}.navbar-menu.svelte-rfuq4y{flex-wrap:wrap;justify-content:center}}.footer.svelte-jz8lnl{padding:1rem 2rem;background-color:var(--color-surface);border-top:1px solid var(--color-border);margin-top:auto;position:relative;z-index:0}.webgl-banner.svelte-trevfv{display:flex;align-items:flex-start;gap:1rem;padding:.75rem 1.25rem;background-color:#1a1a2e;border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:.85rem;line-height:1.5}.webgl-banner-content.svelte-trevfv{flex:1;display:flex;flex-direction:column;gap:.25rem}.webgl-banner-content.svelte-trevfv p:where(.svelte-trevfv){margin:0}.webgl-banner-steps.svelte-trevfv{color:var(--color-text-muted)}.webgl-banner-dismiss.svelte-trevfv{flex-shrink:0;background:none;border:none;color:var(--color-text-muted);font-size:1.25rem;cursor:pointer;padding:0 .25rem;line-height:1}.webgl-banner-dismiss.svelte-trevfv:hover{color:var(--color-text)}
