.skip-link{z-index:100;background:var(--bg);color:var(--text);padding:8px 12px;position:fixed;top:8px;left:8px;transform:translateY(-200%)}.skip-link:focus{transform:none}.mobile-cover-tags[data-astro-cid-ge2uvauf]{display:none}@media (width<=767px){.hero[data-astro-cid-ge2uvauf]{text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:20px 14px 16px;display:flex}.hero[data-astro-cid-ge2uvauf] .sel[data-astro-cid-ge2uvauf]{border-color:var(--blue);background:0 0;margin:0;padding:4px 12px 6px}.hero[data-astro-cid-ge2uvauf] .hello[data-astro-cid-ge2uvauf]{font-size:24px;line-height:1.15}.hero[data-astro-cid-ge2uvauf] .word[data-astro-cid-ge2uvauf]{color:var(--pink);background:linear-gradient(100deg, var(--pink), var(--orange), var(--pink));-webkit-text-fill-color:transparent;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:6s ease-in-out infinite greeting-color}.hero[data-astro-cid-ge2uvauf] .caret[data-astro-cid-ge2uvauf]{background:var(--pink)}.hero[data-astro-cid-ge2uvauf] .sel[data-astro-cid-ge2uvauf]>i[data-astro-cid-ge2uvauf]{border:1px solid var(--blue);background:var(--yellow);width:5px;height:5px}.hero[data-astro-cid-ge2uvauf] .sel[data-astro-cid-ge2uvauf] .tl[data-astro-cid-ge2uvauf],.hero[data-astro-cid-ge2uvauf] .sel[data-astro-cid-ge2uvauf] .bl[data-astro-cid-ge2uvauf]{left:-3px}.hero[data-astro-cid-ge2uvauf] .sel[data-astro-cid-ge2uvauf] .tr[data-astro-cid-ge2uvauf],.hero[data-astro-cid-ge2uvauf] .sel[data-astro-cid-ge2uvauf] .br[data-astro-cid-ge2uvauf]{right:-3px}.hero[data-astro-cid-ge2uvauf] .sel[data-astro-cid-ge2uvauf] .tl[data-astro-cid-ge2uvauf],.hero[data-astro-cid-ge2uvauf] .sel[data-astro-cid-ge2uvauf] .tr[data-astro-cid-ge2uvauf]{top:-3px}.hero[data-astro-cid-ge2uvauf] .sel[data-astro-cid-ge2uvauf] .bl[data-astro-cid-ge2uvauf],.hero[data-astro-cid-ge2uvauf] .sel[data-astro-cid-ge2uvauf] .br[data-astro-cid-ge2uvauf]{bottom:-3px}.hero[data-astro-cid-ge2uvauf] .cursor[data-astro-cid-ge2uvauf]{width:14px;height:14px}.hero[data-astro-cid-ge2uvauf] .avail[data-astro-cid-ge2uvauf]{font-size:var(--fs-xs);letter-spacing:.02em;text-transform:none;color:var(--text-2);flex-basis:100%;margin:0;line-height:1.5}.hero[data-astro-cid-ge2uvauf] .avail[data-astro-cid-ge2uvauf] span[data-astro-cid-ge2uvauf]{background:0 0;padding:0}.hero[data-astro-cid-ge2uvauf] .avail[data-astro-cid-ge2uvauf] .dot[data-astro-cid-ge2uvauf]{background:var(--neon);box-shadow:0 0 8px var(--neon-soft)}.hero[data-astro-cid-ge2uvauf] .sel[data-astro-cid-ge2uvauf]>.tag[data-astro-cid-ge2uvauf],.hero[data-astro-cid-ge2uvauf] .sel[data-astro-cid-ge2uvauf]>.note[data-astro-cid-ge2uvauf],.hero[data-astro-cid-ge2uvauf] .sel-sz[data-astro-cid-ge2uvauf]{display:none}.mobile-cover-tags[data-astro-cid-ge2uvauf]{flex-basis:100%;order:-1;justify-content:center;align-items:center;gap:12px;display:flex}.mobile-cover-tags[data-astro-cid-ge2uvauf] .stk[data-astro-cid-ge2uvauf]{font-size:var(--fs-2xs);letter-spacing:.025em;padding:5px 8px}.mobile-cover-tags[data-astro-cid-ge2uvauf] .stk[data-astro-cid-ge2uvauf]:first-child{--c:var(--green);rotate:-4deg}.mobile-cover-tags[data-astro-cid-ge2uvauf] .stk[data-astro-cid-ge2uvauf]:last-child{--c:var(--yellow);rotate:4deg}}@keyframes greeting-color{50%{background-position:100%}}@media (prefers-reduced-motion:reduce){.hero[data-astro-cid-ge2uvauf] .word[data-astro-cid-ge2uvauf]{animation:none}}.rotating-role[data-astro-cid-ykkw727v]{align-items:center;display:flex}.rotating-role[data-astro-cid-ykkw727v]:before{flex-shrink:0}.role-window[data-astro-cid-ykkw727v]{flex:1;min-width:0;display:grid;overflow:hidden}.role-line[data-astro-cid-ykkw727v]{visibility:hidden;animation:12s ease-in-out infinite role-scroll;animation-delay:calc(var(--role-index) * 3s - 12s);grid-area:1/1;align-self:center;line-height:1.5}.role-line[data-astro-cid-ykkw727v]:first-child{visibility:visible}.rotating-role[data-astro-cid-ykkw727v]:hover .role-line[data-astro-cid-ykkw727v]{animation-play-state:paused}.role-summary[data-astro-cid-ykkw727v]{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@keyframes role-scroll{0%,20%{visibility:visible;opacity:1;transform:translateY(0)}24.99%{visibility:visible;opacity:0;transform:translateY(-100%)}25%,97%{visibility:hidden;opacity:0;transform:translateY(100%)}to{visibility:visible;opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.role-line[data-astro-cid-ykkw727v]{animation:none}.role-line[data-astro-cid-ykkw727v]:not(:first-child){display:none}}dialog[data-astro-cid-lt3s3dwh]{border:1px solid var(--ln-object);border-radius:var(--r-md);background:var(--bg);width:min(1100px,100vw - 32px);max-width:none;height:min(900px,100dvh - 32px);max-height:none;color:var(--text);margin:auto;padding:0;position:fixed;inset:0;box-shadow:0 24px 80px #0006}dialog[data-astro-cid-lt3s3dwh]::backdrop{background:#000b}.cv-shell[data-astro-cid-lt3s3dwh]{flex-direction:column;height:100%;display:flex}.cv-toolbar[data-astro-cid-lt3s3dwh]{border-bottom:1px solid var(--ln-object);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.cv-heading[data-astro-cid-lt3s3dwh] h2[data-astro-cid-lt3s3dwh]{font-size:var(--fs-base);margin:0}.cv-heading[data-astro-cid-lt3s3dwh] span[data-astro-cid-lt3s3dwh]{font-size:var(--fs-xs);color:var(--muted)}.cv-actions[data-astro-cid-lt3s3dwh]{align-items:center;gap:8px;display:flex}.cv-actions[data-astro-cid-lt3s3dwh] a[data-astro-cid-lt3s3dwh],.cv-actions[data-astro-cid-lt3s3dwh] button[data-astro-cid-lt3s3dwh]{min-height:var(--control-size);border:1px solid var(--ln-object);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:500 var(--fs-sm)/var(--leading-detail) var(--sans);cursor:pointer;transition:color var(--t), border-color var(--t), background var(--t);justify-content:center;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.cv-actions[data-astro-cid-lt3s3dwh] button[data-astro-cid-lt3s3dwh]{min-width:44px}.cv-actions[data-astro-cid-lt3s3dwh] [data-astro-cid-lt3s3dwh]:is(a,button):hover{color:var(--neon);border-color:var(--neon-line);background:var(--neon-soft)}[data-astro-cid-lt3s3dwh]:is(a,button):focus-visible{outline:2px solid var(--neon);outline-offset:3px}.cv-document[data-astro-cid-lt3s3dwh]{flex:1;min-height:0;display:flex;position:relative}.cv-controls[data-astro-cid-lt3s3dwh]{border:1px solid var(--ln-object);border-radius:var(--r-md);background:var(--bg);align-items:center;gap:4px;width:max-content;max-width:calc(100% - 16px);padding:4px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0003}.cv-controls[data-astro-cid-lt3s3dwh] button[data-astro-cid-lt3s3dwh]{border:1px solid var(--ln-object);border-radius:var(--r-sm);background:var(--surface);min-width:44px;min-height:44px;color:var(--text);cursor:pointer;padding:0 10px}.cv-controls[data-astro-cid-lt3s3dwh] button[data-astro-cid-lt3s3dwh]:hover:not(:disabled){background:var(--neon-soft);color:var(--neon)}.cv-controls[data-astro-cid-lt3s3dwh] button[data-astro-cid-lt3s3dwh]:disabled{opacity:.4;cursor:default}.cv-controls[data-astro-cid-lt3s3dwh] output[data-astro-cid-lt3s3dwh]{text-align:center;min-width:56px;font:var(--fs-xs) var(--mono);color:var(--text-2)}.cv-stage[data-astro-cid-lt3s3dwh]{overscroll-behavior:contain;scrollbar-gutter:stable;background:#e5e5e5;flex:1;min-width:0;min-height:0;padding:16px 16px 84px;overflow:auto}.cv-pages[data-astro-cid-lt3s3dwh]{gap:16px;width:max-content;min-width:100%;display:grid}.cv-pages[data-astro-cid-lt3s3dwh] canvas{background:#fff;max-width:none;margin-inline:auto;display:block;box-shadow:0 2px 12px #0002}.cv-stage[data-astro-cid-lt3s3dwh]:focus-visible{outline:2px solid var(--neon);outline-offset:-3px}.cv-status[data-astro-cid-lt3s3dwh]{font-size:var(--fs-xs);color:var(--text-2);margin:0;padding:8px 16px}.cv-status[data-astro-cid-lt3s3dwh]:empty{display:none}@media (width<=767px){dialog[data-astro-cid-lt3s3dwh]{width:calc(100vw - 24px);height:min(800px,88dvh)}.cv-toolbar[data-astro-cid-lt3s3dwh]{padding:12px}.cv-actions[data-astro-cid-lt3s3dwh]{width:100%}.cv-actions[data-astro-cid-lt3s3dwh] button[data-astro-cid-lt3s3dwh]{margin-left:auto}.cv-stage[data-astro-cid-lt3s3dwh]{padding:8px 8px 80px}.cv-controls[data-astro-cid-lt3s3dwh]{gap:3px;padding:6px}}@media (height<=500px) and (width<=900px){dialog[data-astro-cid-lt3s3dwh]{height:calc(100dvh - 24px)}}.social-divider[data-astro-cid-lt3s3dwh]:after{display:none}.socials[data-astro-cid-lt3s3dwh]{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:10px}.social-links[data-astro-cid-lt3s3dwh]{gap:8px;display:flex}.social-links[data-astro-cid-lt3s3dwh] .sbtn{width:44px;height:44px}.cv-button[data-astro-cid-lt3s3dwh]{border-color:var(--neon-line);background:var(--neon-soft);width:auto;height:44px;color:var(--neon);font-size:var(--fs-xs);white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:8px;margin-left:0;padding-inline:18px;font-weight:600;display:inline-flex}.cv-button[data-astro-cid-lt3s3dwh] .i[data-astro-cid-lt3s3dwh]{width:16px;height:16px}@media (width<=480px){.socials[data-astro-cid-lt3s3dwh]{grid-template-columns:minmax(0,1fr);gap:8px;padding-block:12px;display:grid}.social-links[data-astro-cid-lt3s3dwh]{grid-template-columns:repeat(5,minmax(44px,1fr));gap:8px;display:grid}.social-links[data-astro-cid-lt3s3dwh] .sbtn{width:100%}.cv-button[data-astro-cid-lt3s3dwh]{order:-1;width:100%}}[data-theme=dark] #skills .pill[data-astro-cid-ceyfej33]:not(:hover) .tech-logo[data-astro-cid-ceyfej33]:not(.neutral-logo){filter:grayscale()brightness(2);opacity:.85}[data-theme=dark] #skills .neutral-logo[data-astro-cid-ceyfej33]{filter:grayscale()invert()}[data-theme=dark] #skills .pill[data-astro-cid-ceyfej33]:hover .neutral-logo[data-astro-cid-ceyfej33]{filter:invert()}.neutral-logo[data-astro-cid-ceyfej33]{opacity:.7}.experience-timeline[data-astro-cid-bl6cniha]{isolation:isolate;position:relative}.timeline-rail[data-astro-cid-bl6cniha]{left:calc(var(--gut) / 2);top:var(--rail-top,31px);height:var(--rail-height,calc(100% - 62px));background:var(--ln-object);pointer-events:none;z-index:-1;width:1px;position:absolute}.timeline-fill[data-astro-cid-bl6cniha]{background:var(--neon);height:100%;transform:scaleY(var(--timeline-progress,0));transform-origin:top}.experience-entry[data-astro-cid-bl6cniha]{grid-template-columns:var(--gut) minmax(0, 1fr);border-top:.75px solid var(--ln-object);opacity:.78;display:grid}.experience-entry[data-astro-cid-bl6cniha].timeline-active,.experience-entry[data-astro-cid-bl6cniha]:hover,.experience-entry[data-astro-cid-bl6cniha]:focus-within{opacity:1}.experience-entry[data-astro-cid-bl6cniha]:first-of-type{border-top:0}.experience-node-cell[data-astro-cid-bl6cniha]{justify-content:center;align-items:flex-start;padding-top:14px;display:flex}.timeline-node[data-astro-cid-bl6cniha]{width:34px;height:34px;font:var(--fs-xs) var(--mono);color:var(--muted);background:var(--bg);transition:color var(--t), border-color var(--t), box-shadow var(--t)}.is-complete[data-astro-cid-bl6cniha] .timeline-node[data-astro-cid-bl6cniha]{color:var(--text);border-color:var(--neon-line)}.timeline-active[data-astro-cid-bl6cniha] .timeline-node[data-astro-cid-bl6cniha]{color:var(--neon);border-color:var(--neon);box-shadow:0 0 8px var(--neon-soft)}.experience-content[data-astro-cid-bl6cniha]{min-width:0;padding:14px var(--content-inset);border-left:.75px solid var(--ln-object);transition:background var(--t), border-color var(--t)}.timeline-active[data-astro-cid-bl6cniha] .experience-content[data-astro-cid-bl6cniha]{background:var(--surface);border-left-color:var(--neon-line)}.experience-heading[data-astro-cid-bl6cniha]{font:600 var(--fs-base)/1.3 var(--sans);overflow-wrap:anywhere;transition:color var(--t);margin-bottom:5px}.timeline-active[data-astro-cid-bl6cniha] .experience-heading[data-astro-cid-bl6cniha]{color:var(--neon)}.experience-roles[data-astro-cid-bl6cniha]{padding-left:12px;list-style:none}.experience-roles[data-astro-cid-bl6cniha] li[data-astro-cid-bl6cniha]{grid-template-columns:minmax(0,1fr) 130px;align-items:baseline;gap:1px 16px;display:grid}.experience-roles[data-astro-cid-bl6cniha] li[data-astro-cid-bl6cniha]+li[data-astro-cid-bl6cniha]{margin-top:3px}.experience-roles[data-astro-cid-bl6cniha] h4[data-astro-cid-bl6cniha]{font:400 var(--fs-md)/1.35 var(--sans);color:var(--text-2);overflow-wrap:anywhere}.experience-roles[data-astro-cid-bl6cniha] p[data-astro-cid-bl6cniha]{font:400 var(--fs-xs)/1.35 var(--mono);color:var(--muted);text-align:right}@media (width<=600px){.experience-content[data-astro-cid-bl6cniha]{padding:12px 14px 12px 12px}.experience-roles[data-astro-cid-bl6cniha] h4[data-astro-cid-bl6cniha]{font-size:var(--fs-sm);line-height:1.5}.experience-heading[data-astro-cid-bl6cniha]{margin-bottom:8px;line-height:1.3}.experience-roles[data-astro-cid-bl6cniha]{padding-left:0}.experience-roles[data-astro-cid-bl6cniha] li[data-astro-cid-bl6cniha]{grid-template-columns:minmax(0,1fr);gap:2px}.experience-roles[data-astro-cid-bl6cniha] li[data-astro-cid-bl6cniha]+li[data-astro-cid-bl6cniha]{border-top:.75px solid var(--ln-object);margin-top:8px;padding-top:8px}.experience-roles[data-astro-cid-bl6cniha] p[data-astro-cid-bl6cniha]{text-align:left}.experience-node-cell[data-astro-cid-bl6cniha]{padding-top:16px}.timeline-node[data-astro-cid-bl6cniha]{width:26px;height:26px;font-size:var(--fs-2xs)}}@media (prefers-reduced-motion:reduce){.timeline-node[data-astro-cid-bl6cniha],.experience-heading[data-astro-cid-bl6cniha],.experience-content[data-astro-cid-bl6cniha],.experience-entry[data-astro-cid-bl6cniha]{transition:none}}#projects .project-title-line{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.project-name{min-width:0}.project-title-meta{flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0;max-width:100%;display:inline-flex}#projects .project-tape{max-width:100%;margin:0;padding:4px 8px;line-height:1.5}#projects .project-status{max-width:100%;color:var(--text-2);font:600 22px/1.15 var(--hand);letter-spacing:0;white-space:normal;align-items:center;gap:4px;display:inline-flex;transform:rotate(-4deg)}.project-status svg{stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:28px;height:24px}.project-status>span{min-width:0;text-decoration:underline wavy;text-decoration-color:var(--ln-dim);text-underline-offset:5px;text-decoration-thickness:1px}@media (width<=767px){#projects .project-tape,.project-title-meta:not(:has(.project-status)){display:none}#projects .project-status{font-size:20px}.project-status svg{display:none}}.project-description>:first-child{margin-top:0}.project-description>:last-child{margin-bottom:0}.project-image{object-fit:cover;width:100%;height:100%;display:block}#projects .bd>.pills{margin-top:8px}.project-shots{aspect-ratio:auto;min-width:0;position:relative}.screenshot-track{width:max-content;height:100%;display:flex}.screenshot-group{height:100%;display:flex}.screenshot{background:var(--surface);cursor:zoom-in;flex:none;width:auto;height:100%;padding:0;display:block}.project-shots .project-image{object-fit:contain;width:auto;max-width:none;height:100%}.project-shots:not(.has-multiple) .screenshot-track,.project-shots:not(.has-multiple) .screenshot-group,.project-shots:not(.has-multiple) .screenshot,.project-shots:not(.has-multiple) .project-image{width:100%;height:auto}.project-shots.has-multiple{--photo-gap:14px;background:0 0;border:0;height:clamp(90px,12vw,140px)}.has-multiple .screenshot-group{gap:var(--photo-gap);padding-right:var(--photo-gap)}.has-multiple .screenshot{border:1px solid var(--ln-object);border-radius:var(--r-lg);overflow:hidden}.project-shots.has-multiple{-webkit-mask-image:linear-gradient(90deg,#0000,#000 14% 86%,#0000);mask-image:linear-gradient(90deg,#0000,#000 14% 86%,#0000)}.has-multiple .screenshot-track{animation:30s linear infinite paused screenshot-pan}.acc.open .has-multiple .screenshot-track{animation-play-state:running}#projects .project-shots:focus-within .screenshot-track{animation-play-state:paused}#projects .project-shots:has(.screenshot:focus-visible) .screenshot-track{animation:none}.screenshot:focus-visible{outline:2px solid var(--neon);outline-offset:-3px}body:has(#highlight-viewer[open]) .has-multiple .screenshot-track{animation-play-state:paused}@media (hover:hover){.acc.open .has-multiple:hover .screenshot-track{animation-play-state:paused}}@keyframes screenshot-pan{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.project-shots.has-multiple{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.has-multiple .screenshot-track{animation:none!important}.has-multiple .screenshot-group[aria-hidden=true]{display:none}}.project-hover-preview[data-astro-cid-ftq3vvlr]{z-index:50;pointer-events:none;border:1px solid var(--line,#333);border-radius:var(--r-md);background:var(--surface,#111);opacity:0;visibility:hidden;will-change:transform;width:min(280px,100vw - 32px);transition:opacity .16s,visibility .16s;position:fixed;top:0;left:0;overflow:hidden;box-shadow:0 18px 48px #0004}.project-hover-preview[data-astro-cid-ftq3vvlr].is-visible{opacity:1;visibility:visible}.project-hover-preview[data-astro-cid-ftq3vvlr] img[data-astro-cid-ftq3vvlr]{object-fit:cover;width:100%;height:180px;display:block}.project-hover-preview[data-astro-cid-ftq3vvlr]>div[data-astro-cid-ftq3vvlr]{font-size:var(--fs-xs);justify-content:space-between;gap:16px;padding:12px 14px;display:flex}[data-astro-cid-ftq3vvlr][data-preview-date]{opacity:.55}@media (hover:none),(pointer:coarse){.project-hover-preview[data-astro-cid-ftq3vvlr]{display:none}}@media (prefers-reduced-motion:reduce){.project-hover-preview[data-astro-cid-ftq3vvlr]{transition:none}}.highlight-pan[data-astro-cid-awfdy76h]{padding-block:20px 24px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 14% 86%,#0000);mask-image:linear-gradient(90deg,#0000,#000 14% 86%,#0000)}.highlight-track[data-astro-cid-awfdy76h]{width:max-content;animation:45s linear infinite highlight-pan;display:flex}.highlight-pan[data-astro-cid-awfdy76h]{touch-action:pan-y pinch-zoom}.highlight-pan[data-astro-cid-awfdy76h].is-manual .highlight-track[data-astro-cid-awfdy76h]{animation:none}.highlight-pan[data-astro-cid-awfdy76h].is-dragging,.highlight-pan[data-astro-cid-awfdy76h].is-dragging .moment[data-astro-cid-awfdy76h]{cursor:grabbing;user-select:none}.highlight-group[data-astro-cid-awfdy76h]{gap:12px;padding-right:12px;display:flex}.moment[data-astro-cid-awfdy76h]{text-align:left;border:.75px solid var(--ln-object);border-radius:var(--r-md);background:var(--surface);width:240px;color:var(--text);cursor:pointer;transition:border-color var(--t);flex-shrink:0;padding:0;display:block;overflow:hidden}.moment[data-astro-cid-awfdy76h]:hover{border-color:var(--neon-line)}.moment-image[data-astro-cid-awfdy76h]{border-bottom:.75px solid var(--ln-object);height:148px;display:block;overflow:hidden}.moment-image[data-astro-cid-awfdy76h] img[data-astro-cid-awfdy76h]{object-fit:cover;object-position:center 40%;width:100%;height:100%;display:block}.moment-copy[data-astro-cid-awfdy76h]{padding:14px;display:block}.moment-number[data-astro-cid-awfdy76h]{color:var(--muted);font:var(--fs-2xs)/1.5 var(--mono);justify-content:space-between;margin-bottom:8px;display:flex}.moment-title[data-astro-cid-awfdy76h]{font:600 var(--fs-sm)/var(--leading-detail) var(--sans);display:block}.moment-subtitle[data-astro-cid-awfdy76h]{font:var(--fs-2xs)/var(--leading-detail) var(--sans);color:var(--muted);margin-top:4px;display:block}body.gallery-open .highlight-track[data-astro-cid-awfdy76h]{animation-play-state:paused}#highlights[data-astro-cid-awfdy76h]:has(.moment:focus-visible) .highlight-track[data-astro-cid-awfdy76h]{animation:none}#highlights[data-astro-cid-awfdy76h]:has(.moment:focus-visible) .highlight-pan[data-astro-cid-awfdy76h]{-webkit-mask-image:none;mask-image:none}@media (hover:hover){.highlight-pan[data-astro-cid-awfdy76h]:hover .highlight-track[data-astro-cid-awfdy76h]{animation-play-state:paused}}@keyframes highlight-pan{to{transform:translate(-50%)}}@media (width<=600px){.moment[data-astro-cid-awfdy76h]{width:220px}.moment-image[data-astro-cid-awfdy76h]{height:136px}}@media (prefers-reduced-motion:reduce){.highlight-track[data-astro-cid-awfdy76h]{width:auto;animation:none}.highlight-pan[data-astro-cid-awfdy76h]{padding-inline:var(--content-inset);touch-action:auto;overflow-x:auto;-webkit-mask-image:none;mask-image:none}.highlight-pan[data-astro-cid-awfdy76h].is-manual .highlight-track[data-astro-cid-awfdy76h]{transform:none!important}.highlight-group[data-astro-cid-awfdy76h]{width:100%}.moment[data-astro-cid-awfdy76h][data-copy],.highlight-group[data-astro-cid-awfdy76h][aria-hidden=true]{display:none}.moment[data-astro-cid-awfdy76h]{flex:1 0 220px}}dialog[data-astro-cid-ix52ziap]{border:.75px solid var(--ln-dim);border-radius:var(--r-lg);background:var(--surface);width:min(800px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--text);margin:auto;padding:0;position:fixed;inset:0;overflow:hidden;box-shadow:0 24px 80px #0005}dialog[data-astro-cid-ix52ziap][open]{flex-direction:column;display:flex}dialog[data-astro-cid-ix52ziap]::backdrop{backdrop-filter:blur(8px);background:#0009}.viewer-toolbar[data-astro-cid-ix52ziap]{color:var(--muted);font:var(--fs-xs) var(--mono);letter-spacing:.12em;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.viewer-tools[data-astro-cid-ix52ziap]{align-items:center;gap:8px;display:flex}.viewer-tools[data-astro-cid-ix52ziap] .slideshow-toggle[data-astro-cid-ix52ziap]{display:none}.photo-counter[data-astro-cid-ix52ziap]{border:.75px solid var(--ln-object);border-radius:var(--r-md);white-space:nowrap;letter-spacing:0;padding:7px 10px}.viewer-toolbar[data-astro-cid-ix52ziap] button[data-astro-cid-ix52ziap]{width:var(--control-size);height:var(--control-size);border-radius:var(--r-sm);color:var(--text-2);cursor:pointer;transition:color var(--t), background var(--t);place-items:center;display:grid}.viewer-toolbar[data-astro-cid-ix52ziap] button[data-astro-cid-ix52ziap]:hover{color:var(--neon);background:var(--neon-soft)}.viewer-toolbar[data-astro-cid-ix52ziap] button[data-astro-cid-ix52ziap] svg{width:20px;height:20px}.viewer-content[data-astro-cid-ix52ziap]{overscroll-behavior:contain;min-height:0;padding:28px 32px;overflow-y:auto}h2[data-astro-cid-ix52ziap]{font:600 var(--fs-h2)/var(--leading-heading) var(--display);letter-spacing:-.02em}.viewer-content[data-astro-cid-ix52ziap] p[data-astro-cid-ix52ziap]{max-width:65ch;color:var(--text-2);font-size:var(--fs-sm);margin:10px 0 24px}.featured-photo[data-astro-cid-ix52ziap]{border-radius:var(--r-lg);background:var(--bg);margin:0;position:relative;overflow:hidden}.photo-slides[data-astro-cid-ix52ziap]{scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none;align-items:stretch;width:100%;height:clamp(180px,45vw,440px);max-height:52dvh;display:flex;overflow:auto hidden}.photo-slides[data-astro-cid-ix52ziap]::-webkit-scrollbar{display:none}.photo-slides[data-astro-cid-ix52ziap] img{object-fit:cover;object-position:center;scroll-snap-align:start;scroll-snap-stop:always;flex:0 0 100%;width:100%;min-width:0;height:100%;display:block}figcaption[data-astro-cid-ix52ziap]{color:#fff;font:500 var(--fs-2xs)/1.5 var(--sans);background:linear-gradient(#0000,#000b);justify-content:space-between;align-items:flex-end;gap:12px;padding:28px 16px 12px;display:flex;position:absolute;inset:auto 0 0}.photo-controls[data-astro-cid-ix52ziap]{gap:8px;display:flex}.photo-controls[data-astro-cid-ix52ziap] button[data-astro-cid-ix52ziap]{width:var(--control-size);height:var(--control-size);border-radius:var(--r-sm);color:#fff;font:24px/1 var(--sans);cursor:pointer;transition:background var(--t), border-color var(--t);background:#111e;border:1px solid #ffffff40}.photo-controls[data-astro-cid-ix52ziap] button[data-astro-cid-ix52ziap]:hover:not(:disabled){background:#333;border-color:#fff}.photo-controls[data-astro-cid-ix52ziap] button[data-astro-cid-ix52ziap]:disabled{opacity:.35;cursor:default}.photo-caption[data-astro-cid-ix52ziap]{justify-content:space-between;align-items:baseline;gap:12px;margin:18px 0;display:flex}.photo-caption[data-astro-cid-ix52ziap] h3[data-astro-cid-ix52ziap]{font:500 var(--fs-sm)/var(--leading-detail) var(--sans)}.photo-caption[data-astro-cid-ix52ziap]>span[data-astro-cid-ix52ziap]{color:var(--muted);font:var(--fs-2xs)/1.5 var(--sans);flex-shrink:0}.highlight-gallery[data-astro-cid-ix52ziap]{scroll-behavior:smooth;gap:10px;padding:4px 3px 8px;display:flex;overflow-x:auto}.highlight-gallery[data-astro-cid-ix52ziap] button{border-radius:var(--r-md);background:var(--bg);cursor:pointer;border:2px solid #0000;flex:0 0 calc(25% - 7.5px);min-width:88px;padding:0;position:relative;overflow:hidden}.highlight-gallery[data-astro-cid-ix52ziap] button[aria-pressed=true]{outline:1px solid var(--text);outline-offset:2px}.highlight-gallery[data-astro-cid-ix52ziap] img{aspect-ratio:3/2;object-fit:cover;opacity:.6;width:100%;display:block}.highlight-gallery[data-astro-cid-ix52ziap] button[aria-pressed=true] img{opacity:1}.highlight-gallery[data-astro-cid-ix52ziap] button span{color:#fff;font:var(--fs-xs) var(--mono);background:#0009;padding:1px 3px;position:absolute;bottom:4px;left:5px}.viewer-footer[data-astro-cid-ix52ziap]{border-top:.75px solid var(--ln-object);color:var(--muted);font:var(--fs-2xs)/1.5 var(--sans);justify-content:space-between;gap:12px;margin-top:20px;padding-top:18px;display:flex}button[data-astro-cid-ix52ziap]:focus-visible{outline:2px solid var(--neon);outline-offset:-3px}@media (width<=767px){.gallery-prefix[data-astro-cid-ix52ziap],.photo-controls[data-astro-cid-ix52ziap]{display:none}.viewer-tools[data-astro-cid-ix52ziap]{gap:4px}.viewer-toolbar[data-astro-cid-ix52ziap]>span[data-astro-cid-ix52ziap]{min-width:0;font-size:var(--fs-xs);letter-spacing:0}.viewer-tools[data-astro-cid-ix52ziap] .slideshow-toggle[data-astro-cid-ix52ziap]:not([hidden]){width:auto;min-width:44px;font:500 var(--fs-xs)/1 var(--sans);justify-content:center;align-items:center;padding-inline:6px;display:inline-flex}dialog[data-astro-cid-ix52ziap]{width:calc(100vw - 24px);height:auto;max-height:min(640px,80dvh)}.viewer-content[data-astro-cid-ix52ziap]{padding:12px}.viewer-toolbar[data-astro-cid-ix52ziap]{z-index:2;background:var(--surface);letter-spacing:.04em;margin-bottom:8px;padding-block:4px;position:sticky;top:-12px}h2[data-astro-cid-ix52ziap]{font-size:var(--fs-h3);line-height:1.25}.viewer-content[data-astro-cid-ix52ziap] p[data-astro-cid-ix52ziap]{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:8px 0 12px;line-height:1.5;display:-webkit-box;overflow:hidden}.photo-slides[data-astro-cid-ix52ziap]{height:clamp(140px,28dvh,240px);max-height:36dvh}figcaption[data-astro-cid-ix52ziap]{padding:20px 8px 8px}.photo-caption[data-astro-cid-ix52ziap]{flex-direction:column;gap:4px;margin:10px 0}.photo-caption[data-astro-cid-ix52ziap] h3[data-astro-cid-ix52ziap]:empty{display:none}.highlight-gallery[data-astro-cid-ix52ziap]{gap:8px;padding-bottom:4px}.highlight-gallery[data-astro-cid-ix52ziap] button{flex-basis:72px;min-width:72px}.viewer-footer[data-astro-cid-ix52ziap]{margin-top:10px;padding-top:10px;display:none}}@media (height<=500px) and (width<=900px){dialog[data-astro-cid-ix52ziap]{max-height:calc(100dvh - 32px)}.viewer-toolbar[data-astro-cid-ix52ziap]{z-index:2;background:var(--surface);position:sticky;top:-12px}.viewer-content[data-astro-cid-ix52ziap]{padding:12px}.photo-slides[data-astro-cid-ix52ziap]{height:140px;max-height:40dvh}}@media (prefers-reduced-motion:reduce){.photo-slides[data-astro-cid-ix52ziap],.highlight-gallery[data-astro-cid-ix52ziap]{scroll-behavior:auto}}dialog[data-astro-cid-wdtcqvko]{border:.75px solid var(--ln-object);border-radius:var(--r-md);background:var(--bg);width:min(1200px,100vw - 32px);max-width:none;height:min(940px,100dvh - 32px);max-height:none;color:var(--text);margin:auto;padding:0;position:fixed;inset:0}dialog[data-astro-cid-wdtcqvko]::backdrop{background:#000c}.viewer-shell[data-astro-cid-wdtcqvko]{flex-direction:column;height:100%;display:flex}.viewer-toolbar[data-astro-cid-wdtcqvko]{border-bottom:.75px solid var(--ln-object);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:12px 16px;display:flex}.viewer-toolbar[data-astro-cid-wdtcqvko] h2[data-astro-cid-wdtcqvko]{min-width:0;font:600 var(--fs-base)/1.3 var(--sans);overflow-wrap:anywhere}.viewer-actions[data-astro-cid-wdtcqvko]{align-items:center;gap:8px;display:flex}.viewer-actions[data-astro-cid-wdtcqvko] [data-astro-cid-wdtcqvko]:is(a,button){min-height:var(--control-size);border:1px solid var(--ln-object);border-radius:var(--r-sm);background:var(--surface);font:500 var(--fs-sm)/var(--leading-detail) var(--sans);transition:color var(--t), border-color var(--t), background var(--t);justify-content:center;align-items:center;padding:0 12px;display:inline-flex}.viewer-actions[data-astro-cid-wdtcqvko] [data-astro-cid-wdtcqvko]:is(a,button):hover:not(:disabled){color:var(--neon);border-color:var(--neon-line);background:var(--neon-soft)}.viewer-actions[data-astro-cid-wdtcqvko] button[data-astro-cid-wdtcqvko]:disabled{opacity:.45;cursor:default}.viewer-actions[data-astro-cid-wdtcqvko] button[data-astro-cid-wdtcqvko]:last-child{min-width:44px}.viewer-stage[data-astro-cid-wdtcqvko]{overscroll-behavior:contain;flex:1;min-height:0;padding:16px;position:relative;overflow:auto}.viewer-image[data-astro-cid-wdtcqvko]{object-fit:contain;width:100%;height:100%;display:block}.viewer-image[data-astro-cid-wdtcqvko][hidden]{display:none}.viewer-stage[data-astro-cid-wdtcqvko].zoomed .viewer-image[data-astro-cid-wdtcqvko]{width:auto;max-width:none;height:auto}.viewer-status[data-astro-cid-wdtcqvko]{text-align:center;font-size:var(--fs-sm);color:var(--text-2);pointer-events:none;place-items:center;display:grid;position:absolute;inset:16px}@media (width<=767px){dialog[data-astro-cid-wdtcqvko]{width:calc(100vw - 24px);height:auto;max-height:min(640px,80dvh)}.viewer-shell[data-astro-cid-wdtcqvko]{height:auto;min-height:0;max-height:inherit}.viewer-toolbar[data-astro-cid-wdtcqvko]{padding:12px}.viewer-actions[data-astro-cid-wdtcqvko]{width:100%}.viewer-actions[data-astro-cid-wdtcqvko] button[data-astro-cid-wdtcqvko]:last-child{min-width:44px;margin-left:auto}.viewer-stage[data-astro-cid-wdtcqvko]{min-height:100px;max-height:50dvh;padding:8px}.viewer-image[data-astro-cid-wdtcqvko]{height:auto;max-height:46dvh}.viewer-stage[data-astro-cid-wdtcqvko].zoomed .viewer-image[data-astro-cid-wdtcqvko]{max-height:none}}@media (height<=500px) and (width<=900px){dialog[data-astro-cid-wdtcqvko]{height:auto;max-height:calc(100dvh - 24px)}.viewer-shell[data-astro-cid-wdtcqvko]{height:auto;max-height:inherit}.viewer-stage[data-astro-cid-wdtcqvko]{min-height:80px;max-height:45dvh}.viewer-image[data-astro-cid-wdtcqvko]{height:auto;max-height:40dvh}.viewer-stage[data-astro-cid-wdtcqvko].zoomed .viewer-image[data-astro-cid-wdtcqvko]{max-height:none}}.issuer-logo[data-astro-cid-wdtcqvko]{color:var(--text-2)}.issuer-logo[data-astro-cid-wdtcqvko] .i[data-astro-cid-wdtcqvko]{width:20px;height:20px}.wadhwani-logo[data-astro-cid-wdtcqvko]{background:currentColor;width:26px;height:26px;display:block;mask:url(/icons/wadhwani-foundation.svg) 50%/contain no-repeat}.certificate-preview[data-astro-cid-wdtcqvko]{border:.75px solid var(--ln-object);border-radius:var(--r-md);width:100%;max-width:240px;display:block;overflow:hidden}.certificate-preview[data-astro-cid-wdtcqvko] img[data-astro-cid-wdtcqvko]{width:100%;height:auto;display:block}.certificate-preview[data-astro-cid-wdtcqvko]:focus-visible{outline:2px solid var(--neon);outline-offset:4px}.rm[data-astro-cid-wdtcqvko]{margin-top:4px;margin-bottom:0}@media (width<=767px){.certificate-text-action[data-astro-cid-wdtcqvko]{display:none}.wadhwani-logo[data-astro-cid-wdtcqvko]{width:22px;height:22px}.issuer-logo[data-astro-cid-wdtcqvko] .i[data-astro-cid-wdtcqvko]{width:18px;height:18px}}button[data-astro-cid-he3spzz3].btn{font:500 var(--fs-sm)/1 var(--sans);height:var(--control-size);cursor:pointer;gap:8px;padding-inline:16px}button[data-astro-cid-he3spzz3].btn .i{width:15px;height:15px}.footer-signature[data-astro-cid-2sfrbojy]{background:var(--bg);width:100vw;color:var(--signature-line);padding:clamp(16px,2vw,32px) clamp(12px,3vw,56px) 0;position:relative;left:50%;overflow:hidden;transform:translate(-50%)}svg[data-astro-cid-2sfrbojy]{width:100%;height:auto;margin-bottom:-2%;display:block;-webkit-mask-image:linear-gradient(#000 0% 28%,#0000 100%);mask-image:linear-gradient(#000 0% 28%,#0000 100%)}path[data-astro-cid-2sfrbojy]{vector-effect:non-scaling-stroke}.footer-rule[data-astro-cid-jo6i4kqk]{border-bottom:.75px solid var(--ln-object)}.footer-bar[data-astro-cid-jo6i4kqk]{grid-template-columns:minmax(0,1fr) auto;min-height:56px;display:grid}.footer-identity[data-astro-cid-jo6i4kqk]{padding:8px var(--content-inset);font:var(--fs-xs)/1.5 var(--mono);color:var(--muted);align-self:center}.footer-identity[data-astro-cid-jo6i4kqk]:hover{color:var(--neon)}.footer-socials[data-astro-cid-jo6i4kqk]{grid-auto-flow:column;grid-auto-columns:var(--control-size);border-left:.75px solid var(--ln-object);align-items:center;gap:0;margin:0;padding:0;display:grid}.footer-socials[data-astro-cid-jo6i4kqk] a{width:100%;min-height:44px;color:var(--muted);place-self:stretch stretch;place-items:center;padding:0;display:grid}.footer-socials[data-astro-cid-jo6i4kqk] svg{width:18px;height:18px;display:block}.footer-socials[data-astro-cid-jo6i4kqk] a+a{border-left:.75px solid var(--ln-object)}.footer-socials[data-astro-cid-jo6i4kqk] a:hover{color:var(--neon)}.footer-socials[data-astro-cid-jo6i4kqk] a:after{display:none}@media (width<=767px){.footer-bar[data-astro-cid-jo6i4kqk]{grid-template-columns:minmax(0,1fr);justify-items:center;gap:12px;padding:20px 14px}.footer-identity[data-astro-cid-jo6i4kqk]{font-size:var(--fs-xs);text-align:center;padding:0}.footer-socials[data-astro-cid-jo6i4kqk]{border-left:0;grid-template-columns:repeat(5,44px);grid-auto-columns:auto;gap:10px}.footer-socials[data-astro-cid-jo6i4kqk] a{border:.75px solid var(--ln-object);border-radius:var(--r-md);background:var(--surface);height:44px}.footer-socials[data-astro-cid-jo6i4kqk] svg{width:20px;height:20px}.footer-socials[data-astro-cid-jo6i4kqk] a:hover{border-color:var(--neon-line)}}.fab[data-astro-cid-ruuhoirk].chat-launch{border:1px solid var(--ln-dim);cursor:pointer;background:var(--surface);color:var(--text);border-radius:var(--r-lg);z-index:80;justify-content:center;gap:0;width:140px;height:54px;padding:0 10px;transition:width .35s cubic-bezier(.2,.8,.2,1),border-radius .35s,box-shadow .25s,transform .25s;overflow:hidden}.chat-launch[data-astro-cid-ruuhoirk] img[data-astro-cid-ruuhoirk]{object-fit:contain;flex-shrink:0;transition:transform .3s}.fab[data-astro-cid-ruuhoirk].chat-launch[aria-expanded=true]{opacity:0;visibility:hidden;pointer-events:none}.chat-launch[data-astro-cid-ruuhoirk]:hover img[data-astro-cid-ruuhoirk]{transform:rotate(-10deg)translateY(-3px)}.tio-launch-dot[data-astro-cid-ruuhoirk]{background:var(--neon);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-left:8px;transition:width .3s,opacity .2s,margin .3s}.fab[data-astro-cid-ruuhoirk].chat-launch .fl[data-astro-cid-ruuhoirk]{clip:auto;white-space:nowrap;opacity:1;width:auto;max-width:65px;height:auto;margin-left:10px;transition:max-width .35s,opacity .2s,margin .35s;position:static;overflow:hidden}.fab[data-astro-cid-ruuhoirk].chat-launch.is-compact:not(:hover):not(:focus-visible){border-radius:50%;width:54px}.fab[data-astro-cid-ruuhoirk].chat-launch.is-compact:not(:hover):not(:focus-visible) .fl[data-astro-cid-ruuhoirk]{opacity:0;max-width:0;margin-left:0}.fab[data-astro-cid-ruuhoirk].chat-launch.is-compact:not(:hover):not(:focus-visible) .tio-launch-dot[data-astro-cid-ruuhoirk]{opacity:0;width:0;margin-left:0}@media (width<=767px){.fab[data-astro-cid-ruuhoirk].chat-launch{display:none}}@media (prefers-reduced-motion:reduce){.fab[data-astro-cid-ruuhoirk].chat-launch,.chat-launch[data-astro-cid-ruuhoirk] img[data-astro-cid-ruuhoirk],.fab[data-astro-cid-ruuhoirk].chat-launch .fl[data-astro-cid-ruuhoirk],.tio-launch-dot[data-astro-cid-ruuhoirk]{transition:none}.chat-launch[data-astro-cid-ruuhoirk]:hover img[data-astro-cid-ruuhoirk]{transform:none}}.portfolio-intro[data-astro-cid-qqmuakkp][hidden]{display:none}.portfolio-intro[data-astro-cid-qqmuakkp]{z-index:90;background:var(--bg);color:var(--text);place-items:center;transition:opacity .32s,visibility .32s;display:grid;position:fixed;inset:0;overflow:hidden}.intro-grid[data-astro-cid-qqmuakkp]{background:linear-gradient(var(--ln-construct) 1px, transparent 1px), linear-gradient(90deg, var(--ln-construct) 1px, transparent 1px);background-size:48px 48px;animation:.9s both intro-grid-in;position:absolute;inset:0;mask-image:radial-gradient(#000,#0000 72%)}.intro-drawing[data-astro-cid-qqmuakkp]{text-align:center;padding:24px;transition:transform .18s ease-out;position:relative}.portfolio-intro[data-astro-cid-qqmuakkp]:before{content:"";pointer-events:none;background:radial-gradient(240px circle at var(--pointer-x,50%) var(--pointer-y,50%), var(--neon-soft), transparent 80%);opacity:.5;position:absolute;inset:0}.portfolio-intro[data-astro-cid-qqmuakkp] .intro-ripple{border:1px solid var(--neon);pointer-events:none;border-radius:50%;width:24px;height:24px;animation:.85s ease-out forwards intro-ripple-out;position:absolute}@keyframes intro-ripple-out{0%{opacity:.7;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(12)}}.intro-caption[data-astro-cid-qqmuakkp]{font:var(--fs-2xs)/1.6 var(--mono);letter-spacing:.12em;color:var(--muted);display:block}.intro-mark[data-astro-cid-qqmuakkp]{place-items:center;width:240px;height:160px;margin-inline:auto;display:grid;position:relative}.intro-mark[data-astro-cid-qqmuakkp]>span[data-astro-cid-qqmuakkp]{font:600 76px/1 var(--display);letter-spacing:-.08em;animation:.9s .65s both intro-rise}.intro-period[data-astro-cid-qqmuakkp]{color:var(--neon)}.intro-trace[data-astro-cid-qqmuakkp]{width:100%;height:100%;stroke:var(--ln-dim);stroke-width:.75px;stroke-dasharray:620;stroke-dashoffset:620px;animation:2.2s forwards intro-draw;position:absolute;inset:0}.intro-trace[data-astro-cid-qqmuakkp] rect[data-astro-cid-qqmuakkp]{stroke:var(--neon);stroke-opacity:.55}.corner[data-astro-cid-qqmuakkp]{border:1px solid var(--neon);background:var(--neon);width:7px;height:7px;animation:.3s .35s both intro-rise;position:absolute}.tl[data-astro-cid-qqmuakkp]{top:20px;left:20px}.tr[data-astro-cid-qqmuakkp]{top:20px;right:20px}.bl[data-astro-cid-qqmuakkp]{bottom:20px;left:20px}.br[data-astro-cid-qqmuakkp]{bottom:20px;right:20px}.intro-name[data-astro-cid-qqmuakkp]{font:500 var(--fs-base)/1.5 var(--display);margin-top:20px;animation:.7s 1.2s both intro-rise}.intro-message[data-astro-cid-qqmuakkp]{font:var(--fs-xs)/1.6 var(--sans);color:var(--text-2);margin-top:6px;animation:.7s 1.6s both intro-rise}.intro-mark[data-astro-cid-qqmuakkp]:before{content:"";border:1px dashed var(--ln-object);border-radius:50%;animation:16s linear infinite intro-spin;position:absolute;inset:-18px}.intro-mark[data-astro-cid-qqmuakkp]:after{content:"";background:var(--neon);width:5px;height:5px;box-shadow:0 0 12px var(--neon);border-radius:50%;animation:1.6s ease-in-out infinite intro-beacon;position:absolute;top:-18px;left:50%}.intro-ready[data-astro-cid-qqmuakkp] .intro-mark[data-astro-cid-qqmuakkp]{transition:transform .6s;transform:scale(1.05)}.intro-caption[data-astro-cid-qqmuakkp]{font-size:var(--fs-2xs);letter-spacing:.04em;margin-top:24px;animation:.6s 2.1s both intro-rise}.intro-leaving[data-astro-cid-qqmuakkp]{opacity:0;visibility:hidden}@keyframes intro-draw{to{stroke-dashoffset:0}}@keyframes intro-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes intro-grid-in{0%{opacity:0}to{opacity:1}}@keyframes intro-spin{to{transform:rotate(360deg)}}@keyframes intro-beacon{50%{opacity:.3;transform:scale(.6)}}@media (width<=767px){.intro-mark[data-astro-cid-qqmuakkp]{width:210px;height:140px}.intro-trace[data-astro-cid-qqmuakkp]{inset:0}.intro-mark[data-astro-cid-qqmuakkp]>span[data-astro-cid-qqmuakkp]{font-size:64px}.intro-name[data-astro-cid-qqmuakkp]{font-size:var(--fs-base)}}@media (prefers-reduced-motion:reduce){.portfolio-intro[data-astro-cid-qqmuakkp]{display:none}}.chat-panel{z-index:90;border:1px solid var(--ln-dim);border-radius:var(--r-lg);background:var(--bg);width:min(390px,100vw - 32px);max-width:none;height:min(560px,100dvh - 116px);max-height:none;color:var(--text);font:var(--fs-sm)/1.6 var(--sans);transform-origin:100% 100%;margin:0;padding:0;position:fixed;inset:auto 24px 90px auto;overflow:hidden;box-shadow:0 16px 50px #0004}.chat-panel[hidden]{display:none}@media (width<=767px){.chat-panel,.chat-panel[open],.tio-backdrop{display:none}}.tio-backdrop{z-index:85;-webkit-backdrop-filter:blur(1px);pointer-events:none;opacity:0;visibility:hidden;background:#0000002e;transition:opacity .2s,visibility .2s;position:fixed;inset:0}body:has(.chat-panel[open]) .tio-backdrop{opacity:1;visibility:visible}.chat-panel{background:color-mix(in srgb, var(--bg) 97%, black);height:min(560px,100dvh - 48px);bottom:24px}.chat-panel.is-expanded{width:min(600px,100vw - 48px);height:min(700px,100dvh - 116px)}.tio-window{flex-direction:column;height:100%;min-height:0;display:flex}.tio-header{border-bottom:1px solid var(--ln-object);background:var(--surface);flex-shrink:0;align-items:center;gap:12px;padding:16px 18px;display:flex}.tio-avatar{border:1px solid var(--ln-object);border-radius:var(--r-md);background:var(--bg);flex-shrink:0;place-items:center;width:44px;height:44px;display:grid;position:relative}.tio-avatar img{object-fit:contain;height:40px}.tio-avatar>span{border:2px solid var(--surface);background:var(--neon);border-radius:50%;width:9px;height:9px;position:absolute;bottom:-2px;right:-2px}.tio-identity{flex:1;min-width:0}.tio-identity h2{font:600 var(--fs-base)/1.2 var(--display);align-items:center;gap:8px;margin:0;display:flex}.tio-identity h2 span{border:1px solid var(--ln-dim);font:var(--fs-xs) var(--mono);color:var(--text-2);border-radius:4px;padding:2px 5px}.tio-identity p{color:var(--muted);font-size:var(--fs-xs);margin:5px 0 0}.tio-tools{gap:2px;display:flex}.chat-panel button{font:inherit;cursor:pointer}.tio-tools button{width:var(--control-size);height:var(--control-size);color:var(--text-2);border-radius:var(--r-sm);transition:color var(--t), background var(--t);background:0 0;border:0;place-items:center;padding:7px;display:grid}.tio-tools button:hover{color:var(--text);background:var(--neon-soft)}.tio-tools svg,.chat-form svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.tio-thread{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--ln-dim) transparent;background-image:radial-gradient(var(--ln-center) .6px, transparent .6px);background-size:18px 18px;flex:1;min-height:0;padding:18px 22px;overflow-y:auto}.tio-welcome{text-align:center;padding:6px 0 8px}.tio-character-stage{place-items:center;width:180px;height:100px;margin:0 auto 10px;display:grid;position:relative}.tio-character{object-fit:contain;filter:drop-shadow(0 10px 10px #0002);height:100px;animation:5s ease-in-out infinite tio-float;position:relative}.tio-orbit{border:1px dashed var(--ln-dim);border-radius:50%;width:96px;height:96px;position:absolute}.tio-orbit:after{content:"+";color:var(--muted);font:var(--fs-sm) var(--mono);position:absolute;top:12px;left:0}.tio-eyebrow{font:var(--fs-xs) var(--mono);letter-spacing:1.5px;color:var(--muted);margin:0 0 8px}.tio-welcome h3{font:600 var(--fs-h2)/var(--leading-heading) var(--display);letter-spacing:-1px;margin:0 0 10px}.tio-welcome h3 span{color:var(--neon)}.tio-intro{font-size:var(--fs-xs);color:var(--text-2);max-width:300px;margin:0 auto 20px;line-height:1.7}.tio-prompts{text-align:left;gap:7px;display:grid}.tio-prompts button{background:var(--bg);border:1px solid var(--ln-object);color:var(--text-2);text-align:left;font-size:var(--fs-xs);border-radius:8px;align-items:center;gap:12px;padding:11px 12px;transition:border-color .2s,transform .2s,background .2s;display:flex}.tio-prompts button>span:first-child{font:var(--fs-xs) var(--mono);color:var(--muted)}.tio-prompts button>span:last-child{margin-left:auto}.tio-prompts button:hover{border-color:var(--neon-line);background:var(--neon-soft);color:var(--text);transform:translate(2px)}.chat-messages{flex-direction:column;gap:18px;display:flex}.chat-message{min-width:0;animation:.25s ease-out tio-message}.chat-message-label{color:var(--muted);font:var(--fs-xs) var(--mono);letter-spacing:1px;margin:0 0 6px;display:block}.chat-message p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--fs-sm);margin:0;line-height:1.8}.chat-user{text-align:right;align-self:flex-end;max-width:90%}.chat-user p{background:var(--surface);border:1px solid var(--ln-object);text-align:left;border-radius:12px 12px 3px;padding:10px 14px}.chat-assistant{border-left:2px solid var(--neon-line);padding-left:12px}.tio-thinking{color:var(--text-2);font:var(--fs-xs) var(--mono);align-items:center;gap:9px;margin-top:18px}.tio-thinking:not([hidden]){display:flex}.tio-thinking img{object-fit:contain;animation:1.5s ease-in-out infinite tio-think}.tio-dots{gap:4px;display:inline-flex}.tio-dots i{background:var(--neon);border-radius:50%;width:4px;height:4px;animation:1.2s ease-in-out infinite tio-dot}.tio-dots i:nth-child(2){animation-delay:.16s}.tio-dots i:nth-child(3){animation-delay:.32s}.tio-bottom{border-top:1px solid var(--ln-object);background:var(--bg);flex-shrink:0;padding:0 18px 12px}.chat-status{font-size:var(--fs-xs);color:var(--text-2);margin:0;line-height:1.5}.chat-status:not(:empty){padding-top:10px}.tio-composer{border:1px solid var(--ln-dim);border-radius:var(--r-md);background:var(--surface);align-items:flex-end;gap:8px;margin-top:14px;padding:8px;transition:border-color .2s;display:flex}.tio-composer:focus-within{border-color:var(--neon-line)}.tio-composer textarea{resize:none;width:100%;min-width:0;max-height:100px;color:var(--text);box-shadow:none;font:var(--fs-xs)/1.5 var(--sans);background:0 0;border:0;outline:0;flex:1;padding:8px 4px}.tio-composer textarea::placeholder{color:var(--muted)}.tio-composer button{width:var(--control-size);height:var(--control-size);border-radius:var(--r-sm);background:var(--text);color:var(--bg);transition:background var(--t);border:0;flex-shrink:0;place-items:center;display:grid}.tio-composer button:hover{background:var(--neon)}.chat-panel button:disabled{opacity:.4;cursor:wait}.tio-composer-meta{color:var(--muted);font:var(--fs-xs)/var(--leading-body) var(--mono);letter-spacing:.2px;justify-content:space-between;gap:6px;margin:7px 1px 12px;display:flex}.tio-sr{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes tio-open{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:none}}@keyframes tio-message{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes tio-float{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-6px)rotate(2deg)}}@keyframes tio-think{0%,to{transform:rotate(-7deg)}50%{transform:rotate(7deg)translateY(-3px)}}@keyframes tio-dot{0%,70%,to{opacity:.3;transform:translateY(0)}35%{opacity:1;transform:translateY(-4px)}}@media (width<=600px){.chat-panel,.chat-panel.is-expanded{inset:auto 14px max(14px, env(safe-area-inset-bottom)) auto;border-radius:var(--r-lg);width:min(390px,100vw - 28px);height:min(560px,100dvh - 42px)}.tio-header{gap:9px;padding:13px 14px}.tio-identity p{font-size:var(--fs-xs)}.tio-thread{padding:16px}.tio-expand{display:none!important}.tio-composer textarea{font-size:var(--fs-base)}.tio-composer-meta>span:first-child{display:none}.tio-composer-meta{justify-content:flex-end}}@media (height<=700px){.tio-character-stage{height:105px}.tio-character{height:100px}.tio-orbit{width:90px;height:90px}}@media (prefers-reduced-motion:reduce){.chat-panel[open],.tio-character,.chat-message,.tio-thinking img,.tio-dots i{animation:none}.tio-prompts button,.tio-backdrop{transition:none}}.chat-prose>*+*{margin-top:10px}.chat-prose h4{font:600 var(--fs-sm)/1.5 var(--display);margin-bottom:6px}.chat-prose ul,.chat-prose ol{font-size:var(--fs-sm);padding-left:20px;line-height:1.8}.chat-prose li+li{margin-top:4px}.chat-prose a{color:var(--neon);text-underline-offset:3px;overflow-wrap:anywhere;text-decoration:underline}.chat-prose code{font:var(--fs-xs) var(--mono);background:var(--surface);border-radius:3px;padding:2px 4px}.tio-project-card{border:1px solid var(--ln-object);border-radius:var(--r-md);background:var(--surface);margin-top:12px;overflow:hidden}.tio-project-card>img{aspect-ratio:1.8;object-fit:cover;border-bottom:1px solid var(--ln-object);width:100%;height:auto;display:block}.tio-project-card h4{font:600 var(--fs-base)/1.4 var(--display);padding:12px 12px 4px}.tio-project-card>p{color:var(--text-2);font-size:var(--fs-xs);padding:0 12px}.tio-actions{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.tio-actions:empty,.tio-followups:empty{display:none}.tio-project-card .tio-actions{padding:0 12px 12px}.chat-panel .tio-action{border:1px solid var(--ln-dim);background:var(--bg);color:var(--text);font:var(--fs-xs)/1.5 var(--sans);border-radius:6px;align-items:center;padding:6px 9px;text-decoration:none;display:inline-flex}.chat-panel .tio-action:hover{border-color:var(--neon-line);background:var(--neon-soft)}.tio-followups{gap:6px;margin-top:16px;display:grid}.chat-panel .tio-followups button{color:var(--text-2);border:1px dashed var(--ln-dim);font-size:var(--fs-xs);text-align:left;background:0 0;border-radius:7px;padding:8px 10px;line-height:1.6}.chat-panel .tio-followups button:hover{color:var(--neon);border-color:var(--neon-line)}dialog[data-astro-cid-rbtlxyym]{box-sizing:border-box;border:1px solid var(--ln-dim);border-radius:var(--r-md);background:var(--bg);width:min(540px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--text);box-shadow:0 32px 100px #0005, 0 0 0 5px var(--ln-construct);margin:auto;padding:0;position:fixed;inset:0;overflow-y:auto}dialog[data-astro-cid-rbtlxyym]::backdrop{backdrop-filter:blur(8px);background:#0009}#booking-options[data-astro-cid-rbtlxyym]{width:min(1080px,100vw - 32px);height:min(880px,100dvh - 32px)}#booking-options[data-astro-cid-rbtlxyym][open]{flex-direction:column;display:flex}#booking-options[data-astro-cid-rbtlxyym] .dialog-bar[data-astro-cid-rbtlxyym],#booking-options[data-astro-cid-rbtlxyym] .dialog-footer[data-astro-cid-rbtlxyym]{flex-shrink:0}.booking-heading[data-astro-cid-rbtlxyym]{border-bottom:1px solid var(--ln-object);padding:20px 24px}.booking-calendar[data-astro-cid-rbtlxyym]{color-scheme:light;background:#fff;flex:1;min-height:0;position:relative}.booking-calendar[data-astro-cid-rbtlxyym] iframe[data-astro-cid-rbtlxyym]{border:0;width:100%;height:100%;display:block;position:relative}.calendar-loading[data-astro-cid-rbtlxyym]{text-align:center;color:#5f6368;position:absolute;inset:24px 16px auto}.booking-calendar[data-astro-cid-rbtlxyym][aria-busy=false] .calendar-loading[data-astro-cid-rbtlxyym]{display:none}#booking-options[data-astro-cid-rbtlxyym] .dialog-footer[data-astro-cid-rbtlxyym]{flex-wrap:wrap;justify-content:space-between;gap:12px}.dialog-footer[data-astro-cid-rbtlxyym] a[data-astro-cid-rbtlxyym]{color:var(--text-2);align-items:center;gap:6px;min-height:28px;display:inline-flex}.dialog-footer[data-astro-cid-rbtlxyym] a[data-astro-cid-rbtlxyym]:hover{color:var(--neon)}.dialog-footer[data-astro-cid-rbtlxyym] a[data-astro-cid-rbtlxyym] svg{width:14px;height:14px}.dialog-bar[data-astro-cid-rbtlxyym]{border-bottom:1px solid var(--ln-object);background:var(--surface);justify-content:space-between;align-items:center;min-height:56px;padding:0 16px 0 24px;display:flex}.dialog-bar[data-astro-cid-rbtlxyym]>span[data-astro-cid-rbtlxyym]{font:var(--fs-xs) var(--mono);letter-spacing:.12em;color:var(--text-2);align-items:center;gap:9px;display:flex}.status-dot[data-astro-cid-rbtlxyym]{background:var(--neon);border-radius:50%;flex-shrink:0;width:5px;height:5px}button[data-astro-cid-rbtlxyym]{width:var(--control-size);height:var(--control-size);border-radius:var(--r-sm);color:var(--text-2);cursor:pointer;transition:color var(--t), background var(--t), border-color var(--t);background:0 0;border:1px solid #0000;place-items:center;display:grid}button[data-astro-cid-rbtlxyym]:hover{color:var(--neon);background:var(--neon-soft);border-color:var(--neon-line)}button[data-astro-cid-rbtlxyym] svg{width:18px;height:18px}.dialog-content[data-astro-cid-rbtlxyym]{padding:28px}.heading[data-astro-cid-rbtlxyym]{align-items:center;gap:16px;margin-bottom:24px;display:flex}.mail-figure[data-astro-cid-rbtlxyym]{border:1px solid var(--ln-dim);border-radius:var(--r-md);background:repeating-linear-gradient(-45deg, transparent 0 5px, var(--hatch) 5px 6px),var(--surface);width:52px;height:56px;box-shadow:4px 4px 0 var(--ln-construct);flex-shrink:0;place-items:center;display:grid;transform:rotate(-6deg)}.mail-figure[data-astro-cid-rbtlxyym] svg{stroke-width:1.3px;width:26px;height:26px}h2[data-astro-cid-rbtlxyym]{font:600 var(--fs-h3)/var(--leading-heading) var(--display);letter-spacing:-.02em;margin:0 0 8px}p[data-astro-cid-rbtlxyym]{color:var(--muted);font-size:var(--fs-sm);line-height:var(--leading-body);margin:0}.recipient[data-astro-cid-rbtlxyym]{border:1px solid var(--ln-object);border-radius:var(--r-sm);background:var(--surface);justify-content:space-between;align-items:center;gap:8px;margin-bottom:20px;padding:12px 12px 12px 16px;display:flex}.recipient[data-astro-cid-rbtlxyym]>div[data-astro-cid-rbtlxyym]{gap:5px;min-width:0;display:grid}.eyebrow[data-astro-cid-rbtlxyym]{font:var(--fs-xs) var(--mono);color:var(--muted);letter-spacing:.08em}.address[data-astro-cid-rbtlxyym]{font:var(--fs-xs) var(--mono);overflow-wrap:anywhere;user-select:all}.recipient[data-astro-cid-rbtlxyym] button[data-astro-cid-rbtlxyym]{flex-shrink:0}.recipient[data-astro-cid-rbtlxyym] button[data-astro-cid-rbtlxyym] .check-icon{display:none}.recipient[data-astro-cid-rbtlxyym] button[data-astro-cid-rbtlxyym][data-copied]{color:var(--neon)}.recipient[data-astro-cid-rbtlxyym] button[data-astro-cid-rbtlxyym][data-copied] .copy-icon{display:none}.recipient[data-astro-cid-rbtlxyym] button[data-astro-cid-rbtlxyym][data-copied] .check-icon{display:block}.help[data-astro-cid-rbtlxyym] a[data-astro-cid-rbtlxyym]{color:var(--text);text-underline-offset:3px;text-decoration:underline}.providers[data-astro-cid-rbtlxyym]{grid-template-columns:1fr 1fr;gap:10px;display:grid}.providers[data-astro-cid-rbtlxyym] a[data-astro-cid-rbtlxyym]{border:1px solid var(--ln-object);border-radius:var(--r-md);background:var(--surface);min-height:86px;color:var(--text);transition:border-color var(--t), background var(--t), transform var(--t), box-shadow var(--t);align-items:center;gap:12px;padding:16px 12px;text-decoration:none;display:flex;position:relative}.providers[data-astro-cid-rbtlxyym] a[data-astro-cid-rbtlxyym]:hover{border-color:var(--neon-line);background:var(--neon-soft);box-shadow:0 4px 16px var(--ln-construct);transform:translateY(-2px)}.provider-icon[data-astro-cid-rbtlxyym]{width:30px;height:34px;color:var(--text-2);flex-shrink:0;place-items:center;display:grid}.provider-icon[data-astro-cid-rbtlxyym] svg{stroke-width:1.4px;width:25px;height:25px}.provider-text[data-astro-cid-rbtlxyym]{min-width:0;padding-right:9px}strong[data-astro-cid-rbtlxyym]{font-size:var(--fs-sm);font-weight:500;line-height:1.4;display:block}small[data-astro-cid-rbtlxyym]{font:var(--fs-xs)/1.5 var(--mono);color:var(--muted);margin-top:4px;display:block}.providers[data-astro-cid-rbtlxyym] .arrow{width:13px;height:13px;color:var(--muted);transition:transform var(--t), color var(--t);position:absolute;top:10px;right:9px}.providers[data-astro-cid-rbtlxyym] a[data-astro-cid-rbtlxyym]:hover .arrow{color:var(--neon);transform:translate(1px,-1px)}.default-app[data-astro-cid-rbtlxyym]{border:1px solid var(--ln-object);border-radius:var(--r-sm);min-height:48px;color:var(--text-2);font-size:var(--fs-xs);transition:color var(--t), border-color var(--t);align-items:center;gap:10px;margin-top:12px;padding:0 12px;text-decoration:none;display:flex}.default-app[data-astro-cid-rbtlxyym] svg{width:16px;height:16px}.default-app[data-astro-cid-rbtlxyym] svg:last-child{margin-left:auto}.default-app[data-astro-cid-rbtlxyym]:hover{color:var(--neon);border-color:var(--neon-line)}.help[data-astro-cid-rbtlxyym]{font-size:var(--fs-xs);text-align:center;margin-top:16px}.help[data-astro-cid-rbtlxyym]:empty{margin:0}.dialog-footer[data-astro-cid-rbtlxyym]{border-top:1px solid var(--ln-object);font:var(--fs-xs) var(--mono);color:var(--muted);align-items:center;gap:8px;padding:14px 24px;display:flex}.footer-mark[data-astro-cid-rbtlxyym]{font-size:var(--fs-xs);letter-spacing:.05em;margin-left:auto}[data-astro-cid-rbtlxyym]:is(a,button):focus-visible{outline:2px solid var(--neon);outline-offset:3px}@media (width<=420px){.dialog-content[data-astro-cid-rbtlxyym]{padding:20px 16px}.dialog-bar[data-astro-cid-rbtlxyym]{padding-left:16px}.heading[data-astro-cid-rbtlxyym]{gap:12px}.providers[data-astro-cid-rbtlxyym]{grid-template-columns:1fr;gap:8px}.providers[data-astro-cid-rbtlxyym] a[data-astro-cid-rbtlxyym]{min-height:64px;padding:12px}.provider-text[data-astro-cid-rbtlxyym]{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}small[data-astro-cid-rbtlxyym]{margin:0}.dialog-footer[data-astro-cid-rbtlxyym]{padding:14px 16px}.footer-mark[data-astro-cid-rbtlxyym]{display:none}}@media (prefers-reduced-motion:no-preference){dialog[data-astro-cid-rbtlxyym][open] .providers[data-astro-cid-rbtlxyym] a[data-astro-cid-rbtlxyym]{animation:provider-enter .28s var(--ease) both}dialog[data-astro-cid-rbtlxyym][open] .providers[data-astro-cid-rbtlxyym] a[data-astro-cid-rbtlxyym]:nth-child(2){animation-delay:35ms}dialog[data-astro-cid-rbtlxyym][open] .providers[data-astro-cid-rbtlxyym] a[data-astro-cid-rbtlxyym]:nth-child(3){animation-delay:70ms}dialog[data-astro-cid-rbtlxyym][open] .providers[data-astro-cid-rbtlxyym] a[data-astro-cid-rbtlxyym]:nth-child(4){animation-delay:.105s}@keyframes provider-enter{0%{opacity:0;translate:0 6px}to{opacity:1;translate:0}}}@media (prefers-reduced-motion:reduce){[data-astro-cid-rbtlxyym],[data-astro-cid-rbtlxyym]:before,[data-astro-cid-rbtlxyym]:after{transition:none!important}}dialog[data-astro-cid-xc6bvkpg]{border:1px solid var(--ln-object);border-radius:var(--r-lg);background:var(--bg);width:min(560px,100vw - 32px);max-height:calc(100dvh - 64px);color:var(--text);font:var(--fs-sm)/1.5 var(--sans);margin:auto;padding:0;box-shadow:0 24px 100px #0006}dialog[data-astro-cid-xc6bvkpg]::backdrop{backdrop-filter:blur(5px);background:#0008}.search-bar[data-astro-cid-xc6bvkpg]{border-bottom:1px solid var(--ln-object);align-items:center;gap:12px;padding:16px;display:flex}.search-bar[data-astro-cid-xc6bvkpg]>span[data-astro-cid-xc6bvkpg]{color:var(--text-2);font-size:24px}input[data-astro-cid-xc6bvkpg]{width:100%;min-width:0;color:var(--text);font:inherit;background:0 0;border:0;outline:none}.search-bar[data-astro-cid-xc6bvkpg]:focus-within{box-shadow:inset 0 -1px var(--neon)}button[data-astro-cid-xc6bvkpg]{min-width:var(--control-size);min-height:var(--control-size);border-radius:var(--r-sm);color:var(--text-2);transition:color var(--t), background var(--t);background:0 0;place-items:center;padding:4px 7px;display:grid}button[data-astro-cid-xc6bvkpg]:hover{color:var(--neon);background:var(--neon-soft)}#portfolio-results[data-astro-cid-xc6bvkpg]{max-height:min(380px,100dvh - 220px);padding:8px;overflow-y:auto}#portfolio-results[data-astro-cid-xc6bvkpg] [role=option]{cursor:pointer;border-radius:7px;justify-content:space-between;gap:16px;padding:12px;display:flex}#portfolio-results[data-astro-cid-xc6bvkpg] [aria-selected=true]{background:var(--surface);box-shadow:inset 2px 0 var(--neon)}#portfolio-results[data-astro-cid-xc6bvkpg] small{color:var(--muted);font-size:var(--fs-xs);flex-shrink:0}footer[data-astro-cid-xc6bvkpg]{border-top:1px solid var(--ln-object);font-size:var(--fs-xs);color:var(--muted);align-items:center;gap:8px;padding:12px 16px;display:flex}kbd[data-astro-cid-xc6bvkpg]{background:var(--surface);font:var(--fs-xs) var(--mono);border-radius:4px;padding:2px 5px}[data-astro-cid-xc6bvkpg][data-search-count]{margin-left:auto}.search-empty[data-astro-cid-xc6bvkpg]{text-align:center;color:var(--text-2);padding:24px}study-pdf{min-width:0;margin-block:24px;display:block}.pdf-display{isolation:isolate;position:relative}.pdf-controls{background:var(--bg);border:1px solid var(--ln-object);border-radius:var(--r-md);align-items:center;gap:4px;width:max-content;max-width:calc(100% - 16px);padding:4px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0003}.pdf-controls output{text-align:center;min-width:32px}.pdf-page{background:var(--bg);pointer-events:none;border-radius:4px;padding:5px 8px;position:absolute;top:10px;left:10px}.pdf-controls output,[data-pdf-page]{font:var(--fs-xs) var(--mono);color:var(--muted)}.pdf-stage{scrollbar-gutter:stable;border:1px solid var(--ln-object);border-radius:var(--r-md);cursor:grab;overscroll-behavior:contain;background:#e7e7e7;height:clamp(260px,55dvh,480px);padding:12px 12px 68px;overflow:auto}.pdf-stage.is-dragging{cursor:grabbing}.pdf-stage canvas{background:#fff;max-width:none;margin-inline:auto;display:block}.pdf-stage canvas[hidden]{display:none}.pdf-stage:focus-visible{outline:2px solid var(--neon);outline-offset:2px}[data-pdf-status]:empty{display:none}@media (width<=767px){study-pdf{margin-block:16px}.pdf-stage{height:clamp(200px,42dvh,360px);padding:8px 8px 68px}.pdf-controls{bottom:8px}}#case-study-viewer{border:1px solid var(--ln-dim);border-radius:var(--r-lg);background:var(--bg);width:min(900px,100vw - 32px);max-width:none;height:min(860px,100dvh - 32px);max-height:none;color:var(--text);font:var(--fs-sm)/1.7 var(--sans);margin:auto;padding:0;position:fixed;inset:0;overflow:hidden;box-shadow:0 24px 100px #0006}#case-study-viewer[open]{flex-direction:column;display:flex}#case-study-viewer::backdrop{backdrop-filter:blur(8px);background:#0009}.study-toolbar,.study-footer{background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 24px;display:flex}.study-toolbar{border-bottom:1px solid var(--ln-object);font:var(--fs-xs) var(--mono);letter-spacing:.08em}[data-study-count]{color:var(--muted);margin-left:10px}#case-study-viewer button{min-width:var(--control-size);min-height:var(--control-size);border-radius:var(--r-sm);color:var(--text-2);font:500 var(--fs-sm)/var(--leading-detail) var(--sans);cursor:pointer;transition:color var(--t), background var(--t);background:0 0;padding:8px 12px}#case-study-viewer button:hover:not(:disabled){background:var(--neon-soft);color:var(--neon)}#case-study-viewer button:disabled{opacity:.35;cursor:default}#case-study-viewer :is(a,button):focus-visible{outline:2px solid var(--neon);outline-offset:2px}.study-body{font-size:var(--fs-base);line-height:var(--leading-body);overscroll-behavior:contain;overflow-wrap:anywhere;min-height:0;padding:36px 48px;overflow-y:auto}.study-eyebrow{color:var(--muted);font:var(--fs-xs) var(--mono);letter-spacing:.12em}.study-heading h2{font:600 var(--fs-h2)/var(--leading-heading) var(--display);letter-spacing:-.02em;margin:12px 0 8px}.study-type{color:var(--muted);font-size:var(--fs-xs)}.study-status{border:1px solid var(--yellow);color:var(--text);background:var(--surface);font:var(--fs-xs)/1.5 var(--mono);border-radius:20px;margin-top:12px;padding:4px 10px;display:inline-block}.study-summary{width:100%;font-size:var(--fs-base);color:var(--text-2);margin:20px 0 24px;padding:0}.study-summary>:first-child{margin-top:0}.study-summary>:last-child{margin-bottom:0}.study-summary p,#study-approach li{text-align:justify;hyphens:auto}.study-facts{padding:var(--space-6);border:1px solid var(--ln-object);border-radius:var(--r-md);background:var(--surface);grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:24px;margin:0 0 28px;display:grid}.study-facts dt{font:var(--fs-xs) var(--mono);text-transform:uppercase;color:var(--muted);margin-bottom:8px}.study-facts dd{font-size:var(--fs-sm);line-height:var(--leading-body);margin:0}.study-role-title{font-weight:600;display:block}.study-role-details{color:var(--text-2);margin-top:8px;display:block}.study-body .study-team{padding:0;list-style:none}.study-team>li{border-top:1px solid var(--ln-object);grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:12px 24px;padding:18px 0;display:grid}.study-body .study-team>li+li{margin-top:0}.study-body .study-team p{text-align:start;margin:0}.study-team-identity.is-me h4{color:var(--neon)}.study-me-label{border:1px solid var(--neon-line);background:var(--neon-soft);color:var(--neon);font:var(--fs-xs)/1.4 var(--mono);vertical-align:middle;border-radius:4px;margin-inline-start:8px;padding:2px 6px;display:inline-block}.study-team-role{color:var(--muted);font-size:var(--fs-sm);margin:4px 0 0;display:block}.study-nav{border-bottom:1px solid var(--ln-object);flex-wrap:wrap;gap:8px;padding-bottom:24px;display:flex}.study-nav a{min-height:var(--control-size);border:1px solid var(--ln-object);font-size:var(--fs-sm);color:var(--text-2);border-radius:20px;align-items:center;padding:6px 12px;display:inline-flex}.study-body section{padding-block:var(--space-8);scroll-margin-top:16px}.study-body section+section{border-top:1px solid var(--ln-object)}.study-body h3{font:600 var(--fs-h3)/var(--leading-heading) var(--display);text-wrap:balance;margin:8px 0 16px}.study-body h4{color:var(--text);font:600 var(--fs-sm)/1.5 var(--sans);margin:0 0 6px}.study-body section p{line-height:var(--leading-body);text-align:justify;hyphens:auto;margin:0 0 16px}.study-body section>p:last-child,.study-detail-list p:last-child{margin-bottom:0}.study-body section p,.study-body li{color:var(--text-2)}.study-body ul,.study-body ol{margin:0;padding-inline-start:24px;list-style-position:outside}.study-body ul{list-style-type:disc}.study-body ol{list-style-type:decimal}.study-body li{line-height:var(--leading-body);padding-inline-start:6px}.study-body li::marker{color:var(--muted)}.study-body li+li{margin-top:16px}.study-detail-list li+li{margin-top:24px}.study-screen-frame{border:1px solid var(--ln-object);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.study-section-images{gap:24px;margin-top:24px;display:grid}.study-section-images figure{min-width:0;margin:0}.study-section-images a{border:1px solid var(--ln-object);border-radius:var(--r-md);cursor:zoom-in;display:block;overflow:hidden}.study-section-images img{width:100%;height:auto;display:block}.study-section-images figcaption{color:var(--muted);font-size:var(--fs-xs);padding:10px 2px 0;line-height:1.6}.study-screen-frame figure{margin:0}.study-screen-frame figure[hidden]{display:none}.study-screen-frame img{object-fit:contain;width:100%;height:clamp(180px,40vw,400px);max-height:50dvh;display:block}.study-screen-frame figcaption{border-top:1px solid var(--ln-object);font-size:var(--fs-xs);color:var(--muted);padding:10px 14px}.study-screen-controls{font:var(--fs-xs) var(--mono);color:var(--muted);justify-content:flex-end;align-items:center;gap:12px;display:flex}.study-links{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.study-links a{min-height:var(--control-size);border:1px solid var(--ln-object);border-radius:var(--r-sm);background:var(--surface);font:500 var(--fs-sm)/var(--leading-detail) var(--sans);transition:color var(--t), border-color var(--t), background var(--t);align-items:center;padding:10px 16px;display:inline-flex}.study-links a:hover{color:var(--neon);border-color:var(--neon-line);background:var(--neon-soft)}.study-footer{border-top:1px solid var(--ln-object);font-size:var(--fs-xs)}body.case-study-open .project-hover-preview{visibility:hidden;opacity:0}@media (width<=767px){#case-study-viewer{width:calc(100vw - 24px);height:min(860px,88dvh)}.study-body{font-size:var(--fs-sm);padding:20px 16px}.study-team>li{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);column-gap:12px}.study-toolbar,.study-footer{padding:8px 12px}.study-summary{font-size:var(--fs-sm);margin-block:16px 20px;line-height:1.55}.study-facts{gap:20px;padding:16px}.study-body section{padding-block:24px}.study-body section p,.study-summary p,#study-approach li{text-align:start}.study-body ul,.study-body ol{padding-inline-start:18px}}@media (height<=500px) and (width<=900px){#case-study-viewer{height:calc(100dvh - 24px)}}
