.gate{display:none}html.gate-pending .gate,html.gate-opening .gate{position:fixed;inset:0;z-index:900;display:grid;cursor:default;place-items:center;--heat: 0;--gate-btn: min(62vmin, 560px)}html.gate-pending:not(.gate-ready) .gate{animation:gate-give-up .01s linear 8s forwards}html.gate-pending:not(.gate-ready) .page{animation:page-give-up .01s linear 8s forwards}html.gate-pending:not(.gate-ready) .uv-indicator-wrap{animation:indicator-give-up .01s linear 8s forwards}@keyframes gate-give-up{to{opacity:0;visibility:hidden;pointer-events:none}}@keyframes page-give-up{to{visibility:visible}}@keyframes indicator-give-up{to{opacity:1}}html.gate-pending .page{visibility:hidden}html.gate-pending .uv-indicator-wrap,html.gate-opening:not(.gate-landed) .uv-indicator-wrap{opacity:0}html.gate-pending .uv-toggle{pointer-events:none}.uv-indicator-wrap{transition:opacity .25s var(--ease)}.gate__black{position:absolute;inset:0;background:var(--bg)}.gate__button{position:relative;display:grid;width:min(62vmin,560px);aspect-ratio:1;padding:0;place-items:center;border:0;border-radius:50%;background:none;cursor:default;outline:none;-webkit-tap-highlight-color:transparent}.gate__button:focus-visible{box-shadow:0 0 0 2px var(--muted)}.gate__fly{position:relative;display:block;cursor:pointer;width:46%;height:46%;will-change:transform;transform-origin:50% 50%}html.gate-pending body.uv-cursor .gate,html.gate-pending body.uv-cursor .gate *{cursor:default!important}html.gate-pending body.uv-cursor .gate__fly,html.gate-pending body.uv-cursor .gate__fly *{cursor:pointer!important}.gate__canvas{position:absolute;left:-100%;top:-100%;width:300%;height:300%;pointer-events:none}.gate__fly.has-canvas .gate__canvas{animation:gate-light-in .6s cubic-bezier(.2,.6,.2,1) both}@keyframes gate-light-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.gate__fly.has-canvas .gate__canvas{animation:none}}.gate__fallback{display:none;position:absolute;inset:0;border-radius:50%;background:radial-gradient(closest-side,#1d222a,#1b202800)}.gate__fly.no-canvas .gate__fallback{display:block}.gate__fallback:after{content:"";position:absolute;inset:-20%;border-radius:50%;background:radial-gradient(closest-side,#ffcc46e6,#ff700c8c 55%,#d7230500);opacity:var(--heat)}@media(prefers-contrast:more),(forced-colors:active){.gate__fallback{background:radial-gradient(closest-side,#5d636d,#5d636d00)}}.gate__hint{display:none}html.is-touch .gate{touch-action:none;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}html.is-touch .gate__button{width:min(88vmin,560px)}html.is-touch .gate__hint{position:absolute;left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 22px);display:block;margin:0;font-size:13px;line-height:1.4;letter-spacing:.01em;text-align:center;color:var(--text);opacity:.45;pointer-events:none;user-select:none;-webkit-user-select:none}.hero{min-height:100svh;position:relative;display:grid;align-items:center;padding:64px 0 88px}.hero-header{position:absolute;inset:0;z-index:2;pointer-events:none}.hero-header>*{pointer-events:auto}.hero-title{margin:0;font:inherit}.name{position:absolute;top:16svh;left:0;margin:0;max-width:560px;font-size:var(--name-size);font-weight:500;line-height:.94;letter-spacing:-.065em}.hero-nav{position:absolute;right:0;top:57svh;display:flex;flex-direction:column;align-items:stretch;gap:6px;user-select:none}.hero-nav a{color:var(--text);opacity:calc(.4 + .6 * var(--near, 0));font-size:clamp(14px,1.05vw,16px);line-height:1.4;letter-spacing:-.02em;text-decoration:none;text-rendering:geometricPrecision;transform:translateY(var(--shift, 0px)) scale(var(--grow, 1));transform-origin:100% 50%;padding:2px 0;display:block;text-align:right}.hero-nav a:hover,.hero-nav a:focus-visible{opacity:1;transition:opacity .25s var(--ease)}.hero-nav a:focus-visible{outline:none;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em}.hero-material-container{position:absolute;top:-15vh;bottom:-15vh;left:50%;transform:translate(-50%);width:100vw;z-index:1;pointer-events:none;overflow:hidden;display:flex;align-items:center;justify-content:center}.hero-material-canvas{width:100%;height:100%;display:block}@media(max-width:720px){:root{--name-size: clamp(2.75rem, 12vw, 4rem);--hero-controls-width: 142px}.hero{min-height:90svh;padding-top:42px}.hero-nav{top:60svh;font-size:18px}}.about-copy{margin:0;font-size:clamp(22px,2.25vw,32px);line-height:1.3;letter-spacing:-.035em;text-wrap:pretty}@media(max-width:720px){.about-copy{font-size:21px;line-height:1.4}}@media(max-width:380px){.about-copy{font-size:19px}}.story{--ink: var(--text);--ink-lead: #fff;--reveal: 1.05s;--u: min(calc(100svh / 900), calc(100vw / 1440));--fs: clamp(15px, calc(var(--u) * 17.5), 21px);--fs-lead: clamp(20px, calc(var(--u) * 27), 34px);--peek-show: clamp(120px, 12vw, 190px);position:relative;z-index:2;width:100vw;margin-left:calc(50% - 50vw);padding:130px max(24px,calc((100vw - 1240px)/2)) 0;scroll-margin-top:0;overflow-anchor:none;overflow-x:clip;color:var(--ink)}.story-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.story-stage,.story-canvas,.story-track{display:block}.story-thread,.story-end{display:none}.story-about{max-width:590px}.story-chapter{margin:clamp(72px,12vh,130px) 0 0}.story-text{max-width:560px;margin:0 0 40px}.story-text p{margin:0;font-size:var(--fs);line-height:1.62;letter-spacing:-.005em;text-wrap:pretty}.story-text--lead p{font-size:var(--fs-lead);line-height:1.32;letter-spacing:-.03em;color:var(--ink-lead)}.story-photo{margin:0 0 48px;width:min(100%,calc(var(--w) * 1px));aspect-ratio:calc(var(--w) / var(--h))}.story-photo__in,.story-photo img,.story-photo video{display:block;width:100%;height:100%}.story-photo img,.story-photo video{object-fit:cover;filter:saturate(.55) contrast(.9) brightness(var(--dim, .45))}.story-photo__in{position:relative;-webkit-mask-image:var(--mask);mask-image:var(--mask);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.story-photo__in:after{content:"";position:absolute;inset:0;background:#080a10;opacity:.2;pointer-events:none}.is-h{padding:0;height:100svh;min-height:100svh}.is-h .story-anchor{position:absolute;top:0;left:0;width:1px;height:1px}.is-h .story-stage{position:relative;height:100%;overflow:hidden;cursor:grab;touch-action:pan-y}.is-h.is-engaged .story-stage{touch-action:none}.is-h.is-away .story-stage{--edge-w: clamp(96px, 10vw, 200px);-webkit-mask-image:linear-gradient(90deg,rgb(0 0 0 / calc(1 - var(--edge, 1))) 0,rgb(0 0 0 / calc(1 - var(--edge, 1) * .844)) calc(var(--edge-w) * .25),rgb(0 0 0 / calc(1 - var(--edge, 1) * .5)) calc(var(--edge-w) * .5),rgb(0 0 0 / calc(1 - var(--edge, 1) * .156)) calc(var(--edge-w) * .75),#000 var(--edge-w));mask-image:linear-gradient(90deg,rgb(0 0 0 / calc(1 - var(--edge, 1))) 0,rgb(0 0 0 / calc(1 - var(--edge, 1) * .844)) calc(var(--edge-w) * .25),rgb(0 0 0 / calc(1 - var(--edge, 1) * .5)) calc(var(--edge-w) * .5),rgb(0 0 0 / calc(1 - var(--edge, 1) * .156)) calc(var(--edge-w) * .75),#000 var(--edge-w))}.is-h .story-stage.is-dragging{cursor:grabbing;user-select:none}.is-h .story-canvas{position:absolute;left:0;top:50%;width:100%;height:calc(900 * var(--u));transform:translateY(-50%)}.is-h .story-track{position:absolute;left:0;top:0;width:calc(var(--tw) * var(--u));height:100%;will-change:transform}.is-h .story-chapter{display:contents}.is-h .story-about,.is-h .story-text,.is-h .story-photo,.is-h .story-end{position:absolute;margin:0}.is-h .story-about{left:max(48px,calc((100vw - 1240px)/2));top:calc(130 * var(--u));width:min(590px,42vw);max-width:none}.is-h .story-about,.is-h .story-text{z-index:2;text-shadow:0 0 14px rgba(8,9,11,.95),0 0 30px rgba(8,9,11,.85)}.is-h .story-text:before{content:"";position:absolute;z-index:-1;inset:-34px -48px;background:radial-gradient(closest-side,rgba(8,9,11,.72) 55%,transparent);pointer-events:none}.is-h .story-text{left:calc(var(--x) * var(--u));top:calc(var(--y) * var(--u));width:calc(var(--w) * var(--u))}.is-h .story-photo{z-index:0;left:calc(var(--x) * var(--u));top:calc(var(--y) * var(--u));width:calc(var(--w) * var(--u));height:calc(var(--h) * var(--u));aspect-ratio:auto;will-change:transform;pointer-events:none}.is-h .story-photo--peek{left:calc(100vw - var(--peek-show));--peek-gap: calc(50svh - 450 * var(--u) + var(--y) * var(--u))}.is-h:not(.is-engaged) .story-photo--peek{pointer-events:auto;cursor:pointer}.is-h .story-photo__in{user-select:none}.is-h .story-thread{display:block;position:absolute;z-index:1;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none}.story-thread__line{fill:none;stroke-width:1.15;stroke-opacity:.34;stroke-linecap:butt;vector-effect:non-scaling-stroke}.is-h .story-end{display:block;z-index:2;left:calc(var(--x) * var(--u));top:calc(var(--y) * var(--u));width:0;height:0}.story-back{position:absolute;cursor:pointer;left:calc(-6 * var(--u));top:calc((var(--rise) + 8) * -1 * var(--u));width:calc((var(--w) + 12) * var(--u));height:calc((var(--rise) + 8 + var(--below)) * var(--u));display:block;outline:none;--back-in: .7s;--back-out: .9s;--back-hover: .6;--back-focus: .82}.story-back:before{content:"";position:absolute;inset:calc(-44 * var(--u)) calc(-62 * var(--u)) calc(-38 * var(--u))}.story-write{display:block;width:100%;height:100%;overflow:visible;fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;--un: 1}@supports (width: calc(tan(atan2(1px,1px))*1px)){.story-write{--un: tan(atan2(var(--u), 1px))}}.story-write__ink{stroke-width:calc(1.15 / var(--un));stroke-linecap:butt}.story-write__lit{opacity:0;transition:opacity var(--back-out) ease-out}.story-write__halo{stroke:#fbefdd;stroke-opacity:.34;stroke-width:calc(3.6 / var(--un))}.story-write__core{stroke:#faf3e8;stroke-width:calc(1.35 / var(--un))}.story-back:hover .story-write__lit,.story-back:focus-visible .story-write__lit{opacity:var(--back-hover);transition-duration:var(--back-in)}.story-back:focus-visible .story-write__lit{opacity:var(--back-focus)}@media(prefers-reduced-motion:reduce){.story-write__lit{transition:none}}@media(prefers-reduced-motion:no-preference){.is-h .story-text[data-reveal]{transition:opacity var(--reveal) var(--ease),transform var(--reveal) var(--ease)}.is-h .story-text[data-reveal]:not(.is-in){opacity:0;transform:translate(14px)}.is-h .story-photo__in{transition:opacity 2.6s var(--ease),transform 3.2s var(--ease)}.is-h .story-photo[data-reveal]:not(.is-in) .story-photo__in{opacity:0;transform:scale(1.03)}.is-h .story-write path{stroke-dasharray:1 2;stroke-dashoffset:0;transition:stroke-dashoffset 1.1s cubic-bezier(.4,.05,.2,1)}.is-h .story-end[data-reveal]:not(.is-in) .story-write path{stroke-dashoffset:1}}@media print{.story-end,.story-photo video{display:none}}.story-mthread{display:none}.story.is-m{--m-lane: max(100svh, 540px, calc(100vw * 466 / 540 + 44px));--m-top: clamp(40px, calc(var(--m-lane) * .065), 56px);--m-bottom: clamp(72px, calc(var(--m-lane) * .11), 96px);--m-pad: max(24px, calc((100% - 520px)/2) );--m-fs: clamp(17px, 4.6vw, 19px);--m-fs-lead: clamp(22px, 6vw, 26px);--m-fs-statement: clamp(20px, 5.6vw, 24px);--m-foot: calc(44px + env(safe-area-inset-bottom, 0px)) ;padding:0;height:var(--m-lane);min-height:0}.is-m .story-stage{position:relative;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;touch-action:pan-x pan-y;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;container-type:inline-size}.is-m .story-stage::-webkit-scrollbar{display:none}.is-m .story-canvas{display:block;height:100%}.is-m .story-track{--u: calc(100cqw / 540);position:relative;display:grid;box-sizing:border-box;width:calc(var(--m-n) * 100%);height:100%;padding:var(--m-top) 0 calc(var(--m-bottom) + env(safe-area-inset-bottom,0px));grid-template-columns:repeat(var(--m-n),minmax(0,1fr));grid-template-rows:minmax(0,1fr) auto;row-gap:20px}.is-m .story-chapter{display:contents}.is-m .story-track:after{content:"";grid-column:var(--m-n);grid-row:1;scroll-snap-align:start;scroll-snap-stop:always}.is-m .story-about,.is-m .story-text,.is-m .story-photo{grid-column:var(--s);position:relative;margin:0;scroll-snap-align:start;scroll-snap-stop:always}.is-m .story-about,.is-m .story-text{grid-row:2;align-self:start;width:auto;max-width:none;padding-inline:var(--m-pad)}.is-m .story-text[data-m-solo]{grid-row:1 / -1;align-self:center}.is-m .story-text p{font-size:var(--m-fs);line-height:1.58}.is-m .story-text--lead p{font-size:var(--m-fs-lead);line-height:1.34}.is-m .about-copy{font-size:var(--m-fs-statement);line-height:1.36}.is-m .story-photo{grid-row:1;display:grid;place-items:end center;width:auto;aspect-ratio:auto;padding-inline:var(--m-pad);container-type:size;pointer-events:none}.is-m .story-photo:not(.is-near):not([data-m-first]){display:none}.is-m .story-photo__in{width:min(100cqw,calc(100cqh * var(--w) / var(--h)));height:min(100cqh,calc(100cqw * var(--h) / var(--w)))}.is-m .story-mthread{display:block;position:absolute;z-index:1;left:0;bottom:calc(var(--m-foot) - 12 * var(--u));width:calc(var(--m-tw) * var(--u));height:calc(380 * var(--u));overflow:visible;pointer-events:none}.is-m .story-end{display:block;position:absolute;z-index:2;left:calc(var(--mx) * var(--u));bottom:calc(var(--m-foot) - 12 * var(--u) + (380 - var(--my)) * var(--u));width:0;height:0;margin:0}.is-m .story-back:before{inset:calc(-70 * var(--u)) calc(-90 * var(--u)) calc(-60 * var(--u))}@media(prefers-reduced-motion:no-preference){.is-m.is-m-live .story-photo__in{transition:opacity 1.4s var(--ease)}.is-m.is-m-live .story-photo:not(.is-in) .story-photo__in{opacity:0}.is-m.is-m-live .story-write path{stroke-dasharray:1 2;stroke-dashoffset:0;transition:stroke-dashoffset 1.1s cubic-bezier(.4,.05,.2,1)}.is-m.is-m-live .story-end:not(.is-in) .story-write path{stroke-dashoffset:1}}#skills{--map-side: 6vw;--skills-pad-top: 0svh;--skills-pad-bottom: 8svh;position:relative;min-height:100svh;padding:var(--skills-pad-top) 0 var(--skills-pad-bottom);scroll-margin-top:calc(-1 * var(--skills-pad-top))}.skills-skip{position:absolute;top:calc(var(--skills-pad-top) * .4);left:0;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;font-size:13px;line-height:1.4;color:var(--muted);z-index:3}.skills-skip:focus{width:auto;height:auto;margin:0;overflow:visible;clip-path:none;outline:none;color:var(--text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em}#skills.is-fallback{scroll-margin-top:28px}.skills-stage{--map-bleed-top: 18svh;--map-bleed-bottom: calc(var(--skills-pad-bottom) * .6);--text-edge: max(48px, calc(50vw - 620px) );position:relative;width:100vw;margin-left:calc(50% - 50vw);height:100svh;min-height:520px;display:none}.skills.is-pending .skills-stage,.skills.is-live .skills-stage{display:block}.map-canvas-host{position:absolute;inset:calc(-1 * var(--map-bleed-top)) 0 calc(-1 * var(--map-bleed-bottom));pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.16) calc(var(--map-bleed-top) * .25),rgba(0,0,0,.5) calc(var(--map-bleed-top) * .5),rgba(0,0,0,.84) calc(var(--map-bleed-top) * .75),#000 var(--map-bleed-top),#000 calc(100% - var(--map-bleed-bottom)),rgba(0,0,0,.84) calc(100% - var(--map-bleed-bottom) * .75),rgba(0,0,0,.5) calc(100% - var(--map-bleed-bottom) * .5),rgba(0,0,0,.16) calc(100% - var(--map-bleed-bottom) * .25),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.16) calc(var(--map-bleed-top) * .25),rgba(0,0,0,.5) calc(var(--map-bleed-top) * .5),rgba(0,0,0,.84) calc(var(--map-bleed-top) * .75),#000 var(--map-bleed-top),#000 calc(100% - var(--map-bleed-bottom)),rgba(0,0,0,.84) calc(100% - var(--map-bleed-bottom) * .75),rgba(0,0,0,.5) calc(100% - var(--map-bleed-bottom) * .5),rgba(0,0,0,.16) calc(100% - var(--map-bleed-bottom) * .25),transparent 100%)}.map-canvas-host:after{content:"";position:absolute;inset:auto 0 0;height:calc(var(--map-bleed-bottom) + 190px);background:linear-gradient(to top,rgba(8,9,11,.97) 0,rgba(8,9,11,.985) calc(var(--map-bleed-bottom) * .5),rgba(8,9,11,.994) var(--map-bleed-bottom),rgba(8,9,11,.86) calc(var(--map-bleed-bottom) + 34px),rgba(8,9,11,.62) calc(var(--map-bleed-bottom) + 78px),rgba(8,9,11,.36) calc(var(--map-bleed-bottom) + 122px),rgba(8,9,11,.14) calc(var(--map-bleed-bottom) + 160px),rgba(8,9,11,0) 100%);pointer-events:none}.map-canvas{display:block;width:100%;height:100%}.experience-map{position:absolute;inset:0 var(--map-side)}.experience-map.is-inert,.experience-map.is-inert *{pointer-events:none}.map-viewport{position:absolute;inset:0;cursor:grab;touch-action:manipulation;outline:none}.map-viewport.is-over-node{cursor:pointer}.map-viewport.is-dragging{cursor:grabbing}.map-viewport:focus-visible{box-shadow:inset 0 0 0 2px var(--muted)}.map-label{position:absolute;left:0;top:0;pointer-events:none;white-space:nowrap;color:var(--text);font-size:13px;line-height:1.2;letter-spacing:-.005em;text-shadow:0 0 10px rgba(8,9,11,.95),0 0 3px rgba(8,9,11,.9);opacity:0;transition:opacity .16s var(--ease);will-change:transform}.map-label.is-shown{opacity:.94}.map-strip{position:absolute;left:var(--text-edge);right:var(--text-edge);bottom:0;min-height:104px;padding:26px 0 30px;isolation:isolate;opacity:0;transform:translateY(8px);transition:opacity .32s var(--ease),transform .42s var(--ease),visibility 0s;filter:opacity(var(--strip-fade, 1));pointer-events:none}.map-strip{--strip-rise: 150px;--strip-quiet: #878d97}.map-strip:before{content:"";position:absolute;inset:calc(-1 * var(--strip-rise)) calc(-1.5 * var(--text-edge)) calc(-1 * var(--map-bleed-bottom)) calc(-1.5 * var(--text-edge));z-index:-1;background:linear-gradient(to top,rgba(8,9,11,0) 0,rgba(8,9,11,.7) calc(var(--map-bleed-bottom) * .35),rgba(8,9,11,.95) calc(var(--map-bleed-bottom) * .7),rgba(8,9,11,.994) var(--map-bleed-bottom),rgba(8,9,11,.994) calc(100% - var(--strip-rise)),rgba(8,9,11,.76) calc(100% - var(--strip-rise) * .78),rgba(8,9,11,.5) calc(100% - var(--strip-rise) * .56),rgba(8,9,11,.26) calc(100% - var(--strip-rise) * .34),rgba(8,9,11,.09) calc(100% - var(--strip-rise) * .15),rgba(8,9,11,0) 100%);-webkit-mask-image:linear-gradient(to right,transparent 0,#000 calc(var(--text-edge) * 1.1),#000 calc(100% - var(--text-edge) * 1.1),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 calc(var(--text-edge) * 1.1),#000 calc(100% - var(--text-edge) * 1.1),transparent 100%);pointer-events:none}.map-strip.is-shown{opacity:1;transform:none}.map-strip.is-faded{pointer-events:none}.map-strip.is-gone{visibility:hidden}.map-strip__inner{display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,2.6fr) auto;align-items:end;gap:40px;transition:opacity .14s var(--ease)}.map-strip__inner.is-swapping{opacity:0}.map-strip__name{display:flex;flex-direction:column;gap:4px}.map-strip__kicker{color:var(--strip-quiet);font-size:12px}.map-strip__title{color:var(--text);font-size:19px;line-height:1.2;letter-spacing:-.02em}.map-strip__body{min-width:0}.map-strip__text{margin:0;max-width:62ch;color:var(--muted);font-size:14px;line-height:1.5}.map-strip__meta{margin:6px 0 0;max-width:62ch;color:var(--strip-quiet);font-size:12px;line-height:1.5}.map-strip__link{color:var(--text);font-size:14px;white-space:nowrap;pointer-events:auto;transition:color .2s var(--ease)}.map-strip__link:hover,.map-strip__link:focus-visible{color:var(--muted)}@media(prefers-reduced-motion:reduce){.map-strip{transform:none}}.skills-announce{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skills-index{color:var(--muted)}.skills-index ul{list-style:none;margin:0;padding:0}.skills-index__title{margin:0 0 40px;color:var(--text);font-size:clamp(22px,2.25vw,32px);font-weight:400;letter-spacing:-.035em}.skills-index__areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:40px 32px}.skills-index__area>.skills-index__text{margin:8px 0 20px;font-size:14px;line-height:1.5}.skills-index__skills li{display:flex;flex-direction:column;margin:0 0 12px}.skills-index__skills .skills-index__text{font-size:13px;color:var(--quiet)}.skills-node{display:inline;padding:0;border:0;background:none;color:var(--text);font:inherit;text-align:left;cursor:default}.skills.is-fallback .skills-node{cursor:pointer}a.skills-node:hover,a.skills-node:focus-visible{color:var(--muted)}.skills-node--large{font-size:18px;letter-spacing:-.02em}a.skills-node--large{cursor:pointer}a.skills-node--large:hover{color:var(--muted)}.skills-node--medium{font-size:15px}.skills-index__tools{margin-top:48px}.skills-index__subtitle{margin:0 0 12px;font-size:13px;font-weight:400;color:var(--quiet)}.skills-index__tools ul{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:13px}.skills-index__tools .skills-index__text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skills-node--small{color:var(--muted)}.skills.is-fallback .map-strip{position:sticky;left:auto;right:auto;margin-top:40px;padding:24px 0 26px;background:linear-gradient(to top,var(--bg) 70%,rgba(8,9,11,0))}.skills.is-fallback .map-strip:before{content:none}.skills.is-pending .skills-index,.skills.is-live .skills-index{position:absolute;left:0;right:0;top:calc(var(--skills-pad-top) + 40svh);height:0;pointer-events:none}.skills.is-pending .skills-index :is(h2,h3,p,span,a,button),.skills.is-live .skills-index :is(h2,h3,p,span,a,button){position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(max-width:720px){#skills{--map-side: 5vw;--skills-pad-top: 18svh;--skills-pad-bottom: 14svh}.skills-stage{--text-edge: 20px;height:80svh;min-height:440px}.map-strip__inner{grid-template-columns:1fr;gap:8px}}html.is-touch #skills{--skills-pad-bottom: 6svh}html.is-touch .skills-stage{--map-bleed-top: 8svh;--text-edge: 20px;height:82svh;min-height:420px}@media(orientation:landscape){html.is-touch .skills-stage{height:90svh;min-height:260px}}html.is-touch .experience-map{inset:0 28px 0 0}html.is-touch .map-viewport{touch-action:none;cursor:default;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}html.is-touch .map-label{display:none}html.is-touch .map-strip{min-height:0;padding:24px 0 20px}html.is-touch .map-strip__title{font-size:22px}html.is-touch .map-strip__kicker{font-size:13px}html.is-touch .map-strip__text{font-size:16px;line-height:1.5}html.is-touch .map-strip__meta{font-size:14px}html.is-touch .map-strip__link{display:inline-flex;align-items:center;min-height:44px;padding-right:14px;font-size:17px}@media(orientation:portrait){html.is-touch .map-strip__inner{grid-template-columns:minmax(0,1fr);gap:8px}html.is-touch .map-strip__name{gap:2px}}#contact{--contact-rise: 0px;--contact-air: 0px;position:relative;min-height:calc(78svh + var(--contact-air));scroll-margin-top:0;margin-top:calc(-1 * var(--contact-rise));pointer-events:none;display:grid;align-items:start;padding:calc(clamp(48px,8svh,96px) + var(--contact-air)) 0 clamp(96px,16svh,192px)}#skills:is(.is-pending,.is-live)~#contact{--contact-rise: clamp(80px, 14svh, 150px);--contact-air: clamp(72px, 10svh, 140px)}#contact:focus{outline:none}.contact{display:grid;grid-template-columns:1fr;align-items:start}.contact-action{pointer-events:auto;display:inline-block;font-size:clamp(40px,6vw,96px);line-height:1.05;letter-spacing:-.05em;font-weight:450}.contact-arrow{display:inline-block;transition:translate .2s var(--ease)}@media(hover:hover)and (pointer:fine){.contact-action:hover .contact-arrow,.contact-action:focus-visible .contact-arrow{translate:.07em -.07em}}.contact-links{position:absolute;right:0;bottom:clamp(56px,10svh,120px);display:flex;flex-direction:column;align-items:stretch;gap:6px;user-select:none}.contact-links a{pointer-events:auto;display:block;text-align:right;padding:2px 0;color:var(--text);opacity:calc(.4 + .6 * var(--near, 0));font-size:clamp(14px,1.05vw,16px);line-height:1.4;letter-spacing:-.02em;text-rendering:geometricPrecision;transform:translateY(var(--shift, 0px)) scale(var(--grow, 1));transform-origin:100% 50%}.contact-links a:hover,.contact-links a:focus-visible{opacity:1;transition:opacity .25s var(--ease)}.contact-links a:focus-visible{outline:none;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em}.contact-title{position:relative}.contact-links{--uv-row: 37px}.contact-uv{display:flex;flex-direction:column;align-items:flex-end;gap:6px;transition:transform .7s var(--ease),gap .5s var(--ease)}html.uvn-on:not(.uvn-leaving) .contact-uv{gap:0;transform:translate(max(52px,calc(50vw - 668px)),54px)}.contact-links{--contact-fs: clamp(14px, 1.05vw, 16px)}@media(min-width:1660px){html.uvn-on:not(.uvn-leaving) .contact-uv{align-items:flex-start;transform:translate(calc(100% + 64px),54px)}html.uvn-on:not(.uvn-leaving) .contact-uv a[data-uvn-ready]{justify-content:flex-start}}.contact-uv a{position:relative;box-sizing:border-box;min-width:calc(var(--w, 40) * min(var(--uvn-k, 1),1) * 1px);transition:min-height .5s var(--ease),opacity .35s var(--ease)}html.uvn-on:not(.uvn-leaving) .contact-uv a[data-uvn-ready]{display:flex;align-items:center;justify-content:flex-end;min-height:var(--uv-row);opacity:1;transform:none}.contact-uv__text{transition:opacity .6s var(--ease) .3s}html.uvn-on:not(.uvn-leaving) .contact-uv a[data-uvn-ready] .contact-uv__text,html.uvn-on:not(.uvn-leaving) .contact-uv a[data-uvn-ready]:hover .contact-uv__text{opacity:0;transition:opacity .35s var(--ease)}html.uvn-on .contact-uv a[data-uvn-ready]:not(.is-revealed):not(:focus-visible){pointer-events:none}.contact-quiet{position:absolute;left:0;right:0;bottom:clamp(12px,3svh,32px);pointer-events:none}.contact-quiet a{pointer-events:auto}@media(max-width:720px){.contact{gap:32px}.contact-links{position:static;margin-top:32px}.contact-links a{opacity:1;color:var(--muted)}.contact-links{--uv-row: 0px}.contact-uv a{height:auto;padding:2px 0}}
