:root{--nav-h:0px;--gutter:clamp(.75rem,2vw,2.25rem);--bg-alt:#f8f7fc;--accent:#8d6cc2;--accent-d:#684dad;--content-max:1400px}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}body{line-height:1.6;font-family:Inter,system-ui,sans-serif;line-height:1.6;color:#2b2b2b;background:#fff;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block;height:auto}a{text-decoration:none;color:inherit}ul,ol{list-style:none}.wrap{inline-size:100%;max-inline-size:var(--content-max);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:clamp(4rem,10vw,8rem)}.section.alt{background:var(--bg-alt)}h1{font:800 clamp(2.6rem,5.2vw,4.1rem)/1.15 Inter}h2{font:700 clamp(1.9rem,3.5vw,2.6rem)/1.25 Inter}.site-nav{position:fixed;top:0;inset-inline:0;height:72px;display:flex;align-items:center;justify-content:space-between;padding-inline:var(--gutter);background:#ffffffd8;backdrop-filter:blur(6px);box-shadow:0 2px 8px rgba(0,0,0,.06);z-index:1000}.logo{font-weight:800;font-size:1.3rem;color:var(--accent)}.main-menu{display:flex;gap:1.6rem;font-weight:500}.main-menu a{transition:color .2s ease}.main-menu a:hover,.main-menu a:focus{color:var(--accent-d)}.menu-toggle{display:none;border:none;background:none;font:600 1rem/1 Inter}@media(max-width:760px){.menu-toggle{display:block;color:#444}.main-menu{position:absolute;top:100%;right:0;flex-direction:column;background:#fff;width:clamp(200px,40vw,250px);padding:1rem 1.4rem;box-shadow:0 10px 18px rgba(0,0,0,.1);display:none}.main-menu.open{display:flex}}.hero{min-height:calc(100dvh - var(--nav-h));display:grid;place-items:center;padding:6rem 5vw 4rem;position:relative;color:#fff;text-align:center;text-shadow:0 3px 18px rgba(0,0,0,.45)}.hero::after{content:"";position:absolute;inset:0;background:rgba(24,20,30,.55);z-index:-1}.hero-grid{display:flex;flex-direction:column;align-items:center;gap:2rem;max-inline-size:1000px;margin-inline:auto}.btn{padding:1rem 2.3rem;border:none;border-radius:9999px;font-weight:700;background:var(--accent);color:#fff;cursor:pointer;transition:.2s ease}.btn:hover{background:var(--accent-d);transform:translateY(-3px)}#portfolio-grid{display:grid;gap:clamp(1.6rem,3vw,2.4rem);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));justify-content:center}.project{background:#fff;border-radius:16px;box-shadow:0 6px 22px rgba(0,0,0,.05);overflow:hidden;display:flex;flex-direction:column;transition:transform .3s ease}.project:hover{transform:translateY(-6px)}.project img{aspect-ratio:4/3;object-fit:cover}.project-text{padding:1.6rem;display:flex;flex-direction:column;gap:.7rem}.project-text h3{font-size:1.4rem;color:var(--accent-d)}.project small{color:#666;font-size:.88rem}#ai-grid{display:grid;gap:clamp(1.4rem,4vw,2.6rem);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));justify-content:center}.ai-card{background:#fff;border-radius:16px;box-shadow:0 6px 20px rgba(0,0,0,.05);padding:2rem 1.7rem;display:flex;flex-direction:column;gap:1rem;transition:.25s ease}.ai-card:hover{transform:translateY(-6px);box-shadow:0 8px 24px rgba(0,0,0,.08)}.ai-card h3{font-size:1.25rem;font-weight:600;hyphens:auto;word-break:break-word}.inline-link{font-weight:500;color:var(--accent);margin-top:0.25rem;display:inline-block}.inline-link:hover{color:var(--accent-d)}#about-wrap{display:grid;gap:clamp(2rem,4vw,4rem);grid-template-columns:minmax(0,1fr) 320px;align-items:center}#about-wrap img{border-radius:18px;box-shadow:0 6px 22px rgba(0,0,0,.05);max-width:260px;width:100%}@media(max-width:480px){#about-wrap img{max-width:180px}}@media(max-width:880px){#about-wrap{grid-template-columns:1fr}}.about-actions{display:flex;gap:1rem;margin-top:1.3rem;flex-wrap:wrap}@media(max-width:480px){.about-actions{flex-direction:column;align-items:center}}.btn-outline{border:2px solid var(--accent);background:transparent;color:var(--accent);padding:1rem 2.3rem;border-radius:9999px;font-weight:700;transition:.2s}.btn-outline:hover{background:var(--accent);color:#fff}footer{margin-top:4rem;background:var(--accent-d);color:#fff;text-align:center;padding:2.2rem 1rem;font-size:.9rem}footer a{color:#fff;text-decoration:underline}html{font-size:clamp(18px,0.65vw + 12px,24px)}@media(max-width:480px){html{font-size:clamp(18px,0.65vw + 12px,24px)}}p{max-inline-size:70ch;margin-bottom:1rem}.hero{position:relative}.hero-grid{position:relative;z-index:1}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project img,.ai-card img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.cta-fab{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--accent);color:#fff;padding:.75rem 1.25rem;border-radius:9999px;box-shadow:0 4px 16px rgba(0,0,0,.2);font-weight:600;text-decoration:none;z-index:1001;transition:transform .15s ease}.cta-fab:hover{transform:scale(1.06)}.cta-fab:focus-visible{outline:3px solid var(--accent-d)}@media(max-width:480px){#about-wrap img{margin-left:auto;margin-right:auto;display:block}}.hero::before{content:"";position:absolute;inset:0;background:url("https://duyn491kcolsw.cloudfront.net/files/1a/1ab/1abh2m.png?ph=471bde8c0b") center/cover no-repeat;z-index:-2}.nocopy,.nocopy *{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}img{-webkit-user-drag:none}@media(min-width:1280px){.hero-grid{max-inline-size:1000px}}#product-grid{display:grid;gap:clamp(1.6rem,3vw,2.4rem);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));justify-content:center}.product-card{background:#fff;border-radius:16px;box-shadow:0 6px 22px rgba(0,0,0,.05);overflow:hidden;display:flex;flex-direction:column;transition:transform .3s ease;text-align:center}.product-card:hover{transform:translateY(-6px)}.product-card img{aspect-ratio:1/1;object-fit:cover;width:100%}.product-card h3{font-size:1.3rem;color:var(--accent-d);margin-top:1rem}.product-card p{font-size:0.95rem;color:#555;padding:0 1.2rem;margin-bottom:0.8rem}.product-card .price{font-size:1.2rem;font-weight:700;color:var(--accent);margin-bottom:1rem}.product-card .btn{margin:0 1.2rem 1.2rem}.lang-switcher{margin-left:1.6rem;display:flex;align-items:center;gap:0.5rem;font-weight:600}.lang-switcher a{color:#666}.lang-switcher a.active{color:var(--accent)}.lang-switcher span{color:#ccc}@media(max-width:760px){.main-menu .lang-switcher{margin-left:0;margin-top:1rem}}