/* ============================================
   G&R Studio - Stili home "Iperspazio"
   ============================================ */

.mono{font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;letter-spacing:.14em;}

/* cursore custom (solo desktop con mouse) */
#cur,#cur-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:400;border-radius:50%;}
#cur{width:8px;height:8px;margin:-4px 0 0 -4px;background:var(--accent);}
#cur-ring{width:34px;height:34px;margin:-17px 0 0 -17px;border:1.5px solid rgba(247,147,30,.55);transition:width .25s,height .25s,margin .25s,border-color .25s;}
#cur-ring.grow{width:56px;height:56px;margin:-28px 0 0 -28px;border-color:var(--accent-hover);}
body.nocur, body.nocur a, body.nocur button{cursor:none;}

/* HUD di avanzamento (desktop) */
#hud{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:250;display:none;text-align:center;}
@media (min-width:1000px){#hud{display:block;}}
#hud .track{position:relative;width:2px;height:150px;margin:0 auto;background:rgba(148,163,184,.18);}
#hud .fill{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--accent);transform-origin:top center;transform:scaleY(0);}
#hud .lbl{margin-top:.7rem;font-size:.6rem;color:var(--text-muted);}

/* ---------- HERO IPERSPAZIO ---------- */
#warp-hero{position:relative;min-height:96vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:6.5rem 1.5rem 4rem;}
#warp{position:absolute;inset:0;width:100%;height:100%;display:block;}
.wh-inner{position:relative;z-index:2;max-width:880px;}
.wh-eyebrow{display:block;font-size:.7rem;color:var(--accent);text-transform:uppercase;margin-bottom:1.5rem;}
#wh-title{font-size:clamp(2.4rem,8vw,5rem);line-height:1.04;font-weight:900;letter-spacing:-0.025em;margin-bottom:1.3rem;min-height:2.1em;}
#wh-title .acc{color:var(--accent);}
.wh-sub{color:var(--text-secondary);font-weight:300;font-size:1.06rem;line-height:1.75;max-width:37rem;margin:0 auto 2.4rem;}
.wh-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}
.wh-cue{position:absolute;bottom:1.3rem;left:50%;transform:translateX(-50%);z-index:2;color:var(--text-muted);font-size:.62rem;letter-spacing:.32em;text-transform:uppercase;}
.wh-cue::after{content:'';display:block;width:2px;height:30px;margin:.5rem auto 0;background:linear-gradient(180deg,var(--accent),transparent);}

/* ---------- ORBITA 3D ---------- */
#orbita{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;border-top:1px solid var(--border-color);padding:3.5rem 0 4rem;}
#orb-bgs{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
.orb-bg{position:absolute;inset:-4%;background-size:cover;background-position:center;opacity:0;transition:opacity 0.9s ease;will-change:opacity;transform:translateZ(0);}
.orb-bg.on{opacity:0.15;}
.orb-veil{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 25%,rgba(15,23,42,0.92) 82%);}
body.rm .orb-bg,body.rm .orb-veil{display:none;}
.orb-head{text-align:center;margin-bottom:1.2rem;padding:0 1.5rem;position:relative;z-index:2;}
.orb-head h2{font-size:clamp(1.6rem,4.5vw,2.5rem);letter-spacing:-0.01em;margin:.4rem 0 .4rem;}
.orb-head p{color:var(--text-secondary);font-weight:300;}
#orb-ghost{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:clamp(2.6rem,10vw,7.5rem);font-weight:900;letter-spacing:-0.02em;color:rgba(148,163,184,.06);text-transform:uppercase;pointer-events:none;user-select:none;text-align:center;padding:0 .8rem;}
#scene{position:relative;z-index:2;height:400px;perspective:1200px;perspective-origin:50% 42%;}
#ring{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform;}
.ring-card{position:absolute;left:50%;top:50%;width:230px;margin:-105px 0 0 -115px;display:block;color:inherit;text-decoration:none;background:rgba(30,41,59,.92);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.15rem 1.2rem;backface-visibility:hidden;opacity:.5;transition:opacity .3s ease;}
.ring-card:hover{color:inherit;}
.ring-card .ricon{width:38px;height:38px;border-radius:var(--radius-sm);background:var(--accent-subtle);border:1px solid rgba(247,147,30,.4);color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:.7rem;}
.ring-card .ricon svg{width:19px;height:19px;}
.ring-card h3{font-size:.98rem;margin-bottom:.3rem;}
.ring-card p{color:var(--text-secondary);font-size:.76rem;line-height:1.5;margin:0;}
.ring-card.front{opacity:1;border-color:rgba(247,147,30,.65);box-shadow:0 0 34px -10px rgba(247,147,30,.55);}
#orb-caption{position:relative;z-index:2;text-align:center;margin-top:1.4rem;padding:0 1.5rem;}
#orb-name{font-size:clamp(1.05rem,3vw,1.5rem);font-weight:700;}
#orb-count{display:block;margin-top:.35rem;color:var(--accent);font-size:.8rem;}
#orb-btn{margin-top:1rem;display:inline-block;}
@media (max-width:640px){
  #scene{height:340px;perspective:900px;}
  .ring-card{width:180px;margin:-92px 0 0 -90px;padding:.95rem 1rem;}
  .ring-card p{display:none;}
  .ring-card h3{font-size:.9rem;margin-bottom:0;}
}
body.rm #scene{height:auto;perspective:none;padding:0 1.5rem;}
body.rm #ring{position:static;display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));max-width:1040px;margin:0 auto;}
body.rm .ring-card{position:static;margin:0;width:auto;transform:none!important;opacity:1;}
body.rm #orb-ghost{display:none;}

