:root{
  --bg:#030305; --panel:rgba(10,10,14,.72); --line:rgba(255,255,255,.10);
  --shadow:0 18px 60px rgba(0,0,0,.55);
  --text:#f0f0f0; --muted:rgba(240,240,240,.78);
  --blue:#0044ff; --cyan:#00e5ff;
  --font-en:"Oswald",sans-serif; --font-jp:"Noto Sans JP",sans-serif;
  --r:18px; --container:1120px;
  --title-desktop:3rem; --title-mobile:2.4rem;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--font-jp);overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
ul{list-style:none}
:focus-visible{outline:2px solid rgba(0,229,255,.55);outline-offset:3px;border-radius:10px}

/* Cursor */
.cursor,.cursor-follower{position:fixed;pointer-events:none;z-index:9998;transform:translate(-50%,-50%)}
.cursor{width:8px;height:8px;background:var(--cyan);border-radius:999px;z-index:9999}
.cursor-follower{width:40px;height:40px;border:1px solid rgba(0,229,255,.5);border-radius:999px;transition:width .25s,height .25s,background .25s,border-color .25s}
.cursor-follower.active{width:60px;height:60px;background:rgba(0,229,255,.10);border-color:var(--cyan)}

/* Layout */
.section{padding:96px 0;background:var(--bg);position:relative}
.section__inner{width:min(var(--container),calc(100% - 40px));margin:0 auto}
.section__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.section__title{font-family:var(--font-en);font-size:var(--title-desktop);text-transform:uppercase;letter-spacing:.12em;line-height:1.05}

/* Reveal: default is visible. Only hide when JS is active */
.reveal{opacity:1;transform:none}
html.js .reveal{
  opacity:0;transform:translateY(14px);
  transition:opacity .7s ease,transform .7s ease;
  will-change:opacity,transform;
}
html.js .reveal.is-in{opacity:1;transform:translateY(0)}


