.nav{position:sticky;top:0;z-index:70;display:flex;align-items:center;justify-content:space-between;padding:18px var(--pad-x);max-width:var(--content-w);margin:0 auto;background:color-mix(in oklab,var(--bg) 86%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.nav-brand{display:flex;align-items:center;gap:10px;font-family:var(--font-body);font-weight:500}.nav-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover}.nav-name{font-weight:600}.nav-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-2);animation:pulse 2.6s infinite;margin:0 4px 0 8px}.nav-status{color:var(--ink-soft);font-size:13px}.nav-list{display:flex;gap:var(--gap);align-items:center}.nav-link{display:inline-flex;align-items:baseline;gap:6px;font-size:14px;padding:6px 0;position:relative;transition:color .16s ease}.nav-num{font-family:var(--font-mono);font-size:10px;color:var(--ink-soft)}.nav-link:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--accent-1);transition:right .2s ease}.nav-link:hover:after,.nav-link.is-active:after{right:0}.nav-link.is-active{color:var(--accent-1)}.nav-actions{display:flex;align-items:center;gap:10px}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:transparent;border:.5px solid color-mix(in oklab,var(--ink) 22%,transparent);color:var(--ink);transition:background .2s ease,transform .32s ease,border-color .2s ease}.theme-toggle:hover{background:var(--bg-soft);border-color:color-mix(in oklab,var(--ink) 40%,transparent)}.theme-toggle:active{transform:scale(.92)}.theme-toggle-icon{transition:transform .32s ease}[data-theme=dark] .theme-toggle-icon{transform:rotate(40deg)}.hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;width:36px;height:36px;border-radius:50%;background:transparent;border:.5px solid color-mix(in oklab,var(--ink) 22%,transparent);gap:4px;position:relative;transition:background .2s ease,border-color .2s ease;z-index:80}.hamburger:hover{background:var(--bg-soft)}.hamburger span{display:block;width:16px;height:1.5px;background:var(--ink);transition:transform .28s ease,opacity .2s ease;transform-origin:center}.hamburger.is-open span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}.hamburger.is-open span:nth-child(2){opacity:0}.hamburger.is-open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}.mobile-menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:var(--bg);padding:90px var(--pad-x) var(--gap-lg);display:flex;flex-direction:column;justify-content:space-between;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .26s ease,transform .32s cubic-bezier(.2,.8,.2,1),visibility 0s linear .32s}.mobile-menu.is-open{opacity:1;visibility:visible;transform:translateY(0);transition:opacity .22s ease,transform .36s cubic-bezier(.2,.8,.2,1),visibility 0s}.mobile-close{position:absolute;top:22px;right:var(--pad-x);display:inline-flex;align-items:center;gap:10px;padding:8px 8px 8px 14px;border-radius:999px;background:transparent;border:.5px solid color-mix(in oklab,var(--ink) 22%,transparent);color:var(--ink);font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;z-index:75;opacity:0;transform:translateY(-6px);transition:opacity .24s ease 80ms,transform .32s cubic-bezier(.2,.8,.2,1) 80ms,background .2s ease,border-color .2s ease}.mobile-menu.is-open .mobile-close{opacity:1;transform:translateY(0)}.mobile-close:hover{background:var(--accent-1);border-color:var(--accent-1);color:var(--bg)}.mobile-close-x{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:color-mix(in oklab,var(--ink) 8%,transparent)}.mobile-close:hover .mobile-close-x{background:color-mix(in oklab,var(--bg) 25%,transparent)}.mobile-menu-list{display:flex;flex-direction:column;gap:4px}.mobile-menu-list li{opacity:0;transform:translateY(14px);transition:opacity .36s ease,transform .46s cubic-bezier(.2,.8,.2,1);transition-delay:calc(80ms + var(--i, 0) * 60ms)}.mobile-menu.is-open .mobile-menu-list li{opacity:1;transform:translateY(0)}.mobile-link{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:18px;padding:18px 0;border-bottom:.5px solid color-mix(in oklab,var(--ink) 18%,transparent);font-family:var(--font-display);font-size:clamp(36px,9vw,56px);line-height:1;letter-spacing:-.02em;transition:color .2s ease,padding-left .24s ease}.mobile-link:hover,.mobile-link.is-active{color:var(--accent-1);padding-left:8px}.mobile-num{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);letter-spacing:.1em}.mobile-arrow{color:var(--ink-soft)}.mobile-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--gap);flex-wrap:wrap;padding-top:var(--gap);border-top:.5px solid color-mix(in oklab,var(--ink) 18%,transparent);font-size:14px}.mobile-foot-label{display:block;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);margin-bottom:4px}.mobile-foot a{display:block}.mobile-socials{display:flex;gap:14px;font-family:var(--font-mono);color:var(--ink-soft)}.mobile-socials a:hover{color:var(--accent-1)}.recruiter-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--ink);color:var(--bg);border:none;font-family:var(--font-body);font-size:13px;font-weight:500;transition:background .2s ease,transform .2s ease,gap .2s ease}.recruiter-btn:hover{background:var(--accent-1);gap:10px;transform:translateY(-1px)}.recruiter-btn-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 2px color-mix(in oklab,var(--accent-2) 30%,transparent)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.7)}}@media (max-width: 920px){.nav-list{display:none}.hamburger{display:inline-flex}.nav-status{font-size:12px}}@media (max-width: 760px){.recruiter-btn{padding:8px 12px;font-size:12px}}@media (max-width: 600px){.nav{padding:14px var(--pad-x)}.nav-brand{gap:8px}.nav-status{font-size:11px}}@media (max-width: 460px){.nav-status,.nav-dot{display:none}.recruiter-btn{padding:7px 10px;font-size:11px;gap:6px}.recruiter-btn svg{display:none}}.hero{min-height:calc(100vh - 70px);display:flex;flex-direction:column;justify-content:space-between;padding:calc(var(--gap-xl) * .6) 0 var(--gap-xl);border-top:0}.hero-meta{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.meta-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-1)}.hero-headline{font-family:var(--font-display);font-size:clamp(42px,6.8vw,112px);line-height:.96;letter-spacing:-.028em;font-weight:400;margin-top:var(--gap);text-wrap:balance}.hero-headline .line{display:block}.hero-headline em{font-style:italic;font-variation-settings:"opsz" 144;font-weight:400}.hero-foot{display:grid;grid-template-columns:repeat(3,auto) 1fr;gap:var(--gap);align-items:end;margin-top:var(--gap-lg);padding-top:var(--gap);border-top:.5px solid color-mix(in oklab,var(--ink) 30%,transparent)}.hero-foot-col{display:flex;flex-direction:column;gap:4px;min-width:0}.hero-foot-col .label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}.hero-foot-col .value{font-size:15px;font-weight:500}.hero-cta-group{display:inline-flex;gap:10px;justify-self:end;flex-wrap:wrap}.hero-cta{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;background:var(--ink);color:var(--bg);border-radius:999px;font-weight:500;font-size:14px;transition:transform .2s ease,background .2s ease}.hero-cta:hover{background:var(--accent-1);transform:translateY(-1px)}.hero-cta-ghost{background:transparent;color:var(--ink);border:.5px solid color-mix(in oklab,var(--ink) 30%,transparent)}.hero-cta-ghost:hover{background:var(--bg-soft);border-color:var(--accent-1);color:var(--accent-1)}@media (max-width: 920px){.hero-foot{grid-template-columns:1fr 1fr}.hero-cta-group{grid-column:1 / -1;justify-self:stretch}.hero-cta{justify-content:center}}@media (max-width: 600px){.hero-foot{grid-template-columns:1fr}}.marquee{overflow:hidden;border-block:.5px solid color-mix(in oklab,var(--ink) 30%,transparent);padding:18px 0;background:var(--bg-soft);margin:0 calc(-1 * var(--pad-x))}.marquee-track{display:flex;width:max-content;animation:marquee 48s linear infinite}.marquee-row{display:flex;align-items:center;gap:28px;padding-right:28px;font-family:var(--font-display);font-size:clamp(22px,3vw,38px);font-style:italic;white-space:nowrap}.marquee-item:nth-child(8n+3){color:var(--accent-1)}.marquee-item:nth-child(8n+7){color:var(--accent-2);font-style:normal;font-family:var(--font-body);font-weight:600}.marquee-sep{color:var(--ink-soft);display:inline-flex}@keyframes marquee{to{transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.marquee-track{animation:none}}.about-grid{display:grid;grid-template-columns:280px 1fr;gap:var(--gap-lg);align-items:start}.portrait-frame{background:var(--accent-2);border-radius:24px;padding:28px;aspect-ratio:1;display:grid;place-items:center;position:relative;overflow:hidden}.portrait-frame:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 30% 30%,color-mix(in oklab,var(--accent-1) 30%,transparent) 0%,transparent 50%),radial-gradient(circle at 70% 75%,color-mix(in oklab,var(--bg) 18%,transparent) 0%,transparent 55%);pointer-events:none}.portrait-frame img{position:relative;width:75%;height:75%;object-fit:contain;filter:drop-shadow(0 10px 30px rgba(0,0,0,.18))}.portrait-facts{margin-top:var(--gap);font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);display:flex;flex-direction:column;gap:6px}.portrait-facts span{color:var(--accent-1);margin-right:6px}.about-body{padding-top:8px}.about-lead{font-family:var(--font-display);font-size:clamp(28px,3.4vw,48px);line-height:1.1;letter-spacing:-.015em;margin:0 0 var(--gap-lg);text-wrap:balance}.about-lead em{font-style:italic}.about-p{font-size:17px;color:var(--ink-soft);max-width:60ch;margin:0 0 var(--gap)}.about-links{display:flex;gap:var(--gap);flex-wrap:wrap;align-items:center;margin-top:var(--gap-sm)}@media (max-width: 920px){.about-grid{grid-template-columns:1fr}}.exp-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--gap-xl)}.exp-col-head{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);margin-bottom:var(--gap)}.exp-list{display:flex;flex-direction:column;gap:var(--gap)}.exp-item{padding:var(--gap) 0;border-top:.5px solid color-mix(in oklab,var(--ink) 20%,transparent)}.exp-item:first-child{border-top:0;padding-top:0}.exp-item-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.exp-company{font-family:var(--font-display);font-size:28px;letter-spacing:-.015em}.exp-date{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft)}.exp-role{display:inline-block;margin:4px 0 10px;color:var(--accent-1);font-weight:500}.exp-blurb{color:var(--ink-soft);margin:0 0 var(--gap-sm);max-width:56ch}.exp-bullets{display:flex;flex-direction:column;gap:10px;margin:var(--gap-sm) 0 var(--gap);max-width:60ch}.exp-bullet{display:grid;grid-template-columns:56px 1fr;gap:14px;align-items:baseline}.exp-bullet-marker{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);letter-spacing:.08em;white-space:nowrap}.exp-bullet-num{color:var(--accent-1);font-feature-settings:"tnum"}.exp-bullet-line{flex:1;height:1px;background:color-mix(in oklab,var(--ink) 22%,transparent)}.exp-bullet-text{color:var(--ink);font-size:15px;line-height:1.5}.exp-bullet:hover .exp-bullet-line{background:var(--accent-1);transition:background .24s ease}.exp-bullet:hover .exp-bullet-num{color:var(--accent-2);transition:color .24s ease}.exp-tags{display:flex;flex-wrap:wrap;gap:6px}.exp-tags li{font-family:var(--font-mono);font-size:11px;padding:4px 9px;border-radius:999px;background:var(--bg-soft);color:var(--ink-soft)}.edu-list{display:flex;flex-direction:column;gap:var(--gap-sm);margin-bottom:var(--gap)}.edu-item{display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:baseline;padding-bottom:var(--gap-sm);border-bottom:.5px dashed color-mix(in oklab,var(--ink) 20%,transparent)}.edu-school{font-family:var(--font-display);font-size:20px;grid-column:1;grid-row:1}.edu-field{color:var(--ink-soft);font-size:13px;grid-column:1;grid-row:2}.edu-date{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);grid-column:2;grid-row:1;align-self:baseline}.skills{display:flex;flex-direction:column;gap:var(--gap-sm)}.skill-group-name{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);display:block;margin-bottom:6px}.skill-group ul{display:flex;flex-wrap:wrap;gap:4px}.skill-group ul li{font-size:12px;padding:3px 8px;border-radius:999px;border:.5px solid color-mix(in oklab,var(--ink) 22%,transparent)}.prior-list{display:flex;flex-direction:column;gap:var(--gap-sm)}.prior-item{padding-bottom:var(--gap-sm);border-bottom:.5px dashed color-mix(in oklab,var(--ink) 18%,transparent)}.prior-item:last-child{border-bottom:0;padding-bottom:0}.prior-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.prior-company{font-family:var(--font-display);font-size:18px}.prior-date{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft)}.prior-role{display:inline-block;color:var(--accent-1);font-size:12px;font-weight:500;margin-top:2px}.prior-blurb{color:var(--ink-soft);font-size:13px;margin:6px 0 0;line-height:1.5}@media (max-width: 920px){.exp-grid{grid-template-columns:1fr;gap:var(--gap-lg)}}.work-featured{display:flex;flex-direction:column;gap:var(--gap-xl)}.work-card{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--gap-lg);align-items:center}.work-card-right{grid-template-columns:1fr 1.2fr}.work-card-right .work-thumb{order:2}.work-card-right .work-meta{order:1}.work-thumb{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:4 / 3;border-radius:18px;overflow:hidden;background:var(--card);border:.5px solid color-mix(in oklab,var(--ink) 20%,transparent);transition:transform .28s ease,box-shadow .28s ease}.work-thumb-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,transparent 0 18px,color-mix(in oklab,var(--accent-1) 12%,transparent) 18px 19px)}.work-thumb img{position:relative;width:84%;max-height:84%;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 24px 60px -16px #0000004d}.work-thumb-cta{position:absolute;left:18px;bottom:18px;display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:13px;font-weight:500;opacity:0;transform:translateY(8px);transition:opacity .28s ease,transform .28s ease}.work-thumb:hover{transform:translateY(-4px);box-shadow:0 18px 50px -20px #0000002e}.work-thumb:hover .work-thumb-cta{opacity:1;transform:translateY(0)}.work-meta-top{display:flex;align-items:baseline;gap:16px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);margin-bottom:var(--gap-sm)}.work-num{color:var(--accent-1)}.work-title{font-family:var(--font-display);font-size:clamp(36px,4.4vw,64px);line-height:1;letter-spacing:-.02em;margin-bottom:var(--gap-sm)}.work-blurb{font-size:17px;color:var(--ink-soft);max-width:46ch;margin:0 0 var(--gap)}.work-stack{display:flex;flex-wrap:wrap;gap:6px}.work-stack li{font-family:var(--font-mono);font-size:11px;padding:5px 10px;border-radius:999px;border:.5px solid color-mix(in oklab,var(--ink) 30%,transparent);color:var(--ink-soft)}.work-list{margin-top:var(--gap-xl)}.work-list-head{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);margin-bottom:var(--gap)}.work-list ul li a{display:grid;grid-template-columns:2fr 2fr 80px 24px;gap:var(--gap);align-items:center;padding:22px 0;border-top:.5px solid color-mix(in oklab,var(--ink) 20%,transparent);transition:color .2s ease,padding .2s ease}.work-list ul li:last-child a{border-bottom:.5px solid color-mix(in oklab,var(--ink) 20%,transparent)}.work-list ul li a:hover{color:var(--accent-2);padding-left:8px}.wl-title{font-family:var(--font-display);font-size:26px}.wl-tags{color:var(--ink-soft);font-size:13px;font-family:var(--font-mono)}.wl-year{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);text-align:right}.wl-arrow{display:inline-flex}@media (max-width: 920px){.work-card,.work-card-right{grid-template-columns:1fr}.work-card-right .work-thumb,.work-card-right .work-meta{order:initial}.work-list ul li a{grid-template-columns:1fr auto 24px}.wl-tags{display:none}}.contact-headline{margin-bottom:var(--gap-lg)}.contact-headline h2{font-family:var(--font-display);font-size:clamp(40px,6.2vw,96px);line-height:1.02;letter-spacing:-.025em;margin-bottom:var(--gap);text-wrap:balance}.contact-headline em{font-style:italic}.contact-actions{display:flex;align-items:center;gap:var(--gap-lg);flex-wrap:wrap;row-gap:16px}.contact-email{display:inline-block;font-family:var(--font-display);font-size:clamp(22px,2.6vw,36px);border-bottom:1px solid var(--ink);padding-bottom:4px;transition:color .2s ease,border-color .2s ease}.contact-email:hover{color:var(--accent-1);border-color:var(--accent-1)}.contact-resume{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:999px;background:var(--ink);color:var(--bg);font-weight:500;font-size:14px;transition:background .2s ease,gap .2s ease,transform .2s ease}.contact-resume:hover{background:var(--accent-1);gap:14px;transform:translateY(-1px)}.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:.5px solid color-mix(in oklab,var(--ink) 22%,transparent)}.contact-card{display:grid;grid-template-columns:1fr 2fr auto;gap:var(--gap);align-items:center;padding:var(--gap) 0;border-bottom:.5px solid color-mix(in oklab,var(--ink) 22%,transparent);transition:padding .2s ease,color .2s ease}.contact-card:nth-child(odd){padding-right:var(--gap);border-right:.5px solid color-mix(in oklab,var(--ink) 22%,transparent)}.contact-card:nth-child(2n){padding-left:var(--gap)}.contact-card:hover{color:var(--accent-1)}.contact-card:hover .contact-arrow{transform:translate(4px)}.contact-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft)}.contact-handle{font-family:var(--font-display);font-size:22px}.contact-arrow{transition:transform .2s ease}@media (max-width: 920px){.contact-grid{grid-template-columns:1fr}.contact-card:nth-child(odd){padding-right:0;border-right:0}.contact-card:nth-child(2n){padding-left:0}}.footer{max-width:var(--content-w);margin:0 auto;padding:var(--gap-lg) var(--pad-x);border-top:.5px solid color-mix(in oklab,var(--ink) 22%,transparent)}.footer-row{display:flex;gap:var(--gap);align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:12px;color:var(--ink-soft)}.footer-time:before{content:"◷ ";color:var(--accent-2)}.footer-top{transition:color .2s ease}.footer-top:hover{color:var(--accent-1)}.footer-more{color:var(--ink);font-family:var(--font-body);font-size:13px;text-transform:none;letter-spacing:0;border-bottom:1px solid color-mix(in oklab,var(--ink) 30%,transparent);padding-bottom:1px;transition:color .2s ease,border-color .2s ease}.footer-more:hover{color:var(--accent-1);border-color:var(--accent-1)}@media (max-width: 600px){.footer-row{flex-wrap:wrap;gap:12px}}.rv-bar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:var(--gap);padding:12px var(--pad-x);background:var(--ink);color:var(--bg);font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em}.rv-bar-label{display:inline-flex;align-items:center;gap:8px;font-weight:600}.rv-bar-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-2);animation:pulse 2.6s infinite}.rv-bar-meta{color:color-mix(in oklab,var(--bg) 65%,transparent);flex:1;text-align:center}.rv-bar-exit{background:var(--bg);color:var(--ink);border:none;padding:7px 14px;border-radius:999px;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;transition:background .2s ease,color .2s ease}.rv-bar-exit:hover{background:var(--accent-1);color:var(--bg)}.rv{max-width:var(--content-w);margin:0 auto;padding:0 var(--pad-x) var(--gap-xl)}.rv-header{padding:var(--gap-lg) 0;border-bottom:.5px solid color-mix(in oklab,var(--ink) 22%,transparent)}.rv-header-top{display:grid;grid-template-columns:1fr auto;gap:var(--gap);align-items:center;margin-bottom:var(--gap-lg)}.rv-id{display:flex;align-items:center;gap:var(--gap-sm)}.rv-avatar{width:76px;height:76px;border-radius:50%;background:var(--accent-2);padding:6px;object-fit:cover}.rv-name{font-family:var(--font-display);font-size:clamp(36px,5vw,56px);line-height:1;letter-spacing:-.02em;margin:0 0 6px}.rv-tagline{margin:0;color:var(--ink-soft);font-size:15px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.rv-available{display:inline-flex;align-items:center;gap:6px;color:var(--accent-2);font-weight:500}.rv-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-2);animation:pulse 2.6s infinite}.rv-cta-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.rv-cta{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:999px;font-weight:500;font-size:14px;transition:background .2s ease,color .2s ease,transform .2s ease,gap .2s ease}.rv-cta-primary{background:var(--ink);color:var(--bg)}.rv-cta-primary:hover{background:var(--accent-1);gap:12px}.rv-cta-secondary{background:transparent;color:var(--ink);border:.5px solid color-mix(in oklab,var(--ink) 30%,transparent)}.rv-cta-secondary:hover{background:var(--bg-soft)}.rv-cta-resume{background:var(--accent-1);color:var(--bg)}.rv-cta-resume:hover{background:var(--accent-2);gap:12px}.rv-summary{font-family:var(--font-display);font-size:clamp(24px,3vw,36px);line-height:1.25;letter-spacing:-.02em;margin:0 0 var(--gap-lg);text-wrap:balance}.rv-summary em{font-style:italic;color:var(--accent-1)}.rv-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap)}.rv-stat{padding:var(--gap-sm) var(--gap);border:.5px solid color-mix(in oklab,var(--ink) 22%,transparent);border-radius:16px;background:var(--bg-soft);display:flex;flex-direction:column;gap:4px}.rv-stat-value{font-family:var(--font-display);font-size:clamp(32px,4vw,48px);line-height:1;letter-spacing:-.02em;color:var(--accent-1)}.rv-stat-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.rv-block{padding:var(--gap-lg) 0;border-bottom:.5px solid color-mix(in oklab,var(--ink) 22%,transparent)}.rv-block-head{display:flex;align-items:baseline;gap:14px;margin-bottom:var(--gap)}.rv-block-num{font-family:var(--font-mono);font-size:11px;color:var(--accent-1);letter-spacing:.1em}.rv-block-title{font-family:var(--font-display);font-size:clamp(24px,2.6vw,32px);letter-spacing:-.015em;margin:0}.rv-exp{display:flex;flex-direction:column}.rv-exp-line{display:flex;align-items:baseline;gap:12px;padding:var(--gap-sm) 0;border-top:.5px solid color-mix(in oklab,var(--ink) 14%,transparent);flex-wrap:nowrap;min-width:0}.rv-exp-line:last-child{border-bottom:.5px solid color-mix(in oklab,var(--ink) 14%,transparent)}.rv-company{font-family:var(--font-display);font-size:22px;letter-spacing:-.01em;white-space:nowrap;flex-shrink:0}.rv-role{color:var(--accent-1);font-weight:500;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}.rv-sep{color:var(--ink-soft);font-family:var(--font-display);flex-shrink:0}.rv-date{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);margin-left:auto;white-space:nowrap;flex-shrink:0}.rv-split{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--gap-lg)}.rv-skills-flat{font-size:15px;line-height:1.7;color:var(--ink);margin:0;text-wrap:pretty}.rv-skills-flat strong{font-weight:600;color:var(--accent-1)}.rv-edu{display:flex;flex-direction:column;gap:var(--gap-sm)}.rv-edu li{display:flex;flex-direction:column;gap:2px;padding-bottom:var(--gap-sm);border-bottom:.5px dashed color-mix(in oklab,var(--ink) 18%,transparent)}.rv-edu li:last-child{border-bottom:0}.rv-edu-school{font-family:var(--font-display);font-size:18px}.rv-edu-meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft)}.rv-projects{display:flex;flex-direction:column}.rv-projects li a{display:grid;grid-template-columns:40px 1.5fr 2fr 80px 24px;gap:var(--gap);align-items:baseline;padding:var(--gap-sm) 0;border-top:.5px solid color-mix(in oklab,var(--ink) 14%,transparent);transition:color .2s ease,padding-left .24s ease}.rv-projects li:last-child a{border-bottom:.5px solid color-mix(in oklab,var(--ink) 14%,transparent)}.rv-projects li a:hover{color:var(--accent-2);padding-left:6px}.rv-proj-num{font-family:var(--font-mono);font-size:11px;color:var(--accent-2);font-variant-numeric:tabular-nums}.rv-proj-title{font-family:var(--font-display);font-size:20px;letter-spacing:-.01em}.rv-proj-stack{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft)}.rv-proj-year{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);text-align:right}.rv-final{display:grid;grid-template-columns:1fr auto;gap:var(--gap-lg);align-items:end;border-bottom:0}.rv-final-title{font-family:var(--font-display);font-size:clamp(40px,5.5vw,72px);line-height:1;letter-spacing:-.02em;margin:0 0 var(--gap-sm)}.rv-final-sub{color:var(--ink-soft);margin:0;max-width:50ch}.rv-final-actions{display:flex;flex-direction:row;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.rv-foot{display:flex;justify-content:space-between;padding-top:var(--gap-lg);margin-top:var(--gap-lg);font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.1em;border-top:.5px solid color-mix(in oklab,var(--ink) 18%,transparent)}@media (max-width: 920px){.rv-header-top{grid-template-columns:1fr}.rv-cta-row{justify-content:flex-start}.rv-stats{grid-template-columns:repeat(2,1fr)}.rv-exp-line{gap:8px}.rv-exp-line .rv-company{font-size:17px}.rv-exp-line .rv-role{font-size:12px}.rv-exp-line .rv-date{font-size:11px;padding:3px 8px;border-radius:999px;background:var(--bg-soft)}.rv-exp-line .rv-sep{display:none}.rv-split{grid-template-columns:1fr 1fr;gap:var(--gap)}.rv-skills-flat{font-size:13px}.rv-projects li a{grid-template-columns:32px 1fr auto 24px}.rv-proj-stack{display:none}.rv-final{grid-template-columns:1fr}.rv-final-actions{justify-content:flex-start}.rv-bar-meta{display:none}}.ok-page{max-width:var(--content-w);margin:0 auto;padding:var(--gap-lg) var(--pad-x) var(--gap-xl)}.ok-nav{position:sticky;top:0;z-index:70;display:flex;align-items:center;justify-content:space-between;padding:18px var(--pad-x);max-width:var(--content-w);margin:0 auto;background:color-mix(in oklab,var(--bg) 86%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.ok-nav-brand{display:flex;align-items:center;gap:10px;font-weight:500;font-size:15px}.ok-nav-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover}.ok-nav-back{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;font-size:13px;font-weight:500;border:.5px solid color-mix(in oklab,var(--ink) 22%,transparent);transition:background .2s ease,color .2s ease,gap .2s ease,border-color .2s ease}.ok-nav-back:hover{background:var(--ink);color:var(--bg);gap:12px;border-color:var(--ink)}.ok-hero{padding:var(--gap-lg) 0 var(--gap-xl)}.ok-eyebrow{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);display:inline-flex;align-items:center;gap:8px;margin-bottom:var(--gap)}.ok-eyebrow:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent-1)}.ok-headline{font-family:var(--font-display);font-size:clamp(48px,8vw,112px);line-height:.98;letter-spacing:-.028em;text-wrap:balance;margin-bottom:var(--gap)}.ok-headline em{font-style:italic;color:var(--accent-1)}.ok-lead{font-family:var(--font-display);font-size:clamp(18px,2.2vw,26px);line-height:1.4;max-width:60ch;color:var(--ink-soft);text-wrap:pretty}.now-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);padding:var(--gap-lg) 0;border-block:.5px solid color-mix(in oklab,var(--ink) 22%,transparent);margin-bottom:var(--gap-xl)}.now-card{display:flex;flex-direction:column;gap:8px}.now-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--accent-2)}.now-value{font-family:var(--font-display);font-size:20px;line-height:1.3}.now-meta{font-size:13px;color:var(--ink-soft)}.things-head{display:flex;align-items:baseline;gap:14px;margin-bottom:var(--gap-lg)}.things-head-num{font-family:var(--font-mono);font-size:12px;color:var(--accent-1);letter-spacing:.1em}.things-head-title{font-family:var(--font-display);font-size:clamp(32px,4vw,48px);letter-spacing:-.02em}.things-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--gap)}.thing{border:.5px solid color-mix(in oklab,var(--ink) 22%,transparent);border-radius:18px;padding:var(--gap);background:var(--card);display:flex;flex-direction:column;gap:10px;transition:transform .24s ease,background .24s ease}.thing:hover{transform:translateY(-3px);background:var(--bg-soft)}.thing-span-half{grid-column:span 3;min-height:240px}.thing-span-third{grid-column:span 2;min-height:200px}.thing-span-full{grid-column:span 6;min-height:180px;background:var(--accent-2);color:var(--bg);border-color:transparent}.thing-span-full:hover{background:var(--accent-2);filter:brightness(1.06)}.thing-tag{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}.thing-span-full .thing-tag{color:color-mix(in oklab,var(--bg) 65%,transparent)}.thing-name{font-family:var(--font-display);font-size:clamp(22px,2.4vw,32px);line-height:1.1;letter-spacing:-.015em;margin-top:auto}.thing-blurb{font-size:14px;color:var(--ink-soft);line-height:1.5}.thing-span-full .thing-blurb{color:color-mix(in oklab,var(--bg) 80%,transparent)}.ok-quote{padding:var(--gap-xl) 0;border-top:.5px solid color-mix(in oklab,var(--ink) 22%,transparent)}.ok-quote blockquote{font-family:var(--font-display);font-style:italic;font-size:clamp(28px,4vw,52px);line-height:1.15;letter-spacing:-.02em;margin:0;max-width:22ch;text-wrap:balance}.ok-quote blockquote:before{content:"“";color:var(--accent-1)}.ok-quote blockquote:after{content:"”";color:var(--accent-1)}.ok-quote .quote-attr{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.1em;margin-top:var(--gap);display:inline-flex;align-items:center;gap:10px}.ok-quote .quote-attr:before{content:"";width:24px;height:1px;background:var(--ink-soft)}.media-lists{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-lg);padding:var(--gap-xl) 0;border-top:.5px solid color-mix(in oklab,var(--ink) 22%,transparent)}.media-list-head{margin-bottom:var(--gap)}.media-list-head h3{font-family:var(--font-display);font-size:28px;letter-spacing:-.015em}.media-list-head p{color:var(--ink-soft);font-size:14px;margin:4px 0 0}.media-list li{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:baseline;padding:14px 0;border-top:.5px solid color-mix(in oklab,var(--ink) 14%,transparent)}.media-list li:last-child{border-bottom:.5px solid color-mix(in oklab,var(--ink) 14%,transparent)}.media-num{font-family:var(--font-mono);font-size:11px;color:var(--accent-1)}.media-title{font-family:var(--font-display);font-size:18px}.media-by{display:block;font-size:12px;color:var(--ink-soft);margin-top:2px}.media-meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);white-space:nowrap}.ok-foot{display:flex;justify-content:space-between;align-items:center;padding-top:var(--gap-lg);border-top:.5px solid color-mix(in oklab,var(--ink) 22%,transparent);font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.1em}.ok-foot-cta{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;background:var(--ink);color:var(--bg);border-radius:999px;font-family:var(--font-body);font-weight:500;font-size:14px;text-transform:none;letter-spacing:0;transition:background .2s ease,gap .2s ease}.ok-foot-cta:hover{background:var(--accent-1);gap:14px}@media (max-width: 920px){.now-grid{grid-template-columns:1fr;gap:var(--gap-lg)}.things-grid{grid-template-columns:repeat(2,1fr)}.thing-span-half,.thing-span-third,.thing-span-full{grid-column:span 2}.media-lists{grid-template-columns:1fr}}:root,[data-theme=light]{--bg: #f5efe6;--bg-soft: #ede4d3;--ink: #1a1a1a;--ink-soft: #5a5a52;--rule: #1a1a1a;--accent-1: #d97757;--accent-2: #2e5d4f;--card: #fbf6ec;--font-display: "Fraunces", Georgia, serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--density: 1;--gap-xs: calc(6px * var(--density));--gap-sm: calc(12px * var(--density));--gap: calc(20px * var(--density));--gap-lg: calc(48px * var(--density));--gap-xl: calc(96px * var(--density));--pad-x: clamp(20px, 5vw, 80px);--content-w: 1280px}[data-theme=dark]{--bg: #1a1815;--bg-soft: #252220;--ink: #f3ece1;--ink-soft: #a89e8f;--rule: #f3ece1;--accent-1: #e88a6e;--accent-2: #7ab59f;--card: #252220}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background .24s ease,color .24s ease}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}ul,ol{list-style:none;padding:0;margin:0}h1,h2,h3,h4,h5{margin:0;font-weight:400}button{cursor:pointer;font-family:inherit}::selection{background:var(--accent-1);color:var(--bg)}.main{max-width:var(--content-w);margin:0 auto;padding:0 var(--pad-x)}section{padding:var(--gap-xl) 0;border-top:.5px solid color-mix(in oklab,var(--ink) 18%,transparent)}section:first-child{border-top:0}.accent-1{color:var(--accent-1)}.accent-2{color:var(--accent-2)}.underline-wave{background-image:linear-gradient(var(--accent-1),var(--accent-1));background-position:0 100%;background-repeat:no-repeat;background-size:100% 6px;padding:0 2px}.stat-pop{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;background:linear-gradient(transparent 65%,color-mix(in oklab,var(--accent-1) 28%,transparent) 65%);padding:0 2px}.link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:500;padding:8px 0;border-bottom:1px solid var(--ink);transition:gap .2s ease,color .2s ease}.link-arrow:hover{gap:14px;color:var(--accent-1);border-color:var(--accent-1)}.link-arrow-soft{border-bottom-color:color-mix(in oklab,var(--ink) 35%,transparent);color:var(--ink-soft)}.link-arrow-soft:hover{color:var(--accent-2);border-color:var(--accent-2)}.section-head{display:flex;align-items:baseline;gap:18px;margin-bottom:var(--gap-lg);font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.12em}.section-num{color:var(--accent-1)}.section-title{color:var(--ink)}.section-meta{margin-left:auto;color:var(--ink-soft)}.section-resume{margin-left:auto;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--accent-2);color:var(--bg);border:none;font-family:var(--font-body);font-size:13px;font-weight:500;text-transform:none;letter-spacing:0;transition:background .2s ease,gap .2s ease,transform .2s ease}.section-resume:hover{background:var(--accent-1);gap:10px;transform:translateY(-1px)}@media (prefers-reduced-motion: reduce){.nav-dot,.rv-dot,.rv-bar-dot{animation:none}*{transition-duration:.01ms!important}}
