@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap";html,body,#root{min-height:100%}@font-face{font-family:Montserrat;src:url(fonts/Montserrat/Montserrat-VariableFont_wght.tff)format("truetype")}:root{--ink:#191817;--paper:#f4f1ea;--line:#d8d3ca;--muted:#6f6c66;--blue:#4d61d8;--coral:#e77c5a;--lime:#c9dd89}#iv-text{color:var(--blue)}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:DM Sans,Arial,sans-serif}a{color:inherit;text-decoration:none}main{scroll-behavior:smooth;padding-top:7rem;overflow:hidden}@media (width<=750px){main{padding-top:5rem}}.site-header{z-index:20;-webkit-backdrop-filter:blur(22px)saturate(140%);background:linear-gradient(135deg,#ffffff7a,#ffffff2e);border:1px solid #ffffff47;border-radius:999px;justify-content:space-between;align-items:center;width:min(1180px,100% - 2.4rem);height:78px;margin:1.1rem auto 0;padding:0 1.35rem 0 1.15rem;display:flex;position:fixed;top:1rem;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #1118271a,inset 0 1px #ffffff59}.wordmark{letter-spacing:-1px;border-radius:999px;align-items:center;gap:9px;padding:.55rem .7rem;font-size:20px;font-weight:600;display:flex}.menu-toggle{color:#191817;font:inherit;-webkit-backdrop-filter:blur(14px);background:#ffffff47;border:1px solid #ffffff3d;border-radius:999px;padding:.72rem 1rem;display:none}.mark{width:27px;height:27px}nav{background:#ffffff47;border:1px solid #ffffff3d;border-radius:999px;align-items:center;gap:.55rem;padding:.4rem;font-size:.98rem;display:flex}nav>a:not(.nav-contact){color:#4d4a45;border-radius:999px;padding:.8rem 1rem;transition:color .2s,background .2s,transform .2s}nav>a:not(.nav-contact):hover{color:#191817;background:#ffffff6b;transform:translateY(-1px)}.nav-contact{color:var(--paper);background:#1743c9eb;border-radius:999px;padding:.8rem 1.05rem;transition:background .2s,transform .2s,box-shadow .2s;box-shadow:0 10px 24px #1f5fff38}.nav-contact:hover{color:var(--paper);background:#1036a8f5;transform:translateY(-1px)}.nav-contact{background:var(--blue);color:var(--paper);border-radius:999px;padding:12px 17px;transition:all .2s}.nav-contact span{margin-left:6px}.menu-toggle{font:inherit;background:0 0;border:0;display:none}.hero{text-align:center;place-items:center;min-height:calc(100svh - 84px);padding:10vw 5vw 5vw;display:grid}.eyebrow,.section-head,.project-type,footer{text-transform:uppercase;letter-spacing:.04em;font-family:DM Mono,monospace;font-size:11px}.intro{max-width:80vw}.intro .eyebrow{color:var(--blue);transform-origin:top;margin:0 0 21px;animation:.56s cubic-bezier(.22,1,.36,1) pageEnter}.intro h1{letter-spacing:0;transform-origin:top;margin:0;font-family:Montserrat;font-size:8vw;font-weight:500;line-height:.88;animation:.56s cubic-bezier(.22,1,.36,1) pageEnter}.role{transform-origin:top;margin:24px 0 18px;font-family:Montserrat;font-size:40px;font-weight:300;animation:.56s cubic-bezier(.22,1,.36,1) pageEnter}.intro-bio{color:var(--muted);transform-origin:50%;max-width:600px;margin:0 auto;font-size:20px;line-height:1.55;animation:.56s cubic-bezier(.22,1,.36,1) pageEnter}.intro-actions{transform-origin:50%;flex-wrap:wrap;justify-content:center;gap:9px;margin-top:38px;animation:.56s cubic-bezier(.22,1,.36,1) pageEnter;display:flex}.intro-details{color:var(--muted);transform-origin:50%;justify-content:center;align-items:center;gap:18px;margin-top:27px;animation:.56s cubic-bezier(.22,1,.36,1) pageEnter;display:flex}.social-buttons{gap:7px;display:flex}.social-button{place-items:center;width:60px;height:60px;font-family:DM Mono,monospace;font-size:22px;font-weight:500;transition:all .2s;display:grid}.location-pin{width:33px;height:15px;color:var(--muted);border-left:1px solid var(--line);place-items:center;margin-right:-8px;padding-left:18px;display:grid}.social-button#linkedin:hover{color:#2b1ee2}.social-button#github:hover{color:#191817}.social-buttons svg{fill:currentColor;width:30px;height:30px}.location{margin:0;font:16px DM Mono,monospace}.institutions{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-self:center;align-self:top;padding:5vw}.institution-linked{justify-content:center;align-items:center;width:33vw;height:12vw}.institution-linked#cafoscari{width:30vw;height:13vw}.logo-grid{grid-template-columns:repeat(2,1fr);align-content:center;display:grid}.primary-action,.secondary-action{scroll-behavior:smooth;border-radius:999px;align-items:center;gap:18px;padding:15px 24px;font-size:20px;transition:all .2s;display:inline-flex}.primary-action{color:var(--paper);background:var(--ink)}.primary-action:hover{background:var(--blue)}.secondary-action{border:1px solid var(--line)}.secondary-action:hover{border-color:var(--ink)}footer{color:#d8ddff;background:var(--blue);border-top:1px solid #ffffff26;justify-content:space-between;gap:25px;padding:24px 4.5vw;display:flex}footer div{gap:18px;display:flex}@media (width<=750px){.intro h1{letter-spacing:0;margin:0;font-family:Montserrat;font-size:12vw;font-weight:500;line-height:1}.role{margin:10px 0 18px;font-family:Montserrat;font-size:8vw;font-weight:300}.logo-grid{grid-template-columns:repeat(1,1fr);gap:40px;display:grid}.institutions{padding:5vw}.institution-linked{justify-self:center;align-items:center;width:80vw;height:30vw}.institution-linked#cafoscari{place-self:center;width:69vw;height:30vw}.site-header{width:calc(100% - 1rem);height:68px;padding:0 .7rem 0 .85rem;top:.8rem}.menu-toggle{z-index:6;display:block;position:relative}.site-header nav{-webkit-backdrop-filter:blur(50px)saturate(200%);opacity:0;visibility:hidden;pointer-events:none;transform-origin:top;background:linear-gradient(135deg,#faf6f6f4,#fcf9f9e0);border:1px solid #ffffff3d;border-radius:1.6rem;flex-direction:column;align-items:stretch;gap:.4rem;padding:.8rem;transition:opacity .22s,transform .26s cubic-bezier(.22,1,.36,1),visibility .22s;display:flex;position:absolute;top:calc(100% + .55rem);left:0;right:0;transform:translateY(-10px)scale(.96);box-shadow:0 16px 40px #11182714,inset 0 1px #ffffff4d}.site-header nav.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)scale(1)}.site-header nav a{opacity:0;border-radius:1rem;width:100%;transition:opacity .22s,transform .26s cubic-bezier(.22,1,.36,1),background .18s,color .18s;transform:translateY(8px)}.site-header nav.open a{opacity:1;transform:translateY(0)}.site-header nav.open a:first-child{transition-delay:40ms}.site-header nav.open a:nth-child(2){transition-delay:90ms}.site-header nav.open a:nth-child(3){transition-delay:.14s}}.section-heading{gap:.75rem;margin-bottom:2rem;display:grid}.section-kicker{letter-spacing:.18em;text-transform:uppercase;color:#5b6b8c;margin:0;font-size:.82rem}.section-heading h2{justify-self:center;margin:0;font-size:2rem}.section-description{color:#53627f;max-width:42rem;margin:0}.skills-section{padding:4rem clamp(1.5rem,4vw,4rem) 5rem}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1.5rem;display:grid}.skill-card{will-change:transform;background:#fff;border:1px solid #1f346114;border-radius:1.5rem;gap:1.5rem;padding:1.5rem;transition:transform .7s cubic-bezier(.22,1,.36,1),box-shadow .7s cubic-bezier(.22,1,.36,1);display:grid;transform:scale(0);box-shadow:0 16px 40px #12213f14}.skill-card.is-visible{transform:scale(1);box-shadow:0 24px 60px #12213f1f}.skill-card-header{justify-content:space-between;align-items:start;gap:1rem;display:flex}.skill-card-header h3{margin:.35rem 0 0;font-size:1.2rem}.skill-label{letter-spacing:.16em;text-transform:uppercase;color:#6e7da0;margin:0;font-size:.72rem}.skill-score{color:#1f5eff;text-align:center;background:#1f5eff1a;border-radius:999px;min-width:3rem;padding:.5rem .75rem;font-weight:700}.radar-chart{opacity:1;width:min(100%,18rem);margin-inline:auto;transition:transform 2s cubic-bezier(.22,1,.36,1) 2s,all;overflow:visible;transform:scale(0)}.skill-card.is-visible .radar-chart{transform:scale(1)}.radar-area{stroke:var(--radar-color);stroke-width:2.5px;transform-box:fill-box;transform-origin:50%;transition:transform .8s cubic-bezier(.22,1,.36,1) .12s}.skill-card.is-visible .radar-area{transform:scale(1)}.radar-chart{width:min(100%,18rem);margin-inline:auto;overflow:visible}.radar-ring,.radar-axis{fill:none;stroke:#3a4c712e;stroke-width:1px}.radar-area{fill:color-mix(in srgb, var(--radar-color) 18%, white);stroke:var(--radar-color);stroke-width:2.5px}.radar-point-label{fill:#53627f;text-anchor:middle;font-size:10px}.language-chart-card{-webkit-backdrop-filter:blur(14px);background:#ffffffb8;border:1px solid #12182714;border-radius:2rem;margin-top:1.6rem;padding:1.6rem;box-shadow:0 20px 40px #11182714}.language-chart-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.4rem;display:flex}.language-chart-header h3{margin:0;font-size:clamp(1.4rem,2vw,2rem)}.language-bars{gap:1rem;display:grid}.language-row{gap:.45rem;display:grid}.language-meta{color:#38342f;justify-content:space-between;align-items:center;gap:1rem;font-size:.96rem;display:flex}.language-name{font-weight:600}.language-hours{color:#6d6860}.language-bar-track{background:#1f5fff14;border-radius:999px;width:100%;height:.95rem;overflow:hidden}.language-bar-fill{border-radius:inherit;background:linear-gradient(90deg, var(--bar-color), color-mix(in srgb, var(--bar-color) 68%, white));height:100%;box-shadow:0 8px 18px color-mix(in srgb, var(--bar-color) 28%, transparent);transform-origin:0;animation:.9s cubic-bezier(.22,1,.36,1) languageBarGrow;display:block}@keyframes languageBarGrow{0%{width:0}to{}}.language-chart-card{-webkit-backdrop-filter:blur(14px);background:#fff;border:1px solid #12182714;border-radius:2rem;margin-top:1.6rem;padding:1.6rem;transition:transform .56s cubic-bezier(.22,1,.36,1);transform:scale(0);box-shadow:0 20px 40px #11182714}.language-chart-card.is-visible{transform:scale(1)}@media (width<=750px){.language-chart-card{border-radius:1.5rem;padding:1.2rem}.language-meta{font-size:.9rem}.language-bar-track{height:.82rem}}@media (width<=720px){.skills-section{padding-top:3rem}.skill-card{padding:1.25rem}}.active-nav{color:#1f5fff}.projects-page{padding:8rem 8vw 10rem}.projects-hero{transform-origin:50%;gap:1.5rem;max-width:980px;margin-bottom:1vh;margin-left:5vw;animation:.56s cubic-bezier(.22,1,.36,1) pageEnter;display:grid}.projects-title{letter-spacing:-.06em;margin:0;font-size:clamp(3rem,7vw,5.75rem);line-height:.94}.projects-copy{color:#121926b8;max-width:720px;font-size:1.08rem}.projects-stats{flex-wrap:wrap;gap:1rem;display:flex}.projects-stat{background:#ffffffbd;border:1px solid #1f5fff1f;border-radius:24px;min-width:180px;padding:1rem 1.1rem;box-shadow:0 18px 42px #0b1f5014}.projects-stat-value{color:#0d1b3d;font-size:1.3rem;font-weight:700;display:block}.projects-stat-label{color:#1219269e;margin-top:.35rem;display:block}.featured-page{scroll-snap-type:y mandatory}.featured-game{grid-template-columns:minmax(320px,1.7fr) minmax(320px,1fr);align-items:stretch;gap:1.5rem;height:100vh;padding:1.5rem;display:grid}.featured-left{flex-direction:column;justify-content:center;align-items:center;gap:1.15rem;min-width:0;padding-left:2vw;display:flex}.featured-left a{align-self:start}.featured-badges{flex-wrap:wrap;gap:.7rem;display:flex}.featured-language{letter-spacing:.08em;text-transform:uppercase;align-items:center;padding:.5rem;font-size:.78rem;font-weight:700;display:inline-flex}.featured-name{letter-spacing:-.05em;color:#091327;margin:0;font-size:clamp(2rem,4vw,3.2rem);line-height:.95}.featured-description{color:#121926b8;max-width:42ch;margin:0;font-size:1.02rem;line-height:1.75}.featured-right{justify-content:left;align-items:center;min-width:0;display:flex}.featured-right-container{aspect-ratio:16/9.5;justify-content:center;align-items:center;width:min(100%,45vw);height:540px;display:flex;position:relative}.featured-image{filter:drop-shadow(4px 4px 8px #00000080);object-fit:cover;transform-origin:0;background-color:#0000;width:min(100%,45vw);transition:transform .45s,box-shadow .45s;display:block;position:absolute}#gunsonwheelsone{z-index:2;top:40px;left:30px;transform:rotate(-6deg)}#gunsonwheelstwo{z-index:1;top:60px;left:17px;transform:rotate(8deg)}#GunsOnWheels,#Nabillius{opacity:1;will-change:transform, opacity;transition:transform .7s cubic-bezier(.22,1,.36,1),box-shadow .7s cubic-bezier(.22,1,.36,1);transform:translateY(40px)scale(0)}#GunsOnWheels.is-visible,#Nabillius.is-visible{transform:translateY(0)scale(1)}#wordlaripadcontainer{justify-content:center;align-items:center;width:100%;display:flex}.wordlar-model-wrap{justify-content:center;align-items:center;width:100%;min-height:460px;display:flex}.wordlar-model-viewer{aspect-ratio:1;width:90vw;height:auto;box-shadow:none;background:0 0;border:none;overflow:visible}.wordlar-model-viewer canvas{display:block;background:0 0!important;width:100%!important;height:100%!important}@media (width<=980px){.wordlar-model-wrap{min-height:auto;padding:0 1rem}.wordlar-model-viewer{aspect-ratio:1;width:min(120vw,500px);height:auto;margin-inline:auto}}.featured-right-container:hover #gunsonwheelsone{transform:translateY(-8px)rotate(-12deg)}.featured-right-container:hover #gunsonwheelstwo{transform:translateY(6px)rotate(16deg)}@media (width<=980px){.featured-game{align-items:stretch;gap:0;height:fit-content;display:block}.featured-right-container{width:100%;height:auto;display:block;position:relative}.featured-image{aspect-ratio:16/9.5;width:70vw;max-width:100%;display:block;position:relative;transition:none!important;transform:none!important}#gunsonwheelstwo{display:none}#gunsonwheelsone{top:auto;left:auto;transform:none!important}.featured-right-container:hover #gunsonwheelsone,.featured-right-container:hover #gunsonwheelstwo{transform:none!important}.featured-right{justify-content:flex-start;align-items:center;display:flex}.featured-left{align-items:flex-start;height:fit-content}}.repo-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.4rem;display:grid}.repo-card,.repo-feedback-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#fffffff0,#f4f7ffd1);border:1px solid #1f5fff1f;border-radius:30px;flex-direction:column;justify-content:space-between;min-height:100px;padding:1.5rem;display:flex;box-shadow:0 24px 60px #0a1f4e1a}.repo-card-top{gap:1rem;display:grid}.repo-badges{flex-wrap:wrap;gap:.65rem;display:flex}.repo-language,.repo-muted-badge{letter-spacing:.08em;text-transform:uppercase;border-radius:80px;align-items:center;padding:.45rem .8rem;font-size:.76rem;font-weight:700;display:inline-flex}.repo-language{color:#1f5fff;text-align:center;background:#1f5fff1a}.repo-muted-badge{color:#121926b8;background:#12192614}.repo-name{color:#091327;overflow-wrap:anywhere;margin:0;font-size:1.45rem;line-height:1.1}.repo-description{color:#121926ad;margin-top:.8rem;line-height:1.65}.repo-card-bottom{gap:1rem;margin-top:1.75rem;display:grid}.repo-meta{color:#1219268f;flex-wrap:wrap;gap:.9rem;font-size:.92rem;display:flex}.repo-actions{flex-wrap:wrap;gap:.8rem;display:flex}.repo-feedback-card{align-items:flex-start;gap:1rem;min-height:200px}.visit-repo{color:#4d4a45;place-items:center;width:20px;height:100%;margin-right:auto;font-family:DM Mono,monospace;font-size:22px;font-weight:500;transition:all .2s}.visit-repo#github:hover{color:#191817}.visit-repo svg{fill:currentColor;width:30px;height:30px;margin-right:auto}.about-page{padding:8rem 8vw 4rem}.about-hero{flex-direction:column;gap:2rem;max-width:1200px;margin:0 auto 3rem;display:flex}@keyframes pageEnter{0%{transform:scale(0)}to{transform:scale(1)}}.about-title{letter-spacing:-.3rem;text-align:center;transform-origin:top;width:100%;margin:0;font-size:10vw;line-height:.95;animation:.56s cubic-bezier(.22,1,.36,1) pageEnter}.about-content{grid-template-columns:minmax(280px,1fr) minmax(0,1.5fr);align-items:start;gap:5rem;padding-top:8vh;display:grid}.about-content-left{transform-origin:50%;animation:.56s cubic-bezier(.22,1,.36,1) pageEnter;position:sticky;top:7.5rem}.music-widget{background:var(--ink);filter:drop-shadow(4px 4px 8px #00000080);-webkit-backdrop-filter:blur(20px);border:1px solid #19181714;border-radius:3rem 3rem 4.5rem 4.5rem;flex-direction:column;gap:1rem;padding:1.25rem;display:flex;position:relative;overflow:hidden;transform:rotate(-8deg)}.music-widget-art-wrap{aspect-ratio:1;background:var(--ink);border-radius:2rem;position:relative;overflow:hidden}.music-widget-art{object-fit:cover;border-radius:2rem;width:100%;height:100%;animation:.36s cubic-bezier(.22,1,.36,1) profilePhotoSlideIn;display:block}@keyframes profilePhotoSlideIn{0%{transform:scale(0)}to{transform:scale(1)}}.music-widget-glow{pointer-events:none;background:linear-gradient(#0000 0%,#0f0f0f6b 100%);height:45%;position:absolute;inset:auto 0 0}.music-widget-body{flex-direction:column;display:flex}.music-widget-body h2{color:#191817;margin:0;font-size:1.55rem;line-height:1}.music-widget-controls{grid-template-columns:repeat(3,1fr);gap:.75rem;padding-top:.35rem;display:grid}.music-control-button{color:#848282;background:#222121;border:1px solid #19181714;border-radius:1.5rem;justify-content:center;align-items:center;min-width:0;min-height:5rem;font-size:2rem;transition:transform .18s,background .18s,color .18s;display:inline-flex}#left-profile-button{border-bottom-left-radius:4rem}#right-profile-button{border-bottom-right-radius:4rem}.music-control-square span{line-height:1}.music-control-button:hover{background:#1918171a;transform:scale(1.1)}.about-content-right{transform-origin:50%;flex-direction:column;gap:1.2rem;max-width:760px;padding:.5rem 0;animation:.56s cubic-bezier(.22,1,.36,1) pageEnter;display:flex}.about-content-right p{color:#38342f;margin:0;font-size:1.08rem;line-height:1.7}.about-journey{margin-left:20px;font-style:italic}.about-content-right .about-lead{color:#191817;width:100%;font-size:2.5rem;font-weight:500;line-height:1.65}.contact-page{padding:9rem 8vw 4rem}.contact-hero{transform-origin:0;flex-direction:column;gap:1.4rem;max-width:1180px;margin:0 auto;animation:.56s cubic-bezier(.22,1,.36,1) pageEnter;display:flex}.contact-eyebrow{letter-spacing:.16em;text-transform:uppercase;color:#7c776d;margin:0;font-size:.85rem}.contact-title{letter-spacing:-.22rem;margin:0;font-size:clamp(3.4rem,9vw,7rem);line-height:.94}.contact-intro{color:#4d4a45;max-width:36rem;margin:0;font-size:1.1rem;line-height:1.8}.contact-logos{flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1.5rem;display:flex}.contact-logo-link{color:#191817;-webkit-backdrop-filter:blur(18px)saturate(140%);background:linear-gradient(135deg,#ffffff9e,#ffffff38);border:1px solid #ffffff42;border-radius:1.6rem;justify-content:center;align-items:center;width:5.4rem;height:5.4rem;transition:transform .2s,box-shadow .2s,border-color .2s,color .2s;display:inline-flex;box-shadow:0 18px 40px #11182714}.contact-logo-link:hover{color:var(--blue);border-color:#1f5fff2e;transform:translateY(-4px);box-shadow:0 24px 46px #1118271f}.contact-logo-link svg{width:2rem;height:2rem;display:block}@media (width<=750px){.contact-logo-link{border-radius:1.25rem;width:4.6rem;height:4.6rem}.contact-logo-link svg{width:1.75rem;height:1.75rem}.contact-page{padding:7rem 3rem 3rem}.contact-title{letter-spacing:-.12rem}}@media (width<=980px){.about-content{grid-template-columns:1fr}.about-content-left{position:static}.about-content-right{max-width:100%}.music-widget{transform:rotate(0)}}@media (width<=720px){.about-page{padding:7rem 3rem 3rem}.about-title{text-align:center;letter-spacing:-.16rem}.music-widget{padding:1.5rem}.music-control-button{height:3rem}.about-content-right p{font-size:1rem;line-height:1.8}.about-content-right .about-lead{font-size:2rem}}
