body{background:repeating-linear-gradient(-45deg,#f4f4f0,#f4f4f0 13px,oklch(95% 0 0) 0,oklch(95% 0 0) 14px);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;margin:0}.App{text-align:center}.app-header{align-items:center;background:#1c1c1c;color:#fff;display:flex;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0;z-index:11}.app-header h1{font-family:Gloock,serif;font-size:1.2rem;font-weight:400;margin:0 0 0 20px;padding:10px}.app-header-actions{padding:6px 10px}main{overflow-x:auto}.menu-container{position:relative}.menu-btn{align-items:center;background:#0000;border:none;cursor:pointer;display:flex;flex-direction:column;gap:4px;height:40px;justify-content:center;padding:8px;transition:opacity .2s;width:40px}.menu-btn:hover{opacity:.7}.menu-icon-bar{background-color:#fff;height:1.5px;width:15px}.menu-backdrop{cursor:default;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:99}.menu-dropdown{animation:fadeIn .2s ease-out;background:#fff;border:1px solid #ddd;color:#333;min-width:160px;position:absolute;right:0;text-align:left;top:140%;z-index:100}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.menu-item{cursor:pointer;font-size:14px;padding:10px 16px;transition:background .1s}.menu-item:hover{background-color:#f5f5f5}.menu-divider{background-color:#eee;height:1px;margin:4px 0}.timeline-grid-container{grid-gap:0;display:grid;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;gap:0;grid-template-columns:1fr auto 2fr;grid-template-rows:1fr;height:2500vh;position:relative;width:100%}.left-sidebar{display:flex;grid-column:1;justify-content:flex-end;padding-right:60px}.timeline-axis{grid-column:2;position:relative;width:60px}.right-sidebar{display:flex;grid-column:3;justify-content:flex-start;overflow:visible;padding-left:60px;padding-right:30px}.artworks-container,.periods-container{height:100%;overflow:visible;position:relative;width:100%}.period-block{--brace-cap:min(24px,20%);color:#1e6bd6;cursor:pointer;opacity:.95;position:absolute;right:0;transition:all .3s ease;width:80%}.period-block:after,.period-block:before{border-left:2px solid;content:"";left:calc(100% - 2px);position:absolute;width:8px}.period-block:before{border-top:2px solid;border-top-left-radius:10px;height:var(--brace-cap);top:0}.period-block:after{border-bottom:2px solid;border-bottom-left-radius:10px;bottom:0;height:var(--brace-cap)}.period-block .period-content{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.period-block .period-content:before{border-left:2px solid;bottom:var(--brace-cap);content:"";left:calc(100% - 2px);position:absolute;top:var(--brace-cap)}.period-mini-card:hover{transform:translateY(calc(-50% - 5px))}.period-block:hover{opacity:1;z-index:10}.period-block.is-selected .period-mini-card{background-color:oklch(100% 0 0);border:2px solid #222}.period-mini-card{background:#fff;box-shadow:0 0 8px #0000001a;cursor:pointer;padding:16px;position:absolute;right:10%;text-align:left;top:50%;transform:translateY(-50%);transition:all .3s ease;width:65%}.period-mini-card h4{color:#222;font-family:Gloock,serif;font-size:15px;font-weight:400;margin:0 0 6px}.period-mini-card .period-years{color:#555;font-size:12px;font-weight:600;margin-bottom:8px}.period-mini-card p{color:#555;display:none;font-size:12px;line-height:1.5;margin:0}.period-years{font-size:12px;font-weight:500;margin-bottom:8px;opacity:.9}.period-content p{font-size:12px;line-height:1.5;margin:0;opacity:.85}.axis-line{background:#1c1c1c;height:100%;transform:translateX(-50%);width:20px}.axis-line,.major-tick{left:50%;position:absolute}.major-tick{align-items:center;background-color:#fff;border:4px solid #1c1c1c;display:flex;height:38px;justify-content:center;transform:translate(-50%,-50%) rotate(-18deg);width:80px;z-index:5}.tick-label{border-radius:3px;color:#1c1c1c;font-family:IBM Plex Sans,sans-serif;font-size:15px;font-weight:900;padding:2px 6px;white-space:nowrap}.artwork-bucket{left:0;padding-top:10px;position:absolute;transform:translateY(-50%);width:100%;z-index:1}.artwork-bucket:hover{z-index:10}.artwork-bucket-row{align-items:stretch;display:flex;gap:12px}.artwork-bucket-row--stacked{display:block;overflow:visible}.artwork-card-inline.is-stacked{transition:transform .22s ease,z-index 0s;will-change:transform}.artwork-card-inline{flex:0 0 auto;position:relative;transition:transform .3s ease,z-index 0s;width:180px}.artwork-card-inline:hover{transform:translateY(-4px);z-index:100}.artwork-card-inline .artwork-content{background:#0000;cursor:pointer;overflow:visible;padding-bottom:50px;position:relative;transition:transform .3s ease}.artwork-card-inline .artwork-hover-backdrop{background:#fff;bottom:0;box-shadow:0 0 8px #0000001a;left:-20px;opacity:0;pointer-events:none;position:absolute;right:-20px;top:-30px;transition:opacity .3s ease;z-index:0}.artwork-card-inline .artwork-image-wrapper{overflow:hidden;position:relative;z-index:1}.artwork-card-inline .artwork-hover-info{display:flex;flex-direction:column;gap:4px;margin-top:8px;opacity:0;padding:0 4px;pointer-events:none;position:relative;text-align:left;transition:opacity .3s ease;z-index:2}.artwork-card-inline .artwork-hover-title{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;color:#000;display:-webkit-box;font-family:Gloock,serif;font-size:13px;font-weight:400;line-height:16px;overflow:hidden;text-align:left;text-overflow:ellipsis}.artwork-card-inline .artwork-hover-year{color:#333;font-size:11px;font-weight:600;line-height:14px;text-align:left}.artwork-card-inline:hover .artwork-hover-backdrop,.artwork-card-inline:hover .artwork-hover-info{opacity:1}.artwork-card-inline .artwork-image-wrapper .artwork-image-fallback,.artwork-card-inline .artwork-image-wrapper img{aspect-ratio:4/3;display:block;object-fit:cover;width:100%}.artwork-card-inline .artwork-image-fallback{align-items:center;background:linear-gradient(135deg,#f2f4f8,#e9ecf2);color:#9aa4b2;display:flex;font-size:12px;justify-content:center}.artwork-card-inline .artwork-image-fallback-text{border:1px dashed #c5ccd6;border-radius:4px;padding:4px 8px}.artwork-bucket-label{background:#fff;border:2px solid #e02020;color:#e02020;font-size:12px;font-weight:600;left:0;margin-bottom:8px;padding:2px 8px;position:absolute;top:-24px;white-space:nowrap}.time-point{left:50%;position:absolute;transform:translate(calc(-50% - 70px),-50%);z-index:6}.time-tag{background:#fff;border:2px solid #1e6bd6;color:#1e6bd6;display:inline-flex;font-size:12px;font-weight:600;height:28px;min-width:56px;transform:rotate(-90deg)}.detail-overlay,.time-tag{align-items:center;justify-content:center}.detail-overlay{background:#00000073;display:flex;inset:0;position:fixed;z-index:12}.detail-modal{background:#fff;max-height:calc(100vh - 60px);overflow:hidden;position:relative;width:min(1000px,calc(100vw - 40px))}.detail-close{border:none;cursor:pointer;font-size:24px;line-height:1;position:absolute;right:8px;top:8px}.detail-body{grid-gap:0;display:grid;gap:0;grid-template-columns:1.2fr 1fr;height:100%}.detail-media{align-items:center;background:#000;display:flex;justify-content:center}.detail-media-img{background:#000;height:100%;object-fit:contain;width:100%}.detail-media-fallback{align-items:center;background:#0b0b0b;display:flex;height:100%;justify-content:center;width:100%}.detail-media-fallback-inner{border:1px dashed #55606e;border-radius:6px;color:#8b95a1;padding:8px 12px}.detail-content{overflow:auto;padding:20px}.detail-title{font-family:Gloock,serif;font-size:22px;font-weight:400;margin:0 0 10px}.detail-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.meta-chip{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;padding:4px 8px}.meta-chip--period{border:none;color:#fff}.detail-desc{color:#333;line-height:1.6;margin:0;text-align:left}.detail-desc p{margin:0 0 .75rem}.detail-desc p:last-child{margin-bottom:0}.detail-desc ol,.detail-desc ul{margin:0 0 .75rem 1.25rem;padding-left:1.25rem}.detail-desc li{margin-bottom:.4rem}.detail-desc li:last-child{margin-bottom:0}.detail-desc code{background:#f3f4f6;border-radius:4px;font-size:.9em;padding:0 4px}.detail-desc pre{background:#f3f4f6;border-radius:8px;margin:0 0 .75rem;overflow:auto;padding:12px}.detail-desc pre code{background:none;display:block;font-size:.95em;padding:0;white-space:pre}.detail-desc img{border-radius:8px;height:auto;margin:0 0 .75rem;max-width:100%}.markdown-editor__textarea{font-family:inherit;max-height:360px;resize:vertical}.markdown-editor__textarea--artwork{min-height:140px}.markdown-editor{display:flex;flex-direction:column;gap:6px}.markdown-toolbar{display:flex;flex-wrap:wrap;gap:6px}.markdown-toolbar button{background:#f9fafb;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;font-size:13px;line-height:1;padding:4px 8px}.markdown-toolbar button:hover{background:#eef2ff;border-color:#c7d2fe}.markdown-toolbar button:active{background:#e0e7ff}.add-controls{left:30px;position:fixed;top:60px;z-index:11}.add-toolbar{display:inline-flex;gap:8px}.btn{background:#fff;border:1px solid #1c1c1c;cursor:pointer;font-size:12px;font-weight:600;padding:6px 10px}.btn.primary{background:#1e6bd6;border-color:#1e6bd6;color:#fff}.btn.secondary{background:#f3f4f6}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-del{border:1px solid #b00020}.modal-overlay{align-items:center;background:#00000059;display:flex;inset:0;justify-content:center;position:fixed;z-index:12}.modal{background:#fff;border-radius:8px;box-shadow:0 16px 48px #0003;max-width:calc(100vw - 32px);padding:16px;width:520px}.modal h3{margin:0 0 12px}.form-row{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.form-row label{color:#333;font-size:12px}.form-row input,.form-row select,.form-row textarea{border:1px solid #d1d5db;border-radius:6px;font-size:14px;padding:8px 10px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.ai-settings{position:fixed;right:30px;top:60px;z-index:9}.doc-preview{margin-top:10px}.doc-preview-title{color:#374151;font-size:12px;margin-bottom:6px}.doc-preview-box{background:#fafafa;border:1px solid #e5e7eb;border-radius:6px;max-height:200px;overflow:auto;padding:10px;white-space:pre-wrap}.preview-pane{background:#fff;border:1px solid #0000001a;box-shadow:0 0 8px #0000001a;display:flex;flex-direction:column;height:calc(100vh - 64px);overflow:hidden;position:fixed;right:16px;top:56px;width:380px}.ppane-header{background:#fafafa;border-bottom:1px solid #eee;padding:8px}.ppane-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.ppane-btn{background:#1c1c1c;border:1px solid #1c1c1c;color:#fff;cursor:pointer;padding:6px 10px}.ppane-btn--ghost{background:#fff;color:#1c1c1c}.ppane-btn:hover{opacity:.92}.ppane-btn:active{transform:translateY(1px)}.ppane-body{display:grid;flex:1 1;grid-template-rows:240px 1fr;min-height:0}.ppane-media{background:#fff;display:block;height:240px;overflow:hidden}.ppane-media-img{background:#0000;display:block;height:100%;object-fit:cover;width:100%}.ppane-media-fallback{align-items:center;background:#f4f4f5;color:#8b95a1;display:flex;height:240px;justify-content:center;width:100%}.ppane-content{min-height:0;overflow:auto;padding:12px;text-align:left}.ppane-title{font-family:Gloock,serif;font-size:18px;font-weight:400;margin:0 0 8px}.ppane-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.ppane-chip{align-items:center;background:#fff;display:inline-flex;font-size:14px;font-style:italic;font-weight:400;padding:0 8px 0 0}.ppane-chip--period{border:none;color:#fff}.ppane-desc{color:#333;line-height:1.6;margin:0;text-align:left}.ppane-desc p{margin:0 0 .75rem}.ppane-desc p:last-child{margin-bottom:0}.ppane-desc ol,.ppane-desc ul{margin:0 0 .75rem 1.25rem;padding-left:1.25rem}.ppane-desc li{margin-bottom:.4rem}.ppane-desc li:last-child{margin-bottom:0}.ppane-desc code{background:#f3f4f6;border-radius:4px;font-size:.9em;padding:0 4px}.ppane-desc pre{background:#f3f4f6;border-radius:8px;margin:0 0 .75rem;overflow:auto;padding:12px}.ppane-desc pre code{background:none;display:block;font-size:.95em;padding:0;white-space:pre}.ppane-desc img{border-radius:8px;height:auto;margin:0 0 .75rem;max-width:100%}
/*# sourceMappingURL=main.32ebd972.css.map*/