/* ECHO NERO — stile condiviso pagine case study */
:root{--bg:#0a0a0b;--bg2:#111113;--ink:#f4f3ef;--mut:#9a9a9f;--line:#242427;--acc:#c6ff3a;--maxw:1120px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background-color:var(--bg);background-image:radial-gradient(rgba(198,255,58,.09) 1px,transparent 1.6px);background-size:22px 22px;color:var(--ink);font-family:'Prompt',system-ui,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:'Prompt',sans-serif;font-weight:800;line-height:1.02;letter-spacing:-.02em;margin:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.acc{color:var(--acc)}
.eyebrow{font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--acc);font-weight:600}
/* nav */
nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);background:rgba(10,10,11,.72);border-bottom:1px solid var(--line)}
.navin{display:flex;align-items:center;justify-content:space-between;height:62px}
.logo{font-weight:800;font-size:19px;letter-spacing:-.3px;display:inline-flex;gap:8px;align-items:center}
.logo .e{position:relative;color:var(--ink)}
.logo .e::before{content:'ECHO';position:absolute;left:3px;top:2px;color:var(--acc);opacity:.6}
.back{font-size:13px;color:var(--mut);display:inline-flex;gap:7px;align-items:center;transition:color .2s}
.back:hover{color:var(--acc)}
.btn{cursor:pointer;font-weight:600;font-size:14px;border-radius:999px;padding:12px 22px;transition:transform .18s,box-shadow .18s,border-color .18s;border:1px solid transparent;display:inline-flex;gap:8px;align-items:center}
.btn.primary{background:var(--acc);color:#0b1a00;box-shadow:0 6px 24px rgba(198,255,58,.28)}
.btn.primary:hover{transform:translateY(-2px);box-shadow:0 10px 34px rgba(198,255,58,.45)}
.btn.ghost{border-color:var(--line);color:var(--ink)}
.btn.ghost:hover{border-color:var(--acc);color:var(--acc)}
/* hero */
.chero{padding:clamp(48px,8vw,96px) 0 24px}
.chero h1{font-size:clamp(40px,8vw,92px);max-width:16ch;margin:14px 0 0}
.chero .lead{color:var(--mut);font-size:clamp(16px,2vw,20px);max-width:60ch;margin:20px 0 0}
.meta{display:flex;flex-wrap:wrap;gap:34px;margin:34px 0 0;border-top:1px solid var(--line);padding-top:22px}
.meta div span{display:block;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--mut)}
.meta div b{font-weight:600;font-size:15px}
/* sezioni */
section{padding:clamp(40px,6vw,80px) 0}
.sec-head{max-width:64ch;margin-bottom:34px}
.sec-head h2{font-size:clamp(28px,4.5vw,46px);margin-top:6px}
.sec-head p{color:var(--mut);margin:12px 0 0;font-size:16px}
/* brief (la richiesta) */
.brief{background:var(--bg2);border:1px solid var(--line);border-left:3px solid var(--acc);border-radius:16px;padding:30px clamp(24px,4vw,44px)}
.brief .q{font-size:clamp(19px,2.6vw,26px);font-weight:500;line-height:1.4}
.brief .who{color:var(--mut);margin-top:16px;font-size:14px}
/* elenco risposta */
.did{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-top:8px}
.did .item{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:20px}
.did .item .n{font-weight:800;color:var(--acc);font-size:13px;letter-spacing:1px}
.did .item h3{font-size:17px;margin:8px 0 5px}
.did .item p{color:var(--mut);font-size:14px;margin:0}
/* galleria mockup */
.gal{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;align-items:start}
.gal .big{grid-column:1 / -1}
@media(max-width:760px){.gal{grid-template-columns:1fr}}
.mock{position:relative;border:1px solid var(--line);border-radius:18px;overflow:hidden;min-height:300px;display:grid;place-items:center;padding:26px}
.mock .cap{position:absolute;bottom:14px;left:16px;z-index:5;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--ink);background:rgba(0,0,0,.55);padding:4px 9px;border-radius:8px;backdrop-filter:blur(4px)}
.mock.imgm{padding:0;overflow:hidden;height:340px;display:block}
.mock.big.imgm{height:clamp(320px,42vw,460px)}
.mock.imgm img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.mock.imgm.top img{object-position:top}
/* immagine mostrata INTERA, alla proporzione naturale (niente crop) */
.mock.fit{padding:0;overflow:hidden;min-height:0;display:block;background:#0f0f11}
.mock.fit img{width:100%;height:auto;display:block}
/* artwork racchiuso in una cornice ad altezza fissa, sempre intero */
.mock.fit.frame{height:clamp(320px,46vw,520px);display:grid;place-items:center;padding:14px}
.mock.fit.frame img{width:100%;height:100%;object-fit:contain}
/* callout nozione chiave */
.note-key{background:linear-gradient(120deg,rgba(198,255,58,.10),rgba(198,255,58,.03));border:1px solid var(--line);border-left:3px solid var(--acc);border-radius:16px;padding:26px clamp(22px,4vw,40px)}
.note-key h3{font-size:clamp(20px,3vw,28px)}
.note-key p{color:#cfcfca;margin:10px 0 0;max-width:74ch}
/* risultati */
.results{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:center}
@media(max-width:640px){.results{grid-template-columns:1fr}}
.results b{font-weight:800;font-size:clamp(34px,5vw,54px);display:block;line-height:1}
.results .u{color:var(--acc)}
.results span{color:var(--mut);font-size:13px;display:block;margin-top:8px}
/* cta finale */
.cta{background:var(--bg2);border:1px solid var(--line);border-radius:22px;padding:clamp(30px,5vw,56px);text-align:center}
.cta h2{font-size:clamp(28px,5vw,48px)}
.cta p{color:var(--mut);max-width:52ch;margin:14px auto 24px}
.next{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:20px;color:var(--mut);font-size:14px}
.next a:hover{color:var(--acc)}
footer{border-top:1px solid var(--line);padding:34px 0;color:var(--mut);font-size:14px}
.foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center}
.disclaimer{max-width:var(--maxw);margin:14px auto 0;padding:0 24px;color:#6a6a70;font-size:12px}
/* reveal */
.rev{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.rev.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rev{opacity:1;transform:none}}
