:root,[data-theme=light]{--bg: #F5EFE2;--surface: #EEE6D3;--text: #2A2519;--text-dim: #716650;--accent: #B88A1C;--accent-muted: #D0A73E;--border: #D7CAAA;--font-display: "Fraunces", Georgia, "Times New Roman", serif;--font-body: "Atkinson Hyperlegible", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--max-w: 820px;--max-w-prose: 660px}[data-theme=dark]{--bg: #1F1B14;--surface: #2A2519;--text: #EFE4CB;--text-dim: #958771;--accent: #D8A842;--accent-muted: #9A7A2D;--border: #312918}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{overflow-x:hidden;scroll-behavior:smooth;color-scheme:light dark}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden;position:relative;min-height:100vh}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.04;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");mix-blend-mode:multiply}[data-theme=dark] body:before{mix-blend-mode:screen;opacity:.028}a{color:inherit;text-decoration:none;transition:color .12s ease}a:hover{color:var(--accent)}::selection{background:var(--accent-muted);color:var(--bg)}.container{max-width:var(--max-w);margin:0 auto;padding:0 32px;position:relative;z-index:2}nav{padding:26px 0 22px}nav .container{display:flex;justify-content:space-between;align-items:center;gap:24px}.nav-logo{display:flex;align-items:baseline;gap:10px}.nav-logo-mark{font-family:var(--font-display);font-size:22px;font-weight:600;letter-spacing:-.02em;color:var(--text);font-variation-settings:"opsz" 60,"SOFT" 40}.nav-logo-text{font-family:var(--font-mono);font-size:11px;color:var(--text-dim);letter-spacing:.06em}.nav-right{display:flex;align-items:center;gap:22px}.nav-links{display:flex;gap:22px;list-style:none}.nav-links a{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);letter-spacing:.04em}.nav-links a:hover{color:var(--text)}.theme-toggle{width:30px;height:30px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;display:grid;place-items:center;transition:color .12s ease,border-color .12s ease;padding:0;font-family:inherit}.theme-toggle:hover{color:var(--text);border-color:var(--text-dim)}.theme-toggle svg{width:13px;height:13px;display:block}[data-theme=light] .theme-toggle .icon-sun,[data-theme=dark] .theme-toggle .icon-moon{display:none}.hero{padding:72px 0 56px}.hero-greeting{font-family:var(--font-mono);font-size:11px;color:var(--accent);letter-spacing:.24em;text-transform:uppercase;margin-bottom:28px}.hero h1{font-family:var(--font-display);font-size:clamp(46px,7.4vw,82px);font-weight:500;line-height:1;letter-spacing:-.028em;color:var(--text);margin-bottom:22px;font-variation-settings:"opsz" 144,"SOFT" 50}.hero-sub{font-size:17px;line-height:1.55;color:var(--text-dim);max-width:620px}section{padding:64px 0;border-top:1px solid var(--border);position:relative}.section-label{font-family:var(--font-mono);font-size:11px;color:var(--text-dim);letter-spacing:.24em;text-transform:uppercase;margin-bottom:34px}.prose-section{max-width:var(--max-w-prose);font-size:18px;line-height:1.7;color:var(--text)}.prose-section blockquote{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(22px,2.4vw,28px);line-height:1.3;color:var(--text);border-left:2px solid var(--accent);padding:2px 0 2px 24px;margin-bottom:36px;font-variation-settings:"opsz" 72,"SOFT" 60}.prose-section blockquote p{margin:0}.prose-section p+p{margin-top:1.15em}.prose-section strong{font-family:var(--font-display);font-weight:600;font-style:normal;font-variation-settings:"opsz" 30}.prose-section em{font-style:italic;color:var(--text)}.app-card{padding:22px 0 24px;border-top:1px solid var(--border);max-width:720px;position:relative}.app-card:first-of-type{border-top:none;padding-top:4px}.app-card-header{margin-bottom:8px}.app-card h3{font-family:var(--font-display);font-size:27px;font-weight:500;letter-spacing:-.012em;color:var(--text);display:inline-block;padding-bottom:2px;border-bottom:1px solid var(--accent-muted);font-variation-settings:"opsz" 60,"SOFT" 50}.app-card p{font-size:16px;line-height:1.6;color:var(--text-dim);max-width:640px}.skills-category{margin-bottom:40px}.skills-category:last-child{margin-bottom:0}.skills-category-title{font-family:var(--font-mono);font-size:11px;color:var(--text-dim);letter-spacing:.22em;text-transform:uppercase;margin-bottom:14px}.skills-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:56px;row-gap:0}.skill-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dotted var(--border)}.skill-name{font-size:16px;color:var(--text);font-family:var(--font-body)}.skill-level{font-family:var(--font-mono);font-size:10.5px;color:var(--text-dim);letter-spacing:.16em;text-transform:uppercase;flex-shrink:0}.timeline{display:flex;flex-direction:column;max-width:720px}.timeline-item{padding:12px 0;border-bottom:1px dotted var(--border)}.timeline-item:last-child{border-bottom:none}.timeline-header{display:flex;justify-content:space-between;align-items:baseline;gap:24px}.timeline-role{font-family:var(--font-display);font-size:18px;font-weight:500;color:var(--text);font-variation-settings:"opsz" 36,"SOFT" 50}.timeline-item.past .timeline-role{color:var(--text-dim);font-weight:400}.timeline-company{font-size:14px;color:var(--text-dim);font-weight:400}.timeline-date{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);letter-spacing:.04em;white-space:nowrap;flex-shrink:0;font-variant-numeric:tabular-nums}.education{margin-top:44px;padding-top:28px;border-top:1px solid var(--border);max-width:720px}.education .skills-category-title{margin-bottom:12px}.edu-item{padding:4px 0}.edu-school{font-family:var(--font-display);font-size:17px;font-weight:500;color:var(--text);font-variation-settings:"opsz" 36}.edu-detail{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);letter-spacing:.04em;margin-top:3px}.contact-grid{display:grid;grid-template-columns:repeat(3,auto);gap:28px 56px;max-width:720px}.contact-item{padding:0}.contact-label{font-family:var(--font-mono);font-size:10px;color:var(--text-dim);letter-spacing:.24em;text-transform:uppercase;margin-bottom:4px}.contact-value{font-size:16px;color:var(--text)}.contact-value a{border-bottom:1px solid var(--border);padding-bottom:1px;transition:color .12s ease,border-color .12s ease}.contact-value a:hover{color:var(--accent);border-bottom-color:var(--accent)}footer{padding:44px 0 56px;border-top:1px solid var(--border)}footer .container{display:flex;justify-content:space-between;align-items:center;gap:16px}.footer-brand{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--accent);font-variation-settings:"opsz" 36;letter-spacing:-.01em}.footer-text{font-family:var(--font-mono);font-size:11px;color:var(--text-dim);letter-spacing:.06em;display:inline-flex;align-items:center;gap:2px}.footer-ferris{vertical-align:-3px;margin-right:8px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:760px){.container{padding:0 24px}.hero{padding:52px 0 40px}.hero h1{font-size:clamp(38px,10vw,56px)}.skills-grid{grid-template-columns:1fr;column-gap:0}.contact-grid{grid-template-columns:1fr 1fr;gap:22px 32px}.timeline-header{flex-wrap:wrap}.timeline-date{width:100%}}@media(max-width:520px){.nav-logo-text{display:none}.nav-links{gap:14px}.nav-links a{font-size:11px;letter-spacing:.02em}.contact-grid{grid-template-columns:1fr;gap:18px}footer .container{flex-direction:column-reverse;gap:12px;align-items:flex-start}}@media(max-width:420px){.nav-links li:nth-child(2),.nav-links li:nth-child(5){display:none}}
