:root{--bg:#1d2021;--surface:#282828;--surface-up:#3c3836;--text:#ebdbb2;--heading:#fbf1c7;--muted:#928374;--yellow:#fabd2f;--aqua:#8ec07c;--orange:#fe8019;--border:#504945;--bd-red:#f42a41;--bd-green:#006a4e;--font-display:"Fraunces", serif;--font-body:"Inter", sans-serif;--font-mono:"Fira Code", monospace;--font-bangla:"Noto Sans Bengali", sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background-color:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.navbar{z-index:100;background-color:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 2.5rem;display:flex;position:fixed;top:0;left:0;right:0}.navbar-logo{font-family:var(--font-mono);color:var(--yellow);letter-spacing:.02em;font-size:.95rem}.navbar-links{gap:2rem;list-style:none;display:flex}.navbar-links a{font-family:var(--font-body);color:var(--muted);font-size:.9rem;transition:color .2s}.navbar-links a:hover{color:var(--text)}.footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:auto;padding:1.5rem 2.5rem;display:flex}.footer-watermark{font-family:var(--font-mono);color:var(--border);letter-spacing:.05em;-webkit-user-select:none;user-select:none;font-size:.75rem}.footer-copy{color:var(--muted);font-size:.75rem}.hero{align-items:center;min-height:100vh;padding:6rem 2.5rem 2.5rem;display:flex;position:relative;overflow:hidden}.hero:before{content:"";opacity:.04;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cpath d='M40 0 L80 40 L40 80 L0 40 Z' fill='none' stroke='%23fabd2f' stroke-width='0.5'/%3E%3Cpath d='M40 10 L70 40 L40 70 L10 40 Z' fill='none' stroke='%23fabd2f' stroke-width='0.5'/%3E%3Ccircle cx='40' cy='40' r='8' fill='none' stroke='%23fabd2f' stroke-width='0.5'/%3E%3Ccircle cx='0' cy='0' r='4' fill='none' stroke='%23fabd2f' stroke-width='0.5'/%3E%3Ccircle cx='80' cy='0' r='4' fill='none' stroke='%23fabd2f' stroke-width='0.5'/%3E%3Ccircle cx='0' cy='80' r='4' fill='none' stroke='%23fabd2f' stroke-width='0.5'/%3E%3Ccircle cx='80' cy='80' r='4' fill='none' stroke='%23fabd2f' stroke-width='0.5'/%3E%3C/svg%3E");background-repeat:repeat;background-size:80px 80px;position:absolute;inset:0}.hero-content{z-index:1;justify-content:space-between;align-items:center;gap:4rem;width:100%;max-width:1100px;margin:0 auto;display:flex;position:relative}.hero-text{flex-direction:column;gap:1.5rem;display:flex}.hero-name{font-family:var(--font-display);color:var(--heading);cursor:default;min-width:600px;font-size:clamp(2.5rem,6vw,5rem);font-weight:300;line-height:1.1}.hero-name-text{min-width:580px;display:inline-block}.cursor{color:var(--yellow);font-family:var(--font-mono);margin-left:2px;font-weight:400;animation:1s step-end infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hero-tagline{color:var(--muted);max-width:480px;font-size:1.05rem;line-height:1.7}.hero-cta{gap:1rem;margin-top:.5rem;display:flex}.btn{font-family:var(--font-body);border:1px solid var(--border);cursor:pointer;padding:.65rem 1.5rem;font-size:.9rem;transition:all .2s}.btn-primary{background-color:var(--yellow);color:var(--bg);border-color:var(--yellow)}.btn-primary:hover{color:var(--yellow);background-color:#0000}.btn-secondary{color:var(--text);background-color:#0000}.btn-secondary:hover{border-color:var(--text)}.hero-image-placeholder{border:1px dashed var(--border);background-color:var(--surface);width:320px;height:400px;color:var(--muted);font-size:.85rem;font-family:var(--font-mono);flex-shrink:0;justify-content:center;align-items:center;display:flex}.about-snapshot{border-top:1px solid var(--border);padding:6rem 2.5rem}.about-content{flex-direction:column;gap:1.5rem;max-width:680px;margin:0 auto;display:flex}.section-label{font-family:var(--font-mono);color:var(--yellow);letter-spacing:.1em;text-transform:uppercase;font-size:.8rem}.about-body{color:var(--text);font-size:1.05rem;line-height:1.8}.about-link{font-family:var(--font-mono);color:var(--yellow);align-self:flex-start;font-size:.9rem;transition:opacity .2s}.about-link:hover{opacity:.7}.projects-snapshot{border-top:1px solid var(--border);padding:6rem 2.5rem}.projects-content{flex-direction:column;gap:2.5rem;max-width:1100px;margin:0 auto;display:flex}.projects-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;display:grid}.project-card{background-color:var(--surface);border:1px solid var(--border);flex-direction:column;gap:1rem;padding:1.75rem;transition:border-color .2s;display:flex}.project-card:hover{border-color:var(--yellow)}.project-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.project-title{font-family:var(--font-display);color:var(--heading);font-size:1.2rem;font-weight:400}.project-link{font-family:var(--font-mono);color:var(--yellow);white-space:nowrap;font-size:.8rem;transition:opacity .2s}.project-link:hover{opacity:.7}.project-tagline{color:var(--muted);flex:1;font-size:.9rem;line-height:1.6}.project-stack{flex-wrap:wrap;gap:.5rem;display:flex}.stack-tag{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--border);padding:.2rem .5rem;font-size:.75rem}.skills-snapshot{border-top:1px solid var(--border);padding:6rem 2.5rem}.skills-content{flex-direction:column;gap:2.5rem;max-width:1100px;margin:0 auto;display:flex}.skills-header{justify-content:space-between;align-items:center;display:flex}.cf-rating{font-family:var(--font-mono);color:var(--muted);font-size:.85rem}.cf-value{color:var(--yellow)}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}.skill-card{border:1px solid var(--border);background-color:var(--surface);cursor:default;min-height:160px;padding:1.5rem;transition:border-color .2s;position:relative;overflow:hidden}.skill-card--hovered{border-color:var(--yellow)}.skill-name{font-family:var(--font-mono);color:var(--heading);font-size:.95rem;transition:opacity .2s}.skill-card--hovered .skill-name{opacity:0}.skill-topics{opacity:0;flex-wrap:wrap;align-content:flex-start;gap:.4rem;padding:1rem;transition:opacity .2s;display:flex;position:absolute;inset:0;overflow-y:hidden}.skill-card--hovered .skill-topics{opacity:1;overflow-y:auto}.skill-topic{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--border);padding:.15rem .4rem;font-size:.7rem}.blog-teaser{border-top:1px solid var(--border);padding:6rem 2.5rem}.blog-content{flex-direction:column;gap:2.5rem;max-width:1100px;margin:0 auto;display:flex}.blog-posts{border:1px solid var(--border);flex-direction:column;gap:1px;display:flex}.blog-post-card{background-color:var(--surface);flex-direction:column;gap:.75rem;padding:1.5rem;transition:background-color .2s;display:flex}.blog-post-card:hover{background-color:var(--surface-up)}.blog-post-meta{align-items:center;gap:1rem;display:flex}.blog-post-tag{font-family:var(--font-mono);color:var(--aqua);border:1px solid var(--aqua);padding:.15rem .5rem;font-size:.75rem}.blog-post-date{font-family:var(--font-mono);color:var(--muted);font-size:.75rem}.blog-post-title{font-family:var(--font-display);color:var(--heading);font-size:1.1rem;font-weight:400}.contact{border-top:1px solid var(--border);padding:6rem 2.5rem}.contact-content{flex-direction:column;gap:2.5rem;max-width:1100px;margin:0 auto;display:flex}.contact-stamps{flex-wrap:wrap;gap:1rem;display:flex}.stamp{font-family:var(--font-mono);color:var(--text);border:1px solid var(--border);background-image:radial-gradient(circle, var(--bg) 2px, transparent 2px);box-shadow:0 0 0 1px var(--border);background-position:-4px -4px;background-repeat:repeat;background-size:8px 8px;background-clip:padding-box;border:none;padding:.6rem 1.2rem;font-size:.85rem;transition:border-color .2s,color .2s;position:relative}.stamp:hover{color:var(--yellow);box-shadow:0 0 0 1px var(--yellow)}
