:root{--bg:#eef2f7;--bg-soft:#f7f9fc;--surface:#fff;--surface-2:#f3f6fb;--surface-3:#edf2f9;--ink:#0f172a;--ink-soft:#475569;--ink-muted:#64748b;--line:#0f172a1f;--line-strong:#0f172a33;--brand:#0ea5e9;--brand-strong:#0284c7;--brand-soft:#0ea5e924;--emerald:#059669;--amber:#d97706;--shadow-sm:0 8px 18px #02081714;--shadow-md:0 16px 36px #0208171f;--shadow-lg:0 26px 64px #02081729;--radius-xs:10px;--radius-sm:14px;--radius-md:18px;--radius-lg:26px;--top-nav-height:74px;--header-clearance:132px;--header-clearance-mobile:150px;--font-display:"Space Grotesk", sans-serif;--font-body:"Manrope", sans-serif;--font-mono:"IBM Plex Mono", monospace}body.dark{--bg:#070b14;--bg-soft:#0c1322;--surface:#111c2f;--surface-2:#152238;--surface-3:#0f1a2e;--ink:#e5edf8;--ink-soft:#bfd0e8;--ink-muted:#95a9c3;--line:#bfd0e82e;--line-strong:#bfd0e84d;--brand:#38bdf8;--brand-strong:#0ea5e9;--brand-soft:#38bdf833;--shadow-sm:0 10px 22px #0000004d;--shadow-md:0 18px 40px #0006;--shadow-lg:0 32px 82px #00000075}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--header-clearance)}body{font-family:var(--font-body);background:var(--bg);color:var(--ink);scroll-padding-top:var(--header-clearance);transition:background .35s,color .35s;position:relative;overflow-x:hidden}body:before,body:after{content:"";pointer-events:none;z-index:-2;position:fixed;inset:0}body:before{background:radial-gradient(circle at 8% 8%,#0ea5e933,#0000 28%),radial-gradient(circle at 92% 16%,#0596691f,#0000 26%),radial-gradient(circle at 50% 90%,#d977061a,#0000 22%)}body:after{z-index:-1;opacity:.52;background-image:linear-gradient(#64748b1a 1px,#0000 1px),linear-gradient(90deg,#64748b1a 1px,#0000 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(circle,#000 45%,#0000 100%);mask-image:radial-gradient(circle,#000 45%,#0000 100%)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.03em}p,li,span,a,button,input{font-family:var(--font-body)}a{color:inherit}img{max-width:100%;display:block}.top-nav{z-index:2147483000;width:min(1080px,100% - 3rem);min-height:var(--top-nav-height);border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 74%, transparent);-webkit-backdrop-filter:blur(20px)saturate(150%);box-shadow:var(--shadow-sm);-ms-overflow-style:none;scrollbar-width:none;isolation:isolate;border-radius:9999px;justify-content:center;align-items:center;display:flex;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.top-nav::-webkit-scrollbar{display:none}.top-nav ul{white-space:nowrap;align-items:center;gap:.45rem;padding:.5rem;list-style:none;display:flex}.top-nav a{color:var(--ink-soft);border-radius:999px;justify-content:center;align-items:center;padding:.5rem .9rem;font-size:.9rem;font-weight:700;text-decoration:none;transition:all .28s;display:inline-flex}.top-nav a:hover,.top-nav a:focus-visible{color:var(--ink);background:var(--brand-soft);outline:none}.top-nav a.active{color:var(--ink);background:color-mix(in srgb, var(--brand) 22%, var(--surface));box-shadow:0 0 0 1px color-mix(in srgb, var(--brand) 46%, transparent)}.header-controls{z-index:2147483100;align-items:center;gap:.6rem;display:flex;position:fixed;top:1.2rem;right:1.4rem}.language-selector{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 72%, transparent);-webkit-backdrop-filter:blur(16px)saturate(145%);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:.35rem;padding:.3rem;display:inline-flex}.lang-flag{cursor:pointer;opacity:.55;border-radius:999px;width:28px;height:28px;transition:transform .25s,opacity .25s,box-shadow .25s}.lang-flag:hover{opacity:1;transform:scale(1.08)}.lang-flag.active{opacity:1;box-shadow:0 0 0 2px var(--brand)}#darkModeToggle{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 72%, transparent);-webkit-backdrop-filter:blur(16px)saturate(145%);width:44px;height:44px;box-shadow:var(--shadow-sm);color:var(--ink);cursor:pointer;border-radius:999px;font-size:1.2rem;transition:transform .25s,border-color .25s}#darkModeToggle:hover{border-color:var(--brand);transform:rotate(15deg)scale(1.06)}.btn{letter-spacing:.01em;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;padding:.76rem 1.2rem;font-size:.92rem;font-weight:800;text-decoration:none;transition:transform .22s,box-shadow .22s,background .22s,color .22s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--brand), var(--brand-strong));color:#fff;box-shadow:0 10px 20px color-mix(in srgb, var(--brand) 34%, transparent)}.btn-primary:hover{box-shadow:0 14px 30px color-mix(in srgb, var(--brand) 46%, transparent);transform:translateY(-2px)}.btn-secondary{background:var(--surface);color:var(--ink-soft);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.btn-secondary:hover{color:var(--ink);border-color:var(--line-strong);transform:translateY(-2px)}.container{width:min(1180px,100% - 3rem);margin:0 auto}.section{scroll-margin-top:var(--header-clearance);padding:5.2rem 0;position:relative}.section-title{text-align:center;color:var(--ink);margin-bottom:2rem;font-size:clamp(2rem,3vw,3rem)}.section-title:after{content:"";background:linear-gradient(90deg, var(--brand), var(--emerald));border-radius:999px;width:86px;height:4px;margin:.8rem auto 0;display:block}.hero{isolation:isolate;align-items:center;min-height:100vh;padding:8.8rem 0 3.2rem;display:flex;position:relative;overflow:hidden}.hero-content{z-index:1;width:min(1240px,100% - 3rem);margin:0 auto;position:relative}.hero-bg-orb{z-index:0;pointer-events:none;border-radius:999px;position:absolute}.hero-bg-orb-a{aspect-ratio:1;background:radial-gradient(circle at 30% 30%, color-mix(in srgb, var(--brand) 38%, transparent), transparent 72%);width:min(560px,46vw);animation:12s ease-in-out infinite floatOrbA;top:7.8rem;left:-7rem}.hero-bg-orb-b{aspect-ratio:1;background:radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--emerald) 18%, transparent), transparent 72%);width:min(640px,52vw);animation:14s ease-in-out infinite floatOrbB;bottom:-18rem;right:-9rem}@keyframes floatOrbA{0%,to{transform:translateY(0)translate(0)}50%{transform:translateY(-16px)translate(8px)}}@keyframes floatOrbB{0%,to{transform:translateY(0)translate(0)}50%{transform:translateY(20px)translate(-10px)}}.hero-layout{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:stretch;gap:2rem;display:grid}.hero-copy,.hero-side{border:1px solid var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--surface) 92%, transparent);box-shadow:var(--shadow-md)}.hero-copy{padding:2.4rem}.hero-side{flex-direction:column;justify-content:space-between;gap:1.1rem;padding:1.8rem;display:flex}.hero-kicker{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-muted);align-items:center;gap:.45rem;margin-bottom:.95rem;font-size:.76rem;display:inline-flex}.hero-kicker:before{content:"";background:var(--brand);border-radius:999px;width:24px;height:2px}.hero-title{color:var(--ink);font-size:clamp(2.7rem,6vw,5.3rem);line-height:.95}.hero-subtitle{color:var(--brand-strong);margin-top:1rem;font-size:clamp(1.05rem,2.3vw,1.5rem);font-weight:700}.hero-pitch{max-width:66ch;color:var(--ink-soft);margin-top:1rem;font-size:clamp(1rem,1.6vw,1.14rem);line-height:1.72}.hero-buttons{flex-wrap:wrap;gap:.72rem;margin-top:1.45rem;display:flex}.hero-side h3{color:var(--ink);font-size:1.03rem}.hero-side p{color:var(--ink-muted);font-size:.95rem;line-height:1.65}.hero-badges{justify-content:center;display:flex}.badge-strip{flex-wrap:wrap;gap:.85rem;display:flex}.hero-badge-strip{justify-content:center}.badge-icon{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2);width:94px;height:94px;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;transition:transform .28s,box-shadow .28s;display:inline-flex}.badge-icon img{object-fit:contain;width:84%;height:84%}.badge-icon:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)scale(1.03)}.scroll-down-arrow{color:var(--ink-soft);border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 94%, transparent);box-shadow:var(--shadow-sm);border-radius:999px;flex-direction:column;align-items:center;gap:.3rem;padding:.55rem .86rem;text-decoration:none;animation:2s infinite bounce;display:inline-flex;position:absolute;bottom:1.25rem;left:50%;transform:translate(-50%)}.scroll-down-arrow:hover{color:var(--ink);border-color:color-mix(in srgb, var(--brand) 46%, var(--line))}.scroll-text{letter-spacing:.01em;font-size:.8rem;font-weight:700}.scroll-down-arrow svg{width:24px;height:24px}.scroll-down-arrow-inline{flex-direction:row;gap:.5rem;margin:2rem auto 0;padding:.64rem .96rem;animation:none;position:static;bottom:auto;left:auto;transform:none}@keyframes bounce{0%,20%,50%,80%,to{transform:translate(-50%)translateY(0)}40%{transform:translate(-50%)translateY(-8px)}60%{transform:translate(-50%)translateY(-4px)}}.scroll-down-arrow-inline:hover{color:var(--ink);transform:translateY(-2px)}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(24px)scale(.985)}.reveal.visible{opacity:1;transform:translateY(0)scale(1)}.section-fullpage{flex-direction:column;justify-content:center;align-items:center;gap:1.8rem;min-height:100vh;display:flex}.about-content{border:1px solid var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--surface) 95%, transparent);box-shadow:var(--shadow-md);grid-template-columns:330px minmax(0,1fr);align-items:center;gap:2.3rem;padding:2.2rem;display:grid}.about-image-container{border:6px solid color-mix(in srgb, var(--brand) 55%, transparent);box-shadow:var(--shadow-md);border-radius:999px;overflow:hidden}.about-text-container .section-title{text-align:left;margin-bottom:1.35rem}.about-text-container .section-title:after{margin-left:0}.about-text-container p{color:var(--ink-soft);margin-bottom:.9rem;font-size:1.03rem;line-height:1.8}#tech.section{align-items:center;min-height:100vh;display:flex}.tech-carousel-container{border:1px solid var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--surface) 96%, transparent);box-shadow:var(--shadow-md);max-width:980px;margin:0 auto;padding:1.3rem 1rem}.tech-carousel-slider{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.tech-slide-track{align-items:center;width:max-content;animation:28s linear infinite tech-scroll;display:flex}.tech-carousel-slider:hover .tech-slide-track{animation-play-state:paused}@keyframes tech-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.tech-slide{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2);justify-content:center;align-items:center;width:98px;height:98px;margin:0 16px;display:flex}.tech-slide img{opacity:.78;filter:grayscale(.15);width:58px;transition:transform .25s,opacity .25s}.tech-slide:hover img{opacity:1;transform:scale(1.14)}.tech-description{max-width:900px;color:var(--ink-soft);text-align:center;margin:0 auto;font-size:1.05rem;line-height:1.8}.tech-description-card{border:1px solid var(--line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--surface) 95%, transparent);max-width:980px;box-shadow:var(--shadow-sm);margin:1rem auto 0;padding:1rem 1.1rem}.tech-emphasis{color:var(--ink);font-weight:800}.project-grid{column-count:2;column-gap:1.2rem}.project-grid .card{break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;width:100%;margin-bottom:1.2rem;display:inline-flex}.card{border:1px solid var(--line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--surface) 96%, transparent);box-shadow:var(--shadow-sm);transform-style:preserve-3d;will-change:transform;flex-direction:column;transition:box-shadow .35s,border-color .35s,transform .35s;display:flex;overflow:hidden}.card:hover{border-color:color-mix(in srgb, var(--brand) 46%, var(--line));box-shadow:var(--shadow-lg)}.chat-trigger-btn{position:relative}.card-image-container{border-bottom:1px solid var(--line);background:var(--surface-2);justify-content:center;align-items:center;display:flex;overflow:hidden}.card-image{object-fit:contain;width:100%;height:auto;transition:transform .45s}.card:hover .card-image{transform:scale(1.02)}.card-content{padding:1.25rem}.card-title{color:var(--ink);margin-bottom:.6rem;font-size:1.23rem}.card-content p{color:var(--ink-soft);line-height:1.7}.card-impact{margin-top:.7rem;font-weight:700;color:var(--emerald)!important}.card-contrib{margin-top:.45rem;color:var(--ink-muted)!important}.tech-stack{flex-wrap:wrap;gap:.45rem;margin-top:.95rem;display:flex}.tech-stack span{font-family:var(--font-mono);border:1px solid color-mix(in srgb, var(--brand) 36%, transparent);color:var(--brand-strong);background:color-mix(in srgb, var(--brand) 14%, transparent);border-radius:999px;padding:.35rem .62rem;font-size:.76rem}.card-actions{flex-wrap:wrap;gap:.6rem;margin-top:1rem;display:flex}.project-modal-overlay{z-index:2147483500;-webkit-backdrop-filter:blur(3px);background:#020817ad;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.project-modal{border:1px solid var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--surface) 97%, transparent);width:min(920px,100%);max-height:calc(100vh - 2rem);box-shadow:var(--shadow-lg);padding:1rem;position:relative;overflow:auto}.project-modal-close{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;padding:.42rem .72rem;font-size:.85rem;font-weight:700;position:absolute;top:.9rem;right:.9rem}.project-modal-media{margin-bottom:.95rem;padding-right:4.5rem}.project-modal-image{object-fit:contain;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2);width:100%;max-height:360px}.project-modal-content h3{color:var(--ink);margin-bottom:.7rem;font-size:1.55rem}.project-modal-content p{color:var(--ink-soft);line-height:1.75}.project-modal-list{color:var(--ink-soft);gap:.5rem;margin-top:.7rem;padding-left:1.2rem;display:grid}.project-modal-list li{line-height:1.65}.project-modal-impact{margin-top:.8rem;font-weight:700;color:var(--emerald)!important}.project-modal-contrib{margin-top:.4rem;color:var(--ink-muted)!important}.project-modal-actions{margin-top:1.1rem}.featured-projects{border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:linear-gradient(155deg, color-mix(in srgb, var(--brand) 14%, transparent), color-mix(in srgb, var(--surface) 94%, transparent));box-shadow:var(--shadow-md);padding:1.4rem}.featured-projects h3{text-align:center;margin-bottom:1rem;font-size:1.3rem}.featured-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.95rem;display:grid}.featured-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm);flex-direction:column;gap:.56rem;padding:.85rem;display:flex}.featured-card.card:hover{transform:translateY(-10px)scale(1.01)}.featured-image{object-fit:contain;background:var(--surface-2);border-radius:10px;width:100%;height:auto}.featured-card p{color:var(--ink-muted);flex:1;font-size:.93rem;line-height:1.5}.project-subtitle{color:var(--ink);margin:2.1rem 0 1rem;font-size:clamp(1.35rem,2vw,1.7rem)}.project-feed-tabs{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 94%, transparent);box-shadow:var(--shadow-sm);border-radius:999px;flex-wrap:nowrap;gap:.55rem;width:fit-content;max-width:100%;margin:1.1rem auto .9rem;padding:.35rem;display:flex;overflow-x:auto}.project-feed-tab{color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;padding:.5rem .85rem;font-size:.88rem;font-weight:700;transition:all .24s}.project-feed-tab:hover{color:var(--ink);background:var(--brand-soft)}.project-feed-tab.active{color:var(--ink);background:color-mix(in srgb, var(--brand) 22%, var(--surface));border-color:color-mix(in srgb, var(--brand) 40%, transparent)}.project-feed-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;display:grid}.timeline{max-width:900px;margin:0 auto;padding-left:2rem;position:relative}.timeline:before{content:"";background:linear-gradient(var(--brand), color-mix(in srgb, var(--brand) 10%, transparent));border-radius:999px;width:3px;position:absolute;top:4px;bottom:4px;left:14px}.timeline-item{margin-bottom:1rem;padding-left:2rem;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-item:before{content:"";background:var(--surface);border:3px solid var(--brand);width:13px;height:13px;box-shadow:var(--shadow-sm);border-radius:999px;position:absolute;top:16px;left:-2px}.timeline-content{border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--surface) 96%, transparent);box-shadow:var(--shadow-sm);padding:1rem 1.05rem}.timeline-date{font-family:var(--font-mono);color:var(--brand-strong);letter-spacing:.04em;font-size:.78rem}.timeline-content h3{margin-top:.35rem;margin-bottom:.5rem;font-size:1.2rem}.timeline-list{color:var(--ink-soft);padding-left:1.05rem;line-height:1.7}.carousel-container{border:1px solid var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--surface) 96%, transparent);max-width:880px;box-shadow:var(--shadow-md);margin:0 auto;padding:2rem 1.4rem 1.6rem}.carousel-track{justify-content:center;display:flex}.carousel-card{text-align:center;max-width:660px}.carousel-avatar{border:4px solid color-mix(in srgb, var(--brand) 52%, transparent);object-fit:cover;border-radius:999px;width:98px;height:98px;margin:0 auto .9rem}.carousel-card h3{margin-bottom:.35rem;font-size:2rem}.carousel-card .role{color:var(--ink-muted);margin-bottom:1rem}.carousel-card .text{color:color-mix(in srgb, var(--ink-soft) 72%, #fff 28%);white-space:pre-line;font-size:1.06rem;font-style:italic;line-height:1.72}.recommendation-source{color:var(--ink-muted);justify-content:center;align-items:center;gap:.5rem;margin-top:1rem;font-size:.9rem;display:flex}.linkedin-source-link{color:#0a66c2;border:1px solid var(--line);background:var(--surface);border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;display:inline-flex}.linkedin-source-link:hover,.linkedin-source-link:focus-visible{border-color:color-mix(in srgb, #0a66c2 55%, var(--line));outline:none;transform:translateY(-1px);box-shadow:0 8px 18px #0a66c23d}.linkedin-source-link i{font-size:1.12rem}.carousel-buttons{justify-content:center;gap:.65rem;margin-top:1.6rem;display:flex}.carousel-button{border:1px solid var(--line);background:var(--surface);width:42px;height:42px;color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:999px;font-size:1.3rem;transition:all .22s}.carousel-button:hover{background:var(--brand);color:#fff;border-color:var(--brand)}.carousel-button.prev,.carousel-button.next{font-weight:800}.contact-subtitle{text-align:center;max-width:680px;color:var(--ink-soft);margin:-1rem auto 2rem;font-size:1.05rem;line-height:1.75}.contact-links{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;display:grid}.contact-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--surface) 96%, transparent);box-shadow:var(--shadow-sm);color:var(--ink-soft);align-items:center;gap:.8rem;padding:1rem;text-decoration:none;transition:all .24s;display:flex}.contact-item:hover{border-color:color-mix(in srgb, var(--brand) 46%, var(--line));color:var(--ink);box-shadow:var(--shadow-md);transform:translateY(-3px)}.contact-item i{color:var(--brand);font-size:1.4rem}.contact-item span{font-weight:700}.contact-fab{z-index:1300;background:linear-gradient(135deg, var(--brand), var(--brand-strong));color:#fff;width:56px;height:56px;box-shadow:var(--shadow-md);cursor:pointer;border:0;border-radius:999px;transition:transform .2s;position:fixed;bottom:1.3rem;left:1.2rem}.contact-fab:hover{transform:translateY(-2px)scale(1.03)}.sr-text{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.footer{border-top:1px solid var(--line);text-align:center;color:var(--ink-muted);background:color-mix(in srgb, var(--surface) 70%, transparent);margin-top:3.5rem;padding:1.4rem}.chat-trigger-wrapper{z-index:1400;align-items:center;gap:.6rem;display:flex;position:fixed;bottom:1.35rem;right:1.2rem}.chat-cta-bubble{color:#fff;box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#0ea5e9,#2563eb);border-radius:999px;padding:.45rem .8rem;font-size:.86rem;font-weight:700}.chat-open-btn{border:2px solid color-mix(in srgb, var(--brand) 60%, transparent);background:var(--surface);width:66px;height:66px;box-shadow:var(--shadow-md);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:transform .24s;display:inline-flex;overflow:hidden}.chat-open-btn:hover{transform:translateY(-2px)scale(1.03)}.chat-open-icon{object-fit:cover;object-position:center top;width:100%;height:100%;transform:scale(1.1)}.chat-container{border-radius:var(--radius-lg);border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 95%, transparent);width:min(420px,100% - 1.2rem);height:560px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;z-index:1400;grid-template-rows:auto 1fr auto;transition:all .3s;display:grid;position:fixed;bottom:5.9rem;right:1.2rem;overflow:hidden;transform:translateY(20px)scale(.98)}.chat-container.open{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.chat-container.fullscreen{border-radius:20px;width:auto;height:auto;inset:1rem}body.chat-fullscreen-open{overflow:hidden}.chat-header{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--surface-2) 90%, transparent);align-items:center;gap:.65rem;padding:.8rem;display:flex}.chat-avatar{border-radius:999px;width:40px;height:40px;overflow:hidden}.chat-avatar-img{object-fit:cover;width:100%;height:100%}.chat-header-title h3{font-size:.95rem}.chat-header-title span{color:var(--ink-muted);font-size:.77rem}.chat-header-buttons{gap:.35rem;margin-left:auto;display:flex}.chat-fullscreen-btn,.chat-close-btn{border:1px solid var(--line);background:var(--surface);width:34px;height:34px;color:var(--ink);cursor:pointer;border-radius:10px}.chat-box{flex-direction:column;gap:.6rem;padding:.8rem;display:flex;overflow-y:auto}.chat-message{border:1px solid var(--line);max-width:84%;box-shadow:var(--shadow-sm);border-radius:14px;padding:.65rem .82rem}.chat-message p{font-size:.92rem;line-height:1.6}.chat-message.assistant{background:var(--surface);color:var(--ink-soft);align-self:flex-start}.chat-message.user{background:linear-gradient(135deg, var(--brand), var(--brand-strong));color:#fff;border-color:#0000;align-self:flex-end}.quick-replies{flex-wrap:wrap;gap:.45rem;margin-top:.2rem;display:flex}.quick-reply-btn{border:1px solid var(--line);background:var(--surface-2);color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:.36rem .58rem;font-size:.76rem;transition:all .2s}.quick-reply-btn:hover{border-color:var(--brand);color:var(--brand-strong)}.chat-input-area{border-top:1px solid var(--line);background:color-mix(in srgb, var(--surface-2) 88%, transparent);grid-template-columns:1fr auto;gap:.5rem;padding:.65rem;display:grid}.chat-input-area input{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;outline:none;padding:.66rem .74rem;font-size:.92rem}.chat-input-area input:focus{border-color:color-mix(in srgb, var(--brand) 45%, var(--line))}#send-btn{background:linear-gradient(135deg, var(--brand), var(--brand-strong));color:#fff;cursor:pointer;border:0;border-radius:12px;width:42px;height:42px}#send-btn:disabled{opacity:.55;cursor:default}.tech-radar .section-title,#courses .section-title{margin-bottom:1.4rem}.radar-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.radar-card{border:1px solid var(--line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--surface) 96%, transparent);box-shadow:var(--shadow-sm);padding:1rem}.radar-card h3{margin-bottom:.65rem;font-size:1.12rem}.radar-card ul{color:var(--ink-soft);padding-left:1.06rem;line-height:1.65}.cert-featured{border:1px solid var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--surface) 96%, transparent);box-shadow:var(--shadow-md);padding:1.2rem}.cert-featured-header{text-align:center;max-width:700px;margin:0 auto 1rem}.badge-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--brand-strong);font-size:.76rem}.cert-featured-header h3{margin-top:.4rem;margin-bottom:.5rem;font-size:1.65rem}.cert-featured-header p{color:var(--ink-muted);line-height:1.65}.cert-featured-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.cert-card{min-height:100%}.cert-badge-image,.certificate-thumb{aspect-ratio:16/9;border:1px solid var(--line);background:var(--surface-2);border-radius:12px;justify-content:center;align-items:center;width:100%;height:auto;min-height:180px;margin-bottom:.75rem;display:flex;overflow:hidden}.cert-badge-image img,.certificate-thumb img{object-fit:contain;object-position:center;width:100%;height:100%}.courses-search{max-width:760px;margin:1.6rem auto 2rem}.courses-search-box{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:14px;grid-template-columns:auto 1fr;align-items:center;gap:.55rem;padding:.72rem .85rem;display:grid}.courses-search-box i{color:var(--ink-muted)}.courses-search-box input{color:var(--ink);background:0 0;border:0;outline:none;font-size:.94rem}.courses-search-empty{text-align:center;color:var(--ink-muted);margin-top:.75rem}.course-panel{margin-top:.3rem}.course-star{font-family:var(--font-mono);letter-spacing:.04em;color:var(--amber);background:color-mix(in srgb, var(--amber) 16%, transparent);border:1px solid color-mix(in srgb, var(--amber) 34%, transparent);border-radius:999px;margin-bottom:.5rem;padding:.3rem .56rem;font-size:.75rem;display:inline-flex}.role,.text{color:var(--ink-soft)}@media (width<=1180px){.hero-layout{grid-template-columns:1fr}.hero-side{width:100%;max-width:760px;margin:0 auto}.project-grid{column-count:1}.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-links,.radar-grid,.cert-featured-grid{grid-template-columns:1fr}}@media (width<=900px){.project-feed-grid{grid-template-columns:1fr}}@media (width<=980px){.section-fullpage{justify-content:flex-start;min-height:auto}.about-content{text-align:center;grid-template-columns:1fr}.about-image-container{max-width:300px;margin:0 auto}.about-text-container .section-title{text-align:center}.about-text-container .section-title:after{margin-left:auto;margin-right:auto}}@media (width<=768px){html,body{scroll-padding-top:var(--header-clearance-mobile)}.top-nav{border-left:0;border-right:0;border-radius:0;justify-content:flex-start;width:100%;min-height:58px;padding:.25rem;top:0;left:0;overflow-x:auto;transform:none}.top-nav ul{width:max-content}.top-nav a{padding:.45rem .72rem;font-size:.82rem}.header-controls{gap:.42rem;top:4.1rem;right:.6rem}.language-selector{padding:.2rem}.lang-flag{width:24px;height:24px}#darkModeToggle{width:38px;height:38px;font-size:1rem}.hero{padding-top:8.6rem;padding-bottom:3.4rem}.hero-bg-orb{display:none}.hero-content,.container{width:calc(100% - 1.45rem)}.hero-copy,.hero-side,.about-content,.carousel-container,.featured-projects,.cert-featured,.tech-carousel-container,.tech-description-card{border-radius:var(--radius-md)}.section{scroll-margin-top:var(--header-clearance-mobile);scroll-margin-top:var(--header-clearance-mobile);padding:3.8rem 0}.section-title{font-size:clamp(1.7rem,7vw,2.2rem)}.scroll-down-arrow{display:none}.scroll-down-arrow-inline{display:inline-flex}.tech-carousel-slider{-webkit-mask-image:none;mask-image:none}.tech-slide-track{flex-wrap:wrap;justify-content:center;gap:.7rem;width:100%;animation:none}.tech-slide{width:80px;height:80px;margin:0}.tech-slide img{width:50px}.card-image{height:auto}.carousel-card h3{font-size:1.5rem}.carousel-card .text{font-size:1.04rem}.chat-container{width:auto;height:min(68vh,560px);bottom:5.4rem;left:.7rem;right:.7rem}.chat-trigger-wrapper{bottom:.9rem;right:.8rem}.chat-cta-bubble{display:none}.contact-fab{bottom:.9rem;left:.8rem}.project-modal{max-height:calc(100vh - 1rem);padding:.8rem}.project-modal-media{padding-right:3.7rem}.project-modal-content h3{font-size:1.32rem}}@media (width<=560px){.hero-copy,.hero-side,.about-content,.card-content,.timeline-content,.featured-card,.radar-card,.cert-featured,.carousel-container{padding:.95rem}.hero-buttons .btn{width:100%}.hero-title{font-size:clamp(2rem,10vw,2.8rem)}.hero-subtitle{font-size:1rem}.hero-pitch{font-size:.98rem}.badge-icon{width:78px;height:78px}.chat-container.fullscreen{border-radius:14px;inset:.4rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
