@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(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}.portfolio-assistant{z-index:50;right:max(1.25rem, env(safe-area-inset-right));bottom:max(1.25rem, env(safe-area-inset-bottom));font-family:var(--font-body);position:fixed}.assistant-launcher,.chat-panel button,.chat-panel textarea{font:inherit}.assistant-launcher,.chat-panel button{cursor:pointer}.assistant-launcher{isolation:isolate;min-width:15.6rem;min-height:4.35rem;color:var(--color-ink-100);background:linear-gradient(135deg, #081126f5, #0b1530eb) padding-box, linear-gradient(115deg, var(--color-evidence-500), #55dffd1a 42%, #ff4fd83d 65%, var(--color-ai-500)) border-box;-webkit-backdrop-filter:blur(18px)saturate(135%);backdrop-filter:blur(18px)saturate(135%);transition:transform var(--motion-duration-base) var(--motion-ease-out), box-shadow var(--motion-duration-base) var(--motion-ease-out);border:1px solid #0000;border-radius:1.1rem;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;padding:.65rem .8rem;display:grid;position:relative;overflow:hidden;box-shadow:0 1rem 3.5rem #00020f85,0 0 2.2rem #55dffd1a}.assistant-launcher:before{z-index:-1;background:conic-gradient(from 150deg, transparent 0 35%, #55dffd21 43%, transparent 51% 72%, #ff4fd81f 80%, transparent 88%);content:"";animation:9s linear infinite assistant-aurora;position:absolute;inset:-80% -25%}.assistant-launcher:hover{transform:translateY(-3px);box-shadow:0 1.35rem 4.5rem #00020f9e,0 0 2.8rem #55dffd2e,0 0 1.4rem #ff4fd817}.assistant-launcher:focus-visible,.chat-panel button:focus-visible,.chat-panel textarea:focus-visible,.chat-evidence-links summary:focus-visible{box-shadow:var(--focus-ring);outline:none}.launcher-glyph,.chat-mark{color:var(--color-evidence-500);background:#55dffd0f;border:1px solid #55dffd2e;place-items:center;display:grid}.launcher-glyph{border-radius:.8rem;width:3rem;height:3rem;box-shadow:inset 0 0 1.2rem #55dffd12}.launcher-glyph svg,.chat-mark svg{width:78%;height:78%}.neural-path{fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:6 5;animation:2.8s linear infinite assistant-signal}.neural-path--cyan,.neural-path--bridge{stroke:var(--color-evidence-500)}.neural-path--magenta{stroke:var(--color-ai-500);animation-delay:-1.1s}.neural-path--bridge{opacity:.52}.neural-node{stroke:var(--color-ink-900);stroke-width:1.5px}.neural-node--cyan{fill:var(--color-evidence-500)}.neural-node--magenta{fill:var(--color-ai-500)}.neural-node--core{fill:var(--color-ink-900);stroke:var(--color-verified-500);filter:drop-shadow(0 0 5px #69dba8cc)}.launcher-copy{text-align:left;gap:.15rem;display:grid}.launcher-copy strong{color:var(--color-ink-100);font-family:var(--font-display);letter-spacing:-.015em;font-size:1rem}.launcher-kicker{color:var(--color-ink-300);font-family:var(--font-utility);letter-spacing:.11em;text-transform:uppercase;align-items:center;gap:.35rem;font-size:.63rem;display:flex}.launcher-status-dot,.chat-evidence-state>span{background:var(--color-verified-500);border-radius:50%;width:.42rem;height:.42rem;animation:2.4s ease-in-out infinite assistant-status-pulse;display:inline-block;box-shadow:0 0 .65rem #69dba8cc}.launcher-arrow{width:1.7rem;height:1.7rem;color:var(--color-evidence-300);font-family:var(--font-utility);transition:color var(--motion-duration-fast), border-color var(--motion-duration-fast), transform var(--motion-duration-fast);border:1px solid #55dffd33;border-radius:50%;place-items:center;font-size:.78rem;display:grid}.assistant-launcher:hover .launcher-arrow{color:var(--color-ink-100);border-color:#55dffd8c;transform:translate(1px,-1px)}.chat-backdrop{z-index:-1;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0205126b;animation:.22s ease-out both assistant-backdrop-in;position:fixed;inset:0}.chat-panel{width:min(36rem,100vw - 2.5rem);max-height:min(48rem,100dvh - 2.5rem);color:var(--color-ink-100);-webkit-backdrop-filter:blur(26px)saturate(130%);backdrop-filter:blur(26px)saturate(130%);transform-origin:100% 100%;animation:assistant-panel-in .42s var(--motion-ease-out) both;background:linear-gradient(155deg,#081126fa,#050817fa) padding-box padding-box,linear-gradient(135deg,#55dffda8,#55dffd14 38%,#ff4fd81a 65%,#ff4fd894) border-box;border:1px solid #0000;border-radius:1.35rem;flex-direction:column;display:flex;position:absolute;bottom:0;right:0;overflow:hidden;box-shadow:0 2rem 7rem #00020fb8,0 0 3.5rem #55dffd14}.chat-neural-field{z-index:0;pointer-events:none;opacity:.35;background:radial-gradient(circle,#55dffd24,#0000 54%),repeating-radial-gradient(circle,#0000 0 2.8rem,#55dffd1c 2.85rem 2.9rem);width:24rem;height:24rem;position:absolute;top:-9rem;right:-7rem}.chat-neural-field span{background:var(--color-evidence-500);border-radius:50%;width:.35rem;height:.35rem;animation:4s ease-in-out infinite assistant-node-float;position:absolute;box-shadow:0 0 1rem}.chat-neural-field span:first-child{top:42%;left:27%}.chat-neural-field span:nth-child(2){color:var(--color-ai-500);background:currentColor;animation-delay:-1.3s;top:67%;left:52%}.chat-neural-field span:nth-child(3){animation-delay:-2.6s;top:32%;left:69%}.chat-header,.chat-context-bar,.chat-panel-body,.chat-composer{z-index:1;position:relative}.chat-header{justify-content:space-between;align-items:center;gap:1rem;padding:1.05rem 1.1rem .95rem;display:flex}.chat-identity{align-items:center;gap:.8rem;min-width:0;display:flex}.chat-mark{border-radius:.78rem;flex:none;width:2.8rem;height:2.8rem}.chat-product-name,.chat-header h2,.chat-panel p{margin:0}.chat-product-name,.chat-query-label,.chat-turn-label,.chat-suggestion-group>p,.chat-answer-status,.chat-context-bar,.chat-composer-meta{font-family:var(--font-utility)}.chat-product-name{color:var(--color-evidence-500);letter-spacing:.16em;font-size:.64rem;font-weight:700}.chat-header h2{color:var(--color-ink-100);font-family:var(--font-display);letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap;margin-top:.12rem;font-size:clamp(1rem,3vw,1.18rem);font-weight:650;overflow:hidden}.chat-icon-button{width:2.45rem;height:2.45rem;color:var(--color-ink-200);transition:color var(--motion-duration-fast), border-color var(--motion-duration-fast), background var(--motion-duration-fast);background:#ffffff08;border:1px solid #8fa5c333;border-radius:.7rem;flex:none;place-items:center;padding:0;font-size:1.55rem;line-height:1;display:grid}.chat-icon-button:hover{color:var(--color-ink-100);background:#55dffd14;border-color:#55dffd6b}.chat-context-bar{min-height:2.55rem;color:var(--color-ink-300);letter-spacing:.055em;text-transform:uppercase;background:#05081770;border-block:1px solid #55dffd1a;justify-content:space-between;align-items:center;gap:.8rem;padding:.55rem 1.1rem;font-size:.66rem;display:flex}.chat-evidence-state{color:var(--color-verified-500);align-items:center;gap:.45rem;display:flex}.chat-role-context{color:var(--color-evidence-300);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-panel-body{scrollbar-color:#55dffd57 transparent;scrollbar-width:thin;flex:auto;gap:1rem;min-height:0;padding:1rem 1.1rem 1.15rem;display:grid;overflow-y:auto}.chat-privacy{color:var(--color-ink-300);font-size:.78rem;line-height:1.45}.chat-conversation{gap:.8rem;display:grid}.chat-welcome{background:linear-gradient(115deg,#55dffd0d,#0000 48%),#10203d70;border:1px solid #55dffd1f;border-radius:1rem;padding:1.15rem;position:relative;overflow:hidden}.chat-welcome:after{content:"";border:1px solid #ff4fd826;border-radius:50%;width:7rem;height:7rem;position:absolute;bottom:-2.5rem;right:-2.5rem;box-shadow:0 0 0 1.4rem #ff4fd808,0 0 0 2.8rem #55dffd05}.chat-query-label{color:var(--color-ai-300);letter-spacing:.14em;font-size:.64rem}.chat-welcome h3{color:var(--color-ink-100);font-family:var(--font-display);letter-spacing:-.025em;margin:.4rem 0 .45rem;font-size:1.35rem}.chat-welcome>p:last-child{z-index:1;max-width:28rem;color:var(--color-ink-200);font-size:.92rem;line-height:1.55;position:relative}.chat-turn,.chat-message,.chat-error,.chat-inference{animation:assistant-message-in .3s var(--motion-ease-out) both}.chat-turn--user{background:linear-gradient(135deg,#9d287f38,#10203dc7);border:1px solid #ff4fd833;border-radius:.95rem .25rem .95rem .95rem;justify-self:end;max-width:88%;padding:.75rem .85rem}.chat-turn-label{color:var(--color-ai-300);letter-spacing:.09em;text-transform:uppercase;margin-bottom:.28rem;font-size:.62rem;font-weight:700;display:block}.chat-turn--user p,.chat-message>p{color:var(--color-ink-100);font-size:.94rem;line-height:1.58}.chat-message{background:linear-gradient(135deg,#173154c7,#081126e0);border:1px solid #55dffd2b;border-radius:.25rem .95rem .95rem;padding:.85rem .9rem;box-shadow:inset 3px 0 #55dffdbd}.chat-message--refused{border-color:#ff4fd838;box-shadow:inset 3px 0 #ff4fd8ad}.chat-message-header{justify-content:space-between;align-items:center;gap:.65rem;margin-bottom:.45rem;display:flex}.chat-message-header .chat-turn-label{color:var(--color-evidence-300);margin:0}.chat-answer-status{color:var(--color-verified-500);letter-spacing:.045em;text-transform:uppercase;background:#69dba80d;border:1px solid #69dba82e;border-radius:999px;padding:.2rem .42rem;font-size:.58rem}.chat-message--refused .chat-answer-status{color:var(--color-ai-300);background:#ff4fd80d;border-color:#ff4fd830}.chat-inference{background:#10203d85;border:1px solid #55dffd24;border-radius:.8rem;align-items:center;gap:.8rem;padding:.75rem .85rem;display:flex}.chat-inference>span:last-child{gap:.08rem;display:grid}.chat-inference strong{color:var(--color-evidence-300);font-family:var(--font-utility);letter-spacing:.04em;text-transform:uppercase;font-size:.72rem}.chat-inference small{color:var(--color-ink-300);font-size:.75rem}.inference-nodes{align-items:center;gap:.24rem;display:flex}.inference-nodes i{background:var(--color-evidence-500);border-radius:50%;width:.42rem;height:.42rem;animation:1.2s ease-in-out infinite assistant-thinking;display:block;box-shadow:0 0 .6rem #55dffd80}.inference-nodes i:nth-child(2){animation-delay:.12s}.inference-nodes i:nth-child(3){background:var(--color-ai-500);animation-delay:.24s}.chat-error{color:var(--color-ai-300);background:#9d287f1a;border:1px solid #ff4fd83d;border-radius:.75rem;padding:.75rem .85rem;font-size:.86rem}.chat-suggestion-group{gap:.55rem;display:grid}.chat-suggestion-group>p{color:var(--color-ink-300);letter-spacing:.11em;text-transform:uppercase;font-size:.62rem}.chat-suggestions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;display:grid}.chat-suggestions button{min-height:3.15rem;color:var(--color-ink-200);text-align:left;transition:color var(--motion-duration-fast), border-color var(--motion-duration-fast), background var(--motion-duration-fast), transform var(--motion-duration-fast);background:#10203d5c;border:1px solid #8fa5c324;border-radius:.72rem;justify-content:space-between;align-items:center;gap:.6rem;padding:.58rem .65rem;font-size:.78rem;line-height:1.25;display:flex}.chat-suggestions button>span:last-child{color:var(--color-evidence-500);font-family:var(--font-utility);flex:none}.chat-suggestions button:hover{color:var(--color-ink-100);background:#55dffd12;border-color:#55dffd59;transform:translateY(-1px)}.chat-evidence-links{border-top:1px solid #55dffd1a;margin-top:.72rem;padding-top:.65rem}.chat-evidence-links summary{width:max-content;color:var(--color-evidence-300);font-family:var(--font-utility);letter-spacing:.04em;cursor:pointer;font-size:.66rem}.chat-evidence-links summary span{min-width:1.15rem;height:1.15rem;color:var(--color-ink-900);background:var(--color-evidence-500);border-radius:50%;place-items:center;margin-left:.25rem;font-weight:800;display:inline-grid}.chat-citations{flex-wrap:wrap;gap:.42rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.chat-citations a{color:var(--color-evidence-300);background:#55dffd0a;border:1px solid #55dffd2b;border-radius:999px;padding:.25rem .5rem;font-size:.7rem;text-decoration:none;display:inline-block}.chat-citations a:hover{border-color:#55dffd73}.chat-composer{background:#050817b8;border-top:1px solid #55dffd1c;flex:none;padding:.85rem 1.1rem .9rem;box-shadow:0 -1rem 3rem #05081738}.chat-input-shell{transition:border-color var(--motion-duration-fast), box-shadow var(--motion-duration-fast);background:#10203d8c;border:1px solid #55dffd30;border-radius:.9rem;grid-template-columns:1fr auto;align-items:end;gap:.55rem;padding:.55rem;display:grid;box-shadow:inset 0 0 1.8rem #05081740}.chat-input-shell:focus-within{border-color:#55dffd9e;box-shadow:inset 0 0 1.8rem #05081740,0 0 0 3px #55dffd12}.chat-panel textarea{resize:none;width:100%;min-height:3.1rem;max-height:8rem;color:var(--color-ink-100);background:0 0;border:0;outline:0;padding:.32rem .35rem;font-size:.92rem;line-height:1.45}.chat-panel textarea::placeholder{color:color-mix(in srgb, var(--color-ink-300) 78%, transparent)}.chat-panel textarea:focus-visible{box-shadow:none}.chat-send{min-width:5.2rem;min-height:2.7rem;color:var(--color-ink-900);background:linear-gradient(135deg, var(--color-evidence-300), var(--color-evidence-500));letter-spacing:.035em;transition:filter var(--motion-duration-fast), transform var(--motion-duration-fast), opacity var(--motion-duration-fast);border:1px solid #55dffd99;border-radius:.67rem;justify-content:center;align-items:center;gap:.38rem;padding:.55rem .72rem;font-size:.72rem;font-weight:800;display:flex;box-shadow:0 .55rem 1.5rem #55dffd24;font-family:var(--font-utility)!important}.chat-send:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.chat-send:disabled{cursor:not-allowed;opacity:.42;filter:saturate(.35)}.chat-composer-meta{color:var(--color-ink-300);letter-spacing:.025em;justify-content:space-between;align-items:center;gap:.8rem;margin-top:.48rem;font-size:.58rem;display:flex}.chat-composer-meta>span{align-items:center;gap:.55rem;display:flex}.chat-composer-meta button{color:var(--color-ink-300);font-family:var(--font-utility);font-size:inherit;background:0 0;border:0;padding:.2rem 0}.chat-composer-meta button:hover{color:var(--color-evidence-300)}.chat-character-count{color:color-mix(in srgb, var(--color-ink-300) 68%, transparent)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}@keyframes assistant-panel-in{0%{opacity:0;transform:translateY(1rem)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes assistant-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes assistant-message-in{0%{opacity:0;transform:translateY(.45rem)}to{opacity:1;transform:translateY(0)}}@keyframes assistant-signal{to{stroke-dashoffset:-22px}}@keyframes assistant-aurora{to{transform:rotate(360deg)}}@keyframes assistant-status-pulse{50%{opacity:.52;box-shadow:0 0 .3rem #69dba873}}@keyframes assistant-node-float{50%{opacity:.55;transform:translateY(-.6rem)scale(1.25)}}@keyframes assistant-thinking{0%,to{opacity:.45;transform:translateY(0)}50%{opacity:1;transform:translateY(-.25rem)}}@media (width<=700px){.portfolio-assistant{right:max(.75rem, env(safe-area-inset-right));bottom:max(.75rem, env(safe-area-inset-bottom))}.assistant-launcher{border-radius:1rem;min-width:0;min-height:3.85rem}.launcher-glyph{width:2.65rem;height:2.65rem}.chat-panel{inset:auto .5rem max(.5rem, env(safe-area-inset-bottom));transform-origin:bottom;border-radius:1.2rem;width:auto;max-height:min(48rem,100dvh - 1rem);position:fixed}.chat-backdrop{background:#02051294}.chat-panel-body,.chat-header,.chat-context-bar,.chat-composer{padding-inline:.85rem}.chat-suggestions{grid-template-columns:1fr}.chat-suggestions button{min-height:2.85rem}.chat-turn--user{max-width:94%}}@media (width<=430px){.launcher-copy strong{font-size:.93rem}.launcher-arrow{display:none}.assistant-launcher{gap:.65rem}.chat-header h2{max-width:13rem;font-size:.98rem}.chat-context-bar{font-size:.59rem}.chat-privacy{font-size:.72rem}.chat-welcome{padding:1rem}.chat-welcome h3{font-size:1.18rem}.chat-keyboard-hint{display:none}.chat-input-shell{grid-template-columns:1fr auto}.chat-send{min-width:3.1rem}.chat-send>span:first-child{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}}@media (prefers-reduced-motion:reduce){.assistant-launcher,.chat-panel,.chat-backdrop,.chat-turn,.chat-message,.chat-error,.chat-inference,.neural-path,.launcher-status-dot,.chat-evidence-state>span,.chat-neural-field span,.inference-nodes i,.assistant-launcher:before{transition-duration:.01ms;animation:none}}
