:root{--text: rgba(66, 84, 102, .88);--text-h: #0a2540;--text-muted: rgba(66, 84, 102, .58);--bg: #f6f9fc;--surface: rgba(255, 255, 255, .9);--surface-strong: #ffffff;--border: rgba(15, 23, 42, .08);--border-hover: rgba(99, 91, 255, .24);--code-bg: #f2f6ff;--accent: #635bff;--accent-soft: rgba(99, 91, 255, .14);--accent-bg: rgba(99, 91, 255, .08);--accent-border: rgba(99, 91, 255, .24);--social-bg: rgba(99, 91, 255, .04);--shadow: 0 4px 24px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .04);--shadow-lg: 0 12px 48px rgba(15, 23, 42, .1), 0 2px 6px rgba(15, 23, 42, .04);--radius: 12px;--radius-lg: 16px;--transition: .3s cubic-bezier(.4, 0, .2, 1);--sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--heading: "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--mono: ui-monospace, Consolas, monospace;font:16px/155% var(--sans);letter-spacing:-.01em;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(max-width:1024px){:root{font-size:15px}}#root{max-width:100%;margin:0 auto;min-height:100svh;box-sizing:border-box;position:relative;z-index:1}body{margin:0;background:radial-gradient(circle at top left,rgba(99,91,255,.1),transparent 26%),radial-gradient(circle at top right,rgba(14,165,233,.1),transparent 24%),linear-gradient(180deg,#f6f9fc,#eef4fb 55%,#f6f9fc)}h1,h2{font-family:var(--heading);font-weight:500;color:var(--text-h)}h1{font-size:1.15rem;letter-spacing:-.03em;font-weight:600;margin:0}h2{font-size:1.35rem;line-height:130%;letter-spacing:-.02em;font-weight:600;margin:0 0 4px}p{margin:0}code,.counter{font-family:var(--mono);display:inline-flex;border-radius:4px;color:var(--text-h)}code{font-size:14px;line-height:140%;padding:4px 8px;background:var(--code-bg);border:1px solid var(--border)}.app{position:relative;text-align:left;padding:2rem clamp(1.5rem,5vw,4rem) 5rem;max-width:72rem;margin:0 auto;isolation:isolate}.app:before,.app:after{content:"";position:fixed;inset:auto;z-index:-1;pointer-events:none;filter:blur(100px);opacity:.38}.app:before{top:-6rem;left:-10rem;width:22rem;height:22rem;background:#635bff1a}.app:after{top:12rem;right:-12rem;width:24rem;height:24rem;background:#0ea5e912}.app-terrain{position:fixed;top:0;left:-10%;width:120%;height:100vh;z-index:0;pointer-events:none;color:#635bff12;mask-image:radial-gradient(ellipse 80% 70% at 50% 45%,rgba(0,0,0,.6) 0%,transparent 65%);-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 45%,rgba(0,0,0,.6) 0%,transparent 65%)}.top-nav{position:sticky;top:.75rem;z-index:30;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem 1rem;padding:.75rem 1.25rem;margin:0 -1.25rem .5rem;border-radius:16px;background:transparent;border:1px solid transparent;transition:background .35s ease,border-color .35s ease,box-shadow .35s ease}.top-nav-left{display:flex;align-items:flex-end;gap:.5rem}.top-nav-links .nav-link{padding-top:0;padding-bottom:0;line-height:1}.top-nav.is-scrolled{background:#f6f9fc61;border-color:#ffffff59;backdrop-filter:blur(32px) saturate(1.6);-webkit-backdrop-filter:blur(32px) saturate(1.6);box-shadow:0 8px 32px #635bff0a,0 2px 8px #0f172a05,inset 0 .5px #fff9,inset 0 -.5px #ffffff26}.top-nav-brand,.top-nav-actions,.share-menu,.timeline,.timeline-continuum,.timeline-editor-meta,.timeline-editor-blocks,.timeline-block-inserter,.timeline-empty-state{display:grid}.top-nav-brand{display:block}.top-nav-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.75rem}.app-loading-message{text-align:center;padding:4rem 1.5rem;margin:0;color:var(--text-muted);font-size:.92rem}.app-eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.65rem;font-weight:600;margin:0;color:var(--accent)}.app-title{margin:0;font-size:1.15rem;font-weight:600;letter-spacing:-.03em;line-height:1}.top-nav-links{display:flex;align-items:baseline;gap:.25rem}.nav-link{font:inherit;font-size:.82rem;font-weight:500;color:var(--text);background:none;border:none;padding:.38rem .7rem;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;text-decoration:none;transition:color .2s ease,background .2s ease}.nav-link:hover{color:var(--accent);background:#635bff0f}.bio-blurb{max-width:42rem;margin-bottom:1.5rem}.bio-blurb p{margin:0;font-size:.92rem;line-height:1.65;color:var(--text)}.resume-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;background:#0f172a73;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.resume-modal{width:min(56rem,calc(100vw - 3rem));height:min(85vh,52rem);display:grid;grid-template-rows:auto 1fr;border-radius:16px;overflow:hidden;background:#f6f9fceb;border:1px solid rgba(255,255,255,.4);backdrop-filter:blur(32px) saturate(1.6);-webkit-backdrop-filter:blur(32px) saturate(1.6);box-shadow:0 24px 80px #0f172a2e,0 8px 24px #0f172a14,inset 0 .5px #fff9;animation:modal-in .25s ease}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.resume-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.25rem;border-bottom:1px solid var(--border)}.resume-modal-title{margin:0;font-size:.95rem;font-weight:600;color:var(--text-h)}.resume-modal-actions{display:flex;align-items:center;gap:.5rem}.resume-modal-download{font:inherit;font-size:.78rem;font-weight:500;padding:.35rem .7rem;border-radius:8px;border:1px solid var(--border);background:var(--surface-strong);color:var(--text);text-decoration:none;cursor:pointer;transition:border-color .2s ease,color .2s ease}.resume-modal-download:hover{border-color:var(--border-hover);color:var(--accent)}.resume-modal-close{display:grid;place-items:center;width:28px;height:28px;border:none;background:none;border-radius:6px;color:var(--text-muted);cursor:pointer;transition:color .2s ease,background .2s ease}.resume-modal-close:hover{color:var(--text-h);background:#0f172a0f}.resume-modal-body{overflow:hidden}.resume-pdf-viewer{width:100%;height:100%;border:none}.mode-toggle{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--border);border-radius:999px;background:#ffffffbf}.mode-toggle-button,.publish-link-button,.timeline-block-actions button,.timeline-node-editor-actions button,.timeline-block-inserter-actions button,.timeline-insert-node{font:inherit;font-size:.82rem;border:1px solid var(--border);background:var(--surface-strong);color:var(--text);border-radius:10px;cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition)}.mode-toggle-button{border:0;padding:.38rem .75rem;border-radius:999px;font-size:.78rem;font-weight:500}.mode-toggle-button:hover{color:var(--text-h)}.mode-toggle-button.is-active{background:var(--accent);color:#fff;box-shadow:0 2px 8px #635bff47}.share-menu{position:relative;justify-items:end}.publish-link-button{padding:.42rem .8rem;font-weight:500;font-size:.78rem}.publish-link-button:hover{border-color:var(--border-hover);color:var(--text-h)}.publish-link-button--primary{background:var(--accent);color:#fff;border-color:#635bff59}.publish-link-button--primary:hover:not(:disabled){color:#fff;border-color:#635bff8c;filter:brightness(1.05)}.publish-link-button:disabled{opacity:.65;cursor:not-allowed}.publish-hint{flex-basis:100%;text-align:right;font-size:.72rem;line-height:1.4;color:var(--text-muted);max-width:22rem;margin:0 0 0 auto}.publish-hint--ok{color:#166534e6}.publish-hint--error{color:#b91c1cf2}.publish-link-button-inline{width:fit-content}.share-tooltip{position:absolute;top:calc(100% + .5rem);right:0;width:min(24rem,calc(100vw - 2rem));z-index:20;display:grid;gap:.6rem;padding:1rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fffffff5;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.share-tooltip-title,.share-tooltip-copy{margin:0}.share-tooltip-title{font-weight:600;color:var(--text-h);font-size:.9rem}.share-tooltip-copy{color:var(--text);font-size:.85rem}.publish-link-input{width:100%;min-width:0;border:1px solid var(--border);border-radius:var(--radius);padding:.65rem .85rem;background:var(--surface-strong);color:var(--text);font:inherit;font-size:.85rem;box-sizing:border-box}.app-main{padding-top:1rem}.timeline{gap:.1rem}.timeline-published{grid-template-rows:17rem auto;align-content:start}.timeline-published-details{display:grid;gap:.05rem;align-content:start}.timeline-continuum{gap:.2rem}.timeline-continuum-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.timeline-continuum-title,.timeline-continuum-note,.timeline-empty,.timeline-panel-period,.timeline-block-copy,.timeline-panel-description,.timeline-block-meta,.timeline-block-placeholder{margin:0}.timeline-continuum-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;font-weight:600;color:var(--text-muted)}.timeline-continuum-note{margin-top:.35rem;color:var(--text)}.timeline-insert-node{padding:.5rem .85rem}.timeline-insert-node:hover{border-color:var(--border-hover)}.timeline-insert-node-inline,.timeline-insert-node-empty{border-style:dashed;color:var(--accent)}.timeline-rail-surface{position:relative;min-height:6.25rem;padding:2.15rem 0 .5rem}.timeline-rail-surface.is-editable{cursor:crosshair}.timeline-rail-inner{--rail-y: 0;position:relative;height:1.7rem}.timeline-progress-line{position:absolute;top:var(--rail-y);left:0;height:3px;border-radius:999px;background:linear-gradient(90deg,rgba(99,91,255,.1),var(--accent));box-shadow:0 0 14px #635bff1f;pointer-events:none;transform:translateY(-50%)}.timeline-base-line{position:absolute;left:0;right:0;top:var(--rail-y);height:2px;border-radius:999px;background:linear-gradient(90deg,#635bff0a,#635bff2e,#635bff0a);transform:translateY(-50%)}.timeline-signpost{position:absolute;top:var(--rail-y);transform:translate(-50%);display:grid;justify-items:center;gap:.3rem;color:var(--text-muted);opacity:.5;transition:opacity var(--transition)}.timeline-signpost.is-year{color:var(--text);opacity:.75}.timeline-signpost-mark{width:1px;height:.75rem;background:#635bff1a}.timeline-signpost.is-year .timeline-signpost-mark{height:1rem;background:#635bff38}.timeline-signpost-label{font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;font-weight:500}.timeline-marker{position:absolute;top:var(--rail-y);border:0;background:transparent;cursor:pointer;z-index:2;padding:0;margin:0;min-height:0;min-width:0;line-height:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;width:min(11rem,22vw)}.timeline-marker::-moz-focus-inner{border:0;padding:0}.timeline-marker-dot{position:absolute;left:50%;top:0;width:12px;height:12px;border-radius:50%;border:2.5px solid var(--accent);background:var(--surface-strong);box-shadow:0 0 0 3px #635bff14;z-index:3;transform:translate(-50%,-50%);transition:background .2s ease,box-shadow .3s ease,transform .2s ease}.timeline-marker.is-active .timeline-marker-dot{background:var(--accent);box-shadow:0 0 0 6px #635bff29,0 0 28px #635bff38}@keyframes marker-pulse{0%,to{box-shadow:0 0 0 3px #635bff14}50%{box-shadow:0 0 0 6px #635bff0a,0 0 12px #635bff0f}}.timeline-marker:not(.is-active):not(:hover) .timeline-marker-dot{animation:marker-pulse 3s ease-in-out infinite}.timeline-marker-stem{display:block;position:absolute;left:50%;top:8px;width:2px;height:1rem;background:var(--accent);transform:translate(-50%);pointer-events:none;transition:opacity .18s ease}.timeline-marker.is-lower .timeline-marker-stem{top:auto;bottom:8px}.timeline-marker-card{position:relative;top:calc(8px + 1rem);width:100%;display:grid;gap:.15rem;padding:.55rem .65rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-strong);text-align:left;pointer-events:none;opacity:0;transform:translateY(5px) scale(.97);transition:opacity .18s ease,transform .22s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow)}.timeline-marker.is-lower .timeline-marker-card{position:absolute;top:auto;bottom:calc(8px + 1rem);left:0}.timeline-marker.is-active .timeline-marker-card{border-color:var(--accent-border);background:var(--surface-strong);box-shadow:0 0 0 1px var(--accent-border),var(--shadow-lg)}.timeline-marker-date{font-size:.6rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.timeline-marker-title{color:var(--text-h);font-size:.78rem;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.timeline-marker-link-icon{display:inline;margin-left:3px;vertical-align:baseline;opacity:.4;transition:opacity .18s ease,transform .18s ease}.timeline-marker-card.has-link{cursor:pointer}.timeline-marker:hover .timeline-marker-card.has-link .timeline-marker-link-icon,.timeline-marker.is-active .timeline-marker-card.has-link .timeline-marker-link-icon{opacity:.7}.timeline-panel{padding:0;margin-top:0;min-height:6.5rem}.timeline-panel-header{margin-bottom:.1rem;padding-bottom:.1rem}.timeline-panel-period{font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;font-weight:600;color:var(--accent)}.timeline-panel-title{margin:.15rem 0 0;font-size:1.25rem;font-weight:600;letter-spacing:-.03em;line-height:1.25}.timeline-editor-meta,.timeline-editor-blocks{gap:.9rem}.timeline-editor-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.timeline-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));gap:.5rem;margin-bottom:.2rem;height:17rem;overflow-y:auto;align-items:start;padding-right:.2rem;align-content:start}.timeline-block{border:1px solid rgba(255,255,255,.35);border-radius:10px;padding:.6rem .7rem;background:#f6f9fc61;backdrop-filter:blur(32px) saturate(1.6);-webkit-backdrop-filter:blur(32px) saturate(1.6);display:grid;gap:.3rem;min-height:0;box-shadow:0 8px 32px #635bff0a,0 2px 8px #0f172a05,inset 0 .5px #fff9,inset 0 -.5px #ffffff26;transition:border-color .25s ease,background .25s ease,box-shadow .25s ease,transform .25s ease;height:100%;align-content:start;overflow:hidden}.timeline-block:hover{border-color:#ffffff80;background:#f6f9fc85;box-shadow:0 12px 40px #635bff0f,0 4px 12px #0f172a0a,inset 0 .5px #ffffffb3,inset 0 -.5px #fff3;transform:translateY(-2px)}.timeline-block-header{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.timeline-block-type{font-size:.58rem;text-transform:uppercase;letter-spacing:.1em;font-weight:500;color:var(--accent);padding:2px 6px;border-radius:5px;background:var(--accent-bg);border:1px solid var(--accent-border)}.timeline-block-type-badge{font-size:.5rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.timeline-block-label{font-size:.7rem;font-weight:700;color:#0f172a;line-height:1.3;letter-spacing:.01em}.timeline-panel-body-title{font-size:.95rem;font-weight:500;color:var(--text-h)}.timeline-link-hero-wrap{display:block;border-radius:6px;overflow:hidden;line-height:0}.timeline-media-button,.timeline-gallery-button{display:block;width:100%;border:0;padding:0;margin:0;background:none;cursor:pointer;text-align:left;-moz-appearance:none;appearance:none;-webkit-appearance:none}.timeline-link-hero{width:100%;max-height:9.5rem;object-fit:contain;border-radius:6px;transition:transform .3s ease,opacity .3s ease}.timeline-link-hero-wrap:hover .timeline-link-hero{transform:scale(1.02);opacity:.9}.timeline-block-anchor,.timeline-upload-file{color:var(--accent);text-decoration:none;font-size:.78rem;word-break:break-word;transition:opacity var(--transition)}.timeline-block-ghost,.timeline-upload-placeholder{display:grid;place-items:center;gap:.3rem;min-height:7rem;padding:1rem;border:1px dashed rgba(99,91,255,.16);border-radius:10px;background:#635bff08;text-align:center}.timeline-upload-placeholder-compact{min-height:4rem}.timeline-block-ghost-title,.timeline-upload-placeholder-type{font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.timeline-block-ghost-copy,.timeline-upload-placeholder-label{color:var(--text-h);font-size:.92rem;font-weight:500}.timeline-block-anchor:hover,.timeline-upload-file:hover{opacity:.8}.timeline-block-actions{display:flex;flex-wrap:wrap;gap:.35rem}.timeline-block-actions button,.timeline-node-editor-actions button,.timeline-block-inserter-actions button{padding:.35rem .65rem;font-size:.8rem}.timeline-block-actions button:hover,.timeline-node-editor-actions button:hover,.timeline-block-inserter-actions button:hover{border-color:var(--border-hover);color:var(--text-h)}.timeline-block-meta{color:var(--text-muted);font-size:.72rem}.timeline-block-footer{display:flex;justify-content:flex-end}.timeline-block-placeholder{color:var(--text-muted);font-style:italic}.timeline-block-inserter{position:relative;gap:.45rem}.timeline-block-inserter-line{height:1px;background:var(--border)}.timeline-block-inserter-actions{position:relative;display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-start}.timeline-add-content-button{padding:.45rem .8rem;border-style:dashed;color:var(--accent);font-size:.8rem;background:#635bff0a}.timeline-add-content-menu{position:absolute;top:calc(100% + .55rem);left:0;z-index:10;width:min(26rem,calc(100vw - 4rem));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;padding:.75rem;border:1px solid var(--border);border-radius:14px;background:#fffffff7;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.timeline-add-content-menu button{padding:.55rem .75rem;font:inherit;font-size:.8rem;border:1px solid var(--border);background:#ffffffb8;color:var(--text);border-radius:10px;cursor:pointer;text-align:left;transition:border-color var(--transition),color var(--transition),background var(--transition)}.timeline-add-content-menu button:hover{border-color:var(--border-hover);color:var(--text-h);background:#635bff14}.timeline-field{display:grid;gap:.4rem}.timeline-field span{font-size:.78rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.timeline-field input,.timeline-field select,.timeline-field textarea{width:100%;min-width:0;border:1px solid var(--border);border-radius:var(--radius);padding:.65rem .8rem;background:#ffffffeb;color:var(--text-h);font:inherit;font-size:.9rem;box-sizing:border-box;transition:border-color var(--transition)}.timeline-field input:focus,.timeline-field select:focus,.timeline-field textarea:focus{border-color:var(--accent-border);outline:none}.timeline-field input[type=range]{padding:0;accent-color:var(--accent)}.timeline-upload-dropzone{display:flex;align-items:center;justify-content:center;min-height:7rem;border:2px dashed var(--border);border-radius:10px;background:var(--surface);cursor:pointer;transition:border-color .15s,background .15s}.timeline-upload-dropzone:hover,.timeline-upload-dropzone.is-dragover{border-color:var(--accent);background:var(--accent-bg)}.timeline-upload-dropzone.is-uploading{pointer-events:none;opacity:.65}.timeline-upload-cta{font-size:.8rem;color:var(--text-muted)}.timeline-upload-spinner{font-size:.8rem;color:var(--accent);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.timeline-upload-preview{display:flex;align-items:center;gap:.75rem}.timeline-upload-thumb{width:6rem;height:6rem;object-fit:cover;border-radius:8px;border:1px solid var(--border)}.timeline-upload-link{font-size:.78rem;color:var(--accent);word-break:break-all}.timeline-upload-replace{flex-shrink:0;padding:.35rem .7rem;font-size:.72rem;font-weight:500;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.timeline-upload-replace:hover{background:var(--accent-bg);color:var(--accent)}.timeline-node-editor-actions{display:flex;justify-content:flex-end}.timeline-block-pre{margin:0;padding:.85rem 1rem;background:var(--code-bg);border:1px solid var(--border);border-radius:10px;overflow:auto;max-height:8.5rem;font-size:.8rem;line-height:1.55}.timeline-upload-image,.timeline-upload-video{width:100%;border-radius:var(--radius);display:block;background:var(--code-bg);border:1px solid var(--border)}.timeline-upload-image{max-height:10.5rem;object-fit:contain}.timeline-gallery{display:flex;gap:.4rem;width:100%;border-radius:var(--radius);overflow:hidden}.timeline-gallery-button{flex:1 1 0;min-width:0}.timeline-gallery-img{flex:1 1 0;min-width:0;max-height:10.5rem;object-fit:contain;border-radius:var(--radius);background:var(--code-bg)}.timeline-upload-video-embed,.timeline-upload-pdf-embed{width:100%;border:1px solid var(--border);border-radius:var(--radius);display:block;background:var(--code-bg)}.timeline-upload-video-embed{aspect-ratio:16 / 9}.timeline-video-thumb-wrap{position:relative;display:block;border-radius:6px;overflow:hidden;line-height:0}.timeline-video-fallback{display:grid;place-items:center;min-height:8rem;border:1px solid var(--border);border-radius:6px;background:var(--code-bg);color:var(--text-h);text-decoration:none;font-size:.82rem;font-weight:500}.timeline-video-thumb{width:100%;max-height:9rem;object-fit:cover;border-radius:6px;transition:transform .3s ease,opacity .3s ease}.timeline-video-thumb-wrap:hover .timeline-video-thumb{transform:scale(1.02);opacity:.9}.timeline-video-play{position:absolute;top:50%;left:50%;width:2.2rem;height:2.2rem;transform:translate(-50%,-50%);opacity:.85;transition:opacity .2s ease,transform .2s ease;filter:drop-shadow(0 2px 6px rgba(0,0,0,.3))}.timeline-video-thumb-wrap:hover .timeline-video-play{opacity:1;transform:translate(-50%,-50%) scale(1.1)}.timeline-upload-pdf-embed{min-height:10rem;height:10rem}.timeline-media-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:1.5rem;background:#0f172a94;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.timeline-media-modal{width:min(70rem,calc(100vw - 3rem));max-height:calc(100vh - 3rem);display:grid;grid-template-rows:auto 1fr;border-radius:16px;overflow:hidden;background:#f6f9fcf5;border:1px solid rgba(255,255,255,.45);box-shadow:0 24px 80px #0f172a38,0 8px 24px #0f172a14}.timeline-media-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-bottom:1px solid var(--border)}.timeline-media-modal-title{margin:0;font-size:.92rem;font-weight:600;color:var(--text-h)}.timeline-media-modal-close{border:1px solid var(--border);border-radius:8px;background:var(--surface-strong);color:var(--text);font:inherit;font-size:.8rem;padding:.4rem .7rem;cursor:pointer}.timeline-media-modal-body{display:grid;place-items:center;padding:1rem;overflow:auto;background:#0f172a08}.timeline-media-modal-image,.timeline-media-modal-video,.timeline-media-modal-embed{width:100%;max-width:100%;max-height:calc(100vh - 9rem);border:0;border-radius:12px;background:#000}.timeline-media-modal-image{object-fit:contain;background:transparent}.timeline-media-modal-gallery{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:.9rem;align-items:start}.timeline-media-modal-gallery-image{width:100%;max-width:100%;max-height:calc(100vh - 11rem);border-radius:12px;object-fit:contain;background:#0f172a0a}.timeline-media-modal-embed{aspect-ratio:16 / 9}.timeline-panel-body{margin-top:.05rem;padding-top:.1rem;border-top:1px solid var(--border)}.timeline-panel-body-title{margin:0 0 .15rem;font-size:.82rem}.timeline-panel-description{line-height:1.55;color:var(--text);font-size:.88rem;max-width:42rem}.timeline-empty-state{gap:1rem;justify-items:start}.timeline-marker:focus-visible,.mode-toggle-button:focus-visible,.publish-link-button:focus-visible,.timeline-block-anchor:focus-visible,.timeline-upload-file:focus-visible,.timeline-insert-node:focus-visible,.timeline-media-button:focus-visible,.timeline-gallery-button:focus-visible,.timeline-media-modal-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:900px){.top-nav-links{gap:0}.nav-link{font-size:.75rem;padding:.3rem .5rem}.timeline-signpost:not(.is-year){display:none}.timeline-marker{width:min(9rem,26vw)}.timeline-rail-surface{min-height:6.5rem;padding:2.15rem 0 .65rem}.timeline-add-content-menu{grid-template-columns:1fr}}@media(max-width:640px){.app{padding:1.25rem 1rem 3rem}.top-nav{flex-direction:column;align-items:stretch;gap:.75rem}.top-nav-actions{flex-wrap:wrap}.app-title{font-size:1.05rem}.timeline-rail-surface{min-height:6rem;padding:1.9rem 0 .55rem}.timeline-marker{width:6rem}.timeline-marker-card{padding:.4rem .5rem;gap:.1rem;top:calc(6px + .75rem)}.timeline-marker-date{font-size:.55rem}.timeline-marker-title{font-size:.7rem}.timeline-marker-stem{height:.55rem}.timeline-marker.is-lower .timeline-marker-card{bottom:calc(6px + .75rem)}.timeline-marker-dot{width:10px;height:10px}.timeline-editor-meta-grid{grid-template-columns:1fr}.timeline-panel-title{font-size:1.2rem}.timeline-panel{min-height:5.75rem}.timeline-panel-header{margin-bottom:.35rem;padding-bottom:.35rem}.timeline-signpost-label{font-size:.5rem}}@media(max-width:420px){.timeline-marker{width:5rem}.timeline-marker-title{-webkit-line-clamp:1}.timeline-signpost.is-year .timeline-signpost-label{font-size:.48rem}}.app.is-published .timeline-continuum-head{display:none}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.login-form{width:100%;max-width:22rem;display:flex;flex-direction:column;gap:1.25rem}.login-title{font-size:1.25rem;font-weight:600;letter-spacing:-.01em;color:var(--c-text-primary, #e2e2e2);margin:0 0 .5rem}.login-error{font-size:.8rem;color:#ef4444;margin:0;padding:.5rem .75rem;background:#ef444414;border-radius:6px}.login-field{display:flex;flex-direction:column;gap:.35rem;font-size:.78rem;color:var(--c-text-secondary, #999)}.login-field input{padding:.55rem .75rem;border-radius:6px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:var(--c-text-primary, #e2e2e2);font-size:.85rem;outline:none;transition:border-color .15s}.login-field input:focus{border-color:#635bff80}.login-submit{padding:.6rem 1rem;border-radius:6px;border:none;background:#635bffcc;color:#fff;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s}.login-submit:hover{background:#635bff}.login-submit:disabled{opacity:.5;cursor:not-allowed}
