.tl-engine{--tl-line:var(--border-primary);--tl-accent:var(--accent-primary);width:100%;position:relative}.tl-empty{min-height:120px;color:var(--text-muted);justify-content:center;align-items:center;font-style:italic;display:flex}.tl-events{margin:0;padding:0;list-style:none;position:relative}.tl-event{pointer-events:none;gap:.6rem;display:flex;position:absolute}.tl-card,.tl-marker{pointer-events:auto}.tl-card{background:var(--bg-secondary);border:1px solid var(--border-primary);box-shadow:var(--ds-shadow-sm,0 1px 3px #0000001f);border-radius:12px;max-width:260px;padding:.6rem .8rem}.tl-card-flat{box-shadow:none}.tl-card-polaroid{border-radius:4px;padding-bottom:1.2rem}.tl-date{color:var(--accent-text,var(--text-secondary));font-size:.78rem;font-weight:700}.tl-title{color:var(--text-primary);font-weight:600}.tl-body{color:var(--text-secondary);-webkit-line-clamp:var(--tl-body-lines,3);-webkit-box-orient:vertical;margin-top:.25rem;font-size:.85rem;display:-webkit-box;overflow:hidden}.tl-img{width:100%;height:var(--tl-img-h,110px);object-fit:cover;border-radius:8px;margin-top:.4rem;display:block}.tl-marker{background:var(--tl-accent);border:2px solid var(--bg-primary);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:16px;height:16px;font-size:9px;display:inline-flex}.tl-marker-diamond{border-radius:2px;transform:rotate(45deg)}.tl-marker-pin{border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.tl-marker-photo{width:22px;height:22px}.tl-axis{background:var(--tl-line);position:absolute}.tl-connector-dashed{background:repeating-linear-gradient(var(--tl-line) 0 6px, transparent 6px 12px)}.tl-connector-rail{box-shadow:inset 0 0 0 1px var(--tl-line)}.tl-era{pointer-events:none;border-radius:4px;position:absolute}.tl-era:before{content:"";background:var(--tl-era-color,#888);opacity:.13;border-radius:inherit;position:absolute;inset:0}.tl-era-label{color:var(--text-secondary);white-space:nowrap;background:var(--bg-primary);border-radius:4px;padding:0 .3rem;font-size:.7rem;font-weight:700;position:absolute}.tl-tick{color:var(--text-muted);pointer-events:none;font-size:.68rem;position:absolute;transform:translate(-50%)}.tl-span{opacity:.35;background:currentColor;border-radius:3px;position:absolute}.tl-event.is-hidden .tl-card,.tl-event.is-hidden .tl-marker{visibility:hidden}.tl-blank{border-bottom:1px solid var(--text-primary);vertical-align:baseline;width:5.5rem;height:1em;display:inline-block}.tl-blank-title{width:11rem}.tl-vertical .tl-era{width:16px;left:0}.tl-vertical .tl-era-label{top:0;left:20px}.tl-vertical .tl-tick{left:0;transform:translate(-110%,-50%)}.tl-vertical .tl-span{width:4px;left:6px}.tl-horizontal .tl-era{height:16px;top:0}.tl-horizontal .tl-era-label{top:20px;left:2px}.tl-horizontal .tl-tick{top:0;transform:translate(-50%,-120%)}.tl-horizontal .tl-span{height:4px;top:6px}.tl-alternating .tl-era{width:16px;left:calc(50% - 8px)}.tl-alternating .tl-era-label{left:calc(50% + 34px)}.tl-alternating .tl-tick{left:50%;transform:translate(-50%,-50%)}.tl-alternating .tl-span{width:4px;left:calc(50% - 2px)}.tl-event.is-clickable{cursor:pointer}.tl-event.is-selected .tl-card{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary)}.tl-vertical .tl-events{min-height:max(360px, var(--tl-need,0px));margin-left:1.5rem}.tl-vertical .tl-axis{width:2px;top:0;bottom:0;left:8px}.tl-vertical .tl-event{align-items:flex-start;left:0;transform:translateY(-8px)}.tl-horizontal{overflow-x:auto}.tl-horizontal .tl-events{min-height:max(260px, calc(220px + var(--tl-stack-max,0) * (var(--tl-collapsed-h,56px) + 8px)));min-width:max(640px, var(--tl-need,0px));margin-top:1.5rem}.tl-horizontal .tl-axis{height:2px;top:8px;left:0;right:0}.tl-horizontal .tl-event{text-align:center;flex-direction:column;align-items:center;top:0;transform:translate(-50%)}.tl-vertical .tl-event.tl-stacked .tl-card,.tl-alternating .tl-event.tl-stacked .tl-card{transform:translateY(calc(var(--tl-stack,0) * (var(--tl-collapsed-h,56px) + 8px)))}.tl-horizontal .tl-event.tl-stacked .tl-card{margin-top:calc(var(--tl-stack,0) * (var(--tl-collapsed-h,56px) + 8px))}.tl-alternating .tl-events{min-height:max(420px, var(--tl-need,0px))}.tl-alternating .tl-axis{width:2px;top:0;bottom:0;left:50%;transform:translate(-50%)}.tl-alternating .tl-event{width:50%;transform:translateY(-8px)}.tl-alternating .tl-side-a{text-align:right;flex-direction:row-reverse;justify-content:flex-start;left:0}.tl-alternating .tl-side-b{justify-content:flex-start;left:50%}.tl-compact .tl-card{padding:.4rem .6rem}.tl-roomy .tl-card{padding:.9rem 1.1rem}.tl-compact{--tl-img-h:84px;--tl-body-lines:2;--tl-collapsed-h:48px}.tl-cozy{--tl-img-h:110px;--tl-body-lines:3;--tl-collapsed-h:56px}.tl-roomy{--tl-img-h:140px;--tl-body-lines:4;--tl-collapsed-h:64px}.tl-event.tl-collapsed .tl-card{max-height:var(--tl-collapsed-h,56px);cursor:pointer;overflow:hidden;-webkit-mask-image:linear-gradient(#000 85%,#0000 100%);mask-image:linear-gradient(#000 85%,#0000 100%)}.tl-event.tl-collapsed .tl-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tl-collapse-more{color:var(--text-muted);margin-left:.35rem;font-size:.7rem;display:none}.tl-event.tl-collapsed .tl-collapse-more{display:inline}.tl-event.tl-expanded{z-index:5}.tl-event.tl-expanded .tl-img{object-fit:contain;height:auto;max-height:40vh;display:block}.tl-event.tl-expanded .tl-body{-webkit-line-clamp:unset;overflow:visible}.tl-event.tl-expanded .tl-title{white-space:normal;overflow:visible}.tl-event.tl-expanded .tl-card{max-height:70vh;box-shadow:var(--ds-shadow-lg,0 8px 24px #0000002e);border-color:var(--accent-primary);overflow-y:auto}@media (max-width:600px){.tl-alternating .tl-axis{left:8px;transform:none}.tl-alternating .tl-event{width:100%}.tl-alternating .tl-side-a{text-align:left;flex-direction:row;left:0}.tl-alternating .tl-side-b{left:0}}.tl-engine-wrap{position:relative}.tl-legend{flex-wrap:wrap;gap:.4rem .9rem;margin-bottom:.75rem;display:flex}.tl-legend-chip{color:var(--text-secondary);align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;display:inline-flex}.tl-legend-swatch{border-radius:3px;flex:none;width:12px;height:12px}.tl-vertical.tl-has-lanes .tl-lane-row{flex-direction:column;align-items:stretch;padding:0 .35rem}.tl-vertical.tl-has-lanes .tl-lane-row .tl-marker{position:absolute;top:0;left:.35rem}.tl-vertical.tl-has-lanes .tl-lane-row .tl-card{max-width:none;margin-left:24px}.tl-horizontal.tl-has-lanes .tl-lane-row{justify-content:flex-start}@media (max-width:600px){.tl-vertical.tl-has-lanes .tl-lane-row{padding:0;width:100%!important;left:0!important}}.tl-compare-vertical,.tl-compare-alternating{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.tl-compare-horizontal{flex-direction:column;gap:1.25rem;display:flex}.tl-compare-side{border-top:3px solid var(--tl-compare-accent,var(--accent-primary));padding-top:.75rem}.tl-compare-a{--tl-compare-accent:var(--accent-primary)}.tl-compare-b{--tl-compare-accent:#d98324}.tl-compare-b .tl-engine{--tl-accent:#d98324}@media (max-width:600px){.tl-compare-vertical,.tl-compare-alternating{grid-template-columns:1fr}}.timeline-panel{z-index:1;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:16px;max-width:1000px;margin:0 auto;padding:1.5rem;position:relative}.timeline-panel h2{margin:0 0 .25rem}.timeline-sub{color:var(--text-secondary);margin:0 0 1rem}.timeline-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.timeline-toolbar label{color:var(--text-secondary);align-items:center;gap:.4rem;display:inline-flex}.timeline-toolbar select{border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--input-text,var(--text-primary));font:inherit;cursor:pointer;border-radius:8px;padding:.45rem .6rem;font-size:.9rem}.timeline-panel .btn-primary,.timeline-display .btn-primary,.timeline-print .btn-primary{border-radius:10px;justify-content:center;align-items:center;gap:.4rem;width:auto;margin:0;padding:.55rem 1.15rem;font-size:.95rem;line-height:1.2;display:inline-flex}.timeline-panel .btn-secondary,.timeline-display .btn-secondary,.timeline-print .btn-secondary{border:1px solid var(--border-primary);background:var(--bg-secondary);width:auto;color:var(--text-primary);font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1.05rem;font-weight:600;line-height:1.2;text-decoration:none;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.timeline-panel .btn-secondary:hover,.timeline-display .btn-secondary:hover,.timeline-print .btn-secondary:hover{border-color:var(--accent-primary);background:var(--bg-tertiary)}.timeline-panel .btn-secondary:disabled,.timeline-display .btn-secondary:disabled,.timeline-print .btn-secondary:disabled{opacity:.5;cursor:default}.timeline-panel .btn-sm,.timeline-display .btn-sm,.timeline-print .btn-sm{border-radius:8px;padding:.32rem .6rem;font-size:.85rem}.timeline-games,.timeline-eras{border:1px solid var(--border-primary);background:var(--bg-primary);border-radius:12px;margin-bottom:1rem;padding:.75rem 1rem}.timeline-games strong{margin-bottom:.5rem;display:block}.timeline-game-toggles{flex-wrap:wrap;gap:.75rem 1.25rem;display:flex}.timeline-game-toggles label{align-items:center;gap:.35rem;display:inline-flex}.timeline-game-toggles label.is-disabled{opacity:.45;cursor:not-allowed}.timeline-tolerances{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin-top:.75rem;display:flex}.timeline-tolerances input[type=number]{border:1px solid var(--border-primary);background:var(--bg-secondary);width:5rem;color:var(--input-text,var(--text-primary));border-radius:6px;padding:.3rem .4rem}.timeline-presets{gap:.4rem;display:inline-flex}.btn-sm{padding:.25rem .6rem;font-size:.85rem}.timeline-eras-toggle{color:var(--text-primary);cursor:pointer;background:0 0;border:none;align-items:center;gap:.4rem;padding:0;font-weight:700;display:inline-flex}.timeline-eras-body{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}.timeline-era-row{align-items:center;gap:.4rem;display:flex}.timeline-era-row input[type=text],.timeline-era-row input:not([type]){border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--input-text,var(--text-primary));border-radius:6px;flex:1;padding:.35rem .5rem}.timeline-era-row input[type=color]{border:1px solid var(--border-primary);background:0 0;border-radius:6px;width:34px;height:34px;padding:0}.timeline-era-row button{border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;border-radius:6px;width:32px;height:32px}.timeline-compare-title{margin-bottom:.5rem;font-weight:700;display:block}.timeline-compare-active{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.timeline-compare-picker{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.timeline-compare-picker select,.timeline-event-lane{border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--input-text,var(--text-primary));font:inherit;border-radius:6px;padding:.35rem .5rem}.timeline-event-lane{width:100%}.timeline-date-fields{gap:.4rem;display:flex}.timeline-date-fields>input,.timeline-date-wrap{flex:1}.timeline-date-wrap{align-items:center;display:inline-flex;position:relative}.timeline-date-wrap input{width:100%}.timeline-date-wrap.is-bad input{border-color:#d98324}.timeline-date-warn{color:#d98324;pointer-events:none;position:absolute;right:.5rem}.timeline-panel.timeline-creator{max-width:1200px}.timeline-creator-grid{grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:20px;display:grid}.timeline-creator-left,.timeline-creator-right{min-width:0}.timeline-creator-right{align-self:start;position:sticky;top:1rem}.timeline-preview-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:12px;flex-direction:column;gap:12px;padding:14px;display:flex}.timeline-preview-header{justify-content:space-between;align-items:center;display:flex}.timeline-preview-label{letter-spacing:.06em;color:var(--text-muted);text-transform:uppercase;font-size:.78rem;font-weight:700}.timeline-preview-counter{background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-secondary);border-radius:999px;align-items:center;padding:2px 10px;font-size:.78rem;display:inline-flex}.timeline-preview-footer{color:var(--text-muted);align-items:center;gap:6px;font-size:.78rem;display:flex}.timeline-preview-live-dot{background:#00b894;border-radius:50%;width:6px;height:6px}@media (max-width:900px){.timeline-creator-grid{grid-template-columns:minmax(0,1fr)}.timeline-creator-left{order:1}.timeline-creator-right{order:2;position:static}}.timeline-import-row{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.timeline-editor-list{flex-direction:column;gap:.75rem;display:flex}.timeline-event-row{border:1px solid var(--border-primary);background:var(--bg-primary);border-radius:12px;gap:.5rem;padding:.75rem;display:flex}.timeline-event-fields{flex-direction:column;flex:1;gap:.4rem;display:flex}.timeline-event-fields input,.timeline-event-fields textarea{border:1px solid var(--border-primary);background:var(--bg-secondary);width:100%;color:var(--input-text,var(--text-primary));font:inherit;border-radius:8px;padding:.4rem .5rem}.timeline-event-fields textarea{resize:vertical;min-height:2.2rem}.timeline-event-actions{flex-direction:column;gap:.25rem;display:flex}.timeline-event-actions button{border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;border-radius:6px;width:28px;height:28px}.timeline-event-actions button:disabled{opacity:.4;cursor:default}.timeline-preview{border:1px dashed var(--border-primary);border-radius:12px;min-height:320px;max-height:70vh;padding:1rem;overflow:auto}.timeline-play-list{flex-direction:column;gap:.5rem;margin:1rem 0;padding:0;list-style:none;display:flex}.timeline-play-card{border:1px solid var(--border-primary);background:var(--bg-primary);-webkit-user-select:none;user-select:none;cursor:grab;border-radius:10px;align-items:center;gap:.6rem;padding:.6rem .8rem;display:flex}.timeline-play-card .tp-grip{color:var(--text-muted);cursor:grab;touch-action:none;margin:-.4rem;padding:.4rem}.timeline-play-card.is-dragging{border-color:var(--accent-primary);cursor:grabbing;z-index:2;position:relative;box-shadow:0 6px 18px #0000002e}.timeline-play-card.tp-correct{border-color:#22a06b;box-shadow:inset 3px 0 #22a06b}.timeline-play-card.tp-wrong{border-color:#d94b4b;box-shadow:inset 3px 0 #d94b4b}.timeline-play-card .tp-body{flex:1}.timeline-play-card .tp-date{color:var(--text-secondary);font-size:.75rem;font-weight:700}.timeline-play-card .tp-move{flex-direction:column;gap:2px;display:flex}.timeline-play-card .tp-move button{border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;border-radius:5px;width:26px;height:22px}.timeline-play-card .tp-move button:disabled{opacity:.35;cursor:default}.timeline-score{margin:.75rem 0;font-size:1.15rem;font-weight:700}.timeline-score.is-perfect{color:#22a06b}.timeline-play-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.timeline-play-head-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.timeline-lane-filter{color:var(--text-secondary);align-items:center;gap:.4rem;display:inline-flex}.timeline-lane-filter select{border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--input-text,var(--text-primary));font:inherit;cursor:pointer;border-radius:8px;padding:.4rem .55rem}.timeline-game-picker{flex-wrap:wrap;gap:.75rem;margin:1rem 0;display:flex}.timeline-game-choice{border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:12px;min-width:160px;padding:1rem 1.25rem;font-weight:700}.timeline-game-choice:hover{border-color:var(--accent-primary)}.timeline-guess-card{border:1px solid var(--border-primary);background:var(--bg-primary);border-radius:12px;margin:.75rem 0;padding:1.25rem}.timeline-guess-input{border:1px solid var(--border-primary);background:var(--bg-secondary);width:8rem;color:var(--input-text,var(--text-primary));border-radius:8px;padding:.45rem .6rem}.timeline-first-cards{grid-template-columns:1fr 1fr;gap:1rem;margin:.75rem 0;display:grid}.timeline-first-card{border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;text-align:left;border-radius:12px;min-height:90px;padding:1.25rem}.timeline-first-card:hover:not(:disabled){border-color:var(--accent-primary)}.timeline-first-card.tp-correct{border-color:#22a06b;box-shadow:inset 0 0 0 2px #22a06b}.timeline-first-card.tp-wrong{border-color:#d94b4b;box-shadow:inset 0 0 0 2px #d94b4b}.timeline-streak{color:var(--text-secondary);font-weight:700}.timeline-place-axis{border:1px dashed var(--border-primary);cursor:crosshair;border-radius:12px;height:120px;margin:1rem 0;position:relative}.timeline-place-marker{color:var(--accent-primary);white-space:nowrap;flex-direction:column;align-items:center;font-size:.7rem;display:flex;position:absolute;top:50%;transform:translate(-50%,-140%)}.timeline-place-marker .tp-title{text-overflow:ellipsis;max-width:90px;overflow:hidden}.timeline-place-actual{color:#22a06b;position:absolute;top:50%;transform:translate(-50%,10%)}.timeline-place-tray{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}.timeline-chip{border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:999px;padding:.35rem .85rem}.timeline-chip.is-selected{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary)}.timeline-chip.is-placed{opacity:.5}@media (max-width:600px){.timeline-first-cards{grid-template-columns:1fr}}.timeline-reveal-toggle{color:var(--text-secondary);align-items:center;gap:.35rem;display:inline-flex}.timeline-ai-images-pending{color:var(--text-secondary);align-items:center;gap:.4rem;font-size:.85rem;display:inline-flex}.timeline-display{z-index:1;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:16px;max-width:1100px;margin:0 auto;padding:1rem 1.25rem 1.5rem;position:relative}.timeline-display:fullscreen{background:var(--bg-primary);border-radius:0;max-width:none;padding:1rem 2rem 2rem;overflow:auto}.timeline-display-bar{border-bottom:1px solid var(--border-primary);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.timeline-display-steps,.timeline-display-zoom,.timeline-display-right{align-items:center;gap:.4rem;display:inline-flex}.timeline-display-right{margin-left:auto}.timeline-display-count{color:var(--text-secondary);text-align:center;min-width:3.5rem;font-weight:700}.timeline-display-stage{touch-action:none;padding:.5rem .5rem .5rem 2.5rem;position:relative;overflow:hidden}.timeline-display-stage.is-pannable{cursor:grab}.timeline-display-stage.is-pannable:active{cursor:grabbing}.timeline-display .tl-vertical .tl-events,.timeline-display .tl-alternating .tl-events{min-height:max(68vh, var(--tl-need,0px))}.timeline-display .tl-horizontal .tl-events{min-height:56vh}.timeline-display:fullscreen .tl-vertical .tl-events,.timeline-display:fullscreen .tl-alternating .tl-events{min-height:max(82vh, var(--tl-need,0px))}.timeline-print{z-index:1;max-width:900px;margin:0 auto;padding:1rem;position:relative}.timeline-print-controls{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:12px;margin-bottom:1.25rem;padding:.75rem 1rem}.timeline-print-modes{flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;display:flex}.timeline-print-modes label{align-items:center;gap:.35rem;display:inline-flex}.timeline-print-answerkey{margin-left:auto}.timeline-print-warning{color:#d98324;margin:.6rem 0 0;font-size:.9rem}.timeline-print-sheet{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:12px;padding:1.5rem 1.5rem 1.5rem 2.5rem}.timeline-print-heading{margin:0 0 1rem}.timeline-print-sheet .tl-vertical .tl-events,.timeline-print-sheet .tl-alternating .tl-events{min-height:max(520px, calc(var(--tl-need,0px) * 1.35))}@media print{body *{visibility:hidden}body:has(.timeline-print):before{display:none!important}.timeline-print{width:100%;max-width:none;padding:0}.timeline-print-sheet,.timeline-print-sheet *{visibility:visible}.timeline-print-sheet{color:#000;background:#fff;border:none;border-radius:0;width:100%;padding:0 0 0 2rem;position:absolute;top:0;left:0}.timeline-print-controls{display:none!important}.timeline-print-sheet .tl-title,.timeline-print-sheet .tl-date,.timeline-print-sheet .tl-body,.timeline-print-sheet .tl-heading{color:#000!important}.timeline-print-sheet .tl-card{break-inside:avoid}.timeline-print-sheet .tl-vertical .tl-events,.timeline-print-sheet .tl-alternating .tl-events{min-height:max(900px, calc(var(--tl-need,0px) * 1.45))}.timeline-print-sheet .tl-blank{border-bottom-color:#000}}
