:root{--bg: #ede8db;--ink: #18181b;--ink-muted: #6a6457;--ink-quiet: #8b8475;--rule: #c4beae;--rule-soft: #d8d2c4;--serif: "Instrument Serif", "Times New Roman", Times, serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color-scheme:light;color:var(--ink);background:var(--bg);font-family:var(--sans);font-size:16px;line-height:1.55;font-weight:400;letter-spacing:-.003em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{margin:0;padding:0}body{background:var(--bg);color:var(--ink);min-height:100vh;overflow-x:hidden}::selection{background:var(--ink);color:var(--bg)}a{color:inherit;text-decoration:none}p{margin:0}h1,h2,h3{margin:0;font-weight:400}.page{min-height:100vh;display:flex;flex-direction:column}.nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:1.4rem 2.5rem;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--rule-soft)}.logo{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--serif);font-size:1.3rem;font-style:italic;letter-spacing:-.005em;color:var(--ink);line-height:1}.logo-word{position:relative;top:1px}.nav-links{display:flex;align-items:center;gap:2rem}.nav-link{font-family:var(--mono);font-size:.75rem;letter-spacing:.12em;text-transform:lowercase;color:var(--ink-muted);transition:color .16s ease}.nav-link:hover,.nav-link.active{color:var(--ink)}.main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:0 2.5rem}.main.centered{display:flex;align-items:center}.hero{padding:12vh 0;max-width:1040px}.eyebrow{display:inline-flex;align-items:center;gap:.75rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:2.25rem}.eyebrow:before{content:"";width:28px;height:1px;background:var(--ink-muted)}.hero-title{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,7.2vw,6rem);line-height:1;letter-spacing:-.028em;color:var(--ink)}.hero-title em{font-style:italic}.hero-title .soft{color:var(--ink-quiet)}.hero-sub{max-width:38rem;margin-top:2.75rem;font-size:1.02rem;line-height:1.6;color:var(--ink-muted)}.footer{display:flex;justify-content:space-between;align-items:center;padding:1.75rem 2.5rem;border-top:1px solid var(--rule-soft);font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-muted)}.footer-mark{display:inline-flex;align-items:center;gap:.5rem;color:var(--ink-muted)}.research-hero{padding:10vh 0 2vh}.thesis-body{padding:2vh 0 7vh}.thesis-body p{max-width:46rem;font-family:var(--serif);font-size:1.35rem;line-height:1.45;color:var(--ink);letter-spacing:-.003em}.thesis-body p+p{margin-top:1.5rem}.research-section{padding:3vh 0 14vh}.research-section .eyebrow{margin-bottom:3rem}.notes-list{list-style:none;padding:0;margin:0}.note-row{display:grid;grid-template-columns:10rem 1fr 4rem;gap:2rem;padding:2rem 0;border-top:1px solid var(--rule-soft);align-items:baseline}.note-date{font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-muted)}.note-title{font-family:var(--serif);font-size:1.2rem;line-height:1.3;color:var(--ink);letter-spacing:-.003em}.note-title a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:color-mix(in srgb,var(--ink) 25%,transparent);transition:text-decoration-color .16s ease}.note-title a:hover{text-decoration-color:var(--ink)}.note-status{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);text-align:right}:root{--gain: #4a6b3a;--loss: #8b3a2e}.portfolio-main{max-width:960px}.portfolio-meta{padding:0 0 4vh}.portfolio-meta p{max-width:42rem;font-family:var(--serif);font-size:1.25rem;line-height:1.45;color:var(--ink);letter-spacing:-.003em}.portfolio-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:1rem 0 4vh;border-top:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft)}.stat{padding:1.5rem;border-right:1px solid var(--rule-soft)}.stat:first-child{padding-left:0}.stat:last-child{border-right:none;padding-right:0}.stat-label{font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:1rem}.stat-value{font-family:var(--serif);font-size:2.4rem;line-height:1;letter-spacing:-.02em;color:var(--ink)}.stat-value.mono{font-family:var(--serif);font-size:2.4rem;letter-spacing:-.015em;text-transform:none}.stat-value.gain{color:var(--gain)}.stat-value.loss{color:var(--loss)}.stat-sub{font-family:var(--mono);font-size:.85rem;color:var(--ink-quiet);letter-spacing:.04em}.portfolio-group{padding:4vh 0 1vh}.group-header{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:1.25rem;margin-bottom:.5rem}.group-label{font-family:var(--serif);font-style:italic;font-size:1.6rem;color:var(--ink);letter-spacing:-.01em}.group-count{font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-muted)}.position-list{list-style:none;padding:0;margin:0}.position-row{display:grid;grid-template-columns:4.5rem minmax(0,14rem) 1fr 6.5rem 1rem 6.5rem 4.5rem 7rem;gap:1rem;align-items:center;padding:1.1rem 0;border-top:1px solid var(--rule-soft)}.pos-ticker{font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;color:var(--ink)}.pos-name{font-family:var(--serif);font-size:1.1rem;color:var(--ink);letter-spacing:-.003em}.pos-cost,.pos-current{font-family:var(--mono);font-size:.82rem;color:var(--ink-muted);text-align:right;font-variant-numeric:tabular-nums}.pos-arrow{font-family:var(--mono);color:var(--ink-quiet);text-align:center;font-size:.85rem}.pos-return{font-family:var(--mono);font-size:.88rem;text-align:right;font-variant-numeric:tabular-nums;letter-spacing:.02em}.pos-return.gain{color:var(--gain)}.pos-return.loss{color:var(--loss)}.pos-spark{display:block;width:100%;height:28px}.pos-spark-empty{display:block;height:1px;background:var(--rule-soft);align-self:center}.pos-spark .recharts-responsive-container{pointer-events:none}.portfolio-chart-section{padding:4vh 0 2vh}.portfolio-chart{margin:0 -.5rem}.portfolio-chart-empty{border:1px dashed var(--rule);padding:3rem 2rem;text-align:center}.portfolio-chart-empty p{font-family:var(--serif);font-size:1.05rem;color:var(--ink-quiet);max-width:32rem;margin:0 auto;line-height:1.5}.chart-tooltip{background:var(--bg);border:1px solid var(--rule);padding:.6rem .85rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;color:var(--ink);box-shadow:0 2px 8px #18181b0a}.chart-tooltip-date{text-transform:uppercase;color:var(--ink-muted);margin-bottom:.35rem;font-size:.62rem;letter-spacing:.18em}.chart-tooltip-value{font-family:var(--serif);font-size:1.4rem;letter-spacing:-.01em;line-height:1}.chart-tooltip-value.gain{color:var(--gain)}.chart-tooltip-value.loss{color:var(--loss)}.chart-tooltip-meta{margin-top:.4rem;color:var(--ink-quiet);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase}.portfolio-footnote{padding:6vh 0 12vh;border-top:1px solid var(--rule-soft);margin-top:4vh}.portfolio-footnote p{max-width:36rem;font-family:var(--mono);font-size:.72rem;line-height:1.7;letter-spacing:.04em;color:var(--ink-quiet)}@media (max-width: 640px){.nav{padding:1.1rem 1.25rem}.nav-links{gap:1.25rem}.main{padding:0 1.25rem}.hero{padding:8vh 0}.research-hero{padding:6vh 0 2vh}.note-row{grid-template-columns:1fr;gap:.4rem;padding:1.25rem 0}.note-status{text-align:left}.footer{padding:1.25rem;flex-direction:column;gap:.75rem}.portfolio-stats{grid-template-columns:1fr 1fr}.stat{padding:1.25rem 1rem 1.25rem 0}.stat:nth-child(2n){border-right:none}.stat:nth-child(-n+2){border-bottom:1px solid var(--rule-soft)}.stat-value{font-size:1.9rem}.position-row{grid-template-columns:4.5rem 1fr 5rem;grid-template-areas:"ticker name   return" "cost   arrow  current" "spark  spark  spark";gap:.4rem 1rem;padding:1.1rem 0}.pos-ticker{grid-area:ticker}.pos-name{grid-area:name;font-size:1rem}.pos-return{grid-area:return}.pos-cost{grid-area:cost;text-align:left}.pos-arrow{grid-area:arrow;text-align:left}.pos-current{grid-area:current;text-align:left}.pos-spark{grid-area:spark;margin-top:.4rem}.pos-spacer{display:none}.group-label{font-size:1.35rem}}
