:root{--bg: #0b0b0c;--fg: #fafafa;--muted: #bdbdbd;--size-h1: 2.1rem;--size-h2: 1.25rem;--accent: #87ff45;--error: #ff6b6b;--success: #51cf66;--radius: 14px;--font-sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji"}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);line-height:1.55}a,button{min-width:44px;min-height:44px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%)}.skip{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.skip:focus{left:1rem;top:1rem;width:auto;height:auto;padding:.5rem 1rem;background:#000;color:#fff}.container{max-width:1100px;margin:0 auto;padding:1rem}:root{--header-height: 64px}.site-header{position:fixed;top:0;left:0;right:0;height:var(--header-height);z-index:999;background:#0b0b0cd9;backdrop-filter:blur(6px);transition:opacity .18s ease,transform .12s ease;opacity:1}.site-header .container{display:flex;align-items:center;justify-content:space-between;height:100%}@media(max-width:600px){:root{--header-height: 56px}}main#main{padding-top:var(--header-height)}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1rem;border-radius:.6rem;border:1px solid rgba(255,255,255,.06);text-decoration:none;transition:transform .08s ease,box-shadow .12s ease,opacity .12s ease;cursor:pointer;background:transparent;color:inherit}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0);opacity:.95}.btn--ghost{background:transparent;color:var(--fg);border:1px solid rgba(255,255,255,.12)}.btn:focus-visible{outline:none;box-shadow:0 0 0 6px #87ff452e;border-radius:.5rem}.nav{display:flex;gap:1rem;align-items:center}.nav a{color:var(--fg);text-decoration:none;padding:.35rem .5rem;border-radius:.4rem}.nav a:hover{background:#ffffff05;transform:translateY(-2px);box-shadow:0 6px 10px #00000059}.nav a:focus-visible{outline:none;box-shadow:0 0 0 4px #87ff451f}.nav a.active{background:#87ff451f;font-weight:600;box-shadow:inset 0 -2px #87ff4540}@media(max-width:600px){.nav{gap:.5rem;flex-wrap:wrap}}h1,h2,h3{letter-spacing:-.015em}.form-actions--center{justify-content:center;width:100%}.form-actions--center .btn{min-width:220px;padding:.75rem 1.25rem;display:inline-flex;justify-content:center}@media(max-width:600px){.form-actions--center .btn{min-width:160px;padding:.65rem 1rem}}.btn--hover-green{background:transparent;color:inherit;border:1px solid rgba(255,255,255,.06)}.btn--hover-green:hover{background:var(--accent);color:#000;border-color:transparent}.btn--hover-green:focus-visible{outline:none;box-shadow:0 0 0 6px #87ff452e}.card{background:#ffffff08;padding:1.25rem;border-radius:var(--radius);border:1px solid rgba(255,255,255,.04);box-shadow:0 6px 18px #00000073}.contact-card{max-width:700px;margin:.75rem auto 0}.card-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start}.project-card{background:#ffffff05;padding:.75rem;border-radius:.8rem;border:1px solid rgba(255,255,255,.03);display:flex;flex-direction:column;gap:.5rem;transition:transform .12s ease,box-shadow .12s ease}.project-card img{width:100%;height:160px;object-fit:cover;border-radius:.5rem;background:#ffffff05}.project-card h3{margin:0;font-size:1.05rem}.project-card p{color:var(--muted);margin:0;font-size:.95rem}.project-card .meta{font-size:.85rem;color:var(--muted)}.project-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #00000080}.form-field{margin-bottom:.75rem;display:flex;flex-direction:column;gap:.35rem}.form-field:has(.input:invalid:not(:placeholder-shown)) .label:after{content:" (required)";color:var(--error);font-size:.85rem}.form-field:has(#msg:not(.has-content)) .label:after{content:" (required)";color:var(--error);font-size:.85rem}.required-text{color:var(--error);font-size:.85rem;font-weight:400}.label{font-size:.95rem;color:var(--muted)}.input,.textarea{width:100%;padding:.6rem .75rem;border-radius:.5rem;background:transparent;border:1px solid rgba(255,255,255,.08);color:var(--fg);font:inherit}.input:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #007bff40}.input:invalid,.textarea:invalid{border-color:#ffffff14}.contact-card form.validated .input:invalid,.contact-card form.validated .textarea:invalid{border-color:var(--error)}.input:valid,.textarea:valid{border-color:#ffffff14}.contact-card form.validated .input:valid,.contact-card form.validated .textarea:valid{border-color:var(--success)}.textarea{min-height:9rem;resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.btn--primary{background:var(--accent);color:#000;border:none;padding:.6rem 1rem;border-radius:.6rem;transition:transform .08s ease,box-shadow .08s ease;cursor:pointer}.btn--primary:hover{transform:translateY(-1px);box-shadow:0 6px 14px #87ff4514}.hero .btn{background:#000;color:var(--fg);border-color:#ffffff0f}.hero .btn:hover{background:var(--accent);color:#000}.btn--secondary{background:transparent;border:1px solid rgba(255,255,255,.06)}.spinner{width:1rem;height:1rem;border-radius:50%;border:2px solid rgba(255,255,255,.12);border-top-color:#ffffffe6;animation:spin .8s linear infinite;display:inline-block;vertical-align:middle;margin-left:.5rem}@keyframes spin{to{transform:rotate(360deg)}}.form-status{margin-top:.6rem;color:var(--muted);font-size:.95rem}.form-status a{color:var(--accent)}.contact-card form.submitting{opacity:.7;pointer-events:none}.hp{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}h1{font-size:var(--size-h1);margin-bottom:.25rem}.site-footer{background:#0b0b0ce6;border-top:1px solid rgba(255,255,255,.1);padding:2rem 0 1rem;margin-top:4rem}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;margin-bottom:2rem}.footer-section h3,.footer-section h4{color:var(--fg);margin-bottom:1rem}.footer-section h3{font-size:1.25rem}.footer-section h4{font-size:1rem}.footer-section p,.footer-section ul{color:var(--muted);line-height:1.6}.footer-section ul{list-style:none;padding:0}.footer-section li{margin-bottom:.5rem}.footer-section a{color:var(--muted);text-decoration:none;transition:color .2s ease}.footer-section a:hover{color:var(--accent)}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:1rem;text-align:center}.footer-bottom p{color:var(--muted);font-size:.9rem}.social-list{display:flex;gap:1rem;flex-wrap:wrap}.social-link{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#ffffff0d;transition:background .2s ease}.social-link:hover{background:#ffffff1a}.social-icon{width:20px;height:20px;fill:var(--fg)}.footer-copy{color:var(--muted);font-size:.9rem;text-align:center;margin-top:1rem}.footer-links{margin-top:.35rem;text-align:center;font-size:.85rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.35rem .6rem;justify-content:center;align-items:center}.footer-links a{color:inherit;text-decoration:none}.footer-links a:hover,.footer-links a:focus{color:var(--accent);text-decoration:underline}@media(max-width:600px){.footer-content{grid-template-columns:1fr;gap:1.5rem}.social-list{justify-content:center}}h2{font-size:var(--size-h2);margin-top:1rem;margin-bottom:.5rem}.footer-copy{text-align:center;margin-top:.5rem;color:var(--muted)}.social-list{display:flex;gap:.75rem;list-style:none;padding:0;margin:0;justify-content:center;align-items:center}.social-list li{list-style:none}.social-link{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:.5rem;background:#ffffff05;color:var(--fg);border:1px solid rgba(255,255,255,.03);text-decoration:none;transition:background .12s ease,transform .08s ease,color .08s ease}.social-link:hover,.social-link:focus{background:var(--accent);color:#000;transform:translateY(-2px)}.social-icon{font-size:.95rem;font-weight:700;line-height:1;display:inline-block}.social-link .social-icon{width:1.05rem;height:1.05rem;display:block;fill:currentColor}
