@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600&family=Manrope:wght@400;600&display=swap');
:root{--bg:#0a0f24;--bg2:#121a3b;--ink:#f3efe6;--mute:#a9b0c6;--gold:#e6c07b;--line:rgba(255,255,255,.13)}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.65 Manrope,system-ui,sans-serif}
a{color:inherit}:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.w{max-width:1120px;margin:0 auto;padding:0 24px}
header{position:sticky;top:0;z-index:9;background:rgba(10,15,36,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px;gap:16px}
.logo{font:600 22px Fraunces,Georgia,serif;letter-spacing:.06em;text-decoration:none}
.logo i{color:var(--gold);font-style:normal}
nav{display:flex;gap:26px;font-size:15px}nav a{text-decoration:none;color:var(--mute);padding:4px 0;border-bottom:1px solid transparent}
nav a:hover,nav a[aria-current]{color:var(--ink);border-color:var(--gold)}
.lg button{background:none;border:1px solid var(--line);color:var(--mute);padding:4px 10px;border-radius:99px;cursor:pointer;font:inherit;font-size:13px}
.lg button[aria-pressed=true]{color:var(--bg);background:var(--gold);border-color:var(--gold)}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:400;line-height:1.1;margin:0}
h1{font-size:clamp(40px,7vw,84px);letter-spacing:-.02em;max-width:13em;animation:in 1.1s cubic-bezier(.2,.7,.2,1) both}
h2{font-size:clamp(28px,4vw,44px);margin-bottom:14px}
.hero{position:relative;overflow:hidden;padding:110px 0 90px;min-height:78vh;display:flex;align-items:center}
.hero canvas{position:absolute;inset:0;width:100%;height:100%}
.hero .w{position:relative;display:grid;gap:28px}
.sec .hero .w{grid-template-columns:1.1fr .9fr;align-items:center}
.lead{color:var(--mute);font-size:19px;max-width:34em;margin:0;animation:in 1.1s .15s both}
.btn{display:inline-block;background:var(--gold);color:#16130b;padding:14px 26px;border-radius:99px;font-weight:600;text-decoration:none;border:0;cursor:pointer;font:inherit;font-weight:600;transition:transform .2s}
.btn:hover{transform:translateY(-2px)}
section{padding:84px 0;border-top:1px solid var(--line)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:22px;margin-top:34px}
.card{display:block;background:linear-gradient(160deg,var(--bg2),#0d1431);border:1px solid var(--line);border-radius:18px;padding:30px;text-decoration:none;transition:border-color .3s}
a.card:hover{border-color:var(--gold)}
.card h3{font-size:26px;margin-bottom:10px}.card p{color:var(--mute);margin:0}
.card b{color:var(--gold);font-weight:600;display:block;margin-top:18px}
.mute{color:var(--mute)}
.row{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}
.pill{border:1px solid var(--gold);color:var(--gold);padding:8px 18px;border-radius:99px;font-size:15px}
.steps{list-style:none;padding:0;margin:34px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:22px;counter-reset:s}
.steps li{counter-increment:s;border-top:2px solid var(--gold);padding-top:14px}
.steps li::before{content:counter(s);font:400 34px Fraunces,serif;color:var(--gold);display:block}
.list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 40px;margin:30px 0 0}
.list li{padding:15px 0;border-bottom:1px solid var(--line)}
svg.art{width:100%;height:auto;max-width:480px;justify-self:center}
.bar{transform-box:fill-box;transform-origin:bottom;animation:g 2.8s ease-in-out infinite alternate}
.ln{stroke-dasharray:8 10;animation:d 1.4s linear infinite}
.ty{animation:t 3.2s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:left}
.pu{animation:p 2.4s ease-in-out infinite alternate}
@keyframes g{from{transform:scaleY(.25)}to{transform:scaleY(1)}}
@keyframes d{to{stroke-dashoffset:-36}}
@keyframes t{from{transform:scaleX(.2)}to{transform:scaleX(1)}}
@keyframes p{from{opacity:.4}to{opacity:1}}
@keyframes in{from{opacity:0;transform:translateY(22px)}}
form{display:grid;gap:22px;max-width:680px;margin-top:30px}
fieldset{border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin:0}
legend{padding:0 8px;color:var(--gold)}fieldset label{display:block;padding:3px 0}
input[type=text],input[type=email],textarea{width:100%;padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--bg2);color:var(--ink);font:inherit;margin-top:6px}
.ok{display:none;color:var(--gold)}
footer{padding:40px 0;border-top:1px solid var(--line);color:var(--mute);font-size:15px}
@media(max-width:800px){nav{display:none}.sec .hero .w{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* --- Look premium: sfumature --- */
:root{--bg:#070b1a;--gold2:linear-gradient(135deg,#f6dfae,#d6a44f 55%,#b9852f)}
body{background:#070b1a;background-image:radial-gradient(60% 50% at 8% 0%,rgba(86,58,170,.35),transparent 70%),radial-gradient(50% 45% at 100% 30%,rgba(24,128,150,.25),transparent 70%),radial-gradient(60% 50% at 20% 100%,rgba(120,50,120,.22),transparent 70%);background-attachment:fixed}
header{background:rgba(7,11,26,.6);border-bottom:1px solid rgba(255,255,255,.1)}
.hero::before{content:"";position:absolute;inset:-25%;background:radial-gradient(38% 42% at 22% 32%,rgba(120,72,200,.6),transparent 70%),radial-gradient(34% 40% at 78% 22%,rgba(30,160,180,.45),transparent 70%),radial-gradient(44% 44% at 62% 88%,rgba(52,64,170,.7),transparent 70%);filter:blur(36px);animation:aur 22s ease-in-out infinite alternate}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:160px;background:linear-gradient(transparent,#070b1a)}
@keyframes aur{from{transform:translate3d(-3%,-2%,0) scale(1)}to{transform:translate3d(4%,3%,0) scale(1.12)}}
section{border-top:1px solid transparent;border-image:linear-gradient(90deg,transparent,rgba(230,192,123,.45),transparent) 1}
.card{background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.02));backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.14);box-shadow:0 24px 60px -30px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.12)}
a.card:hover{border-color:rgba(230,192,123,.7);box-shadow:0 30px 70px -28px rgba(120,72,200,.6),inset 0 1px 0 rgba(255,255,255,.18)}
.btn{background:var(--gold2);box-shadow:0 10px 30px -10px rgba(214,164,79,.7)}
.pill{background:rgba(230,192,123,.08);border-color:rgba(230,192,123,.5)}
.steps li{border-top:0;border-image:none;position:relative;padding-top:18px}
.steps li::after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#e6c07b,rgba(230,192,123,0))}
.steps li::before{background:var(--gold2);-webkit-background-clip:text;background-clip:text;color:transparent}
svg.art{filter:drop-shadow(0 24px 60px rgba(120,72,200,.55))}
fieldset,input[type=text],input[type=email],textarea{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.16)}
.list li{border-bottom-color:rgba(255,255,255,.12)}
/* --- Versione 3D, palette sobria oro/grafite --- */
:root{--bg:#07080d}
body{background:#07080d;background-image:radial-gradient(70% 45% at 50% -8%,rgba(230,192,123,.10),transparent 70%),radial-gradient(50% 40% at 100% 100%,rgba(140,150,190,.07),transparent 70%)}
body::after{content:"";position:fixed;inset:0;pointer-events:none;opacity:.07;z-index:20;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
header{background:rgba(7,8,13,.7)}
header::after{content:"";position:absolute;left:0;bottom:-1px;height:2px;width:calc(var(--sp,0)*100%);background:var(--gold2)}
.hero::before{inset:0;filter:none;animation:none;background:radial-gradient(45% 60% at 76% 50%,rgba(230,192,123,.09),transparent 70%)}
.hero::after{background:linear-gradient(transparent,#07080d)}
.hero .w{grid-template-columns:1.05fr .95fr;align-items:center}
.hero h1{font-size:clamp(38px,5vw,70px)}
.art3d{width:100%;aspect-ratio:1;max-height:540px;justify-self:center}
.card{position:relative;overflow:hidden;background:rgba(255,255,255,.035);box-shadow:0 24px 60px -34px #000,inset 0 1px 0 rgba(255,255,255,.08)}
.card::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(360px circle at var(--mx,50%) var(--my,0),rgba(230,192,123,.17),transparent 62%)}
.card:hover::before{opacity:1}
a.card:hover{border-color:rgba(230,192,123,.55);box-shadow:0 30px 70px -34px rgba(230,192,123,.35),inset 0 1px 0 rgba(255,255,255,.14)}
@media(max-width:800px){.hero .w{grid-template-columns:1fr}.art3d{max-height:360px}}
.hero .w,.sec .hero .w{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}
.art3d{display:block;min-width:0;height:auto}
@media(max-width:800px){.hero .w,.sec .hero .w{grid-template-columns:minmax(0,1fr)}}
.hero canvas.art3d{position:static;inset:auto;width:100%;height:auto}
/* --- Portfolio --- */
.pfg{display:grid;gap:40px;margin:46px 0 24px}
.pf{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:40px;align-items:center;padding:22px;border:1px solid rgba(255,255,255,.12);border-radius:22px;background:rgba(255,255,255,.035)}
.pv{position:relative;aspect-ratio:16/10;overflow:hidden;border-radius:12px;border:1px solid rgba(255,255,255,.14);box-shadow:0 40px 80px -40px #000}
.pv iframe{position:absolute;left:0;top:0;width:1280px;height:800px;border:0;transform-origin:0 0;pointer-events:none;background:#fff}
.pf h3{font-size:34px;margin-bottom:10px}.pf .btn{display:inline-block}
@media(max-width:850px){.pf{grid-template-columns:minmax(0,1fr)}}
/* --- Menu mobile (hamburger) --- */
.bm{display:none;width:44px;height:44px;background:none;border:1px solid var(--line);border-radius:10px;cursor:pointer;position:relative;padding:0}
.bm i{position:absolute;left:11px;right:11px;height:2px;background:var(--ink);transition:transform .3s,top .3s}
.bm i:first-child{top:16px}.bm i:last-child{top:25px}
header.open .bm i:first-child{top:21px;transform:rotate(45deg)}header.open .bm i:last-child{top:21px;transform:rotate(-45deg)}
@media(max-width:800px){
.nav{gap:10px}.logo{margin-right:auto}.bm{display:block}
header.open nav{display:flex;position:absolute;top:100%;left:0;right:0;height:calc(100vh - 68px);height:calc(100dvh - 68px);flex-direction:column;gap:0;padding:20px 24px;background:#07080d;font-size:15px}
header.open nav a{font:400 34px Fraunces,Georgia,serif;color:var(--ink);padding:18px 0;border-bottom:1px solid var(--line)}
header.open nav a[aria-current]{color:var(--gold)}}
/* --- Email di contatto --- */
.ml{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(230,192,123,.4)}.ml:hover{border-color:var(--gold)}
footer .ft{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
