:root{--font-mono: "Iosevka Web", "Iosevka", ui-monospace, monospace;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--color-bg: #ffffff;--color-text: #666666;--color-text-subtle: #999999;--color-border: rgba(0, 0, 0, .06);--post-spacing: 30px;--padding: 1rem;--edge-margin: 1rem}*{margin:0;padding:0;box-sizing:border-box}html{font-size:14px}body{font-family:var(--font-mono);font-size:.875rem;line-height:1.6;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{width:100%;padding:var(--padding)}.toolbar{position:fixed;top:var(--padding);left:var(--edge-margin);z-index:100;display:flex;gap:.5rem;align-items:center}.toolbar-group{display:flex;gap:2px}.toolbar-btn{background:var(--color-bg);border:1px solid var(--color-border);padding:.35rem .6rem;cursor:pointer;font-family:var(--font-mono);font-size:.7rem;line-height:1;color:var(--color-text-subtle);transition:color .15s ease,border-color .15s ease}.toolbar-btn:hover:not(:disabled){color:var(--color-text);border-color:var(--color-text-subtle)}.toolbar-btn:disabled{opacity:.4;cursor:default}.toolbar-btn.active{color:var(--color-text);border-color:var(--color-text-subtle)}.view-toggle{font-size:.9rem;padding:.3rem .45rem}.view-icon{display:none}.grid-icon{display:inline}.view-toggle.active .grid-icon{display:none}.view-toggle.active .feed-icon{display:inline}.feed{display:flex;flex-direction:column;margin-left:calc(var(--edge-margin) + 1.5rem)}.feed.grid-view{position:relative;margin-left:calc(var(--edge-margin) + 1.5rem)}.feed.grid-view .post{margin-bottom:0;text-align:left;overflow:hidden}.feed.grid-view .post:after{display:none}.feed.grid-view .post-meta{display:none}.feed.grid-view .post-link{display:block;width:100%;height:100%}.feed.grid-view .post-image-container{width:100%;height:100%;aspect-ratio:unset}.feed.grid-view .post-image-container.landscape,.feed.grid-view .post-image-container.portrait,.feed.grid-view .post-image-container.square{height:100%}.feed.grid-view .post-image-container .post-image{width:100%;height:100%;max-height:none;object-fit:cover}.post{margin-bottom:var(--post-spacing);text-align:right}.post:last-child{margin-bottom:0}.post-link{display:inline-block;text-decoration:none;color:inherit;line-height:0}.post-image-container{position:relative;display:inline-block;background-size:cover;background-position:center}.post-image{display:block;transition:opacity .3s ease}.post-image-container.landscape .post-image{width:75vw;height:auto;max-width:100%;max-height:none}.post-image-container.portrait .post-image,.post-image-container.square .post-image{height:90vh;width:auto;max-height:90vh;max-width:100%}.post-meta{margin-top:1rem;text-align:right}.post-date{font-size:.75rem;color:var(--color-text-subtle);letter-spacing:.02em}.post-caption{margin-top:.5rem;font-size:.8125rem;color:var(--color-text);line-height:1.5}.post:after{content:"";display:block;width:100%;height:1px;background:var(--color-border);margin-top:var(--post-spacing)}.post:last-child:after{display:none}.post-page{text-align:center}.post-page .landscape .post-image{width:100%;height:auto;max-width:100%;max-height:none}.post-page .portrait .post-image,.post-page .square .post-image{height:100vh;width:auto;max-height:100vh;max-width:100%}.back-link{display:block;margin-bottom:var(--padding);font-size:.75rem;color:var(--color-text-subtle);text-decoration:none;letter-spacing:.02em;text-align:left}.back-link:hover{color:var(--color-text)}.loader{text-align:center;padding:var(--padding);color:var(--color-text-subtle);font-size:.75rem}.loader.hidden{display:none}.post-image-container.loading .post-image{opacity:0}.post-image-container.loaded .post-image{opacity:1}.modal{position:fixed;inset:0;background:#fffffffa;z-index:1000;display:grid;grid-template-columns:220px 1fr;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.modal.open{opacity:1;visibility:visible}.modal-sidebar{padding:1.5rem;border-right:1px solid var(--color-border);display:flex;flex-direction:column;gap:1rem;overflow-y:auto;background:var(--color-bg)}.modal-sidebar-header{display:flex;justify-content:flex-start;flex-shrink:0}.modal-main{position:relative;display:flex;align-items:center;justify-content:flex-end;padding:2rem;overflow:hidden}.modal-image{max-height:calc(100vh - 4rem);max-width:100%;object-fit:contain;transform-origin:center center;will-change:transform}.modal-meta{margin-top:auto;flex-shrink:0;text-align:left}.modal-date{font-size:.75rem;color:var(--color-text-subtle);letter-spacing:.02em}.modal-caption{margin-top:.5rem;font-size:.8125rem;color:var(--color-text);line-height:1.5}.modal-close{background:none;border:1px solid var(--color-border);font-size:1.25rem;color:var(--color-text-subtle);cursor:pointer;padding:.25rem .5rem;line-height:1;transition:color .15s ease,border-color .15s ease}.modal-close:hover{color:var(--color-text);border-color:var(--color-text-subtle)}.modal-nav-container{display:flex;gap:.5rem;flex-shrink:0}.modal-nav{background:none;border:1px solid var(--color-border);font-size:1rem;color:var(--color-text-subtle);cursor:pointer;padding:.35rem .6rem;transition:color .15s ease,border-color .15s ease}.modal-nav:hover{color:var(--color-text);border-color:var(--color-text-subtle)}.timeline{position:fixed;left:var(--edge-margin);top:50%;transform:translateY(-50%);height:70vh;display:flex;align-items:center;gap:.75rem;z-index:100}.timeline-track{width:1px;height:100%;background:#00000026;position:relative;cursor:pointer;user-select:none;-webkit-user-select:none}.timeline-track:before{content:"";position:absolute;inset:0 -10px}.timeline-track:hover{background:var(--color-text)}.timeline-thumb{position:absolute;left:50%;transform:translate(-50%,-50%);width:4px;height:24px;background:var(--color-text-subtle);border-radius:2px;pointer-events:none;transition:top .15s ease}.timeline.dragging .timeline-thumb{transition:none}.timeline-track:hover .timeline-thumb,.timeline:active .timeline-thumb{background:var(--color-text)}.timeline-date{position:absolute;left:1.5rem;transform:translateY(-50%);font-size:.7rem;font-family:var(--font-mono);color:var(--color-text);background:var(--color-bg);padding:.25rem .5rem;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .1s ease;border:1px solid var(--color-border);cursor:pointer;user-select:none;-webkit-user-select:none}.timeline-date.visible{opacity:1;visibility:visible;pointer-events:auto}@media(max-width:750px){:root{--padding: 1.25rem;--post-spacing: 60px}html{font-size:13px}.post-image-container.landscape .post-image,.post-image-container.portrait .post-image,.post-image-container.square .post-image{width:100%;height:auto;max-height:none}.modal{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;overflow-y:auto}.modal-sidebar{order:2;border-right:none;border-top:1px solid var(--color-border);padding:1.25rem}.modal-sidebar-header{order:-1;position:fixed;top:.5rem;left:.5rem;z-index:1001}.modal-main{order:1;justify-content:center;padding:2.5rem 1rem 1rem}.modal-image{max-width:100%;max-height:65vh}.modal-nav-container{justify-content:center}.timeline{display:none}.feed,.feed.grid-view{margin-left:0}.toolbar{left:var(--padding)}}.modal-genealogy{flex-shrink:0;min-height:160px}.modal-genealogy .genealogy-section{margin-bottom:1rem;min-height:65px}.modal-genealogy .genealogy-section:last-child{margin-bottom:0}.modal-genealogy .genealogy-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-subtle);margin:0 0 .5rem;font-weight:400}.modal-genealogy .genealogy-thumbs{display:flex;flex-wrap:wrap;gap:.35rem}.modal-genealogy .genealogy-thumb{width:45px;height:45px;border-radius:2px;overflow:hidden;background:#f0f0f0;display:flex;align-items:center;justify-content:center;transition:transform .15s ease,opacity .15s ease;text-decoration:none}.modal-genealogy .genealogy-thumb:hover{transform:scale(1.08)}.modal-genealogy .genealogy-thumb img{width:100%;height:100%;object-fit:cover}.modal-genealogy .genealogy-thumb.post-thumb{cursor:pointer;box-shadow:0 0 0 1px var(--color-text-subtle)}.modal-genealogy .genealogy-thumb.post-thumb:hover{box-shadow:0 0 0 2px var(--color-text)}.modal-genealogy .genealogy-thumb.source-thumb{border:1px solid var(--color-border);opacity:.7}.modal-genealogy .genealogy-thumb.source-only{background:#e8e8e8;font-size:.45rem;color:var(--color-text-subtle);padding:.2rem;text-align:center}.modal-genealogy .genealogy-thumb.source-only .source-label{word-break:break-all;line-height:1.2}.modal-genealogy .genealogy-thumb.more-indicator{background:#ddd;font-size:.65rem;color:var(--color-text-subtle);font-weight:500}
