:root{--ink:#1c2420;--mist:#e8efe9;--paper:#f3efe6;--sage:#6b8f71;--line:#1c24201f;--muted:#1c24209e}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{color:var(--ink);background:radial-gradient(80% 50% at 20% 0,#6b8f711f,#0000 55%),radial-gradient(70% 45% at 90% 10%,#c4a06a24,#0000 50%),linear-gradient(#d8cfc0 0%,#cfc4b2 100%)}body.resume-page{min-height:100vh;font-family:"Source Sans 3",system-ui,sans-serif;font-size:1.05rem;line-height:1.55;overflow:auto}.resume-top{z-index:2;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f3efe6d1;justify-content:space-between;align-items:center;gap:1rem;padding:1rem clamp(1.25rem,4vw,2.5rem);display:flex;position:sticky;top:0}.resume-home,.resume-print{color:var(--ink);font-size:.95rem;font-weight:500;text-decoration:none}.resume-home:hover,.resume-print:hover{color:var(--sage)}.resume-shell{width:min(46rem,100% - 2rem);margin:2rem auto 4rem}.resume-doc{background:var(--paper);border:1px solid #1c242014;padding:clamp(1.75rem,4vw,3rem);box-shadow:0 18px 50px #281e141f}.resume-doc h1{letter-spacing:-.02em;margin-bottom:.55rem;font-family:Fraunces,Georgia,serif;font-size:clamp(2.2rem,5vw,3rem);font-weight:600;line-height:1.1}.resume-doc h2{border-top:1px solid var(--line);margin:2rem 0 .85rem;padding-top:.35rem;font-family:Fraunces,Georgia,serif;font-size:1.35rem;font-weight:600}.resume-doc h2:first-of-type{border-top:0;padding-top:0}.resume-doc h3{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem .75rem;margin:1.35rem 0 .25rem;font-size:1.08rem;font-weight:600;line-height:1.3;display:flex}.resume-doc h3 .resume-heading__text{flex:12rem;min-width:0}.resume-doc h3 a{color:inherit;text-underline-offset:.15em;-webkit-text-decoration:underline #1c242040;text-decoration:underline #1c242040}.resume-doc h3 a:hover{color:var(--sage);-webkit-text-decoration-color:var(--sage);text-decoration-color:var(--sage)}.resume-doc h3 code{letter-spacing:.03em;color:var(--muted);background:#1c24200f;border-radius:999px;flex:none;padding:.18rem .5rem;font-size:.72rem;font-weight:600}.resume-doc h4{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:1rem 0 .4rem;font-size:.78rem;font-weight:600}.resume-doc h2+h4{margin-top:.2rem}.resume-doc h4+p{color:var(--ink);flex-wrap:wrap;gap:.35rem;margin:0 0 .15rem;font-size:1rem;display:flex}.resume-doc p{color:var(--ink);margin:.4rem 0}.resume-doc h3+p{color:var(--muted);font-size:.95rem}.resume-doc p:has(>strong:only-child){color:var(--muted);font-size:.95rem}.resume-doc a{color:var(--sage);text-underline-offset:.15em}.resume-doc a:hover{color:var(--ink)}.resume-doc h1+p a{align-items:center;gap:.28em;margin-inline:.45em;text-decoration:none;display:inline-flex}.resume-doc h1+p a:hover{text-decoration:underline}.resume-doc h1+p a:before{content:"";width:.95em;height:.95em;-webkit-mask:var(--icon) center / contain no-repeat;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;background:currentColor;flex:none}.resume-doc h1+p a[href^=mailto\:]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E")}.resume-doc h1+p a[href*=linkedin\.com]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M20.45 20.45h-3.56v-5.57c0-1.33-.02-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94v5.67H9.35V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.46v6.28zM5.34 7.43a2.06 2.06 0 1 1 0-4.12 2.06 2.06 0 0 1 0 4.12zM7.12 20.45H3.56V9h3.56v11.45zM22.23 0H1.77C.79 0 0 .77 0 1.73v20.54C0 23.23.79 24 1.77 24h20.46c.98 0 1.77-.77 1.77-1.73V1.73C24 .77 23.21 0 22.23 0z'/%3E%3C/svg%3E")}.resume-doc h1+p a[href*=github\.com]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M12 .3C5.37.3 0 5.67 0 12.3c0 5.3 3.44 9.8 8.2 11.39.6.11.82-.26.82-.58 0-.28-.01-1.02-.02-2-3.34.73-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.09-.75.08-.73.08-.73 1.21.08 1.85 1.24 1.85 1.24 1.07 1.84 2.81 1.31 3.5 1 .11-.78.42-1.31.76-1.61-2.66-.3-5.46-1.33-5.46-5.93 0-1.31.47-2.38 1.24-3.22-.12-.3-.54-1.52.12-3.18 0 0 1.01-.32 3.3 1.23.96-.27 1.98-.4 3-.4s2.04.13 3 .4c2.29-1.55 3.3-1.23 3.3-1.23.66 1.66.24 2.88.12 3.18.77.84 1.24 1.91 1.24 3.22 0 4.61-2.8 5.62-5.47 5.92.43.37.81 1.1.81 2.22 0 1.61-.01 2.9-.01 3.29 0 .32.22.7.83.58C20.56 22.1 24 17.6 24 12.3 24 5.67 18.63.3 12 .3z'/%3E%3C/svg%3E")}.resume-doc h1+p a[href^="https://johnberger.dev"],.resume-doc h1+p a[href^="http://johnberger.dev"]{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18'/%3E%3Cpath d='M12 3a15 15 0 0 1 0 18 15 15 0 0 1 0-18z'/%3E%3C/svg%3E")}.resume-doc hr{border:0;border-top:1px solid var(--line);margin:1.5rem 0}.resume-doc ul{margin:.45rem 0 .75rem 1.15rem}.resume-doc li{margin:.28rem 0}.resume-doc li::marker{color:var(--sage)}.resume-doc code{color:#3d5a44;background:#6b8f711f;border-radius:999px;padding:.12rem .4rem;font-family:"Source Sans 3",system-ui,sans-serif;font-size:.86rem;font-weight:500}.resume-doc em{color:var(--muted);font-style:italic}@media (width<=640px){.resume-shell{width:calc(100% - 1rem);margin:1rem auto 3rem}.resume-doc{padding:1.35rem 1.15rem}}@media print{html{background:#fff}.resume-top{display:none}.resume-shell{width:100%;margin:0}.resume-doc{box-shadow:none;background:#fff;border:0;padding:0}.resume-doc a{color:inherit;text-decoration:none}.resume-doc h2,.resume-doc h3{break-after:avoid}}
