/*
Theme Name: Arturo Brunetti
Theme URI: https://arturobrunetti.com
Author: Arturo Brunetti
Description: Portfolio di Arturo Brunetti, direttore della fotografia. Griglia lavori con clip in loop e filtro per categoria, pagine progetto con Vimeo, crediti e frame still, sezione Stills, pagina About. Chiaro/scuro.
Version: 1.0.7
Requires at least: 6.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: arturobrunetti
*/

/* ---------- Colori ---------- */
:root{
--bg:#FFFFFF;--fg:#111111;--sub:#444444;--muted:#555555;--hair:#D4D4D4;--accent:#C8241A;--player:#111111;--ph:#2A2D33;
--pad:clamp(20px, 4vw, 56px);
--veil:linear-gradient(to bottom, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.528) 30%, rgba(255,255,255,0.432) 45%, rgba(255,255,255,0.312) 60%, rgba(255,255,255,0.192) 75%, rgba(255,255,255,0.084) 88%, rgba(255,255,255,0) 100%);
--veil-open:rgba(255,255,255,0.94);
--drop-bg:linear-gradient(to bottom, rgba(255,255,255,0.94) 0%, rgba(255,255,255,0.94) calc(100% - 64px), rgba(255,255,255,0.35) calc(100% - 28px), rgba(255,255,255,0) 100%);
--mask:linear-gradient(to bottom, #000 0%, #000 28%, rgba(0,0,0,0.94) 36%, rgba(0,0,0,0.82) 45%, rgba(0,0,0,0.64) 55%, rgba(0,0,0,0.44) 65%, rgba(0,0,0,0.26) 75%, rgba(0,0,0,0.12) 85%, rgba(0,0,0,0.04) 93%, rgba(0,0,0,0) 100%);
--grain:0.55;
--cur:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27 shape-rendering=%27crispEdges%27%3E%3Cg stroke=%27%23000000%27 stroke-width=%271%27%3E%3Cline x1=%2716.5%27 y1=%274%27 x2=%2716.5%27 y2=%2713%27/%3E%3Cline x1=%2716.5%27 y1=%2720%27 x2=%2716.5%27 y2=%2729%27/%3E%3Cline x1=%274%27 y1=%2716.5%27 x2=%2713%27 y2=%2716.5%27/%3E%3Cline x1=%2720%27 y1=%2716.5%27 x2=%2729%27 y2=%2716.5%27/%3E%3C/g%3E%3C/svg%3E") 16 16, crosshair;
}
:root.is-dark{
--bg:#0E0E0E;--fg:#F2F2F2;--sub:#B5B5B5;--muted:#9C9C9C;--hair:#3A3A3A;--accent:#FF5A4E;--player:#000000;--ph:#2B2D31;
--veil:linear-gradient(to bottom, rgba(14,14,14,0.6) 0%, rgba(14,14,14,0.528) 30%, rgba(14,14,14,0.432) 45%, rgba(14,14,14,0.312) 60%, rgba(14,14,14,0.192) 75%, rgba(14,14,14,0.084) 88%, rgba(14,14,14,0) 100%);
--veil-open:rgba(14,14,14,0.94);
--drop-bg:linear-gradient(to bottom, rgba(14,14,14,0.94) 0%, rgba(14,14,14,0.94) calc(100% - 64px), rgba(14,14,14,0.35) calc(100% - 28px), rgba(14,14,14,0) 100%);
--grain:0.16;
--cur:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27 shape-rendering=%27crispEdges%27%3E%3Cg stroke=%27%23FFFFFF%27 stroke-width=%271%27%3E%3Cline x1=%2716.5%27 y1=%274%27 x2=%2716.5%27 y2=%2713%27/%3E%3Cline x1=%2716.5%27 y1=%2720%27 x2=%2716.5%27 y2=%2729%27/%3E%3Cline x1=%274%27 y1=%2716.5%27 x2=%2713%27 y2=%2716.5%27/%3E%3Cline x1=%2720%27 y1=%2716.5%27 x2=%2729%27 y2=%2716.5%27/%3E%3C/g%3E%3C/svg%3E") 16 16, crosshair;
}
@media (max-width: 520px){
:root{--veil:linear-gradient(to bottom, rgba(239,239,236,0.58) 0%, rgba(239,239,236,0.51) 30%, rgba(239,239,236,0.418) 45%, rgba(239,239,236,0.302) 60%, rgba(239,239,236,0.186) 75%, rgba(239,239,236,0.081) 88%, rgba(239,239,236,0) 100%)}
:root.is-dark{--veil:linear-gradient(to bottom, rgba(14,14,14,0.45) 0%, rgba(14,14,14,0.396) 30%, rgba(14,14,14,0.324) 45%, rgba(14,14,14,0.234) 60%, rgba(14,14,14,0.144) 75%, rgba(14,14,14,0.063) 88%, rgba(14,14,14,0) 100%)}
}

