:root{--bg: #f3f4f7;--bg-wash: radial-gradient( 1100px 520px at 8% -10%, rgb(42 120 214 / 8%), transparent 60% ), radial-gradient(900px 480px at 96% 4%, rgb(235 104 52 / 6%), transparent 62%);--surface: #ffffff;--surface-sunken: #f7f8fa;--border: #e4e7ec;--border-strong: #d4d9e0;--grid: #edeff2;--text-primary: #14171a;--text-secondary: #656d76;--text-faint: #8b939c;--accent: #2a78d6;--accent-soft: rgb(42 120 214 / 10%);--series-1: #2a78d6;--series-2: #eb6834;--down: #c0392b;--shadow-sm: 0 1px 2px rgb(16 24 40 / 5%);--shadow: 0 1px 2px rgb(16 24 40 / 5%), 0 10px 24px -14px rgb(16 24 40 / 22%);--shadow-lift: 0 1px 2px rgb(16 24 40 / 6%), 0 18px 36px -18px rgb(16 24 40 / 28%);--radius: 16px;--radius-sm: 10px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0d0f11;--bg-wash: radial-gradient( 1100px 520px at 8% -10%, rgb(57 135 229 / 12%), transparent 60% ), radial-gradient(900px 480px at 96% 4%, rgb(217 89 38 / 9%), transparent 62%);--surface: #17191c;--surface-sunken: #131518;--border: #282c31;--border-strong: #363b41;--grid: #23272b;--text-primary: #e9ecef;--text-secondary: #99a1a9;--text-faint: #767e86;--accent: #6fa8dc;--accent-soft: rgb(111 168 220 / 14%);--series-1: #3987e5;--series-2: #d95926;--down: #f0837a;--shadow-sm: 0 1px 2px rgb(0 0 0 / 40%);--shadow: 0 1px 2px rgb(0 0 0 / 44%), 0 14px 30px -18px rgb(0 0 0 / 70%);--shadow-lift: 0 1px 2px rgb(0 0 0 / 50%), 0 20px 40px -20px rgb(0 0 0 / 80%);color-scheme:dark}}:root[data-theme=dark]{--bg: #0d0f11;--bg-wash: radial-gradient( 1100px 520px at 8% -10%, rgb(57 135 229 / 12%), transparent 60% ), radial-gradient(900px 480px at 96% 4%, rgb(217 89 38 / 9%), transparent 62%);--surface: #17191c;--surface-sunken: #131518;--border: #282c31;--border-strong: #363b41;--grid: #23272b;--text-primary: #e9ecef;--text-secondary: #99a1a9;--text-faint: #767e86;--accent: #6fa8dc;--accent-soft: rgb(111 168 220 / 14%);--series-1: #3987e5;--series-2: #d95926;--down: #f0837a;--shadow-sm: 0 1px 2px rgb(0 0 0 / 40%);--shadow: 0 1px 2px rgb(0 0 0 / 44%), 0 14px 30px -18px rgb(0 0 0 / 70%);--shadow-lift: 0 1px 2px rgb(0 0 0 / 50%), 0 20px 40px -20px rgb(0 0 0 / 80%);color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-height:100vh;min-height:100dvh;background:var(--bg-wash),var(--bg);background-attachment:fixed;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}.app{max-width:1180px;margin:0 auto;padding:36px max(20px,env(safe-area-inset-left)) 72px max(20px,env(safe-area-inset-right))}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}.chevron{flex:none;width:9px;height:9px;margin-right:2px;border-right:1.7px solid currentColor;border-bottom:1.7px solid currentColor;border-radius:1px;color:var(--text-faint);transform:translateY(-2px) rotate(45deg);transition:transform .16s ease}details[open]>summary .chevron{transform:translateY(1px) rotate(225deg)}.masthead{margin-bottom:26px}.masthead h1{margin:0;font-size:27px;font-weight:680;letter-spacing:-.025em}.masthead p{margin:5px 0 0;color:var(--text-secondary);font-size:14px}.page-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid var(--border)}.manual-share{display:flex;flex-direction:column;gap:4px;flex-basis:100%}.manual-share span{color:var(--text-secondary);font-size:12px;font-weight:600}.segmented{display:inline-flex;padding:3px;border:1px solid var(--border);border-radius:999px;background:var(--surface);box-shadow:var(--shadow-sm)}.segmented button{padding:6px 13px;border:0;border-radius:999px;background:none;color:var(--text-secondary);font:inherit;font-size:13px;font-weight:550;cursor:pointer;transition:background-color .14s ease,color .14s ease}.segmented button:hover{color:var(--text-primary)}.segmented button.active{background:var(--text-primary);color:var(--surface)}.segmented.small button{padding:5px 11px;font-size:12px}.segmented.fill{display:flex;width:100%;box-shadow:none}.segmented.fill button{flex:1}.segmented button:disabled{color:var(--text-faint);cursor:not-allowed}.segmented button:disabled:hover{color:var(--text-faint)}button.ghost{padding:7px 13px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-secondary);font:inherit;font-size:13px;font-weight:550;cursor:pointer;box-shadow:var(--shadow-sm);transition:color .14s ease,border-color .14s ease}button.ghost:hover{color:var(--text-primary);border-color:var(--border-strong)}.layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:20px;align-items:start}.panel{padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.controls{position:sticky;top:20px}.results{display:flex;flex-direction:column;gap:18px;min-width:0}.controls-summary,.chart-panel>summary,.table-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text-secondary);font-size:13px;font-weight:600}.controls-summary:hover,.chart-panel>summary:hover,.table-panel>summary:hover{color:var(--text-primary)}.controls-summary{padding:14px 16px}.controls-summary-label{display:flex;flex-direction:column;gap:2px;min-width:0}.controls-digest{color:var(--text-faint);font-size:12px;font-weight:450;font-variant-numeric:tabular-nums;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.controls[open] .controls-summary{border-bottom:1px solid var(--border);margin-bottom:16px}.panel.controls{padding:0}.controls>.field-grid,.controls .advanced,.controls-reset{margin-left:16px;margin-right:16px}.controls .advanced,.controls-reset{margin-bottom:16px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field.span-2{grid-column:1 / -1}.field>span,.field>label{color:var(--text-secondary);font-size:12px;font-weight:600;letter-spacing:.01em}.field small{color:var(--text-faint);font-size:12px;line-height:1.4}.field>label{cursor:pointer}.replay{display:flex;flex-direction:column;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.replay-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.replay-head label{color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer}input[type=text].replay-year{width:calc(4ch + 28px);min-height:32px;padding:0 8px;font-size:15px;font-weight:600;text-align:center}.replay-slider{width:100%;margin:2px 0 0;accent-color:var(--accent);cursor:pointer}.replay-slider:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:999px}.replay-scale{display:flex;justify-content:space-between;color:var(--text-faint);font-size:11px;font-variant-numeric:tabular-nums}input[type=text],select{width:100%;min-width:0;min-height:40px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken);color:var(--text-primary);font:inherit;font-size:16px;font-variant-numeric:tabular-nums;transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease}input[type=text]:hover,select:hover{border-color:var(--border-strong)}input[type=text]::placeholder{color:var(--text-faint)}input[type=text]:focus,select:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23888' stroke-width='1.6'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:11px;cursor:pointer}button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.affix{position:relative;display:flex;align-items:center}.affix .sign{position:absolute;left:12px;color:var(--text-faint);font-size:14px;pointer-events:none}.affix input[type=text]{padding-left:26px}.affix.trailing .sign{left:auto;right:12px}.affix.trailing input[type=text]{padding-left:12px;padding-right:58px}.advanced{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.advanced>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--text-secondary);font-size:13px;font-weight:600}.advanced>summary:hover{color:var(--text-primary)}.advanced>summary>span:first-child{display:flex;align-items:center;gap:7px}.advanced .dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.advanced .field-grid{margin-top:12px}.controls-reset{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.controls-reset button{width:100%}.cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.card{grid-column:span 2;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-block:-5px}.card-head .segmented{flex:none}.card .label{display:flex;align-items:center;gap:7px;color:var(--text-secondary);font-size:12px;font-weight:600}.card .value{margin-top:6px;font-size:23px;font-weight:660;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.card .meta{margin-top:4px;color:var(--text-faint);font-size:12px;line-height:1.4}.card.headline{grid-column:span 6;background:linear-gradient(135deg,var(--accent-soft),transparent 55%),var(--surface);box-shadow:var(--shadow-lift)}.card.headline .value{margin-top:2px;font-size:40px;letter-spacing:-.03em}.split{display:flex;gap:3px;margin-top:14px;height:6px}.split span{border-radius:999px;min-width:3px}.split .put-in{background:var(--series-1)}.split .growth{background:var(--series-2)}.swatch{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}.swatch.put-in{background:var(--series-1)}.swatch.growth{background:var(--series-2)}.swatch.coast{width:14px;height:2px;border-radius:0;background:repeating-linear-gradient(to right,var(--text-secondary) 0 5px,transparent 5px 9px)}.chart-panel{padding:0}.chart-panel>summary,.table-panel>summary{padding:14px 20px}.chart-panel[open]>summary{border-bottom:1px solid var(--border)}.chart-body{padding:12px 16px 8px}.legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 14px;padding:0 6px;list-style:none;color:var(--text-secondary);font-size:13px}.legend li{display:flex;align-items:center;gap:7px}.legend li.note{margin-left:auto;color:var(--text-faint);font-size:12px}.tooltip{min-width:190px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-lift);font-size:13px}.tooltip-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:7px;margin-bottom:7px;border-bottom:1px solid var(--border)}.tooltip-head strong{font-size:16px;font-variant-numeric:tabular-nums}.tooltip-head span{color:var(--text-faint);font-size:12px}.tooltip dl{margin:0;display:grid;gap:4px}.tooltip dl>div{display:flex;align-items:center;justify-content:space-between;gap:16px}.tooltip dt{display:flex;align-items:center;gap:7px;color:var(--text-secondary)}.tooltip dd{margin:0;font-variant-numeric:tabular-nums}.tooltip .market{margin-top:2px;padding-top:6px;border-top:1px solid var(--border)}.tooltip .market .down{color:var(--down)}.recharts-wrapper:focus,.recharts-surface:focus{outline:none}.milestones{padding:15px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.milestones h3{margin:0 0 4px;color:var(--text-secondary);font-size:12px;font-weight:600}.milestones ul{margin:0;padding:0;list-style:none}.milestones li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}.milestones li:last-child{border-bottom:0;padding-bottom:0}.milestones .amount{font-size:15px;font-weight:620;letter-spacing:-.015em;font-variant-numeric:tabular-nums}.milestones .when{color:var(--text-secondary);font-size:13px;font-variant-numeric:tabular-nums}.milestones .when strong{color:var(--text-primary);font-weight:640}.milestones .crossover{margin:12px 0 0;padding-top:12px;border-top:1px solid var(--border);color:var(--text-secondary);font-size:13px;line-height:1.5}.milestones .crossover strong{color:var(--text-primary);font-weight:640;font-variant-numeric:tabular-nums}.coast-readout{margin:0;padding:14px 16px;border:1px solid var(--border);border-left:3px solid var(--series-1);border-radius:var(--radius);background:linear-gradient(90deg,var(--accent-soft),transparent 40%),var(--surface);box-shadow:var(--shadow-sm);font-size:14px;line-height:1.5}.coast-readout.short{border-left-color:var(--text-faint);background:var(--surface);color:var(--text-secondary)}.coast-readout p{margin:0}.coast-readout .needed{margin-top:9px;padding-top:9px;border-top:1px solid var(--border);color:var(--text-secondary)}.sequence-readout{margin:0;padding:14px 16px;border:1px solid var(--border);border-left:3px solid var(--series-2);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);font-size:14px;line-height:1.5}.sequence-readout p{margin:0}.sequence-readout .spread{margin-top:9px;padding-top:9px;border-top:1px solid var(--border);color:var(--text-secondary)}button.year-link{padding:0;border:0;background:none;color:var(--text-primary);font:inherit;font-variant-numeric:tabular-nums;font-weight:600;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;cursor:pointer}button.year-link:hover{color:var(--accent);text-decoration-style:solid}.table-panel{padding:0;overflow:hidden}.table-scroll{max-height:340px;overflow:auto;border-top:1px solid var(--border)}.table-panel table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.table-panel th{position:sticky;top:0;padding:9px 14px;background:var(--surface-sunken);border-bottom:1px solid var(--border);color:var(--text-secondary);font-size:12px;font-weight:600;text-align:left;white-space:nowrap}.table-panel th:not(:first-child),.table-panel td.num{text-align:right}.table-panel .year{width:1%;white-space:nowrap}.table-panel td{padding:7px 14px;border-bottom:1px solid var(--grid);white-space:nowrap}.table-panel th:first-child,.table-panel td:first-child{padding-left:20px}.table-panel th:last-child,.table-panel td:last-child{padding-right:20px}.table-panel tbody tr:hover td{background:var(--surface-sunken)}.table-panel td.strong{font-weight:620}.table-panel tr:last-child td{border-bottom:0}.footnote{margin:0;color:var(--text-faint);font-size:12px;line-height:1.6}.footnote.notice{padding:10px 12px;border:1px solid var(--border);border-left:3px solid var(--series-2);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary)}.crash{max-width:460px;margin:14vh auto;padding:0 20px}.crash h1{margin:0 0 10px;font-size:21px;letter-spacing:-.02em}.crash p{margin:0 0 18px;color:var(--text-secondary)}.crash pre{margin:20px 0 0;padding:12px;border-radius:var(--radius-sm);background:var(--surface-sunken);color:var(--text-faint);font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}@media (max-width: 1160px){.card{grid-column:span 3}.card.headline,.card.income{grid-column:span 6}}@media (max-width: 720px){.app{padding:20px 14px 48px}.masthead{gap:12px}.segmented button,button.ghost{min-height:38px;padding:0 14px}.segmented.small button{padding:0 12px}.card-head .segmented button{min-height:30px;padding:0 11px;font-size:11.5px}.masthead h1{font-size:22px}.masthead p{font-size:13px}.layout{grid-template-columns:minmax(0,1fr)}.panel.controls{position:static}.panel{padding:16px}.panel.controls,.panel.chart-panel,.panel.table-panel{padding:0}.cards{gap:10px}.card .value{font-size:20px}.card.headline .value{font-size:32px}.chart-panel>summary,.table-panel>summary{padding:13px 16px}.chart-body{padding:10px 12px 6px}.table-scroll{max-height:62vh;overscroll-behavior:contain}.table-panel th,.table-panel td{padding-left:6px;padding-right:6px}.table-panel th:first-child,.table-panel td:first-child{padding-left:16px}.table-panel th:last-child,.table-panel td:last-child{padding-right:16px}.recharts-wrapper{touch-action:pan-y}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
