:root{font-family:Crimson Pro,Georgia,serif;line-height:1.6;font-weight:400;color-scheme:light;color:#1a3d1a;background-color:#f8fdf8;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(135deg,#f0f9f0,#e8f5e8,#f5faf5);background-attachment:fixed}a{font-weight:500;color:#2e7d32;text-decoration:none}a:hover{color:#1b5e20}button{font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#2e7d3214;border-radius:4px}::-webkit-scrollbar-thumb{background:#2e7d324d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#2e7d3280}.timeline-container{position:relative;width:100%;height:100%;display:flex;flex-direction:column;background:#e8f5e9}.timeline-container canvas{flex:1;cursor:grab}.timeline-container canvas:active{cursor:grabbing}.timeline-overlay{position:absolute;inset:0;pointer-events:none;z-index:10}.status-bar{position:absolute;top:20px;left:20px;display:flex;align-items:center;gap:16px;pointer-events:auto}.trajectory-badge{display:flex;flex-direction:column;align-items:center;padding:14px 24px;background:#fffffffa;border-radius:12px;border:4px solid;box-shadow:0 6px 24px #00000026}.trajectory-badge .score{font-family:Cormorant Garamond,Georgia,serif;font-size:3rem;font-weight:700;font-style:italic;color:#1a3d1a;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.1)}.trajectory-badge .label{font-family:Crimson Pro,Georgia,serif;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#2e7d32;margin-top:4px}.future-indicator{display:flex;flex-direction:column;padding:12px 18px;background:#fffffff2;border-radius:10px;box-shadow:0 4px 16px #0000001f;border:2px solid rgba(46,125,50,.2)}.future-indicator .trending{font-family:Crimson Pro,Georgia,serif;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#2e7d32}.future-indicator .state{font-family:Cormorant Garamond,Georgia,serif;font-size:1.3rem;font-weight:700;font-style:italic;margin-top:2px}.event-tooltip-3d{position:absolute;top:20px;right:20px;width:280px;padding:16px;background:#fffffffa;border-radius:12px;box-shadow:0 8px 32px #0000001f;pointer-events:none;animation:tooltipSlideIn .2s ease}@keyframes tooltipSlideIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.tooltip-badge{display:inline-block;padding:5px 12px;border-radius:20px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#fff;margin-bottom:10px}.tooltip-year{font-family:Cormorant Garamond,Georgia,serif;font-size:2rem;font-weight:700;font-style:italic;color:#1a3d1a;margin-bottom:6px}.tooltip-title{margin:0 0 8px;font-family:Cormorant Garamond,Georgia,serif;font-size:1.2rem;font-weight:700;color:#1a3d1a;line-height:1.3}.tooltip-description{margin:0;font-family:Crimson Pro,Georgia,serif;font-size:.95rem;color:#2e5a2e;line-height:1.5;font-weight:500}.controls-hint{position:absolute;bottom:70px;left:50%;transform:translate(-50%);padding:10px 20px;background:#fffffff2;border-radius:20px;font-size:.85rem;font-weight:700;color:#2e7d32;box-shadow:0 4px 12px #0000001f;pointer-events:none;border:1px solid rgba(46,125,50,.2)}.events-strip{display:none}.events-strip::-webkit-scrollbar{height:4px}.events-strip::-webkit-scrollbar-track{background:transparent}.events-strip::-webkit-scrollbar-thumb{background:#2e7d324d;border-radius:2px}.event-chip{display:flex;flex-direction:column;align-items:flex-start;padding:8px 12px;background:#fff;border:1px solid rgba(46,125,50,.2);border-radius:8px;cursor:pointer;transition:all .2s ease;flex-shrink:0;min-width:120px}.event-chip:hover,.event-chip.active{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.event-chip.positive{border-left:3px solid #2e7d32}.event-chip.negative{border-left:3px solid #c62828}.event-chip.neutral{border-left:3px solid #f57c00}.event-chip.transformative{border-left:3px solid #7b1fa2}.event-chip.positive.active,.event-chip.positive:hover{background:#2e7d3214}.event-chip.negative.active,.event-chip.negative:hover{background:#c6282814}.event-chip.neutral.active,.event-chip.neutral:hover{background:#f57c0014}.event-chip.transformative.active,.event-chip.transformative:hover{background:#7b1fa214}.chip-year{font-family:Cormorant Garamond,Georgia,serif;font-size:1.1rem;font-weight:700;font-style:italic;color:#1a3d1a}.chip-label{font-family:Crimson Pro,Georgia,serif;font-size:.8rem;font-weight:600;color:#2e5a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.more-events{display:flex;align-items:center;padding:0 12px;font-size:.75rem;font-weight:500;color:#5a8a5a;flex-shrink:0}@media(max-width:768px){.status-bar{top:12px;left:12px;flex-direction:column;align-items:flex-start;gap:8px}.trajectory-badge{padding:8px 14px}.trajectory-badge .score{font-size:1.5rem}.event-tooltip-3d{inset:auto 12px 80px;width:auto}.controls-hint{bottom:80px;font-size:.7rem;padding:6px 12px}.events-strip{padding:10px 12px}.event-chip{min-width:100px;padding:6px 10px}}.parameter-controls{display:flex;flex-direction:column;gap:12px}.controls-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}.controls-header h2{margin:0;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#1a3d1a}.reset-button{padding:6px 12px;font-size:.75rem;font-weight:500;color:#5a8a5a;background:transparent;border:1px solid rgba(46,125,50,.3);border-radius:6px;cursor:pointer;transition:all .2s ease}.reset-button:hover{background:#2e7d3214;border-color:#2e7d3280;color:#2e7d32}.sliders-container{display:flex;flex-direction:column;gap:8px}.parameter-slider{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:#2e7d320a;border-radius:8px;border:1px solid transparent;transition:all .2s ease}.parameter-slider:hover{background:#2e7d3214;border-color:#2e7d3226}.slider-header{display:flex;align-items:flex-start;gap:10px}.slider-icon{font-size:1.1rem;flex-shrink:0;width:24px;text-align:center}.slider-labels{flex:1;min-width:0}.slider-label{display:block;font-size:.85rem;font-weight:600;color:#1a3d1a;line-height:1.2}.slider-description{display:none}.slider-value{font-size:.95rem;font-weight:700;flex-shrink:0;min-width:42px;text-align:right}.slider-track-container{display:flex;flex-direction:column;gap:4px}.slider-input{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:linear-gradient(to right,var(--track-color) 0%,var(--track-color) var(--track-fill),rgba(46,125,50,.15) var(--track-fill),rgba(46,125,50,.15) 100%);outline:none;cursor:pointer;transition:background .2s ease}.slider-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--track-color);cursor:pointer;box-shadow:0 2px 6px #00000026;transition:transform .15s ease,box-shadow .15s ease}.slider-input::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 3px 10px #0003}.slider-input::-webkit-slider-thumb:active{transform:scale(1.1)}.slider-input::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--track-color);cursor:pointer;box-shadow:0 2px 6px #00000026}.slider-endpoints{display:flex;justify-content:space-between;font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.03em;color:#8aab8a}.controls-footer{display:none}@media(max-width:640px){.parameter-slider{padding:10px}.slider-value{font-size:.85rem}}.simulation-output,.output-grid{display:flex;flex-direction:column;gap:16px}.trajectory-gauge{display:none}.scenario-probabilities h3{font-family:Crimson Pro,Georgia,serif;font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#1b5e20;margin:0 0 12px}.probability-bars{display:flex;flex-direction:column;gap:6px}.probability-bar-container{display:flex;flex-direction:column;gap:4px;padding:10px 14px;border-radius:10px;background:#2e7d320d;border:1px solid rgba(46,125,50,.1);cursor:pointer;transition:all .2s ease}.probability-bar-container:hover{background:#2e7d3214;border-color:#2e7d3226}.probability-bar-container.selected{background:#2e7d321a;border-color:#2e7d3240}.bar-label{display:flex;align-items:center;gap:8px}.scenario-icon{font-size:1.1rem}.scenario-name{font-family:Cormorant Garamond,Georgia,serif;font-size:.95rem;font-weight:700;color:#1a3d1a;flex:1}.scenario-prob{font-family:Cormorant Garamond,Georgia,serif;font-size:1.1rem;font-weight:700;font-style:italic}.scenario-short-desc{margin:4px 0 0;font-size:.75rem;color:#5a8a5a;line-height:1.3}.bar-track{height:6px;background:#2e7d321f;border-radius:3px;overflow:hidden}.bar-fill{height:100%;border-radius:3px;transition:width .5s ease}.scenario-detail{padding:14px;background:#fff;border-radius:10px;border:1px solid rgba(46,125,50,.15);animation:slideIn .2s ease;box-shadow:0 4px 12px #00000014}@keyframes slideIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.scenario-detail-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.detail-icon{font-size:1.3rem}.scenario-detail-header h4{margin:0;font-size:1rem;font-weight:600;flex:1}.close-detail{background:transparent;border:1px solid rgba(46,125,50,.2);color:#5a8a5a;width:28px;height:28px;border-radius:6px;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-detail:hover{background:#2e7d3214;color:#2e7d32}.scenario-full-desc{margin:0;font-size:.85rem;line-height:1.6;color:#2e5a2e}.narrative-summary{padding-top:14px;border-top:2px solid rgba(46,125,50,.15)}.narrative-summary h3{font-family:Crimson Pro,Georgia,serif;font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#1b5e20;margin:0 0 10px}.narrative-text{margin:0;font-family:Crimson Pro,Georgia,serif;font-size:.9rem;font-weight:500;line-height:1.6;color:#2e5a2e}*{box-sizing:border-box}:root{--bg-primary: #f8fdf8;--bg-secondary: #ffffff;--bg-card: rgba(255, 255, 255, .9);--bg-card-hover: rgba(255, 255, 255, .95);--text-primary: #1a3d1a;--text-secondary: #2e5a2e;--text-muted: #5a8a5a;--accent-green: #2e7d32;--accent-green-light: #4caf50;--accent-emerald: #1b5e20;--border-light: rgba(46, 125, 50, .15);--border-medium: rgba(46, 125, 50, .25);--shadow-soft: 0 2px 12px rgba(46, 125, 50, .08);--shadow-medium: 0 4px 24px rgba(46, 125, 50, .12)}body{margin:0;padding:0;font-family:Crimson Pro,Georgia,serif;min-height:100vh;color:var(--text-primary)}#root{max-width:100%;margin:0;padding:0;text-align:left}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{padding:16px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--accent-green);background:linear-gradient(135deg,#1b5e20,#2e7d32,#1b5e20);box-shadow:0 4px 20px #1b5e204d}.header-brand{display:flex;align-items:center;gap:16px}.logo-icon{width:48px;height:48px;color:#fff;flex-shrink:0}.logo-icon svg{width:100%;height:100%}.header-text{display:flex;flex-direction:column;gap:2px}.app-header h1{margin:0;font-family:Cormorant Garamond,Georgia,serif;font-size:2rem;font-weight:700;color:#fff;letter-spacing:.02em;text-shadow:0 2px 4px rgba(0,0,0,.2)}.app-header h1 span{font-style:italic}.subtitle{margin:0;font-family:Crimson Pro,Georgia,serif;color:#ffffffe6;font-size:.95rem;font-weight:500;letter-spacing:.01em}.header-credits{display:flex;align-items:center;gap:8px;font-family:Crimson Pro,Georgia,serif;font-size:.85rem;font-weight:600;color:#ffffffd9}.header-credits a{color:#a5d6a7;text-decoration:none;font-weight:700;transition:color .2s ease}.header-credits a:hover{color:#fff;text-decoration:underline}.credit-divider{opacity:.5}.app-main{flex:1;display:grid;grid-template-columns:1fr 420px;grid-template-rows:1fr;min-height:calc(100vh - 90px);height:calc(100vh - 90px)}.visualization-section{display:flex;flex-direction:column;min-width:0;min-height:0;background:linear-gradient(180deg,#e8f5e9,#f1f8f1)}.sidebar{display:flex;flex-direction:column;border-left:1px solid var(--border-light);background:var(--bg-secondary);overflow-y:auto;height:calc(100vh - 90px)}.controls-section{padding:16px;border-bottom:1px solid var(--border-light);flex-shrink:0}.output-section{padding:16px;flex:1;overflow-y:auto;min-height:0}@media(max-width:1200px){.app-main{grid-template-columns:1fr 380px}}@media(max-width:900px){.app-main{grid-template-columns:1fr;grid-template-rows:1fr auto}.visualization-section{min-height:50vh}.sidebar{border-left:none;border-top:1px solid var(--border-light);height:auto}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.visualization-section,.sidebar{animation:fadeIn .4s ease forwards}
