@font-face{font-family:Newsreader;src:url('fonts/newsreader-300-500-normal-latin.woff2') format('woff2');font-weight:300 500;font-display:swap}@font-face{font-family:Newsreader;src:url('fonts/newsreader-300-500-italic-latin.woff2') format('woff2');font-weight:300 500;font-style:italic;font-display:swap}@font-face{font-family:Plex;src:url('fonts/ibm-plex-sans-400-normal-latin.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Plex;src:url('fonts/ibm-plex-sans-500-normal-latin.woff2') format('woff2');font-weight:500 700;font-display:swap}
:root{--bg:#fff;--ink:#252721;--muted:#62665e;--line:#e4e2dc;--subtle:#f6f5f1;--accent:#87533d;--accent-hover:#6f402d;--soft:#f3e8e1;--danger:#9d3e32;--serif:Newsreader,Georgia,serif;--sans:Plex,Arial,sans-serif;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;background:white;border:1px solid var(--line);border-radius:5px;padding:8px 12px;line-height:1.3;transition:background .14s,border-color .14s}button:hover:not(:disabled){background:var(--subtle);border-color:#c6c2b8}button:disabled{cursor:default;opacity:.4}button.primary{background:var(--accent);border-color:var(--accent);color:white}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button.small{font-size:12px;padding:6px 9px}.text-button,.inline-button{border:0;padding:0;background:none;color:var(--accent)}.text-button:hover:not(:disabled),.inline-button:hover:not(:disabled){background:none;text-decoration:underline}.inline-button{font-size:inherit;text-decoration:underline;text-underline-offset:2px}.danger{color:var(--danger)}a{color:var(--accent);text-underline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}input[type=text],input[type=search],textarea,select{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:var(--bg);line-height:1.4}input:focus,textarea:focus,select:focus{border-color:var(--accent)}textarea{resize:vertical;min-height:58px}input[type=color]{width:20px;height:20px;padding:0;border:0;cursor:pointer;background:none}input[type=checkbox]{accent-color:var(--accent)}h1,h2,h3,p{margin-top:0}h2{font:400 28px/1.1 var(--serif);margin-bottom:16px}h3{font-size:13px;font-weight:500;margin-bottom:10px}p{margin-bottom:12px}.muted,.small-copy{color:var(--muted)}.small-copy{font-size:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;left:16px;top:12px;z-index:100;background:white;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;padding:0}.skip:focus{width:auto;height:auto;overflow:visible;clip-path:none;padding:12px}
.family-nav{display:flex;align-items:center;justify-content:space-between;padding:8px 28px;background:var(--subtle);border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.family-nav nav{display:flex;align-items:center;gap:24px}.family-nav a{color:var(--muted);text-decoration:none}.family-nav button{font-size:11px;color:var(--muted)}.rv-brand{white-space:nowrap}.rv-brand em{text-transform:none}.main-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 28px 19px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:22px;align-items:baseline}.brand h1{font:400 40px/1 var(--serif);letter-spacing:-.035em;margin:0}.brand p{margin:0;color:var(--muted);font:400 17px/1.3 var(--serif)}.project-actions{display:flex;gap:8px;align-items:center}.project-actions button{font-size:12px;padding:9px 12px}#project-count{font-size:10px;color:var(--muted);margin-left:4px}
.workspace{display:grid;grid-template-columns:350px minmax(0,1fr);height:calc(100dvh - 159px);min-height:650px}.editor{padding:23px 22px 18px;border-right:1px solid var(--line);overflow-y:auto;scrollbar-width:thin}.editor-title,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.editor-title h2{font-size:26px;margin:0}.history{display:flex;gap:3px}.history button{padding:4px 8px;font-size:20px;border:0}.field-label{display:block;font-size:11px;color:var(--muted);margin:12px 0 5px}.field-label span{font-weight:400;color:#777c72;font-size:10px}.section-heading{margin:22px 0 10px}.section-heading h3{margin:0;font-size:14px}.section-heading>div{display:flex;gap:5px}#event-count{font-weight:400;color:var(--muted);font-size:11px;margin-left:3px}#event-search{font-size:12px;padding:7px 9px;margin-bottom:9px}.event-list{max-height:244px;overflow-y:auto;border:1px solid var(--line);border-radius:5px;scrollbar-width:thin}.event-item{width:100%;display:grid;grid-template-columns:67px minmax(0,1fr) 7px;gap:8px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:10px 11px;background:white;font-size:12px;line-height:1.35}.event-item{border-bottom:0}.event-list>[role=listitem]:not(:last-child){border-bottom:1px solid var(--line)}.event-item[aria-current=true]{background:var(--soft);box-shadow:inset 3px 0 var(--accent)}.event-item .date{color:var(--muted);font-size:11px;overflow-wrap:anywhere}.event-item .event-name{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.category-dot{width:6px;height:6px;display:block;border-radius:50%}.event-editor{border-top:1px solid var(--line);margin-top:18px}.event-editor>.section-heading{margin-top:16px}.event-editor .section-heading h3{font-size:12px}.event-editor .section-heading button{font-size:11px}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.event-editor input,.event-editor select,.event-editor textarea{font-size:12px}.event-editor .field-label{margin-top:10px}.lane-controls{display:flex;gap:6px}.lane-controls select{flex:1;min-width:0}.lane-controls button{white-space:nowrap}details{margin-top:15px}summary{cursor:pointer;font-size:12px;color:var(--muted)}.date-explanation{font-size:10px;color:var(--muted);margin-top:12px;margin-bottom:0}.lane-settings{border-top:1px solid var(--line);padding-top:14px}.lane-settings input{font-size:12px;margin-top:8px}.lane-settings>button{margin-top:8px}.save-state{margin-top:22px;border-top:1px solid var(--line);padding-top:13px;font-size:11px;color:var(--muted)}.save-state>span{display:block}.save-state p{margin:4px 0 0}.save-state .save-error{color:var(--danger)}.empty-note{color:var(--muted);padding:24px 8px;text-align:center}.empty-note p:first-child{font:400 22px var(--serif);margin-bottom:4px}.empty-note p{font-size:12px}
.presentation{min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--subtle)}.presentation-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;background:white;border-bottom:1px solid var(--line);flex-wrap:wrap}.layout-picker{display:flex;gap:0}.layout-picker button{border-radius:0;border-right:0;font-size:12px;padding:8px 11px}.layout-picker button:first-child{border-radius:5px 0 0 5px}.layout-picker button:last-child{border-right:1px solid var(--line);border-radius:0 5px 5px 0}.layout-picker button.active{color:var(--accent);background:var(--soft);border-color:#d6bdad}.layout-picker button.active+button{border-left-color:#d6bdad}.toolbar-actions{display:flex;gap:8px}.toolbar-actions button{font-size:12px}.appearance{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 24px;background:white;border-bottom:1px solid var(--line)}.appearance label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.appearance select{width:auto;padding:5px 20px 5px 7px;font-size:11px;color:var(--ink)}.appearance .check{gap:4px}.category-controls{display:flex;flex-wrap:wrap;gap:7px;align-items:center;background:white;padding:10px 24px;border-bottom:1px solid var(--line);min-height:49px}.category-controls:empty{display:none}.category-chip{display:flex;align-items:center;gap:5px;padding:4px 7px;background:var(--subtle);border:1px solid var(--line);border-radius:4px;font-size:11px}.category-chip input[type=checkbox]{margin:0 2px 0 0}.category-chip input[type=color]{width:16px;height:16px}.category-chip.hidden-category{opacity:.5}.category-hint{font-size:10px;color:var(--muted);margin-right:4px}.preview-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 24px 0;font-size:11px;color:var(--muted)}.zoom-label{display:flex;align-items:center;gap:7px;white-space:nowrap}.zoom-label select{font-size:10px;width:auto;padding:4px 6px;background:transparent}.preview-notice{background:#fff1d6;color:#78521b;padding:9px 14px;margin:12px 24px 0;border-radius:4px;font-size:11px}.stage{position:relative;flex:1;overflow:auto;padding:25px 34px 40px;min-height:300px}.timeline-canvas{margin:0 auto;max-width:100%;filter:drop-shadow(0 4px 14px #302a1c12)}.timeline-canvas svg{width:100%;height:auto;display:block}.preview-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 24px;background:white;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.preview-footer button{font-size:10px;white-space:nowrap}.site-footer{display:flex;justify-content:space-between;gap:16px;padding:10px 28px;font-size:10px;color:var(--muted);border-top:1px solid var(--line)}.site-footer a{color:inherit}.preview-empty{text-align:center;position:absolute;inset:10% 20px auto;padding:30px}.preview-empty h2{font:400 49px/1.03 var(--serif);letter-spacing:-.025em;margin:25px 0 16px}.preview-empty p{color:var(--muted);font-size:13px}.preview-empty button{margin-top:10px;font-size:12px}.empty-mark{position:relative;width:100px;height:45px;border-bottom:1px solid #b89c87;margin:auto;display:flex;justify-content:space-around;align-items:flex-end}.empty-mark i{position:relative;width:1px;background:#b89c87;height:20px}.empty-mark i:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent);position:absolute;top:-3px;left:-2.5px}.empty-mark i:first-child{height:38px}.empty-mark i:last-child{height:30px}
dialog{border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);padding:26px;width:min(560px,calc(100vw - 32px));max-height:90dvh;box-shadow:0 20px 80px #1d1d1733}dialog::backdrop{background:#27292170;backdrop-filter:blur(2px)}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:12px}.dialog-heading h2{margin:0;line-height:1.15}.dialog-heading button{font-size:23px;padding:0 7px;border:0;line-height:1}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}dialog p,dialog li{font-size:13px}dialog h3{margin-top:24px;font-size:14px}.import-dialog{width:min(680px,calc(100vw - 32px))}.import-tabs{display:flex;gap:8px;margin:20px 0 16px}.import-tabs button{font-size:12px}.import-tabs button.active{background:var(--soft);border-color:#d6bdad;color:var(--accent)}#paste-input{font:12px/1.8 var(--sans);height:220px}code{font-size:11px;background:var(--subtle);padding:2px 4px;border-radius:2px}.column-mapping{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.column-mapping label{font-size:11px;color:var(--muted)}.column-mapping select{font-size:12px;margin-top:4px}.import-review{margin:16px 0;font-size:12px;color:var(--muted);max-height:170px;overflow:auto}.import-review table{border-collapse:collapse;width:100%;font-size:11px;text-align:left}.import-review td,.import-review th{padding:5px 8px;border-bottom:1px solid var(--line);vertical-align:top}.import-review td:first-child{white-space:nowrap}.error{color:var(--danger);font-size:12px;margin-top:12px}.export-grid,.example-grid{display:grid;gap:9px;margin:20px 0}.export-grid{grid-template-columns:1fr 1fr}.export-grid button,.example-grid button{text-align:left;padding:16px}.export-grid strong,.example-grid strong{display:block;font-size:14px;font-weight:500}.export-grid span,.example-grid span{display:block;color:var(--muted);font-size:11px;margin-top:5px;line-height:1.5}.projects-list{display:grid;gap:8px;max-height:50vh;overflow:auto;margin:18px 0}.saved-project{display:flex;align-items:center;gap:8px}.saved-project>button:first-child{flex:1;text-align:left;padding:12px}.saved-project strong{display:block;font-weight:500;font-size:14px}.saved-project span{display:block;font-size:11px;color:var(--muted);margin-top:4px}.saved-project>button:last-child{font-size:11px}.toast{position:fixed;left:50%;bottom:25px;transform:translateX(-50%);z-index:200;background:var(--ink);color:white;padding:12px 20px;border-radius:6px;font-size:13px;box-shadow:0 4px 20px #0002;max-width:calc(100vw - 32px)}
@media(min-width:1600px){.workspace{grid-template-columns:390px minmax(0,1fr)}.editor{padding-inline:26px}.event-list{max-height:300px}.stage{padding:35px 50px}.main-header{padding-block:24px}.workspace{height:calc(100dvh - 167px)}}
@media(max-width:1100px){.brand p{display:none}.workspace{grid-template-columns:320px minmax(0,1fr)}.editor{padding-inline:17px}.presentation-toolbar,.appearance,.category-controls{padding-inline:16px}.layout-picker button{padding-inline:8px}.stage{padding:22px}.preview-footer{align-items:flex-start}.appearance{gap:10px}.project-actions button{padding:8px 10px}}
@media(max-width:820px){.family-nav{padding:8px 16px}.family-nav>span{display:none}.family-nav nav{width:100%;justify-content:space-between;gap:14px}.main-header{padding:17px 16px;align-items:flex-start;flex-wrap:wrap;gap:16px}.brand h1{font-size:35px}.brand p{display:block;font-size:15px}.project-actions{width:100%;flex-wrap:wrap;gap:6px}.project-actions button{flex:1;font-size:11px;white-space:nowrap}.workspace{display:flex;flex-direction:column;height:auto;min-height:0}.editor{border-right:0;border-bottom:1px solid var(--line);overflow:visible;padding:22px 18px}.event-list{max-height:230px}.editor-title h2{font-size:25px}.presentation{min-height:600px;overflow:visible}.presentation-toolbar{padding:14px;gap:10px}.layout-picker{flex:1}.layout-picker button{flex:1;font-size:11px;padding:8px}.toolbar-actions{width:100%;justify-content:flex-end}.appearance{padding:12px 14px}.category-controls{padding:10px 14px}.preview-bar{padding:12px 14px 0}.preview-notice{margin-inline:14px}.stage{overflow:auto;min-height:330px;max-height:1000px;padding:22px 14px 35px}.preview-footer{padding:12px 14px;font-size:10px}.site-footer{padding:12px 16px;flex-wrap:wrap;gap:5px}.event-editor{max-width:100%}.preview-empty{position:relative;inset:auto;padding:35px 15px}.preview-empty h2{font-size:42px}.export-grid{grid-template-columns:1fr}.brand{gap:18px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.view-toolbar{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin-bottom:12px}.view-toolbar label{display:grid;gap:4px}.appearance input[type=number]{width:90px}.text-timeline{padding:16px}.text-timeline li{margin:12px 0}.event-card{cursor:grab}.event-card:focus{outline:none}.event-card:focus rect{stroke:#fff;stroke-width:4;filter:drop-shadow(0 0 2px #111)}.view-toolbar button{font-size:12px}.event-editor input[type=number]{width:100%}
.help-page{max-width:800px;margin:40px auto;padding:24px;line-height:1.7}.event-card{touch-action:none}
.view-toolbar{padding:14px 24px;margin:0;background:var(--surface,#fff);border-bottom:1px solid #dedbd4}.view-toolbar label{font-size:12px}.event-editor .field-pair>label{font-size:12px;display:grid;gap:5px}