/* ---------- Base ---------- */
html{background:var(--bg)}
body{margin:0}
html,body,a,button,[role=button],label{cursor:var(--cur)}
/* Con il mouse la croce è disegnata dal sito, in negativo rispetto a ciò che c'è sotto (la croce di sistema resta come riserva) */
.has-xc,.has-xc *{cursor:none !important}
.has-xc iframe{cursor:auto !important}
.ab-xc{position:fixed;left:0;top:0;width:32px;height:32px;z-index:2147483647;pointer-events:none;mix-blend-mode:difference;opacity:0;will-change:transform}
.ab-xc.is-on{opacity:1}
.ab-xc svg{display:block}
a{color:inherit;text-decoration:none}
a:hover,button:hover{opacity:0.6}
button{font-family:inherit}
[hidden]{display:none !important}
img{max-width:100%}
.ab-page{width:100%;min-height:100vh;background:var(--bg);color:var(--fg);font-family:'Archivo', Arial, 'Helvetica Neue', Helvetica, sans-serif;box-sizing:border-box;transition:background 0.2s, color 0.2s}
.ab-wrap{margin:0 auto;padding:0 var(--pad);box-sizing:border-box;transition:opacity 0.8s ease, transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1)}
.js .ab-wrap{opacity:0;transform:translateY(28px)}
.js.is-ready .ab-wrap{opacity:1;transform:none}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Testata (vetro satinato) ---------- */
.ab-glass{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px 40px;margin:0 calc(-1 * var(--pad)) -24px;padding:16px var(--pad) 72px;background:var(--veil);-webkit-backdrop-filter:blur(28px) saturate(130%);backdrop-filter:blur(28px) saturate(130%);-webkit-mask-image:var(--mask);mask-image:var(--mask);pointer-events:none}
.ab-glass > *{pointer-events:auto}
.ab-glass.is-menu-open{background:var(--veil-open);-webkit-mask-image:none;mask-image:none}
.ab-glass::before,.ab-drop::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:url(assets/img/grain.webp);background-repeat:repeat;background-size:180px 180px;opacity:var(--grain)}
.admin-bar .ab-glass{top:32px}
@media (max-width: 782px){.admin-bar .ab-glass{top:46px}}
@media (max-width: 600px){.admin-bar .ab-glass{top:0}}

.ab-brand{font-size:18px;font-weight:300;letter-spacing:0.01em;transition:opacity 0.3s ease 0.05s, transform 0.35s ease 0.05s}
.ab-brand.is-auto{opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity 0.35s ease, transform 0.35s ease}
.ab-brand.is-auto.is-shown{opacity:1;transform:translateY(0);pointer-events:auto}
@media (max-width: 1320px){
.ab-glass:has(.ab-work:not(.is-closed):hover) .ab-brand,.ab-glass:has(.ab-work.is-open) .ab-brand,.ab-glass:has(.ab-work:focus-within) .ab-brand{opacity:0 !important;transform:translateX(-8px) !important;pointer-events:none}
}

