*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--text-secondary)}
body.lock{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{color:var(--text-primary);margin:0;text-wrap:balance}
h1{font-size:var(--fs-display);line-height:var(--lh-display);font-weight:var(--fw-display);letter-spacing:var(--ls-display)}
h2{font-size:var(--fs-h2);line-height:var(--lh-h2);font-weight:var(--fw-h2);letter-spacing:var(--ls-h2)}
h3{font-size:var(--fs-h4);line-height:var(--lh-h4);font-weight:var(--fw-h4);letter-spacing:var(--ls-h4)}
p{margin:0}
ul,ol{list-style:none;margin:0;padding:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:var(--space-4);top:calc(-1 * var(--space-12));z-index:100;background:var(--color-inchiostro);color:var(--color-nebbia);padding:var(--space-2) var(--space-4);border-radius:var(--radius-ctl)}
.skip:focus{top:var(--space-4)}
:focus-visible{outline:var(--btn-focus-width) solid var(--btn-focus-color);outline-offset:var(--btn-focus-offset)}
.ico{width:var(--icon-md);height:var(--icon-md);flex:none}
.grad-text{background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{font-size:var(--fs-eyebrow);font-weight:var(--fw-eyebrow);letter-spacing:var(--ls-eyebrow);line-height:var(--lh-eyebrow);text-transform:uppercase;background:var(--gradient-accent);-webkit-background-clip:text;background-clip:text;color:transparent;width:fit-content}
.eyebrow--on-dark{background:var(--gradient-dark);-webkit-background-clip:text;background-clip:text}
.lead{font-size:var(--fs-lead);line-height:var(--lh-lead);color:var(--text-secondary);max-width:var(--measure)}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--btn-md-gap);min-height:var(--btn-md-h);padding-inline:var(--btn-md-px);font:inherit;font-size:var(--btn-md-fs);font-weight:var(--btn-weight);border-radius:var(--btn-radius-pill);border:var(--btn-border-width) solid transparent;text-decoration:none;cursor:pointer;transition:var(--btn-transition);white-space:nowrap}
.btn .ico{width:var(--btn-md-icon);height:var(--btn-md-icon)}
.btn--sm{min-height:var(--btn-sm-h);padding-inline:var(--btn-sm-px);font-size:var(--btn-sm-fs)}
.btn--primary{background:var(--btn-primary-default-bg);color:var(--btn-primary-default-fg)}
@media (hover:hover) and (pointer:fine){.btn--primary:hover{background:var(--btn-primary-hover-bg)}}
.btn--gradient{background:var(--btn-gradient-default-bg);color:var(--btn-gradient-default-fg);box-shadow:var(--shadow-lg)}
@media (hover:hover) and (pointer:fine){.btn--gradient:hover{background:var(--btn-gradient-hover-bg)}}
.btn--outline{background:var(--btn-outline-default-bg);color:var(--btn-outline-default-fg);border-color:var(--btn-outline-default-border)}
@media (hover:hover) and (pointer:fine){.btn--outline:hover{background:var(--btn-outline-hover-bg);border-color:var(--btn-outline-hover-border)}}
.btn--link{background:none;color:var(--btn-link-default-fg);padding-inline:var(--space-2)}
@media (hover:hover) and (pointer:fine){.btn--link:hover{color:var(--btn-link-hover-fg)}}
.btn--light{background:var(--surface);color:var(--text-primary)}
.btn--ghost-dark{background:transparent;color:var(--surface);border-color:currentColor}
.actions{display:flex;flex-wrap:wrap;gap:var(--btn-group-gap);margin-top:var(--space-7)}
.actions--center{justify-content:center}
.link{display:inline-flex;gap:var(--space-2);align-items:center;color:var(--link);font-weight:var(--fw-link);text-decoration:none}
@media (hover:hover) and (pointer:fine){.link:hover{color:var(--link-hover)}}
/* nav */
/* sections */
.sec{padding-block:var(--section-m)}
.sec--soft{background:var(--surface)}
.sec--dark{background:var(--color-inchiostro)}
.sec-head{display:grid;gap:var(--space-4);max-width:calc(var(--measure) + var(--space-10))}
.sec-head--center{text-align:center;margin-inline:auto;justify-items:center;margin-bottom:var(--space-9)}
.sec-row{display:flex;justify-content:space-between;align-items:end;gap:var(--space-7);margin-bottom:var(--space-9)}
.sec-row .actions{margin-top:0;flex:none}
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-11);align-items:start}

