:root{--bg:#1c130c;--land:#2f2218;--border:#443425;--surface:#221810;--text:#e5ddd0;--accent:#c4a25a;--btn-bg:#14130ee6;--btn-border:#4a4636;--veil:#000000b8;--glow-color:#c4a25a}body.light{--bg:#ece2d1;--land:#d8c4a3;--border:#c4ad88;--surface:#f7f2e9;--text:#3e3227;--accent:#9a6b2f;--btn-bg:#f7f2e9eb;--btn-border:#c4ad88;--veil:#281c1061;--glow-color:#96602a}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:Georgia,Times New Roman,serif;overflow:hidden}#app{z-index:1;width:100vw;height:100vh;position:relative}#era-label{white-space:nowrap;min-height:48px;color:var(--text);opacity:.5;pointer-events:none;margin-bottom:28px;font-family:Georgia,Times New Roman,serif;font-size:48px;line-height:1}#map{display:block}.country{fill:var(--land);stroke:none}.portrait-bg{fill:var(--bg)}.portrait{--glow:var(--glow-color)}.portrait.is-focused{filter:drop-shadow(0 0 5px var(--glow)) drop-shadow(0 0 14px var(--glow))}.portrait-scale{transform-box:fill-box;transform-origin:50%;transition:transform .2s}.portrait.is-focused .portrait-scale{transform:scale(var(--focus-scale))}.dim-overlay{fill:var(--veil);opacity:1;pointer-events:none;transition:opacity .2s}.dim-overlay.is-hidden{opacity:0}.portrait.type-author{--glow:#c7ccd1}.portrait.type-philosopher{--glow:#6f9fd8}.portrait-initials{fill:var(--text);letter-spacing:.5px;font-family:Georgia,Times New Roman,serif}.portrait{transition:opacity .4s,filter .15s}.portrait.is-hidden{opacity:0;pointer-events:none}.portrait.is-alive{opacity:1}#topbar{z-index:2;flex-direction:column;align-items:center;gap:16px;display:flex;position:fixed;top:22px;left:50%;transform:translate(-50%)}#site-title{letter-spacing:2px;text-transform:uppercase;color:var(--text);opacity:.85;font-family:Georgia,Times New Roman,serif;font-size:22px;font-weight:400}#info-btn{z-index:4;border:1px solid var(--btn-border);background:var(--btn-bg);width:44px;height:44px;color:var(--text);cursor:pointer;opacity:.9;border-radius:50%;font-family:Georgia,Times New Roman,serif;font-size:22px;font-style:italic;line-height:1;transition:opacity .2s,border-color .2s,color .2s,background .2s;position:fixed;top:14px;left:28px;box-shadow:0 4px 14px #00000080}#info-btn:hover{opacity:1;border-color:var(--accent);color:var(--accent)}#theme-toggle{z-index:4;border:1px solid var(--btn-border);background:var(--btn-bg);width:44px;height:44px;color:var(--text);cursor:pointer;opacity:.9;border-radius:50%;font-size:20px;line-height:1;transition:opacity .2s,border-color .2s,color .2s,background .2s;position:fixed;top:14px;right:28px;box-shadow:0 4px 14px #00000080}#theme-toggle:hover{opacity:1;border-color:var(--accent);color:var(--accent)}#filters{gap:10px;display:flex}body.artworks-view #controls{display:none}#zoom-controls{z-index:4;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:44px;right:28px}#zoom-controls button{border:1px solid var(--btn-border);background:var(--btn-bg);width:44px;height:44px;color:var(--text);cursor:pointer;opacity:.9;border-radius:50%;font-family:Cantarell,sans-serif;font-size:24px;line-height:1;transition:opacity .2s,border-color .2s,color .2s,background .2s;box-shadow:0 4px 14px #00000080}#zoom-controls button:hover{opacity:1;border-color:var(--accent);color:var(--accent)}#zoom-controls button.is-active{opacity:1;border-color:var(--accent);color:var(--accent);background:#c4a25a24}.filter-btn{letter-spacing:1px;color:var(--text);border:1px solid var(--border);cursor:pointer;opacity:.5;background:0 0;border-radius:999px;padding:8px 18px;font-family:Cantarell,sans-serif;font-size:14px;transition:opacity .2s,border-color .2s,color .2s}.filter-btn.is-active{opacity:1;border-color:var(--accent);color:var(--accent)}.filter-btn[data-type=author].is-active{color:#c7ccd1;border-color:#c7ccd1}.filter-btn[data-type=philosopher].is-active{color:#6f9fd8;border-color:#6f9fd8}#detail-card{z-index:5;background:var(--surface);border:1px solid var(--border);width:max-content;min-width:240px;max-width:min(92vw,680px);color:var(--text);border-radius:12px;padding:18px 20px 20px;font-family:Georgia,Times New Roman,serif;transition:opacity .18s;position:fixed;box-shadow:0 12px 40px #0000008c}#detail-card.is-hidden{opacity:0;pointer-events:none}#detail-card.is-pinned{border-color:var(--accent)}.card-close{color:var(--text);opacity:.4;cursor:pointer;background:0 0;border:none;font-size:18px;line-height:1;transition:opacity .15s;position:absolute;top:10px;right:12px}.card-close:hover{opacity:.9}#detail-card:not(.is-pinned) .card-close{display:none}.card-name{letter-spacing:.5px;padding-right:16px;font-size:20px}.card-meta{opacity:.5;letter-spacing:.5px;margin-top:4px;font-size:12px}.card-body{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}body.artworks-view .card-body{border-top:none;margin-top:6px;padding-top:0}.card-field{margin-bottom:12px}.card-field:last-child{margin-bottom:0}.card-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--accent);opacity:.8;margin-bottom:3px;font-size:11px;display:block}.card-value{font-size:15px;line-height:1.4;display:block}.card-subvalue{opacity:.55;letter-spacing:.3px;margin-top:3px;font-size:12px;display:block}.card-quote .card-value{max-width:280px;font-style:italic}.card-quote .card-value:not(:has(.card-empty)):before{content:"“"}.card-quote .card-value:not(:has(.card-empty)):after{content:"”"}.card-painting{border-radius:6px;width:auto;max-width:320px;height:auto;max-height:260px;margin:10px auto 0;display:block}.card-empty{opacity:.35;font-style:italic}#controls{text-align:center;z-index:2;width:min(900px,92vw);position:fixed;bottom:44px;left:50%;transform:translate(-50%)}#year-label{letter-spacing:3px;color:var(--text);margin-top:16px;font-family:Georgia,Times New Roman,serif;font-size:20px}#timeline-toggle{opacity:1;border-color:var(--accent);color:var(--accent);margin-top:16px;padding:6px 16px;font-size:12px}#controls.all-eras #year-slider,#controls.all-eras #ticks,#controls.all-eras #year-marks{opacity:.25;pointer-events:none}#controls.all-eras #era-label{opacity:0}.slider-wrap{padding-bottom:22px;position:relative}#year-marks{pointer-events:none;height:0;position:absolute;top:12px;left:0;right:0}.year-mark{letter-spacing:1px;white-space:nowrap;color:var(--text);opacity:.4;font-size:10px;position:absolute;top:0;transform:translate(-50%)}#ticks{pointer-events:none;height:0;position:absolute;top:0;left:0;right:0}.tick{background:var(--accent);opacity:.6;border-radius:50%;width:5px;height:5px;position:absolute;top:0;transform:translate(-50%,-50%)}#year-slider{appearance:none;background:var(--border);cursor:pointer;outline:none;width:100%;height:1px;display:block}#year-slider::-webkit-slider-thumb{appearance:none;background:var(--accent);border-radius:50%;width:14px;height:14px;box-shadow:0 0 8px 2px #c4a25a99}#year-slider::-moz-range-thumb{background:var(--accent);border:none;border-radius:50%;width:14px;height:14px;box-shadow:0 0 8px 2px #c4a25a99}#year-slider::-moz-range-track{background:var(--border);height:1px}#about-backdrop{z-index:5;background:#0000008c;transition:opacity .2s;position:fixed;inset:0}#about-panel{z-index:6;background:var(--surface);border:1px solid var(--border);width:min(520px,90vw);max-height:80vh;color:var(--text);border-radius:14px;padding:32px 34px;transition:opacity .2s;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 20px 60px #0009}#about-backdrop.is-hidden,#about-panel.is-hidden{opacity:0;pointer-events:none}#about-panel h2{letter-spacing:1px;margin-bottom:4px;font-size:22px;font-weight:400}#about-panel h3{opacity:.7;margin-bottom:22px;font-size:15px;font-weight:400}#about-panel p{opacity:.85;margin-bottom:12px;font-size:15px;line-height:1.6}.about-close{color:var(--text);opacity:.5;cursor:pointer;background:0 0;border:none;font-size:22px;line-height:1;transition:opacity .15s;position:absolute;top:14px;right:16px}.about-close:hover{opacity:1}#credits{z-index:2;white-space:nowrap;text-align:center;letter-spacing:.3px;color:var(--text);opacity:.4;font-family:Cantarell,sans-serif;font-size:11px;position:fixed;bottom:10px;left:50%;transform:translate(-50%)}#credits a{color:var(--accent);text-decoration:none}#credits a:hover{text-decoration:underline}body.custom-cursor.cursor-active,body.custom-cursor.cursor-active *{cursor:none!important}.cursor-dot{z-index:9999;pointer-events:none;background:var(--accent);opacity:0;border-radius:50%;width:10px;height:10px;transition:opacity .25s,width .18s,height .18s;position:fixed;top:0;left:0}body.cursor-active .cursor-dot{opacity:1}body.cursor-hover .cursor-dot{width:16px;height:16px}.loupe{pointer-events:none}.loupe.is-hidden{display:none}.loupe-bg{fill:var(--bg)}.loupe-ring{fill:none;stroke:var(--accent);stroke-width:2px;filter:drop-shadow(0 0 6px #c4a25a73)}