.ab-nav{display:flex;flex-wrap:nowrap;align-items:center;gap:4px 32px;margin-left:auto}
.ab-nav a,.ab-drop a,.ab-menu-btn{font-size:14px;font-weight:200;letter-spacing:0.08em;text-transform:uppercase}
.ab-nav a.is-active,.ab-sub a.is-active{color:var(--accent)}
.ab-work{position:relative;display:flex;align-items:center;padding:16px 0;margin:-16px 0}
.ab-works{display:flex;align-items:center;gap:8px;min-height:44px}
.ab-sub{position:absolute;right:100%;top:0;bottom:0;display:flex;align-items:center;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(10px);transition:opacity 0.2s ease 0.1s, transform 0.25s ease 0.1s, visibility 0s linear 0.35s}
.ab-work:hover .ab-sub,.ab-work:focus-within .ab-sub,.ab-work.is-open .ab-sub{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:opacity 0.45s ease 0.15s, transform 0.55s cubic-bezier(0.2, 0.7, 0.2, 1) 0.15s, visibility 0s linear 0s}
.ab-work.is-closed .ab-sub{opacity:0 !important;visibility:hidden !important;pointer-events:none !important;transform:translateX(10px) !important;transition:opacity 0.2s ease 0s, transform 0.25s ease 0s, visibility 0s linear 0.25s !important}
.ab-sub-in{display:flex;align-items:center;gap:28px;padding-right:28px;margin-right:28px;border-right:1px solid currentColor}
.ab-sub a{display:flex;align-items:center;min-height:44px;white-space:nowrap}

.ab-switch{flex:none;width:44px;height:44px;padding:0;border:none;background:transparent;color:var(--fg);display:flex;align-items:center;justify-content:center;cursor:inherit}
.ab-switch svg{transition:transform 0.5s ease}
.is-dark .ab-switch svg{transform:rotate(180deg)}

.ab-menu-btn{display:none;flex:none;align-items:center;min-height:44px;padding:0;border:none;background:transparent;color:var(--fg);cursor:inherit}
.ab-drop{display:none;z-index:0;position:absolute;top:calc(100% - 24px);left:0;right:0;flex-direction:column;padding:4px var(--pad) 72px;background:var(--drop-bg);-webkit-backdrop-filter:blur(28px) saturate(130%);backdrop-filter:blur(28px) saturate(130%);-webkit-mask-image:linear-gradient(to bottom, #000 0%, #000 calc(100% - 60px), rgba(0,0,0,0.5) calc(100% - 30px), rgba(0,0,0,0) 100%);mask-image:linear-gradient(to bottom, #000 0%, #000 calc(100% - 60px), rgba(0,0,0,0.5) calc(100% - 30px), rgba(0,0,0,0) 100%)}
.ab-drop a{display:flex;align-items:center;min-height:44px}
.ab-drop a.is-sub{min-height:40px;padding-left:16px}

@media (max-width: 860px){
.ab-nav{display:none}
.ab-menu-btn{display:flex}
.ab-switch{margin-left:auto}
.ab-drop.is-open{display:flex}
}
@media (min-width: 861px) and (max-width: 1180px){
.ab-nav{gap:4px 20px}
.ab-nav a{letter-spacing:0.05em}
.ab-sub-in{gap:14px;padding-right:16px;margin-right:16px}
}
@media (min-width: 861px) and (max-width: 1020px){
.ab-nav{gap:4px 14px}
.ab-nav a{font-size:12px;letter-spacing:0.03em}
.ab-sub-in{gap:10px;padding-right:10px;margin-right:10px}
}

/* ---------- Home ---------- */
.ab-hero{padding:0 0 clamp(20px, 2.5vw, 32px)}
.ab-hero h1{margin:0;font-size:clamp(32px, 5.5vw, 64px);line-height:1;font-weight:300;letter-spacing:-0.01em;white-space:nowrap}
.ab-filters{display:flex;flex-wrap:wrap;gap:0 36px;padding:2px 0}
.ab-filter{display:flex;align-items:center;gap:8px;min-height:44px;padding:0;border:none;background:transparent;color:var(--muted);font-size:14px;font-weight:200;letter-spacing:0.08em;text-transform:uppercase;cursor:inherit}
.ab-filter.is-active{color:var(--fg)}
.ab-dot{flex:none;width:5px;height:5px;border-radius:50%;background:currentColor;opacity:0;transition:opacity 0.2s ease}
.is-active > .ab-dot{opacity:1}
.ab-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(min(100%, 380px), 1fr));gap:56px 32px;padding:48px 0 120px}
.ab-card{display:flex;flex-direction:column;gap:10px;transition:opacity 0.9s ease var(--d, 0s), transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) var(--d, 0s)}
.js .ab-card{opacity:0;transform:translateY(32px)}
.js .ab-card.is-seen{opacity:1;transform:none}
.ab-grid.is-resetting .ab-card{transition:none}
.ab-thumb{position:relative;aspect-ratio:16 / 9;background:var(--ph);overflow:hidden}
.ab-thumb img,.ab-thumb video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ab-thumb video{opacity:0;transition:opacity 0.4s ease}
.ab-thumb video.is-playing{opacity:1}
.ab-card-meta{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline}
.ab-card-title{font-size:17px;font-weight:200;letter-spacing:-0.01em;line-height:1.15}
.ab-card-cat{font-size:13px;font-weight:400;color:var(--sub);white-space:nowrap}

