@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap";:root{--bone:#f7f5f0;--ink:#1a1a1a;--ochre:#b8956a;--prussian:#3a5a7c;--fade:#a89880;--text:#1a1a1a;--text-dim:#6b6058;--bg:#f7f5f0;--card-bg:#efebe2;--border:#d9d0c5;--accent:#3a5a7c;--accent2:#b8956a;--danger:#9b3a3a;--success:#4a7a4a;--primary:var(--bone);--secondary:var(--card-bg);--header-height:56px;--font-sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Geist Sans", "SF Pro Display", sans-serif;--font-serif:"Playfair Display", "Times New Roman", "PingFang SC", serif;--font-mono:"SF Mono", "JetBrains Mono", "Cascadia Code", monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-xs:0 1px 2px #00000008;--shadow-sm:0 2px 8px #0000000a;--transition:.2s cubic-bezier(.2, 0, 0, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;cursor:default;font-weight:400;line-height:1.6}body:before{content:"";z-index:0;pointer-events:none;opacity:.015;background-image:url(data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20256%20256%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3Cfilter%20id%3D%27n%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%270.9%27%20numOctaves%3D%274%27%20stitchTiles%3D%27stitch%27%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%27100%25%27%20height%3D%27100%25%27%20filter%3D%27url%28%23n%29%27%2F%3E%3C%2Fsvg%3E);position:fixed;inset:0}.candle-glow{pointer-events:none;z-index:9999;background:radial-gradient(circle,#ffdca00f 0%,#ffc87805 40%,#0000 70%);border-radius:50%;width:600px;height:600px;transition:opacity .6s;position:fixed;transform:translate(-50%,-50%)}.parallax-wrap{transition:transform .1s linear;transform:translateY(0)}.app-container{background:var(--bg);width:100%;max-width:100%;min-height:100dvh;margin:0 auto;position:relative}.app-header{z-index:100;height:var(--header-height);background:linear-gradient(to bottom, var(--bone), #f4f0ebf2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.app-title{font-family:var(--font-serif);color:var(--ink);cursor:pointer;letter-spacing:.04em;font-size:20px;font-style:italic;font-weight:400}.settings-btn{cursor:pointer;color:var(--text-dim);transition:color var(--transition);border-radius:var(--radius-sm);background:0 0;border:none;padding:4px;font-size:18px}.settings-btn:hover{color:var(--ink)}.settings-btn:focus-visible{outline:2px solid var(--ochre);outline-offset:2px}.app-main{min-height:calc(100vh - var(--header-height));padding:24px 40px 40px}.app-main.reader-mode{padding:0}.nav-btn{color:var(--text-dim);cursor:pointer;transition:color var(--transition);border-radius:var(--radius-sm);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:11px;display:flex}.nav-btn:hover{color:var(--ink)}.nav-btn:active{transform:scale(.97)}.nav-btn.active{color:var(--accent);font-weight:600}.nav-btn:focus-visible{outline:2px solid var(--ochre);outline-offset:2px}.nav-icon{font-size:20px}.card{background:var(--card-bg);border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;transition:border-color var(--transition), transform var(--transition);margin-bottom:6px;padding:16px 18px;position:relative}.card:hover{border-color:var(--ochre);transform:translateY(-1px)}.card:active{transform:scale(.99)}.card:focus-visible{outline:2px solid var(--ochre);outline-offset:2px}.card-title{color:var(--ink);font-size:16px;font-weight:500;font-family:var(--font-serif);margin-bottom:4px}.card-subtitle{color:var(--text-dim);font-size:13px;font-weight:400}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--card-bg) 25%, var(--border) 50%, var(--card-bg) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}.tag{letter-spacing:.04em;text-transform:uppercase;color:var(--fade);border:1px solid var(--border);transition:border-color var(--transition), color var(--transition);background:0 0;border-radius:9999px;margin:2px;padding:3px 10px;font-size:11px;display:inline-block}.tag:hover{border-color:var(--ochre);color:var(--ochre)}.badge{letter-spacing:.04em;text-transform:uppercase;border-radius:9999px;padding:3px 10px;font-size:11px;font-weight:500;display:inline-block}.badge-east{color:var(--prussian);background:#3a5a7c0f;border:1px solid #3a5a7c26}.badge-west{color:var(--ochre);background:#b8956a0f;border:1px solid #b8956a26}.badge-world{color:#4a7a4a;background:#5a8a5a0f;border:1px solid #4a7a4a26}.badge-available{color:var(--success);background:#4a7a4a0f;border:1px solid #4a7a4a26}.badge-pending{color:var(--ochre);background:#b8956a0f;border:1px solid #b8956a26}.btn{border-radius:var(--radius-sm);border:1px solid var(--border);font-size:13px;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:all var(--transition);color:var(--text-dim);letter-spacing:.03em;background:0 0;padding:8px 18px}.btn:hover{transform:translateY(-1px)}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:2px solid var(--ochre);outline-offset:2px}.btn-primary{border-color:var(--ink);color:var(--ink)}.btn-primary:hover{background:var(--ink);color:var(--bone);border-color:var(--ink)}.btn-secondary{border-color:var(--border);color:var(--text-dim)}.btn-secondary:hover{border-color:var(--ochre);color:var(--ochre)}.btn-danger{border-color:var(--danger);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-block{justify-content:center;width:100%}.search-box{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card-bg);width:100%;color:var(--text);font-size:15px;font-family:var(--font-sans);transition:border-color var(--transition);outline:none;margin-bottom:18px;padding:12px 16px;font-weight:400}.search-box:focus{border-color:var(--ochre);border-bottom-color:var(--ochre)}.loading{color:var(--text-dim);justify-content:center;align-items:center;padding:80px 20px;font-size:15px;display:flex}.empty-state{text-align:center;color:var(--text-dim);padding:60px 20px}.section-title{color:var(--ink);font-size:20px;font-weight:400;font-family:var(--font-serif);letter-spacing:.03em;margin:20px 0 12px}.page-container{padding:0}.chat-container{flex-direction:column;flex:1;gap:8px;padding:8px 24px;display:flex;overflow-y:auto}.chat-message{border-radius:10px;max-width:80%;padding:8px 14px;font-size:14px;line-height:1.7}.chat-message.user{background:var(--ink);color:var(--bone);align-self:flex-end}.chat-message.assistant{background:var(--card-bg);border:1px solid var(--border);align-self:flex-start}.chat-input-area{background:var(--bg);border-top:1px solid var(--border);gap:8px;padding:8px 20px;display:flex}.chat-input{border:1px solid var(--border);background:var(--card-bg);color:var(--text);border-radius:20px;outline:none;flex:1;padding:10px 16px;font-family:inherit;font-size:14px}.chat-input:focus{border-color:var(--ochre)}.chat-send-btn{background:var(--ink);width:42px;height:42px;color:var(--bone);cursor:pointer;border:none;border-radius:50%;font-size:18px}.settings-form{flex-direction:column;gap:16px;display:flex}.settings-form label{color:var(--text-dim);flex-direction:column;gap:4px;font-size:13px;display:flex}.settings-form input{border:1px solid var(--border);background:var(--card-bg);color:var(--text);border-radius:8px;padding:12px 16px;font-family:inherit;font-size:15px}.summary-text{color:var(--text-dim);margin-top:8px;font-size:14px;line-height:1.7}.reader-container{background:var(--bone);width:100%}.react-pdf__Page{margin:8px auto;box-shadow:0 2px 16px #00000014}.react-pdf__Page canvas{max-width:100%!important;height:auto!important}.epub-container{background:var(--bone)!important;max-width:800px!important;margin:0 auto!important}html.mobile-mode .app-container{max-width:480px!important;margin:0 auto!important}html.mobile-mode .app-main{padding:16px 12px 20px!important}html.mobile-mode .app-header{padding:0 12px!important}html.mobile-mode .app-title{font-size:14px!important}html.mobile-mode .app-header{gap:0!important;padding:0 8px!important}html.mobile-mode .app-header span{gap:0!important}html.mobile-mode .nav-btn{flex-direction:row!important;padding:2px 4px!important;font-size:10px!important}html.mobile-mode .nav-btn span:last-child{display:none!important}html.mobile-mode .settings-btn{padding:2px!important;font-size:14px!important}html.mobile-mode .card{padding:10px 0!important}html.mobile-mode .card-title{font-size:14px!important}html.mobile-mode .card-subtitle{font-size:12px!important}html.mobile-mode .section-title{font-size:16px!important}html.mobile-mode .search-box{padding:10px 14px!important;font-size:14px!important}html.mobile-mode .btn{padding:6px 14px!important;font-size:12px!important}html.mobile-mode .chat-message{max-width:90%!important;font-size:13px!important}html.mobile-mode .chat-input{font-size:13px!important}html.mobile-mode [style*="flex: 0 0 60%"]{flex:100%!important}html.mobile-mode [style*=showNotes] [style*=flex\:],html.mobile-mode .philosophy-timeline [style*=display\:flex]{flex-direction:column!important}html.mobile-mode .philosophy-timeline [style*=width\:110px]{width:60px!important;padding-right:10px!important}html.dark-mode{--bone:#1a1816;--ink:#e8e3d9;--ochre:#c9a96e;--prussian:#6b8fae;--fade:#7a7068;--text:#e8e3d9;--text-dim:#b8b0a0;--bg:#0f0e0c;--card-bg:#1e1c19;--border:#3a3530;--accent:#6b8fae;--accent2:#c9a96e;--primary:var(--bone);--secondary:var(--card-bg)}html.dark-mode body{background:var(--bg);color:var(--text)}html.dark-mode .app-header{background:linear-gradient(#1a1816,#1a1816f2)}html.dark-mode .candle-glow{background:radial-gradient(circle,#c9a96e0a 0%,#c9a96e03 40%,#0000 70%)}html.dark-mode .card:hover{border-bottom-color:var(--ochre)}html.dark-mode .btn-primary{border-color:var(--ink);color:var(--ink)}html.dark-mode .search-box{color:var(--text)}html.dark-mode .search-box:focus{border-bottom-color:var(--ochre)}@keyframes pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}@media (width>=768px){.app-container{max-width:100%}.app-main{padding:32px 48px 40px}.chat-message{max-width:70%}}@media (width>=1200px){.app-container{max-width:100%}.app-main{padding:40px 64px}.chat-message{max-width:60%}}
