:root{--font-sans:"Inter","Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell",sans-serif;--font-display:"Sora","Inter","Segoe UI",sans-serif;--font-mono:"JetBrains Mono","Fira Code","SFMono-Regular",Menlo,Consolas,monospace;--radius-sm:12px;--radius-md:20px;--radius-lg:30px;--radius-pill:999px}:root,body.dark-theme{--body-bg-top:#0e1015;--body-bg-mid:#121419;--body-bg-bot:#0a0b0e;--text-primary:#f2efe9;--text-secondary:#9b9fae;--text-muted:#6f7482;--surface:hsla(0,0%,100%,.035);--surface-strong:hsla(0,0%,100%,.055);--surface-muted:hsla(0,0%,100%,.025);--surface-hover:#ffffff12;--surface-border:#ffffff1a;--input-bg:#ffffff0a;--input-bg-hover:hsla(0,0%,100%,.065);--input-text:#f2efe9;--badge-bg:#ffffff0d;--shadow:#0006;--shadow-sm:0 6px 18px #00000047;--shadow-md:0 18px 40px #0000005c;--shadow-lg:0 34px 90px #00000080;--accent:#e0a458;--accent-strong:#c98936;--accent-soft:#e0a45824;--accent-secondary:#7c8aa0;--accent-secondary-soft:#7c8aa024;--success:#7ba57e;--success-soft:#7ba57e24;--error:#d1786a;--danger:#d1786a;--danger-soft:#d1786a29;--btn-blue-bg:#1a1c22;--btn-blue-hover:#23262e;--btn-blue-text:#f2efe9;--btn-teal-bg:#b5813a;--btn-teal-hover:#c98936;--btn-teal-text:#14100a;--toggle-bg:linear-gradient(135deg,#e0a458,#c98936);--toggle-text:#14100a;--table-bg:hsla(0,0%,100%,.025);--table-border:#ffffff1a;--table-header-bg:#e0a4581f;--table-row-alt:#ffffff05}body.light-theme{--body-bg-top:#faf7f2;--body-bg-mid:#f6f2eb;--body-bg-bot:#f0ebe1;--text-primary:#1c1a17;--text-secondary:#635f56;--text-muted:#8a8577;--surface:#1c1a1708;--surface-strong:#fff;--surface-muted:rgba(28,26,23,.025);--surface-hover:#1c1a170d;--surface-border:#1c1a171a;--input-bg:#fff;--input-bg-hover:#fff;--input-text:#1c1a17;--badge-bg:#1c1a170d;--shadow:#1c1a171a;--shadow-sm:0 6px 16px #1c1a170f;--shadow-md:0 16px 36px #1c1a1714;--shadow-lg:0 30px 80px #1c1a171f;--accent:#b5701f;--accent-strong:#96591a;--accent-soft:#b5701f1a;--accent-secondary:#55627a;--accent-secondary-soft:#55627a1a;--success:#4f7a52;--success-soft:#4f7a521a;--error:#a8432f;--danger:#a8432f;--danger-soft:#a8432f1a;--btn-blue-bg:#201d19;--btn-blue-hover:#322c25;--btn-blue-text:#faf7f2;--btn-teal-bg:#b5701f;--btn-teal-hover:#96591a;--btn-teal-text:#fff;--toggle-bg:linear-gradient(135deg,#c98336,#96591a);--toggle-text:#faf7f2;--table-bg:#1c1a1705;--table-border:#1c1a171a;--table-header-bg:#b5701f14;--table-row-alt:#1c1a1705}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 12% 8%,#e0a45824,#0000 32%),radial-gradient(circle at 88% 92%,#7c8aa024,#0000 34%),linear-gradient(180deg,#0e1015,#121419 45%,#0a0b0e);background:radial-gradient(circle at 12% 8%,var(--accent-soft),#0000 32%),radial-gradient(circle at 88% 92%,var(--accent-secondary-soft),#0000 34%),linear-gradient(180deg,var(--body-bg-top) 0,var(--body-bg-mid) 45%,var(--body-bg-bot) 100%);background-attachment:fixed;color:#f2efe9;color:var(--text-primary);font-family:Inter,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-family:var(--font-sans);margin:0;min-height:100vh;overflow-x:hidden;transition:background .3s ease,color .3s ease}*{box-sizing:border-box}html{scroll-behavior:smooth}h1,h2,h3,h4{font-family:Sora,Inter,Segoe UI,sans-serif;font-family:var(--font-display);letter-spacing:-.02em}a{color:inherit}::selection{background:#e0a45824;background:var(--accent-soft);color:#f2efe9;color:var(--text-primary)}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#ffffff1a;background:var(--surface-border);border-radius:999px;border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:#e0a458;background:var(--accent)}code{font-family:JetBrains Mono,Fira Code,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono)}.section{margin:0 auto;max-width:1280px;padding:96px 40px;position:relative;scroll-margin-top:90px}.section-head{margin:0 0 48px;max-width:700px}.section-eyebrow{align-items:center;color:#e0a458;color:var(--accent);display:inline-flex;font-family:JetBrains Mono,Fira Code,SFMono-Regular,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:.72rem;font-weight:600;gap:8px;letter-spacing:.16em;margin-bottom:16px;text-transform:uppercase}.section-eyebrow:before{background:#e0a458;background:var(--accent);border-radius:50%;box-shadow:0 0 0 4px #e0a45824;box-shadow:0 0 0 4px var(--accent-soft);content:"";height:6px;width:6px}.section-title{color:#f2efe9;color:var(--text-primary);font-family:Sora,Inter,Segoe UI,sans-serif;font-family:var(--font-display);font-size:clamp(1.9rem,3.2vw,2.6rem);font-weight:700;letter-spacing:-.02em;margin:0 0 14px}.section-intro{color:#9b9fae;color:var(--text-secondary);font-size:1.02rem;line-height:1.75;margin:0}.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}.reveal-active .reveal{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}@media (max-width:640px){.section{padding:64px 22px}}.navbar{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:var(--surface-strong);border-bottom:1px solid var(--surface-border);box-shadow:var(--shadow-sm);color:var(--text-primary);gap:20px;justify-content:space-between;padding:14px 32px;position:-webkit-sticky;position:sticky;top:0;transition:background .3s ease,box-shadow .3s ease;z-index:1000}.navbar,.navbar-brand{align-items:center;display:flex}.navbar-brand{flex-shrink:0;gap:12px}.logo-container{align-items:center;display:flex}.navbar-logo{border-radius:9px;height:34px;width:auto}.logo-text{color:var(--text-primary);font-family:var(--font-display);font-size:.95rem;font-weight:700;letter-spacing:-.01em;white-space:nowrap}.navbar-links{align-items:center;display:flex;gap:28px}.navbar-links a{color:var(--text-secondary);font-size:.9rem;font-weight:500;text-decoration:none;transition:color .2s ease}.navbar-links a:hover{color:var(--accent)}.navbar-actions{align-items:center;display:flex;flex-shrink:0;gap:12px}.theme-toggle{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-pill);color:var(--text-primary);cursor:pointer;font-family:var(--font-sans);font-size:.85rem;font-weight:600;gap:8px;padding:8px 16px 8px 12px;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}.theme-toggle,.theme-toggle-icon{align-items:center;display:inline-flex}.theme-toggle-icon{background:var(--accent-soft);border-radius:50%;color:var(--accent);height:22px;justify-content:center;width:22px}.theme-toggle:focus-visible,.theme-toggle:hover{background:var(--surface-hover);border-color:var(--accent);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.navbar-menu-toggle{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-sm);cursor:pointer;display:none;flex-direction:column;gap:5px;height:38px;justify-content:center;width:38px}.navbar-menu-toggle span{background:var(--text-primary);border-radius:1px;display:block;height:2px;margin:0 8px}.navbar-mobile-menu{background:var(--surface-strong);box-shadow:var(--shadow-md);display:flex;flex-direction:column;left:0;padding:12px 24px 20px;position:absolute;right:0;top:100%}.navbar-mobile-menu,.navbar-mobile-menu a{border-bottom:1px solid var(--surface-border)}.navbar-mobile-menu a{color:var(--text-primary);font-size:.95rem;font-weight:500;padding:12px 4px;text-decoration:none}.navbar-mobile-menu a:last-child{border-bottom:none}@media (max-width:900px){.navbar-links{display:none}.navbar-menu-toggle{display:flex}}@media (max-width:480px){.navbar{padding:12px 18px}.logo-text{font-size:.82rem}.theme-toggle-label{display:none}.theme-toggle{padding:8px}}.home-page{overflow-x:hidden}.home-page>section:nth-of-type(2n){background:var(--surface-muted)}.buttons{display:flex;flex-wrap:wrap;gap:14px;margin-top:20px}.btn{align-items:center;border:1px solid #0000;border-radius:var(--radius-pill);box-shadow:var(--shadow-sm);color:var(--btn-blue-text);cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:.95rem;font-weight:600;gap:8px;justify-content:center;letter-spacing:-.01em;padding:13px 26px;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}.btn:focus-visible,.btn:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.55;transform:none}.btn.blue{background:linear-gradient(135deg,var(--btn-blue-hover),var(--btn-blue-bg));border-color:var(--surface-border);color:var(--btn-blue-text)}.btn.blue:focus-visible,.btn.blue:hover{background:linear-gradient(135deg,var(--btn-blue-bg),var(--btn-blue-hover));border-color:var(--accent)}.btn.teal{background:linear-gradient(135deg,var(--btn-teal-hover),var(--btn-teal-bg));border-color:var(--surface-border);color:var(--btn-teal-text)}.btn.teal:focus-visible,.btn.teal:hover{background:linear-gradient(135deg,var(--btn-teal-bg),var(--btn-teal-hover));border-color:var(--accent-strong)}.btn.ghost{background:var(--surface);border-color:var(--surface-border);box-shadow:none;color:var(--text-primary)}.btn.ghost:focus-visible,.btn.ghost:hover{background:var(--surface-hover);border-color:var(--accent);box-shadow:var(--shadow-sm)}.hero{align-items:center;display:flex;min-height:88vh;overflow:hidden;padding:60px 0 90px;position:relative}.hero-bg{overflow:hidden;pointer-events:none;z-index:0}.hero-bg,.hero-bg-grid{inset:0;position:absolute}.hero-bg-grid{background-image:radial-gradient(circle,var(--surface-border) 1px,#0000 1px);background-size:28px 28px;-webkit-mask-image:radial-gradient(ellipse 60% 55% at 50% 35%,#000 0,#0000 78%);mask-image:radial-gradient(ellipse 60% 55% at 50% 35%,#000 0,#0000 78%);opacity:.7}.hero-bg-lines{animation:linesDrift 30s linear infinite;background-image:repeating-linear-gradient(115deg,var(--surface-border) 0,var(--surface-border) 1px,#0000 1px,#0000 68px);inset:-15%;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 65% 45%,#000 0,#0000 75%);mask-image:radial-gradient(ellipse 70% 60% at 65% 45%,#000 0,#0000 75%);opacity:.55;position:absolute}@keyframes linesDrift{0%{transform:translate(0)}to{transform:translate(-68px,-68px)}}.hero-glow{animation:glowBreathe 9s ease-in-out infinite;border-radius:50%;filter:blur(90px);position:absolute}.hero-glow-1{background:var(--accent-soft);height:480px;right:6%;top:-140px;width:480px}.hero-glow-2{animation-delay:1.5s;animation-duration:11s;background:var(--accent-secondary-soft);bottom:-160px;height:420px;left:2%;width:420px}@keyframes glowBreathe{0%,to{opacity:.85;transform:scale(1) translate(0)}50%{opacity:1;transform:scale(1.18) translate(2%,3%)}}.hero-inner{grid-gap:56px;align-items:center;display:grid;gap:56px;grid-template-columns:1.05fr .95fr;margin:0 auto;max-width:1280px;padding:0 40px;position:relative;width:100%;z-index:1}.hero-copy{animation:heroFadeUp .8s ease both}.eyebrow-dot{color:var(--surface-border)}.hero-title{color:var(--text-primary);font-family:var(--font-display);font-size:clamp(2.8rem,5.4vw,4.8rem);font-weight:800;letter-spacing:-.03em;line-height:1.02;margin:0 0 22px}.hero-title-mark{display:inline-block;position:relative}.hero-title-mark:after{background:var(--accent-soft);border-radius:6px;bottom:6%;content:"";height:32%;left:-4px;position:absolute;right:-6px;transform:skewX(-6deg);z-index:-1}.hero-role-line{color:var(--text-secondary);font-size:clamp(1.1rem,1.7vw,1.35rem);margin:0 0 20px;min-height:1.6em}.role-cycler-word{color:var(--accent);display:inline-block;font-family:var(--font-display);font-weight:700;opacity:0;transform:translateY(6px);transition:opacity .32s ease,transform .32s ease}.role-cycler-word.is-visible{opacity:1;transform:translateY(0)}.hero-subtitle{color:var(--text-secondary);font-size:1.05rem;line-height:1.75;margin:0 0 34px;max-width:540px}.hero-buttons{margin-bottom:38px}.hero-credibility{align-items:stretch;display:flex;flex-wrap:wrap;gap:14px}.hero-stat{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:3px;padding:12px 20px;transition:transform .2s ease,border-color .2s ease,background .2s ease}.hero-stat:hover{background:var(--surface-hover);border-color:var(--accent);transform:translateY(-3px)}.hero-stat strong{color:var(--accent);font-family:var(--font-mono);font-size:1.2rem;font-weight:600}.hero-stat span{color:var(--text-secondary);font-size:.78rem;white-space:nowrap}.hero-visual{align-items:center;animation:heroFadeUp .9s ease .1s both;display:flex;justify-content:center}.hero-photo-wrap{animation:photoFloat 6s ease-in-out 1s infinite;position:relative;width:clamp(260px,30vw,380px)}@keyframes photoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}.hero-photo-frame-outline{border:2px solid var(--accent);border-radius:var(--radius-lg);inset:0;left:16px;opacity:.55;position:absolute;top:16px;z-index:0}.hero-photo-card{animation:photoGlowPulse 6s ease-in-out 1s infinite;aspect-ratio:4/5;background:var(--surface-strong);border:1px solid var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),0 0 100px -28px var(--accent-soft);overflow:hidden;position:relative;z-index:1}@keyframes photoGlowPulse{0%,to{box-shadow:var(--shadow-lg),0 0 100px -28px var(--accent-soft)}50%{box-shadow:var(--shadow-lg),0 0 130px -20px var(--accent-soft)}}.hero-photo-card img{display:block;height:100%;object-fit:cover;width:100%}.hero-photo-badge{align-items:center;animation:heroFadeUp .8s ease .35s both;background:var(--surface-strong);border:1px solid var(--surface-border);border-radius:var(--radius-md);bottom:-8%;box-shadow:var(--shadow-lg);display:flex;gap:12px;left:-8%;padding:14px 18px;position:absolute;z-index:2}.hero-photo-badge-icon{font-size:1.4rem;line-height:1}.hero-photo-badge strong{color:var(--text-primary);display:block;font-family:var(--font-display);font-size:.92rem}.hero-photo-badge em{color:var(--text-secondary);display:block;font-size:.76rem;font-style:normal;margin-top:2px}@keyframes heroFadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.hero-scroll-cue{align-items:center;bottom:28px;color:var(--text-muted);display:flex;flex-direction:column;font-family:var(--font-mono);font-size:.7rem;gap:8px;left:50%;letter-spacing:.14em;position:absolute;text-decoration:none;text-transform:uppercase;transform:translateX(-50%);z-index:1}.hero-scroll-cue-line{animation:scrollCue 1.8s ease-in-out infinite;background:linear-gradient(180deg,var(--accent),#0000);height:30px;width:1px}@keyframes scrollCue{0%,to{opacity:.6;transform:scaleY(1)}50%{opacity:1;transform:scaleY(.6)}}@media (prefers-reduced-motion:reduce){.hero-bg-lines,.hero-copy,.hero-glow,.hero-photo-badge,.hero-photo-card,.hero-photo-wrap,.hero-scroll-cue-line,.hero-visual{animation:none!important}}@media (max-width:980px){.hero-inner{gap:64px;grid-template-columns:1fr;padding:0 28px;text-align:center}.hero-subtitle{margin-left:auto;margin-right:auto}.hero-credibility{justify-content:center}.hero-visual{order:-1}.hero-photo-wrap{width:clamp(220px,52vw,300px)}.hero-photo-badge{bottom:-32px;left:50%;translate:-50% 0;white-space:nowrap}}@media (max-width:640px){.hero{min-height:0;min-height:auto;padding:44px 0 96px}.hero-inner{padding:0 20px}.hero-scroll-cue{display:none}.hero-photo-badge{padding:10px 14px}}.featured-projects-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:40px}.featured-project-card{background:var(--surface-strong);border:1px solid var(--surface-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--text-primary);display:flex;flex-direction:column;overflow:hidden;text-decoration:none;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.featured-project-card:focus-visible,.featured-project-card:hover{border-color:var(--accent);box-shadow:var(--shadow-lg);transform:translateY(-6px)}.featured-project-media{aspect-ratio:16/10;background:var(--surface-muted);overflow:hidden}.featured-project-media img{display:block;height:100%;object-fit:cover;transition:transform .5s ease;width:100%}.featured-project-card:focus-visible .featured-project-media img,.featured-project-card:hover .featured-project-media img{transform:scale(1.06)}.featured-project-body{display:flex;flex:1 1;flex-direction:column;padding:20px 22px 24px}.featured-project-body h3{font-family:var(--font-display);font-size:1.15rem;font-weight:700;margin:0 0 8px}.featured-project-body p{color:var(--text-secondary);flex:1 1;font-size:.92rem;line-height:1.6;margin:0 0 16px}.featured-project-cta{align-items:center;color:var(--accent);display:inline-flex;font-size:.85rem;font-weight:600;gap:6px}.featured-project-arrow{transition:transform .25s ease}.featured-project-card:focus-visible .featured-project-arrow,.featured-project-card:hover .featured-project-arrow{transform:translateX(4px)}.featured-projects-footer{display:flex;justify-content:center}.about-grid{grid-gap:56px;align-items:start;display:grid;gap:56px;grid-template-columns:.9fr 1.1fr}.about-intro{margin:0;position:-webkit-sticky;position:sticky;top:110px}.about-pillars{display:flex;flex-direction:column;gap:20px}.about-pillar{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:26px 28px;transition:transform .25s ease,border-color .25s ease,background .25s ease}.about-pillar:hover{background:var(--surface-hover);border-color:var(--accent);transform:translateX(6px)}.about-pillar-label{color:var(--accent-secondary);display:inline-block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;margin-bottom:10px;text-transform:uppercase}.about-pillar h3{color:var(--text-primary);font-family:var(--font-display);font-size:1.15rem;margin:0 0 8px}.about-pillar p{color:var(--text-secondary);font-size:.95rem;line-height:1.65;margin:0}.about-education{display:flex;flex-direction:column;gap:16px;margin-top:36px}.about-education-item{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-sm);padding:18px 20px}.about-education-period{color:var(--accent-secondary);display:block;font-family:var(--font-mono);font-size:.72rem;margin-bottom:6px}.about-education-item h4{color:var(--text-primary);font-family:var(--font-display);font-size:1rem;margin:0 0 4px}.about-education-school{color:var(--text-secondary);display:block;font-size:.86rem}.about-education-honor{background:var(--accent-soft);border-radius:var(--radius-pill);color:var(--accent);display:inline-block;font-family:var(--font-mono);font-size:.74rem;font-weight:600;margin-top:10px;padding:4px 10px}.about-certifications{margin-top:28px}.about-certifications-label{color:var(--text-muted);display:block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;margin-bottom:10px;text-transform:uppercase}.about-certifications ul{color:var(--text-secondary);font-size:.86rem;line-height:1.8;margin:0;padding-left:18px}@media (max-width:900px){.about-grid{gap:32px;grid-template-columns:1fr}.about-intro{position:static}}.skills-groups{grid-gap:32px;display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.skills-group-title{color:var(--accent-secondary);font-family:var(--font-mono);font-size:.78rem;font-weight:600;letter-spacing:.1em;margin:0 0 16px;text-transform:uppercase}.skills-chip-row{display:flex;flex-wrap:wrap;gap:10px}.skill-chip{align-items:center;background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-pill);color:var(--text-primary);cursor:default;display:inline-flex;font-size:.88rem;font-weight:500;padding:10px 16px;position:relative;transition:transform .2s ease,border-color .2s ease,background .2s ease}.skill-chip:focus-visible,.skill-chip:hover{background:var(--surface-hover);border-color:var(--accent);outline:none;transform:translateY(-3px)}.skill-chip-detail{background:var(--surface-strong);border:1px solid var(--surface-border);border-radius:var(--radius-sm);bottom:calc(100% + 10px);box-shadow:var(--shadow-md);color:var(--text-secondary);font-size:.76rem;font-weight:400;left:50%;opacity:0;padding:7px 12px;pointer-events:none;position:absolute;transform:translate(-50%,6px);transition:opacity .2s ease,transform .2s ease;white-space:nowrap;z-index:5}.skill-chip:focus-visible .skill-chip-detail,.skill-chip:hover .skill-chip-detail{opacity:1;transform:translate(-50%)}@media (max-width:640px){.skill-chip-detail{display:none}}.experience-timeline{display:flex;flex-direction:column;gap:8px;position:relative}.experience-timeline:before{background:var(--surface-border);bottom:8px;content:"";left:5px;position:absolute;top:8px;width:1px}.experience-item{grid-gap:20px;display:grid;gap:20px;grid-template-columns:24px 1fr;padding:18px 0;position:relative}.experience-marker{display:flex;justify-content:center;padding-top:6px}.experience-dot{background:var(--accent);border-radius:50%;box-shadow:0 0 0 4px var(--accent-soft);height:11px;width:11px}.experience-card{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:22px 26px;transition:border-color .25s ease,background .25s ease}.experience-card:hover{background:var(--surface-hover);border-color:var(--accent)}.experience-period{color:var(--accent-secondary);display:inline-block;font-family:var(--font-mono);font-size:.76rem;margin-bottom:8px}.experience-card h3{color:var(--text-primary);font-family:var(--font-display);font-size:1.15rem;margin:0 0 4px}.experience-org{color:var(--text-secondary);display:block;font-size:.9rem;margin-bottom:12px}.experience-card ul{color:var(--text-secondary);font-size:.92rem;line-height:1.7;margin:0;padding-left:18px}@media (max-width:640px){.experience-card{padding:18px 20px}}.notable-projects{margin-top:56px}.notable-projects-title{color:var(--accent-secondary);font-family:var(--font-mono);font-size:.78rem;font-weight:600;letter-spacing:.1em;margin:0 0 22px;text-transform:uppercase}.notable-projects-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.notable-project-card{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:22px 24px;transition:transform .25s ease,border-color .25s ease,background .25s ease}.notable-project-card:hover{background:var(--surface-hover);border-color:var(--accent);transform:translateY(-4px)}.notable-project-tag{background:var(--accent-soft);border-radius:var(--radius-pill);color:var(--accent);display:inline-block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;margin-bottom:12px;padding:4px 10px;text-transform:uppercase}.notable-project-card h4{color:var(--text-primary);font-family:var(--font-display);font-size:1.02rem;margin:0 0 8px}.notable-project-card p{color:var(--text-secondary);font-size:.88rem;line-height:1.6;margin:0}.contact-card{grid-gap:40px;align-items:center;background:linear-gradient(150deg,var(--surface-strong) 0,var(--surface-muted) 100%);border:1px solid var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:grid;gap:40px;grid-template-columns:1.2fr .8fr;padding:56px}.contact-copy .section-intro,.contact-copy .section-title{margin-bottom:0}.contact-copy .section-title{margin-bottom:14px}.contact-actions{align-items:flex-start;display:flex;flex-direction:column;gap:20px}.contact-social{display:flex;gap:18px}.contact-social-link{border-bottom:1px solid #0000;color:var(--text-secondary);font-size:.92rem;font-weight:600;text-decoration:none;transition:color .2s ease,border-color .2s ease}.contact-social-link:hover{border-color:var(--accent);color:var(--accent)}@media (max-width:820px){.contact-card{grid-template-columns:1fr;padding:40px 32px;text-align:left}.contact-actions{align-items:flex-start}}@media (max-width:480px){.contact-card{padding:32px 24px}}.site-footer{background:var(--surface-muted);border-top:1px solid var(--surface-border)}.site-footer-inner{grid-gap:32px;display:grid;gap:32px;grid-template-columns:1.4fr 1fr .7fr;margin:0 auto;max-width:1280px;padding:56px 40px 32px}.site-footer-logo{color:var(--text-primary);font-family:var(--font-display);font-size:1rem;font-weight:700}.site-footer-brand p{color:var(--text-secondary);font-size:.9rem;line-height:1.6;margin:12px 0 0;max-width:320px}.site-footer-nav,.site-footer-social{display:flex;flex-direction:column;gap:12px}.site-footer-nav a,.site-footer-social a{color:var(--text-secondary);font-size:.92rem;text-decoration:none;transition:color .2s ease;width:-webkit-fit-content;width:fit-content}.site-footer-nav a:hover,.site-footer-social a:hover{color:var(--accent)}.site-footer-bottom{border-top:1px solid var(--surface-border);color:var(--text-muted);font-size:.82rem;padding:20px 40px;text-align:center}@media (max-width:720px){.site-footer-inner{grid-template-columns:1fr 1fr;padding:44px 24px 24px}.site-footer-brand{grid-column:1/-1}}@media (max-width:480px){.site-footer-inner{grid-template-columns:1fr}.site-footer-bottom{padding:18px 20px}}.project-details-card{max-width:860px}.project-details-card h1{font-size:clamp(1.9rem,2.6vw,2.4rem);margin-bottom:12px}.project-details-card p{margin-bottom:26px}.multitranslation-form{display:flex;flex-direction:column;gap:15px;margin-bottom:22px;text-align:left}.multitranslation-form select,.multitranslation-form textarea{background:var(--input-bg);border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--input-text);font-family:var(--font-sans);font-size:1rem;outline:none;padding:14px 18px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.multitranslation-form textarea{min-height:120px;resize:vertical}.multitranslation-form select{cursor:pointer}.multitranslation-form select:focus,.multitranslation-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.multitranslation-form select option{background:var(--surface-strong);color:var(--input-text)}.multitranslation-form .buttons-container{align-self:flex-start}.multitranslation-result{border:1px solid var(--table-border);border-radius:var(--radius-sm);overflow:hidden}.result-table td,.result-table th{text-align:left}.result-table th{width:25%}@media (max-width:640px){.project-details-card{padding:28px 22px}}.project-details-page{align-items:flex-start;box-sizing:border-box;display:flex;justify-content:center;min-height:100vh}.project-details-card{color:var(--text-primary);text-align:center;width:100%}.project-details-card h1{font-size:2.5rem;margin-bottom:16px}.project-details-card p{font-size:1.08rem;margin-bottom:28px}.project-details-card input[type=text]{background:var(--input-bg);border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--input-text);font-family:var(--font-sans);font-size:1rem;margin-bottom:4px;outline:none;padding:14px 18px;transition:border-color .2s ease,background .2s ease;width:100%}.project-details-card input[type=text]:focus{background:var(--input-bg-hover);border-color:var(--accent)}.aimythbuster-result{margin-top:32px;text-align:left}.aimythbuster-result h2{border-bottom:1px solid var(--surface-border);color:var(--text-primary);font-family:var(--font-display);font-size:1.3rem;margin-bottom:14px;margin-top:28px;padding-bottom:10px}.table-wrapper{-webkit-overflow-scrolling:touch;border:1px solid var(--table-border);border-radius:var(--radius-sm);overflow-x:auto;width:100%}.result-table{background:var(--table-bg);border-collapse:collapse;width:100%}.result-table td,.result-table th{border-bottom:1px solid var(--table-border);padding:13px 16px}.result-table tr:last-child td,.result-table tr:last-child th{border-bottom:none}.result-table tbody tr:nth-child(2n){background:var(--table-row-alt)}.result-table th{background:var(--table-header-bg);color:var(--accent);font-weight:700;text-align:left;white-space:nowrap}.result-table td{color:var(--text-primary)}.aimythbuster-result ul{margin-top:10px;padding-left:20px}.aimythbuster-result li{line-height:1.5;margin-bottom:10px}.aimythbuster-result a{color:var(--accent);font-weight:600;text-decoration:none}.aimythbuster-result a:hover{text-decoration:underline}.aimythbuster-form{align-items:center;display:flex;flex-direction:column;gap:14px}.aimythbuster-form input[type=text]{max-width:500px;width:100%}@media (max-width:768px){.project-details-card{padding:30px 22px}.aimythbuster-form{flex-direction:column;gap:10px}.result-table td,.result-table th{font-size:.9rem;padding:10px 12px;word-break:break-word}}.project-details-page{background:#0000;padding:48px 24px}.project-details-card{max-width:800px;padding:44px}.abstract-buttons-wrapper{box-sizing:border-box;margin:24px 0 4px;width:100%}.abstract-buttons-wrapper .buttons{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:0;width:100%}.abstract-buttons-wrapper .btn{box-sizing:border-box;flex:1 1 160px;max-width:240px;overflow-wrap:break-word;text-align:center;white-space:normal}.abstract-image{border:1px solid var(--surface-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);margin-top:6px;max-width:100%}.abstract-result{margin-top:30px;text-align:center}.loading{color:var(--text-secondary);font-style:italic}.error,.loading{margin-top:16px}@media (max-width:480px){.abstract-buttons-wrapper .btn{flex:1 1 100%;max-width:100%}}.project-details-card h1{font-size:2.4rem}.project-details-card p{font-size:1.05rem}.project-details-card.speechstudio-card{max-width:900px}.speechstudio-form{grid-gap:24px;display:grid;gap:24px;margin-top:26px;text-align:left}.speechstudio-form label{grid-gap:12px;color:var(--text-secondary);display:grid;font-size:.96rem;font-weight:600;gap:12px}.speechstudio-form textarea{background:var(--input-bg);border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--input-text);font-family:var(--font-sans);font-size:1rem;min-height:140px;outline:none;padding:16px;resize:vertical;transition:border-color .2s ease,background .2s ease;width:100%}.speechstudio-form textarea:focus{background:var(--input-bg-hover);border-color:var(--accent)}.speechstudio-input-row{grid-gap:16px;align-items:end;display:grid;gap:16px;grid-template-columns:1fr 1fr}.record-controls{display:flex;justify-content:flex-start}.record-controls .btn{min-width:190px;padding:14px 20px}.record-controls .btn.recording{background:var(--danger);box-shadow:0 0 18px var(--danger-soft)}.speechstudio-preview{grid-gap:14px;background:var(--surface-muted);border:1px solid var(--surface-border);border-radius:var(--radius-md);display:grid;gap:14px;padding:18px}.speechstudio-preview span{color:var(--accent);font-weight:600}.speechstudio-preview audio{border-radius:var(--radius-sm);width:100%}.speechstudio-result{background:var(--accent-soft);border:1px solid var(--surface-border);border-radius:var(--radius-md);margin-top:32px;padding:26px;text-align:left}.speechstudio-result h2{color:var(--text-primary);font-family:var(--font-display);margin:0 0 12px}.speechstudio-result p{color:var(--text-secondary);margin-bottom:18px}.result-audio{margin-bottom:18px;width:100%}@media (max-width:740px){.speechstudio-input-row{grid-template-columns:1fr}}@media (max-width:640px){.project-details-card{padding:30px 22px}}.projects-page{color:var(--text-primary);margin:0 auto;max-width:1280px;padding:52px 32px 80px;text-align:center}.projects-header h1{color:var(--text-primary);font-family:var(--font-display);font-size:clamp(2rem,3vw,2.8rem);font-weight:800;letter-spacing:-.02em;margin-bottom:12px}.projects-header p{color:var(--text-secondary);font-size:1.05rem;margin-bottom:36px}.projects-list{grid-gap:22px;display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.project-card{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:linear-gradient(160deg,var(--surface-strong) 0,var(--surface-muted) 100%);border:1px solid var(--surface-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:var(--text-primary);display:flex;flex-direction:column;overflow:hidden;padding:22px;text-align:left;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.project-card:hover{border-color:var(--accent);box-shadow:var(--shadow-lg);transform:translateY(-5px)}.project-image{background:var(--surface-muted);object-fit:contain}.project-image,.project-image-square{border-radius:var(--radius-sm);height:200px;margin-bottom:16px;width:100%}.project-image-square{object-fit:cover}.project-card h2,.project-card p{color:var(--text-primary);margin:0;text-decoration:none}.project-card h2{font-family:var(--font-display);font-size:1.2rem;font-weight:700;margin-bottom:8px}.project-card p{color:var(--text-secondary);font-size:.96rem;line-height:1.6}.project-card a{color:inherit;text-decoration:none}@media (max-width:640px){.projects-page{padding:36px 20px 56px}}.toolbox-page{color:var(--text-primary);padding:52px 32px 80px}.project-details-page{color:var(--text-primary);padding:48px 24px 72px;text-align:center}.project-details-card{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:linear-gradient(160deg,var(--surface-strong) 0,var(--surface-muted) 100%);border:1px solid var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin:0 auto;max-width:850px;padding:40px}.project-details-card h1{color:var(--text-primary);font-family:var(--font-display);font-size:2.2rem;font-weight:800;letter-spacing:-.02em;margin-bottom:14px}.project-details-card p{color:var(--text-secondary);font-size:1.02rem;margin-bottom:4px}.toolbox-form{grid-gap:20px;display:grid;gap:20px;margin-top:26px;text-align:left}.file-upload-label{color:var(--text-secondary);display:flex;flex-direction:column;font-weight:600;gap:10px}.file-upload-label input[type=file]{background:var(--input-bg);border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--input-text);cursor:pointer;padding:12px 14px;width:100%}.error{font-weight:600;margin-top:4px}.download-link{align-items:center;background:linear-gradient(135deg,var(--btn-blue-hover),var(--btn-blue-bg));border-radius:var(--radius-pill);box-shadow:var(--shadow-sm);color:var(--btn-blue-text);display:inline-flex;font-weight:600;gap:10px;padding:13px 24px;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}.download-link:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.toolbox-card-button{align-items:stretch;background:linear-gradient(160deg,var(--surface-strong) 0,var(--surface-muted) 100%);border:1px solid var(--surface-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);cursor:pointer;display:flex;flex-direction:column;gap:0;overflow:hidden;padding:0;text-align:left;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;width:100%}.toolbox-card-button:hover{border-color:var(--accent);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.toolbox-card-image{aspect-ratio:16/10;background:var(--surface-muted);overflow:hidden;width:100%}.toolbox-card-image img{display:block;height:100%;object-fit:cover;width:100%}.toolbox-card-button h2,.toolbox-card-button p{padding:18px 22px}.toolbox-card-button h2{font-family:var(--font-display);font-size:1.2rem;font-weight:700;margin:0 0 8px}.toolbox-card-button p{color:var(--text-secondary);margin:0}.toolbox-card-button.disabled{cursor:not-allowed;opacity:.6}.toolbox-preview{background:var(--surface-muted);border:1px solid var(--surface-border);border-radius:var(--radius-md);max-width:100%;overflow:hidden}.toolbox-preview img{display:block;height:auto;max-height:420px;object-fit:contain;width:100%}.toolbox-result{margin-top:24px}.toolbox-result h2{font-family:var(--font-display);margin:0 0 10px}.toolbox-result p{color:var(--text-secondary);margin:0 0 18px}.toolbox-pdf-preview{background:var(--surface-muted);border:1px solid var(--surface-border);border-radius:var(--radius-md);max-height:620px;min-height:320px;overflow:hidden;width:100%}.toolbox-pdf-preview iframe{border:0;height:100%;min-height:320px;width:100%}@media (max-width:640px){.toolbox-page{padding:36px 20px 56px}}.rag-container{display:flex;justify-content:center;padding:40px 20px 72px}.rag-card{background:var(--surface-strong);border:1px solid var(--surface-border);border-radius:var(--radius-lg);max-width:980px;overflow:hidden;transform:translateY(0);transition:transform .25s ease,box-shadow .25s ease;width:100%}.rag-card,.rag-card:hover{box-shadow:var(--shadow-lg)}.rag-card:hover{transform:translateY(-4px)}.rag-header{align-items:center;background:linear-gradient(100deg,var(--accent-strong),var(--accent) 100%);color:#fff;display:flex;gap:18px;padding:28px 32px}.rag-header h1{font-family:var(--font-display);font-size:1.8rem;font-weight:800;margin:0}.rag-header .subtitle{color:#ffffffe0;font-size:.96rem}.rag-header .icon{align-items:center;background:#ffffff24;border-radius:var(--radius-sm);color:#fff;display:inline-flex;flex-shrink:0;height:46px;justify-content:center;width:46px}.rag-body{display:flex;gap:24px;justify-content:center;padding:32px}.qa-column{display:flex;flex-direction:column;gap:20px;margin:0 auto;max-width:100%;width:760px}.side-column{display:none}.rag-section{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:24px}.rag-section h2,.rag-section h3{color:var(--text-primary);font-family:var(--font-display);margin:0 0 14px}.rag-form{gap:14px}.rag-form,.rag-form label{display:flex;flex-direction:column}.rag-form label{color:var(--text-secondary);font-size:.88rem;font-weight:600;gap:6px}.rag-form input[type=file],.rag-form input[type=text]{background:var(--input-bg);border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--input-text);font-family:var(--font-sans);font-size:.98rem;outline:none;padding:12px 14px;transition:border-color .2s ease,background .2s ease}.rag-form input[type=text]:focus{background:var(--input-bg-hover);border-color:var(--accent)}.rag-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.btn.small{font-size:.9rem;padding:9px 16px}.file-info{background:var(--surface-muted);border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.92rem;padding:10px 14px}.upload-result{margin-top:12px}.upload-success{color:var(--success);font-weight:700}.upload-error{color:var(--error);font-weight:700}.answer-box{background:linear-gradient(180deg,var(--surface-hover),var(--surface-muted));border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--text-primary);line-height:1.6;min-height:120px;padding:16px;white-space:pre-wrap}.tagline{margin-top:6px;opacity:.9}@media (max-width:920px){.rag-body{align-items:center;flex-direction:column;padding:24px}.qa-column{max-width:720px;width:100%}}@media (max-width:560px){.rag-header{flex-wrap:wrap;padding:22px 20px}.rag-header h1{font-size:1.5rem}}.modal-backdrop{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#060a1299;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1200}.modal{background:var(--surface-strong);border:1px solid var(--surface-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-width:620px;padding:26px 24px 24px;position:relative;width:100%}.modal-close{position:absolute;right:16px;top:16px}.modal h3{color:var(--text-primary);font-family:var(--font-display);margin:0 0 16px;padding-right:90px}.modal .rag-form input[type=file],.modal .rag-form input[type=text]{width:100%}.uar-container{display:flex;justify-content:center;padding:40px 20px 72px}.uar-card{background:var(--surface-strong);border:1px solid var(--surface-border);border-radius:var(--radius-lg);max-width:780px;overflow:hidden;transform:translateY(0);transition:transform .25s ease,box-shadow .25s ease;width:100%}.uar-card,.uar-card:hover{box-shadow:var(--shadow-lg)}.uar-card:hover{transform:translateY(-4px)}.uar-header{align-items:center;background:linear-gradient(100deg,var(--accent-strong),var(--accent) 100%);color:#fff;display:flex;gap:18px;padding:28px 32px}.uar-header h1{font-family:var(--font-display);font-size:1.8rem;font-weight:800;margin:0}.uar-header .subtitle{color:#ffffffe0;font-size:.96rem}.uar-header .icon{align-items:center;background:#ffffff24;border-radius:var(--radius-sm);color:#fff;display:inline-flex;flex-shrink:0;height:46px;justify-content:center;width:46px}.uar-body{display:flex;flex-direction:column;gap:20px;padding:32px}.uar-section{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-md);padding:24px}.uar-section h2,.uar-section h3{color:var(--text-primary);font-family:var(--font-display);margin:0 0 14px}.uar-mic-row{align-items:center;display:flex;flex-wrap:wrap;gap:14px;margin-bottom:18px}.uar-mic-btn{align-items:center;background:var(--accent);border:1px solid var(--surface-border);border-radius:999px;color:#fff;cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:700;gap:10px;padding:12px 20px;transition:background .2s ease,transform .2s ease}.uar-mic-btn:hover:not(:disabled){transform:translateY(-1px)}.uar-mic-btn:disabled{cursor:not-allowed;opacity:.5}.uar-mic-btn.recording{background:var(--error)}.uar-mic-dot{background:#fff;border-radius:50%;height:10px;width:10px}.uar-mic-btn.recording .uar-mic-dot{animation:uar-pulse 1s ease-in-out infinite}@keyframes uar-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.3)}}.uar-file-label{color:var(--text-secondary);display:flex;flex-direction:column;font-size:.88rem;font-weight:600;gap:6px}.uar-file-label input[type=file]{background:var(--input-bg);border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--input-text);font-family:var(--font-sans);font-size:.98rem;padding:12px 14px}.uar-preview{margin-top:14px}.uar-preview audio{width:100%}.uar-actions{margin-top:16px}.uar-box{background:linear-gradient(180deg,var(--surface-hover),var(--surface-muted));border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1.05rem;line-height:1.9;min-height:60px;padding:16px;white-space:pre-wrap}.uar-result-audio{margin-bottom:10px;width:100%}.help{color:var(--text-secondary);font-size:.9rem;line-height:1.6}.error{color:var(--error);font-weight:700;margin-top:12px}@media (max-width:560px){.uar-header{flex-wrap:wrap;padding:22px 20px}.uar-header h1{font-size:1.5rem}.uar-body{padding:22px}}.chat-fab{align-items:center;background:linear-gradient(135deg,var(--accent),var(--accent-strong));border:none;border-radius:var(--radius-pill);bottom:24px;box-shadow:var(--shadow-lg);color:#fff;cursor:pointer;display:flex;font-size:22px;height:60px;justify-content:center;position:fixed;right:24px;transition:transform .2s ease,box-shadow .2s ease;width:60px;z-index:1300}.chat-fab:hover{transform:translateY(-2px) scale(1.03)}.chat-fab:after{animation:pulse 2.6s ease-in-out infinite;background:radial-gradient(circle at center,var(--accent-soft),#0000 40%);border-radius:var(--radius-pill);bottom:-9px;content:"";filter:blur(6px);height:78px;opacity:.9;pointer-events:none;position:absolute;right:-9px;width:78px}.chat-widget{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:var(--surface-strong);border:1px solid var(--surface-border);border-radius:var(--radius-md);bottom:96px;box-shadow:var(--shadow-lg);max-width:calc(100% - 40px);opacity:0;overflow:hidden;pointer-events:none;position:fixed;right:24px;transform:translateY(8px) scale(.98);transform-origin:bottom right;transition:transform .18s ease,opacity .18s ease;width:400px;z-index:1300}.chat-widget.open{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.chat-header{align-items:center;background:linear-gradient(100deg,var(--accent-strong),var(--accent) 100%);color:#fff;display:flex;gap:12px;justify-content:space-between;padding:16px 18px}.chat-title{font-family:var(--font-display);font-size:1.02rem;font-weight:700}.chat-subtitle{color:#ffffffd9;font-size:.85rem}.chat-close{align-items:center;background:#ffffff24;border:none;border-radius:var(--radius-pill);color:inherit;cursor:pointer;display:inline-flex;font-size:15px;height:30px;justify-content:center;transition:background .2s ease;width:30px}.chat-close:hover{background:#ffffff3d}.chat-body{gap:10px;padding:14px}.chat-body,.chat-controls{display:flex;flex-direction:column}.chat-controls{gap:8px}.chat-mode-tabs{background:var(--surface-muted);border:1px solid var(--surface-border);border-radius:var(--radius-pill);display:flex;gap:6px;padding:4px}.chat-mode-tab{background:#0000;border:none;border-radius:var(--radius-pill);color:var(--text-secondary);cursor:pointer;flex:1 1;font-size:.82rem;font-weight:600;padding:8px 10px;transition:background .2s ease,color .2s ease}.chat-mode-tab.active{background:linear-gradient(135deg,var(--btn-blue-hover),var(--btn-blue-bg));color:var(--btn-blue-text)}.chat-password{background:var(--input-bg);border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--input-text);flex:1 1;padding:9px 12px}.chat-messages{display:flex;flex-direction:column;gap:10px;max-height:280px;overflow:auto;padding-right:4px}.chat-empty{color:var(--text-secondary);font-size:.92rem;padding:24px 6px;text-align:center}.chat-message.user{align-self:flex-end}.chat-message.bot{align-self:flex-start}.chat-text{background:var(--surface-muted);border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.94rem;line-height:1.5;max-width:88%;padding:10px 14px}.chat-message.user .chat-text{background:linear-gradient(135deg,var(--btn-blue-hover),var(--btn-blue-bg));border-color:#0000;color:var(--btn-blue-text)}.chat-input-row{display:flex;gap:8px;margin-top:2px}.chat-input{background:var(--input-bg);border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--input-text);flex:1 1;font-family:var(--font-sans);outline:none;padding:11px 14px;transition:border-color .2s ease,background .2s ease}.chat-input:focus{background:var(--input-bg-hover);border-color:var(--accent)}.chat-status{color:var(--text-secondary);font-style:italic}.chat-audio{display:block;margin-top:8px;max-width:260px;width:100%}.chat-voice-row{align-items:center;display:flex;gap:10px;margin-top:2px}.chat-mic-btn{align-items:center;background:var(--accent);border:1px solid var(--surface-border);border-radius:var(--radius-pill);color:#fff;cursor:pointer;display:inline-flex;font-size:.88rem;font-weight:700;gap:8px;padding:10px 16px;transition:background .2s ease,transform .2s ease}.chat-mic-btn:hover:not(:disabled){transform:translateY(-1px)}.chat-mic-btn:disabled{cursor:not-allowed;opacity:.5}.chat-mic-btn.recording{background:var(--error)}.chat-mic-dot{background:#fff;border-radius:50%;height:8px;width:8px}.chat-mic-btn.recording .chat-mic-dot{animation:chat-mic-pulse 1s ease-in-out infinite}.chat-voice-upload{color:var(--text-secondary);cursor:pointer;font-size:.82rem;position:relative;text-decoration:underline}.chat-voice-upload input[type=file]{cursor:pointer;inset:0;opacity:0;position:absolute;width:100%}@keyframes chat-mic-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.3)}}@media (max-width:520px){.chat-widget{bottom:80px;left:10px;right:10px;width:auto}.chat-fab{bottom:16px;right:16px}}@keyframes pulse{0%{opacity:.85;transform:scale(.98)}50%{opacity:.5;transform:scale(1.06)}to{opacity:.85;transform:scale(.98)}}
/*# sourceMappingURL=main.e416a62c.css.map*/