/* ---------- VELOCITÀ ---------- */
#velo{padding:6rem 0;border-top:1px solid var(--border-color);overflow:hidden;}
.strip{white-space:nowrap;font-weight:900;font-size:clamp(3.4rem,11vw,8rem);line-height:1.06;letter-spacing:-0.02em;color:transparent;-webkit-text-stroke:1px rgba(148,163,184,.35);will-change:transform;}
.strip.fill{color:var(--accent);-webkit-text-stroke:0;}
.strip span{padding:0 2.2rem;display:inline-block;}

/* ---------- DUE FRATELLI ---------- */
#due{position:relative;padding:7rem 1.5rem;text-align:center;overflow:hidden;}
#due .halo{position:absolute;left:50%;top:50%;width:640px;height:640px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(247,147,30,.10) 0%,transparent 62%);pointer-events:none;}
#due .inner{position:relative;z-index:2;max-width:640px;margin:0 auto;}
#due h2{font-size:clamp(1.8rem,5vw,2.8rem);letter-spacing:-0.01em;margin-bottom:1.1rem;min-height:1.2em;white-space:nowrap;}
.gr-hover{display:inline-block;cursor:default;}
.gr-init{color:var(--accent);}
.gr-amp{color:var(--text-secondary);padding:0 0.12em;}
.gr-studio{color:var(--text-primary);}
.gr-rest{display:inline-block;overflow:hidden;max-width:0;vertical-align:bottom;transition:max-width 0.55s ease;}
.gr-rest i{font-style:normal;color:#ffffff;display:inline-block;transition:transform 0.55s ease;}
.gr-rest--right i{transform:translateX(-105%);}
.gr-rest--left i{transform:translateX(105%);}
.gr-hover.open .gr-rest{max-width:9ch;}
.gr-hover.open .gr-rest i{transform:translateX(0);}
body.rm .gr-rest{transition:none;}
body.rm .gr-rest i{transition:none;}
#due p{color:var(--text-secondary);font-weight:300;line-height:1.8;}

/* ---------- NUMERI ---------- */
.nums{padding:1rem 1.5rem 5.5rem;}
.nums .grid{max-width:900px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;}
@media (min-width:760px){.nums .grid{grid-template-columns:repeat(4,1fr);}}
.num-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.6rem 1rem;text-align:center;}
.num-card b{display:block;font-size:2.2rem;font-weight:800;color:var(--accent);}
.num-card span{font-size:.78rem;color:var(--text-secondary);letter-spacing:.06em;text-transform:uppercase;}

/* ---------- CTA FINALE ---------- */
.hy-end{position:relative;padding:6.5rem 1.5rem 7.5rem;text-align:center;border-top:1px solid var(--border-color);overflow:hidden;}
.hy-end h2{font-size:clamp(1.7rem,5vw,2.7rem);margin-bottom:1rem;}
.hy-end p{color:var(--text-secondary);font-weight:300;margin-bottom:2.6rem;}
#mag-wrap{position:relative;display:inline-block;}
#mag-btn{display:inline-block;will-change:transform;position:relative;z-index:2;}
.pulse-ring{position:absolute;left:50%;top:50%;width:100%;height:100%;border:1px solid rgba(247,147,30,.5);border-radius:var(--radius-sm);transform:translate(-50%,-50%);pointer-events:none;opacity:0;}
body.rm .pulse-ring{display:none;}

/* ============================================
   Skin hi-tech per le pagine interne
   ============================================ */

.page-hero{position:relative;overflow:hidden;}
.page-hero::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(600px 300px at 12% 0%,rgba(247,147,30,0.08),transparent 70%),radial-gradient(520px 280px at 88% 100%,rgba(99,102,241,0.07),transparent 70%);}
.page-hero > *{position:relative;}
.page-hero h1{font-weight:800;letter-spacing:-0.02em;}
.page-hero h1::after{content:'';display:block;width:64px;height:3px;margin:1.1rem auto 0;background:linear-gradient(90deg,var(--accent),transparent);border-radius:2px;}

.breadcrumbs{font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;text-transform:uppercase;letter-spacing:0.1em;font-size:0.68rem;}

.filter-btn{font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;text-transform:uppercase;letter-spacing:0.1em;font-size:0.72rem;}

.card,.project-card,.form-card{transition:border-color 0.3s ease,box-shadow 0.3s ease,transform 0.3s ease;}
.card:hover,.project-card:hover{border-color:rgba(247,147,30,0.45);box-shadow:0 0 34px -12px rgba(247,147,30,0.5);}

.section-header h2{letter-spacing:-0.015em;}
