:root{--text:#6b6375;--bg:#e9e5d6;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}:root{--bg:#f0ede8;--ink:#1a1410;--ink-mid:#4a3d36;--ink-soft:#8a7b74;--rose:#d4789a;--rose-light:#f0c5d8;--rose-wash:#f7e8ef;--cream:#faf7f3;--border:#d6cfc9;--font-display:"Chivo", sans-serif;--font-body:"Libre Franklin", sans-serif;--font-serif:"Playfair Display", serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink)}.header-container{z-index:1000;background:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;width:100%;height:64px;padding:0 48px;display:flex;position:fixed;top:0;left:0}.header-name{font-family:var(--font-display);letter-spacing:.02em;color:var(--ink);-webkit-text-stroke:unset;font-size:20px;font-weight:800}.header-bar{display:none}.nav{-webkit-text-stroke:unset;flex-direction:row;gap:36px;display:flex}.nav a{font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mid);font-size:13px;font-weight:600;text-decoration:none;transition:color .2s}.nav a:hover{color:var(--rose)}.about-row{grid-template-columns:1fr 1fr;gap:0;min-height:100vh;margin:0;padding-top:64px;display:grid}.headshot{object-fit:cover;object-position:top;filter:grayscale(18%);width:100%;height:100%;min-height:520px;margin:0;display:block}.about-text-column{background:var(--cream);flex-direction:column;justify-content:center;padding:80px 72px 80px 64px;display:flex}.about-text-column:before{content:"— PORTFOLIO";font-family:var(--font-body);letter-spacing:.2em;color:var(--rose);margin-bottom:24px;font-size:10px;font-weight:700}.about-text-header{font-family:var(--font-display);color:var(--ink);text-align:left;margin-bottom:28px;font-size:clamp(30px,3.5vw,52px);font-weight:800;line-height:1.1}.about-text-body{font-family:var(--font-body);color:var(--ink-mid);text-align:left;max-width:520px;font-size:14.5px;font-weight:400;line-height:1.8}section{color:var(--ink);min-height:unset;padding:80px 10%}.experience-header{border-top:1px solid var(--border);background:0 0;border-radius:0;justify-content:space-between;align-items:baseline;margin:0 10%;padding:56px 0 12px;display:flex}.experience-header-title{font-family:var(--font-display);color:var(--ink);text-align:left;letter-spacing:-.02em;margin:0;font-size:clamp(32px,4vw,64px);font-weight:800;line-height:1}.experience-section{padding:40px 10% 72px}.timeline{border-left:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:48px;margin-top:8px;padding-left:40px;display:flex}.timeline-item{width:100%;color:var(--ink);position:relative}.timeline-dot{background:var(--rose);border:2px solid var(--bg);width:10px;height:10px;box-shadow:0 0 0 1px var(--rose);border-radius:50%;position:absolute;top:6px;left:-46px}.timeline-header{margin-bottom:12px}.timeline-role{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;font-size:18px;font-weight:700}.timeline-company{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--rose);margin:4px 0;font-size:13px;font-weight:700}.timeline-date{font-family:var(--font-body);color:var(--ink-soft);letter-spacing:.04em;font-size:12px;font-weight:400}.timeline-content{flex-direction:column;display:flex}.timeline-bullets{flex-direction:column;gap:8px;margin:10px 0 0;padding:0 0 0 90px;list-style:none;display:flex}.timeline-bullets li{color:#342720;text-align:left;flex-direction:row;align-items:flex-start;gap:10px;font-family:Libre Franklin,sans-serif;font-size:14px;line-height:1.6;display:flex}.timeline-bullets li:before{content:"•";color:#000;flex-shrink:0;font-size:18px;line-height:1.4}.contact-section{min-height:unset;padding:40px 10% 120px}.contact-inner{flex-direction:column;gap:40px;margin-top:16px;display:flex}.contact-tagline{font-family:var(--font-serif);color:var(--ink-mid);opacity:.7;letter-spacing:.01em;font-size:28px;font-style:italic}.contact-grid{grid-template-columns:repeat(4,1fr);gap:20px;max-width:100%;display:grid}.contact-card{border:1px solid var(--border);background:var(--cream);flex-direction:column;gap:4px;padding:20px 24px;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.contact-card:hover{border-color:var(--rose);box-shadow:0 4px 24px #d4789a1a}.contact-card:before{content:"";background:var(--rose-wash);z-index:0;transition:transform .25s;position:absolute;inset:0;transform:translate(-100%)}.contact-card:hover:before{transform:translate(0)}.contact-card-label{font-family:var(--font-body);letter-spacing:.15em;text-transform:uppercase;color:var(--rose);z-index:1;font-size:10px;font-weight:700;position:relative}.contact-card-value{font-family:var(--font-body);color:var(--ink);z-index:1;font-size:14px;font-weight:600;position:relative}.contact-card-arrow{color:var(--rose);z-index:1;margin-top:6px;font-size:13px;transition:transform .2s;position:relative}.contact-card:hover .contact-card-arrow{transform:translate(5px)}@media (width<=860px){.about-row{grid-template-columns:1fr}.headshot{min-height:380px;max-height:480px}.about-text-column{padding:48px 32px}.header-container{padding:0 24px}.contact-grid{grid-template-columns:1fr}.experience-header{margin:0 6%}.experience-section,section{padding-left:6%;padding-right:6%}}div[id]{scroll-margin-top:64px}.projects-grid{grid-template-columns:repeat(2,1fr);gap:20px;margin-top:30px;padding:0 10%;display:grid}a.project-card{cursor:pointer}a.project-card:hover{border-color:#e49ac9;transform:translateY(-3px);box-shadow:0 8px 32px #e49ac926}.project-card-top{justify-content:space-between;align-items:flex-start;display:flex}.project-card-name{color:#342720;text-align:center;align-self:center;width:100%;font-family:Libre Franklin,sans-serif;font-size:18px;font-weight:700}.project-card-arrow{color:#e49ac9;font-size:18px;line-height:1;transition:transform .2s}a.project-card:hover .project-card-arrow{transform:translate(2px,-2px)}.project-card-tech{letter-spacing:.12em;text-transform:uppercase;color:#e49ac9;font-family:Libre Franklin,sans-serif;font-size:11px;font-weight:700}.project-card-date{color:#7a6a64;font-family:Libre Franklin,sans-serif;font-size:12px}.project-card-bullets{color:#45362e;margin:6px 0 0;padding-left:16px;font-family:Libre Franklin,sans-serif;font-size:13px;line-height:1.7}@media (width<=600px){.projects-grid{grid-template-columns:1fr;padding:0 5%}}.project-card{cursor:default;background:#faf8f7;border:1.5px solid #e8e0dc;border-radius:16px;flex-direction:column;gap:8px;padding:28px 26px;text-decoration:none;transition:border-color .25s,box-shadow .25s,transform .25s,background .25s;display:flex}.project-card:hover{background:#fff;border-color:#e49ac9;transform:translateY(-4px);box-shadow:0 8px 28px #e49ac92e}.awards-section{padding:20px 10% 60px}.awards-list{border-top:1.5px solid #000;flex-direction:column;margin-top:30px;display:flex}.award-row{cursor:default;border-bottom:1.5px solid #e8e0dc;align-items:center;gap:32px;padding:24px 0;transition:background .2s;display:flex}.award-row:hover{background:#faf8f7;padding-left:12px;transition:padding-left .2s,background .2s}.award-index{color:#e49ac9;min-width:40px;font-family:Playfair Display,serif;font-size:28px;font-style:italic}.award-body{flex-direction:column;flex:1;gap:4px;display:flex}.award-title{color:#342720;font-family:Libre Franklin,sans-serif;font-size:17px;font-weight:700}.award-desc{color:#7a6a64;font-family:Libre Franklin,sans-serif;font-size:13px;line-height:1.5}.award-right{flex-direction:column;align-items:flex-end;gap:4px;min-width:180px;display:flex}.award-org{letter-spacing:.1em;text-transform:uppercase;color:#e49ac9;font-family:Libre Franklin,sans-serif;font-size:12px;font-weight:700}.award-date{color:#7a6a64;font-family:Libre Franklin,sans-serif;font-size:12px}.skills-section{padding:20px 10% 60px}.skills-group{flex-direction:column;gap:14px;display:flex}.skills-category{color:#342720;border-bottom:1.5px solid #e8e0dc;padding-bottom:8px;font-family:Playfair Display,serif;font-size:22px;font-style:italic}.skills-tags{flex-wrap:wrap;gap:8px;display:flex}.skill-tag{color:#342720;cursor:default;background:#faf8f7;border:1.5px solid #e8e0dc;border-radius:20px;padding:5px 14px;font-family:Libre Franklin,sans-serif;font-size:12px;font-weight:600;transition:border-color .2s,background .2s,color .2s}.skill-tag:hover{color:#e49ac9;background:#fdf0f8;border-color:#e49ac9}.skills-grid{grid-template-columns:repeat(3,1fr);gap:32px;margin-top:30px;display:grid}.award-row{flex-direction:column;align-items:flex-start;gap:8px}.award-right{align-items:flex-start}.projects-hint{color:#7a6a64;margin:8px 0 0;padding:0 10%;font-family:Libre Franklin,sans-serif;font-size:12px;font-style:italic}
