:root{--bachelor-text: #1E8F3B;--bachelor-badge: rgba(77, 217, 114, .4);--master-text: #B54706;--master-badge: rgba(248, 174, 110, .5)}@media(prefers-color-scheme:dark){:root{--bachelor-text: #B5FFB2;--bachelor-badge: rgba(50, 180, 80, .45);--master-text: #ffb648;--master-badge: rgba(255, 140, 0, .35)}}html,body{height:auto;margin:0;padding:0;overflow-y:auto;overflow-x:hidden;overflow-x:clip;flex-direction:column;background-color:var(--background-color);transition:background-color .4s ease;will-change:background-color;scroll-behavior:initial}.projects-hero-container{display:flex;flex-direction:column;gap:0;min-height:75vh;height:auto;justify-content:center}.projects-intro{max-width:44rem;margin:1.5rem auto;padding:0 1.5rem;box-sizing:border-box;font-size:1.125rem;line-height:1.6;color:var(--text-color-secondary)}.projects-intro p{margin-bottom:1rem;font-weight:600;color:var(--text-color-secondary)}.projects-hero-title{font-size:clamp(3rem,8vw,4.5rem);font-weight:800;letter-spacing:-.02em;color:var(--text-color-primary);position:relative;display:inline-block;margin-top:7rem;margin-bottom:.5rem}.projects-hero-title:after{content:"";display:block;width:3.5rem;height:.25rem;margin:.875rem auto 0;background:var(--hero-gradient);border-radius:var(--radius-pill)}.projects-hero-title,.projects-intro p{opacity:0;transform:translateY(.75rem);filter:blur(12px)}@keyframes riseIn{to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes heroPortraitIn{0%{transform:translate(-50%,-50%) scale(0);opacity:0;filter:blur(12px)}60%{transform:translate(-50%,-50%) scale(1.1);opacity:.6;filter:blur(2px)}80%{transform:translate(-50%,-50%) scale(.95);opacity:.8;filter:blur(0)}to{transform:translate(-50%,-50%) scale(1);opacity:1;filter:blur(0)}}html.hero-ready .projects-page-hero-profile-picture{animation:heroPortraitIn .5s forwards}html.hero-ready .projects-hero-title{animation:riseIn .5s forwards;animation-delay:.15s}html.hero-ready .projects-intro p{animation:riseIn .5s forwards}html.hero-ready .projects-intro p:nth-child(1){animation-delay:.3s}html.hero-ready .projects-intro p:nth-child(2){animation-delay:.4s}.projects-hero-icons-container{position:relative;width:100%;height:18.75rem;min-height:18.75rem;overflow:visible}.projects-page-hero-profile-picture{position:absolute;top:60%;left:50%;transform:translate(-50%,-50%) rotate(0);opacity:0;width:12.5rem;height:12.5rem;border-radius:50%;object-fit:cover;box-shadow:0 69px 19px #0000,0 44px 18px #00000003,0 25px 15px #0000000d,0 11px 11px #00000017,0 3px 6px #0000001a;max-width:100%;pointer-events:none;-webkit-touch-callout:none;-webkit-user-drag:none;user-drag:none;user-select:none;-webkit-user-select:none}@media(max-width:500px){.projects-page-hero-profile-picture{width:10rem;height:10rem}}.projects-hero-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.3) rotate(0);opacity:0;filter:blur(12px);pointer-events:none;-webkit-touch-callout:none;-webkit-user-drag:none;user-drag:none;user-select:none;-webkit-user-select:none}.projects-hero-icons-container.animate .projects-hero-icon{top:var(--final-top);left:var(--final-left);right:var(--final-right);opacity:1;transform:scale(1) rotate(var(--rotation, 0deg));transition:all 1s cubic-bezier(.25,1,.5,1);filter:blur(0)}.projects-hero-icon.large{width:7.5rem;aspect-ratio:1}.projects-hero-icon.medium{width:5.5rem;aspect-ratio:1}.projects-hero-icon.small{width:3rem;aspect-ratio:1}@media(max-width:500px){.projects-hero-icon.large{width:5.5rem;height:5.5rem}.projects-hero-icon.medium{width:4rem;height:4rem}.projects-hero-icon.small{width:2.5rem;height:2.5rem}}.projects-hero-icon:nth-child(1){--final-top: 6%;--final-left: 8%}.projects-hero-icon:nth-child(2){--final-top: 12%;--final-right: 12%}.projects-hero-icon:nth-child(3){--final-top: 50%;--final-left: 25%}.projects-hero-icon:nth-child(4){--final-top: 45%;--final-right: 10%}.projects-hero-icon:nth-child(5){--final-top: 85%;--final-left: 65%}.projects-hero-icon:nth-child(6){--final-top: 60%;--final-left: 10%}.projects-hero-icon:nth-child(7){--final-top: 15%;--final-right: 35%}.projects-hero-icon:nth-child(8){--final-top: 70%;--final-right: 15%}.projects-hero-icon:nth-child(9){--final-top: 82%;--final-left: 25%}.projects-hero-icon.floating{animation:floatAround 6s infinite ease-in-out}@keyframes floatAround{0%{transform:translate(0) rotate(var(--rotation))}25%{transform:translate(5px,-10px) rotate(calc(var(--rotation) + 3deg))}50%{transform:translate(-5px,10px) rotate(calc(var(--rotation) - 2deg))}75%{transform:translate(8px,5px) rotate(calc(var(--rotation) + 1deg))}to{transform:translate(0) rotate(var(--rotation))}}.projects-grid-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;width:100%;padding:1.25rem;box-sizing:border-box}.project-grid-card{border-radius:var(--radius-panel);box-sizing:border-box;padding:1.25rem;transition:transform ease .3s;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:0;color:var(--text-color-primary);cursor:pointer}.project-grid-card:hover{transform:scale(1.03)}.project-card-icon{width:7.5rem;height:7.5rem;object-fit:contain;padding:8px;aspect-ratio:1;pointer-events:none;-webkit-touch-callout:none;-webkit-user-drag:none;user-drag:none;user-select:none;-webkit-user-select:none}.project-card-title{font-size:1.125rem;font-weight:800;margin:0;padding:0}.project-type-container{display:inline-flex;gap:.25rem;align-items:center;justify-self:baseline}.project-type-icon{font-size:.875rem;line-height:0;display:flex;align-items:center;justify-content:center;opacity:.75}.project-type-text{font-size:.875rem;opacity:.75}.degree-badge-container{padding:.25rem 1rem;display:inline-block;border-radius:9999px;width:fit-content;margin-left:auto;margin-right:auto;opacity:.7}.bachelor-badge{background:var(--bachelor-badge)}.master-badge{background:var(--master-badge)}.degree-badge-text{font-size:.875rem;font-weight:700;margin:0}.bachelor-text{color:var(--bachelor-text)}.master-text{color:var(--master-text)}.project-card-details-container{display:flex;flex-direction:column;align-items:center;justify-content:space-between;height:100%;margin-top:-.625rem}.popup-content{padding:2rem;font-size:1.1rem}.popup-close-btn{position:absolute;top:1rem;right:1rem;width:2.5rem;height:2.5rem;border-radius:50%;border:none;background:#ffffff26;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;box-shadow:0 4px 12px #0003;transition:background .2s ease,transform .2s ease;font-size:1.5rem;color:#ffffffd9}.popup-close-btn:hover{background:#ffffff40;transform:scale(1.1)}.project-popup-icon{width:10rem;height:10rem;object-fit:contain;transform-origin:top center;pointer-events:none;-webkit-touch-callout:none;-webkit-user-drag:none;user-drag:none;user-select:none;-webkit-user-select:none;view-transition-name:project-icon}.project-popup-title-container{display:flex;flex-direction:column;gap:0;justify-content:center;align-items:center}.project-popup-title-container>h2{margin:0;padding:0;transform-origin:top center;view-transition-name:project-title}.project-popup-skill-pills-container{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.25rem;height:fit-content;justify-content:center}.project-popup-description{text-align:left;margin:0}.project-skill-text{font-weight:700;font-size:.75rem}.project-skill-icon{font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center}.github-badge{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1rem;text-decoration:none;font-weight:600;color:var(--text-color-primary)}.open-button-badge{--lg-tint-strength-clear: 60%;--lg-glass-tint: var(--text-color-accent);--lg-glass-tint-text: #FFFFFF;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1rem;color:var(--lg-glass-tint-text);font-weight:600;text-decoration:none}@media(prefers-color-scheme:dark){.open-button-badge{--lg-glass-tint-text: #0D1524}}.github-icon{width:1.4rem;height:1.4rem;color:var(--text-color-primary)}.open-button-icon{width:1.4rem;height:1.4rem;color:var(--lg-glass-tint-text, #fff)}.github-text{font-size:.9rem}.project-popup-buttons-container{display:flex;flex-wrap:wrap;flex-direction:row;justify-content:center;gap:.75rem}.project-exam-course{font-size:1rem;font-weight:700;opacity:.75;text-align:left;margin:0}.project-university-details-container{display:flex;flex-direction:column;gap:.5rem}.project-grid-card,.project-popup{--accent-mid: 14%;background-image:radial-gradient(circle at top right,color-mix(in srgb,var(--accent-color) 55%,transparent) 0%,color-mix(in srgb,var(--accent-color) var(--accent-mid),transparent) 60%,transparent 100%)}.project-grid-card{background-color:var(--lg-tint-clear)}.project-popup{background-color:var(--lg-tint)}@media(prefers-color-scheme:dark){.project-grid-card,.project-popup{--accent-mid: 18%}}.project-popup.morph-popup{overflow:visible}.project-popup .popup-clip{position:absolute;inset:0;overflow:hidden;border-radius:inherit}.project-popup.morph-popup--open{animation:popupTintIn .42s cubic-bezier(.32,.72,0,1)}@keyframes popupTintIn{0%{background-color:var(--lg-tint-clear)}}@keyframes popupTintOut{to{background-color:var(--lg-tint-clear)}}.project-popup{--morph-shadow-popup: var(--lg-shadow-rim);color:var(--text-color-primary)}html.no-morph-scrim .morph-overlay{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.project-popup .morph-popup__inner{position:absolute;top:0;left:50%;translate:-50% 0;width:80vw;height:80dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;opacity:0;filter:blur(12px);transition:opacity .3s ease .08s,filter .42s ease}.project-popup.morph-popup--open .morph-popup__inner{opacity:1;filter:blur(0);transition:opacity .2s ease,filter .35s ease}.project-popup.morph-popup--open .project-popup-icon{animation:popupIconIn .42s cubic-bezier(.32,.72,0,1)}@keyframes popupIconIn{0%{scale:.75}to{scale:1}}.project-popup.morph-popup--open .project-popup-title-container>h2{animation:popupTitleIn .42s cubic-bezier(.32,.72,0,1)}@keyframes popupTitleIn{0%{scale:.5}to{scale:1}}.project-popup .popup-card-face{position:absolute;top:0;left:50%;translate:-50% 0;width:var(--card-face-width, 100%);height:var(--card-face-height, auto);box-sizing:border-box;padding:1.25rem;display:flex;flex-direction:column;align-items:center;pointer-events:none;z-index:2;opacity:1;transition:opacity .25s ease}.project-popup.morph-popup--open .popup-card-face{opacity:0}.project-grid-card.morph-card--open.morph-reveal{visibility:visible;animation:cardRevealIn .42s ease forwards}@keyframes cardRevealIn{0%,40%{opacity:0}65%,to{opacity:1}}.project-popup.project-popup--closing{animation:popupCloseFade .42s ease forwards,popupTintOut .42s cubic-bezier(.32,.72,0,1) forwards}.project-popup.project-popup--closing .morph-popup__inner{animation:popupInnerOut .42s ease forwards;filter:none}@keyframes popupInnerOut{0%,35%{opacity:1}75%,to{opacity:0}}.project-popup.project-popup--closing .popup-card-face{animation:cardFaceIn .42s ease forwards}@keyframes cardFaceIn{0%,45%{opacity:0}80%,to{opacity:1}}@keyframes popupCloseFade{0%,65%{opacity:1}to{opacity:0}}.project-popup.project-popup--closing .project-popup-icon{animation:popupIconOut .42s cubic-bezier(.32,.72,0,1) forwards}@keyframes popupIconOut{0%{scale:1}to{scale:.75}}.project-popup.project-popup--closing .project-popup-title-container>h2{animation:popupTitleOut .42s cubic-bezier(.32,.72,0,1) forwards}@keyframes popupTitleOut{0%{scale:1}to{scale:.5}}.project-popup .popup-close-btn{position:absolute;top:1rem;right:1rem;float:none;margin:0}.project-popup .morph-popup__inner{overscroll-behavior-y:contain}.project-popup-grabber{position:absolute;top:0;left:50%;translate:-50% 0;width:4rem;height:1.75rem;z-index:11;display:none;opacity:0;transition:opacity .18s ease}.project-popup-grabber:before{content:"";position:absolute;top:.5rem;left:50%;translate:-50% 0;width:2.25rem;height:.3125rem;border-radius:9999px;background:#7f7f7f80}.morph-popup--open .project-popup-grabber{opacity:1}@media(max-width:600px),(pointer:coarse){.project-popup-grabber{display:block}}.project-popup .popup-close-btn{background:var(--lg-tint-clear);box-shadow:var(--lg-shadow);color:var(--text-color-primary)}.project-popup .popup-close-btn:hover{background:var(--lg-tint-clear);transform:none}.project-popup .morph-popup__inner .project-type-container{padding:.3rem .8rem;color:var(--text-color-primary)}.project-popup .morph-popup__inner .project-popup-title-container>.project-type-container,.project-popup .morph-popup__inner .project-popup-title-container>.project-university-details-container{margin-top:.5rem}.project-popup .morph-popup__inner .project-type-container>p{margin:0}.project-popup .morph-popup__inner .degree-badge-container{opacity:1;--lg-glass-tint: rgb(52, 199, 89)}.project-popup .morph-popup__inner .degree-badge-container.master-badge{--lg-glass-tint: rgb(255, 141, 40)}.project-popup .skill-pill{border:none;box-shadow:var(--lg-shadow);color:var(--text-color-primary)}.project-popup .skill-pill:hover{transform:none;background-color:color-mix(in srgb,var(--lg-glass-tint) var(--lg-tint-strength-clear),transparent)}.project-popup .skill-pill.liquid-glass:not(.lg-pressing):not(.lg-dragging),.project-popup .popup-close-btn.liquid-glass:not(.lg-pressing):not(.lg-dragging){transition:translate var(--lg-press-out-dur) var(--lg-ease-spring),scale var(--lg-press-out-dur) var(--lg-ease-spring),filter .2s ease}.project-popup .skill-pill-red{--lg-glass-tint: rgb(255, 56, 60)}.project-popup .skill-pill-blue{--lg-glass-tint: rgb( 0, 136, 255)}.project-popup .skill-pill-green{--lg-glass-tint: rgb( 52, 199, 89)}.project-popup .skill-pill-yellow{--lg-glass-tint: rgb(255, 204, 0)}.project-popup .skill-pill-purple{--lg-glass-tint: rgb(175, 82, 222)}
