/* ===== GameEmpire premium layer (v1) — loaded after app.css ===== */
:root{--bg:#07070b;--bg2:#0d0d13;--card:#111118;--card2:#16161f;--line:rgba(255,255,255,.07);--line2:rgba(255,255,255,.12);--text:#f3f2f8;--mute:#a3a2b4;
--ember:#8b5cf6;--gold:#c4a8ff;--pink:#ff3e8e;--grad:linear-gradient(100deg,#7c3aed 0%,#a855f7 55%,#d8b4fe 100%);--grad2:linear-gradient(100deg,#ff3e8e,#ff8a4c);
--glow:0 18px 60px rgba(124,58,237,.35);--r:18px}
html,body{background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{background:radial-gradient(1200px 600px at 85% -10%,rgba(124,58,237,.10),transparent 60%),radial-gradient(900px 500px at -10% 30%,rgba(255,62,142,.05),transparent 60%),var(--bg);background-attachment:fixed}
::selection{background:rgba(168,85,247,.45)}
*{scrollbar-width:thin;scrollbar-color:#2a2a38 transparent}

/* top bar: glass, tighter, premium */
.top{background:rgba(7,7,11,.62);backdrop-filter:saturate(160%) blur(18px);-webkit-backdrop-filter:saturate(160%) blur(18px);border-bottom:1px solid rgba(255,255,255,.06);padding:12px clamp(16px,4vw,44px);gap:32px}
.brand{font-size:21px;letter-spacing:-.2px}.brand .logo{background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 10px rgba(168,85,247,.6))}
.top nav{gap:26px;font-weight:600;font-size:14.5px}.top nav a{position:relative;padding:6px 0;transition:color .2s}.top nav a:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:var(--grad);transform:scaleX(0);transition:transform .25s}.top nav a:hover:after{transform:scaleX(1)}
.btn{border-radius:12px;background:var(--grad);background-size:140% 100%;transition:transform .15s,box-shadow .2s,background-position .4s;box-shadow:0 8px 28px rgba(124,58,237,.35),inset 0 1px 0 rgba(255,255,255,.18)}
.btn:hover{transform:translateY(-1px);background-position:100% 0;box-shadow:0 12px 36px rgba(124,58,237,.5),inset 0 1px 0 rgba(255,255,255,.22)}
.btn.ghost{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px);box-shadow:none}.btn.ghost:hover{background:rgba(255,255,255,.14)}
.btn.xl{padding:15px 28px;font-size:16px;border-radius:14px}
h1,h2,h3{letter-spacing:-.02em}

