.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{--bg: #ffffff;--text: #111111;--muted: #5c5c5c;--border: #e0e0e0;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Ubuntu, sans-serif;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--section-gap: clamp(var(--space-8), 4vw, var(--space-10));--page-pad-x: clamp(var(--space-4), 3.5vw, var(--space-6));--page-pad-y: clamp(1.5rem, 4vw, 2.75rem);--content-max: 60rem;--measure: 62ch;--measure-tight: 40ch;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: clamp(1.375rem, 2.8vw, 1.625rem);--text-3xl: clamp(1.625rem, 3.5vw, 2rem);--text-4xl: clamp(1.875rem, 4.5vw, 2.5rem);--leading-none: 1.1;--leading-tight: 1.2;--leading-snug: 1.45;--leading-normal: 1.6;--leading-relaxed: 1.65;--tracking-tight: -.02em;--tracking-wide: .02em;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius: var(--radius-md);--shadow-card: 0 1px 2px rgba(15, 15, 20, .04);--webgl-opacity: .45;--webgl-opacity-home: .82;--webgl-opacity-route: .55;--webgl-opacity-contatti: .72;--ease-theme: cubic-bezier(.4, 0, .2, 1);--theme-dur: .45s}html[data-theme=dark]{color-scheme:dark;--bg: #121214;--text: #f4f4f5;--muted: #a1a1aa;--border: #3f3f46;--shadow-card: 0 1px 3px rgba(0, 0, 0, .35)}*,*:before,*:after{box-sizing:border-box}html{color-scheme:light;height:100%;scroll-behavior:smooth;scroll-padding-top:.5rem;scroll-padding-bottom:env(safe-area-inset-bottom,0px)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;width:100%;min-height:100dvh;display:flex;flex-direction:column;position:relative;font-family:var(--font);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text);background:var(--bg);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}::selection{background:color-mix(in srgb,var(--text) 12%,transparent)}a{color:var(--text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;transition:opacity .15s ease}@media(prefers-reduced-motion:no-preference){a{transition:opacity .15s ease,color var(--theme-dur) var(--ease-theme),background-color var(--theme-dur) var(--ease-theme)}}a:hover{opacity:.72}@media(prefers-reduced-motion:no-preference){:where(body,.site-header,.site-header__actions,.site-nav__link,.site-footer-min__row,.site-footer-min__link,.site-footer-min__copy,.lang-toggle,.theme-toggle,.lede,.hero-subtitle,.prose,.prose strong,.section-title,.hero-copy h1,.btn,.btn-primary,.btn-ghost,.card,.card h3,.card p,.tag,.photo-wrap img,.timeline li,.timeline h3,.timeline p,.timeline .meta,footer.site-footer-min){transition:background-color var(--theme-dur) var(--ease-theme),color var(--theme-dur) var(--ease-theme),border-color var(--theme-dur) var(--ease-theme),box-shadow var(--theme-dur) var(--ease-theme)}}.mb-lede{margin-bottom:var(--space-8)}.mt-section{margin-top:var(--section-gap)}.mt-prose{margin-top:var(--space-8)}.max-w-cards{max-width:var(--content-max)}.site-header{position:sticky;top:0;z-index:50;width:100%;flex-shrink:0;background:var(--bg);border-bottom:1px solid var(--border);padding:var(--space-2) var(--page-pad-x);padding-top:max(var(--space-2),env(safe-area-inset-top,0px))}.site-header__inner{max-width:var(--content-max);margin:0 auto;width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-2);@media(min-width:640px){gap:var(--space-2) var(--space-4)}}.site-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--space-1) var(--space-4);flex:1 1 auto;min-width:0}.site-nav__link{font-size:var(--text-sm);font-weight:500;color:var(--text);text-decoration:none;border:none;background:none;line-height:var(--leading-tight);padding:var(--space-2) var(--space-1);border-radius:var(--radius-sm);min-height:2.75rem;display:inline-flex;align-items:center;white-space:nowrap}.site-nav__link:hover,.site-nav__link:focus-visible{opacity:.7}.site-nav__link:focus-visible{outline:2px solid var(--text);outline-offset:2px}.site-nav__link[aria-current=page]{font-weight:600}@media(prefers-reduced-motion:reduce){.site-nav__indicator{display:none}.site-nav__link[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}}.site-header__actions{display:flex;align-items:center;justify-content:center;flex-shrink:0;gap:var(--space-2);padding-left:var(--space-4);margin-left:var(--space-2);border-left:1px solid var(--border)}.lang-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;height:2.75rem;padding:0 var(--space-2);border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--text);font-size:var(--text-sm);font-weight:600;letter-spacing:var(--tracking-wide);text-decoration:none;line-height:1;cursor:pointer}.lang-toggle:hover{opacity:.88}.lang-toggle:focus-visible{outline:2px solid var(--text);outline-offset:3px}.theme-toggle{position:static;z-index:auto;display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;min-width:2.75rem;min-height:2.75rem;padding:0;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--text);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease}.theme-toggle:hover{opacity:.88}.theme-toggle:focus-visible{outline:2px solid var(--text);outline-offset:3px}.theme-toggle__icons{position:relative;display:grid;place-items:center;width:1.25rem;height:1.25rem}.theme-toggle__icon{grid-area:1 / 1}.theme-toggle__icon--sun{display:none}.theme-toggle__icon--moon,html[data-theme=dark] .theme-toggle__icon--sun{display:block}html[data-theme=dark] .theme-toggle__icon--moon{display:none}main{flex:1 0 auto;width:100%;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;padding:var(--page-pad-y) var(--page-pad-x);padding-bottom:calc(var(--page-pad-y) + env(safe-area-inset-bottom,0px));box-sizing:border-box;position:relative;z-index:1}main:has(.hero){justify-content:center}main>*{width:min(100%,var(--content-max))}.wrap{width:100%;max-width:var(--content-max)}.hero{display:grid;gap:var(--space-10);align-items:center;width:100%}@media(min-width:900px){.hero{grid-template-columns:1fr 1fr;column-gap:var(--space-10);row-gap:var(--space-8);align-items:center}}.hero-copy h1{font-weight:600;font-size:var(--text-4xl);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);margin:0 0 var(--space-3);text-wrap:balance;perspective:900px}.hero-copy h1 .gsap-word{display:inline-block;transform-origin:50% 100%}.hero-subtitle{font-size:var(--text-2xl);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--text);margin:0 0 var(--space-5);text-wrap:balance;max-width:var(--measure)}.lede{font-size:var(--text-lg);line-height:var(--leading-snug);color:var(--muted);margin:0 0 var(--space-8);max-width:var(--measure-tight)}.cta-row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:var(--space-3) var(--space-6);font-family:var(--font);font-size:var(--text-sm);font-weight:500;line-height:1;border-radius:var(--radius);border:1px solid var(--text);background:var(--bg);color:var(--text);cursor:pointer;text-decoration:none;transition:background .15s ease,color .15s ease,border-color .15s ease}.btn:focus-visible{outline:2px solid var(--text);outline-offset:3px}.btn:hover{background:var(--text);color:var(--bg)}.btn-primary{background:var(--text);color:var(--bg);border-color:var(--text)}.btn-primary:hover{background:var(--bg);color:var(--text)}.btn-ghost{border-color:var(--border);color:var(--text);background:var(--bg)}.btn-ghost:hover{background:var(--text);color:var(--bg);border-color:var(--text)}.photo-wrap{justify-self:center;max-width:min(100%,16rem);will-change:transform,opacity}.photo-wrap img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:50%;border:1px solid var(--border);box-shadow:var(--shadow-card);transition:box-shadow var(--theme-dur) var(--ease-theme)}.wrap>.section-title:first-child{font-size:var(--text-3xl);margin-bottom:var(--space-8)}.section-title{font-weight:600;font-size:var(--text-2xl);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);margin:0 0 var(--space-5);text-wrap:balance}.section-title.mt-section{margin-top:var(--section-gap);margin-bottom:var(--space-6)}.prose{max-width:var(--measure);color:var(--muted);font-size:var(--text-base);line-height:var(--leading-relaxed)}.prose p{margin:0 0 var(--space-5)}.prose p:last-child{margin-bottom:0}.prose strong{color:var(--text);font-weight:600}.card-grid{display:grid;gap:var(--space-4);grid-template-columns:1fr;perspective:1200px}@media(min-width:560px){.card-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-5)}}.card{position:relative;padding:var(--space-6);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:none;transform-style:preserve-3d;will-change:transform;overflow:hidden;transition:border-color .2s var(--ease-theme, ease)}.card:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(circle 7.5rem at var(--card-mx, 50%) var(--card-my, 50%),color-mix(in srgb,var(--text) 14%,transparent) 0%,transparent 68%)}.card.is-card-lit:after{opacity:1;transition:opacity .12s ease}.card>*{position:relative;z-index:1}@media(hover:hover)and (prefers-reduced-motion:no-preference){.card:hover,.card:focus-within{border-color:color-mix(in srgb,var(--text) 15%,var(--border))}@media(pointer:coarse),(max-width:899px){.card{transition:border-color .2s var(--ease-theme, ease),scale .2s var(--ease-theme, ease)}.card:hover,.card:focus-within{scale:1.02}}}.card h3{font-size:var(--text-base);font-weight:600;line-height:var(--leading-snug);margin:0 0 var(--space-3);color:var(--text)}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.card-head h3{margin-bottom:0}.skill-rating{font-size:var(--text-sm);letter-spacing:.08em;color:color-mix(in srgb,var(--text) 78%,var(--muted));white-space:nowrap}.card p{margin:0;font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--muted)}.wrap--contact{max-width:var(--content-max)}.contact-hero{margin-bottom:var(--space-10)}.contact-hero__title{margin-bottom:var(--space-4)}.contact-hero__intro{max-width:var(--measure-tight);margin:0}.contact-hub{display:grid;gap:var(--space-5);grid-template-columns:1fr;list-style:none;margin:0;padding:0}@media(min-width:720px){.contact-hub{grid-template-columns:repeat(2,1fr);gap:var(--space-6)}}.contact-portal{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-8);min-height:14rem;padding:var(--space-10) var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);overflow:hidden}.contact-portal__mark{font-size:clamp(3.25rem,14vw,5rem);font-weight:700;line-height:1;letter-spacing:-.06em;color:color-mix(in srgb,var(--text) 9%,var(--border));pointer-events:none;user-select:none}.contact-portal__mark--linkedin{font-size:clamp(2.75rem,12vw,4.25rem);letter-spacing:-.1em;text-transform:lowercase}.contact-portal__action{width:100%;max-width:18rem;word-break:break-all}.contact-footnote{margin-top:var(--space-10);max-width:var(--measure)}@media(hover:hover)and (prefers-reduced-motion:no-preference){.contact-portal:hover,.contact-portal:focus-within{border-color:color-mix(in srgb,var(--text) 15%,var(--border))}}@media(prefers-reduced-motion:reduce){.contact-portal{clip-path:none!important}}.tag-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}.tag{font-size:var(--text-xs);font-weight:500;line-height:1.3;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--muted);letter-spacing:var(--tracking-wide)}.timeline{display:grid;gap:var(--space-4);margin:0;padding:0;list-style:none}.timeline li{padding:var(--space-5) var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);transition:border-color .2s var(--ease-theme, ease),scale .2s var(--ease-theme, ease)}@media(hover:hover)and (prefers-reduced-motion:no-preference){.timeline li:hover,.timeline li:focus-within{border-color:color-mix(in srgb,var(--text) 12%,var(--border));scale:1.02}}.timeline h3{font-size:var(--text-sm);font-weight:600;line-height:var(--leading-snug);margin:0 0 var(--space-2);color:var(--text)}.timeline .meta{font-size:var(--text-xs);color:var(--muted);margin-bottom:var(--space-3);letter-spacing:var(--tracking-wide)}.timeline p{margin:0;font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--muted)}body:has(.chi-hscroll){padding-bottom:var(--chi-footer-h, 3.25rem)}body:has(.chi-hscroll) footer.site-footer-min{position:fixed;bottom:0;left:0;right:0;z-index:45}main:has(.chi-hscroll){padding:0;align-items:stretch}main:has(.chi-hscroll)>*{width:100%;max-width:none}.chi-hscroll{width:100%}.chi-hscroll__pin{position:relative;display:flex;align-items:center;justify-content:center;height:calc(100dvh - var(--chi-header-h, 4rem) - var(--chi-footer-h, 3.25rem));min-height:calc(100dvh - var(--chi-header-h, 4rem) - var(--chi-footer-h, 3.25rem));overflow:hidden;container-type:inline-size}.chi-hscroll__stage{position:relative;display:flex;flex-direction:column;align-items:stretch;width:100%}.chi-hscroll__track{display:flex;align-items:center;gap:clamp(var(--space-6),4vw,var(--space-10));width:max-content;max-width:none;padding-left:var(--page-pad-x);padding-right:max(var(--page-pad-x),calc((100cqw - min(88cqw,36rem))/2));will-change:transform}.chi-hscroll__sep{display:none}.chi-hscroll__chapters{display:flex;justify-content:center;gap:clamp(var(--space-4),3vw,var(--space-8));width:min(88cqw,36rem);margin:var(--space-4) auto 0;padding:0;list-style:none}.chi-hscroll__chapter{font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--muted);opacity:.3;white-space:nowrap;transition:color .2s ease}.chi-hscroll__chapter.is-active{color:var(--text);font-weight:600}.chi-hscroll__progress{position:relative;width:min(88cqw,36rem);height:2px;margin:var(--space-3) auto 0;background:color-mix(in srgb,var(--border) 70%,transparent);border-radius:1px;overflow:hidden;pointer-events:none;flex-shrink:0}.chi-zone{flex-shrink:0;box-sizing:border-box;transform-origin:center center;will-change:transform,opacity,filter}.chi-zone--prose{flex:0 0 min(92cqw,48rem);display:flex;flex-direction:column;justify-content:center;max-height:calc(100dvh - var(--chi-header-h, 4rem) - var(--chi-footer-h, 3.25rem) - var(--space-16));padding:var(--space-4) 0}.chi-zone__prose{display:grid;gap:var(--space-5)}.chi-zone__prose p{margin:0;font-size:clamp(1.25rem,2.5vw,1.75rem);line-height:var(--leading-relaxed);color:var(--muted)}.chi-zone__prose p,.chi-slide h3,.chi-slide .meta,.chi-slide__body{will-change:transform,opacity}.chi-gate{flex:0 0 100%;display:flex;align-items:center;justify-content:center;height:calc(100dvh - var(--chi-header-h, 4rem) - var(--chi-footer-h, 3.25rem));padding:0 var(--page-pad-x);box-sizing:border-box;overflow:hidden}.chi-gate__title{margin:0;width:100%;font-size:clamp(5rem,min(28vw,22vh),22rem);font-weight:600;line-height:.85;letter-spacing:-.03em;text-transform:uppercase;color:var(--text);text-align:center;will-change:transform,opacity}.chi-slide{flex:0 0 min(92cqw,42rem);display:flex;flex-direction:column;justify-content:center;max-height:calc(100dvh - var(--chi-header-h, 4rem) - var(--chi-footer-h, 3.25rem) - var(--space-16));padding:var(--space-4) 0;box-sizing:border-box;will-change:transform,opacity}.chi-slide h3{font-size:clamp(1.25rem,2.4vw,1.5rem);font-weight:600;line-height:var(--leading-snug);margin:0 0 var(--space-2);color:var(--text)}.chi-slide .meta{font-size:var(--text-sm);color:var(--muted);margin:0 0 var(--space-4);letter-spacing:var(--tracking-wide)}.chi-slide__body{margin:0;font-size:clamp(1.0625rem,2vw,1.3125rem);line-height:var(--leading-relaxed);color:var(--muted)}body[data-chi-chapter=intro]{--chi-chapter-accent: var(--text)}body[data-chi-chapter=percorso]{--chi-chapter-accent: color-mix(in srgb, var(--text) 85%, var(--muted))}body[data-chi-chapter=formazione]{--chi-chapter-accent: color-mix(in srgb, var(--text) 70%, var(--muted))}.chi-hscroll__hint{position:absolute;right:var(--page-pad-x);bottom:calc(var(--space-6) + var(--space-10));margin:0;font-size:var(--text-sm);letter-spacing:var(--tracking-wide);color:var(--muted);z-index:2}.chi-hscroll__hint:after{content:" →"}.chi-hscroll__progress-bar{display:block;width:100%;height:100%;background:color-mix(in srgb,var(--text) 35%,var(--border));transform:scaleX(0);transform-origin:left center}.chi-hscroll--stack .chi-hscroll__pin{height:auto;min-height:0;overflow:visible}.chi-hscroll--stack .chi-hscroll__track{flex-direction:column;align-items:stretch;width:100%;max-width:var(--content-max);margin-inline:auto;padding:var(--space-6) var(--page-pad-x) var(--space-10);gap:var(--space-8);transform:none!important}.chi-hscroll--stack .chi-gate{flex:none;width:100%;height:auto;min-height:0;padding:var(--space-10) 0 var(--space-2);justify-content:flex-start;overflow:visible;opacity:1!important;visibility:visible!important}.chi-hscroll--stack .chi-gate__title{font-size:clamp(2rem,9vw,2.75rem);font-weight:600;line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-transform:none;text-align:left;opacity:1!important;transform:none!important;filter:none!important}.chi-hscroll--stack .chi-zone,.chi-hscroll--stack .chi-slide{flex:none;width:100%;max-width:none;max-height:none;min-height:0;opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important}.chi-hscroll--stack .chi-zone--prose{padding:0 0 var(--space-4)}.chi-hscroll--stack .chi-zone__prose p,.chi-hscroll--stack .chi-slide h3,.chi-hscroll--stack .chi-slide .meta,.chi-hscroll--stack .chi-slide__body{opacity:1!important;transform:none!important}.chi-hscroll--stack .chi-hscroll__hint,.chi-hscroll--stack .chi-hscroll__progress,.chi-hscroll--stack .chi-hscroll__chapters{display:none}body:has(.chi-hscroll--stack){padding-bottom:0}body:has(.chi-hscroll--stack) footer.site-footer-min{position:relative}@media(prefers-reduced-motion:reduce){.chi-hscroll__pin{min-height:auto;overflow:visible}.chi-hscroll__track{flex-direction:column;width:100%;padding:0 var(--page-pad-x);transform:none!important}.chi-zone,.chi-gate,.chi-slide{flex:none;width:100%;min-height:auto;opacity:1!important;transform:none!important;filter:none!important}.chi-slide{width:100%}.chi-hscroll__hint,.chi-hscroll__progress,.chi-hscroll__chapters{display:none}}footer.site-footer-min{position:relative;flex-shrink:0;width:100%;margin:0;padding:var(--space-5) var(--page-pad-x);padding-bottom:max(var(--space-6),env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--bg);letter-spacing:var(--tracking-wide)}.site-footer-min__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-2) var(--space-3);font-size:var(--text-xs);line-height:var(--leading-snug);color:var(--muted);white-space:normal;text-align:center;opacity:.9}.site-footer-min__copy,.site-footer-min__sep{white-space:nowrap}.site-footer-min__link{color:var(--muted);text-decoration:none;font-weight:500;border-radius:2px}.site-footer-min__link:hover,.site-footer-min__link:focus-visible{color:var(--text);text-decoration:underline;text-underline-offset:.15em}.site-footer-min__link:focus-visible{outline:2px solid var(--text);outline-offset:2px}.not-found{padding-bottom:var(--space-4)}@media(max-width:640px){main{padding:var(--space-6) var(--page-pad-x);padding-bottom:calc(var(--space-8) + env(safe-area-inset-bottom,0px))}.site-header__inner{flex-wrap:nowrap;align-items:center}.site-nav{justify-content:flex-start;gap:var(--space-1) var(--space-2)}.site-nav__link{font-size:var(--text-xs);padding:var(--space-1) var(--space-1)}.site-footer-min__row{font-size:.75rem}}.webgl-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:var(--webgl-opacity);-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 35%,#000 75%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,#000 35%,#000 75%,transparent 100%)}.webgl-bg[data-route=home]{-webkit-mask-image:radial-gradient(ellipse 88% 80% at 72% 48%,#000 22%,transparent 76%);mask-image:radial-gradient(ellipse 88% 80% at 72% 48%,#000 22%,transparent 76%);opacity:.7}.webgl-bg[data-route=competenze]{-webkit-mask-image:radial-gradient(ellipse 58% 80% at 78% 48%,#000 22%,transparent 76%);mask-image:radial-gradient(ellipse 58% 80% at 78% 48%,#000 22%,transparent 76%);opacity:.72}.webgl-bg[data-route=chi-sono]{-webkit-mask-image:radial-gradient(ellipse 92% 78% at 50% 48%,#000 18%,transparent 72%);mask-image:radial-gradient(ellipse 92% 78% at 50% 48%,#000 18%,transparent 72%);opacity:.78}.webgl-bg[data-route=contatti]{-webkit-mask-image:radial-gradient(ellipse 78% 74% at 50% 54%,#000 20%,transparent 76%);mask-image:radial-gradient(ellipse 78% 74% at 50% 54%,#000 20%,transparent 76%);opacity:.76}@media(min-width:900px){.webgl-bg{opacity:.55}.webgl-bg[data-route=home]{opacity:.78}.webgl-bg[data-route=competenze]{opacity:.82}.webgl-bg[data-route=contatti]{opacity:.84}.webgl-bg[data-route=chi-sono]{opacity:.88}}.webgl-bg canvas{display:block;width:100%;height:100%}.site-header{z-index:50}footer.site-footer-min{position:relative;z-index:1}@media(pointer:fine)and (prefers-reduced-motion:no-preference){html.has-custom-cursor,html.has-custom-cursor *{cursor:none!important}.site-cursor{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;will-change:transform}.site-cursor__ring,.site-cursor__dot{position:absolute;top:0;left:0;border-radius:50%;transform:translate(-50%,-50%);transition:width .22s cubic-bezier(.22,1,.36,1),height .22s cubic-bezier(.22,1,.36,1),opacity .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease}.site-cursor__dot{width:5px;height:5px;background:var(--text);box-shadow:0 0 10px color-mix(in srgb,var(--text) 45%,transparent)}.site-cursor__ring{width:26px;height:26px;border:1px solid color-mix(in srgb,var(--text) 55%,transparent);opacity:.42}.site-cursor.is-hover .site-cursor__ring{width:42px;height:42px;opacity:.62;border-color:color-mix(in srgb,var(--text) 75%,transparent)}.site-cursor.is-hover .site-cursor__dot{width:7px;height:7px;box-shadow:0 0 14px color-mix(in srgb,var(--text) 55%,transparent)}.site-cursor.is-press .site-cursor__ring{width:20px;height:20px;opacity:.35}.site-cursor.is-press .site-cursor__dot{transform:translate(-50%,-50%) scale(.55)}html.theme-pokemon .site-cursor__dot{background:var(--poke-accent-bright);box-shadow:0 0 12px color-mix(in srgb,var(--poke-accent-bright) 55%,transparent)}html.theme-pokemon .site-cursor__ring{border-color:color-mix(in srgb,var(--poke-accent-mid) 70%,transparent)}}@media(prefers-reduced-motion:no-preference){html.js-page-anim-pending [data-animate=title],html.js-page-anim-pending [data-animate=prose],html.js-page-anim-pending [data-animate=section-title],html.js-page-anim-pending [data-animate=card],html.js-page-anim-pending [data-animate=contact-card],html.js-page-anim-pending [data-animate=contact-note],html.js-page-anim-pending [data-animate=timeline-item]{opacity:0}}.site-nav{position:relative}.site-nav__indicator{position:absolute;bottom:.35rem;left:0;height:2px;width:0;opacity:0;background:var(--text);border-radius:1px;pointer-events:none;z-index:1}html.theme-pokemon .site-nav__indicator{background:var(--poke-accent-mid)}:root{--vt-duration: .85s}::view-transition-group(root){animation-duration:var(--vt-duration)}html.vt-competenze ::view-transition-old(root){animation:vt-zoom-out .8s cubic-bezier(.4,0,.2,1) both}html.vt-competenze ::view-transition-new(root){animation:vt-zoom-in .92s cubic-bezier(.22,1,.36,1) both}@keyframes vt-zoom-out{to{opacity:.15;transform:scale(.88);filter:blur(4px)}}@keyframes vt-zoom-in{0%{opacity:0;transform:scale(1.04);filter:blur(8px)}}[data-vt-hero] .photo-wrap{view-transition-name:hero-photo}::view-transition-old(hero-photo),::view-transition-new(hero-photo){animation-duration:.7s}@media(prefers-reduced-motion:no-preference){html.js-hero-anim-pending main .hero .hero-copy h1,html.js-hero-anim-pending main .hero .hero-copy .hero-subtitle,html.js-hero-anim-pending main .hero .hero-copy .lede,html.js-hero-anim-pending main .hero .hero-copy .cta-row a,html.js-hero-anim-pending main .hero .photo-wrap{opacity:0}}::view-transition-group(root){animation-duration:.85s;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-old(root){animation:vt-pop-out .72s cubic-bezier(.4,0,.2,1) both}::view-transition-new(root){animation:vt-pop-in .88s cubic-bezier(.22,1,.36,1) both}@keyframes vt-pop-out{0%{opacity:1;transform:scale(1) translateY(0);filter:none}to{opacity:.22;transform:scale(.93) translateY(2.5%);filter:brightness(.97)}}@keyframes vt-pop-in{0%{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(1.35rem) scale(.97);filter:blur(12px)}42%{opacity:1;filter:blur(0)}to{opacity:1;clip-path:inset(0 0 0 0);transform:translateY(0) scale(1);filter:none}}@media(prefers-reduced-motion:reduce){::view-transition-group(root){animation-duration:.01ms}::view-transition-old(root),::view-transition-new(root){animation:none}}html.theme-pokemon{--poke-accent: #0f766e;--poke-accent-mid: #14b8a6;--poke-accent-bright: #5eead4;--poke-shimmer: #818cf8;--poke-bg-light: #e8f4f4;--poke-bg-dark: #0f1722}html.theme-pokemon[data-theme=light] body{background-color:var(--poke-bg-light);background-image:none}html.theme-pokemon[data-theme=dark] body{background-color:var(--poke-bg-dark);background-image:none}html.theme-pokemon[data-theme=light] .site-header,html.theme-pokemon[data-theme=light] footer.site-footer-min{background-color:var(--poke-bg-light)}html.theme-pokemon[data-theme=dark] .site-header,html.theme-pokemon[data-theme=dark] footer.site-footer-min{background-color:var(--poke-bg-dark)}html.theme-pokemon[data-theme=light] .btn-primary{background-color:var(--poke-accent-mid);color:#042f2e;border-color:var(--poke-accent);box-shadow:none}html.theme-pokemon[data-theme=light] .btn-primary:hover{background-color:var(--text);color:var(--poke-bg-light);border-color:var(--text)}html.theme-pokemon[data-theme=dark] .btn-primary{background-color:var(--poke-accent-mid);color:#042f2e;border-color:var(--poke-accent);box-shadow:none}html.theme-pokemon[data-theme=dark] .btn-primary:hover{background-color:var(--poke-accent-bright);color:#042f2e;border-color:var(--poke-accent)}html.theme-pokemon .site-nav__link[aria-current=page]{color:var(--poke-accent-mid)}html.theme-pokemon .site-footer-min__link:hover{color:var(--poke-accent-mid);opacity:1}html.theme-pokemon ::selection{background:#14b8a659}.pokemon-easter-toast{position:fixed;z-index:10050;left:50%;bottom:max(1.25rem,env(safe-area-inset-bottom,0px));transform:translate(-50%);max-width:min(22rem,calc(100vw - 2rem));padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:600;line-height:var(--leading-snug);letter-spacing:var(--tracking-wide);color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card),0 14px 42px #0f0f1924;text-align:center;text-wrap:balance;pointer-events:none}html.theme-pokemon .pokemon-easter-toast--shiny{border:2px solid var(--poke-shimmer);box-shadow:var(--shadow-card)}@keyframes pokemon-toast-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(prefers-reduced-motion:no-preference){.pokemon-easter-toast:not([hidden]){animation:pokemon-toast-in .38s cubic-bezier(.22,1,.36,1)}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
