:root{color-scheme:light;--bg: #f7f7f4;--surface: #ffffff;--surface-soft: #efeee8;--text: #1d2526;--muted: #596568;--line: #d9d8cf;--accent: #2d6a73;--accent-strong: #184f57;--accent-soft: #dcebed;--mark: #b66b32;--shadow: 0 18px 45px rgba(29, 37, 38, .08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;color:var(--text);background:linear-gradient(#f7f7f4eb,#f7f7f4eb),radial-gradient(circle at top left,rgba(45,106,115,.12),transparent 34rem);font-size:16px;line-height:1.65}a{color:var(--accent-strong);text-decoration-color:#2d6a7359;text-underline-offset:.18em}a:hover{color:var(--mark)}img{max-width:100%}.site-shell{min-height:100vh;display:flex;flex-direction:column}.container{width:min(1120px,calc(100% - 2rem));margin-inline:auto}.main-content{flex:1}.site-header{border-bottom:1px solid rgba(217,216,207,.8);background:#f7f7f4e6;backdrop-filter:blur(18px);position:sticky;top:0;z-index:10}.nav{display:flex;align-items:center;justify-content:space-between;min-height:4.5rem;gap:1.5rem}.brand{display:inline-flex;flex-direction:column;color:var(--text);text-decoration:none;line-height:1.15}.brand strong{font-size:1.03rem;letter-spacing:0}.brand span{color:var(--muted);font-size:.78rem}.nav-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.25rem}.nav-links a{border-radius:999px;color:var(--muted);font-size:.92rem;padding:.45rem .72rem;text-decoration:none}.nav-links a:hover,.nav-links a[aria-current=page]{background:var(--accent-soft);color:var(--accent-strong)}.site-footer{border-top:1px solid var(--line);color:var(--muted);margin-top:5rem;padding:2rem 0}.footer-inner{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:clamp(2rem,5vw,4rem);align-items:center;padding:clamp(3.5rem,8vw,6.5rem) 0 3rem}.eyebrow{color:var(--mark);font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}h1,h2,h3{letter-spacing:0;line-height:1.12}h1{font-size:clamp(2.45rem,7vw,5.3rem);margin:.5rem 0 1.2rem;max-width:11ch}h2{font-size:clamp(1.8rem,4vw,2.7rem);margin:0 0 1rem}h3{font-size:1.22rem;margin:0 0 .55rem}.hero-copy{color:var(--muted);font-size:clamp(1.05rem,2vw,1.22rem);max-width:62ch}.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}.button{align-items:center;border:1px solid var(--accent);border-radius:8px;display:inline-flex;font-weight:700;min-height:2.75rem;padding:.65rem 1rem;text-decoration:none}.button.primary{background:var(--accent);color:#fff}.button.secondary{color:var(--accent-strong)}.hero-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:1.25rem}.hero-panel dl{display:grid;gap:1rem;margin:0}.hero-panel dt{color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.hero-panel dd{margin:.2rem 0 0}.section{padding:3rem 0}.section-heading{align-items:end;display:flex;justify-content:space-between;gap:1rem;margin-bottom:1.4rem}.section-heading p{color:var(--muted);margin:0;max-width:56ch}.grid{display:grid;gap:1rem}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;gap:.85rem;min-height:100%;padding:1.1rem}.project-card p{color:var(--muted);margin:0}.project-card footer{margin-top:auto}.meta{color:var(--muted);font-size:.9rem}.tag-list{display:flex;flex-wrap:wrap;gap:.45rem}.tag{background:var(--surface-soft);border:1px solid rgba(217,216,207,.8);border-radius:999px;color:var(--accent-strong);font-size:.8rem;padding:.22rem .55rem}.tag-filter{margin-bottom:1.4rem}.tag-filter .tag{cursor:default}.page-header{padding:3.5rem 0 1.5rem}.page-header p{color:var(--muted);font-size:1.08rem;max-width:70ch}.content-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:2rem;align-items:start}.side-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:1rem;position:sticky;top:6rem}.side-panel h2{font-size:1rem;margin-bottom:.7rem}.side-panel ul,.plain-list{list-style:none;margin:0;padding:0}.side-panel li,.plain-list li{border-top:1px solid var(--line);padding:.72rem 0}.side-panel li:first-child,.plain-list li:first-child{border-top:0}.prose{max-width:76ch}.prose h2{font-size:1.55rem;margin-top:2rem}.prose p,.prose li{color:#334044}.info-band{background:var(--surface);border-block:1px solid var(--line);margin:2rem 0;padding:1.4rem 0}.two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.timeline-item{border-left:2px solid var(--accent-soft);padding:0 0 1.4rem 1rem}.timeline-item:last-child{padding-bottom:0}.note-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:1rem}.cv-wrap{width:min(920px,calc(100% - 2rem));margin-inline:auto}.cv-hero{border-bottom:1px solid var(--line);padding:clamp(3rem,7vw,5.5rem) 0 2rem}.cv-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:clamp(1.5rem,5vw,3rem);align-items:end}.cv-hero h1{max-width:none}.cv-title{color:var(--accent-strong);font-size:1.2rem;font-weight:700;margin:-.5rem 0 1rem}.cv-summary{color:var(--muted);font-size:1.06rem;max-width:68ch}.cv-contact-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:1rem}.cv-download{justify-content:center;width:100%}.cv-contact-card dl{display:grid;gap:.75rem;margin:1rem 0 0}.cv-contact-card dt{color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.cv-contact-card dd{color:var(--text);margin:.1rem 0 0;overflow-wrap:anywhere}.cv-page{padding:2rem 0 1rem}.cv-section{background:#ffffff9e;border-top:1px solid var(--line);padding:1.6rem 0}.cv-section-heading{align-items:baseline;display:flex;gap:.8rem;margin-bottom:1rem}.cv-section-heading span{color:var(--mark);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.82rem;font-weight:700}.cv-section-heading h2{font-size:clamp(1.35rem,3vw,1.85rem);margin:0}.cv-entry,.cv-project-entry{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:1.1rem}.cv-entry{display:flex;justify-content:space-between;gap:1rem}.cv-entry h3,.cv-project-entry h3,.cv-skill-list h3{margin:0 0 .25rem}.cv-entry p,.cv-project-entry p,.cv-skill-list p{color:var(--muted);margin:0}.cv-entry-meta{color:var(--muted);display:flex;flex-direction:column;font-size:.95rem;text-align:right;white-space:nowrap}.cv-pill-grid{display:flex;flex-wrap:wrap;gap:.55rem}.cv-pill-grid span{background:var(--accent-soft);border:1px solid rgba(45,106,115,.2);border-radius:999px;color:var(--accent-strong);font-weight:700;padding:.38rem .7rem}.cv-projects-section{padding-top:2rem}.cv-project-list,.cv-skill-list{display:grid;gap:1rem}.cv-project-entry{border-left:4px solid var(--accent)}.cv-project-top{align-items:baseline;display:flex;justify-content:space-between;gap:1rem}.cv-project-entry ul{margin:.8rem 0;padding-left:1.2rem}.cv-project-entry li{color:#334044}.cv-tools{font-size:.95rem}.cv-todo{color:var(--mark)!important;font-size:.92rem;margin-top:.35rem!important}.cv-two-column{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.9fr);gap:2rem}.cv-skill-list article{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.95rem}.cv-compact-list{background:var(--surface);border:1px solid var(--line);border-radius:8px;list-style:none;margin:0;padding:.4rem 1rem}.cv-compact-list li{border-top:1px solid var(--line);padding:.62rem 0}.cv-compact-list li:first-child{border-top:0}@media(max-width:860px){.nav{align-items:flex-start;flex-direction:column;padding:.95rem 0}.nav-links{justify-content:flex-start}.hero,.content-layout,.two-column,.cv-hero-grid,.cv-two-column{grid-template-columns:1fr}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.side-panel{position:static}}@media(max-width:620px){.container{width:min(100% - 1rem,1120px)}.nav-links a{padding:.38rem .5rem}.project-grid{grid-template-columns:1fr}.section-heading{align-items:start;flex-direction:column}.cv-wrap{width:min(100% - 1rem,920px)}.cv-entry,.cv-project-top{align-items:start;flex-direction:column}.cv-entry-meta{text-align:left}}
