/* page overrides */
body.hovering #cur { background: var(--gold); }
header { gap: 12px; background: rgba(6,6,8,.95); }

/* spotlight canvas */
    #spot { position:fixed; inset:0; pointer-events:none; z-index:200; }

    /* ── ENTRANCE OVERLAY ── */
    #entrance {
      position:fixed; inset:0; z-index:500;
      background:var(--black);
      display:flex; flex-direction:column; align-items:center; justify-content:center;
      text-align:center;
      transition:opacity .8s ease, visibility .8s;
    }
    #entrance.out { opacity:0; visibility:hidden; }
    .ent-kana { font-size:12px; letter-spacing:6px; color:var(--purple-light); text-transform:uppercase; animation:entPulse 1.5s ease-in-out infinite; }
    @keyframes entPulse{ 0%,100%{opacity:.4} 50%{opacity:1} }
    .ent-title {
      font-family:'Bebas Neue',sans-serif;
      font-size:clamp(56px,12vw,140px); line-height:.9;
      background:linear-gradient(135deg,var(--purple-light),var(--gold));
      -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
      animation:entDrift 3s ease-in-out infinite;
      margin:24px 0;
    }
    @keyframes entDrift{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
    .ent-year { font-size:10px; letter-spacing:5px; color:rgba(255,255,255,.3); margin-bottom:48px; }
    .ent-btn {
      padding:18px 56px; border:2px solid var(--purple-light);
      background:transparent; color:var(--purple-light);
      font-family:'Bebas Neue',sans-serif; font-size:24px; letter-spacing:4px;
      cursor:pointer; position:relative; overflow:hidden;
      transition:color .4s, background .4s, box-shadow .4s;
    }
    .ent-btn::before { content:''; position:absolute; inset:0; background:var(--purple); transform:scaleX(0); transform-origin:left; transition:transform .4s; }
    .ent-btn:hover { color:#fff; box-shadow:0 0 40px rgba(107,33,212,.6); }
    .ent-btn:hover::before { transform:scaleX(1); }
    .ent-btn span { position:relative; z-index:1; }
    .ent-divider { width:60px; height:1px; background:rgba(107,33,212,.4); margin:0 auto 32px; }

    /* ── HEADER ── */
    @keyframes goldPulse{ 0%,100%{box-shadow:0 0 0 rgba(255,209,102,0)} 50%{box-shadow:0 0 24px rgba(255,209,102,.5)} }

    /* ── HERO ── */
    .hero {
      text-align:center; padding:100px 20px 60px;
      background:radial-gradient(ellipse at 50% 0%,rgba(255,209,102,.07),transparent 65%);
      position:relative; overflow:hidden;
    }
    .hero-ribbon {
      position:absolute; top:32px; left:50%; transform:translateX(-50%);
      white-space:nowrap; overflow:hidden; width:100%;
      font-family:'Bebas Neue',sans-serif; font-size:11px; letter-spacing:8px;
      color:rgba(255,209,102,.15); animation:ribbonScroll 18s linear infinite;
    }
    @keyframes ribbonScroll{ from{transform:translateX(50%)} to{transform:translateX(-50%)} }
    .hero-badge { display:inline-block; padding:8px 24px; border:1px solid rgba(255,209,102,.4); font-size:10px; letter-spacing:5px; color:var(--gold); margin-bottom:24px; animation:badgeGlow 3s ease-in-out infinite; }
    @keyframes badgeGlow{ 0%,100%{box-shadow:0 0 0 rgba(255,209,102,0)} 50%{box-shadow:0 0 30px rgba(255,209,102,.3)} }
    .hero-sub { font-size:11px; letter-spacing:3px; color:rgba(255,255,255,.35); }

    /* ── MARQUEE ── */
    .marquee { background:rgba(255,209,102,.05); border-top:1px solid rgba(255,209,102,.15); border-bottom:1px solid rgba(255,209,102,.15); padding:14px 0; overflow:hidden; }
    .mtrack { display:flex; white-space:nowrap; animation:mq 22s linear infinite; }
    .mtrack span { font-family:'Bebas Neue',sans-serif; font-size:20px; letter-spacing:6px; padding:0 32px; color:rgba(255,255,255,.4); }
    .mtrack .dot { color:var(--gold); }
    @keyframes mq{ to{transform:translateX(-50%)} }

    /* ── GALLERY ── */
    .gallery { max-width:1200px; margin:0 auto; padding:80px 40px 100px; }
    .gallery-title { font-family:'Bebas Neue',sans-serif; font-size:clamp(44px,7vw,80px); color:var(--white); text-align:center; margin-bottom:12px; }
    .gallery-title span { color:var(--gold); }
    .gallery-sub { text-align:center; font-size:10px; letter-spacing:4px; color:rgba(255,255,255,.3); margin-bottom:64px; }
    .grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }

    .exhibit {
      background:rgba(255,255,255,.02);
      border:1px solid rgba(255,209,102,.15);
      padding:40px 28px 36px;
      position:relative; overflow:hidden;
      cursor:pointer;
      transition:border-color .4s, box-shadow .4s;
      transform-style:preserve-3d;
    }
    .exhibit::before {
      content:''; position:absolute; inset:-80%;
      background:conic-gradient(from 0deg,transparent,rgba(255,209,102,.25),transparent);
      animation:exhibitSpin 6s linear infinite; opacity:0; transition:opacity .4s;
    }
    .exhibit::after { content:''; position:absolute; inset:2px; background:rgba(6,6,8,.92); z-index:0; }
    .exhibit:hover::before { opacity:1; }
    .exhibit:hover { border-color:var(--gold); box-shadow:0 24px 80px rgba(255,209,102,.2); }
    @keyframes exhibitSpin{ to{transform:rotate(360deg)} }
    .exhibit > * { position:relative; z-index:1; }

    /* scan beam on hover */
    .exhibit .scan { position:absolute; top:-100%; left:0; right:0; height:60px; background:linear-gradient(180deg,transparent,rgba(255,209,102,.06),transparent); transition:top .5s ease; z-index:2; }
    .exhibit:hover .scan { top:120%; }

    .ex-rarity {
      display:inline-block; padding:4px 14px; margin-bottom:20px;
      font-size:9px; letter-spacing:4px; text-transform:uppercase;
      animation:rarityShimmer 2.5s ease-in-out infinite;
    }
    @keyframes rarityShimmer{ 0%,100%{opacity:.7;box-shadow:0 0 0 transparent} 50%{opacity:1;box-shadow:0 0 20px currentColor} }
    .r-common   { color:#aaa; border:1px solid #555; }
    .r-rare     { color:#4da6ff; border:1px solid #4da6ff; }
    .r-epic     { color:var(--purple-light); border:1px solid var(--purple-light); }
    .r-mythic   { color:var(--gold); border:1px solid var(--gold); }
    .r-event    { color:var(--red); border:1px solid var(--red); }
    .r-legendary{
      background:linear-gradient(90deg,var(--gold),var(--white),var(--gold));
      background-size:200% 100%;
      -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
      border:1px solid var(--gold);
      animation:legendShimmer 1.5s linear infinite;
    }
    @keyframes legendShimmer{ to{background-position:-200% 0} }

    .ex-icon {
      font-size:72px; display:block; text-align:center; margin-bottom:20px;
      animation:exFloat 3s ease-in-out infinite;
    }
    .exhibit:nth-child(2) .ex-icon { animation-delay:-.6s }
    .exhibit:nth-child(3) .ex-icon { animation-delay:-1.2s }
    .exhibit:nth-child(4) .ex-icon { animation-delay:-1.8s }
    .exhibit:nth-child(5) .ex-icon { animation-delay:-2.4s }
    .exhibit:nth-child(6) .ex-icon { animation-delay:-3s }
    @keyframes exFloat{ 0%,100%{transform:translateY(0) rotate(-3deg)} 50%{transform:translateY(-14px) rotate(3deg)} }

    .ex-name { font-family:'Bebas Neue',sans-serif; font-size:32px; color:var(--white); margin-bottom:10px; }
    .ex-num  { font-size:9px; letter-spacing:3px; color:rgba(255,255,255,.25); margin-bottom:14px; }
    .ex-desc { font-size:11px; line-height:1.9; color:rgba(255,255,255,.5); margin-bottom:20px; }
    .ex-power { display:flex; align-items:center; gap:10px; }
    .ex-power-label { font-size:8px; letter-spacing:2px; color:rgba(255,255,255,.25); text-transform:uppercase; width:60px; flex-shrink:0; }
    .ex-power-track { flex:1; height:3px; background:rgba(255,255,255,.05); overflow:hidden; }
    .ex-power-fill { height:100%; transition:width 1.5s cubic-bezier(.25,1,.5,1); width:0; }

    /* ── STATS ── */
    .museum-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:rgba(255,209,102,.1); max-width:1200px; margin:0 auto; }
    .ms { background:rgba(6,6,8,.9); padding:40px 20px; text-align:center; transition:background .3s; }
    .ms:hover{ background:rgba(255,209,102,.05) }
    .ms-n { font-family:'Bebas Neue',sans-serif; font-size:clamp(32px,5vw,60px); color:var(--gold); display:block; }
    .ms-l { font-size:8px; letter-spacing:3px; color:rgba(255,255,255,.3); text-transform:uppercase; display:block; margin-top:4px; }

    /* ── FOOTER ── */

    @media(max-width:900px){ .grid{grid-template-columns:1fr 1fr;} }
    @media(max-width:600px){ .grid{grid-template-columns:1fr;} .gallery{padding:60px 20px 80px;} .museum-stats{grid-template-columns:repeat(2,1fr);} }
