html:has(.cv){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#f6f4ef}html:has(.cv)[data-cv-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#111}.cv{--bg:#f6f4ef;--fg:#111;--mute:#6b6860;--line:#d8d4ca;--mark:#f0eee7;--serif:var(--font-serif), "Iowan Old Style", "Palatino Linotype", Palatino, serif;--sans:var(--font-cv-sans), ui-sans-serif, system-ui, sans-serif;background:var(--bg);min-height:100vh;color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;padding:0 1.5rem 6rem;font-size:16px;line-height:1.55}html[data-cv-theme=dark] .cv{--bg:#111;--fg:#f4f1ea;--mute:#9a968c;--line:#2a2926;--mark:#1c1b19}.cv a{color:inherit;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;text-decoration:none;transition:background-size .3s}.cv a:hover,.cv a:focus-visible{background-size:100% 1px}.cv .mute{color:var(--mute)}.cv,.cv .logo{transition:background-color .4s,color .4s,border-color .4s}.cv .shell{max-width:42rem;margin:0 auto}.cv .nav{justify-content:space-between;align-items:center;padding:1.35rem 0 2.4rem;font-size:.95rem;display:flex}.cv .nav-left,.cv .nav-right{align-items:center;gap:1.1rem;display:flex}.cv .theme{width:1.15rem;height:1.15rem;color:inherit;cursor:pointer;background:linear-gradient(90deg,#0000 50%,currentColor 50%);border:1.5px solid;border-radius:50%;padding:0;transition:transform .5s cubic-bezier(.6,-.3,.3,1.4)}html[data-cv-theme=dark] .cv .theme{transform:rotate(180deg)}.cv .hero-wrap{width:82%;max-width:34rem;margin:0 auto 2.6rem;position:relative}.cv .hero{aspect-ratio:3/4;object-fit:cover;width:100%;height:auto;transition:opacity .6s;display:block}.cv .hero-dark{opacity:0;height:100%;position:absolute;inset:0}html[data-cv-theme=dark] .cv .hero-light{opacity:0}html[data-cv-theme=dark] .cv .hero-dark{opacity:1}.cv .hero-frame{cursor:crosshair;transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .5s cubic-bezier(.2,.7,.2,1);position:relative;overflow:clip}.cv .hero-zoom{transform-origin:50% 52%;position:relative}.cv .glare{pointer-events:none;opacity:0;background:radial-gradient(circle at var(--gx,50%) var(--gy,50%), #ffffff59, transparent 45%);mix-blend-mode:soft-light;transition:opacity .4s;position:absolute;inset:0}.cv .hero-frame:hover .glare{opacity:1}.cv .readout{z-index:2;color:#3dff86;white-space:nowrap;pointer-events:none;background:#0a0c0ae0;border-radius:.3rem;padding:.3rem .55rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.7rem;animation:2.6s both readout;position:absolute;transform:translate(.7rem,-50%)}.cv .readout.left{transform:translate(calc(-100% - .7rem),-50%)}.cv .readout:before{content:"> ";opacity:.6}.cv .leds circle.hit{transform-box:fill-box;transform-origin:50%;transition:scale .2s;scale:2.2;opacity:1!important;animation:none!important}.cv .leds,.cv .scan{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.cv .leds circle,.cv .scan{opacity:0}.cv .place{color:var(--mute);margin:0;font-size:.92rem;position:absolute;bottom:-1.55rem;right:0}.cv .kicker{color:var(--mute);letter-spacing:.08em;text-transform:uppercase;margin:3.4rem 0 .6rem;font-size:.8rem}.cv .headline{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 1.1rem;font-size:clamp(1.45rem,3.8vw,1.85rem);font-style:italic;font-weight:400;line-height:1.15}.cv .bio{max-width:36rem;color:var(--mute);margin:0 0 1.6rem;font-size:1.05rem}.cv .status{color:var(--mute);flex-wrap:wrap;align-items:center;gap:0 .35rem;margin:0 0 .35rem;font-size:.95rem;display:flex}.cv .age-value{border:0;border-bottom:1px dashed var(--line);color:inherit;font:inherit;cursor:pointer;background:0 0;padding:0}.cv .age-value:hover{border-bottom-color:var(--fg);color:var(--fg)}.cv .milestone{color:var(--fg)}.cv .age{color:var(--mute);font-variant-numeric:tabular-nums;margin:0 0 4.2rem 1.1rem;font-size:.95rem}.cv .status[data-mood=off] .dot{--pulse:255, 179, 71;background:#e0a040}.cv .status[data-mood=asleep] .dot{--pulse:120, 120, 140;background:#8a8a99}.cv .dot{width:.45rem;height:.45rem;box-shadow:0 0 0 0 rgba(var(--pulse,58, 165, 100), .5);background:#3aa564;border-radius:50%;margin-right:.3rem;animation:2.4s ease-out infinite pulse}.cv .clock{font-variant-numeric:tabular-nums}.cv .blink{animation:2s step-end infinite blink}.cv .section{margin:0 0 3.4rem}.cv .section h2{margin:0 0 1.35rem;font-size:1.05rem;font-weight:500}.cv .roles{margin:0;padding:0;list-style:none;position:relative}.cv .roles:before{content:"";background:linear-gradient(var(--fg), var(--line));transform-origin:top;width:1px;position:absolute;top:1.1rem;bottom:1rem;left:calc(1.075rem - .5px)}.cv .roles>li{transition:opacity .25s;position:relative}.cv .logo{z-index:1;position:relative}.cv .t{cursor:default;border-radius:.2rem;transition:color .2s,background .2s}.cv .toolbox .t,.cv .tech .t{padding:0 .1rem}.cv .roles>li+li{margin-top:2rem}.cv .role-top{justify-content:space-between;align-items:center;gap:1rem;display:flex}.cv .company{align-items:center;gap:.75rem;font-weight:500;display:flex}.cv .logo{box-sizing:border-box;border:1px solid var(--line);background:var(--mark);width:2.15rem;height:2.15rem;color:var(--fg);border-radius:.45rem;flex-shrink:0;place-items:center;padding:.22rem;transition:transform .3s,border-color .3s;display:grid}.cv .roles>li:hover .logo{border-color:var(--fg);transform:translateY(-2px)rotate(-4deg)}.cv .logo img{object-fit:contain;width:100%;height:100%;display:block}.cv .logo-fallback{letter-spacing:-.02em;font-size:.72rem;font-weight:600}html[data-cv-theme=dark] .cv .logo img.mono{filter:invert()}.cv .dates{color:var(--mute);flex-shrink:0;font-size:.92rem}.cv .role-body{margin-left:2.9rem}.cv .role{margin:.15rem 0 .35rem;display:block}.cv .where{color:var(--mute);white-space:nowrap}.cv .line{max-width:32rem;color:var(--mute);margin:0}.cv details{max-width:32rem;color:var(--mute);margin-top:.4rem}.cv summary{cursor:pointer;width:fit-content;color:var(--fg);font-size:.9rem;list-style:none}.cv summary::-webkit-details-marker{display:none}.cv summary:after{content:" +";margin-left:.2rem;transition:transform .3s;display:inline-block}.cv details[open] summary:after{transform:rotate(45deg)}.cv details ul,.cv .notes{color:var(--mute);margin:.4rem 0 0;padding:0;list-style:none}.cv details li,.cv .notes li{padding-left:1rem;position:relative}.cv details li+li{margin-top:.3rem}.cv details li:before,.cv .notes li:before{content:"–";position:absolute;left:0}.cv details[open] ul{animation:.35s drop}.cv .tech{color:var(--mute);letter-spacing:.01em;margin:.55rem 0 0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.74rem}.cv .toolbox{margin:0}.cv .toolbox div{border-top:1px solid var(--line);grid-template-columns:6.5rem 1fr;gap:1rem;padding:.55rem 0;display:grid}.cv .toolbox div:last-child{border-bottom:1px solid var(--line)}.cv .toolbox dt{color:var(--mute);font-size:.85rem}.cv .toolbox dd{margin:0;font-size:.92rem}.cv .contact-line{max-width:30rem;color:var(--mute);margin:0 0 .9rem}.cv .mail{font-family:var(--serif);letter-spacing:-.01em;flex-wrap:wrap;align-items:baseline;gap:.4rem .9rem;margin:0;font-size:clamp(1.35rem,4.2vw,1.75rem);display:flex}.cv .copy{border:1px solid var(--line);color:var(--mute);font:inherit;font-family:var(--sans);cursor:pointer;background:0 0;border-radius:999px;padding:.2rem .6rem;font-size:.78rem;transition:color .2s,border-color .2s}.cv .copy:hover{border-color:var(--fg);color:var(--fg)}.cv .foot{color:var(--mute);flex-wrap:wrap;gap:.35rem 1.15rem;padding-top:.5rem;display:flex}.cv .foot a{color:var(--fg)}.cv .sig{margin-left:auto}.cv .term-open{color:var(--mute);cursor:pointer;background:0 0;border:0;padding:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:1.1rem;line-height:1}.cv .term-open:hover{color:var(--fg)}.cv .term{color:#d8f5e0;background:#0c0d0c;border:1px solid #2a2a2a;border-radius:.6rem;width:min(40rem,100vw - 2rem);max-height:min(28rem,70vh);padding:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.82rem;line-height:1.55;box-shadow:0 30px 80px #00000073}.cv .term::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000059}.cv .term[open]{animation:.25s cubic-bezier(.2,.7,.2,1) term}.cv .term-body{max-height:inherit;padding:1rem 1.1rem;overflow-y:auto}.cv .term p{white-space:pre-wrap;margin:0}.cv .term .cmd{color:#3dff86;margin-top:.5rem}.cv .term label{color:#3dff86;gap:.6ch;margin-top:.5rem;display:flex}.cv .term input{color:#fff;font:inherit;caret-color:#3dff86;background:0 0;border:0;outline:0;flex:1;padding:0}.cv :focus-visible{outline:1.5px solid var(--fg);outline-offset:3px;border-radius:2px}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@keyframes drop{0%{opacity:0;transform:translateY(-4px)}}@keyframes aisle{to{transform:scale(1.35)}}@keyframes trace{0%{transform:scaleY(0)}}@keyframes node{0%{border-color:var(--line);box-shadow:0 0 #0000}60%{border-color:var(--fg);box-shadow:0 0 0 4px var(--mark)}}@keyframes readout{0%{opacity:0;clip-path:inset(0 100% 0 0)}12%{opacity:1;clip-path:inset(0)}85%{opacity:1}to{opacity:0}}@keyframes term{0%{opacity:0;transform:translateY(8px)scale(.98)}}@keyframes boot{0%{filter:contrast(3)brightness(1.4);-webkit-mask-position:0 100%;mask-position:0 100%}to{filter:none;-webkit-mask-position:0 0;mask-position:0 0}}@keyframes scan{0%{opacity:1;top:0}90%{opacity:1}to{opacity:0;top:100%}}@keyframes led{0%,to{opacity:.9}40%{opacity:.15}55%{opacity:1}}@keyframes blink{50%{opacity:.2}}@keyframes pulse{70%,to{box-shadow:0 0 0 .45rem rgba(var(--pulse,58, 165, 100), 0)}}@media (prefers-reduced-motion:no-preference){.cv .hero{animation:1.5s steps(28,end) .25s both boot;-webkit-mask-image:linear-gradient(#000 45%,#0000 55%);mask-image:linear-gradient(#000 45%,#0000 55%);-webkit-mask-size:100% 220%;mask-size:100% 220%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.cv .scan{background:linear-gradient(90deg, transparent, var(--fg) 20% 80%, transparent);height:3px;animation:1.5s steps(28,end) .25s both scan;box-shadow:0 0 18px 4px #3dff8673}.cv .leds circle{animation:led var(--d) steps(1) var(--delay) infinite}@supports (animation-timeline:view()){.cv .hero-zoom{animation:linear both aisle;animation-timeline:view();animation-range:exit}.cv .roles:before{animation:linear both trace;animation-timeline:view();animation-range:entry 30% cover 75%}.cv .roles .logo{animation:linear both node;animation-timeline:view();animation-range:entry 60%}}.cv .hero-wrap:hover .leds circle{animation-duration:calc(var(--d) / 3)}.cv .rise{animation:.8s cubic-bezier(.2,.7,.2,1) both rise;animation-delay:calc(var(--i,0) * .11s)}@supports (animation-timeline:view()){.cv .reveal{animation:linear both rise;animation-timeline:view();animation-range:entry entry 60%}}}@media (prefers-reduced-motion:reduce){.cv *,.cv :before,.cv :after{transition:none!important;animation:none!important}}@media (max-width:520px){.cv{padding:0 1.1rem 4rem}.cv .role-top{flex-direction:column;align-items:flex-start;gap:.15rem}.cv .role-body{margin-left:0}.cv .roles:before{display:none}.cv .company{margin-left:0}}@media print{html:has(.cv){background:#fff}.cv{--bg:#fff;--fg:#000;--mute:#444;--line:#ccc;padding:0;font-size:11pt}.cv .hero-wrap,.cv .nav-right,.cv .roles:before,.cv .nav .mute,.cv .status,.cv .age,.cv .copy,.cv summary{display:none}.cv details::details-content{content-visibility:visible;display:contents}.cv .kicker{margin-top:0}.cv .section{margin-bottom:1.6rem}.cv .roles>li{break-inside:avoid}.cv *,.cv :before,.cv :after{transition:none!important;animation:none!important}}