/* ---------- Piede ---------- */
.ab-footer{padding:64px 0 32px;display:flex;flex-direction:column;gap:56px}
.ab-footer.is-min{padding:48px 0 32px}
.ab-cols{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%, 240px), 1fr));gap:40px 32px}
.ab-col{display:flex;flex-direction:column;gap:6px}
.ab-col a{font-size:15px;font-weight:200;line-height:1.5}
.ab-label{font-size:11px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.ab-sublabel{font-size:11px;font-weight:300;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.ab-sublabel.is-second{margin:14px 0 2px}
.ab-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:11px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}

/* ---------- Pagina lavoro ---------- */
.ab-work-head{display:flex;flex-direction:column;gap:18px;padding:clamp(40px, 6vw, 88px) 0 40px}
.ab-back{font-size:14px;font-weight:400;color:var(--sub);align-self:flex-start}
.ab-work-head h1{margin:0;font-size:clamp(44px, 7vw, 112px);line-height:0.95;font-weight:200;letter-spacing:-0.03em}
.ab-video{position:relative;margin:0 auto;aspect-ratio:var(--arn, 1.7778);background:var(--player);display:flex;align-items:center;justify-content:center;overflow:hidden}
@media (min-width: 1441px){.ab-video{max-width:calc((100vh - 100px) * var(--arn, 1.7778))}}
.ab-video > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ab-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
.ab-play{position:relative;width:96px;height:96px;border-radius:50%;border:2px solid #FFFFFF;background:transparent;display:flex;align-items:center;justify-content:center;cursor:inherit;padding:0}
.ab-credits{padding:64px 0 72px;max-width:720px}
.ab-h2{margin:0 0 14px;font-size:12px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.ab-credits ul{margin:0;padding:0;list-style:none;font-size:13px}
.ab-credits li{position:relative;display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.4fr);gap:16px;padding:9px 0}
.ab-credits li.is-end{display:block;height:1px;padding:0}
.ab-line{position:absolute;left:0;right:0;top:0;height:1px;background:var(--hair);transform-origin:left center;transition:transform 2.2s cubic-bezier(0.25, 0.6, 0.15, 1) var(--d, 0s)}
.js .ab-line{transform:scaleX(0)}
.js.is-ready .ab-line{transform:scaleX(1)}
.ab-role{color:var(--sub);font-weight:300}
.ab-name{font-weight:400}
.ab-frames{padding:72px 0;display:flex;flex-direction:column;gap:24px}
.ab-frames .ab-h2{margin:0}
.ab-row{display:flex;gap:24px}
.ab-row > div{min-width:0;background:var(--ph)}
.ab-row img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width: 700px){.ab-row{flex-direction:column}.ab-row > div{flex:none !important}}
.ab-more{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr))}
.ab-more a{display:flex;flex-direction:column;gap:8px;padding:32px 24px 32px 0;border-right:1px solid var(--fg)}
.ab-more a + a{padding:32px 0 32px 24px;text-align:right;align-items:flex-end;border-right:none}
.ab-more small{font-size:12px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.ab-more span{font-size:clamp(22px, 3vw, 40px);font-weight:200;letter-spacing:-0.02em}

/* ---------- Stills ---------- */
.ab-page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;padding:clamp(48px, 8vw, 120px) 0 clamp(32px, 4vw, 56px)}
.ab-h1{margin:0;font-size:clamp(40px, 6vw, 64px);line-height:1;font-weight:300;letter-spacing:0.5px}
.ab-lead{margin:0;font-size:18px;line-height:1.4;font-weight:200;color:var(--sub);max-width:380px}
.ab-photos{columns:3 300px;column-gap:24px;padding:40px 0 120px}
@media (min-width: 1921px){.ab-photos{columns:4 300px}}
@media (min-width: 2561px){.ab-photos{columns:5 300px}}
.ab-photos figure{margin:0 0 24px;break-inside:avoid;display:flex;flex-direction:column;gap:8px}
.ab-photos figure > button{display:block;width:100%;padding:0;border:none;background:var(--ph);cursor:inherit}
.ab-photos img{display:block;width:100%;height:auto}
.ab-photos figcaption{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--sub)}
.ab-photos figcaption span:first-child{font-weight:200;color:var(--fg)}
.ab-note{font-size:14px;font-weight:300;color:var(--sub);padding:24px 0}
.ab-lb{--cur:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27 shape-rendering=%27crispEdges%27%3E%3Cg stroke=%27%23FFFFFF%27 stroke-width=%271%27%3E%3Cline x1=%2716.5%27 y1=%274%27 x2=%2716.5%27 y2=%2713%27/%3E%3Cline x1=%2716.5%27 y1=%2720%27 x2=%2716.5%27 y2=%2729%27/%3E%3Cline x1=%274%27 y1=%2716.5%27 x2=%2713%27 y2=%2716.5%27/%3E%3Cline x1=%2720%27 y1=%2716.5%27 x2=%2729%27 y2=%2716.5%27/%3E%3C/g%3E%3C/svg%3E") 16 16, crosshair;cursor:var(--cur);position:fixed;inset:0;z-index:100000;background:rgba(8, 8, 8, 0.96);color:#F2F2F2;display:flex;flex-direction:column;box-sizing:border-box;padding:20px clamp(16px, 3vw, 40px);font-family:'Archivo', Arial, 'Helvetica Neue', Helvetica, sans-serif}
.ab-lb-top{display:flex;justify-content:space-between;align-items:center;min-height:44px;font-size:14px;font-weight:200;letter-spacing:0.08em;text-transform:uppercase}
.ab-lb button{border:none;background:transparent;color:#F2F2F2;cursor:var(--cur);padding:0}
.ab-lb-close{min-height:44px;font-size:14px;font-weight:200;letter-spacing:0.08em;text-transform:uppercase}
.ab-lb-mid{flex:1;min-height:0;display:flex;align-items:center;gap:16px}
.ab-lb-arrow{flex:none;width:56px;height:56px;font-size:28px;font-weight:200}
.ab-lb-stage{position:relative;flex:1;min-width:0;height:100%}
.ab-lb-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;max-width:none}
.ab-lb-bottom{display:flex;justify-content:space-between;gap:16px;min-height:44px;align-items:center;font-size:13px;font-weight:200;color:#B5B5B5}
.ab-lb-bottom span:first-child{color:#F2F2F2}
@media (max-width: 600px){.ab-lb-mid{gap:0}.ab-lb-arrow{width:40px}}

/* ---------- About ---------- */
.ab-about{display:grid;grid-template-columns:minmax(240px, 360px) minmax(0, 1fr);gap:48px 72px;max-width:1180px;padding:clamp(48px, 8vw, 120px) 0 80px}
.ab-portrait{position:relative;aspect-ratio:4 / 5;align-self:start;background:var(--ph);overflow:hidden}
.ab-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ab-about-text{display:flex;flex-direction:column;gap:28px}
.ab-bio{display:flex;flex-direction:column;gap:28px}
.ab-bio p{margin:0;font-size:clamp(19px, 1.8vw, 24px);line-height:1.45;font-weight:200;letter-spacing:-0.005em;max-width:640px}
.ab-bio a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.ab-contact{padding-top:16px;display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%, 220px), 1fr));gap:32px}
.ab-about .ab-bio p{font-size:clamp(16px, 1.25vw, 18px);line-height:1.55;letter-spacing:0;max-width:620px}
.ab-hon{display:flex;flex-direction:column;gap:40px;padding-top:12px;max-width:720px}
.ab-hon .ab-label{display:block;margin:0 0 10px}
.ab-hon ul{margin:0;padding:0;list-style:none}
.ab-hon li{display:grid;grid-template-columns:64px minmax(0, 1.4fr) minmax(0, 1fr);gap:16px;padding:7px 0;font-size:14px;font-weight:300}
.ab-hon li span:first-child{color:var(--muted)}
.ab-hon li span:last-child{color:var(--sub)}
@media (max-width: 760px){.ab-about{grid-template-columns:1fr}.ab-portrait{max-width:360px}.ab-hon li{grid-template-columns:52px minmax(0, 1fr)}.ab-hon li span:last-child{grid-column:2}}

