.app-splash{position:fixed;inset:0;z-index:120;display:grid;place-items:center;background:var(--bg);color:var(--ink);font-family:var(--f);font-size:15px;line-height:1.5;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;padding:max(24px,var(--safe-top)) max(24px,var(--safe-right)) max(24px,var(--safe-bottom)) max(24px,var(--safe-left));transition:opacity .42s ease,visibility .42s ease}.app-splash--hide{opacity:0;visibility:hidden;pointer-events:none}.app-splash__inner{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:20rem;animation:app-splash-in .55s cubic-bezier(.22,1,.36,1) both}.app-splash__logo{width:88px;height:88px;border-radius:22px;background:var(--btn);color:var(--on-btn);display:grid;place-items:center;box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 8%,transparent),0 18px 40px -20px rgba(14,14,17,.35);animation:app-splash-logo .7s cubic-bezier(.22,1,.36,1) .05s both}.app-splash__mark{font-family:inherit;font-size:1.75rem;font-weight:700;letter-spacing:-.04em;line-height:1}.app-splash__name{margin:20px 0 0;font-family:inherit;font-size:14.5px;font-weight:600;letter-spacing:-.02em;line-height:1.2}.app-splash__role{margin:6px 0 0;font-family:inherit;font-size:11.5px;font-weight:400;color:var(--muted);line-height:1.35}.app-splash__progress{margin-top:28px;width:min(200px,56vw);height:3px;border-radius:99px;background:color-mix(in srgb,var(--ink) 8%,var(--line));overflow:hidden}.app-splash__progress-bar{display:block;height:100%;width:40%;border-radius:inherit;background:var(--btn);animation:app-splash-progress 1.1s ease-in-out infinite}@keyframes app-splash-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes app-splash-logo{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes app-splash-progress{0%{transform:translateX(-120%)}to{transform:translateX(320%)}}@media (prefers-reduced-motion:reduce){.app-splash__inner,.app-splash__logo,.app-splash__progress-bar{animation:none}.app-splash{transition:opacity .15s ease}}:root{--geo-line:color-mix(in srgb,var(--ink) 6.5%,transparent);--geo-line-major:color-mix(in srgb,var(--ink) 10%,transparent);--strip-tools-bg:var(--soft);--strip-companies-bg:var(--card);--footer-bg:var(--soft);--bleed-edge-pad:max(28px,calc((100vw - 1120px) / 2 + 28px));--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--touch-target-min:44px;--bottom-nav-h:56px;--bottom-nav-pad:10px;--bottom-nav-total:calc(var(--bottom-nav-h) + var(--bottom-nav-pad) * 2 + var(--safe-bottom));--bottom-nav-indicator:#0e0e11;--bottom-nav-indicator-on:#fbfbfc}.ref-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--touch-target-min);padding:12px 20px;border-radius:999px;font-weight:600;font-size:14px;line-height:1.2;font-family:inherit;text-decoration:none;border:1px solid transparent;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:opacity .2s ease,transform .2s ease}.ref-btn--primary{background:var(--btn,#0e0e11);color:var(--on-btn,#fff);border-color:var(--btn,#0e0e11)}.ref-btn--secondary{background:var(--card);color:var(--ink);border-color:var(--line);box-shadow:var(--sh)}.ref-btn:active{transform:scale(.98)}.ref-btn__arrow{font-size:1.05em;line-height:1}.portfolio-page a.ref-btn--primary,.portfolio-page a.ref-btn--primary:hover,.portfolio-page button.ref-btn--primary,.portfolio-page button.ref-btn--primary:hover{color:var(--on-btn)}html[data-theme=dark] .bottom-nav__indicator{background:var(--bottom-nav-indicator)}html[data-theme=dark] .bottom-nav__tab--active,html[data-theme=dark] .bottom-nav__tab--active .bottom-nav__icon-svg{color:var(--bottom-nav-indicator-on)}.portfolio-page a.ref-btn--secondary,.portfolio-page a.ref-btn--secondary:hover,.portfolio-page button.ref-btn--secondary,.portfolio-page button.ref-btn--secondary:hover{color:var(--ink)}.portfolio-page a.ref-btn--primary .ref-btn__arrow,.portfolio-page a.ref-btn--secondary .ref-btn__arrow{color:inherit}html[data-theme=dark]{--geo-line:color-mix(in srgb,var(--ink) 5.5%,transparent);--geo-line-major:color-mix(in srgb,var(--ink) 9%,transparent);--strip-tools-bg:var(--soft);--strip-companies-bg:color-mix(in srgb,var(--card) 92%,var(--bg));--footer-bg:color-mix(in srgb,var(--soft) 88%,#000);--elevated-card-bg:#1b1b22;--elevated-card-border:#3a3a46;--elevated-card-ink:#f3f3f6;--elevated-card-muted:#b0b0bb;--elevated-card-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 7%,transparent),0 14px 36px -18px rgba(0,0,0,0.72)}::selection{background-color:#0e0e11;color:#ffffff}html[data-theme=dark] ::selection{background-color:#f3f3f5;color:#0e0e11}html[data-theme=dark] ::-moz-selection{background-color:#f3f3f5;color:#0e0e11}.skip-link{position:fixed;left:16px;top:12px;z-index:200;padding:12px 18px;border-radius:10px;background:var(--btn);color:var(--on-btn);font-size:14px;font-weight:600;text-decoration:none;transform:translateY(-160%);transition:transform .2s ease}.skip-link:focus{transform:translateY(0);outline:3px solid var(--ink);outline-offset:2px}.portfolio-page{position:relative;isolation:isolate;min-height:100dvh;min-height:100svh;overflow-x:clip}.portfolio-main:focus{outline:none}.portfolio-page:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-color:var(--bg);background-image:var(--portfolio-bg-geo),linear-gradient(var(--geo-line-major) 1px,transparent 1px),linear-gradient(90deg,var(--geo-line-major) 1px,transparent 1px),linear-gradient(var(--geo-line) 1px,transparent 1px),linear-gradient(90deg,var(--geo-line) 1px,transparent 1px);background-size:cover,96px 96px,96px 96px,24px 24px,24px 24px;background-position:50%,50%,50%,50%,50%;background-repeat:no-repeat,repeat,repeat,repeat,repeat}@media (prefers-reduced-motion:no-preference){.portfolio-page:before{background-attachment:fixed,fixed,fixed,fixed,fixed}}@media (max-width:900px){.portfolio-page:before{background-image:var(--portfolio-bg-geo);background-size:cover;background-repeat:no-repeat;background-attachment:scroll}html[data-theme=dark] .portfolio-page:before{background-image:var(--portfolio-bg-geo-dark)}}@media (prefers-reduced-motion:reduce){.portfolio-page:before{background-attachment:scroll;background-image:none;background-color:var(--bg)}.skip-link{transition:none}}html[data-theme=dark] .portfolio-page:before{background-image:var(--portfolio-bg-geo-dark),linear-gradient(var(--geo-line-major) 1px,transparent 1px),linear-gradient(90deg,var(--geo-line-major) 1px,transparent 1px),linear-gradient(var(--geo-line) 1px,transparent 1px),linear-gradient(90deg,var(--geo-line) 1px,transparent 1px)}.portfolio-band{width:100%;box-sizing:border-box}.portfolio-band,.portfolio-band--alt{background:transparent}.portfolio-band--alt .contact-footer{padding-top:clamp(20px,3vh,32px)}html{scroll-padding-top:112px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.sec.sec--viewport,.viewport-band{min-height:100dvh;min-height:100svh;box-sizing:border-box}.hero-anchor.viewport-band{display:flex;flex-direction:column;justify-content:center;gap:clamp(16px,3vh,28px);padding-block:clamp(20px,4vh,40px)}.hero-anchor.viewport-band .hero{padding-top:0;padding-bottom:0;width:100%}.sec.sec--viewport{align-items:center;padding-top:clamp(28px,5vh,52px);padding-bottom:clamp(28px,5vh,52px)}.sec.sec--viewport>.sec__body,.sec.sec--viewport>.sec__intro{align-self:center}.sec.sec--viewport.sec--tall{align-items:start}.sec.sec--viewport.sec--tall>.sec__body,.sec.sec--viewport.sec--tall>.sec__intro{align-self:start}.contact-footer{display:flex;flex-direction:column;gap:0;margin-top:0;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;max-width:100vw;box-sizing:border-box;padding-top:clamp(20px,3vh,32px);padding-bottom:0;padding-inline:var(--bleed-edge-pad);min-height:0;background:var(--footer-bg)}#about,#companies,#contact,.hero-anchor,.sec[id],.stack-strip{scroll-margin-top:112px}.hero-code{min-height:11.2em}.hero-code__line{opacity:0;transform:translate3d(-10px,5px,0);transition:opacity .42s ease,transform .48s cubic-bezier(.22,1,.36,1)}.hero-code__line--on{opacity:1;transform:translateZ(0)}.hero-code__kw{font-weight:600}.hero-code__id,.hero-code__kw{color:var(--ink)}.hero-code__key{color:color-mix(in srgb,var(--ink) 82%,#5b6cff 18%)}.hero-code__bool,.hero-code__punct{color:var(--muted)}.hero-code__bool{display:inline-block;opacity:.35;transform:scale(.88);transition:color .38s ease,opacity .38s ease,transform .42s cubic-bezier(.34,1.35,.64,1)}.hero-code__bool--on{color:#15803d;opacity:1;transform:scale(1)}html[data-theme=dark] .hero-code__bool--on{color:#4ade80}.hero-code__caret{display:inline-block;width:7px;height:1.05em;margin-left:3px;vertical-align:text-bottom;border-radius:1px;background:var(--ink);animation:hero-code-caret 1s step-end infinite}@keyframes hero-code-caret{50%{opacity:0}}.hero-reach{opacity:0;transform:translate3d(0,16px,0) scale(.94);transition:opacity .55s ease,transform .68s cubic-bezier(.22,1,.36,1);pointer-events:none}.hero-reach--on{opacity:1;transform:translateZ(0) scale(1);pointer-events:auto}.hero-reach__value-placeholder{display:block;margin:2px 0 8px;font-size:20px;visibility:hidden}.hero-reach__bars i{transform:scaleY(0);transform-origin:bottom center;transition:transform .58s cubic-bezier(.22,1,.36,1)}.hero-reach__bars--on i[data-i="0"]{transition-delay:0s}.hero-reach__bars--on i[data-i="1"]{transition-delay:70ms}.hero-reach__bars--on i[data-i="2"]{transition-delay:.14s}.hero-reach__bars--on i[data-i="3"]{transition-delay:.21s}.hero-reach__bars--on i[data-i="4"]{transition-delay:.28s}.hero-reach__bars--on i[data-i="5"]{transition-delay:.35s}.hero-reach__bars--on i{transform:scaleY(1)}@media (prefers-reduced-motion:reduce){.hero-code__line{opacity:1;transform:none;transition:none}.hero-code__bool{opacity:1;transform:none;color:#15803d}.hero-code__caret{display:none}.hero-reach{opacity:1;transform:none;transition:none;pointer-events:auto}.hero-reach__bars i{transform:scaleY(1);transition:none}}.about-quote{--about-quote-bg:#0e0e11;--about-quote-ink:#fbfbfc;--about-quote-muted:color-mix(in srgb,var(--about-quote-ink) 72%,transparent);--about-quote-bleed:clamp(72px,11vh,112px);width:100%;margin:clamp(48px,8vh,104px) 0;padding:clamp(36px,5.5vh,56px) 0;background:var(--about-quote-bg);color:var(--about-quote-ink);overflow:visible;box-sizing:border-box;position:relative;z-index:2}.about-quote__inner{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center;overflow:visible}.about-quote__portrait{justify-self:start;width:100%;max-width:300px;margin-block:calc(-1 * var(--about-quote-bleed));padding:10px;border-radius:18px;background:#e8e8ed;border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);box-shadow:0 20px 40px -24px rgba(0,0,0,.35);position:relative;z-index:3}.about-quote__photo{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center top;border-radius:12px}.about-quote__content{position:relative;min-width:0;padding:8px 0}.about-quote__mark{position:absolute;top:-.35em;left:-.05em;font-size:clamp(4.5rem,12vw,7.5rem);line-height:1;font-weight:700;color:color-mix(in srgb,var(--about-quote-ink) 14%,transparent);pointer-events:none;-webkit-user-select:none;user-select:none;font-family:Georgia,Times New Roman,serif}.about-quote__text{position:relative;z-index:1;margin:0;font-size:clamp(1.05rem,1.35vw,1.35rem);line-height:1.65;font-weight:400;color:var(--about-quote-muted);max-width:52rem}.about-quote__name{color:var(--about-quote-ink);font-weight:600;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--about-quote-ink) 55%,transparent);text-underline-offset:5px;text-decoration-thickness:1px}.about-quote__name:hover{text-decoration-color:var(--about-quote-ink)}.about-quote__social{display:flex;flex-wrap:wrap;justify-content:center;gap:22px;margin-top:clamp(28px,4vh,40px)}.about-quote__social-link{display:grid;place-items:center;width:44px;height:44px;color:var(--about-quote-ink);opacity:.92;transition:opacity .2s ease,transform .2s ease}.about-quote__social-link:hover{opacity:1;transform:translateY(-2px)}.about-quote__social-icon{width:26px;height:26px}html[data-theme=dark] .about-quote{--about-quote-bg:#ffffff;--about-quote-ink:#121214;--about-quote-muted:color-mix(in srgb,var(--about-quote-ink) 68%,transparent)}html[data-theme=dark] .about-quote__portrait{background:#f3f3f6;border-color:color-mix(in srgb,var(--about-quote-ink) 12%,transparent);box-shadow:0 16px 36px -28px rgba(0,0,0,.28)}html[data-theme=dark] .about-quote__mark{color:color-mix(in srgb,var(--about-quote-ink) 10%,transparent)}html[data-theme=dark] .about-quote__social-link{color:var(--about-quote-ink)}html[data-theme=dark] .blog-page .article-card,html[data-theme=dark] .contact-footer .contact-details.card,html[data-theme=dark] .portfolio-main .sec .card.plat,html[data-theme=dark] .portfolio-main .sec .card.proj,html[data-theme=dark] .portfolio-main .sec .card.rec-card,html[data-theme=dark] .portfolio-main .sec .content-carousel .content-tile.card,html[data-theme=dark] .portfolio-main .sec .mentor-carousel__card.svc,html[data-theme=dark] .portfolio-main .sec .repo-carousel .repo-carousel-tile.card{background:var(--elevated-card-bg);border-color:var(--elevated-card-border);box-shadow:var(--elevated-card-shadow);color:var(--elevated-card-ink)}html[data-theme=dark] .blog-page .article-card__title,html[data-theme=dark] .contact-footer .contact-details.card,html[data-theme=dark] .portfolio-main .sec .card.plat .medium-box__name,html[data-theme=dark] .portfolio-main .sec .card.plat .medium-box__stat strong,html[data-theme=dark] .portfolio-main .sec .card.proj h3,html[data-theme=dark] .portfolio-main .sec .mentor-carousel__card.svc b,html[data-theme=dark] .portfolio-main .sec .rec-author,html[data-theme=dark] .portfolio-main .sec .rec-quote{color:var(--elevated-card-ink)}html[data-theme=dark] .blog-page .article-card__meta,html[data-theme=dark] .contact-footer .contact-details small,html[data-theme=dark] .portfolio-main .sec .card.plat .medium-box__follow,html[data-theme=dark] .portfolio-main .sec .card.plat .medium-box__handle,html[data-theme=dark] .portfolio-main .sec .card.plat .medium-box__stat,html[data-theme=dark] .portfolio-main .sec .card.proj p,html[data-theme=dark] .portfolio-main .sec .mentor-carousel__card.svc span,html[data-theme=dark] .portfolio-main .sec .rec-link,html[data-theme=dark] .portfolio-main .sec .rec-role{color:var(--elevated-card-muted)}html[data-theme=dark] .portfolio-main .sec .card.plat .medium-box__post-meta,html[data-theme=dark] .portfolio-main .sec .card.proj .chip,html[data-theme=dark] .portfolio-main .sec .card.rec-card .chip{background:color-mix(in srgb,var(--elevated-card-bg) 30%,#2e2e38);border:1px solid color-mix(in srgb,var(--elevated-card-border) 85%,transparent);color:var(--elevated-card-muted)}html[data-theme=dark] .portfolio-main .sec .card.plat .medium-box__post-title{color:var(--elevated-card-ink)}html[data-theme=dark] .portfolio-main .sec .card.proj .go{border-color:var(--elevated-card-border);color:var(--elevated-card-ink)}html[data-theme=dark] .portfolio-main .sec .rec-card__foot{border-top-color:var(--elevated-card-border)}html[data-theme=dark] .portfolio-main .sec .content-tile--post .content-tile__title,html[data-theme=dark] .portfolio-main .sec .content-tile__title{color:var(--elevated-card-ink)}html[data-theme=dark] .portfolio-main .sec .content-tile__icon,html[data-theme=dark] .portfolio-main .sec .content-tile__meta{color:var(--elevated-card-muted)}html[data-theme=dark] .portfolio-main .sec .content-tile__mark{background:var(--elevated-card-ink);color:var(--elevated-card-bg)}html[data-theme=dark] .portfolio-main .sec .content-tile__thumb-placeholder,html[data-theme=dark] .portfolio-main .sec .content-tile__thumb-placeholder--medium{background:linear-gradient(145deg,#2e2e36,#232329)}html[data-theme=dark] .portfolio-main .sec .repo-carousel .repo-carousel-tile h3{color:var(--elevated-card-ink)}html[data-theme=dark] .portfolio-main .sec .repo-carousel .repo-carousel-tile .m,html[data-theme=dark] .portfolio-main .sec .repo-carousel .repo-carousel-tile p{color:var(--elevated-card-muted)}html[data-theme=dark] .portfolio-main .sec .repo-carousel .repo-carousel-tile .chip{background:color-mix(in srgb,var(--elevated-card-bg) 30%,#2e2e38);border:1px solid color-mix(in srgb,var(--elevated-card-border) 85%,transparent);color:var(--elevated-card-muted)}html[data-theme=dark] .companies-strip .card,html[data-theme=dark] .stack-strip .card,html[data-theme=dark] .tech-marquee .card{background:var(--tile-surface,#fff);border-color:var(--tile-line,#ececf0);box-shadow:var(--tile-sh);color:var(--tile-ink,#0e0e11)}html[data-theme=dark] .sec--projects .proj__thumb{background:linear-gradient(180deg,#2a2a32,#222228);border-bottom-color:var(--elevated-card-border)}html[data-theme=dark] .contact-footer .contact-details.card:hover,html[data-theme=dark] .portfolio-main .sec .card.plat:hover,html[data-theme=dark] .portfolio-main .sec .card.rec-card:hover,html[data-theme=dark] .portfolio-main .sec .content-carousel .content-tile.card:hover,html[data-theme=dark] .portfolio-main .sec .mentor-carousel__card.svc:hover,html[data-theme=dark] .portfolio-main .sec .repo-carousel .repo-carousel-tile.card:hover,html[data-theme=dark] .sec--projects .card.proj:hover{background:color-mix(in srgb,var(--elevated-card-bg) 92%,#fff 4%);border-color:color-mix(in srgb,var(--elevated-card-ink) 18%,var(--elevated-card-border));box-shadow:0 0 0 1px color-mix(in srgb,var(--elevated-card-ink) 8%,transparent),0 18px 44px -16px rgba(0,0,0,.78)}@media (max-width:820px){.about-quote{--about-quote-bleed:clamp(40px,7vh,64px);margin:clamp(32px,6vh,64px) 0;padding:clamp(28px,4vh,44px) 0;overflow-x:clip}.about-quote__inner{grid-template-columns:1fr;justify-items:center;text-align:center;gap:clamp(20px,4vw,32px)}.about-quote__portrait{margin-block:calc(-1 * var(--about-quote-bleed)) 0;margin-inline:auto;max-width:min(280px,72vw)}.about-quote__text{margin-inline:auto;padding-inline:4px}.about-quote__mark{left:50%;transform:translateX(-50%);top:-1.25rem}.about-quote__social{justify-content:center;gap:16px;margin-top:24px}}@media (max-width:680px){.about-quote{--about-quote-bleed:24px;margin:24px 0 32px;padding:20px 0 28px}.about-quote__inner{padding-top:8px;gap:18px}.about-quote__portrait{margin-block:0;max-width:min(240px,68vw);padding:8px}.about-quote__text{font-size:1rem;line-height:1.62;text-align:left}.about-quote__mark{left:0;transform:none;top:-.5rem;font-size:clamp(3.5rem,16vw,5rem)}.about-quote__content{width:100%;text-align:left}.about-quote__social{justify-content:flex-start;margin-top:20px}.about-quote__social-link{width:48px;height:48px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hero-headline{display:grid;align-items:start}.hero-headline__ghost,.hero-headline__live{grid-area:1/1;font:inherit;letter-spacing:inherit;line-height:inherit}.hero-headline__ghost{visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}.hero-headline__live{min-width:0}.hero-headline__text{vertical-align:top}.hero-headline__caret{display:inline-block;width:3px;height:.92em;margin-left:3px;vertical-align:-.06em;border-radius:1px;background:var(--ink);opacity:1}.hero-headline__caret--on{opacity:1;animation:hero-caret-blink .9s step-end infinite}@keyframes hero-caret-blink{0%,to{opacity:1}50%{opacity:0}}@media (prefers-reduced-motion:reduce){.hero-headline__caret{display:none}}.scroll-top{position:fixed;right:max(20px,env(safe-area-inset-right,0px));bottom:max(20px,env(safe-area-inset-bottom,0px));z-index:60;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#0e0e11;color:#fff;box-shadow:var(--sh);cursor:pointer;display:grid;place-items:center;opacity:0;transform:translateY(16px) scale(.9);pointer-events:none;transition:opacity .35s cubic-bezier(.22,1,.36,1),transform .4s cubic-bezier(.22,1,.36,1),box-shadow .25s ease}.scroll-top--visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.scroll-top:hover{box-shadow:var(--sh),0 8px 24px -8px rgba(14,14,17,.35);transform:translateY(-2px) scale(1)}.scroll-top:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.scroll-top__icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}@media (prefers-reduced-motion:reduce){.scroll-top{transition:opacity .2s ease}.scroll-top,.scroll-top--visible,.scroll-top:hover{transform:none}}.hand{font-family:var(--font-caveat),Caveat,cursive;z-index:5;color:#12121a;font-size:clamp(22px,2.6vw,28px);font-weight:600;line-height:1.1;pointer-events:none;paint-order:stroke fill;-webkit-text-stroke:3px rgba(255,255,255,.92);text-shadow:0 1px 0 #fff,0 0 14px rgba(255,255,255,.85),0 2px 10px rgba(14,14,17,.12)}html[data-theme=dark] .hand{color:#f6f6f8;-webkit-text-stroke:3px rgba(14,14,17,.75);text-shadow:0 1px 0 rgba(0,0,0,.55),0 0 12px rgba(0,0,0,.45)}.stack-strip{width:100%;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--strip-tools-bg);padding:0;box-sizing:border-box;min-height:0;scroll-snap-align:none}.stack-strip__intro{padding:36px 0 14px;max-width:42rem}.stack-strip__intro .d{font-size:15px;line-height:1.62;max-width:40em;margin-bottom:4px}.sec.sec--stacked{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;gap:clamp(14px,2.5vh,28px);align-items:start;align-content:start}.sec.sec--stacked>.sec__intro{grid-column:1;grid-row:1;max-width:42rem}.sec.sec--stacked>.sec__body{grid-column:1;grid-row:2;width:100%;align-self:stretch}.sec.sec--stacked .d{font-size:15px;line-height:1.62;max-width:40em;margin-bottom:4px}.sec.sec--compact{min-height:0;scroll-snap-align:none;padding-top:36px;padding-bottom:32px;align-items:start}.sec.sec--compact>.sec__body,.sec.sec--compact>.sec__intro{align-self:start}.tech-marquee{--marquee-duration:42s;--tile-surface:#fff;--tile-line:#ececf0;--tile-ink:#0e0e11;--tile-sh:0 1px 2px rgba(14,14,17,0.04),0 10px 24px -14px rgba(14,14,17,0.14);position:relative;width:100%;padding:16px 0 22px;background:linear-gradient(180deg,color-mix(in srgb,var(--soft) 70%,transparent) 0,color-mix(in srgb,var(--soft) 35%,transparent) 100%);overflow:hidden}.tech-marquee:after,.tech-marquee:before{content:"";position:absolute;top:0;bottom:0;width:min(96px,14vw);z-index:2;pointer-events:none}.tech-marquee:before{left:0;background:linear-gradient(90deg,var(--bg) 0,transparent 100%)}.tech-marquee:after{right:0;background:linear-gradient(270deg,var(--bg) 0,transparent 100%)}.tech-marquee__shine{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(105deg,transparent 40%,color-mix(in srgb,var(--card) 65%,transparent) 50%,transparent 60%);background-size:200% 100%;animation:tech-marquee-shine 6s ease-in-out infinite;opacity:.35}.tech-marquee__viewport{overflow:hidden;width:100%}.tech-marquee__track{display:flex;align-items:stretch;gap:14px;width:max-content;padding:8px 0 10px;animation:tech-marquee-scroll var(--marquee-duration) linear infinite;will-change:transform}.tech-marquee:hover .tech-marquee__track{animation-play-state:paused}.tech-marquee__slide{flex:0 0 auto;width:88px}.tech-marquee__tile.card{border:1px solid var(--tile-line);background:var(--tile-surface);box-shadow:var(--tile-sh);color:var(--tile-ink);border-radius:14px;width:100%;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px 6px 8px;text-align:center;box-sizing:border-box;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease,border-color .28s ease}.tech-marquee__tile:hover{transform:translateY(-6px) scale(1.04);border-color:color-mix(in srgb,var(--tile-ink) 14%,var(--tile-line));box-shadow:0 4px 12px rgba(14,14,17,.08),0 20px 40px -16px rgba(14,14,17,.22)}.tech-marquee__tile .tile__name{font-size:10px;line-height:1.2;font-weight:500;max-width:100%;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.tech-marquee__tile .tile__icon{width:36px;height:36px;display:grid;place-items:center}.tech-marquee__tile .tile__icon .tech-svg{width:24px;height:24px}.tech-carousel .tile__icon--payment,.tech-marquee__tile .tile__icon--payment{background:#ffffff;border:1px solid color-mix(in srgb,var(--ink) 10%,var(--line));border-radius:10px;box-shadow:0 1px 2px rgba(14,14,17,.06);box-sizing:border-box}.tech-carousel .tile__icon--payment .tech-svg,.tech-marquee__tile .tile__icon--payment .tech-svg{width:22px;height:22px}@keyframes tech-marquee-scroll{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes tech-marquee-shine{0%,to{background-position:120% 0}50%{background-position:-20% 0}}.sec.sec--split{grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:28px 40px;align-items:start}.sec.sec--split>.sec__intro{max-width:none;position:sticky;top:120px;align-self:start}.sec.sec--split>.sec__body{min-width:0;width:100%;align-self:start}.sec.sec--split.sec--compact{padding-top:clamp(36px,5vh,48px);padding-bottom:clamp(32px,4vh,40px)}.sec.sec--split .d{max-width:none;font-size:14.5px;line-height:1.58}.proj-carousel{overflow:visible;background:transparent;border:none;box-shadow:none;width:100%;min-width:0}.proj-carousel__track{display:flex;gap:12px;overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:12px 0 20px;margin:-12px 0 -20px;align-items:stretch}.proj-carousel__track::-webkit-scrollbar{display:none}.proj-carousel__slide{flex:0 0 calc((100% - 12px * (var(--visible-slots, 2) - 1)) / var(--visible-slots, 2));min-width:min(72vw,280px);max-width:340px;scroll-snap-align:start;display:flex;align-items:stretch}.proj-carousel__card{width:100%;height:100%}@media (min-width:1100px){.proj-carousel__slide{min-width:240px;max-width:320px}}.sec--projects .card.proj{display:flex;flex-direction:column;overflow:hidden;text-decoration:none;color:inherit;transition:transform .24s cubic-bezier(.22,1,.36,1),border-color .24s ease,box-shadow .24s ease}.sec--projects .card.proj:hover{transform:translateY(-6px);box-shadow:0 14px 32px -18px rgba(14,14,17,.22)}.sec--projects .proj__thumb{position:relative;aspect-ratio:4/3;background:linear-gradient(180deg,#f0f0f4,#e8e8ee);padding:14px 12px 0;overflow:hidden;border-bottom:1px solid var(--line)}.sec--projects .proj__cats{position:absolute;top:10px;left:10px;z-index:2;display:flex;flex-wrap:wrap;gap:5px;max-width:calc(100% - 16px);pointer-events:none}.sec--projects .proj__cat.chip{font-size:10.5px;font-weight:600;padding:3px 8px;background:rgba(255,255,255,.94);border:1px solid color-mix(in srgb,var(--line) 85%,#fff);color:var(--ink);box-shadow:0 1px 2px rgba(14,14,17,.06)}.sec--projects .project-preview{width:100%;height:100%;min-height:0;border-radius:8px 8px 0 0;border:1px solid rgba(14,14,17,.08);border-bottom:none;background:#fff;box-shadow:0 8px 24px -12px rgba(14,14,17,.2);display:flex;flex-direction:column;overflow:hidden}.sec--projects .project-preview__chrome{display:flex;gap:4px;padding:7px 10px;border-bottom:1px solid #ececf0;background:#fafafa;flex:none}.sec--projects .project-preview__chrome span{width:7px;height:7px;border-radius:50%;background:#e2e2e8}.sec--projects .project-preview__chrome span:first-child{background:#f87171}.sec--projects .project-preview__chrome span:nth-child(2){background:#fbbf24}.sec--projects .project-preview__chrome span:nth-child(3){background:#4ade80}.sec--projects .project-preview__body{flex:1 1;min-height:0;padding:10px;display:flex;gap:8px}.sec--projects .project-preview--banking .project-preview__body--bank{flex-direction:column;gap:8px}.sec--projects .project-preview__hero-line{height:28px;border-radius:6px;background:linear-gradient(90deg,#1e3a5f,#3b82f6);opacity:.85}.sec--projects .project-preview__grid2{display:grid;grid-template-columns:1fr 1fr;gap:6px;flex:1 1}.sec--projects .project-preview__grid2>div{border-radius:5px;background:#f1f5f9;border:1px solid #e2e8f0}.sec--projects .project-preview__sidebar{width:22%;flex:none;border-radius:5px;background:#f4f4f7}.sec--projects .project-preview__main{flex:1 1;display:flex;flex-direction:column;gap:6px}.sec--projects .project-preview__card{flex:1 1;border-radius:5px;background:#f8fafc;border:1px solid #e8ecf0}.sec--projects .project-preview__card--sm{flex:0.55 1}.sec--projects .project-preview__chart{height:42%;border-radius:5px;background:linear-gradient(180deg,#d1fae5,#ecfdf5);border:1px solid #a7f3d0}.sec--projects .project-preview__rows{flex:1 1;display:flex;flex-direction:column;gap:5px;margin-top:6px}.sec--projects .project-preview__rows>div{flex:1 1;border-radius:4px;background:#f4f4f7}.sec--projects .proj .b{padding:12px 12px 14px;gap:5px}.sec--projects .proj h3{font-size:13.5px;line-height:1.35;letter-spacing:-.01em}.sec--projects .proj p{font-size:12px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.sec--projects .proj .row{margin-top:4px}.sec--projects .proj .tags .chip{font-size:10.5px;padding:2px 7px}.sec--projects .proj .go{width:26px;height:26px}@media (max-width:640px){.proj-carousel__track{--visible-slots:1;scroll-padding-inline:4px;gap:10px}.proj-carousel__slide{flex:0 0 100%;min-width:0;max-width:100%}.sec--projects .proj__cat.chip{font-size:10px;padding:4px 7px}}@media (min-width:901px) and (max-width:1279px){.sec--projects .proj h3{font-size:12px}.sec--projects .proj p{font-size:11px;-webkit-line-clamp:2}}.mentor-carousel{width:100%;min-width:0;overflow:visible}.mentor-carousel__track{display:flex;gap:10px;overflow-x:auto;overflow-y:visible;scroll-snap-type:x proximity;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:8px 0 16px;margin:0;align-items:stretch}.mentor-carousel__track::-webkit-scrollbar{display:none}.mentor-carousel__slide{flex:0 0 calc((100% - 10px * (var(--visible-slots, 4) - 1)) / var(--visible-slots, 4));min-width:148px;scroll-snap-align:start;display:flex;align-items:stretch}.mentor-carousel__card.svc{width:100%;height:100%;min-height:132px;box-sizing:border-box;text-decoration:none;color:inherit;transition:transform .24s cubic-bezier(.22,1,.36,1),border-color .24s ease,box-shadow .24s ease}.mentor-carousel__card.svc:hover{transform:translateY(-6px)}@media (max-width:900px){.mentor-carousel__slide{flex:0 0 min(72vw,200px)}}.sec.sec--journey{grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:28px 48px;align-items:start}.sec.sec--journey>.sec__intro{max-width:none;position:sticky;top:120px}.sec.sec--journey>.sec__body{min-width:0;width:100%;position:sticky;top:120px;align-self:start}.sec.sec--journey .sec-actions{margin-top:4px}.sec.sec--journey .sec__intro-extra{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.sec.sec--journey .sec-actions{width:100%;max-width:100%;align-items:stretch}.sec.sec--journey .sec-actions .journey-highlights{width:100%;box-sizing:border-box}.journey-nav__heading{margin:0 0 10px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.journey-nav__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.journey-nav__item{position:relative;width:100%;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px 10px;align-items:center;padding:11px 12px 11px 14px;margin:0;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--soft) 28%,var(--bg));text-align:left;cursor:pointer;font:inherit;color:inherit;transition:background .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s cubic-bezier(.22,1,.36,1)}.journey-nav__item:before{content:none}.journey-nav__item:hover{background:var(--card);border-color:color-mix(in srgb,var(--ink) 6%,var(--line));box-shadow:0 8px 22px -16px rgba(14,14,17,.35);transform:translateX(2px)}.journey-nav__item--active{background:var(--card);border-color:color-mix(in srgb,var(--ink) 8%,var(--line));border-left-width:3px;border-left-color:var(--btn);padding-left:12px;box-shadow:var(--sh);transform:none}.journey-nav__item--active.journey-nav__item--current{border-left-color:var(--btn);border-color:color-mix(in srgb,var(--btn) 24%,var(--line));background:linear-gradient(105deg,var(--card) 0,color-mix(in srgb,var(--soft) 45%,var(--card)) 100%)}.journey-nav__logo{width:44px;height:44px;border-radius:11px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;flex-shrink:0;box-shadow:0 1px 2px rgba(14,14,17,.04)}.journey-nav__logo img{max-width:34px;max-height:28px;width:auto;height:auto;object-fit:contain}.journey-nav__logo .journey-card__logo-fallback{font-size:11px}.journey-nav__copy{min-width:0;display:flex;flex-direction:column;gap:3px}.journey-nav__company{font-size:13px;font-weight:600;color:var(--ink);line-height:1.3;letter-spacing:-.02em}.journey-nav__company,.journey-nav__role{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.journey-nav__role{font-size:11.5px;font-weight:500;color:var(--muted);line-height:1.35}.journey-nav__item--active .journey-nav__role{color:color-mix(in srgb,var(--ink) 55%,var(--muted))}.journey-nav__meta{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0;padding-left:4px}.journey-nav__year{font-size:11px;font-weight:600;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.2;white-space:nowrap}.journey-nav__item--active .journey-nav__year{color:var(--ink)}.journey-nav__pill{padding:2px 7px;border-radius:999px;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--on-btn);background:var(--btn);line-height:1.3}.journey-detail{width:100%;min-width:0}.journey-detail__panel{min-height:300px;max-height:min(72vh,640px);display:flex;flex-direction:column;overflow:hidden;animation:journey-detail-swap .38s cubic-bezier(.22,1,.36,1)}.journey-detail__panel--current{border-color:color-mix(in srgb,var(--btn) 22%,var(--line));background:linear-gradient(145deg,var(--card) 0,color-mix(in srgb,var(--soft) 65%,var(--card)) 100%)}.journey-detail__panel--current .journey-card__identity{background:color-mix(in srgb,var(--soft) 55%,var(--card))}.journey-detail__split{grid-template-columns:minmax(176px,200px) minmax(0,1fr);flex:1 1;min-height:0;align-items:stretch}.journey-detail__panel .journey-card__identity{border-right:1px solid var(--line);border-radius:15px 0 0 15px;min-height:100%;overflow:auto;overscroll-behavior:contain}.journey-detail__identity{padding-bottom:22px}.journey-open-link{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--ink);text-decoration:none;letter-spacing:-.01em;line-height:1.35;padding:2px 0;border-radius:4px;transition:color .2s ease,opacity .2s ease}.journey-open-link:hover{color:color-mix(in srgb,var(--btn) 85%,var(--ink))}.journey-open-link__icon{font-size:13px;font-weight:500;opacity:.72;line-height:1}.journey-detail__body{display:flex;flex-direction:column;gap:0;padding:26px 28px 22px;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.journey-detail__rule{flex-shrink:0;height:1px;margin:0 -28px 20px;background:var(--line)}.journey-detail__rule--footer{margin:8px -28px 0}.journey-detail__header{margin-bottom:18px}.journey-detail__title{margin:0 0 10px;font-size:22px;font-weight:600;letter-spacing:-.03em;line-height:1.2;color:var(--ink)}.journey-detail__lede{margin:0;font-size:15px;line-height:1.55;font-weight:500;color:color-mix(in srgb,var(--ink) 88%,var(--muted));letter-spacing:-.015em}.journey-detail__story{margin-bottom:0}.journey-detail__story p{margin:0 0 14px;font-size:14.5px;line-height:1.68;color:var(--muted)}.journey-detail__story p:last-child{margin-bottom:0}.journey-detail__section{margin-bottom:20px}.journey-detail__section .journey-card__detail-label{margin-bottom:10px;font-size:12px}.journey-detail__footer{margin-top:auto;padding-top:18px}.journey-detail__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.journey-open-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:999px;font-size:13px;font-weight:600;letter-spacing:-.01em;text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);box-shadow:0 1px 2px rgba(14,14,17,.04);transition:background .2s ease,border-color .2s ease,transform .2s cubic-bezier(.22,1,.36,1)}.journey-open-btn:hover{border-color:color-mix(in srgb,var(--ink) 10%,var(--line));transform:translateY(-1px)}.journey-open-btn--primary{color:var(--on-btn);background:var(--btn);border-color:var(--btn)}.journey-open-btn--primary:hover{border-color:var(--btn);background:color-mix(in srgb,var(--btn) 92%,#000);color:var(--on-btn)}.portfolio-page a.journey-open-btn{color:var(--ink)}.portfolio-page a.journey-open-btn--primary,.portfolio-page a.journey-open-btn--primary:hover{color:var(--on-btn)}.portfolio-page a.journey-open-btn--primary .journey-open-link__icon{color:inherit;opacity:.85}@keyframes journey-detail-swap{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.journey-highlights{list-style:none;margin:20px 0 0;padding:18px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 10px}.journey-highlights__value{display:block;font-size:22px;font-weight:600;letter-spacing:-.03em;color:var(--ink);line-height:1.15;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.journey-highlights__label{display:block;margin-top:4px;font-size:11px;font-weight:500;color:var(--muted);line-height:1.3}.journey-card__inner{border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:var(--sh);padding:0;min-height:100%;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease,border-color .28s ease}.journey-card__split{display:grid;grid-template-columns:minmax(168px,220px) minmax(0,1fr);align-items:stretch;min-height:100%}.journey-card__identity{padding:22px 20px 20px;background:color-mix(in srgb,var(--soft) 35%,var(--card));display:flex;flex-direction:column;align-items:flex-start;gap:0;text-align:left}.journey-card__detail{padding:22px 26px 20px;min-width:0}.journey-detail__body.journey-card__detail{padding:26px 28px 22px}.journey-card__detail-label{margin:0 0 8px;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.journey-card__logo{flex-shrink:0;width:64px;height:64px;border-radius:14px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;box-shadow:0 1px 2px rgba(14,14,17,.04);margin-bottom:14px}.journey-card__logo img.company-logo--ranosys{max-width:52px;max-height:22px}.journey-card__logo img{max-width:46px;max-height:34px;width:auto;height:auto;object-fit:contain}.journey-card__logo-fallback{font-size:12px;font-weight:700;color:var(--muted)}.journey-card__company{margin:0 0 6px;font-size:13px;font-weight:600;color:var(--ink);line-height:1.35}.journey-card__role{margin:0 0 8px;font-size:16px;font-weight:600;letter-spacing:-.022em;line-height:1.25;color:var(--ink)}.journey-card__period{display:block;margin:0 0 12px;font-size:12px;font-weight:500;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.35}.journey-card__badge{margin-top:auto;padding:4px 9px;border-radius:6px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--on-btn);background:var(--btn)}.journey-card__summary{margin:0 0 14px;font-size:15px;line-height:1.58;color:var(--ink);font-weight:500;letter-spacing:-.01em}.journey-card__highlights{margin:0 0 16px;padding-left:1.15em;font-size:14px;line-height:1.58;color:var(--muted)}.journey-card__highlights li{margin-bottom:8px}.journey-card__highlights li:last-child{margin-bottom:0}.journey-card__tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.journey-card__tags li{margin:0}@media (max-width:980px){.sec.sec--journey{grid-template-columns:1fr;gap:24px}.sec.sec--journey>.sec__intro{position:static}.journey-highlights{grid-template-columns:repeat(3,1fr)}.sec.sec--journey>.sec__body{position:static}}@media (max-width:680px){.sec.sec--journey .journey-highlights{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 8px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.sec.sec--journey .journey-highlights li{min-width:0;text-align:left}.sec.sec--journey .journey-highlights__value{font-size:clamp(17px,5vw,20px)}.sec.sec--journey .journey-highlights__label{margin-top:4px;font-size:10px;line-height:1.3;max-width:none}.sec.sec--journey .sec__intro-extra{margin-top:28px;padding-top:20px}.sec.sec--journey .journey-nav__heading{margin-bottom:14px}.sec.sec--journey .journey-nav,.sec.sec--journey .journey-nav__list{width:100%}.sec.sec--journey .journey-nav__list{gap:10px}.sec.sec--journey>.sec__body{margin-bottom:56px}.journey-nav__item{grid-template-columns:40px minmax(0,1fr) auto;padding:10px 10px 10px 12px;gap:10px 8px}.journey-nav__logo{width:40px;height:40px}.journey-card__split{grid-template-columns:1fr}.journey-detail__panel{max-height:none;overflow:visible}.journey-detail__split{min-height:0}.journey-detail__panel .journey-card__identity{border-right:none;border-bottom:1px solid var(--line);border-radius:15px 15px 0 0;min-height:0;overflow:visible}.journey-card__identity{border-right:none;border-bottom:1px solid var(--line);padding:18px 18px 16px;flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px 16px}.journey-card__logo{margin-bottom:0;width:52px;height:52px}.journey-card__badge{margin-top:0;margin-left:auto}.journey-card__detail,.journey-detail__body.journey-card__detail{padding:18px 18px 16px;max-height:none;overflow:visible}.journey-detail__rule{margin-left:-18px;margin-right:-18px}.journey-detail__title{font-size:20px}.journey-card__role{font-size:16px;margin-bottom:0;flex:1 1 100%}.journey-card__company{flex:1 1 auto;margin-bottom:0}.journey-card__period{margin-bottom:0}}.sec.scroll-reveal:not(.scroll-reveal--in) .journey-detail__panel{opacity:0;transform:translateX(16px)}.sec.scroll-reveal--in.sec--journey .journey-detail__panel{animation:journey-card-in .55s cubic-bezier(.22,1,.36,1) both}@keyframes journey-card-in{0%{opacity:0;transform:translateX(22px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.journey-nav__item:hover{transform:none}.journey-detail__panel{animation:none}.sec.scroll-reveal:not(.scroll-reveal--in) .journey-detail__panel{opacity:1;transform:none}.sec.scroll-reveal--in.sec--journey .journey-detail__panel{animation:none}}.companies-strip{--tile-surface:#fff;--tile-line:#ececf0;--tile-ink:#0e0e11;--tile-sh:0 1px 2px rgba(14,14,17,0.04),0 10px 24px -14px rgba(14,14,17,0.14);width:100%;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--strip-companies-bg);padding:8px 0 10px;box-sizing:border-box;scroll-snap-align:none;min-height:0}.companies-strip .company-carousel{width:100%;min-width:0}.companies-strip .company-carousel__track{display:flex;gap:10px;overflow-x:auto;overflow-y:visible;scroll-snap-type:x proximity;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:10px var(--companies-strip-pad,28px) 14px;margin:0;box-sizing:border-box}.companies-strip .company-carousel__track::-webkit-scrollbar{display:none}.companies-strip .company-carousel__slide{flex:0 0 108px;min-width:108px;max-width:108px;scroll-snap-align:start}.companies-strip .company-carousel .company-tile.card,.companies-strip .company-tile.company-tile__link{border:1px solid var(--tile-line);background:var(--tile-surface);box-shadow:var(--tile-sh);min-height:72px;height:100%;border-radius:12px;padding:14px 10px;display:flex;flex-direction:row;align-items:center;justify-content:center;text-decoration:none;box-sizing:border-box}.companies-strip .company-mark{display:flex;align-items:center;justify-content:center;width:100%;min-height:28px;flex:0 0 auto}.companies-strip .company-mark .company-logo{display:block;width:auto;max-width:88px;max-height:28px;height:auto;object-fit:contain}.companies-strip .company-logo--lloyds,.companies-strip .company-logo--publicis{max-height:26px;max-width:92px}.companies-strip .company-logo--wipro{max-height:20px;max-width:72px}.companies-strip .company-logo--wordpress{max-height:26px;max-width:26px}.companies-strip .company-logo--tata{max-height:28px;max-width:32px}.companies-strip .company-logo--apollo{max-height:18px;max-width:72px}.companies-strip .company-logo--razertech{max-height:28px;max-width:132px;width:auto}.companies-strip .company-logo--ranosys{max-height:26px;max-width:96px}.journey-nav__logo img.company-logo--razertech{max-width:100px;max-height:26px}.journey-card__logo img.company-logo--razertech{max-width:112px;max-height:28px}@media (min-width:1176px){.companies-strip{--companies-strip-pad:calc((100vw - 1120px) / 2 + 28px)}}@media (prefers-reduced-motion:reduce){.tech-marquee__track{animation:none;flex-wrap:wrap;justify-content:center;width:100%;max-width:1120px;margin:0 auto;padding-inline:28px;box-sizing:border-box}.tech-marquee__shine{animation:none;display:none}.tech-marquee__viewport{overflow:visible}}@media (max-width:980px){.tech-marquee__slide{width:76px}.companies-strip .company-carousel__slide{flex:0 0 100px;min-width:100px;max-width:100px}.companies-strip .company-carousel .company-tile.card{min-height:68px}}.sec.sec--testimonials{min-height:0}.sec.sec--testimonials.sec--compact{padding-top:clamp(36px,5vh,48px);padding-bottom:clamp(32px,4vh,40px)}.sec--testimonials>.sec__body{width:100%}.rec-card{padding:18px;display:flex;flex-direction:column;gap:12px;width:100%;min-height:300px;height:auto;overflow:visible;box-sizing:border-box}.rec-card__body{flex:1 1;min-height:0;display:flex;flex-direction:column}.rec-card__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.rec-card__source{flex-shrink:0;font-size:11px}.rec-card__foot{flex-shrink:0;margin-top:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px 12px;min-height:52px;padding-top:12px;border-top:1px solid var(--line)}.rec-card__who{min-width:0}.rec-avatar{width:48px;height:48px;border-radius:50%;overflow:hidden;flex-shrink:0;display:grid;place-items:center;border:1px solid var(--line);background:var(--soft)}.rec-avatar--linkedin{box-shadow:0 0 0 2px var(--card)}.rec-avatar__img{width:100%;height:100%;object-fit:cover}.rec-avatar__initials{font-size:14px;font-weight:700;color:var(--ink);letter-spacing:.02em}.rec-quote{margin:0;font-size:14.5px;line-height:1.55;color:var(--ink);flex:1 1;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.rec-author{display:block;font-size:14px;line-height:1.25}.rec-role{display:block;font-size:12px;color:var(--muted);margin-top:4px;line-height:1.35}.rec-link{font-size:12.5px;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:3px;white-space:nowrap;justify-self:end;padding:4px 0;flex-shrink:0}.rec-link:hover{opacity:.75}.rec-link--placeholder{display:none}.blog-page{padding:8px 0 48px}.blog-page__hero{max-width:42rem;padding:12px 0 36px;border-bottom:1px solid var(--line);margin-bottom:28px}.blog-page__back{display:inline-block;font-size:13px;font-weight:500;color:var(--muted);margin-bottom:20px;text-decoration:none}.blog-page__back:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.blog-page__hero h1{font-size:clamp(1.75rem,4vw,2.25rem);font-weight:600;letter-spacing:-.03em;line-height:1.12;margin:12px 0 0}.blog-page__lead{margin:14px 0 22px;font-size:15px;line-height:1.55;color:var(--muted);max-width:38em}.article-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.article-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;text-decoration:none;color:inherit;transition:border-color .2s ease,transform .2s ease}.article-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--ink) 12%,var(--line))}.article-card__title{margin:0;font-size:16px;font-weight:600;line-height:1.35;letter-spacing:-.02em}.article-card__meta{margin:6px 0 0;font-size:13px;color:var(--muted)}.article-card__arrow{flex-shrink:0;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:14px}.blog-page__footer{margin-top:40px;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;max-width:100vw;box-sizing:border-box;padding:24px var(--bleed-edge-pad) 28px;background:var(--footer-bg,var(--soft));border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:14px}.blog-page__medium{font-size:13px;font-weight:500;color:var(--muted);text-decoration:none}.blog-page__medium:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.projects-page{padding:8px 0 48px}.projects-page__hero{max-width:42rem;padding:12px 0 28px;border-bottom:1px solid var(--line);margin-bottom:28px}.projects-page__back{display:inline-block;font-size:13px;font-weight:500;color:var(--muted);margin-bottom:20px;text-decoration:none}.projects-page__back:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.projects-page__title{font-size:clamp(1.75rem,4vw,2.25rem);font-weight:600;letter-spacing:-.03em;line-height:1.12;margin:12px 0 0}.projects-page__lead{margin:14px 0 0;font-size:15px;line-height:1.55;color:var(--muted);max-width:40em}.projects-page__footer{margin-top:40px;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;max-width:100vw;box-sizing:border-box;padding:24px var(--bleed-edge-pad) 28px;background:var(--footer-bg,var(--soft));border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:14px}.projects-page__github{font-size:13px;font-weight:500;color:var(--muted);text-decoration:none}.projects-page__github:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.projects-index-list{list-style:none;margin:0;padding:0;display:grid;gap:16px}.projects-index-card{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px 18px;text-decoration:none;color:inherit;transition:border-color .2s ease,transform .2s ease}.projects-index-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--ink) 12%,var(--line))}.projects-index-card__thumb{border-radius:10px;overflow:hidden;border:1px solid var(--line);aspect-ratio:16/10}.project-shot{position:relative;width:100%;height:100%;min-height:100%;overflow:hidden;background:var(--soft)}.project-shot__chrome{position:absolute;z-index:2;top:0;left:0;right:0;display:flex;gap:6px;padding:10px 12px;background:linear-gradient(to bottom,color-mix(in srgb,var(--ink) 72%,transparent),transparent);pointer-events:none}.project-shot__chrome span{width:8px;height:8px;border-radius:50%;background:color-mix(in srgb,#fff 35%,transparent)}.project-shot__chrome span:first-child{background:#ff5f57}.project-shot__chrome span:nth-child(2){background:#febc2e}.project-shot__chrome span:nth-child(3){background:#28c840}.project-shot__img{object-fit:cover;object-position:top center}.project-shot--fallback .project-preview{height:100%;min-height:100%}.sec--projects .proj__thumb .project-shot{position:absolute;inset:0}.project-shot--detail{min-height:280px;border-radius:inherit}.project-shot--index{min-height:120px}.projects-index-card__thumb .project-shot{height:100%;min-height:100%}.projects-index-card__cats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.projects-index-card__title{margin:0;font-size:17px;font-weight:600;line-height:1.35;letter-spacing:-.02em}.projects-index-card__desc{margin:8px 0 0;font-size:14px;line-height:1.45}.projects-index-card__tags{margin-top:12px}.projects-index-card__arrow{flex-shrink:0;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center}@media (max-width:720px){.projects-index-card{grid-template-columns:1fr}.projects-index-card__thumb{max-width:100%}.projects-index-card__arrow{justify-self:end}}.project-detail__hero{border-bottom:none;margin-bottom:0;padding-bottom:20px}.project-detail__cats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}.project-detail__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.project-detail__preview{position:relative;margin:0 0 32px;padding:0;overflow:hidden;aspect-ratio:16/9;max-height:420px}.project-detail__preview .project-shot{height:100%;min-height:280px}.project-detail__section{padding:24px 0;border-top:1px solid var(--line);max-width:42rem}.project-detail__section h3{margin:0 0 10px;font-size:15px;font-weight:600;letter-spacing:-.02em}.project-detail__list{margin:0;padding:0 0 0 1.1em;display:grid;gap:10px}.project-detail__list li{padding-left:.15em}.project-detail__note{display:block;margin-top:14px;font-size:14px;line-height:1.5}html[data-theme=dark] .projects-index-card{background:var(--card,var(--soft))}@media (max-width:680px){:root{--bleed-edge-pad:max(20px,var(--safe-left))}.projects-page{padding-bottom:max(32px,calc(24px + var(--safe-bottom)))}.projects-page__hero{padding-top:4px}.projects-page__back{min-height:var(--touch-target-min);display:inline-flex;align-items:center;padding:6px 0}.projects-index-card{grid-template-columns:1fr;padding:14px 14px 16px;gap:14px}.projects-index-card__thumb{aspect-ratio:16/9;max-height:200px}.project-detail__preview{max-height:min(52vw,240px);aspect-ratio:16/10}.project-detail__actions{flex-direction:column;align-items:stretch;width:100%}.project-detail__actions .ref-btn{width:100%;justify-content:center;min-height:48px}.blog-page__footer,.projects-page__footer{padding-bottom:max(28px,calc(20px + var(--safe-bottom)));padding-left:max(var(--bleed-edge-pad),var(--safe-left));padding-right:max(var(--bleed-edge-pad),var(--safe-right))}}@media (hover:none) and (pointer:coarse){.sec--projects .card.proj:hover{transform:none;box-shadow:none}.article-card:hover,.projects-index-card:hover{transform:none}}.bottom-nav{--bottom-nav-fab-btn:48px;--bottom-nav-fab-col:64px;--bottom-nav-notch:33px;display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;padding-bottom:max(var(--safe-bottom),6px)}.bottom-nav__chrome{position:absolute;inset:0;background:#fff;border-top:1px solid var(--line);pointer-events:none;-webkit-mask-image:radial-gradient(circle at 50% 0,transparent var(--bottom-nav-notch),#000 calc(var(--bottom-nav-notch) + 1px));mask-image:radial-gradient(circle at 50% 0,transparent var(--bottom-nav-notch),#000 calc(var(--bottom-nav-notch) + 1px))}html[data-theme=dark] .bottom-nav__chrome{background:var(--card)}.bottom-nav__fab-slot{position:relative;list-style:none;margin:0;padding:0;min-width:0;align-self:stretch;pointer-events:none}.bottom-nav__fab{position:absolute;left:50%;top:0;z-index:3;display:grid;place-items:center;width:var(--bottom-nav-fab-btn);height:var(--bottom-nav-fab-btn);margin:0;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--bottom-nav-indicator);color:var(--bottom-nav-indicator-on);box-shadow:var(--sh);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transform:translate(-50%,-50%) scale(.92);opacity:.42;pointer-events:auto;transition:opacity .28s ease,transform .32s cubic-bezier(.22,1,.36,1),box-shadow .28s ease}.bottom-nav--fab-ready .bottom-nav__fab{opacity:1;transform:translate(-50%,-50%) scale(1);box-shadow:var(--sh),0 10px 28px -12px rgba(14,14,17,.45)}.bottom-nav__fab:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.bottom-nav__fab-icon{width:22px;height:22px}.bottom-nav__list{position:relative;z-index:1;list-style:none;margin:0;padding:8px max(4px,var(--safe-left)) max(12px,var(--bottom-nav-pad)) max(4px,var(--safe-right));display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) var(--bottom-nav-fab-col) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:1px;max-width:1120px;margin-inline:auto;align-items:stretch}.bottom-nav__indicator{position:absolute;top:6px;left:0;height:calc(var(--bottom-nav-h) - 2px);border-radius:14px;background:var(--bottom-nav-indicator);z-index:0;pointer-events:none;opacity:0;transition:opacity .2s ease;will-change:transform,width}.bottom-nav__indicator[data-visible=true]{opacity:1;transition:transform .48s cubic-bezier(.22,1,.36,1),width .48s cubic-bezier(.22,1,.36,1),opacity .2s ease}.bottom-nav__item{position:relative;z-index:1;min-width:0}.bottom-nav__tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:var(--bottom-nav-h);padding:6px 2px;border-radius:12px;text-decoration:none;color:var(--muted);font-family:var(--f);font-size:10px;font-weight:500;letter-spacing:-.02em;line-height:1.2;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:color .32s cubic-bezier(.22,1,.36,1)}.bottom-nav__list[data-animate=true] .bottom-nav__tab{transition:color .52s cubic-bezier(.22,1,.36,1)}.bottom-nav__tab--active,.bottom-nav__tab--active .bottom-nav__icon-svg{color:var(--bottom-nav-indicator-on)}.bottom-nav__icon-svg{width:20px;height:20px;flex-shrink:0;transition:color .32s cubic-bezier(.22,1,.36,1)}.bottom-nav__label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}@media (max-width:380px){.bottom-nav{--bottom-nav-fab-btn:44px;--bottom-nav-fab-col:58px;--bottom-nav-notch:30px}.bottom-nav__label{font-size:9px}.bottom-nav__icon-svg{width:19px;height:19px}}@media (prefers-reduced-motion:reduce){.bottom-nav__fab,.bottom-nav__icon-svg,.bottom-nav__indicator,.bottom-nav__tab{transition:none}}.sheet-detail-scaffold{max-width:1120px;margin:0 auto;padding-left:max(28px,var(--safe-left));padding-right:max(28px,var(--safe-right))}.bottom-sheet__handle{display:none}.bottom-sheet__scroll{min-width:0}.projects-page__footer--in-sheet{margin-top:24px}@media (max-width:680px){.bottom-nav{display:block}.scroll-top,.site-footer-nav{display:none}.site-footer__inner{gap:0}.contact-footer .site-footer{display:none}.contact-footer{padding-bottom:max(8px,var(--safe-bottom))}.portfolio-page{padding-bottom:var(--bottom-nav-total)}.portfolio-page--sheet-detail .sheet-detail-scaffold{padding:0;max-width:none}.portfolio-page--sheet-detail .bottom-sheet--detail{margin-top:4px;background:var(--card);border:1px solid var(--line);border-bottom:none;border-radius:20px 20px 0 0;box-shadow:0 -10px 40px -16px rgba(14,14,17,.18),0 0 0 1px color-mix(in srgb,var(--line) 80%,transparent);min-height:calc(100dvh - 52px - var(--bottom-nav-total));max-height:none;display:flex;flex-direction:column;overflow:hidden}.portfolio-page--sheet-detail .bottom-sheet__handle{display:block;width:40px;height:4px;margin:10px auto 4px;border-radius:99px;background:color-mix(in srgb,var(--muted) 55%,var(--line));flex-shrink:0}.portfolio-page--sheet-detail .bottom-sheet__scroll{flex:1 1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 max(20px,var(--safe-left)) 12px max(20px,var(--safe-right))}.portfolio-page--sheet-detail .projects-page{padding-bottom:16px}.portfolio-page--sheet-detail .projects-page__footer--in-sheet{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;padding-bottom:max(16px,var(--safe-bottom))}.blog-page__footer,.projects-page__footer{padding-bottom:max(16px,calc(8px + var(--bottom-nav-total)))}}@media (min-width:681px){.portfolio-page--sheet-detail .bottom-sheet--detail,.portfolio-page--sheet-detail .bottom-sheet__scroll{display:block}}.nav-menu-btn{display:none;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;place-items:center}.nav-menu-btn__icon{display:flex;flex-direction:column;justify-content:center;gap:5px;width:18px}.nav-menu-btn__bar{display:block;height:2px;width:100%;border-radius:1px;background:currentColor;transition:transform .2s ease,opacity .2s ease}.nav-menu-btn[aria-expanded=true] .nav-menu-btn__bar:first-child{transform:translateY(7px) rotate(45deg)}.nav-menu-btn[aria-expanded=true] .nav-menu-btn__bar:nth-child(2){opacity:0}.nav-menu-btn[aria-expanded=true] .nav-menu-btn__bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-drawer{position:fixed;inset:0;z-index:110;pointer-events:none;visibility:hidden}.mobile-drawer--open{pointer-events:auto;visibility:visible}.mobile-drawer__backdrop{position:absolute;inset:0;border:none;margin:0;padding:0;background:color-mix(in srgb,var(--ink) 42%,transparent);opacity:0;transition:opacity .28s ease;cursor:pointer}.mobile-drawer--open .mobile-drawer__backdrop{opacity:1}.mobile-drawer__panel{position:absolute;top:0;right:0;width:min(100%,320px);height:100%;max-height:100dvh;padding:max(12px,var(--safe-top)) max(16px,var(--safe-right)) max(16px,var(--safe-bottom)) max(16px,var(--safe-left));background:var(--card);border-left:1px solid var(--line);box-shadow:-12px 0 40px -12px rgba(14,14,17,.2);display:flex;flex-direction:column;gap:16px;transform:translateX(100%);transition:transform .32s cubic-bezier(.22,1,.36,1);overflow-y:auto;-webkit-overflow-scrolling:touch}.mobile-drawer--open .mobile-drawer__panel{transform:translateX(0)}.mobile-drawer__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}.mobile-drawer__title{margin:0;font-size:15px;font-weight:600;letter-spacing:-.02em}.mobile-drawer__close{width:44px;height:44px;border:none;border-radius:10px;background:var(--soft);color:var(--ink);font-size:24px;line-height:1;cursor:pointer}.mobile-drawer__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.mobile-drawer__link{display:flex;align-items:center;min-height:48px;padding:10px 14px;border-radius:12px;font-size:15px;font-weight:500;color:var(--ink);text-decoration:none}.mobile-drawer__link--active{background:color-mix(in srgb,var(--ink) 8%,transparent);font-weight:600}.mobile-drawer__nav{flex:1 1;min-height:0}.mobile-drawer__actions{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.mobile-drawer__meta{margin-top:auto;padding-top:16px;text-align:center}.mobile-drawer__copyright{margin:0;font-size:12px;font-weight:500;color:var(--ink);line-height:1.4}.mobile-drawer__role{margin:6px 0 0;font-size:11px;font-weight:500;color:var(--muted);line-height:1.35}.mobile-drawer__cta{width:100%;justify-content:center}body.nav-drawer-open{overflow:hidden}body.nav-drawer-open .bottom-nav{visibility:hidden;pointer-events:none}@media (max-width:680px){.nav-menu-btn{display:grid}.nav .right{display:flex;align-items:center;gap:6px}}@media (min-width:681px){.mobile-drawer{display:none}}.plat--medium{display:flex;flex-direction:column;padding:16px;min-height:100%}.medium-box__head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.medium-box__mark{width:36px;height:36px;border-radius:8px;background:var(--ink);color:var(--on-btn);font-weight:700;font-size:17px;line-height:1;display:grid;place-items:center;flex-shrink:0}.medium-box__identity{flex:1 1;min-width:0}.medium-box__name{display:block;font-size:14px;font-weight:600;line-height:1.2}.medium-box__handle{display:block;font-size:11px;color:var(--muted);margin-top:2px}.medium-box__follow{font-size:11px;font-weight:600;color:var(--muted);text-decoration:none;flex-shrink:0}.medium-box__follow:hover{color:var(--ink);text-decoration:underline;text-underline-offset:2px}.medium-box__stat{margin:0 0 12px;font-size:13px;color:var(--muted)}.medium-box__stat strong{display:block;font-size:15px;font-weight:600;color:var(--ink);line-height:1.35}.sec--content>.sec__body{min-width:0;align-self:stretch;display:flex;flex-direction:column;justify-content:flex-start;width:100%}.sec.sec--content.sec--stacked{grid-template-columns:minmax(0,1fr)}@media (max-width:900px){.sec.sec--split{grid-template-columns:1fr;gap:22px}.sec.sec--split>.sec__intro{position:static}}.sec--content .content-carousel,.sec.sec--viewport>.sec__body>.g3,.sec.sec--viewport>.sec__body>.g4,.sec.sec--viewport>.sec__body>.journey-experience,.sec.sec--viewport>.sec__body>.repo-carousel{width:100%}.content-platform-row__empty,.integration-strips{display:flex;flex-direction:column;gap:28px}.integration-strip__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 16px;margin-bottom:4px}.integration-strip__identity{display:flex;align-items:center;gap:10px;min-width:0}.integration-strip__mark{border-radius:10px;background:var(--ink);color:var(--card);font-size:18px;font-weight:700}.integration-strip__icon,.integration-strip__mark{width:36px;height:36px;display:grid;place-items:center;flex-shrink:0}.integration-strip__icon svg{width:28px;height:28px}.integration-strip__name{display:block;font-size:14px;font-weight:600;color:var(--ink)}.integration-strip__handle{display:block;font-size:11px;color:var(--muted);margin-top:2px}.integration-strip__meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px}.integration-strip__stat{font-size:13px;font-weight:600;color:var(--ink)}.integration-strip__link{font-size:12px;font-weight:600;color:var(--muted);text-decoration:none}.integration-strip__link:hover{color:var(--ink);text-decoration:underline;text-underline-offset:2px}.content-platform-row__empty,.integration-strip__empty{margin:0;padding:16px 14px;font-size:13px;line-height:1.45;color:var(--muted);border:1px dashed var(--line);border-radius:12px}.content-platform-row__empty code,.integration-strip__empty code{font-size:12px;color:var(--ink)}.medium-box__posts{list-style:none;margin:0;padding:0;flex:1 1;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--soft)}.medium-box__post{display:block;padding:11px 12px;text-decoration:none;color:var(--ink);border-top:1px solid var(--line);transition:background-color .15s ease}.medium-box__post:first-child{border-top:none}.medium-box__post:hover{background:var(--card)}.medium-box__post-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:12.5px;font-weight:600;line-height:1.35}.medium-box__post-meta{display:block;margin-top:4px;font-size:10.5px;color:var(--muted);font-style:normal}.medium-box__all{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:13px;font-weight:600;color:var(--ink);text-decoration:none}.medium-box__all:hover{text-decoration:underline;text-underline-offset:3px}.scroll-reveal.contact-footer .contact-shell>*,.scroll-reveal.contact-footer .site-footer,.scroll-reveal.sec>.sec__body,.scroll-reveal.sec>.sec__intro{transition:opacity .75s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}.scroll-reveal.contact-footer:not(.scroll-reveal--in) .contact-shell>*,.scroll-reveal.contact-footer:not(.scroll-reveal--in) .site-footer,.scroll-reveal.sec:not(.scroll-reveal--in)>.sec__body,.scroll-reveal.sec:not(.scroll-reveal--in)>.sec__intro{opacity:0}.scroll-reveal--cascade-down.contact-footer:not(.scroll-reveal--in) .contact-shell>*,.scroll-reveal--cascade-down.contact-footer:not(.scroll-reveal--in) .site-footer,.scroll-reveal--cascade-down.sec:not(.scroll-reveal--in)>.sec__body,.scroll-reveal--cascade-down.sec:not(.scroll-reveal--in)>.sec__intro{transform:translateY(-36px)}.scroll-reveal--cascade-down.contact-footer.scroll-reveal--in .contact-shell>.contact-profile,.scroll-reveal--cascade-down.sec.scroll-reveal--in>.sec__intro{opacity:1;transform:none;transition-delay:0s}.scroll-reveal--cascade-down.contact-footer.scroll-reveal--in .contact-shell>.contact-form,.scroll-reveal--cascade-down.sec.scroll-reveal--in>.sec__body{opacity:1;transform:none;transition-delay:.12s}.scroll-reveal--cascade-down.contact-footer.scroll-reveal--in .contact-shell>.contact-details{opacity:1;transform:none;transition-delay:.32s}.scroll-reveal--cascade-down.contact-footer.scroll-reveal--in .site-footer{opacity:1;transform:none;transition-delay:.38s}.scroll-reveal--cascade-up.contact-footer:not(.scroll-reveal--in) .contact-shell>*,.scroll-reveal--cascade-up.contact-footer:not(.scroll-reveal--in) .site-footer,.scroll-reveal--cascade-up.sec:not(.scroll-reveal--in)>.sec__body,.scroll-reveal--cascade-up.sec:not(.scroll-reveal--in)>.sec__intro{transform:translateY(36px)}.scroll-reveal--cascade-up.contact-footer.scroll-reveal--in .contact-shell>.contact-details,.scroll-reveal--cascade-up.sec.scroll-reveal--in>.sec__body{opacity:1;transform:none;transition-delay:0s}.scroll-reveal--cascade-up.contact-footer.scroll-reveal--in .contact-shell>.contact-form,.scroll-reveal--cascade-up.sec.scroll-reveal--in>.sec__intro{opacity:1;transform:none;transition-delay:.12s}.scroll-reveal--cascade-up.contact-footer.scroll-reveal--in .contact-shell>.contact-profile{opacity:1;transform:none;transition-delay:.22s}.scroll-reveal--cascade-up.contact-footer.scroll-reveal--in .site-footer{opacity:1;transform:none;transition-delay:.38s}.scroll-reveal--block{transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1)}.scroll-reveal--block.scroll-reveal--cascade-down:not(.scroll-reveal--in){opacity:0;transform:translateY(-24px)}.scroll-reveal--block.scroll-reveal--cascade-up:not(.scroll-reveal--in){opacity:0;transform:translateY(24px)}.scroll-reveal--block.scroll-reveal--in{opacity:1;transform:none}.scroll-reveal--cascade-down.sec.scroll-reveal--in .g3>.card,.scroll-reveal--cascade-down.sec.scroll-reveal--in .g4>.card,.scroll-reveal--cascade-down.sec.scroll-reveal--in .mentor-carousel__slide .card,.scroll-reveal--cascade-down.sec.scroll-reveal--in .proj,.scroll-reveal--cascade-down.sec.scroll-reveal--in .rec-carousel__slide .rec-card,.scroll-reveal--cascade-down.sec.scroll-reveal--in .repo{animation:scroll-reveal-from-top .7s cubic-bezier(.22,1,.36,1) both}.scroll-reveal--cascade-up.sec.scroll-reveal--in .g3>.card,.scroll-reveal--cascade-up.sec.scroll-reveal--in .g4>.card,.scroll-reveal--cascade-up.sec.scroll-reveal--in .mentor-carousel__slide .card,.scroll-reveal--cascade-up.sec.scroll-reveal--in .proj,.scroll-reveal--cascade-up.sec.scroll-reveal--in .rec-carousel__slide .rec-card,.scroll-reveal--cascade-up.sec.scroll-reveal--in .repo{animation:scroll-reveal-from-bottom .7s cubic-bezier(.22,1,.36,1) both}.scroll-reveal--cascade-down.sec.scroll-reveal--in .g3>.card:first-child,.scroll-reveal--cascade-down.sec.scroll-reveal--in .g4>.card:first-child,.scroll-reveal--cascade-down.sec.scroll-reveal--in .proj:first-child,.scroll-reveal--cascade-down.sec.scroll-reveal--in .rec-carousel__slide:first-child .rec-card{animation-delay:.22s}.scroll-reveal--cascade-down.sec.scroll-reveal--in .g3>.card:nth-child(2),.scroll-reveal--cascade-down.sec.scroll-reveal--in .g4>.card:nth-child(2),.scroll-reveal--cascade-down.sec.scroll-reveal--in .proj:nth-child(2),.scroll-reveal--cascade-down.sec.scroll-reveal--in .rec-carousel__slide:nth-child(2) .rec-card{animation-delay:.32s}.scroll-reveal--cascade-down.sec.scroll-reveal--in .g3>.card:nth-child(3),.scroll-reveal--cascade-down.sec.scroll-reveal--in .g4>.card:nth-child(3),.scroll-reveal--cascade-down.sec.scroll-reveal--in .proj:nth-child(3),.scroll-reveal--cascade-down.sec.scroll-reveal--in .rec-carousel__slide:nth-child(3) .rec-card{animation-delay:.42s}.scroll-reveal--cascade-down.sec.scroll-reveal--in .g4>.card:nth-child(4),.scroll-reveal--cascade-down.sec.scroll-reveal--in .mentor-carousel__slide:nth-child(4) .card{animation-delay:.52s}.scroll-reveal--cascade-down.sec.scroll-reveal--in .mentor-carousel__slide:first-child .card{animation-delay:.22s}.scroll-reveal--cascade-down.sec.scroll-reveal--in .mentor-carousel__slide:nth-child(2) .card{animation-delay:.32s}.scroll-reveal--cascade-down.sec.scroll-reveal--in .mentor-carousel__slide:nth-child(3) .card{animation-delay:.42s}.scroll-reveal--cascade-up.sec.scroll-reveal--in .g3>.card:nth-child(3),.scroll-reveal--cascade-up.sec.scroll-reveal--in .g4>.card:nth-child(4),.scroll-reveal--cascade-up.sec.scroll-reveal--in .proj:nth-child(3),.scroll-reveal--cascade-up.sec.scroll-reveal--in .rec-carousel__slide:nth-child(3) .rec-card{animation-delay:.22s}.scroll-reveal--cascade-up.sec.scroll-reveal--in .g3>.card:nth-child(2),.scroll-reveal--cascade-up.sec.scroll-reveal--in .g4>.card:nth-child(3),.scroll-reveal--cascade-up.sec.scroll-reveal--in .proj:nth-child(2),.scroll-reveal--cascade-up.sec.scroll-reveal--in .rec-carousel__slide:nth-child(2) .rec-card{animation-delay:.32s}.scroll-reveal--cascade-up.sec.scroll-reveal--in .g3>.card:first-child,.scroll-reveal--cascade-up.sec.scroll-reveal--in .g4>.card:nth-child(2),.scroll-reveal--cascade-up.sec.scroll-reveal--in .proj:first-child,.scroll-reveal--cascade-up.sec.scroll-reveal--in .rec-carousel__slide:first-child .rec-card{animation-delay:.42s}.scroll-reveal--cascade-up.sec.scroll-reveal--in .g4>.card:first-child{animation-delay:.52s}@keyframes scroll-reveal-from-top{0%{opacity:0;transform:translateY(-22px)}to{opacity:1;transform:none}}@keyframes scroll-reveal-from-bottom{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.scroll-reveal--block:not(.scroll-reveal--in),.scroll-reveal.contact-footer:not(.scroll-reveal--in) .contact-shell>*,.scroll-reveal.contact-footer:not(.scroll-reveal--in) .site-footer,.scroll-reveal.sec:not(.scroll-reveal--in)>.sec__body,.scroll-reveal.sec:not(.scroll-reveal--in)>.sec__intro{opacity:1;transform:none}.scroll-reveal--cascade-down.sec.scroll-reveal--in .g3>.card,.scroll-reveal--cascade-down.sec.scroll-reveal--in .g4>.card,.scroll-reveal--cascade-down.sec.scroll-reveal--in .mentor-carousel__slide .card,.scroll-reveal--cascade-down.sec.scroll-reveal--in .proj,.scroll-reveal--cascade-down.sec.scroll-reveal--in .rec-carousel__slide .rec-card,.scroll-reveal--cascade-down.sec.scroll-reveal--in .repo,.scroll-reveal--cascade-up.sec.scroll-reveal--in .g3>.card,.scroll-reveal--cascade-up.sec.scroll-reveal--in .g4>.card,.scroll-reveal--cascade-up.sec.scroll-reveal--in .mentor-carousel__slide .card,.scroll-reveal--cascade-up.sec.scroll-reveal--in .proj,.scroll-reveal--cascade-up.sec.scroll-reveal--in .rec-carousel__slide .rec-card,.scroll-reveal--cascade-up.sec.scroll-reveal--in .repo{animation:none}}