/* ---------- spotlight (home hero) ---------- */
.spot{position:relative;height:min(78vh,760px);min-height:520px;overflow:hidden;margin-top:-1px;isolation:isolate}
.spot-bg{position:absolute;inset:-4%;background:#0c0c12 center/cover;opacity:0;transform:scale(1.04);transition:opacity 1.2s ease;z-index:0}
.spot-bg.on{opacity:1;animation:kb 14s ease-out forwards}
@keyframes kb{from{transform:scale(1.04) translate3d(0,0,0)}to{transform:scale(1.14) translate3d(-1.5%,-1%,0)}}
.spot-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(7,7,11,.96) 0%,rgba(7,7,11,.78) 30%,rgba(7,7,11,.18) 62%,rgba(7,7,11,.05) 100%),linear-gradient(0deg,var(--bg) 0%,rgba(7,7,11,.55) 18%,rgba(7,7,11,0) 45%),linear-gradient(180deg,rgba(7,7,11,.55),rgba(7,7,11,0) 22%)}
.spot-in{position:relative;z-index:2;height:100%;max-width:1320px;margin:0 auto;padding:0 clamp(18px,4vw,44px);display:grid;align-items:center}
.spot-txt{grid-area:1/1;max-width:640px;opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease;pointer-events:none}
.spot-txt.on{opacity:1;transform:none;pointer-events:auto;transition-delay:.25s}
.spot-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:99px;font:700 12px/1 Inter,system-ui;letter-spacing:.6px;text-transform:uppercase;color:#fff;background:rgba(124,58,237,.28);border:1px solid rgba(196,168,255,.35);backdrop-filter:blur(8px)}
.spot h1{font-size:clamp(44px,7vw,92px);line-height:.95;margin:18px 0 14px;letter-spacing:-.035em;text-shadow:0 6px 40px rgba(0,0,0,.6)}
.spot-txt p{font-size:clamp(17px,1.6vw,21px);color:#d6d4e4;margin:0 0 18px;max-width:560px;text-shadow:0 2px 16px rgba(0,0,0,.7)}
.spot-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}.spot-meta span{font-size:13px;font-weight:600;color:#e8e6f4;padding:6px 11px;border-radius:9px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(6px)}
.spot-cta{display:flex;gap:12px;flex-wrap:wrap}
.spot-thumbs{position:absolute;z-index:3;right:clamp(18px,4vw,44px);bottom:clamp(26px,5vh,54px);display:flex;gap:12px}
.spot-th{position:relative;width:132px;aspect-ratio:16/9;border-radius:12px;border:2px solid rgba(255,255,255,.14);background:#111 center/cover;cursor:pointer;overflow:hidden;opacity:.62;transition:opacity .25s,transform .25s,border-color .25s;padding:0}
.spot-th:hover{opacity:.95;transform:translateY(-3px)}.spot-th.on{opacity:1;border-color:#c4a8ff;box-shadow:0 10px 30px rgba(124,58,237,.45)}
.spot-th span{position:absolute;left:0;right:0;bottom:0;padding:16px 8px 6px;font:700 11px Inter,system-ui;color:#fff;text-align:left;background:linear-gradient(0deg,rgba(0,0,0,.85),transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spot-th i{position:absolute;left:0;top:0;height:3px;width:0;background:var(--grad);z-index:2}.spot-th.on i{animation:prog 7s linear forwards}
@keyframes prog{to{width:100%}}
.spot:hover .spot-th.on i{animation-play-state:paused}

/* ---------- rows (Netflix-style rails) ---------- */
.xwrap{max-width:1440px;margin:0 auto;padding:6px 0 40px;position:relative;z-index:2}
.xrow{margin:34px 0 8px}
.xrow-h{display:flex;align-items:baseline;gap:14px;padding:0 clamp(18px,4vw,44px);margin-bottom:12px}
.xrow-h h2{font-size:clamp(22px,2.2vw,28px)}.xrow-h .mute{font-size:14px}
.xmore{font-weight:700;font-size:14px;color:var(--gold);white-space:nowrap}.xmore:hover{color:#fff}
.xrail{position:relative}
.xtrack{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(240px,21vw,310px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px clamp(18px,4vw,44px) 22px;scroll-padding:0 clamp(18px,4vw,44px);scrollbar-width:none}
.xtrack::-webkit-scrollbar{display:none}.xtrack>.gcard{scroll-snap-align:start}
.xarr{position:absolute;top:10px;bottom:22px;width:clamp(18px,4vw,44px);z-index:4;border:0;color:#fff;font-size:34px;cursor:pointer;opacity:0;transition:opacity .2s;background:linear-gradient(90deg,rgba(7,7,11,.92),rgba(7,7,11,0))}
.xarr.r{right:0;background:linear-gradient(270deg,rgba(7,7,11,.92),rgba(7,7,11,0))}.xarr.l{left:0}
.xrail:hover .xarr{opacity:1}
@media (hover:none){.xarr{display:none}}

/* ---------- game cards ---------- */
.gcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s,border-color .28s;will-change:transform}
.gcard:hover{transform:translateY(-6px) scale(1.02);border-color:rgba(196,168,255,.45);box-shadow:0 22px 50px rgba(0,0,0,.55),0 0 0 1px rgba(168,85,247,.25),var(--glow);outline:0}
.gcard .cov{aspect-ratio:16/9;background-color:#15151e;background-size:cover;background-position:center;transition:background-size .5s}
.gcard .cov:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,7,11,.55),rgba(7,7,11,0) 45%);pointer-events:none;z-index:1}
.gcard .cov .price{z-index:3;background:rgba(7,7,11,.62);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.14);font-size:12px;padding:5px 10px}
.gcard .cov .hotq{position:absolute;left:10px;top:10px;z-index:3;font-size:11px;padding:5px 9px;color:#fff;background:linear-gradient(100deg,rgba(124,58,237,.85),rgba(168,85,247,.85));border:1px solid rgba(216,180,254,.4)}
.cov-play{position:absolute;z-index:3;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:20px;padding-left:3px;background:rgba(124,58,237,.82);box-shadow:0 10px 30px rgba(124,58,237,.6);opacity:0;transform:scale(.8);transition:opacity .25s,transform .25s;pointer-events:none}
.gcard:hover .cov-play{opacity:1;transform:scale(1)}
.gcard.flying .cov-play,.ge-flyhost.flying .cov-play{opacity:0}
.remixbtn{opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s;z-index:3!important}.gcard:hover .remixbtn{opacity:1;transform:none}
.gcard .body{padding:13px 15px 15px}.gcard .body h3{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gcard .body p{font-size:13px;line-height:1.45;min-height:2.9em}
.gcard .meta{gap:10px;align-items:center;flex-wrap:nowrap;overflow:hidden;margin-top:10px}.gcard .meta span{white-space:nowrap}
.gcard .meta .cat{color:#d8c8ff;background:rgba(124,58,237,.16);border:1px solid rgba(168,85,247,.25);padding:2px 8px;border-radius:7px;font-weight:600}
.gcard .meta .by{margin-left:auto;overflow:hidden;text-overflow:ellipsis;opacity:.75}

/* ---------- make-your-own section ---------- */
.make{margin:60px clamp(18px,4vw,44px) 10px;display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(24px,4vw,56px);padding:clamp(24px,4vw,48px);border-radius:28px;border:1px solid var(--line2);
 background:radial-gradient(700px 360px at 0% 0%,rgba(124,58,237,.18),transparent 70%),radial-gradient(600px 300px at 100% 100%,rgba(255,62,142,.08),transparent 70%),linear-gradient(180deg,#101018,#0b0b11);box-shadow:0 40px 120px rgba(0,0,0,.45)}
.make h2{font-size:clamp(30px,3.6vw,48px);margin:16px 0 12px;line-height:1.02}.make p.mute{font-size:16px;margin:0 0 20px;max-width:560px}
.make .compose{background:rgba(255,255,255,.035);border:1px solid var(--line2);box-shadow:none}
.make .compose:focus-within{border-color:rgba(168,85,247,.55);box-shadow:0 0 0 4px rgba(124,58,237,.15)}
.make-r{display:flex;flex-direction:column;gap:12px;justify-content:center}
.step{display:flex;gap:16px;padding:16px 18px;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid var(--line);transition:border-color .2s,background .2s}.step:hover{border-color:rgba(168,85,247,.35);background:rgba(124,58,237,.06)}
.step>b{font:800 13px var(--disp);color:var(--gold);letter-spacing:1px;padding-top:3px}.step h3{font-size:17px}.step p{margin:4px 0 0;font-size:14px}
.earnrow{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:6px}.earnrow div{padding:14px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid var(--line);text-align:center}
.earnrow b{display:block;font:800 30px var(--disp)}.earnrow span{font-size:12px;color:var(--mute)}

/* ---------- arcade + game page polish ---------- */
.chip{border-radius:10px;background:rgba(255,255,255,.035);transition:all .18s}.chip.on{background:rgba(124,58,237,.25);border-color:rgba(168,85,247,.7);color:#fff}
.hero-game{border-radius:24px;min-height:420px;border:1px solid var(--line2);box-shadow:0 30px 90px rgba(0,0,0,.5)}
.hero-game .hg{background:linear-gradient(90deg,rgba(7,7,11,.9) 0%,rgba(7,7,11,.45) 45%,rgba(7,7,11,0) 75%),linear-gradient(0deg,rgba(7,7,11,.85),rgba(7,7,11,0) 50%);padding:40px}
.hero-game h2{font-size:clamp(34px,4.6vw,60px)}
.grid.g4{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.card{border-radius:var(--r)}
.player{border-radius:22px;border:1px solid var(--line2);box-shadow:0 30px 90px rgba(0,0,0,.55)}
input.in,select.in,textarea.in{background:rgba(255,255,255,.04);border-color:var(--line2)}
.foot{border-top:1px solid var(--line);background:rgba(255,255,255,.015);align-items:center}.foot a:hover{color:#fff}

/* ---------- mobile ---------- */
@media (max-width:820px){
 .top{gap:14px;padding:10px 14px}.brand{font-size:18px}.top nav{gap:14px;font-size:13.5px}
 .spot{height:auto;min-height:0;padding:150px 0 132px}.spot-in{display:block}.spot-txt{position:absolute;left:18px;right:18px;bottom:118px}.spot-txt.on{position:relative;left:0;right:0;bottom:0}
 .spot-shade{background:linear-gradient(0deg,var(--bg) 0%,rgba(7,7,11,.75) 40%,rgba(7,7,11,.15) 75%,rgba(7,7,11,.4) 100%)}
 .spot h1{font-size:44px}.spot-thumbs{left:18px;right:18px;bottom:22px;overflow-x:auto;scrollbar-width:none}.spot-th{flex:0 0 112px;width:112px}
 .xtrack{grid-auto-columns:72vw}
 .make{grid-template-columns:1fr;margin:40px 14px 0;border-radius:22px}
}
@media (max-width:520px){.top nav a:nth-child(3){display:none}.acct .btn{padding:8px 12px}}
@media (prefers-reduced-motion:reduce){.spot-bg.on{animation:none}.gcard,.gcard:hover{transition:none;transform:none}}
.spot-skel{background:linear-gradient(100deg,#0d0d14 30%,#15151f 50%,#0d0d14 70%);background-size:200% 100%;animation:skel 1.4s infinite linear}@keyframes skel{to{background-position:-200% 0}}
.top nav a{white-space:nowrap}

/* ===== v3: hover zoom + living border + brand mark ===== */
@property --ga{syntax:'<angle>';initial-value:0deg;inherits:false}
.brand .logo-ic{width:30px;height:30px;border-radius:8px;vertical-align:-8px;margin-right:4px;filter:drop-shadow(0 4px 14px rgba(168,85,247,.55));transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.brand:hover .logo-ic{transform:rotate(-8deg) scale(1.08)}
.xtrack{padding-top:30px;padding-bottom:44px;margin-top:-20px;margin-bottom:-22px}
.xarr{top:30px;bottom:44px}
.gcard{position:relative;isolation:isolate}
.gcard.hov:hover,.gcard:hover{z-index:6;transform:translateY(-8px) scale(1.1);transition-delay:.08s;box-shadow:0 34px 80px rgba(0,0,0,.7),0 0 0 1px rgba(168,85,247,.35),0 0 60px rgba(124,58,237,.35)}
.xtrack>.gcard:first-child{transform-origin:left center}
.gcard::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;z-index:7;pointer-events:none;opacity:0;transition:opacity .35s;
 background:conic-gradient(from var(--ga),#7c3aed,#d8b4fe,#ff3e8e,#a855f7,#7c3aed);
 -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.gcard:hover::before{opacity:1;animation:ge-spin 3.2s linear infinite}
@keyframes ge-spin{to{--ga:360deg}}
.gcard .cov{overflow:hidden}
.gcard .cov::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.22) 50%,transparent 65%);transform:translateX(-120%)}
.gcard:hover .cov::before{transition:transform 1s ease;transform:translateX(120%)}
.gcard.flying .cov::before{opacity:0}
.gcard:hover .body h3{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.gcard .cov .hotq{background:linear-gradient(100deg,#7c3aed,#a855f7 40%,#f0abfc 50%,#a855f7 60%,#7c3aed) 0 0/250% 100%;animation:ge-shim 3.5s linear infinite;box-shadow:0 4px 18px rgba(124,58,237,.55)}
@keyframes ge-shim{to{background-position:-250% 0}}
.ge-wait{position:absolute;left:12px;right:12px;bottom:10px;height:3px;border-radius:3px;z-index:4;background:rgba(255,255,255,.15);overflow:hidden;pointer-events:none}
.ge-wait i{display:block;height:100%;width:100%;background:var(--grad);transform-origin:left;animation:ge-fill 1s linear forwards}
@keyframes ge-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.xrow-h h2{background:linear-gradient(180deg,#fff,#cfc6ea);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.xrow-h h2::before{content:"";display:inline-block;width:6px;height:.8em;border-radius:3px;margin-right:10px;background:var(--grad);vertical-align:-.04em;box-shadow:0 0 14px rgba(168,85,247,.7)}
@media (hover:none),(prefers-reduced-motion:reduce){.gcard:hover{transform:none}.gcard:hover::before{animation:none}}

/* ===== v4: Studio leads the home page + Create nav pill ===== */
.make.make-top{margin-top:28px;margin-bottom:34px}
.make-top h2{font-size:clamp(34px,4.2vw,58px)}
.top nav a.nav-empire{padding:6px 13px;border-radius:999px;color:#fff;background:linear-gradient(100deg,rgba(124,58,237,.35),rgba(217,70,239,.3));border:1px solid rgba(216,180,254,.35);box-shadow:0 0 18px rgba(168,85,247,.25)}
.top nav a.nav-empire:after{display:none}.top nav a.nav-empire:hover{background:linear-gradient(100deg,#7c3aed,#d946ef);color:#fff}
@media (max-width:820px){.make.make-top{margin:16px 14px 24px}}

/* ===== v7: spotlight plays each game's fly-through, switching when it ends ===== */
.spot-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease;pointer-events:none}
.spot-vid.on{opacity:1}
.spot.vidmode .spot-th i,.spot.vidmode .spot-th.on i{animation:none}

/* ===== v8: 4K spotlight films play steady (no zoom layered on top) ===== */
.spot.vidmode .spot-bg.on{animation:none;transform:none}
.spot.vidmode .spot-bg{inset:0;transform:none}
.spot-vid{will-change:opacity;backface-visibility:hidden}
