:root{
  --bg: #0b0b0f;
  --bg-2: #101018;
  --fg: #e6e8ec;
  --muted: #a7adba;
  --accent: #7b5cff;
  --accent-2: #00e5ff;
  --neon-3: #12f7d6;
  --neon-4: #ff2bdc;
  --card: #141421;
  --border: #232338;
  --shadow: 0 10px 30px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--fg);
  background: radial-gradient(1000px 600px at 10% 0%, #0f0f18 0%, #0b0b0f 50%, #07070b 100%),
             linear-gradient(135deg, #0b0b0f 0%, #0c0c12 100%);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
.overlay-grid{display:none}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;
  background:
    repeating-linear-gradient(90deg, rgba(123,92,255,.05) 0 1px, transparent 1px 80px),
    repeating-linear-gradient(0deg, rgba(0,229,255,.05) 0 1px, transparent 1px 80px);
  opacity:.25;
}
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.25;
  background:
    repeating-linear-gradient(0deg, transparent 0 160px, rgba(0,229,255,.07) 160px 176px),
    repeating-linear-gradient(0deg, transparent 0 140px, rgba(123,92,255,.06) 140px 154px),
    repeating-linear-gradient(0deg, transparent 0 120px, rgba(18,247,214,.06) 120px 134px);
  background-size: 100% 100%, 100% 100%, 100% 100%;
  background-position: 0 0, 0 0, 0 0;
  animation: waves 18s linear infinite;
}
@keyframes waves{
  0%   { background-position: 0 0, 0 0, 0 0; }
  50%  { background-position: 0 -80px, 0 -60px, 0 -40px; }
  100% { background-position: 0 -160px, 0 -120px, 0 -80px; }
}
.skip-link{
  position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;
}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:#000;color:#fff;padding:.5rem 1rem;border-radius:.5rem}
.container{width:100%;max-width:1100px;margin:0 auto;padding:0 1.25rem}

.topbar{
  position:sticky;top:0;z-index:50;
  background:rgba(11,11,15,.6);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--border);
}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:800;letter-spacing:.5px}
.brand .brand-mark{width:28px;height:28px;filter: drop-shadow(0 0 10px rgba(0,229,255,.35))}
.brand .brand-name{font-family: Orbitron, Inter, sans-serif}
.nav-toggle{display:none}
.nav-menu{display:flex;gap:1rem;list-style:none;margin:0;padding:0}
.nav-menu a{
  display:inline-block;padding:.5rem .7rem;border-radius:.5rem;text-decoration:none;color:var(--fg);
  position:relative;transition: color .2s ease, background .2s ease, transform .2s ease;
}
.nav-menu a::after{
  content:"";position:absolute;left:12%;right:12%;bottom:.25rem;height:2px;border-radius:2px;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  transform: scaleX(0);transform-origin:left;transition: transform .25s ease;
}
.nav-menu a:hover{background:rgba(255,255,255,.06);color:#d7fafe}
.nav-menu a:hover::after{transform: scaleX(1)}
.btn{
  display:inline-block;border:1px solid transparent;border-radius:.6rem;padding:.7rem 1rem;text-decoration:none;
  font-weight:700;letter-spacing:.3px
}
.btn-primary{
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  color:#0b0b0f;
  box-shadow: 0 6px 18px rgba(123,92,255,.35), inset 0 0 12px rgba(0,229,255,.3);
}
.btn-secondary{
  background:transparent;border-color:rgba(255,255,255,.2);color:var(--fg)
}
.btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(123,92,255,.45), 0 0 24px rgba(0,229,255,.25);
}

