:root{--bg-color: #f4ecd8;--surface-color: rgba(255, 250, 242, .82);--surface-strong: rgba(255, 252, 247, .96);--text-color: #262018;--text-muted: #6f6558;--heading-color: #17120c;--accent-color: #1f4e79;--accent-soft: rgba(31, 78, 121, .12);--border-color: rgba(70, 55, 38, .12);--shadow-color: rgba(59, 42, 18, .08);--nav-bg: rgba(244, 236, 216, .78);--font-heading: "Source Serif 4", Georgia, serif;--font-body: "Inter", system-ui, sans-serif;--transition-speed: .22s;--max-width: 1180px}[data-theme=paper]{color-scheme:light}[data-theme=ink]{--bg-color: #111111;--surface-color: rgba(28, 28, 28, .9);--surface-strong: rgba(35, 35, 35, .96);--text-color: #e9e1d4;--text-muted: #b2a896;--heading-color: #fff7ec;--accent-color: #8bb4dc;--accent-soft: rgba(139, 180, 220, .12);--border-color: rgba(255, 255, 255, .08);--shadow-color: rgba(0, 0, 0, .28);--nav-bg: rgba(17, 17, 17, .82);color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:88px}body{min-height:100vh;background:radial-gradient(circle at top left,rgba(31,78,121,.08),transparent 28%),radial-gradient(circle at bottom right,rgba(134,90,46,.08),transparent 24%),var(--bg-color);color:var(--text-color);font-family:var(--font-body);line-height:1.72;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background-color var(--transition-speed),color var(--transition-speed)}h1,h2,h3,h4{color:var(--heading-color);font-family:var(--font-heading);font-weight:600;letter-spacing:-.02em;line-height:1.08}h1{font-size:clamp(3rem,7vw,5.6rem)}h2{font-size:clamp(2rem,4vw,3.2rem)}h3{font-size:1.5rem}p{color:var(--text-muted)}a{color:var(--accent-color);text-decoration:none}.container{width:min(var(--max-width),calc(100% - 2rem));margin:0 auto}.section-shell{padding:5rem 0}.site-header{position:sticky;top:0;z-index:100;background:var(--nav-bg);backdrop-filter:blur(16px);border-bottom:1px solid var(--border-color)}.skip-link{position:absolute;left:1rem;top:1rem;z-index:200;padding:.7rem 1rem;border-radius:999px;background:var(--surface-strong);color:var(--heading-color);border:1px solid var(--border-color);transform:translateY(-180%);transition:transform var(--transition-speed)}.skip-link:focus{transform:translateY(0)}.nav-container{min-height:3.2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.nav-shell{display:flex;align-items:center;justify-content:flex-end;gap:.3rem;flex:1;flex-wrap:wrap}.logo{color:var(--heading-color);font-family:var(--font-heading);font-size:1.08rem;font-weight:700}.nav-links{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}.nav-links-main{justify-content:center;flex:1 1 auto}.nav-actions{display:flex;align-items:center;gap:.55rem}.reader-toolbar-inline{display:none}.nav-links a,.theme-toggle{color:var(--text-color);font-size:.95rem}.nav-links a{opacity:.82}.nav-links a[href^="#"]{padding:.45rem .7rem;border-radius:999px;transition:background-color var(--transition-speed),color var(--transition-speed),opacity var(--transition-speed)}.nav-links a[href^="#"]:hover{background:var(--accent-soft)}.nav-links a:hover,.theme-toggle:hover,.button-link:hover,.card-link:hover,.footer-links a:hover,.nav-cta:hover{color:var(--accent-color)}.nav-cta{padding:.3rem .68rem;border-radius:999px;border:1px solid var(--border-color);background:var(--surface-strong);color:var(--heading-color);font-weight:600;font-size:.82rem}[aria-current=page]{color:var(--accent-color)}.theme-toggle{border:1px solid var(--border-color);background:var(--surface-color);border-radius:999px;width:2.5rem;height:2.5rem;display:grid;place-items:center;cursor:pointer}.hero{padding-top:4.4rem}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:1.5rem;align-items:start}.hero-copy{padding-right:1rem}.eyebrow{color:var(--accent-color);text-transform:uppercase;letter-spacing:.2em;font-size:.76rem;font-weight:700;margin-bottom:1rem}.hero-copy h1{max-width:8ch}.lede{font-size:1.14rem;max-width:40rem;margin-top:1.5rem}.intro-note{max-width:38rem;margin-top:.9rem;color:var(--text-muted);font-size:.98rem}.hero-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin:2rem 0}.meta-card,.hero-panel,.project-card,.skill-category,.interest-card,.detail-card{background:var(--surface-color);border:1px solid var(--border-color);box-shadow:0 18px 48px var(--shadow-color);backdrop-filter:blur(14px)}.meta-card,.hero-panel,.project-card,.skill-category,.interest-card,.detail-card{border-radius:20px}.meta-card{padding:1rem 1.1rem .95rem}.meta-label,.card-kicker,.panel-header,.detail-meta,.job-meta{color:var(--text-muted);font-size:.88rem}.meta-value{display:block;color:var(--heading-color);font-weight:600;margin-top:.35rem}.social-links{display:flex;gap:.8rem;flex-wrap:wrap}.button-link,.card-link{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-color);background:var(--surface-strong);color:var(--heading-color);border-radius:999px;padding:.72rem 1rem;font-weight:600;transition:transform var(--transition-speed),border-color var(--transition-speed),color var(--transition-speed)}.button-link:hover,.card-link:hover{transform:translateY(-1px)}.hero-panel{padding:1.35rem;position:sticky;top:5.8rem}.panel-header,.card-topline{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.panel-body{display:grid}.panel-footer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.25rem;padding-top:1.1rem;border-top:1px solid var(--border-color)}.metric{border-radius:16px;padding:.8rem .85rem;background:#ffffff40;border:1px solid var(--border-color)}.metric-value{display:block;font-family:var(--font-heading);font-size:1.35rem;color:var(--heading-color);line-height:1}.metric-label{display:block;margin-top:.4rem;color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.panel-caption{margin-top:1rem;font-size:.92rem;color:var(--text-muted)}.panel-chip{border-radius:999px;padding:.3rem .7rem;background:var(--accent-soft);color:var(--accent-color);font-size:.78rem;font-weight:700}.profile-line{display:grid;grid-template-columns:110px 1fr;gap:1rem;padding:.85rem 0;border-top:1px solid var(--border-color)}.profile-line:first-child{border-top:0;padding-top:0}.profile-label{color:var(--text-muted);font-size:.88rem;text-transform:uppercase;letter-spacing:.08em}.profile-value{color:var(--heading-color);font-weight:600}.section-head{max-width:46rem;margin-bottom:2.25rem}.section-head p:not(.eyebrow){margin-top:.65rem;font-size:1.04rem}.timeline{display:grid;gap:1rem}.timeline-item{position:relative;padding:1.45rem 1.5rem 1.4rem;background:var(--surface-color);border:1px solid var(--border-color);border-radius:22px;box-shadow:0 18px 48px var(--shadow-color)}.job-header{display:flex;justify-content:space-between;gap:1rem;align-items:start;margin-bottom:1rem}.job-title{font-size:1.55rem}.job-company{color:var(--accent-color);font-weight:600;margin-top:.3rem}.job-summary-lead{margin-bottom:.85rem;font-size:.95rem;color:var(--text-muted)}.bullet-list{padding-left:1.2rem;display:grid;gap:.75rem}.bullet-list li{color:var(--text-color)}.bullet-list li::marker{color:var(--accent-color)}.project-grid,.skills-grid,.interests-grid,.split-grid,.blog-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.project-card,.skill-category,.interest-card,.detail-card{padding:1.45rem}.blog-card{padding:1.35rem 1.45rem;background:var(--surface-color);border:1px solid var(--border-color);border-radius:20px;box-shadow:0 18px 48px var(--shadow-color)}.blog-card h2,.blog-card h3{margin:.25rem 0 .6rem}.blog-card p{margin-bottom:.8rem}.blog-post{max-width:1320px}.blog-post-hero{padding:1.4rem 1.5rem 1.2rem;border:1px solid var(--border-color);border-radius:26px;background:var(--surface-color);box-shadow:0 18px 48px var(--shadow-color)}.reader-toolbar{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border-color)}.reader-toolbar-inline{display:flex;align-items:center;gap:.28rem;flex-wrap:nowrap;margin:0;padding:.26rem;border:1px solid var(--border-color);border-radius:999px;background:color-mix(in srgb,var(--surface-strong) 76%,transparent);box-shadow:0 10px 30px #3b2a120f;backdrop-filter:blur(14px);overflow:hidden}.reader-group{display:flex;align-items:center;gap:.22rem;flex-wrap:wrap;padding:.04rem .18rem;border:0;border-radius:0;background:transparent;min-height:1.4rem}.reader-toolbar-inline .reader-group{flex-wrap:nowrap;padding:0;min-height:2rem}.reader-group+.reader-group{border-left:1px solid rgba(35,29,20,.08);margin-left:.02rem;padding-left:.28rem}.reader-toolbar-inline .reader-group+.reader-group{margin-left:.18rem;padding-left:.48rem}.reader-label{margin-right:.25rem;color:var(--text-muted);font-size:.52rem;text-transform:uppercase;letter-spacing:.12em}.reader-toolbar-inline .reader-label{margin-right:.18rem;font-size:.58rem;letter-spacing:.16em}.reader-btn{border:1px solid transparent;background:transparent;color:var(--heading-color);border-radius:999px;padding:.08rem .22rem;font-family:var(--font-body);font-size:.66rem;line-height:1;cursor:pointer}.reader-toolbar-inline .reader-btn{min-width:2rem;padding:.42rem .58rem;font-size:.78rem;font-weight:650}.reader-toolbar-inline .reader-btn[data-reader-width]{min-width:auto;padding-inline:.7rem}.reader-btn:hover{background:#1f4e7914}.reader-btn[aria-pressed=true]{background:var(--accent-soft);border-color:#1f4e7929;color:var(--accent-color)}.reader-progress{position:sticky;top:4.95rem;z-index:20;height:3px;margin:1rem 0 1.2rem;border-radius:999px;overflow:hidden;background:#1f4e7914}.reader-progress-bar{width:100%;height:100%;background:linear-gradient(90deg,var(--accent-color),rgba(31,78,121,.55));transform:scaleX(0);transform-origin:left center}.blog-post-meta{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.2rem}.blog-post-chip{border-radius:999px;padding:.42rem .75rem;background:var(--accent-soft);color:var(--accent-color);font-size:.84rem;font-weight:600}.blog-post-content{margin-top:1.5rem;padding:.2rem .1rem;max-width:var(--blog-post-content-max-width, 88rem);margin-left:auto;margin-right:auto;font-size:calc(1rem * var(--blog-font-scale, 1))}.blog-post-content :is(h2,h3,h4){margin:2rem 0 .7rem}.blog-post-content :is(h2,h3,h4):before{content:"";display:block;width:3.25rem;height:2px;margin-bottom:.7rem;background:var(--accent-soft)}.blog-post-content p,.blog-post-content li{font-size:1em;line-height:1.78}.blog-post-content p{max-width:72ch;margin-bottom:1rem}.blog-post-content pre{margin:1.35rem 0 1.5rem;padding:0;border:1px solid rgba(35,29,20,.14);border-radius:20px;background:#1f242b;overflow:hidden;box-shadow:0 18px 48px #281e1229;max-width:100%}.blog-post-content pre:before{content:attr(data-lang);display:block;padding:.75rem 1rem;border-bottom:1px solid rgba(255,255,255,.08);color:#f8f1e8b8;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;background:#ffffff0a}.blog-post-content pre:has(code.language-sql):before{content:"SQL"}.blog-post-content pre:has(code.language-python):before{content:"Python"}.blog-post-content pre:has(code.language-text):before{content:"Text"}.blog-post-content pre code{display:block;padding:1.1rem 1.1rem 1.2rem;overflow-x:auto;background:transparent;color:#f8f3ea;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.93rem;line-height:1.75;tab-size:2;white-space:pre}.blog-post-content pre code span{color:inherit!important;opacity:1!important}.blog-post-content pre code .token,.blog-post-content pre code .keyword,.blog-post-content pre code .operator,.blog-post-content pre code .attr-name,.blog-post-content pre code .attr-value,.blog-post-content pre code .string,.blog-post-content pre code .number,.blog-post-content pre code .comment,.blog-post-content pre code .punctuation{color:inherit!important}.blog-post-content code:not(pre code){padding:.15rem .35rem;border-radius:6px;background:var(--accent-soft);color:var(--heading-color);font-size:.95em}.blog-post-content ul{padding-left:1.2rem;margin:.75rem 0 1.2rem;display:grid;gap:.8rem;max-width:76ch}.blog-post-content ol{padding-left:1.3rem;margin:.75rem 0 1.2rem;display:grid;gap:.8rem;max-width:76ch}.blog-post-content blockquote{margin:1.25rem 0 1.4rem;padding:1rem 1.2rem;border-left:3px solid var(--accent-color);background:#1f4e790f;border-radius:0 16px 16px 0;color:var(--heading-color);max-width:78ch}.mermaid-diagram{margin:1.4rem auto;padding:1rem;border:1px solid rgba(35,29,20,.12);border-radius:22px;background:linear-gradient(180deg,#faf7f0,#f2e8d4);overflow-x:auto;box-shadow:0 18px 48px #281e121a;max-width:100%}.mermaid-diagram svg{max-width:100%;height:auto}.mermaid-diagram .node rect,.mermaid-diagram .node polygon,.mermaid-diagram .node circle,.mermaid-diagram .node ellipse{fill:#f7f0e1!important;stroke:#8a7b61!important}.mermaid-diagram .edgePath path,.mermaid-diagram .flowchart-link{stroke:#8a7b61!important}.mermaid-diagram .label,.mermaid-diagram text{fill:#2b241b!important;color:#2b241b!important;font-size:14px!important}.blog-footer-link{margin-top:1rem}.blog-post-footer{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color);display:flex;justify-content:flex-start}.project-card{min-height:100%}.project-card h3,.skill-category h3,.interest-card h3,.detail-card h4{margin-bottom:.8rem}.project-summary{margin-bottom:.9rem}.project-tech{color:var(--accent-color);font-size:.9rem;font-weight:600}.project-card:hover,.skill-category:hover,.interest-card:hover,.detail-card:hover,.timeline-item:hover{transform:translateY(-2px);border-color:#1f4e7938;box-shadow:0 22px 58px #3b2a121c}.site-header a[aria-current=page]{color:var(--accent-color);background:var(--accent-soft)}.skill-tags{display:flex;flex-wrap:wrap;gap:.6rem}.skill-tag,.interest-tag{border-radius:999px;padding:.45rem .75rem;font-size:.88rem;border:1px solid var(--border-color);background:#ffffff52;color:var(--text-color)}[data-theme=ink] .skill-tag,[data-theme=ink] .interest-tag{background:#ffffff0a}.detail-column{display:grid;gap:1rem}.detail-column>h3{margin-bottom:.1rem}.detail-meta{margin-bottom:.2rem}.site-footer{padding-top:4rem}.footer-inner{display:grid;gap:1rem;padding-bottom:2.5rem}.site-footer h2{max-width:10ch}.footer-links{display:flex;gap:1rem;flex-wrap:wrap}.copyright{font-size:.9rem;color:var(--text-muted)}.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}.reveal.is-visible{opacity:1;transform:none}@media(max-width:960px){.hero-grid,.project-grid,.skills-grid,.interests-grid,.split-grid,.blog-list{grid-template-columns:1fr}.hero-copy{padding-right:0}.job-header{flex-direction:column}.hero-panel{position:static}.reader-toolbar-inline{flex:1 1 100%;justify-content:space-between}}@media(max-width:720px){.section-shell{padding:4rem 0}.container{width:min(100% - 1.25rem,1000px)}.nav-container,.nav-shell{gap:.75rem}.nav-container{align-items:flex-start}.nav-shell,.nav-links-main{justify-content:flex-start}.nav-actions{width:100%;align-items:stretch;flex-wrap:wrap}.reader-toolbar-inline{width:100%;justify-content:flex-start;border-radius:20px;flex-wrap:wrap;overflow:visible}.reader-toolbar-inline .reader-group{flex:1 1 auto}.reader-toolbar-inline .reader-group+.reader-group{border-left:0;margin-left:0;padding-left:0}.reader-toolbar-inline .reader-btn{flex:1 1 auto}.blog-post-hero{padding:1.15rem 1.1rem 1rem;border-radius:22px}.blog-post-content{max-width:100%}.reader-progress{top:4.5rem}.reader-toolbar{gap:.65rem}.reader-toolbar-floating{position:static;max-width:100%;margin-top:1rem;flex-wrap:wrap}.mermaid-diagram{padding:.75rem}.hero-meta{grid-template-columns:1fr}.profile-line{grid-template-columns:1fr;gap:.25rem}.nav-links{justify-content:flex-end}.panel-footer{grid-template-columns:1fr}.skip-link{left:.75rem;top:.75rem}}