/* ---------- Archivio ---------- */
.ab-arch-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;padding:clamp(48px, 8vw, 120px) 0 clamp(40px, 5vw, 72px)}
.ab-afilters{margin-bottom:-10px}
.ab-arch{display:flex;flex-direction:column;gap:56px;padding-bottom:120px}
.ab-year{display:grid;grid-template-columns:200px minmax(0, 1fr);gap:0 40px}
.ab-ylab{position:sticky;top:104px;align-self:start}
.ab-ylab h2{margin:0;font-size:40px;line-height:1;font-weight:200;letter-spacing:-0.01em}
.ab-ylist{display:flex;flex-direction:column;border-left:1px solid var(--hair);padding-left:28px}
.ab-arow{display:grid;grid-template-columns:minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr) 64px;gap:8px 32px;align-items:baseline;width:100%;padding:14px 0;border:none;background:transparent;color:inherit;font-family:inherit;text-align:left;cursor:inherit}
.ab-arow:hover{opacity:1}
.ab-rt{font-size:20px;font-weight:200;letter-spacing:-0.01em;line-height:1.2;transition:opacity 0.25s ease}
.ab-rd{font-size:14px;font-weight:300;color:var(--sub)}
.ab-k{font-size:11px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);margin-right:8px}
.ab-hint{justify-self:end;opacity:0;transition:opacity 0.25s ease;font-size:12px;font-weight:300;letter-spacing:0.08em;text-transform:uppercase;color:var(--sub)}
.ab-arow:hover .ab-hint,.ab-arow:focus-visible .ab-hint{opacity:1}
/* Al passaggio: la voce sotto il mouse resta nitida, le altre si sfuocano appena */
.ab-arow > *{transition:opacity 0.25s ease, filter 0.35s ease}
@media (hover: hover) and (min-width: 861px){
.ab-arch:has(.ab-arow:hover) .ab-arow:not(:hover) > *{filter:blur(1.2px)}
}
.ab-mob{display:none;margin-top:4px;font-size:13px;font-weight:300;color:var(--sub);letter-spacing:0}
.js .ab-cas{opacity:0;transform:translateY(18px)}
.js.is-ready .ab-cas.is-in{opacity:1;transform:none;transition:opacity 0.7s ease var(--d, 0s), transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) var(--d, 0s)}
.ab-prev{position:fixed;left:0;top:0;z-index:40;width:480px;aspect-ratio:16 / 9;pointer-events:none;background:var(--ph);overflow:hidden;opacity:0;transform:translate(var(--px, 0px), var(--py, 0px)) scale(0.96);transform-origin:left top;transition:opacity 0.25s ease, transform 0.12s ease-out}
.ab-prev.is-on{opacity:1;transform:translate(var(--px, 0px), var(--py, 0px)) scale(1)}
.ab-prev img,.ab-prev video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ab-prev video{opacity:0;transition:opacity 0.3s ease}
.ab-prev video.is-playing{opacity:1}
.ab-ov{--cur:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27 shape-rendering=%27crispEdges%27%3E%3Cg stroke=%27%23FFFFFF%27 stroke-width=%271%27%3E%3Cline x1=%2716.5%27 y1=%274%27 x2=%2716.5%27 y2=%2713%27/%3E%3Cline x1=%2716.5%27 y1=%2720%27 x2=%2716.5%27 y2=%2729%27/%3E%3Cline x1=%274%27 y1=%2716.5%27 x2=%2713%27 y2=%2716.5%27/%3E%3Cline x1=%2720%27 y1=%2716.5%27 x2=%2729%27 y2=%2716.5%27/%3E%3C/g%3E%3C/svg%3E") 16 16, crosshair;cursor:var(--cur);position:fixed;inset:0;z-index:100000;background:rgba(8, 8, 8, 0.96);color:#F2F2F2;display:flex;flex-direction:column;box-sizing:border-box;padding:20px clamp(16px, 3vw, 40px);font-family:'Archivo', Arial, 'Helvetica Neue', Helvetica, sans-serif}
.ab-ov-top{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:44px;font-size:14px;font-weight:200;letter-spacing:0.08em;text-transform:uppercase}
.ab-ov button{border:none;background:transparent;color:#F2F2F2;padding:0;font-family:inherit}
.ab-ov-close{min-height:44px;font-size:14px;font-weight:200;letter-spacing:0.08em;text-transform:uppercase}
.ab-ov-mid{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:16px 0}
.ab-ov-player{position:relative;width:min(100%, calc((100vh - 220px) * var(--arn, 1.7778)));aspect-ratio:var(--arn, 1.7778);background:#000000}
.ab-ov-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ab-ov-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 32px;min-height:44px}
.ab-ov-text{display:flex;flex-direction:column;gap:6px}
.ab-ov-title{font-size:clamp(22px, 2.4vw, 32px);font-weight:200;letter-spacing:-0.01em;line-height:1.1}
.ab-ov-meta{font-size:13px;font-weight:300;color:#B5B5B5}
.ab-ov-link{font-size:12px;font-weight:300;letter-spacing:0.08em;text-transform:uppercase;color:#F2F2F2}
@media (hover: none){.ab-prev{display:none}}
@media (max-width: 860px){.ab-prev{display:none}.ab-year{grid-template-columns:1fr}.ab-ylab{position:static;padding-bottom:8px}.ab-arow{grid-template-columns:1fr;gap:4px}.ab-hint,.ab-rd{display:none}.ab-mob{display:block}}

/* ---------- Pagine generiche ---------- */
.ab-plain{padding:clamp(48px, 8vw, 120px) 0 80px;display:flex;flex-direction:column;gap:28px}

/* ---------- Telefono ---------- */
@media (max-width: 520px){
.ab-glass{height:112px;box-sizing:border-box;padding:0 20px 48px;flex-wrap:nowrap;gap:12px}
.ab-brand{font-size:16px;white-space:nowrap}
.ab-hero{padding:0 0 18px;margin-top:-16px}
.ab-hero h1{font-size:30px}
.ab-filters{flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:12px;overflow-x:auto;scrollbar-width:none;padding:0}
.ab-filters::-webkit-scrollbar{display:none}
.ab-filter{flex:none;height:40px;min-height:0;gap:4px;font-size:10.5px;line-height:1;font-weight:300;letter-spacing:0.05em;white-space:nowrap}
.ab-filter .ab-dot{width:4px;height:4px}
.ab-grid{gap:36px;padding:28px 0 96px}
.ab-card{gap:8px}
.ab-card-meta{display:flex;justify-content:space-between}
.ab-card-title{font-size:16px;line-height:normal}
.ab-card-cat{font-size:12px}
}

/* ---------- Privacy: avviso e richiesta prima di Vimeo ---------- */
.ab-ck-open{margin-left:24px;padding:0;border:none;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit}
.ab-ck{position:fixed;right:var(--pad);bottom:24px;z-index:60;width:min(380px, calc(100vw - 2 * var(--pad)));box-sizing:border-box;padding:18px 20px 16px;background:var(--bg);color:var(--fg);border:1px solid var(--hair);font-family:'Archivo', Arial, 'Helvetica Neue', Helvetica, sans-serif;opacity:0;transform:translateY(12px);transition:opacity 0.35s ease, transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1)}
.ab-ck.is-on{opacity:1;transform:none}
.ab-ck-txt{margin:0;font-size:13px;font-weight:300;line-height:1.45}
.ab-ck-more{margin-top:10px;font-size:12px;font-weight:300;color:var(--sub)}
.ab-ck-more summary{display:inline-block;list-style:none;font-size:11px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);cursor:inherit}
.ab-ck-more summary::-webkit-details-marker{display:none}
.ab-ck-more summary::after{content:' +'}
.ab-ck-more[open] summary::after{content:' –'}
.ab-ck-more ul{margin:10px 0 8px;padding:0;list-style:none}
.ab-ck-more li{display:grid;grid-template-columns:96px minmax(0, 1fr);gap:12px;padding:7px 0;border-top:1px solid var(--hair);line-height:1.4}
.ab-ck-more li span:first-child{color:var(--fg)}
.ab-ck-more a{font-size:11px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase}
.ab-ck-btns{display:flex;gap:8px;margin-top:14px}
.ab-ck-btns button{flex:1;min-height:40px;padding:0 12px;border:1px solid var(--fg);background:transparent;color:var(--fg);font-size:12px;font-weight:400;letter-spacing:0.08em;text-transform:uppercase}
.ab-ck-btns button:hover{opacity:1;background:var(--fg);color:var(--bg)}
.ab-gate{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;box-sizing:border-box;background:rgba(0, 0, 0, 0.72);color:#F2F2F2;text-align:center}
.ab-gate p{margin:0;max-width:360px;font-size:13px;font-weight:300;line-height:1.45}
.ab-gate button{min-height:44px;padding:0 22px;border:1px solid #F2F2F2;background:transparent;color:#F2F2F2;font-family:inherit;font-size:12px;font-weight:400;letter-spacing:0.08em;text-transform:uppercase}
.ab-gate button:hover{opacity:1;background:#F2F2F2;color:#111111}
@media (max-width: 520px){.ab-ck{left:16px;right:16px;bottom:16px;width:auto}}

@media (prefers-reduced-motion: reduce){
.ab-wrap,.ab-card,.ab-line,.ab-sub,.ab-brand,.ab-switch svg,.ab-ck{transition-duration:0.01s !important;transition-delay:0s !important}
}
