.PortfolioAiChat_chat__l5_i5{position:relative;left:50%;isolation:isolate;display:flex;flex-direction:column;min-height:610px;width:min(1480px,calc(100vw - 48px));margin-inline:0;overflow:hidden;padding:30px clamp(18px,7vw,84px) 48px;border:0;border-radius:28px;background:linear-gradient(180deg,#f8fbff,#f2f8ff 44%,#e2f1ff 72%,#b7ddff);transform:translateX(-50%)}.PortfolioAiChat_chat__l5_i5:before{position:absolute;z-index:-1;inset:0;pointer-events:none;content:"";background:radial-gradient(ellipse at 50% 100%,rgba(64,160,255,.4),transparent 54%),linear-gradient(90deg,rgba(255,255,255,.25),transparent 40%,rgba(255,255,255,.2))}.PortfolioAiChat_chat__l5_i5:after{position:absolute;z-index:-1;right:5%;bottom:-90px;left:5%;height:220px;pointer-events:none;content:"";border-radius:50%;background:rgba(32,132,255,.24);filter:blur(42px)}.PortfolioAiChat_chatControls__8cGeJ{display:flex;justify-content:flex-end;width:min(100%,980px);margin-inline:auto;padding:0 4px 8px}.PortfolioAiChat_newConversation__aYP3F{flex:none;padding:5px 8px;border:0;color:var(--accent-dark);background:transparent;font-size:.74rem;font-weight:600;cursor:pointer}.PortfolioAiChat_newConversation__aYP3F:hover{color:var(--navy);text-decoration:underline;text-underline-offset:3px}.PortfolioAiChat_newConversation__aYP3F:disabled{cursor:wait;opacity:.5}.PortfolioAiChat_transcript__xS_oP{display:grid;flex:1;align-content:center;gap:18px;width:min(100%,980px);min-height:300px;max-height:450px;margin-inline:auto;overflow-y:auto;padding:28px 4px 38px;border:0;scrollbar-color:rgba(52,105,255,.4) transparent}.PortfolioAiChat_emptyState__gNR6v{display:grid;align-content:center;justify-items:center;min-height:210px;padding:18px;color:var(--muted);text-align:center}.PortfolioAiChat_emptyState__gNR6v p{margin:0;color:var(--ink);font-size:clamp(1rem,2vw,1.1rem)}.PortfolioAiChat_emptyState__gNR6v span{margin-top:9px;color:#61758c;font-size:.82rem}.PortfolioAiChat_messageRow__WMtHQ{display:flex;width:100%}.PortfolioAiChat_userRow__US4a4{justify-content:flex-end}.PortfolioAiChat_assistantRow__zxmrQ{justify-content:flex-start}.PortfolioAiChat_messageBubble___eTX9{max-width:min(90%,860px);padding:2px 0;border:0;background:transparent}.PortfolioAiChat_messageContent__b2gad{margin-top:4px;overflow-wrap:anywhere;color:var(--ink);font-size:.96rem;line-height:1.62}.PortfolioAiChat_messageContent__b2gad p{margin:0;white-space:pre-wrap}.PortfolioAiChat_messageContent__b2gad p+p{margin-top:.72em}.PortfolioAiChat_messageContent__b2gad ul{margin:.48em 0 0;padding-left:1.1em}.PortfolioAiChat_messageContent__b2gad li+li{margin-top:.25em}.PortfolioAiChat_citationMarker__XeWdD{color:var(--accent-dark);font-weight:700;text-decoration:underline;text-decoration-color:rgba(52,105,255,.42);text-decoration-thickness:1px;text-underline-offset:3px}.PortfolioAiChat_citationMarker__XeWdD:hover{color:var(--navy);text-decoration-color:currentColor}.PortfolioAiChat_messageLabel__0Khbb{display:block;color:#5d7590;font-size:.66rem;font-weight:700;letter-spacing:.02em;opacity:.9}.PortfolioAiChat_userBubble__jjzY5{text-align:right}.PortfolioAiChat_userBubble__jjzY5 .PortfolioAiChat_messageContent__b2gad,.PortfolioAiChat_userBubble__jjzY5 .PortfolioAiChat_messageLabel__0Khbb{color:var(--navy)}.PortfolioAiChat_userBubble__jjzY5 .PortfolioAiChat_messageContent__b2gad{padding-bottom:4px;border-bottom:1px solid rgba(52,105,255,.45)}.PortfolioAiChat_assistantBubble__L2NHa{color:var(--ink)}.PortfolioAiChat_loadingBubble__p0FG_{min-width:115px}.PortfolioAiChat_loadingDots__4gHt6{display:inline-flex;gap:4px;margin-top:7px}.PortfolioAiChat_loadingDots__4gHt6 i{width:5px;height:5px;border-radius:50%;background:var(--accent);animation:PortfolioAiChat_pulse__JS4_B 1.1s ease-in-out infinite}.PortfolioAiChat_loadingDots__4gHt6 i:nth-child(2){animation-delay:.13s}.PortfolioAiChat_loadingDots__4gHt6 i:nth-child(3){animation-delay:.26s}@keyframes PortfolioAiChat_pulse__JS4_B{0%,60%,to{opacity:.28;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.PortfolioAiChat_composer__ZPC2S{position:relative;display:grid;grid-template-columns:1fr auto;gap:9px;width:min(100%,920px);margin:auto auto 0;padding:6px;border:1px solid rgba(52,105,255,.35);border-radius:16px;background:linear-gradient(110deg,rgba(255,255,255,.94) 12%,rgba(241,249,255,.94) 54%,rgba(190,232,255,.9));box-shadow:0 16px 36px rgba(15,82,161,.15),inset 0 1px 0 rgba(255,255,255,.95)}.PortfolioAiChat_composer__ZPC2S textarea{z-index:1;width:100%;min-height:48px;max-height:150px;padding:12px;border:0;outline:0;resize:vertical;color:var(--ink);background:transparent;font-size:.94rem;line-height:1.45}.PortfolioAiChat_composer__ZPC2S textarea::placeholder{color:#647d97}.PortfolioAiChat_composer__ZPC2S textarea:focus-visible{box-shadow:inset 0 0 0 2px rgba(52,105,255,.18);border-radius:10px}.PortfolioAiChat_sendButton__LjqCP{z-index:1;align-self:end;width:45px;height:45px;margin:2px;border:0;border-radius:11px;color:white;background:linear-gradient(135deg,var(--navy),var(--accent) 65%,var(--cyan));font-size:1.35rem;cursor:pointer;transition:transform .16s ease,opacity .16s ease}.PortfolioAiChat_sendButton__LjqCP:hover:not(:disabled){transform:translateY(-2px)}.PortfolioAiChat_sendButton__LjqCP:disabled{cursor:not-allowed;opacity:.4}.PortfolioAiChat_composerHint__s9RAs{position:absolute;top:calc(100% + 7px);right:5px;color:#58718b;font-size:.67rem}.PortfolioAiChat_error__VDyE7{width:min(100%,920px);margin:24px auto 0;color:#a53c48;font-size:.8rem}.PortfolioAiChat_citations__wcUV6{display:flex;flex-wrap:wrap;gap:6px;width:min(100%,920px);margin:24px auto 0;color:#58718b;font-size:.68rem}.PortfolioAiChat_citations__wcUV6 a,.PortfolioAiChat_citations__wcUV6 span:not(:first-child){padding:3px 7px;border-radius:999px;color:var(--accent-dark);background:rgba(255,255,255,.58)}.PortfolioAiChat_citations__wcUV6 [data-source-marker=true]{scroll-margin-top:120px}.PortfolioAiChat_citations__wcUV6 [data-source-marker=true]:target{color:var(--navy);background:white;box-shadow:0 0 0 2px rgba(52,105,255,.32)}@media (max-width:560px){.PortfolioAiChat_chat__l5_i5{min-height:570px;width:calc(100vw - 24px);padding:22px 14px 38px;border-radius:20px}.PortfolioAiChat_newConversation__aYP3F{padding-inline:4px;font-size:.68rem}.PortfolioAiChat_messageBubble___eTX9{max-width:94%}.PortfolioAiChat_composerHint__s9RAs{display:none}}@media (prefers-reduced-motion:reduce){.PortfolioAiChat_loadingDots__4gHt6 i{animation:none}.PortfolioAiChat_sendButton__LjqCP{transition:none}}.VisualPage_page__Kf2Nw{--visual-gap:20px;width:min(1120px,calc(100% - 48px));margin:0 auto;padding:24px 0 72px}.VisualPage_grid__plfTx{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--visual-gap);align-items:start}.VisualPage_block__REACE{min-width:0;overflow-wrap:anywhere}.VisualPage_block__REACE>:last-child{margin-bottom:0}.VisualPage_alignLeft__kr3SX{text-align:left}.VisualPage_alignCenter__MyhCp{text-align:center}.VisualPage_alignRight__eM7Dj{text-align:right}.VisualPage_small__rE3Qj{font-size:.88rem}.VisualPage_body__ISnGJ{font-size:1rem}.VisualPage_large__Znv13{font-size:clamp(1.1rem,2vw,1.3rem)}.VisualPage_title__IbTpv{font-size:clamp(2rem,4vw,3.25rem)}.VisualPage_display__EOaF_{font-size:clamp(3rem,7vw,5.7rem)}.VisualPage_text__JFKd2{white-space:pre-wrap}.VisualPage_image__dz5po{display:block;width:100%;height:auto;border-radius:inherit;object-fit:cover}.VisualPage_divider__wjpti{height:1px;border:0;background:var(--line)}.VisualPage_orbitWrap__XfV6S{display:grid;place-items:center;min-height:330px}.VisualPage_projects__hTfiR{text-align:left}.VisualPage_projects__hTfiR h2{margin-bottom:10px}.VisualPage_profileLinks__tAoxk{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.VisualPage_skills__T65HM{display:flex;flex-wrap:wrap;gap:9px}.VisualPage_empty__84OuX{color:var(--muted)}@media (max-width:900px){.VisualPage_block__REACE{grid-column:span var(--tablet-span)!important}}@media (max-width:620px){.VisualPage_page__Kf2Nw{width:min(100% - 34px,1120px);padding-top:12px}.VisualPage_grid__plfTx{gap:12px}.VisualPage_block__REACE{grid-column:span var(--mobile-span)!important}.VisualPage_orbitWrap__XfV6S{min-height:270px}}