:root{--transition: var(--transition)}.header{display:flex;justify-content:space-between;align-items:center;padding:14px var(--gutter);background:#0a101cb8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0;z-index:10;border-bottom:1px solid var(--border)}.header h1{display:flex;align-items:center;gap:12px;font-size:1rem;letter-spacing:-.01em;color:var(--text);margin:0}.logo{width:40px;height:40px;border-radius:12px;background:#ffffff0a;border:1px solid var(--border);padding:6px}.nav-desktop{display:flex;gap:6px}.nav-desktop a{padding:10px 12px;border-radius:999px;text-decoration:none;color:var(--text-2);font-weight:650;border:1px solid transparent;transition:background var(--transition),color var(--transition),border-color var(--transition),transform var(--transition)}.nav-desktop a:hover{color:var(--text);background:#ffffff0f;border-color:var(--border);transform:translateY(-1px)}.burger{display:none;background:none;border:1px solid var(--border);border-radius:12px;padding:10px 12px;font-size:1.1rem;cursor:pointer;color:var(--text)}.overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0000008c;opacity:0;transition:opacity .3s ease;z-index:9;pointer-events:none}.overlay.visible{opacity:1;pointer-events:auto}.mobile-menu{position:fixed;top:0;right:-100%;width:min(380px,92vw);height:100%;background:#0a101ceb;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);display:flex;flex-direction:column;padding:30px 20px;gap:20px;z-index:10;transition:right .3s ease-in-out;border-left:1px solid var(--border)}.mobile-menu.open{right:0}.close{background:none;border:1px solid var(--border);border-radius:12px;padding:10px 12px;font-size:1.2rem;align-self:flex-end;cursor:pointer;color:var(--text)}.mobile-menu a{padding:10px 12px;border-radius:12px;text-decoration:none;color:var(--text);border:1px solid transparent;transition:background var(--transition),border-color var(--transition)}.mobile-menu a:hover{background:#ffffff0f;border-color:var(--border)}@media (max-width: 767px){.nav-desktop{display:none}.burger{display:block}}@media (min-width: 768px) and (max-width: 1024px){.nav-desktop{display:none}.burger{display:block}}.toast{position:fixed;bottom:2rem;right:2rem;background:#0a101ce0!important;color:var(--text)!important;padding:1rem 1.5rem;border-radius:14px;border:1px solid var(--border);box-shadow:var(--shadow);opacity:0;transform:translate(100%);transition:opacity .3s ease,transform .3s ease;font-weight:600;z-index:9999;max-width:320px;pointer-events:none}.toast.show{opacity:1;transform:translate(0);pointer-events:auto}.toast.success{border-color:#4fd1c559}.toast.error{border-color:#fb718573}.gallery{margin-top:18px}#gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:#ffffff0a;box-shadow:var(--shadow-soft)}.gallery-thumb{width:100%;height:clamp(240px,42vw,520px);object-fit:cover;border-radius:14px;box-shadow:0 10px 26px #00000059;transition:transform .3s ease;cursor:pointer}.gallery-thumb:hover{transform:scale(1.02)}.custom-file-upload{cursor:pointer;display:inline-block;padding:10px 20px;background:#007bff;color:#fff;border-radius:6px;font-weight:700;-webkit-user-select:none;user-select:none}button[type=submit]{margin-left:10px;padding:10px 20px;border-radius:6px;border:none;background-color:#28a745;color:#fff;font-weight:700;cursor:pointer}button[type=submit]:hover{background-color:#218838}@media (max-width: 767px){#gallery{grid-template-columns:repeat(1,1fr)}.gallery-thumb{height:420px}}:root{--font-sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";--font-display: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;--bg: #0b1220;--surface: rgba(255, 255, 255, .06);--surface-2: rgba(255, 255, 255, .1);--text: rgba(255, 255, 255, .92);--text-2: rgba(255, 255, 255, .7);--border: rgba(255, 255, 255, .12);--brand: #4fd1c5;--brand-2: #60a5fa;--danger: #fb7185;--radius: 16px;--radius-sm: 12px;--shadow: 0 14px 50px rgba(0, 0, 0, .45);--shadow-soft: 0 10px 30px rgba(0, 0, 0, .25);--container: 1120px;--gutter: clamp(16px, 4vw, 28px);--transition: .18s cubic-bezier(.2, .8, .2, 1)}@media (prefers-reduced-motion: reduce){:root{--transition: 0ms linear}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);background:radial-gradient(1200px 700px at 10% 5%,rgba(79,209,197,.18),transparent 55%),radial-gradient(900px 600px at 90% 10%,rgba(96,165,250,.18),transparent 60%),radial-gradient(1000px 700px at 30% 95%,rgba(251,113,133,.14),transparent 55%),var(--bg);color:var(--text);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit}img{max-width:100%;display:block}::selection{background:#4fd1c540}.container{width:min(var(--container),calc(100% - (var(--gutter) * 2)));margin:0 auto}main{width:min(var(--container),calc(100% - (var(--gutter) * 2)));margin:0 auto;padding:32px 0 80px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hero{position:relative;padding:clamp(64px,10vw,120px) 0;border:1px solid var(--border);border-radius:calc(var(--radius) + 8px);background:linear-gradient(135deg,#4fd1c51f,#60a5fa1a),radial-gradient(900px 420px at 20% 20%,rgba(79,209,197,.14),transparent 60%),#ffffff0a;box-shadow:var(--shadow);overflow:hidden;text-align:left}.hero:before{content:"";position:absolute;inset:-2px;background:radial-gradient(600px 300px at 30% 40%,rgba(255,255,255,.1),transparent 55%),radial-gradient(500px 260px at 80% 20%,rgba(255,255,255,.06),transparent 60%);pointer-events:none}.hero h2{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(28px,4vw,44px);line-height:1.1;margin:0 0 16px;padding:0 var(--gutter)}.hero a{display:inline-flex;align-items:center;gap:10px;margin-left:var(--gutter);padding:14px 18px;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:radial-gradient(260px 160px at 20% 30%,rgba(79,209,197,.16),transparent 60%),radial-gradient(240px 160px at 80% 20%,rgba(96,165,250,.14),transparent 62%),#ffffff0f;text-decoration:none;font-weight:700;color:var(--text);box-shadow:0 14px 30px #00000052;position:relative;overflow:hidden;transition:transform var(--transition),background var(--transition),box-shadow var(--transition),border-color var(--transition)}.hero a:after{content:"";position:absolute;inset:-2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent);transform:translate(-65%);opacity:.9;pointer-events:none}.hero a:hover:after{transform:translate(65%);transition:transform .7s cubic-bezier(.2,.8,.2,1)}.hero a:focus-visible{outline:3px solid rgba(96,165,250,.55);outline-offset:3px}.hero a:hover{transform:translateY(-1px);border-color:#ffffff38;box-shadow:0 18px 40px #0000006b;filter:saturate(1.06)}.hero a:active{transform:translateY(0);box-shadow:0 14px 30px #0006}.about{display:grid;grid-template-columns:160px 1fr;gap:clamp(18px,3vw,34px);align-items:center;padding:clamp(20px,4vw,32px);margin-top:22px;border-radius:var(--radius);border:1px solid var(--border);background:#ffffff0a;box-shadow:var(--shadow-soft)}.about img{border-radius:999px;width:160px;height:160px;object-fit:cover;border:1px solid rgba(255,255,255,.18)}.about-text h3{font-size:1.35rem;letter-spacing:-.01em;margin-bottom:10px}.about-text p{color:var(--text-2)}.about-text ul{margin-top:12px;display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding-left:0}.about-text li{padding:8px 10px;border:1px solid var(--border);border-radius:999px;background:#ffffff0d;color:var(--text);font-size:.95rem}.about-text a{display:inline-block;margin-top:16px}.about-text a button{background:linear-gradient(135deg,#4fd1c533,#60a5fa29);border-color:#ffffff2e;box-shadow:0 14px 28px #0000004d}.about-text a button:hover{background:linear-gradient(135deg,#4fd1c542,#60a5fa33)}.about-text button{background:#ffffff0f;color:var(--text);padding:10px 14px;border-radius:999px;border:1px solid var(--border);cursor:pointer;transition:transform var(--transition),background var(--transition)}.about-text button:hover{transform:translateY(-1px);background:#ffffff1a}#hero a{background-color:transparent;border:none;border-radius:999px;text-decoration:none;color:inherit}.projects{padding:34px 0}.projects h3{font-size:1.35rem;margin-bottom:18px;letter-spacing:-.01em}.project-list{display:flex;flex-wrap:wrap;gap:16px}.project-card{background:#ffffff0a;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-soft);overflow:hidden;width:calc(33.333% - 20px);min-width:280px}.project-card img{aspect-ratio:16 / 10;object-fit:cover}.project-card img{width:100%;display:block}.project-card .content{padding:20px}.project-card h4{font-size:1.2rem;margin-bottom:5px}.project-card .tags{font-size:.9rem;color:var(--text-2);line-height:1.4}.project-card button{margin-top:10px;background:#ffffff0f;color:var(--text);padding:8px 16px;border:none;border-radius:999px;border:1px solid var(--border);cursor:pointer;transition:transform var(--transition),background var(--transition)}.project-card button:hover{transform:translateY(-1px);background:#ffffff1a}.contact{padding:24px;border-radius:var(--radius);border:1px solid var(--border);background:#ffffff0a;box-shadow:var(--shadow-soft);display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:40px}.contact form{flex:1;min-width:300px;display:flex;flex-direction:column;gap:15px}.contact input,.contact textarea{padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#0000002e;color:var(--text)}.contact input::placeholder,.contact textarea::placeholder{color:#ffffff8c}.contact button{align-self:flex-start;padding:10px 20px;background:linear-gradient(135deg,#4fd1c538,#60a5fa2e);color:var(--text);border:none;border-radius:999px;border:1px solid var(--border);cursor:pointer;transition:.3s ease}.contact button:hover{filter:brightness(1.06)}.socials{display:flex;gap:20px;font-size:1.5rem}.socials a{color:var(--text);transition:.3s ease}.socials a:hover{color:var(--brand)}.contact-info p{margin:.5rem 0}.contact-info a{display:inline-flex;align-items:center;color:inherit;text-decoration:none;font-size:1rem}.contact-info i{margin-right:.5rem;font-size:1.2rem}@media screen and (max-width: 768px){.about{grid-template-columns:1fr;text-align:left}.project-list{flex-direction:column;align-items:center}.contact{flex-direction:column}}
