:root{--color-bg:#0a192f;--color-bg-card:#17335f;--color-bg-card-hover:#234a80;--color-bg-tag:#2b3a59;--color-bg-subtle:#0f2238;--color-accent:#6cb6ff;--color-accent-contrast:#062a4a;--color-text:#ccd6f6;--color-text-muted:#8892b0;--color-border:#1d3557;--shadow-accent:#6cb6ff73;--shadow-accent-hover:#6cb6ff99;--color-card-text:#e2e9fb;--color-card-text-muted:#a7b3d6;--color-card-accent:#7fc0ff;--color-card-border:#2a4a7a;--color-card-tag-bg:#22406e;--radius-card:8px;--transition-card:background-color .3s ease, box-shadow .3s ease;--padding-section:5rem 2rem;--padding-card:1.5rem}[data-theme=light]{--color-bg:#dce7f5;--color-bg-card:#10233f;--color-bg-card-hover:#17335f;--color-bg-tag:#e4edf7;--color-bg-subtle:#eef4fb;--color-accent:#0b66c3;--color-accent-contrast:#eaf3fd;--color-text:#0f2440;--color-text-muted:#51648a;--color-border:#d6e2f0;--shadow-accent:#0b66c340;--shadow-accent-hover:#0b66c359;--color-card-text:#e6eefc;--color-card-text-muted:#b8c6e2;--color-card-accent:#7fc0ff;--color-card-border:#2a4a7a;--color-card-tag-bg:#1b3a63}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg);color:var(--color-text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{height:100vh;display:flex}@media (width<=768px){.container{flex-direction:column}}.main-content{flex:1;margin-left:280px;padding:2rem;overflow-y:auto}@media (width<=768px){.main-content{margin-left:0;padding:1rem}}.section{max-width:1100px;min-height:auto;margin-left:auto;margin-right:auto;padding:1.25rem 0;scroll-margin-top:10px}.project-container{background-color:var(--color-bg);color:var(--color-text)}.project-container h2{color:var(--color-accent);margin:0 0 1.5rem;font-size:2rem}.project-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;display:grid}.project-card{background-color:var(--color-bg-card);padding:var(--padding-card);border-radius:var(--radius-card);transition:var(--transition-card), opacity .3s ease, transform .3s ease;opacity:0;min-height:220px;transform:translateY(6px)}.project-card:hover{background-color:var(--color-bg-card-hover);box-shadow:0px 8px 15px var(--shadow-accent)}.project-card.visible{opacity:1;transform:none}.image-wrap{border-radius:var(--radius-card);border:3px solid var(--color-accent);background-color:var(--color-bg-subtle);width:100%;height:180px;margin-bottom:1rem;overflow:hidden;box-shadow:0 5px 10px #0000004d}.project-image{object-fit:cover;transform-origin:50%;opacity:0;width:100%;height:100%;transition:opacity .3s,transform .3s;display:block}.project-image.loaded{opacity:1;transform:none}.project-content h3{color:var(--color-card-accent);margin-bottom:.5rem}.project-content p{color:var(--color-card-text-muted);margin-bottom:1rem}.technologies{flex-wrap:wrap;gap:.5rem;margin-top:1rem;margin-bottom:2rem;display:flex}.tech-box{background-color:var(--color-card-tag-bg);color:var(--color-card-text-muted);border:1px solid var(--color-card-border);transition:var(--transition-card);border-radius:12px;padding:.3rem .6rem;font-size:.9rem}.tech-box:hover{background-color:var(--color-accent);color:var(--color-bg);box-shadow:0px 4px 10px var(--shadow-accent)}.project-links{flex-direction:column;gap:8px;margin-top:8px;display:flex}.project-link{color:var(--color-card-text-muted);text-decoration:none;display:inline-block}.project-link:hover{color:var(--color-card-accent)}@media (width<=768px){.project-grid{grid-template-columns:1fr}}.doc-links-row{border-top:1px solid var(--color-card-border);flex-wrap:wrap;gap:.4rem 1rem;margin:.6rem 0 0;padding:.6rem 0 0;list-style:none;display:flex}.doc-links-row a{color:var(--color-card-text-muted);font-size:.8rem;text-decoration:none}.doc-links-row a:hover{color:var(--color-card-accent);text-decoration:underline}.portfolio-meta{border-top:1px solid var(--color-border);text-align:center;color:var(--color-text-muted);margin-top:2rem;padding-top:1rem;font-size:.85rem}.portfolio-meta a{color:var(--color-text-muted);text-decoration:underline}.portfolio-meta a:hover{color:var(--color-accent)}.about-container{text-align:left;background-color:var(--color-bg);color:var(--color-text)}.about-header{text-align:center;flex-direction:column;align-items:center;gap:1rem;display:flex}.about-header img{object-fit:cover;border:4px solid var(--color-accent);border-radius:50%;width:280px;height:280px;transition:transform .3s,box-shadow .3s,filter .3s;box-shadow:0 8px 15px #0000004d}[data-theme=light] .about-header img{filter:grayscale()}.about-header img:hover{box-shadow:0px 12px 20px var(--shadow-accent-hover);filter:grayscale(0);transform:scale(1.03)}.about-header h2{color:var(--color-accent);margin:0 0 1.5rem;font-size:2rem}.about-blocks{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.about-block{background-color:var(--color-bg-card);border:1px solid var(--color-card-border);border-radius:var(--radius-card);padding:var(--padding-card);transition:var(--transition-card)}.about-block:hover{background-color:var(--color-bg-card-hover)}.about-block h3{color:var(--color-card-accent);margin:0 0 .6rem;font-size:1.05rem}.about-block p{color:var(--color-card-text-muted);margin:0;font-size:.95rem;line-height:1.55}.career-strip{border-top:1px solid var(--color-border);grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2rem;padding-top:1.5rem;display:grid}.career-card h3{color:var(--color-card-text);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem;font-size:.95rem}.career-card ul{margin:0;padding:0;list-style:none}.career-card li{color:var(--color-card-text-muted);margin-bottom:.5rem;font-size:.85rem;line-height:1.5}@media (width<=900px){.about-blocks,.career-strip{grid-template-columns:1fr}}@media (width<=768px){.about-header img{width:220px;height:220px}}.hero{text-align:center;flex-direction:column;align-items:center;padding:3rem 0 1rem;display:flex}.hero-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent);align-items:center;gap:.6rem;font-family:Courier New,monospace;font-size:.82rem;display:flex}.hero-eyebrow:before{content:"";background:var(--color-accent);border-radius:2px;width:26px;height:2px}.hero-headline{letter-spacing:-.02em;color:var(--color-text);margin:.9rem 0;font-size:clamp(1.6rem,3.2vw,2.4rem);line-height:1.2}.hero-highlight{color:var(--color-accent)}.hero-lead{color:var(--color-text-muted);max-width:46ch;margin-bottom:1.6rem;margin-left:auto;margin-right:auto;font-size:1.1rem}.hero-cta{flex-wrap:wrap;justify-content:center;gap:.8rem;display:flex}.hero-btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:10px;align-items:center;padding:.7rem 1.2rem;font-size:.92rem;font-weight:600;text-decoration:none;transition:opacity .2s,border-color .2s,color .2s;display:inline-flex}.hero-btn.ghost{color:var(--color-text);border:1.5px solid var(--color-accent);background:0 0;transition:background-color .2s,color .2s}.hero-btn.ghost:hover,.hero-btn.ghost:focus-visible{background:var(--color-accent);color:var(--color-accent-contrast)}@media (width<=768px){.hero{padding:1.5rem 0 1rem}}.skills-container h2{color:var(--color-accent);margin:0 0 1.5rem;font-size:2rem}.skills-grid{grid-template-columns:1fr;gap:1rem;display:grid}.skills-card{background-color:var(--color-bg-card);border:1px solid var(--color-card-border);border-radius:var(--radius-card);padding:1.2rem}.skills-card h3{color:var(--color-card-accent);margin-bottom:.35rem;font-size:1rem}.skills-desc{color:var(--color-card-text-muted);margin:0 0 .7rem;font-size:.83rem}.skills-chips{flex-wrap:wrap;gap:.4rem;display:flex}.skills-chip{color:var(--color-card-text-muted);background:var(--color-card-tag-bg);border:1px solid var(--color-card-border);transition:var(--transition-card);border-radius:7px;padding:.28rem .55rem;font-size:.9rem}.skills-chip:hover{background-color:var(--color-card-accent);color:var(--color-bg-card);box-shadow:0px 4px 10px var(--shadow-accent)}.contact-container{max-width:700px;margin-left:auto;margin-right:auto}.contact-container h2{color:var(--color-accent);text-align:center;margin:0 0 1.5rem;font-size:2rem}.contact-lead{color:var(--color-text-muted);text-align:center;max-width:52ch;margin-bottom:1.5rem;margin-left:auto;margin-right:auto}.contact-form{gap:1rem;max-width:560px;margin-left:auto;margin-right:auto;display:grid}.contact-botcheck{width:1px;height:1px;position:absolute;left:-9999px}.contact-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.contact-field label{color:var(--color-text-muted);margin-bottom:.35rem;font-size:.8rem;display:block}.contact-field input,.contact-field textarea{background:var(--color-bg-card);border:1px solid var(--color-border);width:100%;color:var(--color-card-text);caret-color:var(--color-card-text);font:inherit;box-sizing:border-box;border-radius:10px;padding:.7rem .8rem;font-size:.92rem;transition:border-color .2s}.contact-field input::placeholder,.contact-field textarea::placeholder{color:var(--color-card-text-muted)}.contact-field input:focus,.contact-field textarea:focus{border-color:var(--color-accent);outline:none}.contact-consent{color:var(--color-text-muted);cursor:pointer;align-items:flex-start;gap:.6rem;font-size:.8rem;display:flex}.contact-consent input{margin-top:.2rem}.contact-actions{justify-content:center;gap:1rem;margin-top:1rem;display:flex}.contact-submit,.contact-clear{font:inherit;color:var(--color-text);border:1.5px solid var(--color-accent);cursor:pointer;background:0 0;border-radius:10px;padding:.7rem 1.4rem;font-size:.92rem;font-weight:600;transition:background-color .2s,color .2s}.contact-submit:hover:not(:disabled),.contact-submit:focus-visible:not(:disabled),.contact-clear:hover,.contact-clear:focus-visible{background:var(--color-accent);color:var(--color-accent-contrast)}.contact-submit:disabled{opacity:.45;cursor:not-allowed}.contact-status{text-align:center;margin:0;font-size:.9rem}.contact-status.success{color:var(--color-accent)}.contact-status.error{color:#ff6b6b}.contact-socials{justify-content:center;gap:1.5rem;margin-top:1.5rem;display:flex}.contact-socials a{color:var(--color-text-muted);font-size:2rem;transition:color .2s,transform .2s}.contact-socials a:hover{color:var(--color-accent);transform:translateY(-3px)}@media (width<=768px){.contact-row{grid-template-columns:1fr}}.legal-heading{text-align:center}.legal-content{max-width:780px;color:var(--color-text);line-height:1.6}
