@media only screen and (min-width:0em){#hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden;background:var(--section-bg)}.hero-inner{position:relative;z-index:3;width:92%;max-width:43.75em;margin:auto;display:flex;flex-direction:column;align-items:flex-start;gap:1.75em;padding:6em 0 4.5em}.hero-text{flex:1;min-width:0;width:100%}.hero-tag{display:inline-block;background:rgba(91,134,182,.2);border:.0625em solid rgba(91,134,182,.4);color:#80aad3;font-size:.6875em;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.45454545em 1.45454545em;border-radius:100px;margin-bottom:1.81818182em}.hero-text h1{color:var(--section-text);font-size:min(12vw, 4.5em);font-weight:800;line-height:1.08;margin-bottom:.16666667em}.hero-text h1 span{color:var(--primary)}.hero-wave-group{display:inline-flex;align-items:center;gap:.5em;vertical-align:middle;line-height:2}.hero-avatar-inline{width:1.125em;height:1.125em;border-radius:50%;object-fit:contain;object-position:top center;flex-shrink:0;background-color:#fff;box-shadow:0 0 0 .125em #fff,0 0 0 .125em var(--primary);transition:transform .25s cubic-bezier(.34, 1.56, .64, 1),box-shadow .25s ease}.hero-avatar-inline:hover{transform:translateY(-2px) scale(1.12);box-shadow:0 0 0 .125em #fff,0 0 0 .25em var(--primary),0 0 8px 2px color-mix(in srgb,var(--primary) 40%,transparent)}.hero-bio{color:var(--section-muted);font-size:min(4vw, 1.15em);max-width:42em;margin-bottom:1.77777778em;line-height:1.7}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1em;margin-bottom:2em}.button-solid{display:inline-flex;align-items:center;gap:.57142857em}.button-solid svg{width:1.14285714em;height:1.14285714em;flex-shrink:0}.hero-social{display:flex;gap:.625em}#hero-email,.social-link{display:flex;align-items:center;justify-content:center;width:2.625em;height:2.625em;background:rgba(91,134,182,.08);border:.0625em solid rgba(91,134,182,.2);border-radius:.5em;color:var(--primary);transition:background .2s,border-color .2s,color .2s}#hero-email svg,.social-link svg{width:1.0625em;height:1.0625em;fill:currentColor}#hero-email:hover,.social-link:hover{background:var(--primary);border-color:var(--primary);color:#fff}.scroll-hint{display:flex;align-items:center;gap:.625em;color:var(--section-muted);font-size:.6875em;letter-spacing:.05em}.scroll-dot{width:5px;height:5px;background:var(--primary);border-radius:50%;flex-shrink:0;animation:pulse 2.2s infinite}@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(1.5)}}.badge-wrapper{position:relative;flex:0 0 auto;display:none;flex-direction:column;align-items:center}}body.dark-mode .hero-avatar-inline{box-shadow:0 0 0 .125em var(--dark),0 0 0 .25em var(--primary)}@media only screen and (min-width:48em){.hero-inner{flex-direction:row;align-items:center;justify-content:space-between;gap:3.5em;padding-top:7em;padding-bottom:4.5em}.hero-text{width:auto}.badge-wrapper{display:flex}.hero-avatar-inline{display:none}}@media only screen and (min-width:64em){.hero-inner{gap:4.5em}}@media only screen and (min-width:0em){#lanyard-svg{position:absolute;top:0;left:0;pointer-events:none;z-index:3;overflow:visible}#lanyard-svg .lanyard-string{stroke:#888;stroke-width:2.5;fill:none;stroke-linecap:round;opacity:.7}#lanyard-svg .lanyard-hook{fill:none;stroke:transparent;stroke-width:0}.badge-wrapper{cursor:grab}.badge-wrapper:active{cursor:grabbing}.badge-clip{width:3em;height:.875em;background:#d0ccc8;border-radius:.1875em .1875em 0 0;margin:0 auto;position:relative;display:flex;align-items:center;justify-content:center;z-index:3;margin-bottom:-.0625em}.badge-clip:before{content:'';width:.5em;height:.5em;border-radius:50%;border:.09375em solid #999;background:#e8e6e4;display:block}.badge-clip:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:.1875em;background:#b8b4b0}.badge-card{position:relative;z-index:2;width:11.875em;background:#f8f7f5;border:.09375em solid #ddd;border-radius:.625em;box-shadow:0 .375em 1.5em rgba(0,0,0,.15),0 .125em .375em rgba(0,0,0,.08);overflow:hidden;transform:rotate(0);user-select:none;touch-action:none;transition:box-shadow .2s ease}.badge-card.dragging{box-shadow:0 1em 3em rgba(0,0,0,.22),0 .25em .75em rgba(0,0,0,.12)}.badge-top{background:#1a1a1a;padding:.625em .875em .5em;display:flex;align-items:center;justify-content:center}.badge-top .badge-logo{font-size:.8125em;font-weight:800;color:#fff;letter-spacing:.02em}.badge-top .badge-logo span{color:var(--primary)}.badge-top .badge-tag{font-size:.5625em;font-weight:600;color:rgba(255,255,255,.55);letter-spacing:.06em;text-transform:uppercase;background:rgba(255,255,255,.1);padding:.22222222em .88888889em;border-radius:100px}.badge-photo-wrap{position:relative;width:100%;height:12.5em;background:#e8e6e4;overflow:hidden;padding:.75em}.badge-photo-wrap:before{content:'';position:absolute;inset:0.75em;border:.09375em solid #ccc;z-index:2;pointer-events:none}.badge-avatar{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;position:relative;z-index:1}.badge-avatar-placeholder{width:100%;height:100%;background:#e8e6e4;display:flex;align-items:center;justify-content:center;font-size:3.25em}.badge-body{padding:.75em .875em .875em;text-align:center;background:#f8f7f5;border-top:.0625em solid #ddd}.badge-name{font-size:.9375em;font-weight:800;color:#1a1a1a;margin-bottom:.13333333em;line-height:1.2}.badge-title{font-size:.6875em;color:#555;font-weight:500;margin:0}.drag-hint{position:absolute;bottom:-1.625em;left:50%;transform:translateX(-50%);font-size:.625em;color:rgba(255,255,255,.35);letter-spacing:.06em;white-space:nowrap;pointer-events:none;transition:opacity .5s ease}.drag-hint.hidden{opacity:0}}@media only screen and (min-width:0em){#tabs-section{padding:5em 0;background:var(--section-bg)}.tabs-header{margin-bottom:2em}.tabs-header h2{font-size:min(8vw, 2.5em);font-weight:800;color:var(--section-text);margin-bottom:0}.tab-controls{display:flex;width:100%;background:rgba(91,134,182,.07);border:.0625em solid rgba(91,134,182,.18);border-radius:.625em;padding:.25em;margin:0 0 2em;gap:0}.tab-btn{flex:1;background:0 0;border:none;border-radius:.4375em;padding:.625em 0;font-size:.875em;font-weight:600;color:var(--section-muted);cursor:pointer;font-family:inherit;letter-spacing:.02em;transition:background .5s,color .5s;text-align:center}.tab-btn.active{background:var(--primary);color:#fff}.tab-panel{opacity:0;visibility:hidden;height:0;overflow:hidden}.tab-panel.active{opacity:1;visibility:visible;height:auto;overflow:visible}.timeline{position:relative;width:100%;border:.09375em solid rgba(91,134,182,.15);border-radius:.875em;overflow:hidden}.timeline-item{position:relative;padding:1.5em 1.5em 1.5em 4.75em;background:0 0;transition:background .2s;margin-bottom:0}.timeline-item:last-of-type{border-bottom:none}.timeline-item:hover{background:rgba(91,134,182,.04)}.timeline-item .company-logo{position:absolute;left:1.125em;top:1.5em;width:2.375em;height:2.375em;background:0 0;border-radius:.5em;display:flex;align-items:center;justify-content:center;overflow:hidden}.timeline-item .company-logo img{width:100%;height:100%;object-fit:contain;display:block}.timeline-item .company{font-size:.9375em;font-weight:700;color:var(--section-text);margin-bottom:.13333333em}.timeline-item .company a{color:var(--section-text);text-decoration:none}.timeline-item .company a:hover{color:var(--primary)}.timeline-item .role{font-size:.8125em;color:var(--section-muted);font-weight:500;margin-bottom:.15384615em}.timeline-item .date{font-size:.75em;color:var(--section-muted);font-weight:400;margin-bottom:1em;display:flex;align-items:center;gap:0}.timeline-item .date:before{display:none}.timeline-item ul{padding-left:0}.timeline-item ul li{font-size:.8125em;color:var(--section-muted);padding:.23076923em 0 .23076923em 1.23076923em;position:relative;line-height:1.6}.timeline-item ul li:before{content:'•';position:absolute;left:0;color:var(--primary);font-size:1em;top:.3em}}@media only screen and (min-width:64em){.timeline-item{padding-left:4.75em;padding-right:2em}}@media only screen and (min-width:0em){#featured-projects{padding:5em 0;background:var(--section-bg)}.section-header{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:1em;margin-bottom:2.5em}.section-header h2{font-size:min(8vw, 2.4em);font-weight:800;color:var(--section-text)}.section-header a{font-size:.875em;font-weight:600;color:var(--primary);display:flex;align-items:center;gap:.42857143em;transition:gap .2s}.section-header a:hover{gap:.71428571em}.projects-grid{display:grid;grid-template-columns:1fr;gap:1.25em}.project-card{background:#fff;border:.0625em solid rgba(91,134,182,.15);border-radius:.875em;overflow:hidden;transition:background .2s,border-color .2s,box-shadow .2s}.project-card:hover{border-color:rgba(91,134,182,.35);box-shadow:0 .5em 1.75em rgba(91,134,182,.1)}.project-card .card-img-placeholder{width:100%;height:7.5em;background:rgba(91,134,182,.06);display:flex;align-items:center;justify-content:center;font-size:2em;padding:.625em 1em 0;overflow:hidden}.project-card .card-img-placeholder img{width:100%;height:100%;object-fit:contain;object-position:center top;display:block;border-radius:.25em}.project-card.has-video .card-img-placeholder{position:relative}.project-card.has-video .card-img-placeholder .play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;pointer-events:none;transition:transform .2s ease}.project-card.has-video .card-img-placeholder .play-icon svg{width:1.75em;height:1.75em;filter:drop-shadow(0 .125em .375em rgba(0, 0, 0, .4))}.project-card.has-video:hover .card-img-placeholder .play-icon{transform:translate(-50%,-50%) scale(1.12)}.project-card .card-body{padding:.875em 1em 1.125em}.project-card h3{font-size:.9375em;font-weight:700;color:var(--section-text);margin-bottom:.26666667em}.project-card p{font-size:.8125em;color:var(--section-muted);margin-bottom:.92307692em;line-height:1.6}.tags{display:flex;flex-wrap:wrap;gap:.3125em;margin-bottom:.75em}.tag{font-size:.6875em;font-weight:600;padding:.27272727em .90909091em;background:var(--primaryShade);color:var(--primaryDark);border-radius:100px}.card-links{display:flex;gap:.625em}.card-link{font-size:.6875em;font-weight:600;color:var(--primary);border:.13636364em solid rgba(91,134,182,.4);padding:.36363636em 1.09090909em;border-radius:.45454545em;transition:background .2s,color .2s,border-color .2s}.card-link:hover{background:var(--primary);color:#fff;border-color:var(--primary)}}@media only screen and (min-width:666px){.projects-grid{grid-template-columns:1fr 1fr}}@media only screen and (min-width:64em){.projects-grid{grid-template-columns:1fr 1fr}}@media only screen and (min-width:0em){#tech-stack{padding:4em 0 5em;background:var(--section-bg)}#tech-stack .tech-heading{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:1em;margin-bottom:2.5em}#tech-stack .tech-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1em}#tech-stack .tech-item{display:flex;flex-direction:column;align-items:center;gap:.5em;width:4.5em}#tech-stack .tech-item img{width:2.5em;height:2.5em;object-fit:contain;display:block;background:0 0}#tech-stack .tech-item span{font-size:.6875em;font-weight:600;color:var(--section-muted);text-align:center;letter-spacing:.02em;text-transform:uppercase;line-height:1.3}}@media only screen and (min-width:64em){#tech-stack .tech-item{width:5em}#tech-stack .tech-item img{width:2.75em;height:2.75em}}@media only screen and (min-width:0em){#project-modal{position:fixed;inset:0;z-index:50000;display:flex;align-items:flex-start;justify-content:center;padding:3em 1em;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);overflow-y:auto;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}#project-modal.open{opacity:1;visibility:visible}.modal-panel{position:relative;width:92%;max-width:43.75em;margin:auto;background:var(--section-bg);border-radius:1em;box-shadow:0 0 0 .09375em rgba(91,134,182,.3),0 2em 5em rgba(0,0,0,.4);overflow:hidden}.modal-img{width:100%;height:auto;background:rgba(91,134,182,.06);display:flex;align-items:center;justify-content:center;font-size:3.5em;padding:.75em .75em;overflow:hidden}.modal-img img{max-width:100%;width:auto;height:auto;object-fit:cover;display:block;border-radius:.25em}.modal-body{padding:1.75em 1.75em 2em}.modal-body h2{font-size:1.25em;font-weight:800;color:var(--section-text);margin-bottom:.4em}.modal-body .modal-desc{font-size:.9375em;color:var(--section-muted);line-height:1.7;margin-bottom:.8em}.modal-body .modal-detail{font-size:.875em;color:var(--section-muted);line-height:1.75;margin-bottom:1.42857143em}.modal-body .modal-tags{display:flex;flex-wrap:wrap;gap:.375em;margin-bottom:1.25em}.modal-body .modal-links-heading{font-size:.625em;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--section-muted);margin-bottom:1em;opacity:.7}.modal-body .modal-links{display:flex;gap:.625em;flex-wrap:wrap}.modal-close{position:absolute;top:.75em;right:.75em;width:1.875em;height:1.875em;background:rgba(0,0,0,.4);border:none;border-radius:50%;color:#fff;font-size:1em;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;z-index:2}.modal-close:hover{background:rgba(0,0,0,.7)}.video-facade{position:relative;cursor:pointer;display:block;width:100%;line-height:0}.video-facade img{width:100%;height:auto;max-height:25em;object-fit:contain;display:block;border-radius:.25em}.video-facade .play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;transition:transform .15s ease}.video-facade:hover .play-btn{transform:translate(-50%,-50%) scale(1.12)}.video-facade:focus-visible{outline:.125em solid var(--primary);outline-offset:0.125em}#modal-img video{width:auto;max-width:100%;max-height:31.25em;display:block;margin:0 auto;border-radius:.25em}}