.hero{
  position:relative;min-height:68vh;display:grid;place-items:center;text-align:center;overflow:hidden
}
.hero-inner{position:relative;z-index:3;padding:6rem 0 6rem}
.hero .glow{
  font-family: Orbitron, Inter, sans-serif;
  font-size: clamp(2.4rem, 6vw, 4rem);
  line-height:1.1;margin:.2rem 0;
  background: linear-gradient(90deg, var(--accent-2), var(--accent), var(--neon-4));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow: 0 0 24px rgba(0,229,255,.25), 0 0 40px rgba(123,92,255,.2);
  letter-spacing:.02em;
}
.subtitle{color:var(--muted);margin-bottom:1.2rem}
.hero .subtitle{
  font-size: clamp(1.6rem, 5vw, 3.6rem);
  font-weight:800;
  background: linear-gradient(90deg, var(--accent-2), var(--accent), var(--neon-3), var(--neon-4));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow: 0 0 22px rgba(0,229,255,.3), 0 0 34px rgba(123,92,255,.28);
  letter-spacing:.03em;
  margin-bottom:.6rem
}
.notice{
  color:#ff9eb3;font-weight:800;text-transform:uppercase;letter-spacing:.18em;margin:.2rem 0 1rem;opacity:.95
}
.hero-bg{
  position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(600px 200px at 50% 20%, rgba(0,229,255,.12), transparent 70%),
    radial-gradient(500px 180px at 20% 80%, rgba(123,92,255,.12), transparent 70%),
    conic-gradient(from 180deg at 50% 50%, rgba(0,229,255,.06), rgba(123,92,255,.06), transparent);
}
.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:160px;z-index:2;pointer-events:none;opacity:.35;
  --h1:40%;--h2:60%;--h3:35%;--h4:75%;--h5:45%;--h6:55%;--h7:30%;--h8:70%;
  background-image:
    linear-gradient(var(--accent-2), var(--accent-2)),
    linear-gradient(var(--accent), var(--accent)),
    linear-gradient(var(--neon-3), var(--neon-3)),
    linear-gradient(var(--neon-4), var(--neon-4)),
    linear-gradient(var(--accent-2), var(--accent-2)),
    linear-gradient(var(--accent), var(--accent)),
    linear-gradient(var(--neon-3), var(--neon-3)),
    linear-gradient(var(--neon-4), var(--neon-4));
  background-repeat:no-repeat;
  background-position:
    0 100%,
    24px 100%,
    48px 100%,
    72px 100%,
    96px 100%,
    120px 100%,
    144px 100%,
    168px 100%;
  background-size:
    12px var(--h1),
    12px var(--h2),
    12px var(--h3),
    12px var(--h4),
    12px var(--h5),
    12px var(--h6),
    12px var(--h7),
    12px var(--h8);
  filter: drop-shadow(0 0 8px rgba(0,229,255,.25));
  -webkit-mask-image: linear-gradient(to top, rgba(0,0,0,1), rgba(0,0,0,0));
  mask-image: linear-gradient(to top, rgba(0,0,0,1), rgba(0,0,0,0));
  animation: eq 2.5s steps(5) infinite;
}
@keyframes eq{
  0%   { --h1:40%; --h2:60%; --h3:35%; --h4:75%; --h5:45%; --h6:55%; --h7:30%; --h8:70%; }
  20%  { --h1:65%; --h2:30%; --h3:70%; --h4:40%; --h5:55%; --h6:35%; --h7:75%; --h8:45%; }
  40%  { --h1:35%; --h2:80%; --h3:45%; --h4:55%; --h5:70%; --h6:30%; --h7:50%; --h8:60%; }
  60%  { --h1:55%; --h2:45%; --h3:75%; --h4:30%; --h5:35%; --h6:70%; --h7:60%; --h8:40%; }
  80%  { --h1:30%; --h2:55%; --h3:60%; --h4:80%; --h5:40%; --h6:50%; --h7:45%; --h8:65%; }
  100% { --h1:40%; --h2:60%; --h3:35%; --h4:75%; --h5:45%; --h6:55%; --h7:30%; --h8:70%; }
}
.hero-bg::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image: url("./images/img_dream_craft_events.jpeg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity:.5;
}
.hero-bg::before{
  content:"";position:absolute;left:50%;top:60%;transform:translate(-50%,-50%);width:1200px;height:1200px;border-radius:50%;
  background: radial-gradient(closest-side, rgba(0,229,255,.06), transparent 60%);
  filter: blur(60px);
  z-index:1;
}

.section{position:relative;padding:4rem 0;border-top:1px solid var(--border)}
.section::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;pointer-events:none;opacity:.5;
  background: repeating-linear-gradient(90deg, rgba(0,229,255,.5) 0 12px, transparent 12px 18px),
              repeating-linear-gradient(90deg, rgba(123,92,255,.4) 0 6px, transparent 6px 18px);
  filter: drop-shadow(0 0 6px rgba(0,229,255,.3));
}
.section-head{text-align:center;margin-bottom:1.8rem}
.section-head h2{
  margin:.2rem 0 0;font-family: Orbitron, Inter, sans-serif;
  background: linear-gradient(90deg, var(--accent-2), var(--accent), var(--neon-3));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.section-head p{color:var(--muted);margin:.4rem auto 0;max-width:720px}

.count-grid{
  display:grid;grid-template-columns: repeat(4, minmax(0,1fr));gap:1rem;margin-top:1.2rem
}
.count-box{
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01)) padding-box,
             linear-gradient(135deg, rgba(123,92,255,.6), rgba(0,229,255,.6)) border-box;
  border:1px solid transparent;border-radius:1rem;padding:1.2rem;text-align:center;box-shadow:var(--shadow)
}
.count-box .num{font-size: clamp(2rem, 6vw, 3rem);font-weight:800;font-variant-numeric:tabular-nums}
.count-box .label{color:var(--muted);text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;margin-top:.35rem}

.about-grid{
  display:grid;grid-template-columns: repeat(3, minmax(0,1fr));gap:1rem
}
.card{
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01)) padding-box,
              linear-gradient(135deg, rgba(123,92,255,.5), rgba(0,229,255,.5)) border-box;
  border:1px solid transparent;border-radius:1rem;padding:1.2rem;box-shadow:var(--shadow);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.card .icon{font-size:1.6rem;margin-bottom:.6rem}
