*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:#fff;color:#0f172a;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-bottom:90px}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}ul{list-style:none}:root{--text: #0f172a;--muted: #64748b;--faint: #94a3b8;--accent: #2563eb;--accent-bg: #eff6ff;--border: #e2e8f0;--surface: #f8fafc}.container{max-width:1080px;margin:0 auto;padding:0 28px}section{padding:96px 0}.sec-label{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}.sec-head{margin-bottom:48px}.sec-head h2{font-size:clamp(28px,4vw,42px);font-weight:700;letter-spacing:-.03em;color:var(--text)}.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 20px;font-size:14px;font-weight:600;border-radius:9px;border:1.5px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap;text-decoration:none}.btn-dark{background:var(--text);color:#fff;border-color:var(--text)}.btn-dark:hover{background:#1e293b;border-color:#1e293b}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn-ghost:hover{background:var(--surface);border-color:#cbd5e1}.btn-white{background:#fff;color:var(--text);border-color:#fff;font-size:15px}.btn-white:hover{background:#f1f5f9}.btn-lg{padding:14px 32px;border-radius:10px}.fade-up{opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .5s ease}.fade-up.in{opacity:1;transform:translateY(0)}.now-badge{display:inline-block;margin-top:6px;font-size:10px;font-weight:700;letter-spacing:.05em;color:#16a34a;background:#dcfce7;padding:2px 8px;border-radius:100px;width:fit-content}.pills{display:flex;flex-wrap:wrap;gap:8px}.pills span{font-size:13px;font-weight:500;color:var(--text);background:#fff;border:1px solid var(--border);padding:5px 13px;border-radius:100px;transition:border-color .15s,background .15s,color .15s;cursor:default}.pills span:hover{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}@media (max-width: 680px){section{padding:64px 0}.sec-head{margin-bottom:32px}}.beams-container{position:absolute!important;top:0;right:0;bottom:0;left:0;width:100%!important;height:100%!important}.tl-section{padding:40px 0;background:#000;overflow:hidden;border-top:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05)}.tl-container{width:100%;display:flex}.tl-track{display:flex;gap:24px;animation:tl-scroll 40s linear infinite;padding-left:24px}.tl-pill{display:inline-flex;align-items:center;gap:10px;padding:12px 24px;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:100px;color:#fff;font-size:15px;font-weight:500;white-space:nowrap;transition:background .2s,border-color .2s}.tl-pill:hover{background:#ffffff14;border-color:#fff3}.tl-pill i{font-size:20px;filter:brightness(0) invert(1)}@keyframes tl-scroll{0%{transform:translate(0)}to{transform:translate(-33.33%)}}.dock-outer{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:flex-end}.dock-panel{position:absolute;bottom:0;left:50%;transform:translate(-50%);display:flex;align-items:flex-end;width:fit-content;gap:8px;border-radius:18px;background:#120f17d1;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.1);padding:8px 12px;box-shadow:0 8px 32px #00000073}.dock-item{position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);box-shadow:0 2px 8px #0003;cursor:pointer;outline:none;color:#fffc;transition:background .15s,color .15s,border-color .15s;flex-shrink:0}.dock-item:hover,.dock-item:focus{background:#ffffff29;color:#fff;border-color:#ffffff38}.dock-item.active{background:#ffffff38;border-color:#ffffff59;color:#fff}.dock-item.disabled{opacity:.35;cursor:default;pointer-events:none}.dock-icon{display:flex;align-items:center;justify-content:center}.dock-label{position:absolute;bottom:calc(100% + 10px);left:50%;width:max-content;border-radius:7px;border:1px solid rgba(255,255,255,.12);background:#120f17eb;padding:4px 10px;font-size:12px;font-weight:500;color:#fff;font-family:Inter,sans-serif}@media (max-width: 680px){.dock-panel{gap:6px;padding:6px 10px}}#hero,#about,#contact,#experience,#skills,#education,#certificates{position:relative;overflow:hidden}#hero,#about,#contact{background:#000}#hero .container,#about .container,#contact .container{position:relative;z-index:1}#hero{min-height:100vh;display:flex;align-items:center;padding:80px 0 96px}.hero-inner{display:flex;align-items:center;justify-content:space-between;gap:72px}.hero-text{flex:1;min-width:0}.hero-badge{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#4ade80;background:#4ade801a;border:1px solid rgba(74,222,128,.25);padding:5px 14px 5px 10px;border-radius:100px;margin-bottom:32px}.live-dot{width:8px;height:8px;background:#22c55e;border-radius:50%;flex-shrink:0;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.hero-name{font-size:clamp(28px,4.5vw,52px);white-space:nowrap;font-weight:800;letter-spacing:-.045em;line-height:1.02;color:#fff;margin-bottom:18px}.hero-role{font-size:16px;font-weight:500;color:#ffffff8c;margin-bottom:22px;letter-spacing:-.01em}.hero-bio{font-size:14px;color:#ffffff73;line-height:1.8;max-width:460px;margin-bottom:36px}.hero-bio strong{color:#fff;font-weight:600}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}@keyframes heroSlideIn{0%{opacity:0;transform:translate(48px)}to{opacity:1;transform:translate(0)}}.hero-name{animation:heroSlideIn .6s cubic-bezier(.22,1,.36,1) .1s both}.hero-role{animation:heroSlideIn .6s cubic-bezier(.22,1,.36,1) .3s both}.hero-bio{animation:heroSlideIn .6s cubic-bezier(.22,1,.36,1) .5s both}.hero-actions{animation:heroSlideIn .6s cubic-bezier(.22,1,.36,1) .7s both}#hero .btn-dark{background:#fff;color:#0f172a;border-color:#fff}#hero .btn-dark:hover{background:#e2e8f0;border-color:#e2e8f0}#hero .btn-ghost{color:#fffc;border-color:#ffffff38;background:transparent}#hero .btn-ghost:hover{background:#ffffff1a;border-color:#fff6;color:#fff}.hero-img-wrap{flex-shrink:0;width:460px;height:460px;border-radius:50%;overflow:hidden;border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 60px #00000080}.hero-img-wrap img{width:100%;height:100%;object-fit:cover;object-position:center 10%}.hero-social-btn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:#ffffff1f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1.5px solid rgba(255,255,255,.25);color:#ffffffd9;flex-shrink:0;transition:background .15s,border-color .15s,color .15s}.hero-social-btn:hover{background:#ffffff38;border-color:#ffffff73;color:#fff}#about .sec-label{color:#ffffff73}#about .sec-head h2{color:#fff}.about-inner{display:grid;grid-template-columns:1fr 260px;gap:64px;align-items:start}.about-body p{font-size:16px;color:#ffffff8c;line-height:1.85;margin-bottom:18px}.about-body p:last-child{margin-bottom:0}.about-body strong{color:#fff;font-weight:600}.about-lead{font-size:19px!important;color:#fff!important;font-weight:500;letter-spacing:-.01em;line-height:1.6!important}.about-highlights{display:grid;grid-template-columns:1fr 1fr;gap:12px}.highlight-card{padding:20px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:14px;display:flex;flex-direction:column;gap:5px;text-align:center;transition:background .15s,border-color .15s}.highlight-card:hover{background:#ffffff17;border-color:#fff3}.highlight-num{font-size:24px;font-weight:800;color:#fff;letter-spacing:-.04em;line-height:1}.highlight-label{font-size:11px;font-weight:500;color:#ffffff80;line-height:1.4}#experience{background:linear-gradient(180deg,#fff,#f8fafc)}.exp-list{border-top:1px solid var(--border)}.exp-row{display:grid;grid-template-columns:175px 1fr;gap:32px;padding:28px 0;border-bottom:1px solid var(--border)}.exp-aside{display:flex;flex-direction:column;gap:4px;padding-top:2px}.exp-period{font-size:13px;font-weight:500;color:var(--muted)}.exp-where{font-size:12px;color:var(--faint)}.exp-top{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}.exp-role{font-size:15px;font-weight:600;color:var(--text)}.exp-co{font-size:14px;font-weight:500;color:var(--accent);text-decoration:none}a.exp-co:hover{text-decoration:underline;text-underline-offset:2px}.exp-type{font-size:11px;font-weight:500;color:var(--faint);background:var(--surface);border:1px solid var(--border);padding:2px 9px;border-radius:100px}.exp-ul{display:flex;flex-direction:column;gap:6px}.exp-ul li{font-size:14px;color:var(--muted);padding-left:16px;position:relative;line-height:1.65;list-style:none}.exp-ul li:before{content:"–";position:absolute;left:0;color:#cbd5e1;font-size:13px}.exp-featured .exp-role{font-size:16px}.exp-compact{padding:18px 0}.exp-compact .exp-top{margin-bottom:0}#skills{background:var(--surface)}.skills-wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 56px}.skill-cat{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}.edu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:64px}.edu-card{padding:24px;border:1px solid #cbd5e1;border-radius:14px;background:linear-gradient(135deg,#f8fafc,#e2e8f0);box-shadow:inset 0 2px 4px #fff9;transition:box-shadow .2s,border-color .2s,transform .2s}.edu-card:hover{border-color:#cbd5e1;box-shadow:0 6px 28px #00000012;transform:translateY(-2px)}.edu-year{font-size:12px;font-weight:600;color:var(--accent);margin-bottom:8px}.edu-card h3{font-size:15px;font-weight:600;color:var(--text);margin-bottom:5px;line-height:1.4}.edu-school{font-size:14px;font-weight:500;color:var(--text);margin-bottom:3px}.edu-loc{font-size:13px;color:var(--muted);margin-bottom:10px}.edu-gpa{display:inline-block;font-size:11px;font-weight:600;color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0;padding:2px 9px;border-radius:100px}.certs-wrap{border-top:1px solid var(--border);padding-top:40px}.certs-heading{font-size:18px;font-weight:600;letter-spacing:-.02em;color:var(--text);margin-bottom:24px}.cert-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.cert-item{display:flex;flex-direction:column;gap:3px;padding:16px 20px;border:1px solid #cbd5e1;border-radius:11px;background:linear-gradient(135deg,#f8fafc,#e2e8f0);box-shadow:inset 0 2px 4px #fff9;transition:border-color .15s}.cert-item:hover{border-color:#cbd5e1}.cert-name{font-size:14px;font-weight:600;color:var(--text)}.cert-from{font-size:13px;color:var(--muted)}#contact{padding:120px 0}#contact .sec-label{color:#ffffff73}.contact-wrap{max-width:580px;margin:0 auto;text-align:center}.contact-wrap h2{font-size:clamp(42px,6vw,66px);font-weight:800;letter-spacing:-.04em;line-height:1.08;color:#fff;margin-bottom:16px}.contact-wrap>p{font-size:16px;color:#94a3b8;line-height:1.75;margin-bottom:36px}.contact-links{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:28px;flex-wrap:wrap}.contact-link-item{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:#64748b;transition:color .15s;text-decoration:none}.contact-link-item:hover{color:#fff}#certificates{background:var(--surface, #f8fafc)}a.cert-item{text-decoration:none;cursor:pointer}a.cert-item:hover{border-color:var(--accent, #2563eb);background:var(--accent-bg, #eff6ff)}a.cert-item:hover .cert-name{color:var(--accent, #2563eb)}footer{position:relative;background:#000;padding:28px 0}footer .container{position:relative;z-index:1}.footer-inner{display:flex;justify-content:space-between;align-items:center}footer p{font-size:13px;color:#ffffff40}.blur-divider{position:absolute;bottom:0;left:0;width:100%;height:100px;background:linear-gradient(to bottom,transparent,rgba(0,0,0,.2));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);pointer-events:none;z-index:10}@media (max-width: 960px){.skills-wrap{grid-template-columns:repeat(2,1fr);gap:32px 40px}.about-inner{grid-template-columns:1fr;gap:48px}.about-highlights{grid-template-columns:repeat(4,1fr)}.hero-img-wrap{width:320px;height:320px}}@media (max-width: 680px){#hero{padding:48px 0 64px;min-height:auto}.hero-inner{flex-direction:column;gap:36px;text-align:center}.hero-img-wrap{width:260px;height:260px;margin:0 auto;border-color:#ffffff1f}.hero-actions{justify-content:center}.hero-bio,.hero-badge{margin-left:auto;margin-right:auto}.about-highlights{grid-template-columns:repeat(2,1fr)}.exp-row{grid-template-columns:1fr;gap:6px}.exp-aside{flex-direction:row;align-items:center;flex-wrap:wrap;gap:6px 12px}.skills-wrap{grid-template-columns:1fr;gap:28px}.edu-grid{grid-template-columns:1fr}.footer-inner{flex-direction:column;gap:4px;text-align:center}}.mb-section{position:relative;-webkit-user-select:none;user-select:none}.mb-grid{display:grid;gap:14px;grid-template-columns:1fr}@media (min-width: 640px){.mb-grid{grid-template-columns:repeat(2,1fr)}.mb-card--featured{grid-column:span 2}}@media (min-width: 1024px){.mb-grid{grid-template-columns:repeat(3,1fr)}.mb-card--featured{grid-column:1 / span 2;grid-row:1 / span 2}.mb-card--cta{grid-column:1 / -1}}.mb-card{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:26px;display:flex;flex-direction:column;justify-content:space-between;gap:22px;min-height:220px;cursor:default;transform-style:preserve-3d;transition:box-shadow .25s ease,border-color .25s ease;--glow-x: 50%;--glow-y: 50%;--glow-intensity: 0;--glow-radius: 480px;--glow-color: 59, 130, 246}.mb-card--featured{min-height:280px}.mb-card--cta{flex-direction:row;align-items:center;min-height:auto;padding:22px 28px;gap:16px;background:#ffffff08!important;border-style:dashed;border-color:#ffffff1f}.mb-card:hover{box-shadow:0 4px 32px #3b82f626;border-color:#ffffff24}.mb-card--glow:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;padding:1.5px;background:radial-gradient(var(--glow-radius) circle at var(--glow-x) var(--glow-y),rgba(var(--glow-color),calc(var(--glow-intensity) * .65)) 0%,rgba(var(--glow-color),calc(var(--glow-intensity) * .25)) 45%,transparent 68%);border-radius:inherit;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none;z-index:1}.mb-particle{position:absolute;width:3px;height:3px;border-radius:50%;pointer-events:none;z-index:10}.mb-top{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;z-index:2;flex-shrink:0}.mb-label{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#ffffff80;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);padding:3px 10px;border-radius:100px;line-height:1.6}.mb-label--live{color:#4ade80;background:#4ade801a;border-color:#4ade8040}.mb-gh{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#ffffff8c;flex-shrink:0;transition:background .15s,color .15s;position:relative;z-index:2;text-decoration:none;cursor:pointer}.mb-gh:hover{background:#fff;color:#0f172a;border-color:#fff}.mb-bottom{display:flex;flex-direction:column;gap:10px;position:relative;z-index:2;flex:1}.mb-title{font-size:20px;font-weight:800;letter-spacing:-.03em;color:#fff;line-height:1.1;margin:0}.mb-card--featured .mb-title{font-size:clamp(26px,3.5vw,38px)}.mb-desc{font-size:13.5px;color:#ffffff73;line-height:1.72;margin:0}.mb-card--featured .mb-desc{font-size:15px}.mb-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.mb-tags span{font-size:11px;font-weight:500;color:#ffffff73;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);padding:3px 10px;border-radius:100px}.mb-cta-link{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:#60a5fa;white-space:nowrap;flex-shrink:0;text-decoration:none;transition:color .15s}.mb-cta-link:hover{color:#93c5fd}@media (max-width: 640px){.mb-card--cta{flex-direction:column;align-items:flex-start;min-height:160px}}body:has(.proj-header){background:#fff}.proj-header{padding:72px 0 40px;border-bottom:1px solid #e2e8f0;background:#fff}.proj-back{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:#64748b;background:none;border:none;cursor:pointer;padding:0;margin-bottom:24px;transition:color .15s}.proj-back:hover{color:#0f172a}.proj-heading{font-size:clamp(32px,5vw,52px);font-weight:800;letter-spacing:-.04em;color:#0f172a;margin:8px 0 12px;line-height:1.08}.proj-sub{font-size:16px;color:#64748b;line-height:1.7;max-width:560px}.proj-main{padding:56px 0 80px;background:#f8fafc}.proj-footer{background:#fff;border-top:1px solid #e2e8f0;padding:24px 0}.proj-footer-inner{display:flex;justify-content:space-between;align-items:center}.proj-footer p{font-size:13px;color:#64748b}.proj-header .sec-label{color:#60a5fa}@media (max-width: 680px){.proj-header{padding:48px 0 28px}.proj-main{padding:36px 0 60px}.proj-footer-inner{flex-direction:column;gap:4px;text-align:center}}.darkveil-canvas{width:100%;height:100%;display:block}.resume-page{position:relative;width:100vw;height:100vh;overflow:hidden;background:#000;display:flex;align-items:center;justify-content:center}.resume-background{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}.resume-content{position:relative;z-index:1;width:100%;max-width:1200px;height:95vh;display:flex;flex-direction:column;gap:16px;padding:0 20px}.back-btn{align-self:flex-start;background:#ffffff1a;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);color:#fff;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.back-btn:hover{background:#fff3}.resume-box{flex:1;background:#0009;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.15);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 80px #00000080}.resume-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff08}.resume-header h2{color:#fff;font-size:18px;font-weight:600;margin:0}.download-btn{display:flex;align-items:center;gap:8px;background:#fff;color:#000;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:600;text-decoration:none;transition:opacity .2s}.download-btn:hover{opacity:.85}.resume-pdf-container{flex:1;width:100%;background:#fff}.resume-pdf-container iframe{width:100%;height:100%;border:none}.magic-rings-container{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.splash-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999;background:#000;display:flex;align-items:center;justify-content:center;opacity:1;transition:opacity .5s ease-out}.splash-screen.fade-out{opacity:0;pointer-events:none}.splash-rings-wrap{width:100vw;height:100vh;position:absolute;top:0;left:0}.tracy-trigger{position:fixed;bottom:24px;right:24px;width:56px;height:56px;background:#0a0e1a;border-radius:50%;cursor:pointer;z-index:10000;box-shadow:0 8px 24px #0006;display:flex;align-items:center;justify-content:center}.siri-bar{animation:siri-wave 1.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.siri-bar:nth-child(2){animation-delay:.15s}.siri-bar:nth-child(3){animation-delay:.3s}.siri-bar:nth-child(4){animation-delay:.15s}.siri-bar:nth-child(5){animation-delay:0s}@keyframes siri-wave{0%,to{transform:scaleY(1)}50%{transform:scaleY(.35)}}.wobble-animation{animation:wobble 3s ease-in-out infinite}@keyframes wobble{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-6px) rotate(-4deg)}50%{transform:translateY(0) rotate(0)}75%{transform:translateY(-4px) rotate(3deg)}}.tracy-window{position:fixed;bottom:24px;right:24px;width:340px;height:480px;max-height:calc(100vh - 48px);max-width:calc(100vw - 48px);background:#fff;border-radius:16px;box-shadow:0 12px 40px #00000040;display:flex;flex-direction:column;z-index:10001;overflow:hidden;font-family:system-ui,-apple-system,sans-serif}.tracy-header{background:#0f172a;color:#fff;padding:16px 20px;display:flex;justify-content:space-between;align-items:center}.tracy-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px}.tracy-status{width:8px;height:8px;background:#22c55e;border-radius:50%;box-shadow:0 0 8px #22c55e}.tracy-close{background:none;border:none;color:#94a3b8;font-size:24px;line-height:1;cursor:pointer;padding:0}.tracy-close:hover{color:#fff}.tracy-messages{flex:1;padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;background:#f8fafc}.tracy-msg-row{display:flex}.tracy-msg-row.user{justify-content:flex-end}.tracy-msg-row.assistant{justify-content:flex-start}.tracy-bubble{max-width:85%;padding:10px 14px;border-radius:12px;font-size:14px;line-height:1.5;color:#0f172a}.tracy-msg-row.user .tracy-bubble{background:#3b82f6;color:#fff;border-bottom-right-radius:4px}.tracy-msg-row.assistant .tracy-bubble{background:#e2e8f0;border-bottom-left-radius:4px}.tracy-input-area{padding:12px;background:#fff;border-top:1px solid #e2e8f0;display:flex;gap:8px}.tracy-input-area input{flex:1;padding:10px 14px;border:1px solid #cbd5e1;border-radius:100px;outline:none;font-size:14px}.tracy-input-area input:focus{border-color:#3b82f6}.tracy-input-area button{background:#3b82f6;color:#fff;border:none;padding:0 16px;border-radius:100px;font-weight:600;cursor:pointer}.tracy-input-area button:disabled{background:#94a3b8;cursor:not-allowed}.tracy-loading{display:flex;gap:4px;align-items:center;height:20px}.tracy-loading .dot{width:6px;height:6px;background:#94a3b8;border-radius:50%;animation:jump 1.4s infinite ease-in-out both}.tracy-loading .dot:nth-child(1){animation-delay:-.32s}.tracy-loading .dot:nth-child(2){animation-delay:-.16s}@keyframes jump{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}