/* card-color */
.black { background:#15161a; }
.blue  { background:#00428e; }
.gold  { background:#b28247; }
.purple{ background:#601986; }

/* NAV */
.glass-nav{
  position:fixed;top:0;left:0;right:0;
  padding:18px 5vw;display:flex;justify-content:space-between;align-items:center;gap:18px;
  background:rgba(3,3,5,.6);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,.05);z-index:100;
}
.brand__img{height:52px;width:auto;max-width:52vw;filter:drop-shadow(0 10px 24px rgba(0,0,0,.45))}
.nav-links{display:flex;gap:30px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.nav-links a{font-family:var(--font-en);font-size:.9rem;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.nav-links a:hover{opacity:1}

/* Hamburger */
.menu-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0}
.menu-toggle span{width:26px;height:2px;background:#fff;display:block}

/* HERO */
.hero{height:100vh;display:flex;align-items:center;padding-left:10vw;position:relative;overflow:hidden}
.hero-inner{padding-top:68px}
.overflow-hidden{overflow:hidden}
.hero-bg{position:fixed;top:0;left:0;width:100%;height:100vh;z-index:-1;overflow:hidden}
.hero-slide{
  position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;
  opacity:0;transition:opacity 1.5s ease-in-out;filter:brightness(.5);
}
.hero-slide.active{opacity:1}

/* Hero title: default visible. Only hide when JS is active */
.hero-title{
  font-family:var(--font-en);font-size:8vw;line-height:.92;text-transform:uppercase;letter-spacing:.08em;
}
html.js .hero-title{
  opacity:0;transform:translateY(70px);
  transition:transform .9s ease,opacity .9s ease;
  will-change:transform,opacity;
}
html.js .hero-title.is-in{opacity:1;transform:translateY(0)}
.hero-title--second{margin-top:10px}
.text-blue{color:transparent;-webkit-text-stroke:3px var(--blue);text-shadow:0 0 26px rgba(0,68,255,.45)}

/* ABOUT */
.about-grid{margin-top:22px;display:grid;grid-template-columns:1.2fr .8fr;gap:16px;align-items:stretch}
.about-card{
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 20px 60px rgba(0,0,0,.55);
  padding:20px;
}
.about-title{font-family:var(--font-en);text-transform:uppercase;letter-spacing:.10em;font-size:1.6rem;margin-bottom:12px}
.about-text{color:var(--muted);line-height:1.8;font-size:.95rem}
.about-media{border-radius:var(--r);border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden;background:#0b0b10}

/* EVENTS */
.events__grid{margin-top:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.eventCard{
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 20px 60px rgba(0,0,0,.55);
}
.eventCard__media{position:relative;height:210px;background:center/cover no-repeat}
.eventCard__media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.78),rgba(0,0,0,0) 55%)}
.eventCard__body{padding:14px}
.eventCard__title{margin:0 0 6px;font-family:var(--font-en);text-transform:uppercase;letter-spacing:.10em;font-size:1.1rem;line-height:1.2}
.eventCard__meta{margin:0 0 8px;opacity:.75;font-weight:700;letter-spacing:.06em}
.eventCard__desc{margin:0;opacity:.75;line-height:1.6;font-size:.95rem}

/* Links */
.project-link{font-family:var(--font-en);text-transform:uppercase;letter-spacing:.12em;font-size:.85rem;opacity:.9}
.project-link:hover{opacity:1;color:var(--cyan)}

/* PROJECTS */
.project-grid{margin-top:22px;display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.project-card{
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 20px 60px rgba(0,0,0,.55);
}
.project-logo{display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,.18);border-right:1px solid rgba(255,255,255,.08)}
.project-logo img{max-height:52px;max-width:140px;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 10px 24px rgba(0,0,0,.35));opacity:.95}
.project-body{padding:18px}
.project-title{font-family:var(--font-en);text-transform:uppercase;letter-spacing:.10em;font-size:1.4rem;margin-bottom:8px}
.project-text{color:rgba(240,240,240,.75);line-height:1.7;font-size:.95rem;margin-bottom:10px}

/* LOCATIONS */
.shop-grid{margin-top:22px;display:grid;grid-template-columns:repeat(2,1fr);gap:30px}
.shop-card{
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 20px 60px rgba(0,0,0,.55);
}
.shop-card:hover{transform:translateY(-10px);border-color:var(--blue);box-shadow:0 10px 30px rgba(0,68,255,.2)}
.shop-img{width:100%;height:250px;overflow:hidden}
.shop-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.shop-card:hover .shop-img img{transform:scale(1.08)}
.shop-info{padding:26px}
.shop-info h3{font-family:var(--font-en);font-size:1.8rem;margin-bottom:12px;letter-spacing:.06em;text-transform:uppercase}
.shop-info p{font-size:.95rem;color:#ccc;line-height:1.7;margin-bottom:12px}
.ig-box{margin-top:12px;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.10);background:rgba(0,0,0,.18)}

/* Footer */
.footer{padding:28px 0 40px;border-top:1px solid rgba(255,255,255,.06);background:rgba(0,0,0,.35)}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.footer-left{opacity:.75}

/* Image Modal */
.image-modal{position:fixed;inset:0;display:none;z-index:9999}
.image-modal.active{display:flex;align-items:center;justify-content:center}
.image-modal__overlay{position:absolute;inset:0;background:rgba(0,0,0,.85);backdrop-filter:blur(6px)}
.image-modal__content{position:relative;max-width:90%;max-height:90%;z-index:1}
.image-modal__content img{width:100%;height:auto;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.6)}

/* Mobile */
@media (max-width:980px){
  .section__title{font-size:var(--title-mobile)}
  .brand__img{height:34px;max-width:70vw}

  .menu-toggle{display:flex}
  .nav-links{
    position:fixed;top:0;right:-100%;
    width:75%;height:100vh;background:#050508;
    flex-direction:column;justify-content:center;align-items:center;
    gap:40px;transition:right .4s ease;padding-top:60px;
  }
  .nav-links.active{right:0}

  .hero{padding-left:6vw}
  .hero-title{font-size:15vw;letter-spacing:.06em;line-height:1.02}
  .hero-title--second{margin-top:18px}

  .hero-slide{
    background-size:auto 100%;
    background-position:center;
    background-repeat:no-repeat;
    background-color:#000;
    filter:brightness(.55);
  }

  .about-grid{grid-template-columns:1fr}
  .events__grid{grid-template-columns:1fr}
  .project-grid{grid-template-columns:1fr}
  .project-card{grid-template-columns:1fr}
  .project-logo{border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}
  .project-logo img{max-height:48px}
  .shop-grid{grid-template-columns:1fr}
  .shop-img{height:220px}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .hero-slide{transition:none}
  html.js .hero-title{transition:none;transform:none;opacity:1}
  html.js .reveal{transition:none;transform:none;opacity:1}
}