:root{--bg:#0f131c;--surface:#0f131c;--surface-lowest:#0a0e16;--surface-low:#181c24;--surface-container:#1c2028;--surface-high:#262a33;--surface-highest:#31353e;--surface-bright:#353942;--primary:#c0c1ff;--primary-container:#8083ff;--on-primary-container:#0d0096;--primary-fixed-dim:#c0c1ff;--secondary:#d0bcff;--secondary-container:#571bc1;--on-secondary-container:#c4abff;--secondary-fixed:#e9ddff;--tertiary:#4cd7f6;--tertiary-container:#009eb9;--on-surface:#dfe2ee;--on-surface-variant:#c7c4d7;--outline:#908fa0;--outline-variant:#464554;--accent-lime:#bef264;--accent-dark:#0f131c;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-heading:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--font-sans);background-color:var(--bg);color:var(--on-surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--surface-lowest)}::-webkit-scrollbar-thumb{background:var(--surface-highest);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--outline-variant)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.02em;font-weight:700}.section-container{max-width:1200px;margin:0 auto;padding:0 1.5rem;position:relative}.section-header-center{text-align:center;flex-direction:column;align-items:center;gap:.75rem;margin-bottom:3.5rem;display:flex}.section-title{color:var(--on-surface);letter-spacing:-.025em;text-transform:uppercase;font-size:clamp(2rem,4vw,2.75rem);font-weight:800}.section-subtitle{color:var(--on-surface-variant);max-width:600px;font-size:1.05rem;line-height:1.6}.section-divider-bar{background:linear-gradient(to right, var(--secondary-container), var(--primary-container));border-radius:9999px;width:3rem;height:4px;margin-top:.25rem}.badge-pill-primary{color:var(--primary);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.05em;background:#c0c1ff1a;border-radius:9999px;align-items:center;gap:.4rem;padding:.3rem .85rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-pill-secondary{color:var(--secondary);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.05em;background:#571bc14d;border-radius:9999px;align-items:center;gap:.4rem;padding:.3rem .85rem;font-size:.75rem;font-weight:600;display:inline-flex}.btn-stitch-primary{background:linear-gradient(to right, var(--secondary-container), var(--primary-container));color:var(--on-surface);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;border:none;border-radius:9999px;align-items:center;gap:.65rem;padding:.85rem 2rem;font-size:.8rem;font-weight:700;text-decoration:none;transition:transform .25s,box-shadow .25s,opacity .25s;display:inline-flex;box-shadow:0 10px 25px -5px #8083ff4d}.btn-stitch-primary:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 14px 30px -5px #8083ff66}.btn-stitch-secondary{color:var(--on-surface);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.06em;-webkit-backdrop-filter:blur(12px);background:#262a3380;border:1px solid #46455466;border-radius:9999px;align-items:center;gap:.6rem;padding:.85rem 1.85rem;font-size:.8rem;font-weight:700;text-decoration:none;transition:background .25s,transform .25s;display:inline-flex}.btn-stitch-secondary:hover{background:var(--surface-high);transform:translateY(-2px)}.stitch-header{z-index:100;pointer-events:none;justify-content:center;align-items:center;padding:1rem 1rem 0;display:flex;position:fixed;top:0;left:0;right:0}.stitch-navbar{pointer-events:auto;-webkit-backdrop-filter:blur(16px);background:#181c24b8;border:1px solid #46455459;border-radius:9999px;justify-content:space-between;align-items:center;width:100%;max-width:1200px;height:4rem;padding:0 1rem 0 1.5rem;transition:all .3s;display:flex;box-shadow:0 8px 32px -4px #00000080}.navbar-spacer{width:7rem;display:none}@media (width>=768px){.navbar-spacer{display:block}}.navbar-links{justify-content:center;align-items:center;gap:.25rem;margin:0 auto;display:flex}.nav-link{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.05em;color:var(--on-surface-variant);border-radius:9999px;padding:.5rem 1rem;font-size:.75rem;font-weight:600;text-decoration:none;transition:color .2s,background .2s}.nav-link:hover{color:var(--on-surface);background:#ffffff0d}.navbar-action{justify-content:flex-end;align-items:center;min-width:7rem;display:flex}.nav-contact-btn{background:var(--surface-high);color:var(--on-surface);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.06em;border:1px solid #4645544d;border-radius:9999px;align-items:center;gap:.65rem;padding:.35rem .4rem .35rem 1.1rem;font-size:.75rem;font-weight:700;text-decoration:none;transition:background .25s,transform .2s;display:inline-flex}.nav-contact-btn:hover{background:var(--surface-bright)}.nav-contact-icon{background:var(--accent-lime);width:1.75rem;height:1.75rem;color:var(--accent-dark);border-radius:50%;justify-content:center;align-items:center;transition:transform .25s;display:flex}.nav-contact-icon span{font-size:1rem;font-weight:800}.nav-contact-btn:hover .nav-contact-icon{transform:scale(1.08)}.stitch-hero{background:var(--bg);width:100%;padding-top:7rem;padding-bottom:5rem;position:relative;overflow:hidden}.hero-glow-blob-1{filter:blur(140px);pointer-events:none;background:#571bc138;border-radius:50%;width:580px;height:580px;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.hero-glow-blob-2{filter:blur(120px);pointer-events:none;background:#009eb926;border-radius:50%;width:400px;height:400px;position:absolute;top:-5%;right:8%}.hero-container{z-index:10;max-width:1200px;margin:0 auto;padding:0 1.5rem;position:relative}.hero-intro{text-align:center;flex-direction:column;align-items:center;gap:1.25rem;max-width:800px;margin:0 auto 3.5rem;display:flex}.hero-badge{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--primary);background:#262a3399;border:1px solid #46455466;border-radius:9999px;align-items:center;gap:.5rem;padding:.35rem 1rem;display:inline-flex}.hero-badge-text{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--primary-fixed-dim);font-size:.75rem;font-weight:700}.hero-title{letter-spacing:-.03em;background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:clamp(2.75rem,6vw,4.25rem);font-weight:800;line-height:1.1}.hero-tagline{color:var(--on-surface-variant);max-width:650px;font-size:clamp(1rem,2vw,1.15rem);line-height:1.6}.hero-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;padding-top:.5rem;display:flex}.hero-showcase{flex-direction:column;justify-content:center;align-items:center;max-width:960px;margin:1.5rem auto 0;display:flex;position:relative}@media (width>=1024px){.hero-showcase{flex-direction:row}}.hero-portrait-wrapper{z-index:10;justify-content:center;align-items:center;width:280px;display:flex;position:relative}@media (width>=640px){.hero-portrait-wrapper{width:340px}}.portrait-ambient-glow{background:linear-gradient(to top right, var(--secondary-container), var(--primary-container));filter:blur(28px);opacity:.45;pointer-events:none;border-radius:50%;position:absolute;inset:-15px}.portrait-circle{aspect-ratio:1;background:linear-gradient(to bottom, #c0c1ff59, var(--surface-container), var(--surface-lowest));border-radius:50%;justify-content:center;align-items:center;width:100%;padding:8px;display:flex;position:relative;overflow:hidden;box-shadow:0 25px 50px -12px #000000b3}.portrait-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.floating-card{-webkit-backdrop-filter:blur(20px);z-index:20;background:#1c2028d9;border:1px solid #46455466;border-radius:1.25rem;width:100%;max-width:320px;padding:1.5rem;box-shadow:0 20px 35px -10px #0009}@media (width>=1024px){.floating-card-left{margin-bottom:0;margin-right:-3rem}.floating-card-right{margin-top:0;margin-left:-3rem}}@media (width<=1023px){.floating-card-left{margin-bottom:1.5rem}.floating-card-right{margin-top:1.5rem}}.floating-card-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.card-label-primary{text-transform:uppercase;letter-spacing:.05em;color:var(--primary);font-size:.75rem;font-weight:700}.card-label-secondary{text-transform:uppercase;letter-spacing:.05em;color:var(--secondary);font-size:.75rem;font-weight:700}.card-badge-tertiary{font-family:var(--font-mono);color:var(--tertiary);background:#4cd7f61a;border-radius:4px;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.rating-score{align-items:baseline;gap:.4rem;margin-bottom:.5rem;display:flex}.rating-num{font-family:var(--font-heading);color:var(--on-surface);font-size:2rem;font-weight:800}.rating-max{color:var(--on-surface-variant);font-size:.85rem}.rating-stars{color:#fbbf24;align-items:center;gap:.15rem;margin-bottom:1rem;display:flex}.star-icon{font-variation-settings:"FILL" 1;font-size:1.1rem}.rating-stats{border-top:1px solid #4645544d;flex-direction:column;gap:.4rem;padding-top:.85rem;display:flex}.stat-item{color:var(--on-surface);align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;display:flex}.stat-item span:first-child{font-size:1.05rem}.meter-group{margin-top:.85rem}.meter-header{color:var(--on-surface);justify-content:space-between;margin-bottom:.35rem;font-size:.85rem;font-weight:500;display:flex}.meter-track{background:var(--surface-highest);border-radius:9999px;width:100%;height:7px;overflow:hidden}.meter-fill{border-radius:9999px;height:100%}.meter-fill-backend{background:linear-gradient(to right, var(--secondary), var(--primary))}.meter-fill-frontend{background:linear-gradient(to right, var(--primary), var(--tertiary))}.meter-fill-mobile{background:linear-gradient(to right, var(--tertiary), var(--secondary))}.stitch-about{background:var(--surface-lowest);width:100%;padding:5.5rem 0;position:relative}.about-grid{grid-template-columns:1fr;align-items:center;gap:3rem;display:grid}@media (width>=1024px){.about-grid{grid-template-columns:5fr 7fr}}.about-polaroids-col{flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;display:flex}@media (width>=640px) and (width<=1023px){.about-polaroids-col{flex-flow:wrap}}.polaroid-card{background:var(--surface-high);border:1px solid #46455466;border-radius:1rem;width:260px;padding:.75rem;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s;box-shadow:0 15px 30px -5px #00000080}.polaroid-card:hover{z-index:20;box-shadow:0 20px 40px -5px #000000b3;transform:rotate(0)scale(1.04)!important}@media (width>=1024px){.polaroid-card:nth-child(2),.polaroid-card:nth-child(3){margin-top:-1.5rem}}.polaroid-img-wrapper{background:var(--surface-lowest);border-radius:.65rem;width:100%;height:140px;overflow:hidden}.polaroid-img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.polaroid-card:hover .polaroid-img{transform:scale(1.05)}.polaroid-caption{font-family:var(--font-mono);color:var(--on-surface-variant);text-align:center;margin-top:.65rem;font-size:.75rem}.about-details-col{flex-direction:column;gap:1.75rem;display:flex}.about-bio-card{-webkit-backdrop-filter:blur(16px);background:#1c2028b3;border:1px solid #46455459;border-radius:1.25rem;flex-direction:column;gap:1.15rem;padding:2rem;display:flex;box-shadow:0 10px 25px -5px #0000004d}.about-bio-header{align-items:center;gap:1rem;display:flex}.about-icon-pill{color:var(--secondary);background:#571bc14d;border-radius:.75rem;justify-content:center;align-items:center;padding:.65rem;display:flex}.about-bio-title{color:var(--on-surface);font-size:1.25rem;font-weight:700}.about-bio-role{font-family:var(--font-mono);color:var(--tertiary);font-size:.8rem}.about-bio-text{color:var(--on-surface-variant);font-size:.95rem;line-height:1.65}.about-metrics-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}@media (width>=640px){.about-metrics-grid{grid-template-columns:repeat(4,1fr)}}.metric-box{background:var(--surface-high);text-align:center;border:1px solid #4645544d;border-radius:.85rem;padding:1.15rem 1rem}.metric-val{font-family:var(--font-heading);font-size:1.65rem;font-weight:800}.metric-lbl{color:var(--on-surface-variant);margin-top:.25rem;font-size:.78rem}.about-edu-card{background:#1c202880;border:1px solid #4645544d;border-radius:1rem;padding:1.5rem}.edu-card-header{align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.edu-list{flex-direction:column;gap:1rem;display:flex}.edu-item{border-left:2px solid var(--secondary);padding-left:.85rem}.edu-meta-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.edu-year-badge{font-family:var(--font-mono);color:var(--primary);background:#c0c1ff1a;border-radius:9999px;padding:.15rem .5rem;font-size:.72rem}.edu-sub{color:var(--on-surface-variant);margin-top:.2rem;font-size:.85rem}.stitch-skills{background:var(--bg);width:100%;padding:5.5rem 0;position:relative}.skills-highlight-tile{background:linear-gradient(to right, var(--surface-container), var(--surface-low));border:1px solid #46455459;border-radius:1.25rem;flex-direction:column;gap:1.5rem;margin-bottom:3rem;padding:2rem;display:flex;box-shadow:0 10px 30px -5px #0006}@media (width>=768px){.skills-highlight-tile{flex-direction:row;justify-content:space-between;align-items:center}}.highlight-content{max-width:650px}.highlight-header{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.highlight-title{color:var(--on-surface);font-size:1.25rem;font-weight:700}.highlight-desc{color:var(--on-surface-variant);font-size:.92rem;line-height:1.6}.highlight-tags{flex-direction:column;gap:.65rem;display:flex}.highlight-tag{background:var(--surface-highest);font-family:var(--font-mono);white-space:nowrap;border-radius:.65rem;padding:.5rem 1rem;font-size:.78rem;font-weight:500}.skills-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=768px){.skills-grid{grid-template-columns:repeat(3,1fr)}}.skill-cat-card{-webkit-backdrop-filter:blur(12px);background:#1c202899;border:1px solid #4645544d;border-radius:1.25rem;flex-direction:column;gap:1.25rem;padding:1.75rem;display:flex}.skill-cat-header{border-bottom:1px solid #46455440;align-items:center;gap:.65rem;padding-bottom:.85rem;display:flex}.skill-cat-title{color:var(--on-surface);font-size:1.15rem;font-weight:700}.skill-pills-wrap{flex-wrap:wrap;gap:.65rem;display:flex}.skill-pill{background:var(--surface-high);color:var(--on-surface);font-family:var(--font-mono);border:1px solid #0000;border-radius:9999px;align-items:center;gap:.45rem;padding:.4rem .95rem;font-size:.78rem;font-weight:500;transition:all .2s;display:inline-flex}.pill-dot{border-radius:50%;width:7px;height:7px}.dot-primary{background:var(--primary)}.dot-secondary{background:var(--secondary)}.dot-tertiary{background:var(--tertiary)}.pill-hover-primary:hover{background:var(--primary-container);color:var(--on-primary-container);transform:translateY(-1px)}.pill-hover-secondary:hover{background:var(--secondary-container);color:var(--on-secondary-container);transform:translateY(-1px)}.pill-hover-tertiary:hover{background:var(--tertiary-container);color:#002f38;transform:translateY(-1px)}.stitch-projects{background:var(--surface-lowest);width:100%;padding:5.5rem 0;position:relative}.projects-header-row{flex-direction:column;gap:1.5rem;margin-bottom:3rem;display:flex}@media (width>=768px){.projects-header-row{flex-direction:row;justify-content:space-between;align-items:flex-end}}.projects-title-block{flex-direction:column;gap:.5rem;display:flex}.filter-pill-container{background:var(--surface-high);border:1px solid #4645544d;border-radius:9999px;align-self:flex-start;align-items:center;gap:.4rem;padding:.35rem;display:flex}@media (width>=768px){.filter-pill-container{align-self:auto}}.filter-btn{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.05em;color:var(--on-surface-variant);cursor:pointer;background:0 0;border:none;border-radius:9999px;padding:.45rem 1.15rem;font-size:.75rem;font-weight:700;transition:all .25s}.filter-btn:hover{color:var(--on-surface)}.filter-btn-active{background:var(--primary-container);color:var(--on-primary-container)}.projects-grid{grid-template-columns:1fr;gap:2rem;display:grid}@media (width>=768px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.projects-grid{grid-template-columns:repeat(3,1fr)}}.project-card{background:#1c2028b3;border:1px solid #46455459;border-radius:1.25rem;flex-direction:column;transition:transform .3s,box-shadow .3s;display:flex;overflow:hidden;box-shadow:0 10px 25px -5px #0006}.project-card:hover{transform:translateY(-4px)scale(1.01);box-shadow:0 20px 40px -10px #000000b3}.project-card-thumb{background:var(--surface-high);width:100%;height:210px;position:relative;overflow:hidden}.project-img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.project-card:hover .project-img{transform:scale(1.04)}.project-category-tag{-webkit-backdrop-filter:blur(8px);font-family:var(--font-mono);color:var(--tertiary);background:#0a0e16d9;border:1px solid #4645544d;border-radius:9999px;padding:.25rem .65rem;font-size:.72rem;font-weight:500;position:absolute;top:.75rem;right:.75rem}.project-card-body{flex-direction:column;flex:1;justify-content:space-between;gap:1.25rem;padding:1.5rem;display:flex}.project-card-main{flex-direction:column;gap:.75rem;display:flex}.project-tech-badges{flex-wrap:wrap;gap:.4rem;display:flex}.project-tech-badge{background:var(--surface-highest);font-family:var(--font-mono);border-radius:9999px;padding:.2rem .65rem;font-size:.72rem;font-weight:500}.badge-tech-primary{color:var(--primary)}.badge-tech-secondary{color:var(--secondary)}.badge-tech-tertiary{color:var(--tertiary)}.project-card-title{color:var(--on-surface);font-size:1.15rem;font-weight:700;line-height:1.35}.project-card-desc{color:var(--on-surface-variant);font-size:.88rem;line-height:1.55}.project-card-actions{align-items:center;gap:.75rem;padding-top:.5rem;display:flex}.project-action-demo{background:var(--primary-container);color:var(--on-primary-container);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.05em;border-radius:9999px;flex:1;justify-content:center;align-items:center;gap:.45rem;padding:.65rem 1rem;font-size:.75rem;font-weight:700;text-decoration:none;transition:opacity .2s,transform .2s;display:inline-flex}.project-action-demo:hover{opacity:.9;transform:translateY(-1px)}.project-action-demo-disabled{background:var(--surface-high);color:var(--outline);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.05em;border-radius:9999px;flex:1;justify-content:center;align-items:center;padding:.65rem 1rem;font-size:.75rem;font-weight:600;display:inline-flex}.project-action-code{background:var(--surface-high);color:var(--on-surface);border-radius:9999px;justify-content:center;align-items:center;padding:.65rem;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.project-action-code:hover{background:var(--surface-bright);color:var(--primary)}.stitch-experience{background:var(--bg);width:100%;padding:5.5rem 0;position:relative}.timeline-container{flex-direction:column;gap:2.75rem;max-width:900px;margin:0 auto;padding-left:2rem;display:flex;position:relative}@media (width>=640px){.timeline-container{padding-left:3rem}}.timeline-line{background:linear-gradient(to bottom, var(--primary), var(--secondary), var(--surface-highest));border-radius:9999px;width:3px;position:absolute;top:1rem;bottom:1rem;left:.85rem}@media (width>=640px){.timeline-line{left:1.35rem}}.timeline-node-group{position:relative}.timeline-marker{background:var(--surface);z-index:10;border-radius:50%;width:1.15rem;height:1.15rem;position:absolute;top:1.25rem;left:-2rem;box-shadow:0 0 14px}@media (width>=640px){.timeline-marker{width:1.35rem;height:1.35rem;left:-3rem}}.marker-primary{border:4px solid var(--primary);color:var(--primary)}.marker-secondary{border:4px solid var(--secondary);color:var(--secondary)}.marker-tertiary{border:4px solid var(--tertiary);color:var(--tertiary)}.timeline-card{-webkit-backdrop-filter:blur(16px);background:#1c2028b3;border:1px solid #46455459;border-radius:1.25rem;flex-direction:column;gap:1.15rem;padding:1.75rem 2rem;display:flex;box-shadow:0 10px 25px -5px #0006}.timeline-card-header{flex-direction:column;gap:.75rem;display:flex}@media (width>=640px){.timeline-card-header{flex-direction:row;justify-content:space-between;align-items:center}}.timeline-role{color:var(--on-surface);font-size:1.2rem;font-weight:700}.timeline-org{color:var(--secondary);font-size:.92rem;font-weight:500}.timeline-header-actions{align-self:flex-start;align-items:center;gap:.65rem;display:flex}@media (width>=640px){.timeline-header-actions{align-self:auto}}.timeline-period-badge{color:var(--primary);font-family:var(--font-mono);background:#c0c1ff1a;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:500}.timeline-gallery-btn{color:var(--secondary-fixed);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:#571bc14d;border:none;border-radius:9999px;align-items:center;gap:.35rem;padding:.25rem .75rem;font-size:.72rem;font-weight:600;transition:background .2s;display:inline-flex}.timeline-gallery-btn:hover{background:#571bc180}.timeline-deliverables{border-top:1px solid #46455440;flex-direction:column;gap:.65rem;padding-top:.5rem;list-style:none;display:flex}.timeline-deliverable-item{color:var(--on-surface-variant);align-items:flex-start;gap:.6rem;font-size:.92rem;line-height:1.55;display:flex}.deliverable-icon{flex-shrink:0;margin-top:.15rem;font-size:1.15rem}.gallery-overlay{-webkit-backdrop-filter:blur(12px);z-index:200;background:#0a0e16d9;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.gallery-modal{background:var(--surface-container);border:1px solid #46455466;border-radius:1.5rem;width:100%;max-width:800px;max-height:85vh;padding:2rem;overflow-y:auto;box-shadow:0 25px 60px -15px #000c}.gallery-modal-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.gallery-title{color:var(--on-surface);margin-bottom:.35rem;font-size:1.35rem;font-weight:700}.gallery-close-btn{background:var(--surface-high);color:var(--on-surface);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-size:1.1rem;transition:background .2s;display:flex}.gallery-close-btn:hover{background:var(--surface-bright)}.gallery-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.gallery-grid-thumb{background:var(--surface-lowest);border-radius:.75rem;width:100%;height:180px;overflow:hidden}.gallery-grid-thumb img{object-fit:cover;width:100%;height:100%}.stitch-contact{background:var(--surface-lowest);width:100%;padding:5.5rem 0;position:relative}.contact-grid{grid-template-columns:1fr;align-items:flex-start;gap:3rem;display:grid}@media (width>=1024px){.contact-grid{grid-template-columns:5fr 7fr}}.contact-info-col{flex-direction:column;gap:1.25rem;display:flex}.contact-info-card{background:var(--surface-container);border:1px solid #4645544d;border-radius:1.25rem;align-items:center;gap:1rem;padding:1.5rem;display:flex}.contact-icon-box{border-radius:.85rem;justify-content:center;align-items:center;padding:.75rem;display:flex}.bg-primary-container{background:var(--primary-container)}.text-on-primary-container{color:var(--on-primary-container)}.bg-secondary-container{background:var(--secondary-container)}.text-on-secondary-container{color:var(--on-secondary-container)}.contact-label{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.05em;color:var(--on-surface-variant);margin-bottom:.2rem;font-size:.72rem;font-weight:700}.contact-value-link{font-family:var(--font-heading);color:var(--on-surface);word-break:break-all;font-size:1.05rem;font-weight:700;text-decoration:none;transition:color .2s}.contact-value-link:hover{color:var(--primary)}.contact-value{font-family:var(--font-heading);color:var(--on-surface);font-size:1.05rem;font-weight:700}.contact-beacon-card{background:#1c2028b3;border:1px solid #4645544d;border-radius:1.25rem;justify-content:space-between;align-items:center;padding:1.35rem 1.5rem;display:flex}.beacon-left{align-items:center;gap:.75rem;display:flex}.beacon-indicator{width:.75rem;height:.75rem;display:flex;position:relative}.beacon-ping{background:var(--tertiary);opacity:.75;border-radius:50%;animation:1.5s cubic-bezier(0,0,.2,1) infinite ping;position:absolute;inset:0}.beacon-dot{background:var(--tertiary);border-radius:50%;width:.75rem;height:.75rem;display:inline-flex;position:relative}@keyframes ping{75%,to{opacity:0;transform:scale(2.2)}}.beacon-text{font-family:var(--font-mono);color:var(--on-surface);font-size:.8rem;font-weight:600}.beacon-tag{font-family:var(--font-sans);text-transform:uppercase;color:var(--tertiary);font-size:.72rem;font-weight:700}.contact-social-card{background:var(--surface-container);border:1px solid #4645544d;border-radius:1.25rem;flex-direction:column;gap:.75rem;padding:1.5rem;display:flex}.social-links-row{align-items:center;gap:.75rem;display:flex}.social-icon-btn{background:var(--surface-high);color:var(--on-surface);border-radius:.85rem;justify-content:center;align-items:center;padding:.75rem;text-decoration:none;transition:all .25s;display:flex}.social-icon-btn:hover{background:var(--primary-container);color:var(--on-primary-container);transform:translateY(-2px)}.social-icon-btn-sm{background:var(--surface-high);color:var(--on-surface);border:1px solid #4645544d;border-radius:.65rem;justify-content:center;align-items:center;padding:.5rem;text-decoration:none;transition:all .25s;display:flex}.social-icon-btn-sm:hover{background:var(--primary-container);color:var(--on-primary-container)}.contact-form-col{width:100%}.contact-glass-form{-webkit-backdrop-filter:blur(20px);background:#1c2028cc;border:1px solid #46455466;border-radius:1.5rem;flex-direction:column;gap:1.5rem;padding:2.25rem;display:flex;box-shadow:0 20px 45px -10px #00000080}.form-alert-success{border:1px solid var(--tertiary);color:var(--tertiary);background:#4cd7f626;border-radius:.85rem;align-items:center;gap:.65rem;padding:1rem 1.25rem;font-size:.9rem;font-weight:500;display:flex}.form-row-2{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=640px){.form-row-2{grid-template-columns:1fr 1fr}}.form-field{flex-direction:column;gap:.5rem;display:flex}.form-field label{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.05em;color:var(--on-surface-variant);font-size:.75rem;font-weight:700}.form-field input,.form-field textarea{background:var(--surface-lowest);width:100%;color:var(--on-surface);font-family:var(--font-sans);border:1px solid #46455466;border-radius:.85rem;outline:none;padding:.85rem 1.15rem;font-size:.95rem;transition:border-color .25s,box-shadow .25s}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--outline)}.form-field input:focus,.form-field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px #c0c1ff40}.form-submit-btn{background:linear-gradient(to right, var(--secondary-container), var(--primary-container));color:var(--on-surface);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;border:none;border-radius:9999px;align-self:flex-start;align-items:center;gap:.6rem;padding:.95rem 2.25rem;font-size:.8rem;font-weight:700;transition:transform .25s,box-shadow .25s;display:inline-flex;box-shadow:0 10px 25px -5px #8083ff40}.form-submit-btn:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 14px 30px -5px #8083ff59}.stitch-footer{background:var(--surface-lowest);border-top:1px solid #4645544d;width:100%;padding:4.5rem 0 3rem;position:relative;overflow:hidden}.footer-glow-blob{filter:blur(130px);pointer-events:none;background:#571bc133;border-radius:50%;width:600px;height:250px;position:absolute;top:-6rem;left:50%;transform:translate(-50%)}.relative-z{z-index:10;position:relative}.footer-banner-row{flex-direction:column;gap:1.5rem;padding-bottom:3rem;display:flex}@media (width>=768px){.footer-banner-row{flex-direction:row;justify-content:space-between;align-items:center}}.footer-banner-left{flex-direction:column;gap:.75rem;display:flex}.footer-beacon-pill{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#262a33cc;border:1px solid #46455466;border-radius:9999px;align-self:flex-start;align-items:center;gap:.5rem;padding:.35rem .95rem;display:inline-flex}.footer-banner-title{letter-spacing:-.025em;background:linear-gradient(to right, var(--on-surface), var(--primary), var(--secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:clamp(2rem,4vw,2.75rem);font-weight:800}.footer-grid{border-top:1px solid #4645544d;grid-template-columns:1fr;gap:2.5rem;padding:3rem 0;display:grid}@media (width>=640px){.footer-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.footer-grid{grid-template-columns:1.3fr .9fr 1fr 1fr}}.footer-col{flex-direction:column;gap:1rem;display:flex}.footer-col-title{color:var(--on-surface);font-size:1.25rem;font-weight:700}.footer-desc{color:var(--on-surface-variant);font-size:.88rem;line-height:1.6}.footer-cv-btn{align-self:flex-start;margin-top:.25rem;padding:.55rem 1.25rem!important;font-size:.72rem!important}.footer-label{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.05em;color:var(--on-surface-variant);font-size:.75rem;font-weight:700}.footer-links{flex-direction:column;gap:.65rem;list-style:none;display:flex}.footer-links a{color:var(--on-surface-variant);align-items:center;gap:.35rem;font-size:.88rem;text-decoration:none;transition:color .2s;display:inline-flex}.footer-links a:hover{color:var(--primary)}.footer-connect-list{flex-direction:column;gap:.75rem;display:flex}.footer-email-link{color:var(--on-surface);word-break:break-all;font-size:.88rem;font-weight:500;text-decoration:none;transition:color .2s}.footer-email-link:hover{color:var(--primary)}.footer-location-row{color:var(--on-surface-variant);align-items:center;gap:.4rem;font-size:.88rem;display:flex}.footer-tech-wrap{flex-wrap:wrap;gap:.5rem;display:flex}.footer-tech-pill{font-family:var(--font-mono);background:#262a33cc;border:1px solid #4645544d;border-radius:9999px;padding:.3rem .75rem;font-size:.75rem;font-weight:500}.footer-bottom-row{border-top:1px solid #46455433;flex-direction:column;justify-content:space-between;align-items:center;gap:1rem;padding-top:2rem;display:flex}@media (width>=640px){.footer-bottom-row{flex-direction:row}}.footer-copyright{color:var(--on-surface-variant);font-size:.85rem}.footer-back-to-top{background:var(--surface-high);color:var(--on-surface);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.05em;border:1px solid #4645544d;border-radius:9999px;align-items:center;gap:.35rem;padding:.45rem 1.15rem;font-size:.75rem;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex}.footer-back-to-top:hover{background:var(--surface-bright);color:var(--primary)}.splash{z-index:999;background:var(--bg);justify-content:center;align-items:center;transition:opacity .6s cubic-bezier(.16,1,.3,1),visibility .6s;display:flex;position:fixed;inset:0}.splash-fade-out{opacity:0;visibility:hidden;pointer-events:none}.splash-greeting{font-family:var(--font-heading);letter-spacing:-.03em;background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:800;animation:.28s cubic-bezier(.16,1,.3,1) forwards splashPop}@keyframes splashPop{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.text-primary{color:var(--primary)!important}.text-secondary{color:var(--secondary)!important}.text-tertiary{color:var(--tertiary)!important}.text-primary-dim{color:var(--primary-fixed-dim)!important}.text-on-surface{color:var(--on-surface)!important}.font-mono{font-family:var(--font-mono)!important}.font-semibold{font-weight:600!important}.mt-2{margin-top:.5rem!important}.reveal{opacity:0;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);transform:translateY(24px)}.reveal-visible{opacity:1;transform:translateY(0)}
