@font-face{font-family:spaceGrotesk;src:url(../media/space_grotesk_latin_500_normal-s.p.31yp0bkv7z4ku.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:spaceGrotesk;src:url(../media/space_grotesk_latin_600_normal-s.p.31umv2m7yy2ah.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:spaceGrotesk;src:url(../media/space_grotesk_latin_700_normal-s.p.2lryt7vlpdgap.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:spaceGrotesk Fallback;src:local(Arial);ascent-override:88.74%;descent-override:26.33%;line-gap-override:0.0%;size-adjust:110.89%}.spacegrotesk_3586cd1-module__Lf4h_q__className{font-family:spaceGrotesk,spaceGrotesk Fallback}.spacegrotesk_3586cd1-module__Lf4h_q__variable{--font-display-family:"spaceGrotesk", "spaceGrotesk Fallback"}
@font-face{font-family:inter;src:url(../media/inter_latin_400_normal-s.p.08vufg9rbrtqu.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:inter;src:url(../media/inter_latin_500_normal-s.p.037elok7xg7ol.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:inter;src:url(../media/inter_latin_600_normal-s.p.42bxzpetz5w8g.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:inter Fallback;src:local(Arial);ascent-override:89.79%;descent-override:22.36%;line-gap-override:0.0%;size-adjust:107.89%}.inter_77a2c34b-module__mogq0a__className{font-family:inter,inter Fallback}.inter_77a2c34b-module__mogq0a__variable{--font-body-family:"inter", "inter Fallback"}
@font-face{font-family:jetbrainsMono;src:url(../media/jetbrains_mono_latin_400_normal-s.p.37baup9wa8gsy.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:jetbrainsMono;src:url(../media/jetbrains_mono_latin_500_normal-s.p.37tbwx4qeyuup.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:jetbrainsMono;src:url(../media/jetbrains_mono_latin_600_normal-s.p.385rh3vwo0nrf.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:jetbrainsMono Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.jetbrainsmono_debc6c9a-module__ogGv1G__className{font-family:jetbrainsMono,jetbrainsMono Fallback}.jetbrainsmono_debc6c9a-module__ogGv1G__variable{--font-mono-family:"jetbrainsMono", "jetbrainsMono Fallback"}
@font-face{font-family:caveat;src:url(../media/caveat_latin_600_normal-s.p.3sd7rc34fmee_.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:caveat;src:url(../media/caveat_latin_700_normal-s.p.23o9u2ocxwgg-.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:caveat Fallback;src:local(Arial);ascent-override:127.1%;descent-override:39.72%;line-gap-override:0.0%;size-adjust:75.53%}.caveat_746b56a3-module__6XlEVG__className{font-family:caveat,caveat Fallback}.caveat_746b56a3-module__6XlEVG__variable{--font-hand-family:"caveat", "caveat Fallback"}
:root{--font-display:var(--font-display-family),sans-serif;--font-body:var(--font-body-family),sans-serif;--font-mono:var(--font-mono-family),monospace;--font-hand:var(--font-hand-family),cursive;--bg:#0b0c10;--bg-radial-1:#5e6ad21a;--bg-radial-2:#3aa69a14;--surface:#131419;--surface-elevated:#191b22;--text-primary:#f4f5f7;--text-secondary:#9497a6;--text-muted:#9497a6;--border:#f4f5f717;--border-strong:#f4f5f729;--accent:#5e6ad2;--accent-2:#3aa69a;--accent-contrast:#fff;--shadow:0 20px 50px #00000073;--shadow-sm:0 8px 24px #0000004d}[data-theme=light]{--bg:#f7f7f5;--bg-radial-1:#dccaf017;--bg-radial-2:#c9dfea17;--bg-radial-hero-1:#dccaf029;--bg-radial-hero-2:#c9dfea21;--bg-radial-note:#dccaf006;--surface:#fbfbf9;--surface-elevated:#fdfdfb;--text-primary:#18202b;--text-secondary:#3f4850;--text-muted:#68717a;--border:#18202b14;--border-strong:#18202b24;--accent:#5b4bb7;--accent-2:#2d6b8a;--accent-contrast:#fff;--shadow:0 20px 44px #18202b14;--shadow-sm:0 8px 20px #18202b0d}
*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;transition:background-color .35s,color .35s;overflow-x:hidden}::selection{background:var(--accent);color:var(--accent-contrast)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}a{color:inherit}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}img{max-width:100%;display:block}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
.container{max-width:1180px;margin:0 auto;padding-inline:clamp(20px,5vw,64px)}.section{max-width:1180px;margin:0 auto;padding-block:12vh;padding-inline:clamp(20px,5vw,64px);scroll-margin-top:96px;position:relative}.section-head{margin-bottom:44px}.section-eyebrow{font-family:var(--font-mono);letter-spacing:.14em;color:var(--accent);text-transform:uppercase;margin-bottom:10px;font-size:12px}.section-title{font-family:var(--font-display);color:var(--text-primary);font-size:clamp(1.8rem,4vw,2.5rem);font-weight:700}@media (max-width:900px){.section{padding-block:8vh}}#journey:before,#awards:before,#skills:before,#projects:before,#note:before{content:"";z-index:-1;pointer-events:none;width:100vw;margin-left:-50vw;margin-right:-50vw;position:absolute;inset:0 50%}#journey:before{background-color:var(--bg);background-image:radial-gradient(ellipse 62% 55% at 90% 4%, var(--bg-radial-1), transparent 62%)}#awards:before{background-color:color-mix(in srgb, var(--bg) 100%, var(--text-primary) 3%);background-image:radial-gradient(ellipse 58% 55% at 8% 96%, var(--bg-radial-2), transparent 60%)}#skills:before{background-color:var(--bg);background-image:radial-gradient(ellipse 58% 50% at 10% 6%, var(--bg-radial-1), transparent 60%)}#projects:before{background-color:color-mix(in srgb, var(--bg) 100%, var(--text-primary) 3%);background-image:radial-gradient(ellipse 62% 55% at 92% 94%, var(--bg-radial-2), transparent 62%)}#note:before{background-color:var(--bg);background-image:radial-gradient(ellipse 68% 45% at 50% 100%, var(--bg-radial-1), transparent 65%)}[data-theme=light] #note:before{background-image:radial-gradient(ellipse 68% 45% at 50% 100%, var(--bg-radial-note), transparent 65%)}.foot{border-top:1px solid var(--border);font-family:var(--font-mono);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;gap:8px;padding:32px clamp(20px,5vw,64px) 48px;font-size:12px;display:flex}#journey.section,#awards.section,#skills.section{padding-block:6vh}#journey .section-head,#awards .section-head,#skills .section-head{margin-bottom:28px}
.hero{padding-block:3vh 5vh;position:relative;overflow:hidden}[data-theme=light] .hero:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(ellipse 72% 62% at 12% 14%, var(--bg-radial-hero-1), transparent 68%), radial-gradient(ellipse 66% 58% at 90% 86%, var(--bg-radial-hero-2), transparent 66%);position:absolute;inset:0}.hero-tint{z-index:0;pointer-events:none;background:radial-gradient(ellipse 60% 50% at 82% 8%, rgba(var(--tint-rgb), .14), transparent 65%);transition:background 1.2s;position:absolute;inset:0}.hero-grid{z-index:1;grid-template-columns:clamp(300px,40vw,560px) clamp(300px,35vw,480px);align-items:start;gap:clamp(0px,.3vw,6px);width:100%;max-width:1180px;margin-inline:auto;padding-inline:clamp(20px,5vw,64px);display:grid;position:relative}.hero-text-col{flex-direction:column;grid-area:1/1;justify-content:flex-start;align-self:stretch;min-width:0;display:flex;position:relative}.hero-content{z-index:3;width:100%;min-width:0;padding-top:clamp(20px,3vh,40px);position:relative}.hero-eyebrow{font-family:var(--font-hand);color:var(--accent);margin-bottom:2px;font-size:clamp(1.35rem,2.6vw,1.7rem);font-weight:600}.hero-name{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-primary);margin-bottom:16px;font-size:clamp(2.8rem,7vw,4.6rem);font-weight:800;line-height:1.02}.hero-name-dot{color:var(--accent)}.hero-tagline{font-family:var(--font-display);color:var(--accent);width:100%;max-width:none;margin-bottom:18px;font-size:clamp(1.2rem,2.4vw,1.5rem);font-weight:700;line-height:1.4}.hero-stat-lines{flex-direction:column;gap:4px;margin-bottom:14px;display:flex}.hero-stat-line{font-family:var(--font-mono);letter-spacing:.1em;color:var(--text-secondary);text-transform:uppercase;font-size:clamp(11px,1vw,13px)}.hero-role-stat{color:var(--text-primary);font-weight:600}.hero-tech-arc{color:var(--text-secondary);opacity:0;animation:.6s .35s forwards heroStatArcIn;transform:translateY(4px)}@keyframes heroStatArcIn{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.hero-tech-arc{opacity:1;animation:none;transform:none}}.hero-actions{flex-wrap:wrap;gap:14px;margin-bottom:24px;display:flex}.btn{font-family:var(--font-mono);letter-spacing:.01em;border:1.5px solid var(--border-strong);color:var(--text-primary);border-radius:10px;align-items:center;gap:8px;padding:12px 20px;font-size:13.5px;font-weight:600;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn.primary{background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 55%, #3d8bfd));color:var(--accent-contrast);box-shadow:var(--shadow-sm);border-color:#0000}.btn.primary:hover{box-shadow:var(--shadow)}.btn.outline{border-color:var(--accent);color:var(--accent);background:0 0}.btn.outline:hover{background:color-mix(in srgb, var(--accent) 10%, transparent)}.hero-links{flex-wrap:wrap;gap:10px 22px;display:flex}.hero-links a{font-family:var(--font-mono);color:var(--text-secondary);align-items:center;gap:7px;font-size:12.5px;text-decoration:none;transition:color .18s;display:inline-flex}.hero-links a:hover{color:var(--accent)}.hero-email-pill{border:1px solid var(--border);border-radius:20px;align-items:center;gap:8px;padding:4px 6px 4px 12px;display:inline-flex}.hero-email-pill:after{content:"";background:var(--border);order:1;align-self:stretch;width:1px;margin-block:5px}.hero-email-pill a{order:0;gap:7px;padding:0}.copy-email-btn{order:2}.hero-email-pill:hover{border-color:var(--accent)}.copy-email-btn{width:24px;height:24px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:color .18s,background .18s;display:inline-flex;position:relative}.copy-email-btn:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.copy-email-btn.is-copied{color:#2fa86b}.copy-email-tooltip{font-family:var(--font-mono);white-space:nowrap;background:var(--surface-strong,var(--surface));color:var(--text-primary);border:1px solid var(--border);opacity:0;pointer-events:none;border-radius:6px;padding:4px 8px;font-size:11px;transition:opacity .16s,transform .16s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(2px)}.copy-email-btn:hover .copy-email-tooltip,.copy-email-btn:focus-visible .copy-email-tooltip,.copy-email-btn.is-copied .copy-email-tooltip{opacity:1;transform:translate(-50%)translateY(0)}.hero-graph-panel{z-index:1;aspect-ratio:1;width:min(100%,480px,74vh);min-width:0;max-width:480px;margin-inline:auto;position:relative}.hero-graph-panel:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--accent) 10%, transparent) 0%, transparent 62%);position:absolute;inset:0}@media (min-width:900px){.hero-graph-panel{-webkit-mask-image:radial-gradient(78% 74% at 44%,#000 68% 78%,#0000 96%);mask-image:radial-gradient(78% 74% at 44%,#000 68% 78%,#0000 96%)}}.constellation-svg{z-index:0;width:100%;height:100%;display:block;position:absolute;inset:0;overflow:visible}:root{--halo-peak-opacity:.24;--constellation-line-opacity:1;--constellation-structure-mix:60%;--constellation-dot-mix:80%;--constellation-color-sat:1;--constellation-color-bright:1}[data-theme=light]{--halo-peak-opacity:.22;--constellation-line-opacity:1;--constellation-structure-mix:55%;--constellation-dot-mix:66%;--constellation-color-sat:.82;--constellation-color-bright:.78}.constellation-edge{fill:none;stroke-linecap:round;stroke-opacity:var(--constellation-line-opacity);transition:stroke .2s,stroke-opacity .2s}.constellation-edge.is-spoke{stroke:color-mix(in srgb, var(--hue) var(--constellation-structure-mix), var(--text-primary))}.constellation-edge:not(.is-spoke){stroke:color-mix(in srgb, var(--hue) calc(var(--constellation-structure-mix) - 13%), var(--text-secondary))}.constellation-edge.is-dashed{stroke-dasharray:5 5}.constellation-edge-glow{fill:var(--hue);--glow-blur:2.5px;filter:blur(var(--glow-blur)) saturate(var(--constellation-color-sat)) brightness(var(--constellation-color-bright))}.constellation-edge-glow.is-tail{--glow-blur:3.5px}.constellation-cluster,.constellation-halo-hit{cursor:pointer}.constellation-halo{mix-blend-mode:normal;filter:saturate(var(--constellation-color-sat)) brightness(var(--constellation-color-bright))}.constellation-ring{stroke:color-mix(in srgb, var(--hue) var(--constellation-structure-mix), var(--text-primary));stroke-dasharray:6 5;stroke-opacity:var(--constellation-line-opacity);transition:stroke .2s,stroke-opacity .2s}.constellation-outline{stroke:color-mix(in srgb, var(--hue) var(--constellation-structure-mix), var(--text-primary));stroke-opacity:calc(var(--constellation-line-opacity) * .85);transition:stroke .2s,stroke-opacity .2s}.constellation-cluster-label{font-family:var(--font-mono);letter-spacing:.03em;fill:color-mix(in srgb, var(--hue) calc(var(--constellation-structure-mix) + 12%), var(--text-primary));-webkit-user-select:none;user-select:none;font-size:11px;font-weight:700}.constellation-node,.constellation-node-hit{cursor:pointer}.constellation-node-dot{fill:var(--hue);fill-opacity:var(--constellation-line-opacity);stroke:color-mix(in srgb, var(--hue) var(--constellation-dot-mix), var(--text-primary));stroke-width:1.4px;stroke-opacity:var(--constellation-line-opacity);filter:saturate(var(--constellation-color-sat)) brightness(var(--constellation-color-bright));transition:stroke .2s,fill-opacity .2s,stroke-opacity .2s,filter .2s}.constellation-node-tick{stroke:color-mix(in srgb, var(--hue) var(--constellation-structure-mix), var(--text-primary));stroke-width:1px;stroke-opacity:var(--constellation-line-opacity)}.constellation-node-label{font-family:var(--font-mono);fill:var(--text-primary);-webkit-user-select:none;user-select:none;font-size:10.5px}.constellation-node:hover .constellation-node-dot,.constellation-cluster:hover .constellation-node-dot{filter:saturate(var(--constellation-color-sat)) brightness(var(--constellation-color-bright)) drop-shadow(0 0 6px color-mix(in srgb, var(--hue) 70%, transparent))}.graph-tooltip{pointer-events:none;z-index:3;background:var(--surface-elevated);border:1px solid var(--border-strong);opacity:0;max-width:200px;box-shadow:var(--shadow-sm);border-radius:8px;padding:7px 11px;transition:opacity .15s;position:absolute;transform:translate(-50%,-124%)}.graph-tooltip.is-visible{opacity:1}.graph-tooltip-title{font-family:var(--font-mono);letter-spacing:.02em;color:var(--text-primary);white-space:nowrap;font-size:11.5px;font-weight:700}.graph-tooltip-info{font-family:var(--font-body);color:var(--text-secondary);margin-top:3px;font-size:11.5px;line-height:1.42}.graph-hub{--hub-hue:var(--accent);z-index:2;aspect-ratio:1;border:1.5px solid color-mix(in srgb, var(--accent) 40%, var(--border-strong));width:clamp(78px,11%,112px);height:auto;box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent), 0 0 34px color-mix(in srgb, var(--accent) 22%, transparent), var(--shadow-sm);will-change:left, top, transform, box-shadow;cursor:pointer;border-radius:50%;animation:4.2s ease-in-out infinite hubPulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(1)}.graph-hub.is-active{box-shadow:0 0 0 1px color-mix(in srgb, var(--hub-hue) 45%, transparent), 0 0 46px color-mix(in srgb, var(--hub-hue) 40%, transparent), var(--shadow);transform:translate(-50%,-50%)scale(1.045)}@keyframes hubPulse{0%,to{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent), 0 0 30px color-mix(in srgb, var(--accent) 18%, transparent), var(--shadow-sm)}50%{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 26%, transparent), 0 0 42px color-mix(in srgb, var(--accent) 30%, transparent), var(--shadow-sm)}}@media (prefers-reduced-motion:reduce){.graph-hub{animation:none}}.graph-hub-avatar{background:var(--surface-elevated);border-radius:50%;width:100%;height:100%;display:block;position:relative;overflow:hidden}.graph-hub-avatar img{object-fit:cover;object-position:center 18%;width:100%;height:100%;display:block}.graph-hub-tag{white-space:nowrap;font-family:var(--font-mono);color:var(--text-primary);background:var(--surface-elevated);border:1px solid var(--border-strong);box-shadow:var(--shadow-sm);opacity:0;pointer-events:none;border-radius:20px;margin-top:6px;padding:6px 12px;font-size:11.5px;transition:opacity .2s,transform .2s;position:absolute;top:100%;left:50%;transform:translate(-50%,10px)}.graph-hub.is-active .graph-hub-tag{opacity:1;transform:translate(-50%,4px)}@media (max-width:900px){.hero{padding-block:3vh 7vh}.hero-grid{grid-template-columns:1fr}.hero-content{width:100%;padding-top:0}.hero-graph-panel{height:clamp(420px,62vh,640px);min-height:380px;margin-top:8px}.hero-tagline{max-width:100%}.graph-hub{aspect-ratio:1;width:clamp(52px,11%,64px);height:auto}}@media (max-width:480px){.hero-graph-panel{min-height:340px}}.hero-scroll-cue{cursor:pointer;padding-top:clamp(12px,2vh,24px);z-index:3;color:var(--text-secondary);opacity:.85;background:0 0;border:none;flex-direction:column;grid-area:2/1/auto/-1;justify-self:center;align-items:center;gap:clamp(6px,1vh,8px);margin-bottom:clamp(4px,1vh,12px);padding-inline:8px;transition:opacity .2s,transform .2s,color .2s;animation:2.6s ease-in-out infinite heroScrollFloat;display:flex}.hero-scroll-cue:hover,.hero-scroll-cue:focus-visible{opacity:1;color:var(--accent);transform:translateY(-2px)}.hero-scroll-cue:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}.hero-scroll-cue-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;font-size:clamp(9.5px,.75vw,11px)}.hero-scroll-cue-mouse{border:1.5px solid color-mix(in srgb, currentColor 55%, var(--border-strong));box-sizing:border-box;background:var(--surface-elevated);width:clamp(18px,1.6vw,22px);height:clamp(28px,2.4vw,34px);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent), 0 3px 10px color-mix(in srgb, var(--accent) 14%, transparent);border-radius:12px;justify-content:center;padding-top:6px;transition:box-shadow .25s,border-color .25s;display:flex;position:relative}.hero-scroll-cue-mouse:before{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--accent) 38%, transparent) 0%, transparent 72%);filter:blur(7px);z-index:-1;border-radius:50%;animation:2.6s ease-in-out infinite heroScrollGlow;position:absolute;inset:-12px}.hero-scroll-cue:hover .hero-scroll-cue-mouse,.hero-scroll-cue:focus-visible .hero-scroll-cue-mouse{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent), 0 4px 14px color-mix(in srgb, var(--accent) 30%, transparent)}.hero-scroll-cue:hover .hero-scroll-cue-mouse:before,.hero-scroll-cue:focus-visible .hero-scroll-cue-mouse:before{background:radial-gradient(circle, color-mix(in srgb, var(--accent) 58%, transparent) 0%, transparent 72%)}.hero-scroll-cue-wheel{background:currentColor;border-radius:2px;width:3px;height:7px;animation:1.8s ease-in-out infinite heroScrollWheel}@keyframes heroScrollFloat{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}@keyframes heroScrollGlow{0%,to{opacity:.55;filter:blur(6px)}50%{opacity:1;filter:blur(9px)}}@keyframes heroScrollWheel{0%{opacity:1;transform:translateY(0)}60%{opacity:0;transform:translateY(10px)}61%{opacity:0;transform:translateY(0)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.hero-scroll-cue,.hero-scroll-cue-wheel,.hero-scroll-cue-mouse:before{animation:none}}
.journey-wave{width:100%;position:relative}.journey-wave svg{width:100%;height:100%;display:block;position:absolute;inset:0}.journey-segment-base{fill:none;stroke:var(--border-strong);stroke-width:2px;transition:stroke .25s,stroke-width .25s}.journey-segment-flow{fill:none;stroke:var(--seg-hue,var(--accent));stroke-width:2px;stroke-linecap:round;stroke-dasharray:8 260;opacity:.55;animation:9s linear infinite journey-flow;animation-delay:var(--seg-delay,0s);transition:opacity .25s,stroke-width .25s}.journey-segment-group.is-active .journey-segment-base{stroke:var(--seg-hue,var(--accent));stroke-width:3px}.journey-segment-group.is-active .journey-segment-flow{opacity:1;stroke-width:3px}@keyframes journey-flow{to{stroke-dashoffset:-268px}}@media (prefers-reduced-motion:reduce){.journey-segment-flow{opacity:.35;animation:none}}.journey-milestones{position:absolute;inset:0}.milestone{flex-direction:column;align-items:center;display:flex;position:absolute;transform:translate(-50%,-50%)}.milestone-dot{background:var(--hue);width:14px;height:14px;box-shadow:0 0 0 6px color-mix(in srgb, var(--hue) 16%, transparent);cursor:pointer;border-radius:50%;transition:transform .2s}.milestone-dot:hover{transform:scale(1.25)}.milestone.is-current .milestone-dot{animation:2.4s ease-in-out infinite pulseGlow}.milestone-tag{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);white-space:nowrap;margin-bottom:6px;font-size:10px}.milestone-chip{text-align:left;cursor:pointer;background:var(--surface);border:1px solid var(--border);width:200px;box-shadow:var(--shadow-sm);border-radius:12px;margin-top:10px;padding:14px 16px;transition:transform .2s,box-shadow .2s,border-color .2s}.milestone-chip:hover{border-color:var(--hue);box-shadow:var(--shadow);transform:translateY(-3px)}.milestone-period{font-family:var(--font-mono);color:var(--hue);margin-bottom:6px;font-size:11px}.milestone-role{font-family:var(--font-display);margin-bottom:4px;font-size:.98rem;font-weight:600}.milestone-meta{color:var(--text-muted);margin-bottom:8px;font-size:.8rem;line-height:1.5}.milestone-tech{font-family:var(--font-mono);color:var(--text-muted);font-size:10.5px}.milestone-details{max-height:0;transition:max-height .35s;overflow:hidden}.milestone-chip:hover .milestone-details{border-top:1px dashed var(--border-strong);max-height:60px;margin-top:8px;padding-top:8px}.milestone-chip.is-open .milestone-details{border-top:1px dashed var(--border-strong);max-height:200px;margin-top:10px;padding-top:10px}.milestone-details p{color:var(--text-secondary);font-size:.85rem;line-height:1.6}.compass-wrap{gap:8px}.compass{background:var(--surface);border:1.5px dashed var(--accent);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;transition:transform .3s,box-shadow .3s;display:flex}.compass:hover{box-shadow:0 0 24px color-mix(in srgb, var(--accent) 45%, transparent);transform:rotate(15deg)}.compass-label{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-muted);white-space:nowrap;text-align:center;font-size:10.5px}.journey-vertical{max-width:560px;position:relative}.journey-vertical:before{content:"";border-left:1.5px dashed var(--border-strong);position:absolute;top:6px;bottom:6px;left:6px}.journey-vertical .milestone{flex-direction:row;align-items:flex-start;gap:20px;padding-bottom:36px;position:relative;transform:none}.journey-vertical .milestone-dot{flex:none;margin-top:6px}.journey-vertical .milestone-chip{width:100%;margin-top:0}.journey-vertical .milestone-tag{margin:0;position:absolute;top:-18px;left:0}@keyframes pulseGlow{0%,to{box-shadow:0 0 0 6px color-mix(in srgb, var(--hue) 16%, transparent)}50%{box-shadow:0 0 0 12px color-mix(in srgb, var(--hue) 26%, transparent)}}
.card{background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(14px);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;transition:transform .25s,box-shadow .25s,border-color .25s}.card:hover{box-shadow:var(--shadow);border-color:var(--border-strong);transform:translateY(-4px)}.wi-inner:hover,.wi-inner:focus-within{border-color:color-mix(in srgb, var(--accent) 35%, var(--border-strong));box-shadow:var(--shadow), 0 0 0 1px color-mix(in srgb, var(--accent) 16%, transparent), 0 14px 36px color-mix(in srgb, var(--accent) 18%, transparent);transform:translateY(-6px)}@media (prefers-reduced-motion:reduce){.card:hover,.wi-inner:hover,.wi-inner:focus-within{transform:none}}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.skill-card{box-shadow:var(--shadow-sm), 0 0 24px -6px color-mix(in srgb, var(--hue) 30%, transparent);padding:20px 22px;position:relative;overflow:hidden}.skill-card:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle at 50% 40%, color-mix(in srgb, var(--hue) 22%, transparent), transparent 70%);opacity:.55;animation:5.5s ease-in-out infinite skillCardBreathe;position:absolute;inset:-30%}.skill-card:nth-child(2n):before{animation-delay:-1.8s}.skill-card:nth-child(3n):before{animation-delay:-3.4s}.skill-card:nth-child(4n):before{animation-delay:-.9s}@keyframes skillCardBreathe{0%,to{opacity:.4}50%{opacity:.85}}@media (prefers-reduced-motion:reduce){.skill-card:before{opacity:.55;animation:none}}.generic-card-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.generic-card{flex-direction:column;gap:10px;padding:22px;display:flex}.generic-card h3{font-family:var(--font-display);font-size:1.05rem;font-weight:600}.generic-card p{color:var(--text-secondary);font-size:.92rem;line-height:1.6}.skill-card h3{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--hue);margin-bottom:8px;font-size:12px}.skill-card p{color:var(--text-primary);opacity:.85;font-size:.92rem;line-height:1.6}.carousel{position:relative}.section-head-with-counter{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.carousel-counter{font-family:var(--font-mono);letter-spacing:.08em;color:var(--text-muted);white-space:nowrap;font-size:12px}#projects.section{padding-block:6vh}#projects .section-head{margin-bottom:20px}.carousel-viewport{position:relative}.carousel-nav{background:var(--surface-elevated);border:1px solid var(--border-strong);width:44px;height:44px;color:var(--text-primary);cursor:pointer;z-index:3;box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;font-size:20px;line-height:1;transition:border-color .2s,color .2s,opacity .2s,transform .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.carousel-nav:hover{border-color:var(--accent);color:var(--accent)}.carousel-nav:disabled{opacity:.3;pointer-events:none}.carousel-nav.prev{left:-8px}.carousel-nav.next{right:-8px}@media (max-width:480px){.carousel-nav{width:34px;height:34px;font-size:16px}.carousel-nav.prev{left:2px}.carousel-nav.next{right:2px}}.carousel-track{scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:16px;gap:20px;padding:2px;display:flex;overflow-x:auto}.carousel-track::-webkit-scrollbar{display:none}.carousel-slide{scroll-snap-align:start;display:flex}.wi-slide{flex:0 0 clamp(300px,50%,540px)}.wi-slide.is-feature{flex:0 0 clamp(340px,80%,860px)}.wi-inner{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100%;height:clamp(480px,64vh,640px);padding:clamp(20px,3vw,36px) clamp(10px,1.6vw,18px);display:flex;overflow-y:hidden}.wi-slide.is-feature .wi-inner{height:clamp(560px,70vh,720px)}.wi-inner.has-overflow{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;overflow-y:auto}.wi-inner.has-overflow::-webkit-scrollbar{width:6px}.wi-inner.has-overflow::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.wi-inner.has-overflow::-webkit-scrollbar-track{background:0 0}.wi-inner.has-pipeline{justify-content:flex-start}.wi-media{flex-direction:column;align-items:center;width:100%;display:flex}.wi-image{border-radius:12px;width:100%;max-width:420px;display:block}.wi-body{flex-direction:column;align-items:center;width:100%;display:flex}@media (min-width:900px){.wi-inner.has-media{text-align:left;flex-direction:row;align-items:center;gap:clamp(24px,3vw,44px)}.wi-inner.has-media .wi-media{flex:0 0 40%;max-width:340px}.wi-inner.has-media .wi-body{flex:auto;align-items:flex-start;min-width:0}.wi-inner.has-media .tags-center,.wi-inner.has-media .project-links-center{justify-content:flex-start}.wi-inner.has-media .wi-subtitle,.wi-inner.has-media .wi-summary,.wi-inner.has-media .wi-description,.wi-inner.has-media .wi-disclaimer{margin-left:0;margin-right:0}}.has-pipeline .wi-body{max-width:640px}.wi-inner.has-pipeline{padding-top:clamp(14px,2vw,24px);padding-bottom:clamp(14px,2vw,24px)}.has-pipeline .wi-readmore{margin-top:6px}.has-pipeline .project-links-center{margin-top:10px}.wi-inner.has-pipeline{gap:2px}.wi-pipeline{width:100%;margin-top:2px}.wi-tags-below{max-width:640px}.wi-inner.has-media-stacked{justify-content:flex-start;gap:2px}.wi-inner.has-media-stacked .wi-media{order:2;margin-top:0}.wi-inner.has-media-stacked .wi-body{order:1}.wi-inner.has-media-stacked .wi-tags-below-media{order:3}.wi-inner.has-media-stacked .wi-stats,.wi-inner.has-media-stacked .wi-summary,.wi-inner.has-media-stacked .wi-expand,.wi-inner.has-media-stacked .wi-readmore,.wi-inner.has-media-stacked .live-panel,.wi-inner.has-media-stacked .wi-disclaimer{order:1}.wi-inner.has-media-stacked .project-links-center{margin-top:8px;margin-bottom:4px}@media (min-width:900px){.wi-inner.has-media-stacked{text-align:center;flex-direction:column;align-items:center;gap:2px;padding-top:clamp(14px,2vw,24px);padding-bottom:clamp(14px,2vw,24px)}.wi-inner.has-media-stacked .wi-media{flex:none;max-width:640px}.wi-inner.has-media-stacked .wi-body{align-items:center;max-width:640px}.wi-inner.has-media-stacked .tags-center,.wi-inner.has-media-stacked .project-links-center{justify-content:center}.wi-inner.has-media-stacked .wi-subtitle,.wi-inner.has-media-stacked .wi-summary,.wi-inner.has-media-stacked .wi-description,.wi-inner.has-media-stacked .wi-disclaimer{margin-left:auto;margin-right:auto}}.wi-eyebrow-row:empty{display:none}.badge{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);border-radius:20px;padding:3px 9px;font-size:10px;display:inline-block}.wi-eyebrow-row{align-items:center;gap:8px;margin-bottom:16px;display:flex}.wi-badge{margin-bottom:0}.wi-badge-article{color:var(--text-muted);border-color:var(--border-strong)}.live-chip{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:#e0554d;border:1px solid #e0554d73;border-radius:20px;align-items:center;gap:5px;padding:3px 9px 3px 8px;font-size:10px;display:inline-flex}.live-dot{background:#e0554d;border-radius:50%;width:6px;height:6px;animation:1.6s ease-in-out infinite liveDotPulse}@keyframes liveDotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.8)}}.live-panel{background:color-mix(in srgb, var(--text-primary) 5%, transparent);border:1px dashed var(--border-strong);width:100%;font-family:var(--font-mono);color:var(--text-muted);border-radius:10px;align-items:center;gap:9px;margin:10px 0 2px;padding:10px 14px;font-size:11.5px;display:flex}.live-panel-dot{background:#e0554d;border-radius:50%;flex:none;width:6px;height:6px;animation:1.6s ease-in-out infinite liveDotPulse}@media (prefers-reduced-motion:reduce){.live-dot,.live-panel-dot{animation:none}}.wi-stats{flex-wrap:wrap;gap:clamp(18px,4vw,34px);margin:4px 0 2px;display:flex}.wi-stat{flex-direction:column;gap:2px;display:flex}.wi-stat-value{font-family:var(--font-display);color:var(--accent);align-items:center;gap:6px;font-size:clamp(1.25rem,2.6vw,1.6rem);font-weight:700;display:flex}.wi-stat-icon{color:var(--accent);opacity:.8;display:inline-flex}.wi-stat-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:10px}.wi-title{font-family:var(--font-display);margin-bottom:8px;font-size:clamp(1.25rem,2.6vw,1.7rem);font-weight:700;line-height:1.25}.wi-subtitle{color:var(--text-secondary);max-width:520px;margin:0 auto 4px;font-size:.96rem}.wi-meta{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-muted);opacity:.85;margin:0 auto 4px;font-size:11px}.wi-strapline{color:var(--accent);margin:16px 0;font-size:1rem;font-style:italic}.wi-summary{color:var(--text-secondary);max-width:560px;margin:12px auto 0;line-height:1.7}.wi-disclaimer{color:var(--text-muted);opacity:.7;max-width:520px;margin:0 auto 18px;font-size:.78rem}.wi-expand{grid-template-rows:0fr;width:100%;max-width:560px;margin:0 auto;transition:grid-template-rows .35s;display:grid}.wi-expand.is-open{grid-template-rows:1fr}.wi-expand>div{overflow:hidden}.wi-description{color:var(--text-secondary);padding-top:10px;line-height:1.75}.wi-readmore{font-family:var(--font-mono);letter-spacing:.03em;color:var(--accent);cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;margin:10px auto 0;padding:2px 4px;font-size:11.5px;font-weight:600;display:inline-flex}.wi-readmore-chevron{font-size:13px;transition:transform .25s;display:inline-block}.wi-readmore-chevron.is-open{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.wi-expand,.wi-readmore-chevron{transition:none}}.tags{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.tags span{font-family:var(--font-mono);color:var(--text-muted);border:1px solid var(--border-strong);border-radius:20px;padding:2px 9px;font-size:10px}.tags-center{justify-content:center;margin-top:14px}.project-links{flex-wrap:wrap;gap:12px;display:flex}.project-links-center{justify-content:center;margin-top:22px}.project-links a{font-family:var(--font-mono);letter-spacing:.02em;border-radius:10px;align-items:center;gap:6px;padding:10px 20px;font-size:13px;font-weight:600;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s,color .18s;display:inline-flex}.project-links a.is-primary{background:var(--accent);color:var(--accent-contrast);box-shadow:var(--shadow-sm)}.project-links a.is-primary:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.project-links a.is-secondary{color:var(--text-primary);border:1.5px solid var(--border-strong);background:0 0}.project-links a.is-secondary:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.carousel-dots{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px;display:flex}.dot{background:var(--border-strong);cursor:pointer;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:background .2s,transform .2s}.dot.is-active{background:var(--accent);transform:scale(1.3)}.wi-cta{justify-content:center;gap:12px}.wi-cta-icon{color:var(--accent);opacity:.9}.wi-cta-title{font-family:var(--font-display);font-size:1.15rem;font-weight:700}.wi-cta-body{color:var(--text-secondary);max-width:360px;margin:0 auto 6px;line-height:1.65}@media (max-width:899px){.carousel-track{scroll-snap-type:none;flex-direction:column;gap:20px;overflow-x:visible}.carousel-slide{scroll-snap-align:none}.wi-slide,.wi-slide.is-feature{flex-basis:auto}.wi-inner,.wi-slide.is-feature .wi-inner{height:auto;overflow-y:visible}.wi-inner.has-overflow{overflow-y:visible}.carousel-nav,.carousel-counter{display:none}}@media (max-width:480px){.carousel-nav{width:34px;height:34px;font-size:16px}}.award-employer-sub{font-family:var(--font-mono);color:var(--text-muted);margin-top:6px;font-size:12px}.award-toggle{background:var(--surface);border:1px solid var(--border-strong);border-radius:999px;gap:4px;width:max-content;margin:22px auto 0;padding:4px;display:inline-flex}.award-toggle-btn{font-family:var(--font-mono);color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:8px 16px;font-size:12px;font-weight:600;transition:background .2s,color .2s}.award-toggle-btn:hover{color:var(--text-primary)}.award-toggle-btn.is-active{background:var(--accent);color:var(--accent-contrast)}.award-toggle-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.award-toggle-count{opacity:.75}.award-grid{text-align:left;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;max-width:960px;margin:32px auto 0;padding:0;list-style:none;display:grid}.award-card{padding:0;overflow:hidden}.award-card:hover{box-shadow:var(--shadow);border-color:var(--accent);transform:translateY(-4px)}.award-card-inner{flex-direction:column;gap:6px;height:100%;padding:20px 22px;display:flex}.award-card.is-group .award-card-inner{cursor:pointer}.award-card.is-group .award-card-inner:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.award-card-top{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.award-icon{color:var(--accent);flex:none;align-items:center;display:inline-flex}.award-count-badge{font-family:var(--font-mono);color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:999px;align-items:center;gap:4px;padding:3px 9px 3px 10px;font-size:11px;font-weight:600;display:inline-flex}.award-chevron{transition:transform .2s}.award-chevron.is-open{transform:rotate(180deg)}.award-name{font-family:var(--font-display);color:var(--text-primary);font-size:.98rem;font-weight:600;line-height:1.35}.award-org{color:var(--text-muted);opacity:.85;font-size:.82rem}.award-date{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-muted);white-space:nowrap;margin-top:2px;font-size:11px}.award-date-list{border-top:1px solid var(--border);flex-direction:column;gap:5px;margin:8px 0 0;padding:10px 0 0;list-style:none;display:flex}.award-date-list li{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.03em;font-size:11px}@media (max-width:480px){.award-grid{grid-template-columns:1fr}}.flow-mount{width:100%;max-width:640px;margin:0 auto}.flow-mount svg{width:100%;height:auto;display:block}.flow-edge-base{fill:none;stroke-width:2px}.flow-edge-flow{fill:none;stroke-width:2px;stroke-linecap:round;stroke-dasharray:6 200;opacity:.75;animation:3s linear infinite flow-move}@keyframes flow-move{to{stroke-dashoffset:-206px}}.flow-edge-branch .flow-edge-base{opacity:.35}.flow-edge-branch .flow-edge-flow{opacity:0;transition:opacity .3s}.flow-edge-branch.is-active .flow-edge-base{opacity:.9;stroke-width:2.6px}.flow-edge-branch.is-active .flow-edge-flow{opacity:1}.flow-edge-loop .flow-edge-base,.flow-edge-loop .flow-edge-flow{opacity:.16}.flow-edge-loop.is-active .flow-edge-base{opacity:.65}.flow-edge-loop.is-active .flow-edge-flow{opacity:1}.flow-node text{font-family:var(--font-mono)}.flow-node circle{transition:filter .3s,stroke-width .3s}.flow-node-router circle{animation:2.2s ease-in-out infinite router-pulse}@keyframes router-pulse{0%,to{stroke-width:1.6px}50%{stroke-width:2.6px}}.flow-node-outcome.is-active circle{stroke-width:2.4px;filter:drop-shadow(0 0 6px var(--node-hue,var(--accent)))}.flow-caption{text-align:center;font-family:var(--font-mono);letter-spacing:.02em;min-height:20px;color:var(--flow-hue,var(--accent));opacity:0;margin-top:14px;font-size:13px;transform:translateY(4px)}.flow-caption.flash{animation:.4s forwards flow-caption-in}@keyframes flow-caption-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.flow-edge-flow{opacity:.5;animation:none}.flow-node-router circle{animation:none}.flow-caption{opacity:1;transform:none}}.note-section{justify-content:center;display:flex}.note-card{width:100%;max-width:660px;padding:clamp(28px,4vw,44px)}.note-heading{font-family:var(--font-display);color:var(--text-primary);margin-bottom:26px;font-size:clamp(1.6rem,3.4vw,2.15rem);font-weight:700;line-height:1.18}.note-quote{font-family:var(--font-display);color:var(--text-secondary);border-left:2px solid var(--accent);opacity:.95;margin-bottom:20px;padding-left:20px;font-size:clamp(1.05rem,2vw,1.3rem);font-weight:500;line-height:1.55}.note-body{color:var(--text-secondary);margin-bottom:20px;font-size:1rem;line-height:1.85}@media (min-width:768px){.note-card{max-width:720px}}@media (min-width:1024px){.note-card{max-width:780px}.note-body{font-size:1.05rem}}@media (min-width:1440px){.note-card{max-width:860px;padding:clamp(40px,3.4vw,56px)}.note-body{font-size:1.1rem}}@media (min-width:1920px){.note-card{max-width:920px}}.note-divider{border-top:1px dashed var(--border-strong);width:60px;height:1px;margin:20px 0 14px}.note-signoff{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;font-size:.9rem;display:flex}.note-signoff a{color:var(--accent);font-family:var(--font-mono);font-size:.87rem;text-decoration:none}.note-signoff a:hover{text-decoration:underline}.note-signoff-copy{width:22px;height:22px}.note-signature-wrap{margin-bottom:0}.note-signature-mask{display:inline-block}.note-signature-svg{width:auto;height:2.6rem;display:block;overflow:visible}.note-motto{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-top:14px;font-size:11px}
.topbar{z-index:30;background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:16px clamp(20px,5vw,64px);transition:transform .3s;display:grid;position:sticky;top:0;transform:translateY(0)}.topbar.topbar--hidden{transform:translateY(-100%)}@media (prefers-reduced-motion:reduce){.topbar{transition:none}}.mark{font-family:var(--font-hand);color:var(--accent);flex:none;justify-self:start;padding:2px 4px;font-size:26px;font-weight:600;line-height:1;text-decoration:none;transition:transform .2s}.mark:hover{transform:rotate(-4deg)scale(1.05)}.top-links{scrollbar-width:none;justify-self:center;align-items:center;gap:20px;max-width:100%;display:flex;overflow-x:auto}.top-links::-webkit-scrollbar{display:none}.top-links a{font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;padding-bottom:2px;font-size:12.5px;text-decoration:none;transition:color .2s;position:relative}.top-links a:after{content:"";background:currentColor;height:1px;transition:right .25s;position:absolute;bottom:0;left:0;right:100%}.top-links a:hover,.top-links a:focus-visible{color:var(--text-primary)}.top-links a:hover:after,.top-links a:focus-visible:after{right:0}.top-links a.is-active{color:var(--accent)}.top-links a.is-active:after{background:var(--accent);right:0}@media (prefers-reduced-motion:reduce){.top-links a:after{transition:none}}.nav-divider{background:var(--border-strong);flex:none;width:1px;height:14px}.topbar-right{justify-self:end;align-items:center;gap:10px;display:flex}.theme-toggle{border:1px solid var(--border-strong);border-radius:50%;flex:none;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;transition:border-color .2s,transform .2s;display:flex}.theme-toggle:hover{border-color:var(--accent);transform:rotate(-14deg)}.hamburger{border:1px solid var(--border-strong);border-radius:50%;flex:none;justify-content:center;align-items:center;gap:4px;width:34px;height:34px;transition:border-color .2s;display:none}.hamburger:hover{border-color:var(--accent)}.hamburger span{background:var(--text-primary);border-radius:2px;width:16px;height:1.6px;transition:transform .25s,opacity .2s;display:block;position:absolute}.hamburger span:first-child{transform:translateY(-5px)}.hamburger span:nth-child(3){transform:translateY(5px)}.hamburger.is-open span:first-child{transform:rotate(45deg)}.hamburger.is-open span:nth-child(2){opacity:0}.hamburger.is-open span:nth-child(3){transform:rotate(-45deg)}.mobile-nav-panel{z-index:29;grid-template-rows:0fr;transition:grid-template-rows .3s;display:grid;position:absolute;top:100%;left:0;right:0}.mobile-nav-panel.is-open{grid-template-rows:1fr}.mobile-nav-panel-inner{overflow:hidden}.mobile-nav-panel nav{background:var(--bg);border-bottom:1px solid var(--border);box-shadow:var(--shadow);flex-direction:column;padding:8px clamp(20px,5vw,64px) 20px;display:flex}.mobile-nav-panel nav a{font-family:var(--font-mono);color:var(--text-secondary);border-bottom:1px solid var(--border);padding:13px 2px;font-size:14.5px;text-decoration:none;transition:color .2s}.mobile-nav-panel nav a:last-child{border-bottom:none}.mobile-nav-panel nav a:hover{color:var(--text-primary)}.mobile-nav-panel nav a.is-active{color:var(--accent);border-bottom-color:var(--accent)}.mobile-nav-panel .nav-divider{display:none}@media (prefers-reduced-motion:reduce){.mobile-nav-panel,.hamburger span{transition:none}}@media (max-width:900px){.topbar{justify-content:space-between;align-items:center;display:flex}.top-links{display:none}.hamburger{display:flex}}.floating-nav{z-index:25;flex-direction:column;gap:16px;display:flex;position:fixed;top:50%;right:20px;transform:translateY(-50%)}@media (max-width:900px){.floating-nav{display:none}}.floating-nav-item{justify-content:flex-end;align-items:center;text-decoration:none;display:flex;position:relative}.floating-nav-dot{background:var(--border-strong);border-radius:50%;flex:none;width:9px;height:9px;transition:width .25s,height .25s,background .25s,box-shadow .25s;position:relative}.floating-nav-item:hover .floating-nav-dot{background:var(--accent);width:11px;height:11px;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent)}.floating-nav-item.is-active .floating-nav-dot{background:var(--accent);width:13px;height:13px;box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 25%, transparent)}.floating-nav-dot:after{content:"";border:1px solid var(--accent);opacity:0;pointer-events:none;border-radius:50%;position:absolute;inset:-6px;transform:scale(.5)}.floating-nav-item:hover .floating-nav-dot:after{animation:.55s ease-out navDotRipple}@keyframes navDotRipple{0%{opacity:.55;transform:scale(.5)}to{opacity:0;transform:scale(1.9)}}@media (prefers-reduced-motion:reduce){.floating-nav-dot,.floating-nav-dot:after{transition:none;animation:none}}.floating-nav-top{font:inherit;cursor:pointer;opacity:0;pointer-events:none;border:none;border-top:1px solid var(--border);background:0 0;margin-top:4px;padding:12px 0 0;transition:opacity .25s,transform .25s;transform:translateY(6px)}.floating-nav-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.floating-nav-top-dot{background:var(--accent);width:22px;height:22px;color:var(--surface);box-shadow:0 2px 8px color-mix(in srgb, var(--accent) 35%, transparent);border:none;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s,box-shadow .2s;display:flex}.floating-nav-top:hover .floating-nav-top-dot{box-shadow:0 3px 12px color-mix(in srgb, var(--accent) 50%, transparent);transform:scale(1.12)}@media (prefers-reduced-motion:reduce){.floating-nav-top,.floating-nav-top-dot{transition:none}}.floating-nav-label{font-family:var(--font-mono);color:var(--text-primary);background:var(--surface-elevated);border:1px solid var(--border);white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;padding:4px 10px;font-size:11px;transition:opacity .2s,transform .2s;position:absolute;right:22px;transform:translate(6px)}.floating-nav-item:hover .floating-nav-label{opacity:1;transform:translate(0)}@media (max-width:760px){.foot{flex-direction:column;gap:6px}}
.reveal{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(24px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}.milestone-dot,.compass,.card,.btn{transition:none!important;animation:none!important}}
.pipeline-mount{flex-direction:column;align-items:center;width:100%;max-width:640px;margin:0 auto;display:flex}.pipeline-svg2{width:100%;height:auto;display:block;overflow:visible}.pipeline-step-node{cursor:default}.pipeline-step-node.is-clickable{cursor:pointer}.pipeline-step-node.is-clickable circle{stroke-dasharray:2 2}.pipeline-step-node:focus-visible circle{outline:2px solid var(--node-hue,var(--accent));outline-offset:2px}.pipeline-step-node.is-open circle{fill:color-mix(in srgb, var(--node-hue,var(--accent)) 14%, var(--surface))}.pipeline-step-label{font-family:var(--font-mono);fill:var(--text-muted)}.pipeline-step-edge .flow-edge-base{opacity:.3}.pipeline-step-edge .flow-edge-flow{opacity:0;transition:opacity .3s}.pipeline-step-edge.is-active .flow-edge-base{opacity:.9;stroke-width:2.4px}.pipeline-step-edge.is-active .flow-edge-flow{opacity:1}.pipeline-branch-edge .flow-edge-base{opacity:.3;stroke-dasharray:3 3}.pipeline-branch-edge.is-active .flow-edge-base{opacity:.9;stroke-width:2.4px;stroke-dasharray:none}.pipeline-loop-edge .flow-edge-base{opacity:.16;stroke-dasharray:3 3}.pipeline-loop-edge.is-active .flow-edge-base{opacity:.85;stroke-width:2.4px;stroke-dasharray:none}.pipeline-branch-node circle{stroke-dasharray:3 3}.pipeline-branch-node.is-active circle{stroke-dasharray:none}.pipeline-caption{min-height:32px}.pipeline-legend{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.02em;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 16px;margin-top:10px;font-size:11px;display:flex}.pipeline-legend-dot{border-radius:50%;width:8px;height:8px;margin-right:2px;display:inline-block}.pipeline-detail{background:var(--surface);border:1px solid var(--border);text-align:left;border-radius:12px;width:100%;max-width:520px;margin-top:12px;padding:12px 16px}.pipeline-detail p{color:var(--text-secondary);margin:0;font-size:.85rem;line-height:1.55}.pipeline-detail strong{color:var(--text-primary);font-family:var(--font-display);font-weight:600}@media (max-width:480px){.pipeline-legend{font-size:10px}}
