:root{--chrome-h: clamp(72px, 10vmin, 108px);--chrome-w: clamp(72px, 10vmin, 108px);--rule: #e6e4df;--rule-strong: #c9c7c1;--slide-px: clamp(28px, 5vmin, 72px);--slide-py: clamp(28px, 4.5vmin, 64px);--font-sans: "Inter Tight", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--ink: #111111;--ink-2: #4a4a47;--muted: #9a9892;--bg: #ffffff;--blue: #0c1a33;--blue-soft: #6b7a99;--theme-navy: 0;--chrome-bg: #ffffff;--chrome-ink: #111111;--chrome-ink-2: #4a4a47;--chrome-muted: #9a9892;--chrome-rule: #e6e4df;--ease: cubic-bezier(.65, 0, .35, 1);--xfade: .16s}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg);color:var(--ink);font-size:15px;line-height:1.55;font-weight:400;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color var(--xfade) var(--ease),color var(--xfade) var(--ease)}::selection{background:var(--blue);color:#fff}::-moz-selection{background:var(--blue);color:#fff}body[data-active="1"] ::selection,body[data-active="2"] ::selection{background:#fff;color:var(--blue)}body[data-active="1"] ::-moz-selection,body[data-active="2"] ::-moz-selection{background:#fff;color:var(--blue)}.theme-veil{position:fixed;inset:0;background:#0c1a33;opacity:0;z-index:0;pointer-events:none;will-change:opacity}a{color:inherit;text-decoration:none}.mono{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em}.upcase{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.site-header{background:transparent}.site-mark--bottom{background:transparent;color:var(--neutral-ink, #1a1a1a)}.site-sidebar{position:fixed;top:var(--chrome-h);left:0;bottom:0;width:var(--chrome-w);background:transparent;border-right:1px solid var(--rule-strong);z-index:20;display:grid;grid-template-rows:auto 1fr auto;align-items:center;justify-items:center;padding:28px 0;color:var(--chrome-ink);transition:background-color var(--xfade) var(--ease),color var(--xfade) var(--ease)}.site-sidebar .slide-dots{display:flex;flex-direction:column;align-items:center;gap:14px}.site-sidebar .slide-dots .ix{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--chrome-muted);transition:color var(--xfade) var(--ease)}.site-sidebar .slide-dots .pad{margin-top:4px}.site-sidebar .slide-dots .rail{position:relative;width:5px;height:clamp(64px,9vmin,100px);border-radius:999px;background:var(--chrome-rule);cursor:pointer;overflow:hidden;transition:background-color var(--xfade) var(--ease)}.site-sidebar .slide-dots .rail .fill{position:absolute;top:0;left:0;right:0;height:0;border-radius:999px;background:var(--chrome-ink);transition:height .45s var(--ease),background-color var(--xfade) var(--ease)}.site-sidebar .v-label{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--font-mono);font-size:11px;letter-spacing:.26em;text-transform:uppercase;font-weight:500;color:var(--chrome-ink);white-space:nowrap;transition:color var(--xfade) var(--ease)}.site-sidebar .v-label b{color:var(--chrome-ink);font-weight:500;transition:color var(--xfade) var(--ease)}.site-sidebar{padding-bottom:calc(var(--chrome-h) + 8px)}.slides{position:absolute;top:var(--chrome-h);left:var(--chrome-w);right:0;bottom:0;z-index:1;overflow-y:scroll;scroll-snap-type:y mandatory}.slides::-webkit-scrollbar{width:0}.slides{scrollbar-width:none}section.slide{position:relative;width:100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always;padding:var(--slide-py) var(--slide-px);display:flex;flex-direction:column;justify-content:space-between;gap:clamp(16px,3vmin,32px)}.hero-top{display:grid;grid-template-columns:1fr auto;align-items:start;gap:24px}.hero-top .crumb{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:inline-flex;gap:18px}.hero-top .crumb span:first-child{color:var(--ink)}.hero-top .ix{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--muted)}.hero-center{display:flex;flex-direction:column;gap:clamp(16px,2.8vmin,28px);margin:auto 0}.hero-eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:clamp(10px,1.1vmin,11.5px);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.hero-eyebrow:before{content:"";width:clamp(20px,2.6vmin,32px);height:1px;background:var(--ink);display:inline-block}.sec-tag{display:inline-flex;align-items:center;align-self:flex-start;width:fit-content;font-family:var(--font-mono);font-size:clamp(10px,1.1vmin,11.5px);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);border:1px solid color-mix(in srgb,currentColor 38%,transparent);border-radius:999px;padding:clamp(5px,.85vmin,8px) clamp(11px,1.5vmin,16px);line-height:1}.hero-title{color:var(--blue);font-size:clamp(44px,9.2vmin,120px);line-height:.95;letter-spacing:-.04em;font-weight:500;max-width:14ch;text-wrap:balance}.hero-title em{font-style:normal;color:var(--blue);font-weight:500}.hero-sub{display:grid;grid-template-columns:minmax(0,56ch);align-items:end;gap:64px}.hero-sub p{font-size:clamp(15px,1.85vmin,19px);line-height:1.5;color:var(--ink-2);max-width:48ch;text-wrap:pretty}.hero-sub p b{color:var(--ink);font-weight:500}section.slide.slide-hero[data-bg="0"]{--ink: color-mix(in srgb, #0c1a33, #ffffff calc(var(--theme-navy, 0) * 100%));--ink-2: color-mix(in srgb, #3f4d68, #ffffff calc(var(--theme-navy, 0) * 100%));--muted: color-mix(in srgb, #8790a6, #ffffff calc(var(--theme-navy, 0) * 100%))}section.slide.slide-hero .hero-title,section.slide.slide-hero .hero-title em{color:var(--ink)}section.slide.slide-skills[data-bg="1"],section.slide.slide-tools[data-bg="2"],section.slide.slide-cv[data-bg="0"],section.slide.slide-projects[data-bg="0"],section.slide.slide-pgrid[data-bg="1"]{--ink: color-mix(in srgb, #0c1a33, #e7ebf3 calc(var(--theme-navy, 0) * 100%));--ink-2: color-mix(in srgb, #3f4d68, #b3bccc calc(var(--theme-navy, 0) * 100%));--muted: color-mix(in srgb, #8790a6, #6d7891 calc(var(--theme-navy, 0) * 100%))}section.slide.slide-skills .skills-head h2,section.slide.slide-tools .tools-intro h2,section.slide.slide-cv .cv-head h2,section.slide.slide-projects .projects-head h2,section.slide.slide-pgrid .projects-head h2{color:var(--ink)}.hero-sub .cta-stack{display:flex;flex-direction:column;gap:8px;align-items:flex-end;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.hero-sub .cta-stack a{display:inline-flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--ink);transition:background .2s var(--ease),color .2s var(--ease)}.hero-sub .cta-stack a:hover{background:var(--ink);color:var(--bg)}.hero-sub .cta-stack a .arr{display:inline-block;transform:translateY(-1px)}.hero-ctas{position:absolute;left:0;right:0;bottom:0;height:var(--chrome-h);display:grid;grid-template-columns:repeat(4,1fr);background:rgba(255,255,255,max(0,.2 - .5 * var(--theme-navy, 0)));border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong)}@media(min-width:821px){.hero-ctas{border-bottom-color:transparent;transition:border-bottom-color var(--xfade) var(--ease)}body[data-scrolled] .hero-ctas{border-bottom-color:var(--rule-strong)}}.hero-ctas a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 clamp(18px,2.6vmin,32px);background:transparent;color:color-mix(in srgb,#0c1a33,#e7ebf3 calc(var(--theme-navy, 0) * 100%));text-decoration:none;position:relative;overflow:hidden;transition:background-color .2s var(--ease)}.hero-ctas a+a{border-left:1px solid color-mix(in srgb,#e6e4df,#1f2c47 calc(var(--theme-navy, 0) * 100%))}.hero-ctas .label{font-size:clamp(15px,1.9vmin,20px);letter-spacing:-.01em;font-weight:500}.hero-ctas .arr{width:clamp(22px,2.8vmin,32px);height:clamp(22px,2.8vmin,32px);color:inherit;transition:transform .25s var(--ease);flex:0 0 auto;display:block}.hero-ctas .arr svg{width:100%;height:100%;display:block}.hero-ctas a:hover{background:var(--blue);color:#fff}.hero-ctas a:hover .arr{color:#fff;transform:translate(4px,4px)}.slide-hero{padding-bottom:calc(var(--chrome-h) + clamp(16px,2.4vmin,28px));justify-content:center}.hero-waves{position:absolute;top:0;right:0;width:clamp(380px,58%,980px);height:100%;z-index:0;pointer-events:none;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 46%,#000 100%),linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 46%,#000 100%),linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.slide-hero .hero-center,.slide-hero .scroll-hint{position:relative;z-index:1}.slide-hero .hero-ctas{z-index:1}.scroll-hint{position:absolute;right:64px;bottom:56px;display:inline-flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.scroll-hint .line{width:56px;height:1px;background:currentColor;position:relative;overflow:hidden}.scroll-hint .line:after{content:"";position:absolute;inset:0;background:var(--ink);transform:translate(-100%);animation:hintLine 2.4s var(--ease) infinite}@keyframes hintLine{0%{transform:translate(-100%)}50%{transform:translate(0)}to{transform:translate(100%)}}section.slide.slide-skills{display:flex;flex-direction:column;justify-content:center;gap:clamp(20px,3.2vmin,40px)}section.slide.slide-skills>*{min-width:0}.skills-head{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:".   tag" "ttl copy";column-gap:clamp(32px,4.5vmin,64px);row-gap:clamp(10px,1.5vmin,16px);align-items:start;padding-bottom:clamp(14px,1.8vmin,22px)}.skills-head h2{font-size:clamp(28px,5.2vmin,64px);line-height:1;letter-spacing:-.03em;font-weight:500;color:var(--ink);text-wrap:balance;max-width:16ch}.skills-head h2 em{font-style:normal;color:var(--muted);font-weight:500}.skills-head .lead{display:flex;flex-direction:column;gap:clamp(8px,1.2vmin,14px)}.skills-head .lead p{font-size:clamp(14px,1.65vmin,17px);line-height:1.5;color:var(--ink-2);text-wrap:pretty;max-width:44ch}.skills-head h2,.cv-head h2,.projects-head h2,.contact-head h2{padding-bottom:clamp(16px,2.2vmin,28px)}.skills-head .lead,.cv-head .lead,.projects-head .lead,.contact-head .lead{align-items:flex-start}.skills-head .lead p,.cv-head .lead p,.projects-head .lead p,.contact-head .lead p{padding-bottom:clamp(16px,2.2vmin,28px);border-bottom:1px solid var(--rule)}.skills-text{column-count:2;column-gap:clamp(32px,4.5vmin,64px);font-size:clamp(14px,1.7vmin,17px);line-height:1.55;color:var(--ink-2);text-wrap:pretty;max-width:100%}.skills-text p{break-inside:avoid}.skills-text p+p{margin-top:.9em}.skills-text b{color:var(--ink);font-weight:500}.skills-cubes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(10px,1.6vmin,20px)}.skills-cubes>*{min-width:0}.cube{position:relative;aspect-ratio:1 / 1;width:100%;display:grid;place-items:center;color:var(--ink-2);border:1px solid var(--rule)}.cube.is-empty{border-style:dashed}.cube.is-empty .ph{color:var(--muted)}.cube.is-empty .mark{opacity:.5}.cube .ix{position:absolute;top:clamp(10px,1.4vmin,16px);left:clamp(10px,1.4vmin,16px);font-family:var(--font-mono);font-size:clamp(10px,1.1vmin,12px);letter-spacing:.06em;color:var(--muted)}.cube .ph{font-family:var(--font-sans);font-size:clamp(15px,1.95vmin,23px);font-weight:500;letter-spacing:-.01em;text-transform:none;color:var(--ink);max-width:100%;padding:0 clamp(10px,1.6vmin,18px);text-align:center;text-wrap:balance;line-height:1.2}.cube .mark{position:absolute;bottom:clamp(10px,1.4vmin,16px);right:clamp(10px,1.4vmin,16px);width:clamp(12px,1.4vmin,16px);height:clamp(12px,1.4vmin,16px);color:var(--muted)}.cube .mark svg{width:100%;height:100%;display:block}section.slide.slide-cv{display:flex;flex-direction:column;justify-content:center;gap:clamp(20px,3.2vmin,40px)}section.slide.slide-cv>*{min-width:0}.cv-head{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:".   tag" "ttl copy";column-gap:clamp(32px,4.5vmin,64px);row-gap:clamp(10px,1.5vmin,16px);align-items:start;padding-bottom:clamp(14px,1.8vmin,22px)}.cv-head h2{font-size:clamp(28px,5.2vmin,64px);line-height:1;letter-spacing:-.03em;font-weight:500;color:var(--ink);text-wrap:balance;max-width:16ch}.cv-head h2 em{font-style:normal;color:var(--muted);font-weight:500}.cv-head .lead{display:flex;flex-direction:column;gap:clamp(8px,1.2vmin,14px)}.cv-head .lead p{font-size:clamp(14px,1.65vmin,17px);line-height:1.5;color:var(--ink-2);text-wrap:pretty;max-width:44ch}.cv-list{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.cv-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,4.5vmin,64px);align-items:start;padding:clamp(16px,2.2vmin,26px) 0}.cv-left{display:grid;grid-template-columns:clamp(82px,9.5vmin,120px) minmax(0,1fr);gap:clamp(20px,3vmin,40px);align-items:start}.cv-row+.cv-row{border-top:1px solid var(--rule)}.cv-row .logo{width:clamp(44px,5.5vmin,62px);height:clamp(44px,5.5vmin,62px);min-width:0;max-width:none;border:1px solid var(--rule);display:grid;place-items:center;font-family:var(--font-mono);font-size:clamp(12px,1.4vmin,15px);letter-spacing:.06em;color:var(--ink-2);text-transform:uppercase;overflow:hidden}.cv-row .logo img{width:100%;height:100%;object-fit:contain;display:block}.cv-row .who{display:flex;align-items:center;gap:clamp(14px,1.8vmin,22px);min-width:0}.cv-row .yr{font-family:var(--font-mono);font-size:clamp(11px,1.2vmin,13px);letter-spacing:.06em;color:var(--muted);text-transform:uppercase;white-space:nowrap;padding-top:clamp(8px,1.1vmin,14px)}.cv-row .role{font-size:clamp(16px,2vmin,22px);letter-spacing:-.015em;font-weight:500;color:var(--ink);line-height:1.2}.cv-row .role .at{display:block;color:var(--muted);font-weight:400;letter-spacing:0;font-size:.82em;margin-top:.2em}.cv-row .blurb{font-size:clamp(13px,1.55vmin,16px);line-height:1.45;color:var(--ink-2);max-width:44ch;text-wrap:pretty}.cv-foot{display:flex;justify-content:flex-end}.cv-cta{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;padding:clamp(9px,1.2vmin,14px) clamp(28px,3.4vmin,46px);border:1px solid var(--ink-2);border-radius:999px;background:transparent;color:var(--ink-2);text-decoration:none;font-size:clamp(15px,1.8vmin,19px);letter-spacing:-.005em;font-weight:500;transition:color .35s var(--ease),border-color .35s var(--ease)}.cv-cta:before{content:"";position:absolute;inset:0;background:var(--ink-2);transform:scaleX(0);transform-origin:left center;transition:transform .45s var(--ease);z-index:-1}.cv-cta:hover{color:var(--bg);border-color:var(--ink-2)}.cv-cta:hover:before{transform:scaleX(1)}section.slide.slide-contact{display:flex;flex-direction:column;justify-content:center;gap:clamp(20px,3.4vmin,44px);padding-bottom:calc(var(--chrome-h) + clamp(16px,2.4vmin,28px))}section.slide.slide-contact>*{min-width:0}.contact-waves{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;-webkit-mask-image:radial-gradient(106% 64% at 50% 70%,#000 0,#000 22%,transparent 58%),linear-gradient(to top,transparent 0,#000 26%);mask-image:radial-gradient(106% 64% at 50% 70%,#000 0,#000 22%,transparent 58%),linear-gradient(to top,transparent 0,#000 26%);-webkit-mask-composite:source-in;mask-composite:intersect}.slide-contact .contact-head,.slide-contact .contact-mail,.slide-contact .contact-socials{position:relative;z-index:1}.slide-contact .contact-footer{z-index:1}.contact-head{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:".    tag" "ttl  copy";column-gap:clamp(32px,4.5vmin,64px);row-gap:clamp(10px,1.5vmin,16px);align-items:start;padding-bottom:clamp(14px,1.8vmin,22px)}.contact-head h2{grid-area:ttl;font-size:clamp(28px,5.2vmin,64px);line-height:1;letter-spacing:-.03em;font-weight:500;color:var(--ink);text-wrap:balance;max-width:16ch}.contact-head h2 em{font-style:normal;color:var(--muted);font-weight:500}.contact-head .lead{display:contents}.contact-head .lead .sec-tag{grid-area:tag;justify-self:start;align-self:start}.contact-head .lead p{grid-area:copy;font-size:clamp(14px,1.65vmin,17px);line-height:1.5;color:var(--ink-2);text-wrap:pretty;max-width:44ch}.contact-mail{display:inline-flex;align-items:center;gap:clamp(14px,2vmin,24px);color:var(--ink);text-decoration:none;font-size:clamp(34px,7vmin,96px);line-height:1;letter-spacing:-.035em;font-weight:500;align-self:flex-start;position:relative;padding-bottom:clamp(8px,1.2vmin,16px)}.contact-mail:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;opacity:.35;transition:opacity .2s var(--ease),height .2s var(--ease)}.contact-mail:hover:after{opacity:1;height:2px}.contact-mail .arr{width:clamp(26px,3.4vmin,44px);height:clamp(26px,3.4vmin,44px);color:var(--ink-2);flex:0 0 auto;transform:translateY(.1em);transition:transform .25s var(--ease),color .2s var(--ease)}.contact-mail .arr svg{width:100%;height:100%;display:block}.contact-mail:hover .arr{color:var(--ink);transform:translate(6px,.1em)}.contact-socials{display:flex;gap:clamp(8px,1.2vmin,14px);flex-wrap:wrap;align-self:flex-start;margin-bottom:clamp(96px,23vmin,260px)}.contact-socials a{width:clamp(56px,8vmin,88px);height:clamp(56px,8vmin,88px);display:grid;place-items:center;border:1px solid var(--rule);color:var(--ink);transition:background-color .2s var(--ease),color .2s var(--ease)}.contact-socials a:hover{background:var(--ink);color:var(--neutral-bg)}.contact-socials a svg{width:44%;height:44%;display:block}@media(min-width:821px){.contact-waves{-webkit-mask-image:radial-gradient(102% 84% at 50% 84%,#000 0,#000 24%,transparent 68%),linear-gradient(to top,transparent 0,#000 20%);mask-image:radial-gradient(102% 84% at 50% 84%,#000 0,#000 24%,transparent 68%),linear-gradient(to top,transparent 0,#000 20%)}.contact-socials{margin-bottom:0}}.contact-footer{position:absolute;left:0;right:0;bottom:0;height:var(--chrome-h);display:grid;grid-template-columns:1fr auto auto;align-items:center;padding:0 clamp(18px,2.6vmin,32px);gap:clamp(16px,2.6vmin,32px);background:#0c1a3333;border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong);font-family:var(--font-mono);font-size:clamp(10.5px,1.15vmin,12.5px);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.contact-footer .name{display:inline-flex;align-items:baseline;gap:10px;color:var(--ink);font-weight:500}.contact-footer .name span{color:var(--muted);font-weight:400}.contact-footer a{color:var(--ink-2);text-decoration:none;transition:color .2s var(--ease);padding:4px 0}.contact-footer a:hover{color:var(--ink)}section.slide.slide-projects{display:flex;flex-direction:column;justify-content:center;gap:clamp(20px,3.2vmin,40px)}section.slide.slide-projects>*{min-width:0}.projects-head{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:".   tag" "ttl copy";column-gap:clamp(32px,4.5vmin,64px);row-gap:clamp(10px,1.5vmin,16px);align-items:start;padding-bottom:clamp(14px,1.8vmin,22px)}.projects-head h2{font-size:clamp(28px,5.2vmin,64px);line-height:1;letter-spacing:-.03em;font-weight:500;color:var(--ink);text-wrap:balance;max-width:16ch}.projects-head h2 em{font-style:normal;color:var(--muted);font-weight:500}.projects-head .lead{display:flex;flex-direction:column;gap:clamp(8px,1.2vmin,14px)}.projects-head .lead p{font-size:clamp(14px,1.65vmin,17px);line-height:1.5;color:var(--ink-2);text-wrap:pretty;max-width:44ch}.skills-head h2,.cv-head h2,.projects-head h2{grid-area:ttl}.skills-head .lead,.cv-head .lead,.projects-head .lead{display:contents}.skills-head .sec-tag,.cv-head .sec-tag,.projects-head .sec-tag{grid-area:tag;justify-self:start;align-self:start}.skills-head .lead p,.cv-head .lead p,.projects-head .lead p{grid-area:copy}.projects-stack{display:flex;flex-direction:column}.carousel.carousel--logos{padding:calc(clamp(12px,1.8vmin,22px)/2) 0;border-top:0!important}.carousel.carousel--logos .track{gap:clamp(12px,1.8vmin,22px)}.carousel--logos .viewport{overflow:hidden;position:relative;mask-image:linear-gradient(to right,transparent 0,#000 6%,#000 94%,transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0,#000 6%,#000 94%,transparent 100%)}.carousel--logos .track{display:flex;align-items:center;width:max-content;animation:marquee var(--mq-dur, 50s) linear infinite}.carousel--logos .track.track--reverse{animation-direction:reverse}.projects-stack .carousel--logos:nth-child(1) .logo,.projects-stack .carousel--logos:nth-child(3) .logo{width:clamp(200px,22vmin,280px);min-width:0}.logo{flex:0 0 auto;height:clamp(110px,14.5vmin,168px);min-width:clamp(170px,20vmin,250px);display:flex;align-items:center;justify-content:center;gap:clamp(10px,1.2vmin,14px);padding:0 clamp(20px,2.4vmin,32px);color:var(--ink);font-family:var(--font-sans);font-size:clamp(18px,2.3vmin,26px);font-weight:500;letter-spacing:-.005em;white-space:nowrap;border:1px solid var(--rule)}.logo .mk{width:clamp(20px,2.8vmin,30px);height:clamp(20px,2.8vmin,30px);flex:0 0 auto;color:currentColor}.logo .mk svg{width:100%;height:100%;display:block}.logo .tx{line-height:1}.logo.serif{font-family:Georgia,Times New Roman,serif;font-style:italic;font-weight:500;letter-spacing:-.01em}.logo.mono{font-family:var(--font-mono);font-size:clamp(13px,1.6vmin,17px);letter-spacing:.08em;text-transform:uppercase;font-weight:500}.logo.bold{font-weight:700;letter-spacing:-.02em}.logo.thin{font-weight:300;letter-spacing:.02em}.logo.caps{text-transform:uppercase;letter-spacing:.06em;font-size:clamp(14px,1.8vmin,19px)}section.slide.slide-pgrid{display:flex;flex-direction:column;justify-content:center;gap:clamp(20px,3.2vmin,40px)}section.slide.slide-pgrid>*{min-width:0}.pgrid{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(10px,1.6vmin,20px)}.pgrid-cell{position:relative;overflow:hidden;isolation:isolate;border:1px solid var(--rule-strong);aspect-ratio:1 / 1;display:grid;place-items:center;padding:clamp(10px,1.6vmin,20px);color:var(--ink-2);transition:color .35s var(--ease)}.pgrid-cell:before{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left center;transition:transform .45s var(--ease);z-index:-1}.pgrid-cell:hover{color:#0c1a33}.pgrid-cell:hover:before{transform:scaleX(1)}.pgrid .cell-arr{position:absolute;bottom:clamp(7px,1vmin,12px);right:clamp(7px,1vmin,12px);width:clamp(20px,2.4vmin,28px);height:clamp(20px,2.4vmin,28px);color:inherit;opacity:.32;transform:translate(-3px);transition:opacity .2s var(--ease),transform .25s var(--ease);pointer-events:none}.pgrid .cell-arr svg{width:100%;height:100%;display:block}.pgrid-cell:hover .cell-arr{opacity:1;transform:translate(0)}.pgrid .logo{border:0;min-width:0;height:auto;width:auto;padding:0;color:inherit;flex-direction:column;gap:clamp(7px,1vmin,12px);text-align:center;white-space:normal;font-size:clamp(13px,1.5vmin,19px)}section.slide.slide-tools{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vmin,88px);align-items:center}section.slide.slide-tools>*{min-width:0}.carousel,.carousel .viewport{min-width:0}.tools-intro{display:flex;flex-direction:column;gap:clamp(16px,2.4vmin,28px)}.tools-intro h2{font-size:clamp(28px,5.2vmin,64px);line-height:1;letter-spacing:-.03em;font-weight:500;color:var(--ink);text-wrap:balance;max-width:16ch}.tools-intro h2 em{font-style:normal;color:var(--muted);font-weight:500}.tools-intro p{font-size:clamp(15px,1.85vmin,19px);line-height:1.55;color:var(--ink-2);text-wrap:pretty;max-width:44ch}.tools-stack{display:flex;flex-direction:column;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.carousel{display:flex;flex-direction:column;gap:clamp(10px,1.4vmin,16px);padding:clamp(14px,2vmin,22px) 0;position:relative}.carousel+.carousel{border-top:1px solid var(--rule)}.carousel .lbl{display:inline-flex;align-items:baseline;gap:10px;font-family:var(--font-mono);font-size:clamp(10px,1.1vmin,12px);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.carousel .lbl .ix{color:var(--muted);font-size:clamp(9.5px,1vmin,11px)}.carousel .lbl .nm{color:var(--ink);font-weight:500;font-size:clamp(11px,1.2vmin,13px);letter-spacing:.04em}.carousel .viewport{overflow:hidden;position:relative;mask-image:linear-gradient(to right,transparent 0,#000 6%,#000 94%,transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0,#000 6%,#000 94%,transparent 100%)}.carousel .track{display:flex;gap:clamp(12px,1.8vmin,22px);width:max-content;animation:marquee var(--mq-dur, 40s) linear infinite}.carousel:not(.carousel--logos):hover .track{animation-play-state:paused}@keyframes marquee{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}.tile{flex:0 0 auto;width:clamp(64px,9vmin,108px);aspect-ratio:1 / 1;border:1px solid var(--rule);display:grid;place-items:center;color:var(--ink);position:relative;background:transparent}.tile svg{width:52%;height:52%;display:block}.tile .name{position:absolute;bottom:4px;left:4px;right:4px;font-family:var(--font-mono);font-size:clamp(8px,.95vmin,10px);letter-spacing:.04em;color:var(--muted);text-align:center;text-transform:uppercase;pointer-events:none;display:none}.slide-tools .carousel .track{animation:none!important;width:max-content}.slide-tools .carousel:hover .track{animation:none!important}.slide-tools .carousel .viewport{overflow-x:auto;overflow-y:hidden;cursor:grab;scrollbar-width:none;touch-action:pan-y;-webkit-mask-image:linear-gradient(to right,#000 0,#000 90%,transparent 100%);mask-image:linear-gradient(to right,#000 0,#000 90%,transparent 100%)}.slide-tools .carousel .viewport::-webkit-scrollbar{height:0;width:0}.slide-tools .carousel .viewport.dragging{cursor:grabbing}.slide-tools .carousel .viewport.dragging .track{pointer-events:none}body.tools-dragging,body.tools-dragging *{user-select:none!important;-webkit-user-select:none!important}.tools-tip{position:fixed;z-index:60;pointer-events:none;background:var(--ink);color:var(--bg);font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;padding:6px 10px;white-space:nowrap;opacity:0;transform:translate(-50%,-100%);transition:opacity .14s var(--ease)}.tools-tip:after{content:"";position:absolute;left:50%;top:100%;width:7px;height:7px;background:var(--ink);transform:translate(-50%,-50%) rotate(45deg)}.tools-tip.show{opacity:1}body[data-active="0"]{background-color:#fff;color:#111;--ink: #111111;--ink-2: #4a4a47;--muted: #9a9892;--chrome-bg: #ffffff;--chrome-ink: #111111;--chrome-ink-2: #4a4a47;--chrome-muted: #9a9892;--mark-bg: #0c1a33;--mark-ink: #ffffff}body[data-active="1"],body[data-active="2"]{color:#e7ebf3;--ink: #e7ebf3;--ink-2: #b3bccc;--muted: #6d7891;--bg: #0c1a33;--chrome-bg: #0c1a33;--chrome-ink: #e7ebf3;--chrome-ink-2: #b3bccc;--chrome-muted: #6d7891;--mark-bg: #0c1a33;--mark-ink: #e7ebf3}body{--rule-strong: color-mix(in srgb, #c9c7c1, #2f3e5e calc(var(--theme-navy, 0) * 100%));--chrome-rule: color-mix(in srgb, #e6e4df, #1f2c47 calc(var(--theme-navy, 0) * 100%));--rule: color-mix(in srgb, #e6e4df, #1f2c47 calc(var(--theme-navy, 0) * 100%));--neutral-bg: color-mix(in srgb, #ffffff, #0c1a33 calc(var(--theme-navy, 0) * 100%));--neutral-ink: color-mix(in srgb, #111111, #e7ebf3 calc(var(--theme-navy, 0) * 100%))}section.slide[data-bg="0"]{--ink: #0c1a33;--ink-2: #3f4d68;--muted: #8790a6}@media(max-width:820px){:root{--chrome-h: 60px;--chrome-w: 60px}.site-sidebar,.theme-veil{display:none}section.slide[data-bg="0"]{background:#fff;--theme-navy: 0}section.slide[data-bg="1"],section.slide[data-bg="2"]{background:#0c1a33;--theme-navy: 1}section.slide{--rule: color-mix(in srgb, #e6e4df, #1f2c47 calc(var(--theme-navy, 0) * 100%));--rule-strong: color-mix(in srgb, #c9c7c1, #2f3e5e calc(var(--theme-navy, 0) * 100%));--chrome-rule: color-mix(in srgb, #e6e4df, #1f2c47 calc(var(--theme-navy, 0) * 100%));--neutral-bg: color-mix(in srgb, #ffffff, #0c1a33 calc(var(--theme-navy, 0) * 100%));--neutral-ink: color-mix(in srgb, #111111, #e7ebf3 calc(var(--theme-navy, 0) * 100%))}section.slide{color:var(--ink)}.contact-head{grid-template-columns:1fr;grid-template-areas:"tag" "ttl" "copy";gap:clamp(12px,3vw,20px)}.contact-head h2{max-width:none}section.slide.slide-contact{--ink: #e7ebf3;--ink-2: #b3bccc;--muted: #6d7891}.slide-contact .contact-footer{position:static;height:auto;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;text-align:center;gap:clamp(6px,2vw,12px) clamp(16px,5vw,28px);padding:clamp(16px,5vw,24px) clamp(20px,5.5vw,32px);margin-top:clamp(180px,48vw,340px)}.slide-contact .contact-footer .name{flex-basis:100%;justify-content:center}.slide-contact .contact-waves{bottom:auto;top:clamp(120px,32vw,220px);height:clamp(420px,70dvh,660px)}.site-mark .mark-svg{width:30px}.site-header{background:#fff;color:#111;border-bottom-color:#c9c7c1;--chrome-ink: #111111;--chrome-ink-2: #4a4a47;--chrome-muted: #9a9892;--chrome-rule: #e6e4df}.slides{left:0;scroll-snap-type:none;overflow-x:hidden;-webkit-overflow-scrolling:touch}section.slide{height:auto;min-height:calc(100dvh - var(--chrome-h));scroll-snap-align:none;scroll-snap-stop:normal;justify-content:flex-start;padding:clamp(28px,7vw,44px) clamp(20px,5.5vw,32px);gap:clamp(22px,6vw,36px)}section.slide:not(.slide-hero){min-height:0;padding-top:clamp(44px,12vw,76px);padding-bottom:clamp(44px,12vw,76px)}section.slide[data-bg="0"]+section.slide[data-bg="0"],section.slide[data-bg="1"]+section.slide[data-bg="1"],section.slide[data-bg="1"]+section.slide[data-bg="2"],section.slide[data-bg="2"]+section.slide[data-bg="1"],section.slide[data-bg="2"]+section.slide[data-bg="2"]{border-top:1px solid color-mix(in srgb,#c9c7c1,#2f3e5e calc(var(--theme-navy, 0) * 100%))}.scroll-hint{display:none}section.slide.slide-hero{padding:clamp(28px,7vw,44px) 0 0}.slide-hero .hero-center{order:0;position:relative;z-index:1;margin:0;padding:0 clamp(20px,5.5vw,32px)}.hero-sub{grid-template-columns:1fr;gap:20px}.hero-sub .cta-stack{align-items:flex-start}.slide-hero .hero-waves{order:1;position:relative;inset:auto;width:100%;height:auto;flex:1 1 auto;min-height:clamp(150px,26vh,290px);z-index:0;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 13%,#000 87%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 14%,#000 64%,transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 13%,#000 87%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 14%,#000 64%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.hero-ctas{order:2;position:relative;z-index:1;background:rgba(255,255,255,max(0,.4 - .5 * var(--theme-navy, 0)));margin-top:calc(-1*clamp(64px,17vw,104px));left:auto;right:auto;bottom:auto;height:auto;grid-template-columns:1fr 1fr;border-top:1px solid color-mix(in srgb,#e6e4df,#1f2c47 calc(var(--theme-navy, 0) * 100%));border-bottom:1px solid color-mix(in srgb,#e6e4df,#1f2c47 calc(var(--theme-navy, 0) * 100%))}.hero-ctas a{padding:clamp(15px,4.4vw,22px) clamp(20px,5.5vw,32px);min-height:60px}.hero-ctas a+a{border-left:0}.hero-ctas a:nth-child(odd){border-right:1px solid color-mix(in srgb,#e6e4df,#1f2c47 calc(var(--theme-navy, 0) * 100%))}.hero-ctas a:nth-child(1),.hero-ctas a:nth-child(2){border-bottom:1px solid color-mix(in srgb,#e6e4df,#1f2c47 calc(var(--theme-navy, 0) * 100%))}section.slide.slide-skills{justify-content:flex-start}.skills-head{grid-template-columns:1fr;grid-template-areas:"tag" "ttl" "copy";gap:clamp(12px,3.5vw,20px);align-items:start}.skills-text{column-count:1}.skills-cubes{grid-template-columns:repeat(2,1fr)}.skills-head h2,.tools-intro h2,.cv-head h2,.projects-head h2,.pgrid .projects-head h2,.contact-head h2{font-size:clamp(34px,9.4vw,42px);line-height:1.04}section.slide.slide-tools{display:flex;flex-direction:column;align-items:stretch}.cv-head{grid-template-columns:1fr;grid-template-areas:"tag" "ttl" "copy";gap:clamp(12px,3.5vw,20px);align-items:start}.cv-row{grid-template-columns:1fr;gap:clamp(12px,3.4vw,18px)}.cv-left{display:flex;flex-direction:column;gap:clamp(12px,3vw,16px)}.cv-row .yr{padding-top:0}.cv-row .blurb{max-width:none}.projects-head{grid-template-columns:1fr;grid-template-areas:"tag" "ttl" "copy";gap:clamp(12px,3.5vw,20px);align-items:start}section.slide.slide-pgrid{justify-content:flex-start}.pgrid{grid-template-columns:repeat(2,1fr)}body.menu-open .slides{overflow:hidden}}
