/* Folio Tech – cursore, transizioni di pagina, glitch e stile neon dei widget.
   Lo stile neon si attiva con html[data-style="tech"] (impostato dal tema Folio). */

/* ---------- cursore personalizzato ---------- */
html.folio-cursor-on,html.folio-cursor-on *{cursor:none!important}
html.folio-cursor-on :is(input,textarea,select,[contenteditable="true"]){cursor:text!important}
.folio-cursor{position:fixed;inset:0;z-index:100004;pointer-events:none;opacity:0;transition:opacity .3s}
.folio-cursor.is-visible{opacity:1}
.folio-cursor.is-hide{opacity:0}
.folio-cursor__dot{position:fixed;left:0;top:0;width:6px;height:6px;translate:-50% -50%;border-radius:50%;background:var(--folio-accent,#3a2fe0);box-shadow:0 0 12px var(--folio-accent,#3a2fe0)}
.folio-cursor__ring{position:fixed;left:0;top:0;display:grid;place-items:center;width:38px;height:38px;translate:-50% -50%;border:1.5px solid var(--folio-accent,#3a2fe0);border-radius:50%;box-shadow:0 0 14px color-mix(in srgb,var(--folio-accent,#3a2fe0) 45%,transparent);transition:width .3s cubic-bezier(.2,.7,.2,1),height .3s cubic-bezier(.2,.7,.2,1),background-color .3s,border-color .3s}
.folio-cursor.is-link .folio-cursor__ring{width:58px;height:58px;background:color-mix(in srgb,var(--folio-accent,#3a2fe0) 14%,transparent)}
.folio-cursor.is-card .folio-cursor__ring{width:92px;height:92px;background:var(--folio-accent,#3a2fe0)}
.folio-cursor.is-down .folio-cursor__ring{width:24px;height:24px}
.folio-cursor__label{font:600 .82rem/1 var(--folio-mono,ui-monospace,monospace);color:var(--folio-accent-ink,#fff);opacity:0;transition:opacity .2s}
.folio-cursor.is-card .folio-cursor__label{opacity:1}

/* ---------- transizione tra le pagine ---------- */
html.folio-pt-in::before{content:"";position:fixed;inset:0;z-index:100003;background:var(--folio-bg,#fff)}
.folio-pt{position:fixed;inset:0;z-index:100003;display:flex;pointer-events:none}
.folio-pt i{position:relative;flex:1;background:var(--folio-bg,#fff);transform:scaleY(0);transform-origin:50% 100%;transition:transform .6s cubic-bezier(.7,0,.2,1);transition-delay:calc(var(--i,0) * 55ms)}
.folio-pt i::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--folio-accent,#3a2fe0);box-shadow:0 0 16px var(--folio-accent,#3a2fe0);opacity:0}
.folio-pt i+i{box-shadow:inset 1px 0 0 color-mix(in srgb,var(--folio-accent,#3a2fe0) 28%,transparent)}
.folio-pt.is-cover i{transform:scaleY(1)}
.folio-pt.is-cover i::after,.folio-pt.is-open i::after{opacity:1}
.folio-pt.is-open i{transform-origin:50% 0}
.folio-pt.no-t i{transition:none!important}
.folio-pt__label{position:absolute;left:50%;top:50%;translate:-50% -50%;font:600 clamp(1.4rem,4vw,2.6rem)/1 var(--folio-font-heading,inherit);letter-spacing:-.02em;color:var(--folio-text,#000);opacity:0;transition:opacity .25s}
.folio-pt.is-cover .folio-pt__label{opacity:1;transition-delay:.4s}

/* ---------- glitch ---------- */
.fm-gl{position:relative}
.fm-gl::before,.fm-gl::after{content:attr(data-text);position:absolute;inset:0;pointer-events:none;opacity:0;clip-path:inset(0 0 100% 0)}
.fm-gl::before{color:var(--folio-accent,#3a2fe0)}
.fm-gl::after{color:var(--folio-accent-2,#e4572e)}
html[data-style="tech"] .fm-gl:hover::before,html[data-style="tech"] .fm-gl.is-glitch::before{opacity:.95;animation:fm-gl-a .5s steps(1,end) 1}
html[data-style="tech"] .fm-gl:hover::after,html[data-style="tech"] .fm-gl.is-glitch::after{opacity:.95;animation:fm-gl-b .5s steps(1,end) 1}
@keyframes fm-gl-a{0%{clip-path:inset(12% 0 68% 0);transform:translate(-4px,1px)}16%{clip-path:inset(62% 0 8% 0);transform:translate(3px,-1px)}32%{clip-path:inset(34% 0 40% 0);transform:translate(-3px,0)}48%{clip-path:inset(4% 0 82% 0);transform:translate(4px,1px)}64%{clip-path:inset(76% 0 4% 0);transform:translate(-2px,-1px)}80%{clip-path:inset(46% 0 30% 0);transform:translate(3px,0)}100%{clip-path:inset(0 0 100% 0);transform:none}}
@keyframes fm-gl-b{0%{clip-path:inset(70% 0 10% 0);transform:translate(4px,-1px)}18%{clip-path:inset(8% 0 72% 0);transform:translate(-3px,1px)}36%{clip-path:inset(52% 0 24% 0);transform:translate(3px,0)}52%{clip-path:inset(24% 0 54% 0);transform:translate(-4px,-1px)}68%{clip-path:inset(84% 0 2% 0);transform:translate(2px,1px)}84%{clip-path:inset(16% 0 64% 0);transform:translate(-3px,0)}100%{clip-path:inset(0 0 100% 0);transform:none}}

/* ---------- stile neon dei widget ---------- */
html[data-style="tech"] .folio-btn{border-radius:0;box-shadow:0 0 18px -4px var(--folio-accent);font-family:var(--folio-mono,ui-monospace,monospace);font-size:.95rem;letter-spacing:.01em}
html[data-style="tech"] .folio-btn:hover,html[data-style="tech"] .folio-btn:focus-visible{box-shadow:0 0 26px -2px var(--folio-accent)}
html[data-style="tech"] .folio-hero__title em{color:var(--folio-accent);text-shadow:0 0 28px color-mix(in srgb,var(--folio-accent) 55%,transparent)}
html[data-style="tech"] .folio-hero__text{font-family:var(--folio-mono,ui-monospace,monospace);font-size:clamp(.95rem,1.4vw,1.1rem)}

/* schede progetto: cornice HUD, scansione e bordo neon */
html[data-style="tech"] .folio-card__media{border:1px solid color-mix(in srgb,var(--folio-accent) 30%,transparent);transition:border-color .3s,box-shadow .3s}
html[data-style="tech"] .folio-card__link:hover .folio-card__media{border-color:var(--folio-accent);box-shadow:0 0 28px -8px var(--folio-accent)}
html[data-style="tech"] .folio-card__media::before{--c:var(--folio-accent);content:"";position:absolute;inset:18px;z-index:2;pointer-events:none;opacity:0;transition:inset .35s cubic-bezier(.2,.7,.2,1),opacity .3s;background:
	linear-gradient(var(--c),var(--c)) 0 0/18px 2px,linear-gradient(var(--c),var(--c)) 0 0/2px 18px,
	linear-gradient(var(--c),var(--c)) 100% 0/18px 2px,linear-gradient(var(--c),var(--c)) 100% 0/2px 18px,
	linear-gradient(var(--c),var(--c)) 0 100%/18px 2px,linear-gradient(var(--c),var(--c)) 0 100%/2px 18px,
	linear-gradient(var(--c),var(--c)) 100% 100%/18px 2px,linear-gradient(var(--c),var(--c)) 100% 100%/2px 18px;background-repeat:no-repeat}
html[data-style="tech"] .folio-card__link:hover .folio-card__media::before,html[data-style="tech"] .folio-card__link:focus-visible .folio-card__media::before{inset:10px;opacity:1}
html[data-style="tech"] .folio-card__media::after{content:"";position:absolute;left:0;right:0;top:-35%;z-index:2;height:35%;pointer-events:none;opacity:0;background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--folio-accent) 38%,transparent),transparent)}
html[data-style="tech"] .folio-card__link:hover .folio-card__media::after{animation:fm-scan 1s ease-out 1}
@keyframes fm-scan{0%{top:-35%;opacity:1}100%{top:105%;opacity:1}}
html[data-style="tech"] .folio-card__meta{font-family:var(--folio-mono,ui-monospace,monospace);font-size:.82rem}
html[data-style="tech"] .folio-card__ph{color:color-mix(in srgb,var(--folio-accent) 70%,transparent);text-shadow:0 0 30px var(--folio-accent)}

/* filtro, carosello, form, galleria */
html[data-style="tech"] .folio-filter button{border-radius:0;font-family:var(--folio-mono,ui-monospace,monospace);font-size:.88rem;border-color:color-mix(in srgb,var(--folio-accent) 40%,transparent)}
html[data-style="tech"] .folio-filter button:hover{border-color:var(--folio-accent);box-shadow:0 0 14px -4px var(--folio-accent)}
html[data-style="tech"] .folio-filter button.is-active{background:var(--folio-accent);border-color:var(--folio-accent);color:var(--folio-accent-ink);box-shadow:0 0 18px -3px var(--folio-accent)}
html[data-style="tech"] .folio-carousel__bar button{border-radius:0;border-color:color-mix(in srgb,var(--folio-accent) 45%,transparent);color:var(--folio-accent)}
html[data-style="tech"] .folio-carousel__bar button:hover{background:var(--folio-accent);color:var(--folio-accent-ink);box-shadow:0 0 18px -2px var(--folio-accent)}
html[data-style="tech"] .folio-form input[type=text],html[data-style="tech"] .folio-form input[type=email],html[data-style="tech"] .folio-form input[type=tel],html[data-style="tech"] .folio-form textarea{border-radius:0;border-color:color-mix(in srgb,var(--folio-accent) 35%,transparent);font-family:var(--folio-mono,ui-monospace,monospace)}
html[data-style="tech"] .folio-form input:focus-visible,html[data-style="tech"] .folio-form textarea:focus-visible{border-color:var(--folio-accent);box-shadow:0 0 0 1px var(--folio-accent),0 0 22px -6px var(--folio-accent);outline:0}
html[data-style="tech"] .folio-form label{font-family:var(--folio-mono,ui-monospace,monospace);font-size:.88rem}
html[data-style="tech"] .folio-gallery a{position:relative;display:block;overflow:hidden;border:1px solid color-mix(in srgb,var(--folio-accent) 30%,transparent)}
html[data-style="tech"] .folio-gallery a:hover{border-color:var(--folio-accent);box-shadow:0 0 24px -8px var(--folio-accent)}

/* intro, testo scorrevole, numeri, testimonianze, esperienze */
html[data-style="tech"] .folio-shape--1 .folio-shape__in{box-shadow:0 0 40px -6px var(--folio-accent),inset 0 0 40px -14px var(--folio-accent)}
html[data-style="tech"] .folio-shape--2 .folio-shape__in{background:var(--folio-accent-2);box-shadow:0 0 36px 4px color-mix(in srgb,var(--folio-accent-2) 60%,transparent)}
html[data-style="tech"] .folio-shape--3 .folio-shape__in{border-color:var(--folio-accent-2);box-shadow:0 0 30px -8px var(--folio-accent-2)}
html[data-style="tech"] .folio-shape--4 .folio-shape__in{background-image:radial-gradient(circle,var(--folio-accent) 2px,transparent 2.6px);opacity:.55}
html[data-style="tech"] .folio-shape--5 .folio-shape__in{background:color-mix(in srgb,var(--folio-accent) 35%,transparent);box-shadow:0 0 24px -4px var(--folio-accent)}
html[data-style="tech"] .folio-marquee__item:nth-child(even){-webkit-text-stroke:.022em var(--folio-accent);text-shadow:0 0 26px color-mix(in srgb,var(--folio-accent) 45%,transparent)}
html[data-style="tech"] .folio-marquee__item::after{border-radius:0;transform:rotate(45deg);background:var(--folio-accent-2);box-shadow:0 0 14px var(--folio-accent-2)}
html[data-style="tech"] .folio-stat{border-top:0;border-image:linear-gradient(90deg,var(--folio-accent),transparent) 1;border-top:2px solid}
html[data-style="tech"] .folio-stat__num{text-shadow:0 0 30px color-mix(in srgb,var(--folio-accent) 40%,transparent)}
html[data-style="tech"] .folio-stat__label{font-family:var(--folio-mono,ui-monospace,monospace);font-size:.88rem}
html[data-style="tech"] .folio-quote{border-image:linear-gradient(90deg,var(--folio-accent),transparent) 1;border-top:2px solid;padding-inline-start:0}
html[data-style="tech"] .folio-timeline{border-top-color:color-mix(in srgb,var(--folio-accent) 35%,transparent)}
html[data-style="tech"] .folio-timeline__item{border-bottom-color:color-mix(in srgb,var(--folio-accent) 22%,transparent)}
html[data-style="tech"] .folio-timeline__period{font-family:var(--folio-mono,ui-monospace,monospace);color:var(--folio-accent)}
html[data-style="tech"] .folio-lightbox{background:rgba(2,4,10,.94)}

@keyframes fm-blink{50%{opacity:0}}
