:root{--scroll-progress: 0;--brand-yellow: #f5c842;--text-main: #1e1e1b;--text-muted: #5b5b42}.skip-link{position:absolute;top:-48px;left:16px;padding:8px 16px;background:var(--brand-yellow);color:var(--text-main);font-family:Geist,sans-serif;font-weight:700;font-size:.9rem;text-decoration:none;border-radius:0 0 6px 6px;z-index:100;transition:top .15s}.skip-link:focus{top:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:3px solid var(--brand-yellow);outline-offset:3px;border-radius:2px}html{overflow-x:hidden;overscroll-behavior:none}body{margin:0;background:#fff;font-family:Geist,sans-serif;color:var(--text-main);overscroll-behavior:none;--noise: url('data:image/svg+xml,<svg viewBox="0 0 800 800" xmlns="http://www.w3.org/2000/svg"><filter id="noiseFilter"><feTurbulence type="turbulence" baseFrequency="0.95" numOctaves="7" stitchTiles="stitch" /><feColorMatrix type="saturate" values="0"/><feComponentTransfer><feFuncA type="linear" slope="0.1"/></feComponentTransfer></filter><rect width="100%" height="100%" filter="url(%23noiseFilter)" /></svg>');--gradient: radial-gradient(circle, rgb(255, 255, 255) 10%, rgb(253, 251, 231) 50%);background:var(--noise),var(--gradient);background-attachment:fixed;background-repeat:no-repeat;background-size:cover}#scroll-hint{position:absolute;left:50%;bottom:15vh;transform:translate(-50%);z-index:25;display:flex;flex-direction:column;align-items:center;gap:8px;animation:bounce 2s ease-in-out infinite;cursor:pointer}#scroll-hint span{font-size:.85rem;color:var(--text-muted);font-family:Geist,sans-serif}#scroll-hint .scroll-arrow{width:24px;height:24px;color:var(--text-muted)}@keyframes bounce{0%,20%,50%,80%,to{transform:translate(-50%) translateY(0)}40%{transform:translate(-50%) translateY(-10px)}60%{transform:translate(-50%) translateY(-5px)}}@media(prefers-reduced-motion:reduce){#scroll-hint{animation:none}}@media(max-width:700px){#scroll-hint{bottom:10vh}}#effect-viewport{position:fixed;left:calc(50% - (var(--scroll-progress) * (50% - 100px)));top:calc(50% - (var(--scroll-progress) * (50% - 100px)));transform:translate(-50%,-50%) scale(calc(1 - (var(--scroll-progress) * .85)));width:100vmin;height:100vmin;z-index:10;pointer-events:none}#logo-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}#fx-canvas{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:360%;height:360%;pointer-events:none;will-change:opacity}.final-scallop{opacity:calc(.25 + var(--scroll-progress) * .75)}.logo-text{font-weight:700;font-size:18px;fill:var(--text-main);letter-spacing:-.5px}#mobile-mask{display:none;position:fixed;top:0;left:0;right:0;height:120px;background:linear-gradient(to bottom,#fff 60%,#fff0);z-index:15;pointer-events:none}#main-content{position:relative;z-index:20;margin-top:100vh;padding:80px 130px;display:flex;justify-content:center}.cv-content{max-width:800px;width:100%}header{margin-bottom:60px;border-bottom:3px dotted #eee;padding-bottom:40px}h1{font-size:3rem;margin:0;letter-spacing:-2px;font-weight:300}h1 strong{font-weight:700}.pronouns{display:inline-block;margin-left:.4em;font-size:.95rem;font-weight:400;letter-spacing:0;color:var(--text-muted);vertical-align:middle}p strong,li strong{background:#f5c84280;font-weight:400}.tagline{font-size:1.2rem;color:var(--text-muted);margin-top:10px}.contact-grid{display:grid;grid-template-columns:repeat(3,auto);gap:12px 24px;margin-top:30px;font-size:.85rem;color:var(--text-muted)}.contact-item--location{grid-column:1 / -1}.contact-item--download{grid-column:1 / -1;margin-top:20px}.contact-item{display:flex;align-items:center;gap:8px}.contact-icon{width:14px;height:14px;flex-shrink:0;color:#fff;stroke-width:2;background:var(--brand-yellow);border-radius:50%;padding:5px;box-sizing:content-box}.contact-item a{color:inherit;text-decoration:underline;text-underline-offset:2px}.contact-item a:hover{color:var(--text-main)}.resume-download-button{display:inline-flex;align-items:center;gap:10px;font-size:.95rem;letter-spacing:.04em;text-transform:uppercase;font-weight:700;color:var(--text-main);text-decoration:none;background:color-mix(in srgb,var(--brand-yellow) 78%,white);border:1px solid color-mix(in srgb,var(--brand-yellow) 62%,#000 18%);border-radius:999px;padding:14px 22px;transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease}.resume-download-icon{width:18px;height:18px;stroke-width:2.1}.resume-download-button:hover{text-decoration:none;transform:translateY(-1px);background:var(--brand-yellow);box-shadow:0 8px 18px #f5c84247}.resume-download-button:active{transform:translateY(0);box-shadow:none}.resume-download-button--footer{margin-top:28px}section{margin-bottom:50px}h2{font-size:.8rem;text-transform:uppercase;letter-spacing:2px;color:var(--text-main);margin-bottom:25px;border-left:3px solid var(--brand-yellow);padding-left:15px}.job{margin-bottom:40px}.job-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap}.job-title{font-weight:700;font-size:1.2rem;margin:0}.company{font-weight:400;color:var(--text-muted)}.company-location{color:#666}.period{font-size:.9rem;color:#8b7533;font-weight:700}.description{margin:15px 0;line-height:1.6}p,li{max-width:65ch}a:not(.skip-link):not(.resume-download-button){text-decoration:underline;text-underline-offset:2px}li{margin-bottom:8px;line-height:1.5;color:#444}ul{padding-left:20px}b,strong{color:var(--text-main)}.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.strengths-list,.education-list,.awards-list,.references-list{list-style:none;padding-left:0;margin:0}.strengths-list li{margin-bottom:8px;line-height:1.5;color:#444}.education-list li,.awards-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 12px;margin-bottom:12px;line-height:1.5}.education-list .period,.awards-list .period{margin-left:auto}.references-list li{margin-bottom:16px;line-height:1.5}.muted-text{font-size:.9rem;color:var(--text-muted)}@media(prefers-reduced-motion:reduce){#fx-canvas{display:none}}@media(max-width:900px){#main-content{padding:60px 40px}}@media(max-width:700px){.contact-grid{grid-template-columns:1fr}.resume-download-button{width:fit-content;max-width:100%;font-size:.9rem;padding:12px 18px}h1{font-size:2.2rem;letter-spacing:-1.2px}.pronouns{display:block;margin-left:0;margin-top:4px}.skills-grid{grid-template-columns:1fr;gap:8px}}@media(max-width:600px){#effect-viewport{width:180px!important;height:180px!important;left:50%!important;top:calc(50% - (var(--scroll-progress) * (50% - 60px)))!important;transform:translate(-50%,-50%) scale(calc(1 - (var(--scroll-progress) * .5)))!important;z-index:25;--logo-bg: color-mix( in srgb, rgb(255 255 255 / .8) calc(100% - var(--scroll-progress) * 22%), rgb(245 200 66 / .8) );background:var(--logo-bg);border-radius:50%;box-shadow:0 0 40px 40px var(--logo-bg)}#main-content{margin-top:100vh;padding:40px 20px;z-index:5}}@media(max-width:380px){.contact-grid{grid-template-columns:1fr}}@media print{#effect-viewport,#mobile-mask,.skip-link,#scroll-hint{display:none!important}html,body{background:#fff!important;color:#000!important;font-size:11pt;overflow:visible!important}body{--noise: none;--gradient: none;background-image:none!important}#main-content{margin-top:0!important;padding:0!important;position:static}.cv-content{max-width:100%}h1{font-size:22pt}h2{color:#000!important;border-left-color:#999!important;font-size:9pt}p,li{max-width:65ch}.tagline{color:#444!important}.contact-grid{grid-template-columns:repeat(3,auto);gap:4px 12px;font-size:9pt}.resume-download-button{border:1px solid #000;background:#fff;color:#000;box-shadow:none}.contact-icon{background:#000!important;color:#fff!important}a[href]:after{content:" (" attr(href) ")";font-size:8pt;color:#666;word-break:break-all}a[href^="tel:"]:after,a[href^="mailto:"]:after{content:none}.period{color:#000!important}p strong,li strong{background:none!important}section{margin-bottom:24pt}.job{margin-bottom:16pt;break-inside:avoid}header{break-after:avoid}section{break-inside:avoid}}