.card:hover{
  transform: translateY(-4px);
  box-shadow: 0 18px 36px rgba(0,0,0,.45), 0 0 30px rgba(0,229,255,.2);
  filter: saturate(1.1);
}

.card ol{margin:.5rem 0 0;padding-left:0;list-style:none}
.card ol li{margin:.25rem 0;position:relative;padding-left:1.1rem}
.card ol li::before{
  content:"▹";position:absolute;left:0;top:0;color:var(--accent-2);
  filter: drop-shadow(0 0 6px rgba(0,229,255,.5));
}

.benefits-grid{
  display:grid;grid-template-columns: repeat(3, minmax(0,1fr));gap:1rem;align-items:stretch
}
.benefits-grid .card h3{
  margin-top:.2rem;
  background: linear-gradient(90deg, var(--neon-4), var(--accent-2));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  letter-spacing:.02em;
}
.benefits-grid .card p strong{
  background: linear-gradient(90deg, var(--accent), var(--neon-3));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

.video-wrap{
  position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:1rem;border:1px solid var(--border);box-shadow:var(--shadow)
}
.video-wrap iframe{position:absolute;top:0;left:0;width:100%;height:100%}
.video-wrap video{position:absolute;top:0;left:0;width:100%;height:100%;background:#000}

.artist-grid{display:grid;grid-template-columns: repeat(3, minmax(0,1fr));gap:1rem}
.artist{
  background: var(--card);border:1px solid var(--border);border-radius:1rem;overflow:hidden;box-shadow:var(--shadow);
  position:relative;display:block;aspect-ratio: 16 / 9;
}
.artist img{
  position:absolute;inset:0;display:block;width:100%;height:100%;
  object-fit: contain;object-position: center;background:linear-gradient(180deg, #000, #0b0b0f);
}
.cta-wrap{display:grid;place-items:center;margin-top:1rem}

.info-grid{display:grid;grid-template-columns: repeat(4, minmax(0,1fr));gap:1rem}
.info-item{
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01)) padding-box,
              linear-gradient(135deg, rgba(123,92,255,.5), rgba(0,229,255,.5)) border-box;
  border:1px solid transparent;border-radius:1rem;padding:1.1rem;box-shadow:var(--shadow);
  position:relative;overflow:hidden;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.hero .info-grid{grid-template-columns: repeat(2, minmax(0,1fr))}
.hero .info-item{backdrop-filter: blur(8px)}
.info-item:hover{
  transform: translateY(-3px);
  box-shadow: 0 18px 36px rgba(0,0,0,.45), 0 0 26px rgba(0,229,255,.18);
  filter: saturate(1.05);
}
.info-item h3{
  margin:.2rem 0 .4rem;
  background: linear-gradient(90deg, var(--accent-2), var(--accent));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  letter-spacing:.02em;
}
.info-item p{color:var(--fg);opacity:.9}
.info-item::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:6px;opacity:.8;pointer-events:none;
  background: linear-gradient(90deg, var(--accent-2), var(--accent), var(--neon-3), var(--neon-4), var(--accent-2));
  background-size:200% 100%;
  animation: slidebar 6s linear infinite;
}
@keyframes slidebar{
  from{ background-position: 0 0; }
  to{ background-position: 100% 0; }
}

.logo-grid{display:grid;grid-template-columns: repeat(6, minmax(0,1fr));gap:1rem}
.logo{
  display:grid;place-items:center;padding:1.2rem;border-radius:.9rem;border:1px solid var(--border);background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01));
  font-weight:800;color:#cbd5ff;text-transform:uppercase;letter-spacing:.12em
}

.footer{padding:2rem 0;text-align:center;color:var(--muted);border-top:1px solid var(--border);background:var(--bg-2)}

@media (max-width: 960px){
  .artist-grid{grid-template-columns: repeat(2, minmax(0,1fr))}
  .info-grid{grid-template-columns: repeat(2, minmax(0,1fr))}
  .logo-grid{grid-template-columns: repeat(3, minmax(0,1fr))}
}
@media (max-width: 680px){
  .topbar-inner{height:auto;flex-wrap:wrap;gap:.6rem;padding:.6rem 0}
  .nav-toggle{display:inline-flex;border:1px solid var(--border);background:var(--card);color:var(--fg);padding:.35rem .6rem;border-radius:.5rem}
  .nav-menu{display:none;flex-direction:column;width:100%}
  .nav-menu.show{display:flex}
  .count-grid{grid-template-columns: repeat(2, minmax(0,1fr))}
  .about-grid{grid-template-columns: 1fr}
  .benefits-grid{grid-template-columns: repeat(2, minmax(0,1fr))}
  .artist-grid{grid-template-columns: 1fr}
  .info-grid{grid-template-columns: 1fr}
  .logo-grid{grid-template-columns: repeat(2, minmax(0,1fr))}
}
