
:root{color-scheme:light;--ink:#352e36;--muted:#6d626c;--accent:#884b65;--accent-dark:#67384c;--line:#e8dfe4;--soft:#f8f0f4;--paper:#fffdfd}
*{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-size:1rem;line-height:1.7;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}a{color:var(--accent);text-underline-offset:4px;text-decoration-thickness:1px}a:hover{color:var(--accent-dark)}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}img{max-width:100%}
.wrap{width:min(1120px,calc(100% - 80px));margin-inline:auto}header{background:var(--paper);border-bottom:1px solid var(--line)}header .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px 32px;padding:24px 0}.brand{color:var(--ink);font-size:1.125rem;font-weight:600;letter-spacing:-.01em;text-decoration:none;line-height:1.4}header nav{display:flex;flex-wrap:wrap;gap:12px 26px;align-items:center}nav a{font-size:.9375rem;color:var(--muted);text-decoration:none;padding:6px 0}nav a.active{color:var(--accent);border-bottom:2px solid var(--accent)}main{padding:56px 0 72px;min-height:74vh}.narrow{max-width:900px;margin:auto}
h1,h2,h3{font-family:inherit;color:var(--ink);font-weight:600;line-height:1.3;letter-spacing:-.02em}h1{font-size:2.5rem;margin:0 0 28px}h2{font-size:1.625rem;margin:40px 0 18px}h3{font-size:1.125rem;margin:0 0 10px;letter-spacing:-.01em}p{margin:0 0 20px}.lead{font-size:1.125rem;line-height:1.65;color:var(--muted)}.eyebrow{font-size:.875rem;font-weight:600;letter-spacing:.055em;line-height:1.6;color:var(--accent);margin:0 0 14px}.meta{font-size:.9375rem;line-height:1.6;color:var(--muted)}.entry{padding:26px 0;border-bottom:1px solid var(--line)}.entry h3{font-size:1.125rem;line-height:1.5;margin-bottom:8px}.entry p:last-child{margin-bottom:0}.button,.download{display:inline-block;padding:11px 20px;background:var(--accent);border:1px solid var(--accent);border-radius:6px;color:#fff;font-size:.9375rem;font-weight:500;line-height:1.6;text-decoration:none}.button:hover,.download:hover{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}.button.secondary{background:transparent;border-color:#ccb5c0;color:var(--accent)}.button.secondary:hover{background:var(--soft)}
.home{display:grid;grid-template-columns:1.12fr 1.2fr;gap:48px;align-items:center}.home aside{padding:12px;background:#f2e5ec;border-radius:16px}.portrait{display:block;width:100%;height:auto;border-radius:9px}.intro h1{font-size:3.25rem;line-height:1.1;margin:0 0 18px;letter-spacing:-.04em}.intro .lead{font-size:1.125rem;line-height:1.75;color:var(--ink);margin-bottom:20px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 22px}.personal-note{font-size:.9375rem;color:var(--muted);margin-bottom:0}.home-section{margin-top:56px;padding:36px;background:var(--soft);border:1px solid var(--line);border-radius:14px}.home-section h2{margin:0 0 18px}.home-section>p{max-width:840px}.method-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 28px;list-style:none;padding:0;margin:28px 0 0}.method-list li{border-left:2px solid #c58fa6;padding-left:12px;font-size:1rem;line-height:1.6}.connect{margin-top:52px;scroll-margin-top:30px}.connect h2{margin:0 0 18px}.connect-intro{max-width:760px;color:var(--muted);margin-bottom:28px}.connect-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;border-top:1px solid var(--line);padding-top:26px}.contact-email{font-size:1rem;overflow-wrap:anywhere}.contact-email a{text-decoration:none}.social{display:flex;flex-wrap:wrap;gap:12px 22px}.social a{font-size:.9375rem}.opportunities{border-left:1px solid var(--line);padding-left:36px}.opportunities p{color:var(--muted)}
.skills{display:grid;grid-template-columns:1fr 1fr;gap:10px 28px;padding-left:20px}.skills li::marker{color:var(--accent)}.page-links{display:flex;flex-wrap:wrap;gap:12px 24px;padding-bottom:20px;margin:0 0 28px;border-bottom:1px solid var(--line)}.page-links a{color:var(--accent);font-size:.9375rem;padding:0}.narrow>ul:not(.skills){padding-left:22px}.narrow>ul li{margin-bottom:8px}.certificate-links{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:.9375rem}.course-entry .meta{margin-bottom:12px}table{width:100%;border-collapse:collapse;font-size:.9375rem}td,th{text-align:left;padding:12px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{font-weight:600}.poster-entry{display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:start}.poster-entry img{display:block;width:100%;height:auto;border:1px solid var(--line)}
.photos-page>.lead{max-width:680px;margin-bottom:36px}.memory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 28px;align-items:start}.memory{margin:0;min-width:0}.memory img{display:block;width:100%;height:auto;border-radius:6px}.memory figcaption{padding-top:16px}.memory h2{font-size:1.125rem;line-height:1.5;margin:0 0 5px}.memory p{font-size:.9375rem;line-height:1.6;color:var(--muted);margin:0}.memory p.memory-detail{font-size:1rem;line-height:1.7;margin-top:8px}.footer{border-top:1px solid var(--line);background:#faf6f8;padding:24px 0;font-size:.875rem;color:var(--muted)}footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
@media(max-width:1000px){.home{grid-template-columns:1.05fr 1.15fr;gap:32px}.method-list{grid-template-columns:repeat(2,minmax(0,1fr))}.intro h1{font-size:2.75rem}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}header .wrap{align-items:flex-start;flex-direction:column;gap:14px;padding:20px 0}header nav{gap:8px 20px}main{padding:32px 0 48px}h1{font-size:2rem}h2{font-size:1.5rem}.home{grid-template-columns:1fr;gap:28px}.home aside{width:100%;max-width:460px;margin:auto}.intro h1{font-size:2.5rem}.home-section{margin-top:36px;padding:24px}.method-list{gap:16px}.connect{margin-top:36px}.connect-grid{grid-template-columns:1fr;gap:24px}.opportunities{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.skills{grid-template-columns:1fr}.memory-grid{grid-template-columns:1fr;gap:30px}.poster-entry{grid-template-columns:1fr}.poster-entry img{max-width:256px}}
@media(max-width:420px){.method-list{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
