.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.media-viewer{position:fixed;inset:0;z-index:1200;display:flex;align-items:stretch;justify-content:center;padding:clamp(.65rem,2vw,1.5rem);background:color-mix(in srgb,var(--p-bg, #080e1a) 78%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);--viewer-w: calc(var(--p-maxw, 920px) * 1.08)}.media-viewer[hidden]{display:none}.media-viewer__panel{display:flex;flex-direction:column;flex:none;align-self:stretch;width:min(var(--viewer-w),100%);max-width:var(--viewer-w);min-height:0;background:var(--p-panel, #101b30);border:1px solid color-mix(in srgb,var(--p-border, rgba(91, 154, 255, .24)) 90%,transparent);border-radius:12px;overflow:hidden;box-shadow:0 0 0 1px color-mix(in srgb,var(--p-cool, #5b9aff) 8%,transparent),0 32px 90px -36px #000000b8}.media-viewer__bar{display:flex;align-items:center;gap:.75rem 1rem;flex-wrap:wrap;padding:.7rem 1rem;border-bottom:1px solid color-mix(in srgb,var(--p-border, rgba(91, 154, 255, .24)) 85%,transparent);font-family:var(--mono, "JetBrains Mono", ui-monospace, monospace);font-size:.78rem;letter-spacing:.02em;color:var(--p-dim, #5f8496);background:linear-gradient(180deg,color-mix(in srgb,var(--p-panel, #101b30) 88%,var(--p-fg, #d8ecf4) 6%),var(--p-panel, #101b30))}.media-viewer__title{flex:1 1 8rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--p-fg, #d8ecf4);font-weight:500}.media-viewer__meta{flex:none;color:var(--p-dim, #5f8496);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.media-viewer__actions{display:flex;align-items:center;gap:.45rem;flex:none;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.media-viewer__zoom{display:inline-flex;align-items:stretch;flex:none;height:2rem;overflow:hidden;border:1px solid color-mix(in srgb,var(--p-border, rgba(91, 154, 255, .24)) 90%,transparent);border-radius:7px;background:color-mix(in srgb,var(--p-bg, #080e1a) 55%,transparent)}.media-viewer__zoom[hidden]{display:none}.media-viewer__zoom .media-viewer__btn{flex:none;min-width:2rem;min-height:0;height:100%;padding:0 .55rem;font-size:1rem;font-weight:500;line-height:1;text-transform:none;letter-spacing:0;border:none;border-radius:0;background:transparent;color:var(--p-fg-2, #9eb8c6)}.media-viewer__zoom .media-viewer__btn:hover,.media-viewer__zoom .media-viewer__btn:focus-visible{color:var(--p-link, #5b9aff);border:none;background:color-mix(in srgb,var(--p-link, #5b9aff) 12%,transparent);outline:none}.media-viewer__zoom .media-viewer__btn:disabled:hover,.media-viewer__zoom .media-viewer__btn:disabled:focus-visible{color:var(--p-fg-2, #9eb8c6);background:transparent}.media-viewer__zoom-label{display:inline-flex;align-items:center;justify-content:center;min-width:3.1rem;padding:0 .35rem;text-align:center;font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--p-dim, #5f8496);letter-spacing:.02em;border-left:1px solid color-mix(in srgb,var(--p-border, rgba(91, 154, 255, .24)) 70%,transparent);border-right:1px solid color-mix(in srgb,var(--p-border, rgba(91, 154, 255, .24)) 70%,transparent);user-select:none}.media-viewer__btn{flex:none;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font:inherit;font-size:.72rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;line-height:1;color:var(--p-fg-2, #9eb8c6);background:color-mix(in srgb,var(--p-bg, #080e1a) 55%,transparent);border:1px solid color-mix(in srgb,var(--p-border, rgba(91, 154, 255, .24)) 90%,transparent);border-radius:7px;padding:.42rem .7rem;min-height:2rem;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.media-viewer__btn:hover,.media-viewer__btn:focus-visible{color:var(--p-link, #5b9aff);border-color:color-mix(in srgb,var(--p-link, #5b9aff) 50%,transparent);background:color-mix(in srgb,var(--p-link, #5b9aff) 10%,transparent);outline:none}.media-viewer__btn[hidden]{display:none}.media-viewer__btn:disabled{opacity:.35;cursor:default;pointer-events:none}.media-viewer__close{min-width:2rem;padding-left:.55rem;padding-right:.55rem;font-size:1.15rem;font-weight:400;line-height:1;text-transform:none;letter-spacing:0}.media-viewer__body{flex:1;min-height:0;display:flex;align-items:stretch;justify-content:center;background:radial-gradient(ellipse 70% 55% at 50% 40%,color-mix(in srgb,var(--p-cool, #5b9aff) 6%,transparent),transparent 70%),color-mix(in srgb,var(--p-bg, #080e1a) 70%,#000)}.media-viewer__pdf-wrap{width:100%;height:100%;min-height:0;overflow:auto;scrollbar-gutter:stable}.media-viewer__pdf-wrap[hidden]{display:none}.media-viewer__pdf-pages{display:flex;flex-direction:column;align-items:center;gap:1.1rem;padding:1.1rem clamp(.75rem,2vw,1.35rem) 1.5rem;min-height:min-content;min-width:min-content}.media-viewer__page{display:block;width:auto;max-width:none;height:auto;background:#fff;border-radius:2px;box-shadow:0 1px color-mix(in srgb,#fff 40%,transparent),0 14px 40px -20px #000000bf,0 0 0 1px color-mix(in srgb,var(--p-cool, #5b9aff) 12%,transparent)}.media-viewer__status{margin:auto;padding:2.5rem 1.25rem;font-family:var(--mono, "JetBrains Mono", ui-monospace, monospace);font-size:.84rem;color:var(--p-dim, #5f8496);text-align:center;line-height:1.55}.media-viewer__pdf-pages a{display:inline-block;margin:.75rem auto 0;font-family:var(--mono, "JetBrains Mono", ui-monospace, monospace);font-size:.78rem;color:var(--p-link, #5b9aff);text-decoration:none}.media-viewer__pdf-pages a:hover{color:var(--p-cmd, #a78bfa)}.media-viewer__img{width:100%;max-width:100%;max-height:100%;object-fit:contain;padding:1rem;margin:auto}.media-viewer__img[hidden]{display:none}body.media-viewer-open{overflow:hidden}@media(max-width:560px){.media-viewer{padding:.4rem}.media-viewer__panel{border-radius:9px}.media-viewer__bar{padding:.6rem .75rem;gap:.5rem}.media-viewer__actions{width:100%}.media-viewer__actions>.media-viewer__btn{flex:1}.media-viewer__pdf-pages{gap:.85rem;padding:.75rem}}.concierge{--p-bg: #050814;--p-panel: #0c1428;--p-fg: #e8eefb;--p-fg-2: #bac4da;--p-dim: #7485a6;--p-cool: #6f9cff;--p-link: #6f9cff;--p-cmd: #a66bff;--p-warm: #a66bff;--p-accent: #8c91ff;--p-ok: #5ad6a0;--p-err: #ff6f91;--p-border: rgba(111, 156, 255, .32);position:fixed;inset:0;z-index:1300;display:flex;align-items:center;justify-content:center;padding:clamp(.65rem,2.5vw,1.5rem);background:color-mix(in srgb,var(--p-bg, #080e1a) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:0;transition:opacity .4s ease}.concierge[hidden]{display:none}.concierge.is-open{opacity:1}.concierge__fx{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;opacity:0;transition:opacity 1.15s ease}.concierge.is-fog-in .concierge__fx{opacity:1}.concierge.is-closing .concierge__fx{opacity:0;transition-duration:.65s}.concierge__fx .subdiv-field{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;pointer-events:none!important;opacity:1;z-index:0}.concierge__crt{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.7}.concierge__win{position:relative;z-index:2;display:flex;flex-direction:column;width:min(32rem,100%);max-height:min(36rem,calc(100dvh - 2rem));background:var(--p-panel, #101b30);border:1px solid color-mix(in srgb,var(--p-border, rgba(91, 154, 255, .24)) 90%,transparent);border-radius:11px;overflow:hidden;box-shadow:0 0 0 1px color-mix(in srgb,var(--p-cool, #5b9aff) 8%,transparent),0 32px 90px -36px #000000b8;font-family:JetBrains Mono,IBM Plex Mono,ui-monospace,monospace;font-size:.875rem;line-height:1.55;color:var(--p-fg, #d8ecf4);opacity:0;transform:translateY(10px) scale(.985);transition:opacity .4s ease,transform .45s cubic-bezier(.16,1,.3,1);pointer-events:none}.concierge.is-panel-in .concierge__win{opacity:1;transform:none;pointer-events:auto}.concierge.is-closing .concierge__win{opacity:0;transform:translateY(6px) scale(.99);pointer-events:none;transition-duration:.32s}.concierge.is-closing{opacity:0;transition-duration:.55s;transition-delay:.12s}@media(prefers-reduced-motion:reduce){.concierge,.concierge__fx,.concierge__win{transition:none!important}.concierge.is-open:not(.is-closing) .concierge__fx,.concierge.is-open:not(.is-closing) .concierge__win{opacity:1;transform:none;pointer-events:auto}}.concierge__titlebar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--p-border, rgba(91, 154, 255, .24));background:#ffffff05;flex:none}.concierge__dots{display:flex;gap:.45rem;justify-self:start;align-items:center}.concierge__dot{width:11px;height:11px;border-radius:50%;display:block;flex:none;box-sizing:border-box}.concierge__dot--close{appearance:none;border:none;padding:0;margin:0;background:color-mix(in srgb,#ff5f57 72%,var(--p-panel, #101b30));cursor:pointer;transition:filter .15s,transform .12s,box-shadow .15s,background .15s}.concierge__dot--close:hover{background:color-mix(in srgb,#ff5f57 88%,var(--p-panel, #101b30));box-shadow:0 0 0 2px color-mix(in srgb,#ff5f57 28%,transparent)}.concierge__dot--close:active{transform:scale(.92)}.concierge__dot--close:focus-visible{outline:2px solid var(--p-link, #5b9aff);outline-offset:3px}.concierge__dot--min{background:color-mix(in srgb,#febc2e 70%,var(--p-panel, #101b30))}.concierge__dot--max{background:color-mix(in srgb,#28c840 68%,var(--p-panel, #101b30))}.concierge__title{margin:0;justify-self:center;color:var(--p-fg-2, #9eb8c6);font-size:.72rem;letter-spacing:.04em;font-weight:400;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.concierge__titlebar-end{justify-self:end;width:1.75rem;height:1.75rem}.concierge__body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:1.1rem 1.2rem 1.25rem}.concierge__intro{margin:0 0 1rem}.concierge__badge{color:var(--p-fg, #d8ecf4);font-weight:500;font-size:1.05rem;letter-spacing:.02em;margin-bottom:.4rem;padding-top:30px}.concierge__intro p{margin:0;color:var(--p-fg-2, #9eb8c6)}.concierge__intro .muted{color:color-mix(in srgb,var(--p-cool, #5b9aff) 55%,var(--p-fg-2, #9eb8c6))}.concierge__form{display:flex;flex-direction:column;gap:.85rem}.concierge__field{display:grid;grid-template-columns:5.5rem 1fr;gap:.5rem .75rem;align-items:baseline}.concierge__field--msg{align-items:start}.concierge__field label{color:var(--p-link, #5b9aff);font-size:.8rem;letter-spacing:.02em;padding-top:.45rem}.concierge__field--msg label{padding-top:.55rem}.concierge__field input,.concierge__field textarea{width:100%;appearance:none;border:1px solid color-mix(in srgb,var(--p-border, rgba(91, 154, 255, .24)) 95%,transparent);border-radius:6px;background:color-mix(in srgb,var(--p-bg, #080e1a) 70%,transparent);color:var(--p-fg, #d8ecf4);font:inherit;font-size:.875rem;padding:.45rem .65rem;line-height:1.45}.concierge__field textarea{min-height:6.5rem;resize:vertical}.concierge__field input:focus,.concierge__field textarea:focus{outline:none;border-color:color-mix(in srgb,var(--p-link, #5b9aff) 55%,transparent);box-shadow:0 0 0 2px color-mix(in srgb,var(--p-link, #5b9aff) 18%,transparent)}.concierge__field input::placeholder,.concierge__field textarea::placeholder{color:color-mix(in srgb,var(--p-fg-2, #9eb8c6) 55%,transparent)}.concierge__hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.concierge__topics{display:flex;flex-wrap:wrap;gap:.4rem;grid-column:2}.concierge__topic{appearance:none;border:1px solid color-mix(in srgb,var(--p-border, rgba(91, 154, 255, .24)) 90%,transparent);background:transparent;color:var(--p-fg-2, #9eb8c6);font:inherit;font-size:.75rem;letter-spacing:.03em;padding:.28rem .6rem;border-radius:4px;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.concierge__topic:hover{color:var(--p-fg, #d8ecf4);border-color:color-mix(in srgb,var(--p-link, #5b9aff) 45%,transparent)}.concierge__topic[aria-pressed=true]{color:var(--p-bg, #080e1a);background:var(--p-cmd, #a78bfa);border-color:var(--p-cmd, #a78bfa)}.concierge__topic:focus-visible{outline:2px solid var(--p-link, #5b9aff);outline-offset:2px}.concierge__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.65rem 1rem;margin-top:.25rem;padding-left:6.25rem}.concierge__send{appearance:none;display:inline-flex;align-items:center;justify-content:center;width:2.55rem;height:2.55rem;border:1px solid color-mix(in srgb,var(--p-cmd, #a78bfa) 55%,transparent);background:color-mix(in srgb,var(--p-cmd, #a78bfa) 18%,transparent);color:var(--p-fg, #d8ecf4);padding:0;border-radius:4px;cursor:pointer;transition:background .15s,border-color .15s,color .15s;margin-right:10px}.concierge__send-icon{width:1.15rem;height:1.15rem;display:block}.concierge__send:hover:not(:disabled){background:color-mix(in srgb,var(--p-cmd, #a78bfa) 32%,transparent);border-color:var(--p-cmd, #a78bfa);color:var(--p-cmd, #a78bfa)}.concierge__send:disabled{opacity:.55;cursor:wait}.concierge__send:focus-visible{outline:2px solid var(--p-link, #5b9aff);outline-offset:2px}.concierge__status{margin-top:.85rem;min-height:1.4em;font-size:.85rem}.concierge__status[data-kind=ok]{color:var(--p-ok, #9ece6a)}.concierge__status[data-kind=err]{color:var(--p-err, #f7768e)}.concierge__status[data-kind=busy]{color:var(--p-fg-2, #9eb8c6)}.concierge__fallback{margin-top:.35rem;font-size:.8rem;color:var(--p-fg-2, #9eb8c6)}.concierge__fallback a{color:var(--p-link, #5b9aff);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--p-link, #5b9aff) 40%,transparent)}.concierge__fallback a:hover{border-bottom-color:var(--p-link, #5b9aff)}.concierge__socials{display:flex;flex-wrap:wrap;gap:.85rem 1.35rem;margin-top:1.15rem;padding-top:1rem;border-top:1px solid color-mix(in srgb,var(--p-border, rgba(91, 154, 255, .24)) 80%,transparent)}.concierge__social{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--p-fg-2, #9eb8c6);text-decoration:none;transition:color .15s}.concierge__social:hover{color:var(--p-link, #5b9aff)}.concierge__social:focus-visible{outline:2px solid var(--p-link, #5b9aff);outline-offset:2px}@media(max-width:520px){.concierge__field{grid-template-columns:1fr;gap:.3rem}.concierge__field label{padding-top:0}.concierge__topics{grid-column:1}.concierge__actions{padding-left:0}}@media(prefers-reduced-motion:reduce){.concierge__topic,.concierge__send{transition:none}}.page-fog{--fog-ambient: .18;--fog-ease: cubic-bezier(.22, 1, .36, 1);position:fixed;inset:0;z-index:0;pointer-events:none;background:transparent;transform:translateZ(0);contain:paint}.page-fog[hidden]{display:none!important}.page-fog.page-fog--ambient{z-index:0;pointer-events:none;display:block}.page-fog__veil{display:none}.page-fog__field{position:absolute;inset:0;z-index:1;overflow:hidden;opacity:0;will-change:opacity;transition:opacity 1.1s var(--fog-ease)}.page-fog__field .subdiv-field{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;pointer-events:none!important}.page-fog__crt{display:none}.page-fog--ambient .page-fog__field{opacity:0}.page-fog--ambient.page-fog--ambient-in .page-fog__field{opacity:var(--fog-ambient)}.page-fog.is-hiding .page-fog__field{transition:none!important;opacity:0!important}html.page-fog-pending:before{display:none!important}@media(prefers-reduced-motion:reduce){.page-fog__field{transition-duration:.01ms!important}}::view-transition-old(root),::view-transition-new(root){animation:none!important;mix-blend-mode:normal}::view-transition-group(root){animation:none!important}::view-transition-group(portfolio-switch),::view-transition-group(console-switch){animation-duration:.52s;animation-timing-function:cubic-bezier(.16,1,.3,1)}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