/* hero */
.hero{padding-block:var(--space-11) var(--section-m);background:var(--gradient-soft);overflow:hidden}

/* quote */
.quote{display:grid;grid-template-columns:auto 1fr;gap:var(--space-8);align-items:start;max-width:calc(var(--container-max) - var(--space-14))}

/* grids & cards */
.grid{display:grid;gap:var(--grid-gap)}
.grid--4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--surface);border:var(--line) solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow var(--dur-sm) var(--ease-standard),transform var(--dur-sm) var(--ease-standard);position:relative}
a.card,.card--post{display:block;text-decoration:none}
@media (hover:hover) and (pointer:fine){a.card:hover,.card--post:hover{box-shadow:var(--shadow-md);transform:translateY(calc(-1 * var(--move-xs)))}}
.card__media{display:block;aspect-ratio:var(--media-ratio-card);overflow:hidden;background:var(--surface-alt)}
.card__media img{width:100%;height:100%;object-fit:cover;object-position:top}
.card__body{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);color:var(--text-primary)}
.card__title{font-weight:var(--fw-h4);font-size:var(--fs-link-sm)}
.card__pad{padding:var(--space-6);display:grid;gap:var(--space-3)}
.card--feat{padding:var(--card-pad);display:grid;gap:var(--space-3);align-content:start}
.tile{display:inline-grid;place-items:center;width:var(--space-9);height:var(--space-9);border-radius:var(--radius-ctl);background:var(--gradient-light);color:var(--color-indaco);font-weight:var(--fw-h3);font-size:var(--fs-small)}
.card--dark{background:var(--neutro-900);border-color:var(--neutro-800)}
.card--dark h3{color:var(--surface)}.card--dark p{color:var(--neutro-300)}
.card--dark .card__media{background:var(--neutro-800)}
.sec--dark .card__media img{object-position:center}
/* accordion */
.acc-list{display:grid;gap:var(--space-3)}
.acc{background:var(--surface);border:var(--line) solid var(--border);border-radius:var(--radius-lg);transition:box-shadow var(--dur-md)}
.acc[open]{box-shadow:var(--shadow-md);border-color:var(--border-strong)}
.acc summary{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6);font-weight:var(--fw-h4);color:var(--text-primary);cursor:pointer;list-style:none}
.acc summary::-webkit-details-marker{display:none}
.ico--plus{color:var(--color-indaco);transition:transform var(--dur-sm)}
.acc[open] .ico--plus{transform:rotate(45deg)}
.acc__body{padding:0 var(--space-6) var(--space-6);display:grid;gap:var(--space-4)}
.split--media{grid-template-columns:1fr 1fr;align-items:center}
.media-frame{background:var(--gradient-light);border-radius:var(--radius-xl);padding:var(--space-8)}
.media-frame img{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-inline:auto}
/* steps */
.steps{counter-reset:s}
.step{padding:var(--card-pad);display:grid;gap:var(--space-3);align-content:start}
.step__n{font-size:var(--fs-h2);font-weight:var(--fw-display);line-height:var(--lh-h2);background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;color:transparent;width:fit-content}
/* why */

/* promo */
.promo{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--space-10);align-items:center;background:var(--color-inchiostro);border-radius:var(--radius-xl);padding:var(--space-11);position:relative;overflow:hidden}
.promo h2{color:var(--surface);margin-block:var(--space-3) var(--space-4)}
.promo .lead{color:var(--neutro-300)}
.checks{display:grid;gap:var(--space-3);margin-top:var(--space-6);color:var(--neutro-200)}
.checks li{display:flex;gap:var(--space-3);align-items:center}
.checks .ico{color:var(--color-viola)}

/* prose */
.prose{display:grid;gap:var(--space-5);font-size:var(--fs-lead);line-height:var(--lh-lead)}
/* blog */
.badge{display:inline-block;width:fit-content;padding:var(--space-1) var(--space-2);border-radius:var(--radius-pill);background:var(--gradient-light);color:var(--color-indaco);font-size:var(--fs-caption);font-weight:var(--fw-caption)}

