html{scroll-behavior:smooth;scroll-snap-type:y mandatory}body{font-family:var(--font-body);background-color:var(--primary-bg);color:var(--text-light);line-height:1.7;display:flex;flex-direction:column;min-height:100vh}.snap-section{scroll-snap-align:start;scroll-snap-stop:always;display:flex;align-items:center}#portfolio.snap-section{display:block}.about-composition{display:flex;align-items:center;gap:64px;max-width:900px;margin:0 auto}.about-photo-frame{position:relative;flex:0 0 auto;padding:20px 20px 20px 0}.about-photo-frame::before{content:'';position:absolute;top:35px;left:35px;width:280px;height:300px;border:2px solid var(--primary-blue);border-radius:var(--radius-frame);z-index:0}.about-photo{position:relative;z-index:1;display:block;width:300px;height:300px;object-fit:cover;border-radius:var(--radius-card);box-shadow:0 16px 32px rgba(0,0,0,.4)}.about-eyebrow{position:absolute;top:5px;left:-14px;z-index:2;background:var(--primary-blue);color:#fff;font-family:var(--font-heading);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;padding:6px 14px;border-radius:var(--radius-badge);white-space:nowrap}.about-text{flex:1;min-width:0}.section-dots{position:fixed;right:24px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px;z-index:100}.section-dots .dot.active{background:var(--primary-blue)}footer{background-color:var(--nav-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.05);margin-top:auto;scroll-snap-align:end}@media (max-width:767.98px){.about-composition{flex-direction:column;align-items:center;text-align:center;gap:32px}.about-photo-frame{padding:20px}.about-photo-frame::before{width:220px;height:220px;top:30px;left:30px}.about-photo{width:220px;height:220px}.about-eyebrow{left:50%;transform:translateX(-50%)}.section-dots{top:auto;bottom:16px;right:50%;transform:translateX(50%);flex-direction:row}}.glow-text{color:#fff!important;font-family:var(--font-heading)!important;text-shadow:0 0 12px rgba(255,255,255,.45),0 0 24px rgba(255,255,255,.15)!important}.terminal-cursor::after{content:"_";display:inline-block;color:var(--primary-blue);margin-left:4px;text-shadow:0 0 8px var(--primary-blue),0 0 16px var(--primary-blue);animation:1.2s ease-in-out infinite cursor-fade}@keyframes cursor-fade{0%,100%{opacity:1}50%{opacity:.2}}.about-eyebrow::after{content:"_";color:#fff;opacity:.8;animation:.6s ease-in-out infinite cursor-fade}.about-quote{font-family:var(--font-heading);font-style:italic;border-left:3px solid var(--primary-blue);padding-left:12px;color:var(--text-light)}.duality-floating-toggle{position:fixed;bottom:24px;left:24px;z-index:9999;display:inline-flex;align-items:center;height:42px;padding:0 12px;max-width:42px;overflow:hidden;white-space:nowrap;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 6px 20px rgba(0,0,0,.4)}.toggle-icon-wrap{display:flex;align-items:center;gap:4px;font-size:.85rem;flex-shrink:0}.portal-arrow{font-size:.3rem;opacity:.8;transition:transform .3s}.duality-floating-toggle .portal-text{font-family:monospace;letter-spacing:.5px;opacity:0;margin-left:0;transition:opacity .3s,margin-left .3s;font-size:.75rem;font-weight:600;letter-spacing:1px}@media (hover:hover){.duality-floating-toggle:hover{max-width:240px;padding:0 16px 0 12px;background:#93c5fd;color:#0b1120;border-color:#93c5fd;box-shadow:0 8px 25px rgba(147,197,253,.4)}.duality-floating-toggle:hover .portal-text{opacity:1;margin-left:8px}.duality-floating-toggle:hover .portal-arrow{transform:translate(2px,-2px)}}@media (max-width:576px){.duality-floating-toggle{bottom:16px;left:16px;height:38px;max-width:38px;padding:0 10px}}@media (min-width:992px){.snap-section.compact-section .container{max-width:60vw;margin-left:auto;margin-right:auto}.snap-section.compact-section .carousel,.snap-section.compact-section img{object-fit:contain}}.snap-section{scroll-snap-align:start;min-height:100vh;display:flex;align-items:center}.section-padding{padding:4rem 0}.duality-floating-toggle{background:rgba(15,23,42,.85);border:1px solid rgba(255,255,255,.15);border-radius:30px;color:#fff;text-decoration:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:.25s}.duality-floating-toggle:hover{color:#fff;border-color:var(--bs-primary,#0d6efd);transform:translateX(-3px);box-shadow:0 4px 12px rgba(0,0,0,.3)}.section-dots .dot{width:10px;height:10px;background:rgba(255,255,255,.25);transition:.25s}.section-dots .dot.active,.section-dots .dot:hover{background:var(--bs-primary,#0d6efd);transform:scale(1.3)}.project-eyebrow{letter-spacing:2px;color:var(--bs-primary,#0d6efd)}.company-tech-stack{display:flex;flex-wrap:wrap;gap:8px;margin-top:1rem}.company-tech-stack span{border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#e2e8f0}.education-card,.skill-tile{background:rgba(15,23,42,.6);border:1px solid rgba(255,255,255,.08);border-radius:8px;transition:border-color .2s}.education-card:hover{border-color:rgba(255,255,255,.2)}.institution-name,.role-badge{font-size:.75rem;font-weight:700;letter-spacing:1px;color:var(--bs-primary,#0d6efd)}.carousel-control-next,.carousel-control-prev{width:8%;opacity:.85;transition:.25s ease-in-out}.carousel-control-next-icon,.carousel-control-prev-icon{width:2.5rem;height:2.5rem;background-color:rgba(15,23,42,.75);border:1px solid rgba(255,255,255,.15);border-radius:50%;background-size:45%;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:transform .2s,border-color .2s,background-color .2s}.carousel-control-next:hover .carousel-control-next-icon,.carousel-control-prev:hover .carousel-control-prev-icon{border-color:var(--bs-primary,#0d6efd);transform:scale(1.1);background-color:rgba(15,23,42,.95)}.carousel-indicators{margin-bottom:.75rem}.carousel-indicators [data-bs-target]{height:4px;border-radius:2px;background-color:rgba(255,255,255,.4);border:none;transition:.3s}.carousel-indicators .active{background-color:var(--bs-primary,#0d6efd);width:24px}.pure-project-card{display:block;text-decoration:none!important;color:inherit}.project-frame{position:relative;padding:12px 12px 12px 0;overflow:visible!important}.project-frame::before{content:'';position:absolute;top:24px;left:20px;right:0;bottom:0;border:2px solid var(--primary-blue);border-radius:var(--radius-frame);z-index:0;transition:transform .25s}.pure-project-card:hover .project-frame::before{transform:translate(4px,4px)}.project-eyebrow{position:absolute;top:0;left:-8px;z-index:10;background:var(--primary-blue);color:#fff;font-family:var(--font-heading);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;padding:6px 14px;border-radius:var(--radius-badge);box-shadow:0 4px 12px rgba(0,0,0,.4);white-space:nowrap}.project-img-wrapper{position:relative;z-index:1;width:100%;overflow:hidden;border-radius:var(--radius-card);box-shadow:0 10px 25px rgba(0,0,0,.5)}.project-img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.pure-project-card:hover .project-img{transform:scale(1.03)}.project-bar{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:10px 16px;background:rgba(15,23,42,.85);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center;transition:background .25s}.pure-project-card:hover .project-bar{background:rgba(15,23,42,.95)}.project-action{font-family:var(--font-heading);font-size:.75rem;font-weight:600;color:rgba(255,255,255,.8);letter-spacing:1.5px}.pure-project-card:hover .project-action{color:var(--primary-blue)}.project-arrow{color:var(--primary-blue);font-size:.9rem;transition:transform .2s}.pure-project-card:hover .project-arrow{transform:translateX(4px)}.project-eyebrow::after{content:"_";color:#fff;opacity:.8}.pure-project-card:hover .project-eyebrow::after{animation:.6s ease-in-out infinite cursor-fade}.skills-category{margin-bottom:2rem}.category-label{font-family:var(--font-heading);font-size:.85rem;color:var(--primary-blue);letter-spacing:1.5px;margin-bottom:12px}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:12px}.skill-tile{display:flex;align-items:center;gap:5px;padding:10px 15px;background:var(--secondary-bg);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-card);transition:border-color .2s,transform .2s}.skill-tile:hover{border-color:var(--primary-blue);transform:translateY(-2px)}.skill-icon{width:22px;max-width:22px;height:22px;font-size:30px;color:#fff;object-fit:contain;opacity:.8;transition:opacity .2s}.skill-tile:hover .skill-icon{opacity:1}.skill-name{font-family:var(--font-heading);font-size:.8rem;color:#fff;white-space:nowrap}.education-container,.timeline-container{background:var(--secondary-bg);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-card);padding:24px}.education-card{background:rgba(255,255,255,.02);border-left:2px solid var(--primary-blue);padding:16px 20px;border-radius:var(--radius-card);transition:background .2s}.education-card:hover{background:rgba(255,255,255,.035)}.education-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.05)}.education-title-wrap{display:flex;flex-direction:column}.institution-name{font-family:var(--font-heading);font-size:.95rem;color:#fff;font-weight:700;letter-spacing:.5px}.degree-title{font-size:.82rem;color:var(--primary-blue);margin-top:2px}.education-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.education-period{font-family:var(--font-heading);font-size:.72rem;color:var(--text-muted)}.badge-honors{font-family:var(--font-heading);font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;color:#f59e0b;background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.3);padding:2px 8px;border-radius:var(--radius-badge)}.badge-status{font-family:var(--font-heading);font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;color:#10b981;background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.3);padding:2px 8px;border-radius:var(--radius-badge)}.badge-active{font-family:var(--font-heading);font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;color:#60a5fa;background:rgba(96,165,250,.12);border:1px solid rgba(96,165,250,.3);padding:2px 8px;border-radius:var(--radius-badge)}.education-description{font-size:.82rem;color:rgba(255,255,255,.75);line-height:1.5;margin:0}.company-tech-stack,.education-tech-stack{display:flex;flex-wrap:wrap;gap:6px}.company-tech-stack span,.education-tech-stack span{font-family:var(--font-heading);font-size:.68rem;color:var(--primary-blue);background:rgba(59,130,246,.1);padding:2px 8px;border-radius:var(--radius-badge)}:root{--primary-bg:#0f172a;--secondary-bg:#1e293b;--primary-blue:#3b82f6;--text-light:#e2e8f0;--text-muted:#94a3b8;--nav-bg:rgba(15, 23, 42, 0.9);--radius-card:0px;--radius-frame:0px;--radius-badge:0px;--font-body:'Inter',sans-serif;--font-heading:'JetBrains Mono',monospace}.about-eyebrow{box-shadow:0 4px 12px rgba(59,130,246,.3)}.section-title{font-family:var(--font-heading);font-size:.85rem;color:var(--primary-blue);letter-spacing:1.5px}.timeline-axis{display:flex;justify-content:space-between;padding-left:240px;margin-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:8px;font-family:var(--font-heading);font-size:.75rem;color:var(--text-muted)}details.company-block{background:rgba(255,255,255,.02);border-left:2px solid var(--primary-blue);padding:12px 16px;border-radius:var(--radius-card);transition:background .2s}details.company-block[open]{background:rgba(255,255,255,.03)}summary.company-header{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;user-select:none}summary.company-header::-webkit-details-marker{display:none}.company-title-wrap{display:flex;justify-content:space-between;align-items:center;flex-grow:1;margin-right:16px}.company-name{font-family:var(--font-heading);font-size:.9rem;color:#fff;font-weight:700;letter-spacing:.5px}.company-total-time{font-family:var(--font-heading);font-size:.72rem;color:var(--primary-blue);opacity:.85}.toggle-icon{font-size:.8rem;color:var(--text-muted);transition:transform .2s}details[open] .toggle-icon{transform:rotate(180deg);color:var(--primary-blue)}.timeline-row{display:flex;align-items:center;margin-bottom:8px}.timeline-row:last-child{margin-bottom:0}.timeline-label{width:240px;min-width:240px;padding-right:16px}.role-name{font-size:.78rem;color:rgba(255,255,255,.8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-track{position:relative;flex-grow:1;height:22px;background:rgba(255,255,255,.03);border-radius:var(--radius-badge);overflow:hidden}.bar-fill{position:absolute;top:0;bottom:0;display:flex;align-items:center;padding-left:8px;transition:filter .2s;min-width:35px}.bar-fill:hover{filter:brightness(1.25)}.bar-text{font-family:var(--font-heading);font-size:.68rem;color:#fff;font-weight:700;white-space:nowrap}.bar-fill.blue-light{background:#60a5fa}.bar-fill.blue{background:#3b82f6}.bar-fill.blue-dark{background:#1d4ed8}.bar-fill.cyan{background:#06b6d4}.bar-fill.purple-light{background:#a78bfa}.bar-fill.purple{background:#8b5cf6}.bar-fill.purple-dark{background:#6d28d9}.company-details-extra{border-top:1px dashed rgba(255,255,255,.08)}.role-highlights{margin:0 0 12px;padding-left:18px;font-size:.8rem;color:rgba(255,255,255,.75)}.role-highlights li{margin-bottom:4px}@media (max-width:768px){.education-header{flex-direction:column;gap:8px}.education-meta{align-items:flex-start}.company-title-wrap,.timeline-row{flex-direction:column;align-items:flex-start}.timeline-label{width:100%;margin-bottom:4px}.timeline-axis{padding-left:0}.timeline-track{width:100%}}.role-summary-block{margin-bottom:12px}.role-badge{display:inline-block;font-family:var(--font-heading);font-size:.7rem;color:var(--primary-blue);letter-spacing:1px;margin-bottom:6px;font-weight:700}.company-details-extra .role-highlights{margin:0;padding-left:18px;font-size:.8rem;color:rgba(255,255,255,.8)}.company-details-extra .role-highlights li{margin-bottom:4px;line-height:1.45}.company-details-extra code{font-family:var(--font-heading);font-size:.75rem;color:#60a5fa;background:rgba(255,255,255,.05);padding:1px 5px;border-radius:2px}.badge-opensource{font-family:var(--font-heading);font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;color:#06b6d4;background:rgba(6,182,212,.12);border:1px solid rgba(6,182,212,.3);padding:2px 8px;border-radius:var(--radius-badge)}.repo-link{color:#fff;text-decoration:none;transition:color .2s}.repo-link:hover{color:var(--primary-blue);text-decoration:underline}.repo-link i{font-size:.75rem;opacity:.7}.btn-github{display:inline-flex;align-items:center;font-family:var(--font-heading);font-size:.72rem;color:rgba(255,255,255,.9);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.15);padding:3px 10px;border-radius:var(--radius-badge);text-decoration:none;transition:.2s}.btn-github:hover{color:#fff;background:rgba(255,255,255,.12);border-color:var(--primary-blue)}