:root{--cream: #f4ebdd;--paper: #fbf6ee;--ink: #1b1a17;--red: #e8432e;--green: #1f3d2b;--mint: #7cc4a4;--yellow: #f6c945;--pink: #f2b8c6;--display: "Fraunces", "Iowan Old Style", Georgia, serif;--body: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius: clamp(1.5rem, 4vw, 3rem);--gutter: clamp(1rem, 5vw, 4.5rem);--ease: cubic-bezier(.22, 1, .36, 1);--spring: cubic-bezier(.34, 1.56, .64, 1);color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{background:var(--ink);-webkit-text-size-adjust:100%;scrollbar-color:var(--red) var(--ink);scrollbar-width:thin}@supports not (scrollbar-color: auto){::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--ink)}::-webkit-scrollbar-thumb{background:var(--red);border:2px solid var(--ink);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--yellow)}}body{margin:0;background:var(--cream);color:var(--ink);font:400 1.0625rem/1.6 var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,p,ol,ul,dl,dd{margin:0}ul,ol{padding:0;list-style:none}img{display:block;max-width:100%;height:auto}a{color:inherit}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:3px solid var(--red);outline-offset:3px}em{font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1}.wrap{width:min(100%,82rem);margin-inline:auto;padding:clamp(6rem,14vh,9rem) var(--gutter) clamp(4rem,10vh,7rem)}.eyebrow{font:600 .8rem/1 var(--body);letter-spacing:.18em;text-transform:uppercase;margin-bottom:1.5rem;opacity:.75}.big,.mega{font-family:var(--display);font-weight:800;line-height:.92;letter-spacing:-.03em;font-variation-settings:"opsz" 144,"SOFT" 50}.big{font-size:clamp(2.75rem,7vw,6.5rem)}.mega{font-size:clamp(3.5rem,12vw,11rem)}.lede{font-size:clamp(1.1rem,1.6vw,1.35rem);max-width:36rem;margin-top:2rem}.muted{opacity:.6}.pill{display:inline-flex;align-items:center;gap:.5rem;padding:.9rem 1.6rem;border:2px solid currentColor;border-radius:999px;background:var(--ink);color:var(--cream);border-color:var(--ink);font-weight:600;text-decoration:none;transition:transform .4s var(--spring),background-color .2s}.pill:hover{transform:translateY(-3px) rotate(-2deg)}.pill--ghost{background:transparent;color:inherit;border-color:currentColor}.reveal{opacity:0;translate:0 2rem;transition:opacity .9s var(--ease),translate .9s var(--ease);transition-delay:calc(var(--d, 0) * 90ms)}.reveal.in{opacity:1;translate:none}.nav{position:fixed;inset:1rem var(--gutter) auto;z-index:50;display:flex;align-items:center;gap:1rem;pointer-events:none}.nav>*{pointer-events:auto}.nav-logo,.nav-links,.nav-cta{display:inline-flex;align-items:center;height:2.9rem;border-radius:999px;background:color-mix(in srgb,var(--paper) 92%,transparent);border:1.5px solid var(--ink);text-decoration:none;font-weight:600}.nav-logo{padding-inline:1.1rem;font:800 1.15rem/1 var(--display);transition:transform .4s var(--spring)}.nav-logo:hover{transform:rotate(-8deg)}.nav-logo span{color:var(--red)}.nav-links{margin-inline:auto;padding:.3rem;gap:.15rem}.nav-links a{padding:.55rem 1rem;border-radius:999px;font-size:.92rem;text-decoration:none;transition:background-color .2s}.nav-links a:hover{background:var(--yellow)}.nav-cta{margin-left:auto;padding-inline:1.3rem;background:var(--red);color:var(--paper);border-color:var(--red);transition:transform .4s var(--spring)}.nav-links+.nav-cta{margin-left:0}.nav-cta:hover{transform:translateY(-2px) rotate(3deg)}.nav-progress{position:fixed;inset:0 0 auto;height:4px;background:var(--red);transform-origin:0 50%;transform:scaleX(var(--page, 0))}@media(max-width:760px){.nav-links{display:none}}.cursor{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:0;transition:opacity .3s}.cursor.on{opacity:1}.cursor-dot,.cursor-ring{position:absolute;top:0;left:0;will-change:transform}.cursor-dot:before,.cursor-ring:before{content:"";position:absolute;border-radius:50%;translate:-50% -50%}.cursor-dot:before{width:8px;height:8px;background:var(--ink);box-shadow:0 0 0 1.5px var(--paper);transition:scale .25s var(--ease)}.cursor-ring:before{width:36px;height:36px;border:1.5px solid var(--ink);box-shadow:0 0 0 1px #fbf6ee99,inset 0 0 0 1px #fbf6ee99;transition:scale .45s var(--spring),background-color .25s,border-color .25s}.cursor.hover .cursor-ring:before{scale:1.7;background:#e8432e1f;border-color:var(--red)}.cursor.hover .cursor-dot:before{scale:.6;background:var(--red)}.cursor.press .cursor-ring:before{scale:.8}.has-cursor,.has-cursor *{cursor:none!important}@media(pointer:coarse){.cursor{display:none}}.panel{position:sticky;top:0;min-height:100svh;border-radius:var(--radius) var(--radius) 0 0;overflow-x:clip;box-shadow:0 -1.5rem 4rem #0000002e}.panel:after{content:"";position:absolute;inset:0;border-radius:inherit;background:#000;opacity:calc(var(--cover, 0) * .45);pointer-events:none}.panel.covered{visibility:hidden}.hero{display:flex;flex-direction:column;border-radius:0;box-shadow:none;background:var(--cream)}.hero-inner{flex:1;display:flex;flex-direction:column;justify-content:center;padding:7rem var(--gutter) 2rem}.hero-intro{animation:fade 1s var(--ease) .6s both}.hero-name{font-family:var(--display);font-weight:900;font-size:clamp(4.2rem,19.5vw,21rem);line-height:.82;letter-spacing:-.045em;font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1}.hero-line{display:block;overflow:clip;overflow-clip-margin:.25em;padding-bottom:.04em;transform:translate(calc(var(--cover, 0) * -14vw))}.hero-line--2{text-align:right;color:var(--red);transform:translate(calc(var(--cover, 0) * 14vw))}.ch{display:inline-block;animation:rise 1.1s var(--ease) both;animation-delay:calc(var(--i) * 55ms + .1s);transition:transform .5s var(--spring),color .2s}.ch:hover{transform:translateY(-.1em) rotate(-7deg) scale(1.06);color:var(--yellow)}.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-top:clamp(1.5rem,4vh,3rem);animation:fade 1s var(--ease) .9s both}.hero-role{font:600 clamp(1.15rem,2vw,1.6rem) / 1.3 var(--display)}.hero-role span{font:500 .95rem/1.6 var(--body);opacity:.65}.sticker{position:relative;flex:none;display:grid;place-items:center;width:clamp(6.5rem,11vw,9rem);aspect-ratio:1;border-radius:50%;background:var(--yellow);text-decoration:none;transition:transform .5s var(--spring)}.sticker:hover{transform:scale(1.1) rotate(10deg)}.sticker svg{position:absolute;inset:0;animation:spin 16s linear infinite}.sticker text{font:700 10.5px var(--body);letter-spacing:.2em;fill:var(--ink)}.sticker-arrow{font-size:1.8rem;animation:bob 1.6s ease-in-out infinite}.ticker{border-block:1.5px solid var(--ink);background:var(--ink);color:var(--cream);overflow:hidden;white-space:nowrap}.ticker-track{display:inline-flex;gap:1.5rem;padding:.9rem 0;animation:marquee 38s linear infinite;font:600 clamp(1rem,1.6vw,1.3rem) / 1 var(--display)}.ticker-track .star{color:var(--yellow)}.statement{height:260vh;background:var(--green);color:var(--cream)}.statement-sticky{position:sticky;top:0;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:6rem var(--gutter) 3rem;max-width:82rem;margin-inline:auto}.statement-text{font:700 clamp(1.9rem,4.6vw,4.4rem) / 1.08 var(--display);letter-spacing:-.02em;font-variation-settings:"opsz" 96,"SOFT" 60}.w{opacity:clamp(.16,calc(var(--p, 0) * 1.3 * var(--n) - var(--i)),1)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1rem;margin-top:clamp(2rem,6vh,4rem)}.stat{border-top:1.5px solid color-mix(in srgb,var(--cream) 40%,transparent);padding-top:1rem}.stat strong{display:block;font:800 clamp(2.4rem,4vw,3.5rem) / 1 var(--display);color:var(--yellow)}.stat span{opacity:.8;font-size:.95rem}.work{background:var(--ink);color:var(--cream)}.work-sticky{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;align-items:center}.work-track{display:flex;align-items:center;gap:clamp(1.25rem,3vw,3rem);width:max-content;padding:4rem calc(var(--gutter) + 1rem) 2rem var(--gutter);transform:translate3d(calc(var(--p, 0) * (100vw - 100%)),0,0);will-change:transform}.work-intro{width:min(80vw,26rem);flex:none}.work-intro em,.work-end em,.experience em,.contact em{color:var(--red)}.work-intro .muted{margin-top:2rem}.card{flex:none;width:min(80vw,34rem);background:var(--paper);color:var(--ink);border-radius:1.75rem;padding:.75rem;transform:perspective(1000px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));transition:transform .6s var(--ease)}.card:nth-child(2n){margin-top:6vh}.card:nth-child(odd){margin-bottom:6vh}.card-media{position:relative;aspect-ratio:16 / 11;border-radius:1.25rem;overflow:hidden;background:var(--accent)}.card-media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}.card:hover .card-media img,.card:hover .card-placeholder span{transform:scale(1.06)}.card-placeholder{width:100%;height:100%;display:grid;place-items:center;background:radial-gradient(circle at 25% 30%,rgb(255 255 255 / .35),transparent 45%),repeating-linear-gradient(-45deg,transparent 0 18px,rgb(0 0 0 / .05) 18px 36px)}.card-placeholder span{font:900 clamp(6rem,14vw,11rem) / 1 var(--display);font-variation-settings:"SOFT" 100,"WONK" 1;color:var(--ink);transition:transform 1s var(--spring)}.card-num{position:absolute;top:.9rem;left:.9rem;padding:.35rem .7rem;border-radius:999px;background:var(--ink);color:var(--cream);font:700 .8rem/1 var(--body)}.card-body{padding:1.25rem .75rem .75rem}.card-kicker{font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.6}.card h3{font:800 clamp(1.6rem,2.6vw,2.2rem) / 1.05 var(--display);margin:.4rem 0 .6rem}.card-body>p:not(.card-kicker){font-size:.97rem;line-height:1.55}.tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem}.tags li{padding:.3rem .75rem;border-radius:999px;background:color-mix(in srgb,var(--accent) 35%,var(--paper));font-size:.8rem;font-weight:600}.card-link{display:inline-block;margin-top:1rem;font-weight:700}.work-end{flex:none;width:min(80vw,24rem);display:grid;gap:2rem;justify-items:start}.work-end .pill{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}.work-bar{position:absolute;left:var(--gutter);right:var(--gutter);bottom:2rem;height:3px;background:#ffffff26;border-radius:3px}.work-bar span{display:block;height:100%;background:var(--yellow);border-radius:inherit;transform-origin:0 50%;transform:scaleX(var(--p, 0))}@media(max-height:760px)and (max-width:760px){.card-body>p:not(.card-kicker){font-size:.88rem;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}}.experience{background:var(--paper)}.job{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:clamp(2rem,6vw,6rem);align-items:start}.job-head{position:sticky;top:7rem}.job-period{display:inline-block;padding:.35rem .9rem;border-radius:999px;background:var(--yellow);font-weight:700;font-size:.85rem;margin-bottom:1.25rem}.job-role{margin-top:1rem;font:600 1.3rem/1.3 var(--display)}.job-points{counter-reset:pt;display:grid}.job-points li{counter-increment:pt;display:grid;grid-template-columns:3.5rem 1fr;gap:1rem;padding:1.4rem 0;border-top:1.5px solid rgb(0 0 0 / .12);font-size:1.1rem}.job-points li:before{content:counter(pt,decimal-leading-zero);font:800 1.3rem/1.4 var(--display);color:var(--red)}.edu{margin-top:clamp(4rem,10vh,7rem);padding:clamp(1.5rem,4vw,3rem);border-radius:1.75rem;background:var(--mint)}.edu h3{font:800 clamp(1.6rem,3vw,2.6rem) / 1.1 var(--display);margin-bottom:.5rem}.summary{margin-top:3rem;max-width:48rem;font-size:1.15rem}@media(max-width:860px){.job{grid-template-columns:1fr}.job-head{position:static}}.skills{background:var(--yellow);display:flex;flex-direction:column}.skills em{color:var(--red)}.skill-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:2rem 1.5rem;margin-top:3rem}.skill-group h3{font:700 .85rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;margin-bottom:1rem}.skill-group ul{display:flex;flex-wrap:wrap;gap:.5rem}.chip{padding:.55rem 1.1rem;border:2px solid var(--ink);border-radius:999px;background:var(--paper);font-weight:600;transition:transform .45s var(--spring),background-color .2s}.chip:hover{background:hsl(var(--h) 85% 72%);transform:rotate(-6deg) scale(1.1)}.slide-row{margin-top:auto;padding-bottom:2rem;display:flex;gap:2.5rem;white-space:nowrap;font:900 clamp(4rem,12vw,10rem) / 1 var(--display);color:transparent;-webkit-text-stroke:2px var(--ink);transform:translate(calc(10% - var(--p, 0) * 40%))}.f1{background:var(--red);color:var(--paper);display:flex;flex-direction:column}.f1 em{color:var(--yellow)}.checker{height:28px;background:repeating-conic-gradient(var(--ink) 0 25%,var(--paper) 0 50%) 0 0 / 28px 28px;border-radius:var(--radius) var(--radius) 0 0}.f1-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:center;padding-top:clamp(4rem,10vh,7rem);flex:1}.f1-favs{display:flex;gap:2.5rem;margin-top:2rem}.f1-favs dt{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;opacity:.75}.f1-favs dd{font:800 1.5rem/1.2 var(--display)}.lights{width:100%;min-height:15rem;display:grid;gap:1.5rem;justify-items:center;align-content:center;padding:2rem 1.25rem;border:0;border-radius:1.75rem;background:var(--ink);color:var(--paper);-webkit-user-select:none;user-select:none;touch-action:manipulation;transition:transform .15s}.lights:active{transform:scale(.98)}.lights-row{display:flex;gap:clamp(.4rem,1.5vw,.9rem)}.light-pod{display:grid;gap:.5rem;padding:.55rem;border-radius:999px;background:#2a2925}.light{width:clamp(1.8rem,4vw,2.6rem);aspect-ratio:1;border-radius:50%;background:#3d1410;transition:background-color .05s,box-shadow .05s}.light.lit{background:#ff2d1a;box-shadow:0 0 1.4rem #ff2d1a}.lights-status{font:800 clamp(1.1rem,2vw,1.5rem) / 1.2 var(--display)}.lights.go .lights-status{color:#4ade80}.lights-best{margin-top:1rem;font-size:.95rem;opacity:.9}.track{container-type:inline-size;position:relative;height:5rem;margin-top:2rem;border-top:3px dashed rgb(255 255 255 / .5)}.car{position:absolute;top:-2.1rem;left:0;width:8rem;color:var(--paper);transform:translate(calc(var(--p, 0) * (100cqw - 100%)))}@media(max-width:860px){.f1-grid{grid-template-columns:1fr}}.contact{background:var(--green);color:var(--cream);display:flex;flex-direction:column}.contact .wrap{flex:1}.contact em{color:var(--yellow)}.contact-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:clamp(2rem,6vh,4rem)}.contact .pill{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}.contact .pill--ghost{background:transparent;color:var(--cream);border-color:var(--cream)}.foot-links{display:flex;gap:1.25rem}.foot-links a{text-decoration:none}.foot-links a:hover{text-decoration:underline}.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;padding:1.5rem var(--gutter);border-top:1.5px solid rgb(255 255 255 / .15);font-size:.875rem;opacity:.7}@keyframes rise{0%{translate:0 105%;rotate:8deg}}@keyframes fade{0%{opacity:0;translate:0 1rem}}@keyframes spin{to{rotate:360deg}}@keyframes bob{50%{translate:0 5px}}@keyframes marquee{to{transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;translate:none}}