.stretched::after{content:"";position:absolute;inset:0}
/* testimonials */

.testi{break-inside:avoid;margin-bottom:var(--grid-gap);padding:var(--card-pad);display:grid;gap:var(--space-5)}
.testi blockquote{margin:0;color:var(--text-primary);font-size:var(--fs-lead);line-height:var(--lh-lead)}
.testi__who{display:flex;gap:var(--space-3);align-items:center}
.testi__who img{width:var(--avatar);height:var(--avatar);border-radius:var(--radius-pill);object-fit:cover}
.testi__name{font-weight:var(--fw-h4);color:var(--text-primary);font-size:var(--fs-small)}
.testi__org{font-size:var(--fs-caption);color:var(--text-muted)}
/* footer */
.foot{background:var(--color-inchiostro);color:var(--neutro-300);padding-block:var(--section-s) var(--space-8);font-size:var(--fs-small)}
.foot a{color:var(--neutro-300);text-decoration:none}@media (hover:hover) and (pointer:fine){.foot a:hover{color:var(--surface)}}
.foot__cta{display:flex;justify-content:space-between;align-items:center;gap:var(--space-7);padding:var(--space-10);border-radius:var(--radius-xl);background:var(--gradient-intense);margin-bottom:var(--space-10)}
.foot__cta h2{color:var(--surface)}
.foot__cta .btn--light{color:var(--text-primary)}
.foot__news{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);padding-bottom:var(--space-9);border-bottom:var(--line) solid var(--neutro-800)}
.foot__h{color:var(--surface);font-size:var(--fs-h4);font-weight:var(--fw-h4);margin-bottom:var(--space-2)}
.news{display:grid;grid-template-columns:1fr auto;gap:var(--space-3)}
.news input{font:inherit;min-height:var(--btn-md-h);padding-inline:var(--space-5);border-radius:var(--radius-pill);border:var(--line) solid var(--neutro-700);background:var(--neutro-900);color:var(--surface)}
.news__note{grid-column:1/-1;font-size:var(--fs-caption);color:var(--neutro-400)}
.news__note a{text-decoration:underline}
.foot__cols{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-7);padding-block:var(--space-9)}
.foot__title{color:var(--surface);font-weight:var(--fw-h4);margin-bottom:var(--space-4)}
.foot__cols li+li{margin-top:var(--space-2)}
.foot__bottom{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-7);align-items:center;padding-top:var(--space-7);border-top:var(--line) solid var(--neutro-800)}
.foot__logo{filter:invert(1) grayscale(1) brightness(2)}
.foot__social{display:flex;gap:var(--space-4)}
.foot__legal{grid-column:1/-1;color:var(--neutro-400)}
/* responsive: breakpoint = token navbar (1024) e mobile (640) del design system */
@media (max-width:63.9375rem){
 .grid--4{grid-template-columns:repeat(2,1fr)}.foot__cols{grid-template-columns:repeat(3,1fr)}}
@media (max-width:63.9375rem){.hero__grid,.split,.split--media,.promo,.foot__news{grid-template-columns:1fr}.split{gap:var(--space-8)}.promo{padding:var(--space-9)}
 .sec-row{flex-direction:column;align-items:start}.foot__cta{flex-direction:column;align-items:start}}
