@font-face{font-family:Metrophobic;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/metrophobic-latin-400.woff2)format("woff2")}:root{font-synthesis:none;--night:#090b10;--glass:#0c0f15b8;--solid:#11151c;--steel:#262d37;--steel-2:#3a4250;--ink:#eef1f5;--muted:#93a0b0;--soft:#c4ccd6;--tactile:#f2b632;--led:#ff6a2b;--st-home:#6cc4ff;--st-projects:#3fe0a0;--st-services:#ffb24f;--st-pricing:#ff5a45;--st-contact:#e9e6df;--accent:var(--st-home);--accent-ink:#06121c;--tint:8 13 19;--f-font:"Metrophobic", system-ui, -apple-system, "Segoe UI", sans-serif;--f-display:var(--f-font);--f-body:var(--f-font);--f-mono:var(--f-font);--f-led:var(--f-font);--ease-train:cubic-bezier(.65, 0, .25, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@property --accent{syntax:"<color>";inherits:true;initial-value:#6cc4ff}:root{transition:--accent .9s}:root[data-page=home]{--accent:var(--st-home);--accent-ink:#06121c;--tint:8 13 19}:root[data-page=projects]{--accent:var(--st-projects);--accent-ink:#04170f;--tint:6 15 11}:root[data-page=services]{--accent:var(--st-services);--accent-ink:#1c1206;--tint:17 12 7}:root[data-page=pricing]{--accent:var(--st-pricing);--accent-ink:#1c0806;--tint:17 8 7}:root[data-page=contact]{--accent:var(--st-contact);--accent-ink:#121212;--tint:11 11 11}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{background:var(--night);color:var(--ink);font-family:var(--f-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;overflow:hidden}img,video{max-width:100%;display:block}input,textarea,select{font-family:inherit}button,a{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.ui{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));pointer-events:none;grid-template-rows:auto 1fr;display:grid;position:fixed;inset:0}.ui>*{pointer-events:auto}@media (width>=821px) and (height>=501px){.ui{--bar-w:clamp(150px, 12vw, 230px);grid-template-rows:minmax(0,1fr)}.main{padding-inline:calc(var(--bar-w) + 12px)}}html.in-viaggio :is(.main,.dock-gl,.busta-gl,.sali,.top>:not(.line,[data-sound-toggle])){opacity:0;visibility:hidden;pointer-events:none}html.in-viaggio.chiusura :is(.main,.dock-gl,.busta-gl,.sali,.top>:not(.line,[data-sound-toggle])){animation:.35s ease-in viaggio-via}html.ritorno :is(.main,.dock-gl,.busta-gl,.sali,.top>:not(.line,[data-sound-toggle])){animation:.35s ease-out viaggio-torna}html.togli-home .main,html.togli-barra .top,html.togli-treno .sali,html.togli-ombre :is(.shade,.edge),html.togli-luce :is(.glow,.streak){display:none!important}html.in-viaggio .line{pointer-events:none}html.in-viaggio::view-transition-old(root){animation:none}html.in-viaggio::view-transition-new(root){animation:none}@keyframes viaggio-via{0%{opacity:1;visibility:visible;filter:blur()}to{opacity:0;visibility:visible;filter:blur(6px)}}@keyframes viaggio-torna{0%{opacity:0;filter:blur(6px)}to{opacity:1;filter:blur()}}.wrap{width:100%;max-width:1440px;margin:0 auto;padding-inline:clamp(0px,2.5vw,40px)}.main{align-items:center;min-height:0;display:flex}:root[data-page=home] .main{align-items:flex-start}::view-transition-old(root){animation-duration:.35s}::view-transition-new(root){animation-duration:.35s}:root{--treno-h:0px}@media (width<=820px),(height<=500px){:root{--treno-h:64px}.wrap{padding-inline:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}html body #iubenda-cs-banner.iubenda-cs-visible:not(#_){height:auto!important;top:auto!important;bottom:max(16px, env(safe-area-inset-bottom,0px))!important;pointer-events:none!important;flex-direction:column!important;justify-content:flex-end!important;align-items:center!important;width:auto!important;padding:0 16px!important;display:flex!important;left:0!important;right:0!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-container{pointer-events:auto!important;background:#0a0d12f5!important;border:1px solid #3a4250!important;border-radius:10px!important;width:100%!important;max-width:980px!important;margin:0 auto!important;box-shadow:0 18px 50px #0009!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-content{border-radius:10px!important;height:auto!important;max-height:none!important;padding:0!important;font-family:inherit!important;overflow:hidden!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-rationale{background:#0a0d12f5!important;flex-direction:column!important;align-items:stretch!important;gap:14px!important;max-width:none!important;height:auto!important;max-height:none!important;margin:0!important;padding:18px 54px 18px 24px!important;display:flex!important;position:relative!important;overflow:visible!important}html body #iubenda-cs-banner:not(#_) .iubenda-banner-content{color:#c9d0d9!important;flex:none!important;max-height:none!important;margin:0!important;padding:0!important;font-family:inherit!important;font-size:13.5px!important;line-height:1.55!important;overflow:visible!important}html body #iubenda-cs-banner:not(#_) .iubenda-banner-content :is(p,div,span,strong){font-family:inherit!important;font-size:inherit!important;line-height:inherit!important;color:inherit!important}html body #iubenda-cs-banner:not(#_) .iubenda-banner-content p{margin:0!important;display:inline!important}html body #iubenda-cs-banner:not(#_) .iubenda-banner-content p:not(:first-child):before{content:" "}html body #iubenda-cs-banner:not(#_) #iubenda-cs-paragraph{margin:0!important}html body #iubenda-cs-banner:not(#_) .iubenda-banner-content strong{color:#eef1f5!important}html body #iubenda-cs-banner:not(#_) .iubenda-banner-content a{color:#5aaaff!important;text-underline-offset:2px!important;text-decoration:underline!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-opt-group{flex-flow:row!important;flex:none!important;justify-content:flex-end!important;align-items:center!important;gap:8px!important;margin:0!important;padding:0!important;display:flex!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-opt-group>div{flex-direction:row!important;gap:8px!important;width:auto!important;margin:0!important;display:flex!important;position:static!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-opt-group button{white-space:nowrap!important;box-shadow:none!important;border-radius:20px!important;margin:0!important;padding:9px 18px!important;font-family:inherit!important;font-size:13.5px!important;font-weight:600!important;line-height:1.2!important;transition:background .2s,color .2s,border-color .2s!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-opt-group :is(.iubenda-cs-reject-btn,.iubenda-cs-accept-btn){color:#0b0e13!important;background:#eef1f5!important;border:1px solid #eef1f5!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-opt-group :is(.iubenda-cs-reject-btn,.iubenda-cs-accept-btn):hover{background:#cfe5ff!important;border-color:#5aaaff!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-opt-group .iubenda-cs-customize-btn{color:#c9d0d9!important;background:0 0!important;border:1px solid #3a4250!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-opt-group .iubenda-cs-customize-btn:hover{color:#eef1f5!important;border-color:#93a0b0!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-close-btn{color:#93a0b0!important;opacity:1!important;margin:0!important;font-size:20px!important;top:10px!important;right:12px!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-container{flex-direction:column!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-brand-badge-outer{z-index:1!important;background:0 0!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important;position:absolute!important;inset:auto 12px 12px auto!important;transform:none!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-brand-badge{opacity:.85!important;background-position:50%!important;background-size:9px!important;border-radius:50%!important;width:26px!important;min-width:0!important;height:26px!important;margin:0!important;padding:0!important;transform:none!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-brand-badge>span{clip:rect(0 0 0 0)!important;white-space:nowrap!important;width:1px!important;height:1px!important;position:absolute!important;overflow:hidden!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-rationale{padding-bottom:18px!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-opt-group{margin-right:26px!important}@media (width<=820px),(height<=500px){html body #iubenda-cs-banner.iubenda-cs-visible:not(#_){bottom:max(10px, env(safe-area-inset-bottom,0px))!important;padding:0 10px!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-rationale{gap:12px!important;padding:16px 16px 14px!important}html body #iubenda-cs-banner:not(#_) .iubenda-banner-content{padding-right:22px!important;font-size:12.5px!important;line-height:1.5!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-opt-group{gap:6px!important;margin-right:30px!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-opt-group>div{flex:1 1 0!important;gap:6px!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-opt-group>div:last-child{flex:2 1 0!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-opt-group button{white-space:normal!important;flex:1 1 0!important;width:auto!important;min-width:0!important;padding:8px 6px!important;font-size:12px!important}html body #iubenda-cs-banner:not(#_) .iubenda-cs-brand-badge-outer{bottom:16px!important;right:10px!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@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(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}.vg-carica{overflow:visible}.vg-carica .vg-line{fill:none;stroke:#e9fcff;stroke-width:5px;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:3s ease-in-out infinite vg-disegna}.vg-carica .vg-fill{fill:#0b3b4f;opacity:0;animation:3s ease-in-out infinite vg-riempi}.vg-carica .vg-halo{fill:none;stroke:#3ccbff;stroke-width:14px;opacity:0;animation:3s ease-in-out infinite vg-alone}.vg-carica .vg-g>*{animation-delay:.25s}@keyframes vg-disegna{0%{stroke-dashoffset:1px;opacity:1}40%,85%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}@keyframes vg-riempi{0%,35%{opacity:0}55%,85%{opacity:1}to{opacity:0}}@keyframes vg-alone{0%,40%{opacity:0}58%{opacity:.9}70%{opacity:.45}80%{opacity:.8}to{opacity:0}}@media (prefers-reduced-motion:reduce){.vg-carica .vg-line,.vg-carica .vg-fill,.vg-carica .vg-halo{stroke-dashoffset:0;opacity:1;animation:none}.vg-carica .vg-halo{opacity:.7}}.scene{background:var(--night);-webkit-touch-callout:none;position:fixed;inset:0;overflow:hidden}.layer{opacity:0;transition:opacity .9s ease, transform 1.2s var(--ease-train), filter 1.2s;position:absolute;inset:0}.layer.on{opacity:1}.scene.moving .layer{filter:blur(2px)brightness(.7);transform:scale(1.07)translate(-2%)}.layer>*{object-fit:cover;object-position:60% 50%;width:100%;max-width:none;height:100%;position:absolute;inset:0}.clip{opacity:0}.clip.on{opacity:1}.layer.ride{pointer-events:none;transition:none}.scene[data-variant=tel] .layer>[data-tel]{object-position:50% 50%}.parallax>.clip,.parallax>.still{transform-origin:60%;transform:scale(1.04167)}.scene[data-variant=tel] .parallax>[data-tel]{transform-origin:50%}@media (aspect-ratio<=62/100){.scene[data-variant=tel] .parallax>:is(.clip,.still):not(.largo){transform:none}}.scene[data-variant=pc] .parallax>:is(.clip,.still):not(.largo){transform:none}.layer.ride>.clip{transition:transform 4s cubic-bezier(.45,0,.55,1)}.layer.ride>.clip.largo{transform:var(--largo,none)}.layer.ride>.clip.subito{transition:none}.gl{opacity:0;pointer-events:none;transition:opacity .45s}.gl.on{opacity:1}.gl.subito{transition:none}.shade{background:radial-gradient(130% 100% at 50% 50%, rgb(var(--tint) / 0) 0%, rgb(var(--tint) / 0) 55%, rgb(var(--tint) / .55) 100%), linear-gradient(0deg, rgb(var(--tint) / .6) 0%, rgb(var(--tint) / 0) 22%);position:absolute;inset:0}.edge{pointer-events:none;background:radial-gradient(#0000 28%,#000000a6 100%),linear-gradient(90deg,#00000080 0%,#0000 40% 75%,#00000080 100%),linear-gradient(#00000073 0%,#0000 36% 77%,#00000080 100%);position:absolute;inset:0}.glow{pointer-events:none;background:radial-gradient(500px circle at 50% 50%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 60%);width:1000px;height:1000px;transform:translate(calc(var(--mx,70vw) - 500px), calc(var(--my,40vh) - 500px));will-change:transform;position:absolute;top:0;left:0}.streak{pointer-events:none;filter:blur(10px);background:linear-gradient(90deg,#0000,#ffecbe00 20%,#ffecbe38 70%,#ffffff73 92%,#0000);height:34%;position:absolute;top:46%;left:0;right:0;transform:translate(-110%)}.streak.run{animation:.9s cubic-bezier(.5,0,.3,1) streak}@keyframes streak{to{transform:translate(110%)}}.salto-velo{z-index:3;pointer-events:none;opacity:0;background:#040507;transition:opacity .8s ease-out;position:absolute;inset:0}.salto-carica{opacity:0;width:min(180px,42vw);height:auto;transition:opacity .3s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scene.salto .salto-carica{opacity:1;transition:opacity .4s .3s}.scene.salto .salto-velo{opacity:1;transition:opacity .45s ease-in}.scene.salto .layer{transition:transform .45s ease-in,opacity;transform:scale(1.18)}@media (pointer:coarse){.scene.moving .layer{filter:none}.streak,.glow{display:none}}@media (width<=820px),(height<=500px){.layer>*{object-position:74% 50%}.parallax>.clip,.parallax>.still{transform-origin:74%}.shade{background:linear-gradient(180deg, rgb(var(--tint) / .5) 0%, rgb(var(--tint) / 0) 18%), linear-gradient(0deg, rgb(var(--tint) / .6) 0%, rgb(var(--tint) / 0) 22%)}.edge{background:radial-gradient(#0000 45%,#00000073 100%),linear-gradient(#00000059 0%,#0000 22% 80%,#0006 100%)}}.avviso-linea{z-index:4;font-family:var(--f-led);text-align:center;color:#ff8a2a;opacity:0;visibility:hidden;pointer-events:none;background:#0a0806db;border:1px solid #ff8a2a73;border-radius:6px;justify-items:center;gap:8px;padding:16px 26px 14px;transition:opacity .3s,transform .3s,visibility 0s .3s;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.96);box-shadow:0 0 24px #ff8a2a40,inset 0 0 18px #ff8a2a14}html.treno-attesa .avviso-linea{opacity:1;visibility:visible;transition:opacity .3s,transform .3s,visibility;transform:translate(-50%,-50%)}.avviso-titolo{letter-spacing:.12em;text-transform:uppercase;text-shadow:0 0 8px #ff8a2acc;align-items:center;gap:10px;font-size:clamp(18px,2vw,26px);animation:1.1s steps(2,jump-none) infinite avviso-lampeggia;display:inline-flex}.avviso-luce{background:#ff8a2a;border-radius:50%;width:10px;height:10px;box-shadow:0 0 10px #ff8a2a}.avviso-testo{letter-spacing:.06em;color:#ffaa6ed9;font-size:clamp(12px,1.1vw,15px)}@keyframes avviso-lampeggia{50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.avviso-titolo{animation:none}}.line{--led:var(--accent);--led-core:color-mix(in srgb, var(--accent) 72%, white);--led-glow:color-mix(in srgb, var(--accent) 75%, transparent);--led-off:color-mix(in srgb, var(--accent) 16%, transparent);--dash-off:color-mix(in srgb, var(--accent) 38%, transparent);justify-self:center;align-items:center;width:100%;max-width:1400px;display:flex}.stop{font-family:var(--f-mono);letter-spacing:.16em;border:1px solid var(--led-off);color:color-mix(in srgb, var(--accent) 55%, transparent);background:#080a0e8c;border-radius:2px;flex:none;padding:.64em .9em .55em;font-size:clamp(14px,1.3vw,24px);font-weight:600;line-height:1;transition:color .3s,border-color .3s,background .3s,box-shadow .3s,text-shadow .3s}.stop:hover{color:color-mix(in srgb, var(--accent) 85%, transparent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.stop[aria-current],.line.in-corsa .stop.partenza{color:color-mix(in srgb, var(--accent) 22%, white);border-color:var(--led);background:color-mix(in srgb, var(--accent) 16%, transparent);text-shadow:0 0 4px var(--led), 0 0 10px var(--led-glow);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent), 0 0 14px var(--led-glow), inset 0 0 10px color-mix(in srgb, var(--accent) 35%, transparent);animation:3.2s ease-in-out infinite led}@keyframes led{50%{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent), 0 0 9px color-mix(in srgb, var(--accent) 55%, transparent), inset 0 0 8px color-mix(in srgb, var(--accent) 28%, transparent)}}.seg{flex:1;justify-content:space-evenly;align-items:center;gap:5px;min-width:0;padding:0 8px;display:flex}.dash{background:var(--dash-off);border-radius:1px;flex:none;width:2px;height:10px;transition:background .25s,box-shadow .25s,width .35s,height .35s}.dash.on{background:var(--led-core);box-shadow:0 0 4px var(--led), 0 0 9px var(--led-glow)}.dash.on[style*=--dash-col]{background:color-mix(in srgb, var(--dash-col) 72%, white);box-shadow:0 0 4px var(--dash-col), 0 0 9px color-mix(in srgb, var(--dash-col) 75%, transparent)}.line.in-corsa .stop[aria-current]:not(.partenza){color:color-mix(in srgb, var(--accent) 55%, transparent);border-color:var(--led-off);text-shadow:none;box-shadow:none;background:#080a0e8c;animation:none}.seg.viaggio,.line.in-corsa>:not(.partenza,.prossima,.viaggio){display:none}.line.in-corsa .seg.viaggio{order:1;display:flex}.line.in-corsa .stop.partenza{order:0}.line.in-corsa .stop.prossima{order:2}html.chiusura .line>*,html.ritorno .line>*{animation:.35s ease-out linea-cambia}@keyframes linea-cambia{0%{opacity:0}}html.treno-attesa .line.in-corsa .seg.viaggio .dash{animation:1.2s ease-in-out infinite attesa}html.treno-attesa .line.in-corsa .seg.viaggio .dash:nth-child(3n+2){animation-delay:.2s}html.treno-attesa .line.in-corsa .seg.viaggio .dash:nth-child(3n){animation-delay:.4s}@keyframes attesa{50%{background:var(--led-core);box-shadow:0 0 6px var(--led-glow)}}.line.in-corsa .dash.tratto{width:16px;height:3px}.line.in-corsa .dash.qui{border-radius:2px;width:24px;height:5px;animation:.8s ease-in-out infinite qui}@keyframes qui{50%{box-shadow:0 0 6px var(--dash-col,var(--led)), 0 0 16px var(--dash-col,var(--led-glow))}}.stop.prossima{border-color:var(--led);animation:.9s ease-in-out infinite prossima}@keyframes prossima{50%{color:color-mix(in srgb, var(--accent) 22%, white);box-shadow:0 0 12px var(--led-glow)}}@media (prefers-reduced-motion:reduce){.stop[aria-current],.stop.prossima,.line.in-corsa .dash.qui{animation:none}}@media (width<=820px),(height<=500px){.line{justify-self:stretch;max-width:none}.stop{letter-spacing:.06em;padding:5px 4px 4px;font-size:8px}.seg{gap:2px;padding:0 3px}.dash{width:2px;height:10px}.line.in-corsa .dash.tratto{width:3px;height:15px}.line.in-corsa .dash.qui{width:4px;height:20px}.line.in-corsa .stop{letter-spacing:.14em;padding:8px 10px 7px;font-size:13px}.line.in-corsa .seg.viaggio{gap:4px;padding:0 8px}}@media (width>=821px) and (height>=501px){.line{flex-direction:column;align-self:center;align-items:stretch;width:100%;height:100%;max-height:900px}.stop{text-align:center;padding-block:.8em .7em;font-size:clamp(14px,1.15vw,21px)}.seg{flex-direction:column;padding:8px 0}.dash{width:10px;height:2px}}.top{grid-template-columns:1fr;align-items:center;min-height:110px;padding-block:20px;display:grid;position:relative}.sound{border:1px solid var(--steel-2);width:40px;height:40px;color:var(--muted);background:#0a0d128c;border-radius:50%;place-items:center;transition:color .2s,border-color .2s;display:grid}.sound svg{width:20px;height:20px}.sound:hover{color:var(--ink);border-color:var(--ink)}.logo{line-height:0;display:block}.logo img{mix-blend-mode:screen;width:auto;height:100%}@media (width>=821px) and (height>=501px){.top{top:0;bottom:0;left:max(16px, env(safe-area-inset-left,0px));width:var(--bar-w);grid-template-rows:auto minmax(0,1fr);row-gap:3vh;min-height:0;margin:0;padding:4vh 0;position:absolute}.logo{justify-self:center;height:clamp(66px,6vw,96px)}.logo img{scale:1.3;-webkit-mask-image:radial-gradient(closest-side,#000 62%,#0000 100%);mask-image:radial-gradient(closest-side,#000 62%,#0000 100%)}.logo{margin-top:-.5vh;translate:calc(clamp(0px,2.5vw,40px)/2 - 2px)}.cookie-menu{position:absolute}.sound{z-index:5;position:fixed;bottom:18px;right:18px}.cookie{bottom:66px}}.cookie-voci{z-index:30;border:1px solid var(--steel-2);background:#0a0d12f0;border-radius:6px;min-width:190px;padding:6px;display:grid;position:fixed;bottom:66px;right:66px;box-shadow:0 8px 28px #0000008c}.cookie-voci[hidden]{display:none}.cookie-voci>*{font-family:var(--f-mono);letter-spacing:.06em;text-align:left;text-transform:uppercase;color:var(--muted);border-radius:4px;padding:10px 14px;font-size:12.5px;transition:color .2s,background .2s}.cookie-voci>:hover,.cookie-voci>:focus-visible{color:var(--ink);background:color-mix(in srgb, var(--accent) 14%, transparent)}.cookie[aria-expanded=true]{color:var(--ink);border-color:var(--ink)}@media (width<=820px),(height<=500px){.cookie-voci{position:absolute;top:56px;bottom:auto;right:0}}:is(.iubenda-tp-btn,.iubenda-tp-alert-btn,.iubenda-uspr-btn):is([data-tp-float],.iubenda-floatable-tb-btn):not(#_),.iubenda-tp-btn-container:not(#_){visibility:hidden!important;opacity:0!important;pointer-events:none!important;display:none!important}.sound[aria-pressed=true]{color:var(--ink)}.sound[aria-pressed=true] .off,.sound[aria-pressed=false] .waves,.burger,.scrim,.drawer{display:none}@media (width<=820px),(height<=500px){.top{min-height:58px;padding-block:12px 0;padding-inline:0}.top .line{display:none}.logo{height:54px;position:absolute;top:3px;left:46px}html.in-viaggio .top .line{width:calc(100% - 44px);display:flex}.sound{width:36px;height:36px;position:absolute;top:12px;right:0}.sound svg{width:18px;height:18px}.cookie{right:46px}.burger{border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);background:#080a0e99;border-radius:6px;align-content:center;justify-items:start;gap:6px;width:40px;height:36px;padding:0 8px;display:grid;position:absolute;top:12px;left:0}.burger span{background:var(--accent);width:22px;height:2px;box-shadow:0 0 6px color-mix(in srgb, var(--accent) 70%, transparent);border-radius:1px;display:block}.burger span:nth-child(2){width:16px}.scrim{z-index:20;background:#0304069e;display:block;position:fixed;inset:0}.scrim[hidden]{display:none}.drawer{z-index:21;width:min(78vw,300px);padding:max(16px, env(safe-area-inset-top)) 18px 24px max(18px, env(safe-area-inset-left));border-right:1px solid color-mix(in srgb, var(--accent) 35%, transparent);transition:transform .35s var(--ease-train);background:#080a0ef0;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%);box-shadow:0 0 40px #0009}.drawer.open{transform:none}.drawer-head{justify-content:space-between;align-items:center;margin-bottom:26px;display:flex}.drawer-title{font-family:var(--f-mono);letter-spacing:.3em;color:color-mix(in srgb, var(--accent) 70%, transparent);font-size:11px}.drawer-x{width:36px;height:36px;color:var(--muted);border:1px solid var(--steel-2);border-radius:6px;place-items:center;display:grid}.drawer-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.drawer-list li{padding-bottom:22px;position:relative}.drawer-list li:not(:last-child):after{content:"";border-left:2px dashed color-mix(in srgb, var(--accent) 28%, transparent);height:18px;position:absolute;top:42px;left:21px}.drawer-stop{font-family:var(--f-mono);letter-spacing:.16em;color:color-mix(in srgb, var(--accent) 60%, transparent);border:1px solid color-mix(in srgb, var(--accent) 18%, transparent);background:#080a0e80;border-radius:3px;align-items:center;gap:12px;padding:11px 12px;font-size:13px;font-weight:600;display:flex}.drawer-n{opacity:.6;font-size:10px}.drawer-legale{color:var(--muted);border-top:1px solid color-mix(in srgb, var(--accent) 18%, transparent);margin:auto 0 0;padding-top:18px;font-size:12px;line-height:1.9}.drawer-stop[aria-current]{color:color-mix(in srgb, var(--accent) 22%, white);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, transparent);text-shadow:0 0 4px var(--accent);box-shadow:0 0 14px color-mix(in srgb, var(--accent) 55%, transparent), inset 0 0 10px color-mix(in srgb, var(--accent) 30%, transparent)}}.sali{z-index:6;flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:fixed;top:50%;right:18px;transform:translateY(-50%)}.treno{min-width:190px;font-family:var(--f-mono);text-align:left;color:color-mix(in srgb, var(--st) 30%, white);border:1px solid color-mix(in srgb, var(--st) 55%, transparent);box-shadow:0 0 14px color-mix(in srgb, var(--st) 25%, transparent);cursor:pointer;background:#080a0eb8;border-radius:8px;flex-direction:column;align-items:flex-start;gap:6px;padding:10px 16px 11px;transition:border-color .2s,box-shadow .2s,color .2s;display:flex}.treno.next{text-align:right;align-items:flex-end}.treno:hover,.treno:focus-visible{color:var(--ink);border-color:var(--st);box-shadow:0 0 20px color-mix(in srgb, var(--st) 50%, transparent);outline:none}.treno-dir{letter-spacing:.14em;text-transform:uppercase;opacity:.75;font-size:10.5px}.treno-nome{letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:9px;font-size:14px;font-weight:600;display:inline-flex}.sali-luce{background:var(--st);width:8px;height:8px;box-shadow:0 0 8px var(--st);border-radius:50%;animation:1.6s ease-in-out infinite sali-spia}@keyframes sali-spia{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.sali-luce{animation:none}}@media (width>=821px) and (height>=501px){.sali{gap:72px}.treno{gap:8px;min-width:236px;padding:14px 22px 15px}.treno-dir{font-size:12px}.treno-nome{gap:11px;font-size:17px}.sali-luce{width:10px;height:10px}}.salta{z-index:7;font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;color:var(--accent-ink);background:var(--accent);box-shadow:0 0 24px color-mix(in srgb, var(--accent) 55%, transparent), 0 6px 24px #00000080;border:0;border-radius:8px;align-items:center;gap:10px;padding:14px 28px;font-size:15px;font-weight:700;transition:box-shadow .2s;display:none;position:fixed;bottom:7vh;left:50%;transform:translate(-50%)}html.in-viaggio:not(.salto) .salta{display:inline-flex}.salta:hover,.salta:focus-visible{box-shadow:0 0 34px color-mix(in srgb, var(--accent) 85%, transparent), 0 6px 24px #00000080;outline:none}@media (width<=820px),(height<=500px){.sali{top:auto;left:12px;right:12px;bottom:max(10px, env(safe-area-inset-bottom));flex-direction:row;justify-content:space-between;align-items:stretch;gap:10px;transform:none}.treno{flex:0 50%;gap:4px;min-width:0;padding:8px 12px 9px}.treno.next{margin-left:auto}.treno-dir{letter-spacing:.1em;font-size:9px}.treno-nome{font-size:12px}.salta{bottom:max(14px, env(safe-area-inset-bottom));padding:13px 24px;font-size:14px}}.intro-schermo{display:none}html.intro .intro-schermo{z-index:100;text-align:center;background:#000;place-content:center;justify-items:center;gap:10px;padding:24px;transition:opacity .8s,visibility;display:grid;position:fixed;inset:0}.intro-schermo:before{content:"";z-index:0;opacity:0;background:radial-gradient(at 50% 42%,#10161f 0%,#06080c 70%);transition:opacity 1.4s .4s;position:absolute;inset:0}.intro-schermo[data-fase=fine]:before{opacity:1}.intro-schermo>*{z-index:2;position:relative}.intro-logo,.intro-nome,.intro-comandi,.intro-avviso{opacity:0}.intro-schermo[data-fase=fine] .intro-logo{animation:1.1s cubic-bezier(.2,.7,.3,1) forwards intro-neon,4.5s ease-in-out 1.6s infinite intro-respiro}.intro-schermo[data-fase=fine] :is(.intro-nome,.intro-comandi,.intro-avviso){animation:.7s cubic-bezier(.2,.7,.3,1) forwards intro-sale}.intro-schermo[data-fase=fine] .intro-nome{animation-delay:.85s}.intro-schermo[data-fase=fine] .intro-comandi{animation-delay:1.1s}.intro-schermo[data-fase=fine] .intro-avviso{animation-delay:1.3s}@keyframes intro-neon{0%{opacity:0;filter:blur(8px)brightness(.3);transform:scale(.94)}28%{opacity:.9;filter:blur(1.5px)brightness(1.35)}36%{opacity:.2}44%{opacity:1}52%{opacity:.45}62%{opacity:1;filter:blur()brightness(1.15);transform:scale(1)}to{opacity:1;filter:blur()brightness();transform:scale(1)}}@keyframes intro-respiro{0%,to{opacity:1;filter:brightness()}50%{opacity:1;filter:brightness(1.14)}}@keyframes intro-sale{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.intro-schermo[data-statico] :is(.intro-logo,.intro-nome,.intro-comandi,.intro-avviso){opacity:1;animation:none}html.intro-esce .intro-schermo{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .8s,visibility 0s .8s}html.intro:not(.intro-esce) .ui{visibility:hidden}.intro-logo{mix-blend-mode:lighten;width:min(240px,58vw);height:auto;margin-bottom:4px}.intro-nome{font-family:var(--f-display);color:var(--ink);margin:0;font-size:clamp(26px,4vw,40px);font-weight:800;font-stretch:112%;line-height:1}.intro-comandi{flex-direction:row-reverse;justify-content:center;align-items:center;gap:14px;margin-top:30px;display:flex}.intro-volume{width:50px;height:50px;color:var(--muted);cursor:pointer;background:#6cc4ff14;border:1px solid #6cc4ff73;border-radius:50%;place-items:center;transition:color .2s,background .2s,box-shadow .2s;display:grid}.intro-volume:hover,.intro-volume:focus-visible{color:var(--ink);outline:none}.intro-volume[aria-pressed=true]{color:#e8f6ff;border-color:var(--st-home);background:#6cc4ff2e;box-shadow:0 0 18px #6cc4ff66}.intro-volume[aria-pressed=true] .off,.intro-volume[aria-pressed=false] .waves{display:none}.intro-next{height:50px;font-family:var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:#e8f6ff;border:1px solid var(--st-home);cursor:pointer;background:#6cc4ff1f;border-radius:6px;padding:0 28px;font-size:14px;font-weight:700;transition:background .2s,box-shadow .2s,opacity .4s,border-color .4s;box-shadow:0 0 18px #6cc4ff4d,inset 0 0 12px #6cc4ff2e}.intro-next:disabled{cursor:default;color:var(--muted);box-shadow:none;background:#6cc4ff0a;border-color:#6cc4ff40;animation:1.6s ease-in-out infinite intro-attesa}@keyframes intro-attesa{50%{opacity:.5}}.intro-next:not(:disabled):hover,.intro-next:focus-visible{background:#6cc4ff38;outline:none;box-shadow:0 0 26px #6cc4ff80,inset 0 0 14px #6cc4ff40}.intro-next span{transition:transform .2s;display:inline-block}.intro-next:not(:disabled):hover span{transform:translate(4px)}.intro-avviso{color:#ffb24f;max-width:320px;margin:22px 0 0;font-size:13px;line-height:1.5}.intro-avviso[hidden]{display:none}@media (prefers-reduced-motion:reduce){.intro-next:disabled{animation:none}}.legale-riga{z-index:5;left:50%;bottom:max(8px, env(safe-area-inset-bottom,0px));letter-spacing:.02em;white-space:nowrap;color:color-mix(in srgb, var(--muted) 80%, transparent);text-shadow:0 1px 3px #000c;margin:0;font-size:11.5px;position:fixed;transform:translate(-50%)}.legale-riga span{margin:0 4px}.legale-riga button,.drawer-legale button{font:inherit;color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 60%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 60%, transparent);text-underline-offset:3px;padding:2px 0;transition:color .2s}.legale-riga button:hover,.drawer-legale button:hover{color:var(--accent)}html:is(.intro,.in-viaggio) .legale-riga{display:none}body:has(#iubenda-cs-banner.iubenda-cs-visible) .legale-riga{visibility:hidden}@media (width<=820px),(height<=500px){.legale-riga{display:none}}.legale{color:#d6dce4;border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);width:min(860px,100vw - 32px);max-width:none;height:min(86dvh,900px);max-height:none;box-shadow:0 0 0 1px #0006, 0 24px 70px #000000b3, 0 0 30px color-mix(in srgb, var(--accent) 18%, transparent);background:#0a0d12f7;border-radius:6px;padding:0;overflow:hidden}.legale[open]{flex-direction:column;display:flex}.legale::backdrop{background:#030406b8}.legale-testa{border-bottom:1px solid color-mix(in srgb, var(--accent) 30%, transparent);background:linear-gradient(#161c25f5,#0d1117f5);flex:none;justify-content:space-between;align-items:center;gap:16px;min-height:62px;padding-left:26px;display:flex;position:relative}.legale-testa:before{content:"";background:var(--accent);opacity:.75;width:110px;height:2px;position:absolute;top:0;left:26px}.legale-testa h2{font-family:var(--f-display);letter-spacing:.02em;text-transform:uppercase;color:var(--ink);margin:0;font-size:clamp(19px,1.6vw,24px);font-weight:800}.legale-x{width:64px;color:var(--muted);border-left:1px solid color-mix(in srgb, var(--accent) 20%, transparent);align-self:stretch;font-size:26px;line-height:1;transition:color .2s}.legale-x:hover{color:var(--ink)}.legale-corpo{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--accent) 40%, transparent) transparent;flex:1;min-height:0;padding:24px 30px 26px;font-size:15.5px;line-height:1.6;overflow-y:auto}.legale-corpo section+section{margin-top:22px}.legale-corpo h3{font-family:var(--f-display);color:var(--accent);margin:0 0 6px;font-size:17px;font-weight:400}.legale-corpo p{margin:0 0 8px}.legale-corpo ul{margin:6px 0 8px;padding-left:20px}.legale-corpo li+li{margin-top:3px}.legale-tabella{margin:10px 0 4px;overflow-x:auto}.legale-corpo table{border-collapse:collapse;width:100%;min-width:520px;font-size:14px;line-height:1.45}.legale-corpo th,.legale-corpo td{text-align:left;vertical-align:top;border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);padding:9px 11px}.legale-corpo th{font-family:var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:color-mix(in srgb, var(--accent) 8%, transparent);font-size:12px;font-weight:700}.legale-data{color:var(--muted);font-size:13.5px;margin-top:24px!important}@media (width<=820px),(height<=500px){.legale{width:calc(100vw - 24px);height:calc(100dvh - 24px)}.legale-testa{min-height:54px;padding-left:18px}.legale-testa:before{width:70px;left:18px}.legale-x{width:54px}.legale-corpo{padding:18px 18px 22px;font-size:15px}.legale-corpo table{min-width:0}.legale-corpo :is(table,tbody,tr,td){display:block}.legale-corpo thead{display:none}.legale-corpo tr{border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);margin-bottom:10px}.legale-corpo td{border:0;padding:7px 12px}.legale-corpo td+td{border-top:1px solid color-mix(in srgb, var(--accent) 12%, transparent)}.legale-corpo td:before{content:attr(data-colonna);font-family:var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;font-size:11px;font-weight:700;display:block}}.intro{--sign:#0c1016;--sign-2:#151a22;--sign-line:#2a313c;--apri:.5s var(--ease-train);grid-template:"testa cartello""schede schede"minmax(0,1fr)"dock dock"/minmax(0,1fr) auto;gap:2vh 48px;height:100dvh;padding-top:2.5vh;padding-bottom:7vh;display:grid}.testa{grid-area:testa;align-self:start}.testa h1{font-family:var(--f-display);letter-spacing:.005em;color:var(--ink);text-shadow:0 2px 18px #000c;margin:0;font-size:clamp(34px,3.2vw,52px);font-weight:800;font-stretch:112%;line-height:1}.ruolo{font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);text-shadow:0 2px 10px #000000e6;margin:12px 0 0;font-size:13.5px}.cartello{text-align:center;width:clamp(360px,30vw,520px);transition:opacity .3s, transform var(--apri), visibility 0s;background:#0a0d12bd;border-radius:6px;grid-area:cartello;place-self:start end;padding:18px 32px 20px;position:relative;box-shadow:0 6px 30px #00000059}.con-scheda .cartello{opacity:0;visibility:hidden;transition:opacity .2s, transform var(--apri), visibility 0s .5s;transform:translateY(-12px)}.cartello:before,.cartello:after{content:"";background:var(--accent);border-radius:2px;width:4px;position:absolute;top:0;bottom:0}.cartello:before{left:0}.cartello:after{right:0}.benvenuto{font-family:var(--f-display);color:var(--ink);text-wrap:balance;margin:0;font-size:clamp(19px,1.4vw,23px);font-weight:800;font-stretch:105%;line-height:1.2}.descrizioneIntro{color:#dde3ea;text-wrap:pretty;margin:10px 0 0;font-size:clamp(15.5px,1.05vw,17px);line-height:1.55}@media (width>=821px) and (width<=1180px) and (height>=501px){.intro{grid-template:"testa""cartello""schede"minmax(0,1fr)"dock"/minmax(0,1fr)}.cartello{justify-self:start;width:min(100%,520px)}}.schede{grid-template:minmax(0,1fr)/minmax(0,1fr);grid-area:schede;min-height:0;display:grid}.scheda{--cut:18px;--filo:color-mix(in srgb, var(--accent) 40%, transparent);--acceso:color-mix(in srgb, var(--accent) 85%, white);--forma:polygon(0 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, var(--cut) 100%, 0 calc(100% - var(--cut)));isolation:isolate;opacity:0;visibility:hidden;width:min(100%,760px);height:min(100%,720px);transform:translate(var(--dx,0px), var(--dy,0px)) scale(.1);will-change:opacity, transform;transition:opacity .3s ease .2s, transform .6s var(--ease-train), visibility 0s .6s;flex-direction:column;grid-area:1/1;place-self:center;display:flex;position:relative}.scheda.aperta{opacity:1;visibility:visible;transition:opacity .35s ease .2s, transform .65s var(--ease-train) 80ms, visibility 0s;transform:none}.scheda:before,.scheda:after{content:"";pointer-events:none;clip-path:var(--forma);position:absolute}.scheda:before{z-index:-2;background:var(--filo);inset:0}.scheda:after{z-index:-1;background:#0a0d12f0;inset:1px}.scheda-cornice{z-index:1;pointer-events:none;--l:14px;--t:1.5px;--c:var(--acceso);background:linear-gradient(var(--c), var(--c)) left top / var(--l) var(--t), linear-gradient(var(--c), var(--c)) left top / var(--t) var(--l), linear-gradient(var(--c), var(--c)) right top / var(--l) var(--t), linear-gradient(var(--c), var(--c)) right top / var(--t) var(--l), linear-gradient(var(--c), var(--c)) left bottom / var(--l) var(--t), linear-gradient(var(--c), var(--c)) left bottom / var(--t) var(--l), linear-gradient(var(--c), var(--c)) right bottom / var(--l) var(--t), linear-gradient(var(--c), var(--c)) right bottom / var(--t) var(--l),  linear-gradient(var(--c), var(--c)) 6px 26% / 3px 13%, linear-gradient(var(--c), var(--c)) 6px 80% / 3px 9%, linear-gradient(var(--c), var(--c)) calc(100% - 6px) 34% / 3px 10%, linear-gradient(var(--c), var(--c)) calc(100% - 6px) 84% / 3px 12%;opacity:.8;filter:drop-shadow(0 0 2px color-mix(in srgb, var(--accent) 45%, transparent));background-repeat:no-repeat;position:absolute;inset:-7px}.scheda-testa{border-bottom:1px solid var(--filo);background:linear-gradient(#161c25f5,#0d1117f5);grid-template-columns:66px minmax(0,1fr) 74px;align-items:stretch;min-height:64px;margin:1px 1px 0;display:grid;position:relative}.scheda-testa:before{content:"";background:var(--acceso);opacity:.75;width:110px;height:2px;position:absolute;top:0;left:72px}.scheda-icona{border:1.5px solid color-mix(in srgb, var(--accent) 70%, transparent);width:42px;height:42px;color:var(--acceso);border-radius:50%;place-self:center;place-items:center;display:grid}.scheda-icona svg{width:22px;height:22px}.scheda-testa h2{font-family:var(--f-display);letter-spacing:.02em;text-transform:uppercase;color:var(--ink);align-self:center;margin:0;padding:0 10px;font-size:clamp(22px,1.8vw,28px);font-weight:800;font-stretch:105%}.scheda-testa h2:after{content:"//";font-family:var(--f-mono);letter-spacing:-.08em;color:color-mix(in srgb, var(--accent) 65%, transparent);margin-left:14px;font-size:.6em;font-weight:700}.scheda-x{clip-path:polygon(22px 0,100% 0,100% 100%,0 100%);color:var(--muted);background:#1e2632e6;border:0;padding:0 0 0 14px;font-size:26px;line-height:1;transition:color .2s}.scheda-x:hover{color:var(--ink)}.scheda-testa{flex:none}.scheda-corpo{overscroll-behavior:contain;color:#d6dce4;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--accent) 40%, transparent) transparent;flex:1;min-height:0;margin:0 1px 1px;padding:34px 38px 22px;font-size:clamp(18px,1.3vw,20px);line-height:1.7;overflow-y:auto}.scheda-corpo p{margin:0 0 18px}.scheda-corpo .link{color:#5aaaff;text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1.5px}.scheda-corpo .link:hover{color:#8cc4ff}.scheda-profilo{grid-template-columns:clamp(160px,14vw,220px) minmax(0,1fr);align-items:start;gap:30px;display:grid}.ritratto{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--accent) 55%, transparent);border-radius:10px;margin:0;overflow:hidden}.ritratto img{object-fit:cover;width:100%;height:100%;display:block}.skills{grid-template-columns:max-content 1fr;gap:14px 18px;margin:24px 0 14px;display:grid}.skills dt{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:5px;font-size:13.5px}.skills dd{flex-wrap:wrap;gap:7px;margin:0;display:flex}.skills span{font-family:var(--f-mono);color:color-mix(in srgb, var(--accent) 25%, white);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);background:color-mix(in srgb, var(--accent) 8%, var(--sign-2));border-radius:4px;padding:4px 12px;font-size:15px;line-height:1.4}.dock{grid-area:dock;justify-self:center;gap:clamp(28px,4vw,64px);padding:0 12px;display:flex;position:relative}.dock-gl{--dock-col:var(--st-home);z-index:16;pointer-events:none;width:100%;height:100%;filter:drop-shadow(0 0 2px var(--dock-col)) drop-shadow(0 0 7px color-mix(in srgb, var(--dock-col) 60%, transparent));position:fixed;inset:0}:root[data-page=projects] .dock-gl{--dock-col:var(--st-projects)}:root[data-page=services] .dock-gl{--dock-col:var(--st-services)}:root[data-page=pricing] .dock-gl{--dock-col:var(--st-pricing)}@media (pointer:coarse){.dock-gl{filter:none}}.opzione{width:140px;color:var(--soft);background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;padding:0;display:flex;position:relative}.opzione-vista{width:120px;height:120px;color:color-mix(in srgb, var(--accent) 65%, white);filter:drop-shadow(0 0 3px var(--accent)) drop-shadow(0 0 9px color-mix(in srgb, var(--accent) 70%, transparent));place-items:center;display:grid}.opzione-vista svg{width:52px;height:52px}.dock.on3d .opzione-vista svg{visibility:hidden}.cornice3d .scheda{transition:opacity .2s ease, transform .3s var(--ease-train), visibility 0s .3s;transform:translateY(8px)}.cornice3d .scheda.aperta{opacity:0;visibility:visible;transition:visibility;transform:translateY(8px)}.cornice3d.cornice-montata .scheda.aperta{opacity:1;transition:opacity .3s ease, transform .35s var(--ease-train), visibility 0s;transform:none}.opzione-nome{font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;text-align:center;text-shadow:0 2px 10px #000000e6;font-size:14px;font-weight:700;line-height:1.3;transition:color .25s,text-shadow .25s}.opzione:hover .opzione-nome,.opzione:focus-visible .opzione-nome,.opzione[aria-expanded=true] .opzione-nome{color:color-mix(in srgb, var(--accent) 30%, white);text-shadow:0 0 6px var(--accent), 0 2px 10px #000000e6}.opzione:focus-visible{outline:none}@media (width<=820px),(height<=500px){.intro{width:100%;height:auto;min-height:calc(100dvh - 70px - var(--treno-h));max-height:calc(100dvh - 70px - var(--treno-h));flex-direction:column;align-items:center;gap:18px;padding-top:3vh;padding-bottom:24px;display:flex;overflow-y:auto}.testa{text-align:center;align-self:center}.testa h1{font-size:32px}.ruolo{font-size:12px}.cartello{width:100%;max-width:460px;padding:16px 22px 18px}.schede{display:contents}.dock{order:2;gap:10px;margin-top:auto;padding:0}.opzione{width:100px}.opzione-vista{width:90px;height:90px}.opzione-vista svg{width:40px;height:40px}.opzione-nome{letter-spacing:.06em;font-size:11.5px}.scheda{z-index:15;inset:76px 12px calc(var(--treno-h) + 8px);place-self:stretch stretch;width:auto;height:auto;position:fixed}.scheda-testa{grid-template-columns:50px minmax(0,1fr) 54px;min-height:54px}.scheda-testa:before{width:70px;left:54px}.scheda-testa h2{overflow-wrap:anywhere;padding:0 4px;font-size:16.5px;line-height:1.15}.scheda-testa h2:after{display:none}.scheda-icona{width:34px;height:34px}.scheda-icona svg{width:18px;height:18px}.scheda-x{clip-path:polygon(14px 0,100% 0,100% 100%,0 100%);padding-left:10px}.scheda-corpo{padding:22px 20px 12px;font-size:16.5px}.scheda-profilo{grid-template-columns:1fr}.ritratto{justify-self:center;width:150px;height:150px}.skills{grid-template-columns:1fr;gap:4px}.skills dt{padding-top:6px}}@media (height<=500px){.intro{grid-template:"testa dock""cartello dock"minmax(0,1fr)/minmax(0,1fr) auto;gap:8px 18px;padding-top:0;padding-bottom:6px;display:grid;overflow:hidden}.testa{text-align:left;place-self:start}.testa h1{font-size:24px}.ruolo{margin-top:5px;font-size:10px}.cartello{justify-self:stretch;width:auto;max-width:none;padding:8px 18px 9px}.benvenuto{font-size:15px}.descrizioneIntro{margin-top:3px;font-size:13px;line-height:1.35}.dock{align-self:center;gap:4px;margin-top:0}.opzione{width:84px}.opzione-vista{width:70px;height:70px}.opzione-nome{font-size:10px}.scheda{inset:8px max(12px, env(safe-area-inset-right)) 8px max(12px, env(safe-area-inset-left))}.scheda-corpo{padding:14px 20px 10px;font-size:15.5px;line-height:1.55}.scheda-profilo{grid-template-columns:120px minmax(0,1fr);gap:18px}.ritratto{width:100%;height:auto}}:root[data-page=projects] .main{align-items:flex-start}@media (width>=821px) and (height>=501px){.progetti .scheda{width:min(100%,880px)}}.code-tab{z-index:1;border-bottom:1px solid var(--filo);background:#0c1016;grid-template-columns:repeat(4,minmax(0,1fr));margin:-34px -38px 24px;display:grid;position:sticky;top:-34px}.code-voce{font-family:var(--f-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:var(--muted);padding:15px 2px 14px;font-size:12.5px;font-weight:700;transition:color .2s;position:relative}.code-voce:hover{color:var(--ink)}.code-voce:focus-visible{outline-offset:-3px}.code-voce[aria-pressed=true]{color:var(--acceso)}.code-voce[aria-pressed=true]:after{content:"";background:var(--acceso);height:2px;position:absolute;bottom:-1px;left:0;right:0}.code-conta{color:var(--muted);margin-left:6px;font-weight:500}.repo-lista{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.repo-lista[hidden]{display:none}.repo-lista li{display:grid}.repo{border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);background:color-mix(in srgb, var(--accent) 5%, var(--sign-2));border-radius:4px;flex-direction:column;gap:6px;padding:13px 15px 12px;transition:border-color .2s,background .2s;display:flex}.repo:hover,.repo:focus-visible{border-color:color-mix(in srgb, var(--accent) 65%, transparent);background:color-mix(in srgb, var(--accent) 12%, var(--sign-2))}.repo-nome{font-family:var(--f-mono);color:var(--ink);overflow-wrap:anywhere;font-size:15.5px;font-weight:700}.repo-testo{color:#c9d0d9;flex:1;font-size:15px;line-height:1.45}.repo-meta{font-family:var(--f-mono);letter-spacing:.04em;color:var(--muted);font-size:12px}.vetrina-img{aspect-ratio:16/9;border-bottom:1px solid color-mix(in srgb, var(--accent) 22%, transparent);border-radius:3px 3px 0 0;margin:-13px -15px 4px;display:block;position:relative;overflow:hidden}.vetrina-img img{object-fit:cover;width:100%;height:100%;transition:transform .4s var(--ease-train,ease);display:block}a.vetrina:hover .vetrina-img img,a.vetrina:focus-visible .vetrina-img img{transform:scale(1.04)}.vetrina-stato{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:#ffb066;background:#0a0806d1;border:1px solid #ff8a2a8c;border-radius:3px;padding:4px 10px;font-size:11.5px;font-weight:700;position:absolute;top:10px;right:10px}div.vetrina:hover{border-color:color-mix(in srgb, var(--accent) 22%, transparent);background:color-mix(in srgb, var(--accent) 5%, var(--sign-2))}.repo-stato{color:var(--muted);margin:0;font-size:15.5px}.repo-stato[hidden]{display:none}.repo-vuoto{color:var(--muted);grid-column:1/-1;font-size:15.5px}.scheda-corpo .repo-tutti{border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);color:#d6dce4;background:color-mix(in srgb, var(--accent) 8%, var(--sign-2));border-radius:50%;place-items:center;width:46px;height:46px;margin:20px 0 8px;transition:color .2s,border-color .2s,box-shadow .2s;display:inline-grid}.scheda-corpo .repo-tutti svg{width:26px;height:26px}.scheda-corpo .repo-tutti:hover,.scheda-corpo .repo-tutti:focus-visible{color:var(--accent);border-color:var(--accent);box-shadow:0 0 12px color-mix(in srgb, var(--accent) 40%, transparent)}.lavori{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.lavoro{border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);background:color-mix(in srgb, var(--accent) 5%, var(--sign-2));border-radius:4px;overflow:hidden}.galleria{position:relative}.galleria-strip{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;display:flex;overflow-x:auto}.galleria-strip::-webkit-scrollbar{display:none}.galleria-strip:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.galleria-foto{scroll-snap-align:start;cursor:zoom-in;background:#000;border:0;flex:0 0 100%;padding:0}.galleria-foto img{aspect-ratio:16/9;object-fit:contain;width:100%;display:block}.galleria-freccia{border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);width:36px;height:36px;color:var(--ink);cursor:pointer;opacity:.85;background:#0009;border-radius:50%;font-size:22px;line-height:1;transition:opacity .2s,border-color .2s;position:absolute;top:50%;translate:0 -50%}.galleria-freccia:hover,.galleria-freccia:focus-visible{opacity:1;border-color:var(--accent)}.galleria-freccia.prima{left:10px}.galleria-freccia.dopo{right:10px}.galleria-conta{color:var(--ink);pointer-events:none;background:#0009;border-radius:10px;padding:2px 8px;font-size:13px;position:absolute;bottom:10px;right:10px}.lavoro-testo{padding:16px 18px 6px}.lavoro h3{font-family:var(--f-display);color:var(--ink);margin:0 0 8px;font-size:20px;font-weight:800}.lavoro p{margin:0;font-size:16px;line-height:1.5}.lavoro-testo p{margin-bottom:12px}.zoom{background:#000000eb;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0}.zoom::backdrop{background:0 0}.zoom[open]{place-items:center;display:grid}.zoom img{object-fit:contain;max-width:calc(100vw - 32px);max-height:calc(100dvh - 96px)}.zoom button{border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);width:44px;height:44px;color:var(--ink);cursor:pointer;background:#0009;border-radius:50%;font-size:26px;line-height:1;position:absolute}.zoom button:hover,.zoom button:focus-visible{border-color:var(--accent)}.zoom-x{top:16px;right:16px}.zoom-freccia{top:50%;translate:0 -50%}.zoom-freccia.prima{left:16px}.zoom-freccia.dopo{right:16px}.zoom-conta{color:var(--ink);font-size:14px;position:absolute;bottom:20px;left:50%;translate:-50%}@media (width<=820px),(height<=500px){.code-tab{grid-template-columns:repeat(2,minmax(0,1fr));margin:-22px -20px 18px;top:-22px}.code-voce{padding-block:11px 10px}.repo-lista{grid-template-columns:1fr}}@media (height<=500px){.code-tab{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:-14px;top:-14px}.code-voce{padding-block:10px 9px}.repo-lista{grid-template-columns:repeat(2,minmax(0,1fr))}}
