@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--bg-gradient-start:#fff;--bg-gradient-end:#f9fafb;--primary-text:#111827;--secondary-text:#6b7280;--accent-color:#111827;--accent-hover:#374151;--card-bg:#fff;--card-border:#e5e7eb;--card-border-hover:#9ca3af;--shadow-card:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-card-hover:0 4px 12px #0000001a;--featured-card-bg:linear-gradient(145deg, #f3f4f6, #fff);--featured-card-border:#d1d5db;--button-bg:#111827;--button-text:#fff;--button-hover:#374151;--max-width:1200px;--navbar-height:60px;--border-radius-sm:4px;--border-radius-md:8px;--border-radius-lg:10px;--transition-speed:.3s;--transition-easing:ease-out}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:.6s ease-out forwards slideUp}section{opacity:1}body{background-color:var(--bg-gradient-end);color:var(--primary-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif;line-height:1.6}a{color:var(--accent-color);transition:color var(--transition-speed) var(--transition-easing);text-decoration:none}a:hover{color:var(--accent-hover)}img,video{max-width:100%;height:auto;display:block}h1,h2,h3,h4{letter-spacing:-.02em;color:#111827;font-weight:700;line-height:1.3}h1{font-size:clamp(2rem,5vw,3rem)}h2{font-size:clamp(1.5rem,4vw,2.25rem)}h3{font-size:clamp(1.1rem,3vw,1.4rem)}p{color:var(--secondary-text);margin-bottom:1rem}.navbar{width:100%;height:var(--navbar-height);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;transition:transform .3s ease, background-color var(--transition-speed) ease;background-color:#ffffffd9;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:0 2rem;display:flex;position:fixed;top:0;left:0;transform:translateY(0)}.navbar-hidden{transform:translateY(-100%)}.nav-brand{color:#111827;font-size:1.4rem;font-weight:700}.nav-links{gap:2.5rem;list-style:none;display:flex}.nav-links li a{color:#374151;padding:.5rem 0;font-size:.95rem;font-weight:500;position:relative}.nav-links li a:after{content:"";background-color:var(--primary-text);width:0;height:2px;transition:width var(--transition-speed) var(--transition-easing);position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.nav-links li a:hover:after,.nav-links li a.active:after{width:60%}.nav-links li a.active{color:var(--accent-color)}#hero{max-width:var(--max-width);padding:calc(var(--navbar-height) + 7rem) 2rem 7rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4rem;min-height:88vh;margin:0 auto;display:flex}.hero-content{flex:55%;max-width:620px}.hero-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:#9ca3af;margin-bottom:1.5rem;font-size:.85rem;font-weight:600}.hero-name{letter-spacing:-.03em;color:#111827;margin-bottom:1.5rem;font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.15}.hero-description{color:#6b7280;margin-bottom:2.5rem;font-size:1.1rem;line-height:1.7}.hero-description strong{color:#111827;font-weight:600}.hero-cta{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.cta-secondary{color:#374151;transition:border-color var(--transition-speed) ease, color var(--transition-speed) ease;border:1px solid #e5e7eb;border-radius:50px;align-items:center;gap:.5rem;padding:.9rem 1.5rem;font-size:.95rem;font-weight:500;text-decoration:none;display:inline-flex}.cta-secondary:hover{color:#111827;border-color:#9ca3af}.hero-image{flex:none;justify-content:center;align-items:center;display:flex}.hero-image img{object-fit:cover;border:3px solid #e5e7eb;border-radius:50%;width:280px;height:280px;box-shadow:0 8px 30px #0000001a}#companies{background-color:#fff;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:2rem}.companies-label{text-align:center;letter-spacing:.1em;text-transform:uppercase;color:#9ca3af;margin-bottom:1rem;font-size:.75rem;font-weight:600}.companies-list{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem 2rem;display:flex}.companies-list span{color:#374151;letter-spacing:-.01em;font-size:.95rem;font-weight:600}.companies-list .divider{color:#d1d5db;font-weight:300}#expertise{background-color:#f9fafb;padding:7rem 2rem}.expertise-inner{max-width:var(--max-width);margin:0 auto}.expertise-header{margin-bottom:3.5rem}.expertise-header h2{letter-spacing:-.03em;color:#111827;margin-bottom:.5rem;font-size:clamp(1.8rem,3vw,2.5rem)}.expertise-header p{color:#6b7280;margin:0;font-size:1.05rem}.expertise-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0;display:grid}.expertise-item{background-color:#fff;border:1px solid #e5e7eb;padding:2.5rem}.expertise-item:not(:first-child){border-left:none}.expertise-number{letter-spacing:.1em;color:#d1d5db;margin-bottom:1.25rem;font-size:.75rem;font-weight:700;display:block}.expertise-item h3{color:#111827;letter-spacing:-.02em;margin-bottom:.75rem;font-size:1.1rem;font-weight:600}.expertise-item p{color:#6b7280;margin:0;font-size:.9rem;line-height:1.65}#selected-work{background-color:#fff;padding:7rem 2rem}.selected-work-inner{max-width:var(--max-width);margin:0 auto}.section-header{justify-content:space-between;align-items:baseline;margin-bottom:2rem;display:flex}.section-header h2{letter-spacing:-.03em;color:#111827;font-size:clamp(1.8rem,3vw,2.5rem)}.see-all-link{color:#6b7280;transition:color var(--transition-speed) ease;font-size:.9rem;font-weight:500;text-decoration:none}.see-all-link:hover{color:#111827}.work-list{border-top:1px solid #e5e7eb}.work-item{color:inherit;cursor:pointer;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;gap:2rem;padding:2rem 0;text-decoration:none;display:flex}.work-item:hover{color:#111827}.work-item:hover .work-arrow{color:#111827;transform:translate(4px)}.work-item-left{flex:1}.work-tag{letter-spacing:.08em;text-transform:uppercase;color:#9ca3af;margin-bottom:.5rem;font-size:.72rem;font-weight:600;display:inline-block}.work-item h3{color:#111827;letter-spacing:-.02em;margin-bottom:.35rem;font-size:1.2rem;font-weight:600}.work-item p{color:#6b7280;max-width:480px;margin:0;font-size:.9rem}.work-item-right{flex-shrink:0;align-items:center;gap:1.5rem;display:flex}.work-tech{color:#9ca3af;text-align:right;font-size:.8rem}.work-arrow{color:#d1d5db;transition:transform var(--transition-speed) ease, color var(--transition-speed) ease;font-size:.85rem}.page-hero{padding:calc(var(--navbar-height) + 4rem) 2rem 4rem;text-align:center;color:#111827;background-color:#fff;border-bottom:1px solid #e5e7eb}.page-hero-content{max-width:850px;margin:0 auto}.page-hero-content h1{margin-bottom:1rem;font-size:3rem;font-weight:700}.page-hero-content p{color:#6b7280;max-width:650px;margin:0 auto;font-size:1.15rem;line-height:1.7}#expertise,#about,.projects-section,.articles-section{color:var(--primary-text);background-color:#f9fafb;padding:5rem 1.5rem}#expertise .section-title{text-align:center;color:#111827;margin-bottom:3.5rem;font-size:2.25rem}.expertise-grid{max-width:var(--max-width);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin:0 auto 4rem;display:grid}.expertise-item{background-color:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-card);transition:transform var(--transition-speed) var(--transition-easing), box-shadow var(--transition-speed) var(--transition-easing), border-color var(--transition-speed) var(--transition-easing);padding:1.75rem}.expertise-item:hover{box-shadow:var(--shadow-card-hover);border-color:var(--card-border-hover);transform:translateY(-5px)}.expertise-item h3{color:#111827;align-items:center;gap:.75rem;margin-bottom:1rem;font-size:1.25rem;display:flex}.expertise-item h3 i{color:#6b7280;text-align:center;width:24px;transition:transform var(--transition-speed) ease;font-size:1.4rem}.expertise-item:hover h3 i{transform:scale(1.1)}.expertise-item p{color:var(--secondary-text);margin-bottom:0;font-size:.9rem;line-height:1.55}.cta-button{transition:background-color var(--transition-speed) ease;background-color:#111827;border-radius:50px;padding:.9rem 2.2rem;font-weight:600;text-decoration:none;display:inline-block;color:#fff!important}.cta-button:hover{background-color:#374151}#featured-project{background-color:#fff;border-bottom:1px solid #e5e7eb;padding:6rem 2rem}.featured-card{align-items:center;gap:4rem;display:flex}.featured-card-content{flex:50%}.featured-card-content h2{color:#111827;letter-spacing:-.03em;margin-bottom:1rem;font-size:clamp(1.8rem,3vw,2.2rem)}.featured-description{color:#6b7280;margin-bottom:1.5rem;font-size:.95rem;line-height:1.7}.featured-card-media{border-radius:var(--border-radius-md);background-color:#f3f4f6;flex:45%;overflow:hidden}.featured-card-media video{width:100%;height:auto;display:block}.featured-card-full{flex-direction:column;gap:0}.featured-content-full{max-width:700px}.featured-header{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.featured-stars{color:#fbbf24;background-color:#fefce8;border:1px solid #fde68a;border-radius:12px;padding:.35rem .8rem;font-size:.9rem;font-weight:600;display:inline-block}.featured-header h2{margin:0}#projects-list{background-color:#f9fafb;padding:6rem 2rem}.projects-list-inner{max-width:var(--max-width);margin:0 auto}#featured-article{background-color:#fff;border-bottom:1px solid #e5e7eb;padding:6rem 2rem}.featured-inner{max-width:var(--max-width);margin:0 auto}.featured-label{letter-spacing:.1em;text-transform:uppercase;color:#9ca3af;margin-bottom:1.5rem;font-size:.75rem;font-weight:700}.featured-article-card{max-width:750px}.featured-article-content h2{color:#111827;letter-spacing:-.03em;margin-bottom:1rem;font-size:clamp(1.8rem,3vw,2.2rem);line-height:1.3}.featured-article-description{color:#6b7280;margin-bottom:1.5rem;font-size:.95rem;line-height:1.7}.featured-actions{margin-top:2rem}#articles,#articles-list{background-color:#f9fafb;padding:6rem 2rem}.articles-inner,.articles-list-inner{max-width:var(--max-width);margin:0 auto}.articles-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2.5rem;display:grid}.projects-container,.articles-container{max-width:var(--max-width);grid-template-columns:repeat(auto-fit,minmax(480px,1fr));gap:3rem;margin:0 auto;display:grid}.project-card{background-color:var(--card-bg);color:var(--primary-text);border-radius:var(--border-radius-lg);border:1px solid var(--card-border);box-shadow:var(--shadow-card);transition:transform var(--transition-speed) var(--transition-easing), box-shadow var(--transition-speed) var(--transition-easing), border-color var(--transition-speed) var(--transition-easing);flex-direction:column;padding:0;display:flex;overflow:hidden}.project-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--card-border-hover);transform:translateY(-8px)}.project-card-content{flex-direction:column;flex-grow:1;gap:1.5rem;padding:2rem;display:flex}.card-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.card-title{color:#111827;margin:0;font-size:1.45rem;font-weight:600;line-height:1.3}.github-btn,.medium-btn{color:#6b7280;border-radius:var(--border-radius-md);width:40px;height:40px;transition:background-color var(--transition-speed) ease, color var(--transition-speed) ease, transform var(--transition-speed) ease;background-color:#f3f4f6;border:1px solid #e5e7eb;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;text-decoration:none;display:inline-flex}.github-btn:hover,.medium-btn:hover{color:#fff;background-color:#111827;border-color:#111827;transform:scale(1.05)}.card-description{color:var(--secondary-text);flex-grow:1;margin:0;font-size:1rem;line-height:1.65}.tech-badges{flex-wrap:wrap;gap:.6rem;margin-top:auto;padding-top:1rem;display:flex}.tech-badge{color:#374151;background-color:#f3f4f6;border:1px solid #e5e7eb;border-radius:15px;padding:.35rem .8rem;font-size:.8rem;font-weight:500}.card-video,.card-image{background-color:#f3f4f6;height:240px;margin-top:auto;position:relative;overflow:hidden}.card-video video,.card-image img{object-fit:cover;width:100%;height:100%;transition:transform .4s var(--transition-easing), filter .4s ease;filter:brightness(.95);border-radius:0 0 var(--border-radius-lg) var(--border-radius-lg);display:block}.project-card:hover .card-video video,.project-card:hover .card-image img,.article-card:hover .card-video video,.article-card:hover .card-image img{filter:brightness(1.05);transform:scale(1.03)}#about .section-container{text-align:left;max-width:900px;margin:0 auto}#about h2{color:#111827;border-bottom:2px solid #e5e7eb;margin-bottom:2rem;padding-bottom:.75rem;font-size:2rem;display:inline-block}#about p{color:var(--secondary-text);margin-bottom:1.5rem;line-height:1.7}.education-list,.experience-list{margin:1rem 0 2.5rem;padding-left:0;list-style:none}.education-list li,.experience-list li{color:var(--secondary-text);margin-bottom:.8rem;padding-left:1.75rem;font-size:1rem;position:relative}.experience-list li:before{content:"✓";color:#9ca3af;font-size:1.1rem;font-weight:700;position:absolute;top:1px;left:0}.education-list li strong a{color:#111827;font-weight:600}.education-list li strong a:hover{color:#374151;text-decoration:underline}.experience{margin-bottom:3rem}.experience h4{color:#111827;margin-bottom:.5rem;font-size:1.5rem}.experience p em{color:#6b7280;margin-bottom:1rem;font-size:1.1rem;font-style:normal;font-weight:500;display:block}.experience p{color:var(--secondary-text);margin-bottom:1rem}hr{border:none;border-top:1px solid var(--card-border);margin:3.5rem 0}footer{color:#374151;text-align:center;background-color:#fff;border-top:1px solid #e5e7eb;margin-top:0;padding:3.5rem 1rem}.footer-connect ul{justify-content:center;gap:1.75rem;margin-bottom:1.5rem;list-style:none;display:flex}.footer-connect ul li a{color:#9ca3af;transition:color var(--transition-speed) ease, transform var(--transition-speed) ease;font-size:1.6rem}.footer-connect ul li a:hover{color:#111827;transform:translateY(-3px)scale(1.1)}.footer-bottom{color:#9ca3af;font-size:.9rem}.footer-bottom a{color:#9ca3af;margin-left:.5rem;text-decoration:none}.footer-bottom a:hover{color:#111827;text-decoration:underline}.card-header .github-stars{margin-right:.07em}.card-header-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.github-star-badge{color:#b45309;background:#fefce8;border:1px solid #fde68a;border-radius:16px;align-items:center;gap:.27em;padding:2px 8px 2px 6px;font-size:.97em;font-weight:600;transition:background .22s;display:inline-flex}.github-stars{min-width:48px;margin-left:.5em}.github-star-badge{color:gold;align-items:center;gap:.3em;font-size:.97em;font-weight:600;display:inline-flex}.github-star-badge .fa-star{margin-right:4px;font-size:1.03em}@media (width<=1024px){.projects-container,.articles-container{grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}}@media (width<=900px){.projects-container,.articles-container{grid-template-columns:1fr;gap:2.5rem}#about .section-container{max-width:95%}}@media (width<=768px){body{line-height:1.55}.navbar{padding:0 1rem}.nav-links{gap:1.25rem}#hero{padding:calc(var(--navbar-height) + 3rem) 1rem 4rem;flex-direction:column-reverse;gap:2rem;min-height:auto}.hero-image img{width:140px;height:140px}#companies{padding:1.5rem 1rem}.companies-list{gap:.5rem 1.25rem}.expertise-grid{grid-template-columns:1fr}.expertise-item:not(:first-child){border-top:none;border-left:1px solid #e5e7eb}.section-header{flex-direction:column;gap:.5rem}.work-item{flex-direction:column;align-items:flex-start;gap:.75rem}.work-item-right{flex-direction:row-reverse;justify-content:space-between;width:100%}#featured-project{padding:3rem 1rem}.featured-card{flex-direction:column;gap:2rem}.featured-card-content,.featured-card-media{flex:100%}.featured-card-content h2,.featured-header h2{font-size:1.5rem}#projects-list{padding:4rem 1rem}#featured-article{padding:3rem 1rem}.featured-article-content h2{font-size:1.5rem}#articles-list{padding:4rem 1rem}#hero .hero-image img{width:180px;height:180px}.page-hero{padding:calc(var(--navbar-height) + 2.5rem) 1rem 2.5rem}.page-hero-content h1{font-size:2rem}#expertise,.projects-section,.articles-section,#about,#featured-project{padding:4rem 1rem}.section-title,#about h2,.featured-title{margin-bottom:2.5rem;font-size:1.8rem}.expertise-grid{grid-template-columns:1fr;gap:2rem}.expertise-item{padding:1.5rem}.project-card-content,.article-card-content{gap:1rem;padding:1.5rem}.card-title{font-size:1.25rem}.card-description{font-size:.9rem}.card-video,.card-image{height:200px}.tech-badges{gap:.4rem;margin-top:.8rem;padding-top:0}.tech-badge{padding:.25rem .6rem;font-size:.7rem}.experience h4{font-size:1.3rem}.experience p em{font-size:1rem}hr{margin:2.5rem 0}footer{padding:2.5rem 1rem}.featured-project-card{flex-direction:column;gap:1.5rem;padding:1.5rem}.featured-project-content h3{font-size:1.5rem}.featured-project-visual{order:-1;width:100%;margin-bottom:1rem}.featured-project-visual img{max-height:200px}}#chat{height:calc(100vh - var(--navbar-height));margin-top:var(--navbar-height);flex-direction:column;padding:0;display:flex}#chat.chat-fullpage{height:calc(100vh - var(--navbar-height));margin-top:var(--navbar-height)}.chat-container{flex-direction:column;justify-content:space-between;height:100%;display:flex}.chat-loading{height:calc(100vh - var(--navbar-height));flex-direction:column;justify-content:center;align-items:center;gap:2rem;display:flex}.load-model-btn{background:var(--button-bg);color:var(--button-text);border-radius:var(--border-radius-md);cursor:pointer;border:none;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;transition:background .2s}.load-model-btn:hover{background:var(--button-hover)}.loading-state{color:var(--secondary-text);flex-direction:column;align-items:center;gap:1rem;padding:2rem;display:flex}.spinner{border:3px solid var(--card-border);border-top-color:var(--button-bg);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}.error-state{border-radius:var(--border-radius-md);color:#92400e;background:#fef3c7;border:1px solid #fcd34d;flex-direction:column;align-items:center;gap:1rem;padding:2rem;display:flex}.error-state p{margin:0}.retry-button{color:#fff;border-radius:var(--border-radius-md);cursor:pointer;background:#f59e0b;border:none;padding:.5rem 1rem;font-size:.9rem;transition:background .2s}.retry-button:hover{background:#d97706}.chat-disclaimer{color:#9ca3af;text-align:center;background:#fff;margin:0;padding:1rem;font-size:.7rem}.chat-disclaimer p{margin:0}.chat-disclaimer .load-button,.chat-disclaimer .retry-button{background:var(--button-bg);color:var(--button-text);border-radius:var(--border-radius-md);cursor:pointer;transition:background var(--transition-speed) var(--transition-easing);border:none;padding:.75rem 1.5rem;font-size:1rem}.chat-disclaimer .load-button:hover:not(:disabled),.chat-disclaimer .retry-button:hover{background:var(--button-hover)}.chat-disclaimer .load-button:disabled{opacity:.6;cursor:not-allowed}.chat-disclaimer .loading-state{color:var(--secondary-text);flex-direction:column;align-items:center;gap:1rem;padding:2rem;display:flex}.chat-disclaimer .spinner{border:3px solid var(--card-border);border-top-color:var(--button-bg);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.chat-disclaimer .error-state{border-radius:var(--border-radius-md);background:#fef3c7;border:1px solid #fcd34d;margin-top:1rem;padding:1.5rem}.chat-disclaimer .error-state p{color:#92400e;margin-bottom:1rem}.chat-messages{flex-direction:column;flex:1;gap:1rem;padding:2rem;display:flex;overflow-y:auto}.chat-messages .empty-state{height:100%;color:var(--secondary-text);text-align:center;justify-content:center;align-items:center;display:flex}.chat-message{border-radius:var(--border-radius-md);word-wrap:break-word;max-width:75%;animation:slideIn .3s var(--transition-easing);padding:1rem}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-message p{color:var(--primary-text);margin:0;line-height:1.5}.chat-message-user{background:var(--button-bg);color:var(--button-text);align-self:flex-end}.chat-message-user p{color:var(--button-text)}.chat-message-assistant{background:var(--card-bg);border:1px solid var(--card-border);align-self:flex-start}.chat-message-assistant p{margin:0 0 .5rem}.chat-message-assistant p:last-child{margin-bottom:0}.chat-message-assistant h1,.chat-message-assistant h2,.chat-message-assistant h3{margin:.75rem 0 .25rem;font-weight:600}.chat-message-assistant ul,.chat-message-assistant ol{margin:.25rem 0 .5rem;padding-left:1.25rem}.chat-message-assistant li{margin-bottom:.25rem}.chat-message-assistant code{background:#00000014;border-radius:3px;padding:.1em .35em;font-family:monospace;font-size:.85em}.chat-message-assistant pre{background:#00000014;border-radius:6px;margin:.5rem 0;padding:.75rem 1rem;overflow-x:auto}.chat-message-assistant pre code{background:0 0;padding:0;font-size:.9em}.chat-message-assistant a{color:var(--button-bg);text-decoration:underline}.chat-message-assistant table{border-collapse:collapse;width:100%;margin:.5rem 0;font-size:.9em}.chat-message-assistant th,.chat-message-assistant td{border:1px solid var(--card-border);text-align:left;padding:.4rem .75rem}.chat-message-assistant th{background:#0000000d;font-weight:600}.chat-message-assistant blockquote{border-left:3px solid var(--card-border);color:var(--secondary-text);margin:.5rem 0;padding-left:.75rem}.chat-input-form{background:var(--card-bg);border-top:1px solid var(--card-border);flex-direction:column;flex-shrink:0;gap:1rem;padding:1.5rem;display:flex}.input-topic-selector{align-items:center;gap:.75rem;display:flex}.topic-label{color:var(--secondary-text);white-space:nowrap;font-size:.85rem;font-weight:500}.topic-select{border:1px solid var(--card-border);border-radius:var(--border-radius-md);background:var(--card-bg);color:var(--primary-text);cursor:pointer;transition:all var(--transition-speed) var(--transition-easing);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23111827' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;padding:.6rem 2.5rem .6rem 1rem;font-family:inherit;font-size:.95rem}.topic-select:hover{border-color:var(--button-bg)}.topic-select:focus{border-color:var(--button-bg);outline:none;box-shadow:0 0 0 3px #1118271a}.topic-select:disabled{opacity:.6;cursor:not-allowed}.clear-button{border:1px solid var(--card-border);border-radius:var(--border-radius-md);color:var(--secondary-text);cursor:pointer;transition:all var(--transition-speed) var(--transition-easing);white-space:nowrap;background:0 0;padding:.6rem .75rem;font-family:inherit;font-size:.9rem;font-weight:500}.clear-button:hover:not(:disabled){border-color:var(--button-bg);color:var(--button-bg);background:#1118270a}.clear-button:focus{border-color:var(--button-bg);outline:none;box-shadow:0 0 0 3px #1118271a}.clear-button:disabled{opacity:.5;cursor:not-allowed}.input-row{gap:1rem;display:flex}.chat-textarea{border:1px solid var(--card-border);border-radius:var(--border-radius-md);color:var(--primary-text);resize:none;transition:border-color var(--transition-speed) var(--transition-easing);flex:1;padding:.75rem;font-family:inherit;font-size:1rem}.chat-textarea:focus{border-color:var(--button-bg);outline:none}.chat-textarea:disabled{opacity:.6;cursor:not-allowed}.send-button{background:var(--button-bg);color:var(--button-text);border-radius:var(--border-radius-md);cursor:pointer;transition:background var(--transition-speed) var(--transition-easing);border:none;height:fit-content;padding:.75rem 1.5rem;font-size:1rem;font-weight:600}.send-button:hover:not(:disabled){background:var(--button-hover)}.send-button:disabled{opacity:.6;cursor:not-allowed}@media (width<=768px){#chat .chat-inner{gap:1.5rem}.chat-disclaimer{padding:1.5rem}.chat-messages{height:50vh;padding:1rem}.chat-message{max-width:90%;padding:.75rem;font-size:.95rem}.chat-input-form{flex-direction:column;padding:1rem}.send-button{width:100%}}.chat-topic-selector{border-bottom:1px solid var(--card-border);flex-wrap:wrap;align-items:center;gap:1rem;padding-bottom:1rem;display:flex}.topic-label{color:var(--secondary-text);white-space:nowrap;font-size:.9rem}.topic-pills{flex-wrap:wrap;gap:.5rem;display:flex}.topic-pill{border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-color);cursor:pointer;border-radius:999px;padding:.4rem 1rem;font-size:.85rem;transition:all .2s}.topic-pill:hover{border-color:var(--button-bg);color:var(--button-bg)}.topic-pill.active{background:var(--button-bg);border-color:var(--button-bg);color:#fff}.topic-pill-compact{border:1px solid var(--card-border);color:var(--text-color);cursor:pointer;white-space:nowrap;background:0 0;border-radius:20px;padding:.3rem .8rem;font-size:.8rem;transition:all .2s}.topic-pill-compact:hover{border-color:var(--button-bg);color:var(--button-bg)}.topic-pill-compact.active{background:var(--button-bg);border-color:var(--button-bg);color:#fff}.loading-dots{align-items:center;gap:.4rem;display:flex}.loading-dots span{background:var(--secondary-text);border-radius:50%;width:7px;height:7px;animation:1.4s infinite pulse-dot}.loading-dots span:first-child{animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes pulse-dot{0%,60%,to{opacity:.5}30%{opacity:1}}.chat-messages-container{scrollbar-width:thin;flex-direction:column;gap:1.5rem;height:100%;padding:1.5rem;display:flex;overflow-y:auto}.message-wrapper{gap:1rem;max-width:85%;display:flex}.message-wrapper.user{flex-direction:row-reverse;align-self:flex-end}.message-wrapper.assistant{align-self:flex-start}.message-content{border-radius:12px;padding:1rem 1.2rem;font-size:.95rem;line-height:1.5}.message-wrapper.user .message-content{color:#fff;background-color:#2563eb;border-bottom-right-radius:4px}.message-wrapper.assistant .message-content{color:#1e293b;background-color:#f1f5f9;border-bottom-left-radius:4px}.fade-in-up{animation:.4s cubic-bezier(.16,1,.3,1) forwards fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.typing-indicator{color:#64748b;align-items:center;gap:4px;padding:0 .5rem;font-size:1.5rem;line-height:1;display:flex}.typing-indicator span{animation:1.4s infinite both blink}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.2;transform:scale(.8)}40%{opacity:1;transform:scale(1.1)}}.chat-disclaimer{text-align:center;color:#fff}.chat-disclaimer p{color:#6b7280;font-size:.75rem}.chat-disclaimer strong{font-weight:600}