@media (max-width:47.9375rem){.grid--4.tpl{grid-template-columns:1fr 1fr;gap:var(--space-3)}.tpl .card__body{padding:var(--space-3)}.tpl .card__body .ico{display:none}h1{font-size:var(--fs-h1);line-height:var(--lh-h1)}.grid--4,.grid--3{grid-template-columns:1fr}.foot__cols{grid-template-columns:1fr 1fr}
 .hero{padding-top:var(--space-8)}.quote{grid-template-columns:1fr;gap:var(--space-5)}.promo{padding:var(--space-7) var(--space-5)}
 .media-frame{padding:var(--space-4)}.foot__cta{padding:var(--space-7)}.news{grid-template-columns:1fr}.foot__bottom{grid-template-columns:1fr}.actions .btn{flex:1 1 auto}
 .blog li:nth-child(n/**/+5){display:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* pesi del brand: 400/500/600, niente 700 di default su b/strong; controlli col font del brand */
b,strong{font-weight:var(--fw-h4)}
button,input,select,textarea{font-family:inherit}

/* Hover B · gradiente che scorre (scelta 04/11/2026). Durata 300ms, nessuno spostamento. */
:root{--btn-hover-dur:300ms;--btn-hover-ease:cubic-bezier(.4,0,.2,1);--btn-gradient-flow:linear-gradient(90deg in oklch,#4F46E5 0%,#9333EA 25%,#E11D48 50%,#9333EA 75%,#4F46E5 100%);--btn-gradient-line:linear-gradient(90deg in oklch,#4F46E5,#9333EA,#E11D48)}
.btn{transition:background-color var(--btn-hover-dur) var(--btn-hover-ease),background-position var(--btn-hover-dur) var(--btn-hover-ease),background-size var(--btn-hover-dur) var(--btn-hover-ease),box-shadow var(--btn-hover-dur) var(--btn-hover-ease),color var(--btn-hover-dur) var(--btn-hover-ease),border-color var(--btn-hover-dur) var(--btn-hover-ease),text-decoration-color var(--btn-hover-dur) var(--btn-hover-ease)}
.btn--gradient,.btn--gradient:focus-visible{background:var(--btn-gradient-flow);background-size:200% 100%;background-position:0 0}@media (hover:hover) and (pointer:fine){.btn--gradient:hover{background:var(--btn-gradient-flow);background-size:200% 100%;background-position:0 0}}
.btn--gradient:focus-visible{background-position:100% 0}@media (hover:hover) and (pointer:fine){.btn--gradient:hover{background-position:100% 0}}
.btn--gradient:active{background:var(--btn-gradient-active-bg)}
.btn--primary:focus-visible{background:var(--btn-primary-default-bg);box-shadow:0 0 0 var(--space-1) color-mix(in oklch,var(--accent) 22%,transparent),0 var(--space-2) var(--space-6) color-mix(in oklch,#9333EA 35%,transparent)}@media (hover:hover) and (pointer:fine){.btn--primary:hover{background:var(--btn-primary-default-bg);box-shadow:0 0 0 var(--space-1) color-mix(in oklch,var(--accent) 22%,transparent),0 var(--space-2) var(--space-6) color-mix(in oklch,#9333EA 35%,transparent)}}
.btn--primary:active{background:var(--btn-primary-active-bg);box-shadow:none}
.btn--outline{border-color:transparent;background:linear-gradient(var(--btn-outline-default-bg),var(--btn-outline-default-bg)) padding-box,var(--btn-gradient-line) border-box no-repeat 0 0/0% 100%,linear-gradient(var(--btn-outline-default-border),var(--btn-outline-default-border)) border-box}
.btn--outline:focus-visible{border-color:transparent;background:linear-gradient(var(--btn-outline-default-bg),var(--btn-outline-default-bg)) padding-box,var(--btn-gradient-line) border-box no-repeat 0 0/100% 100%,linear-gradient(var(--btn-outline-default-border),var(--btn-outline-default-border)) border-box}@media (hover:hover) and (pointer:fine){.btn--outline:hover{border-color:transparent;background:linear-gradient(var(--btn-outline-default-bg),var(--btn-outline-default-bg)) padding-box,var(--btn-gradient-line) border-box no-repeat 0 0/100% 100%,linear-gradient(var(--btn-outline-default-border),var(--btn-outline-default-border)) border-box}}
.btn--outline:active{background:linear-gradient(var(--btn-outline-active-bg),var(--btn-outline-active-bg)) padding-box,var(--btn-gradient-line) border-box}
.btn--ghost{background:var(--btn-ghost-default-bg);color:var(--btn-ghost-default-fg)}
.btn--ghost:focus-visible{background:linear-gradient(90deg in oklch,color-mix(in oklch,#4F46E5 10%,transparent),color-mix(in oklch,#E11D48 10%,transparent))}@media (hover:hover) and (pointer:fine){.btn--ghost:hover{background:linear-gradient(90deg in oklch,color-mix(in oklch,#4F46E5 10%,transparent),color-mix(in oklch,#E11D48 10%,transparent))}}
.btn--link{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:var(--space-1);text-decoration-thickness:var(--btn-border-width)}
.btn--link:focus-visible{text-decoration-color:#9333EA}@media (hover:hover) and (pointer:fine){.btn--link:hover{text-decoration-color:#9333EA}}
@media (prefers-reduced-motion:reduce){.btn,.btn *{transition:none!important;animation:none!important}}

/* Hover B esteso: elementi a forma di bottone fuori da .btn (controllo 04/11/2026) */
:root{--btn-veil:linear-gradient(90deg in oklch,color-mix(in oklch,#4F46E5 10%,transparent),color-mix(in oklch,#E11D48 10%,transparent));--btn-veil-dark:linear-gradient(90deg in oklch,color-mix(in oklch,#4F46E5 28%,transparent),color-mix(in oklch,#E11D48 28%,transparent));--btn-glow:0 0 0 var(--space-1) color-mix(in oklch,var(--accent) 22%,transparent),0 var(--space-2) var(--space-6) color-mix(in oklch,#9333EA 35%,transparent)}
details>summary,.chip,.ftab,.nav__toggle,.mnav button,.nav-acc button,.nav button{transition:background-image var(--btn-hover-dur) var(--btn-hover-ease),background-color var(--btn-hover-dur) var(--btn-hover-ease),box-shadow var(--btn-hover-dur) var(--btn-hover-ease),color var(--btn-hover-dur) var(--btn-hover-ease),border-color var(--btn-hover-dur) var(--btn-hover-ease)}
details>summary:focus-visible,.ftab:focus-visible{background-image:var(--btn-veil)!important}@media (hover:hover) and (pointer:fine){details>summary:hover,.chip.is-active:hover,.ftab:hover,.ftab.is-active:hover{background-image:var(--btn-veil)!important}}
@media (hover:hover) and (pointer:fine){.chip.is-active:hover{box-shadow:var(--btn-glow)}}
.btn--light:focus-visible{box-shadow:var(--btn-glow)}@media (hover:hover) and (pointer:fine){.btn--light:hover{box-shadow:var(--btn-glow)}}
.btn--ghost-dark:focus-visible{background-image:var(--btn-veil-dark)}@media (hover:hover) and (pointer:fine){.btn--ghost-dark:hover{background-image:var(--btn-veil-dark)}}
@media (prefers-reduced-motion:reduce){details>summary,.chip,.ftab,.nav__toggle,.mnav button,.nav-acc button,.nav button{transition:none!important}}

/* Piccolezze 04/11/2026 · rifinitura qualità */
h1,h2,h3,h4{text-wrap:balance}
p,li,dd{text-wrap:pretty}
.auth-slide img{aspect-ratio:16/10;object-fit:cover}
@media (max-width:48rem){
 .nav__logo,.foot a:has(> img),.foot a:has(> svg:only-child),footer a:has(> img){display:inline-flex;align-items:center;min-height:44px}
 .crumbs a,.crumbs [aria-current]{display:inline-flex;align-items:center;min-height:44px}
 .link,.btn--link{display:inline-flex;align-items:center;min-height:44px}
}
@media (max-width:48rem){
 .chip,.skip{min-height:44px;display:inline-flex;align-items:center}
 .auth__back,.auth__logo,.auth-forgot{display:inline-flex;align-items:center;min-height:44px}
}
/* touch: niente hover persistente, solo feedback breve al tap */
@media (hover:none),(pointer:coarse){html body :is(.btn,.tech-pill,.tech-btn,.tech-code__copy,.primary-button,.primary-button-prisma,.pv-btn,.stage-palette-tool__create-btn,.stage-palette-tool__toolbar-btn,.stage-palette-tool__icon-btn,.stage-palette-tool__toolbar-icon-btn,.stage-palette-tool__mode-tab,.stage-palette-tool__harmony-btn,.stage-palette-tool__export-pill,.color-studio-cta__arrow,.section-footer-stage__edge-credit):not(:disabled):not(#mfa):not(#mfb):not(#mfb2):not(#mfb3):active{transform:scale(.98)!important;opacity:.9!important;transition:transform 80ms ease-out,opacity 80ms ease-out!important}}
