:root{--bg:#070B14;--bg2:#0B1220;--surface:rgba(255,255,255,.04);--line:rgba(255,255,255,.1);--ink:#F4F7FB;--muted:#9AA7BD;--teal:#5EEAD4;--violet:#A78BFA;--sky:#7DD3FC;--amber:#FBBF24;--r:28px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 "Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
.wrap{width:min(1120px,100% - 40px);margin-inline:auto}
/* nav */
.nav{position:sticky;top:0;z-index:20;backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);background:rgba(7,11,20,.6);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:28px;height:64px}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.01em}.logo .mark{width:30px;height:30px;object-fit:contain}
.nav nav{display:flex;gap:22px;margin-left:auto;font-size:14px;color:var(--muted)}.nav nav a:hover{color:var(--ink)}
.nav .pill{margin-left:8px;font-size:14px;font-weight:700;color:#07101C;background:var(--teal);padding:9px 16px;border-radius:999px}
@media(max-width:720px){.nav nav{display:none}.nav .pill{margin-left:auto}}
/* hero */
.hero{position:relative;padding:96px 0 72px;overflow:hidden}
.hero .glow{position:absolute;inset:-20% -10% auto;height:120%;pointer-events:none;background:
 radial-gradient(60% 50% at 20% 30%,rgba(94,234,212,.22),transparent 60%),
 radial-gradient(50% 45% at 78% 35%,rgba(167,139,250,.24),transparent 60%),
 radial-gradient(40% 35% at 60% 90%,rgba(125,211,252,.14),transparent 60%);filter:blur(10px);animation:drift 18s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate3d(2%,-3%,0) scale(1.06)}}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.kicker{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--teal);border:1px solid rgba(94,234,212,.3);padding:6px 12px;border-radius:999px;background:rgba(94,234,212,.06)}
.kicker i{width:6px;height:6px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(94,234,212,.18)}
h1{font-size:clamp(40px,6.2vw,72px);line-height:1.02;letter-spacing:-.035em;margin:20px 0 18px;font-weight:800}
h1 em{font-style:normal;background:linear-gradient(90deg,var(--teal),var(--sky) 45%,var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:clamp(17px,1.6vw,20px);color:var(--muted);max-width:52ch;margin:0 0 30px}
.cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.badge{display:inline-flex;align-items:center;gap:10px;background:#000;color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:10px 18px 10px 14px;line-height:1.05;transition:transform .15s,box-shadow .15s}
.badge:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.4)}.badge small{display:block;font-size:11px;font-weight:500;opacity:.85}.badge span{font-size:21px;font-weight:700;letter-spacing:-.01em}
.badge.small{padding:8px 14px 8px 12px;border-radius:12px}.badge.small span{font-size:17px}.badge.small svg{width:18px;height:18px}
.ghost{font-weight:700;color:var(--ink);padding:12px 18px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}.ghost:hover{border-color:rgba(255,255,255,.2)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:22px;margin-top:44px;padding-top:26px;border-top:1px solid var(--line)}
.stats div b{display:block;font-size:26px;font-weight:800;letter-spacing:-.02em}.stats div span{font-size:13px;color:var(--muted)}
/* cụm icon */
.cluster{position:relative;height:460px}
.cluster::before{content:"";position:absolute;inset:12% 8%;border-radius:50%;background:radial-gradient(closest-side,rgba(94,234,212,.18),transparent);filter:blur(24px)}
.fl{position:absolute;width:var(--s);height:var(--s);border-radius:calc(var(--s)*.225);box-shadow:0 30px 60px -20px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.08) inset;animation:float 6s ease-in-out infinite;will-change:transform}
.l1{left:6%;top:8%;animation-delay:-1s;transform:rotate(-8deg)}.l2{left:38%;top:22%;animation-delay:-2.5s;transform:rotate(4deg)}.l3{left:2%;top:52%;animation-delay:-4s;transform:rotate(6deg)}
.l4{left:64%;top:62%;animation-delay:-3s;transform:rotate(-5deg)}.l5{left:74%;top:6%;animation-delay:-.5s;transform:rotate(9deg)}.l6{left:40%;top:70%;animation-delay:-5s;transform:rotate(-10deg)}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -14px}}
@media(max-width:900px){.hero .wrap{grid-template-columns:1fr}.cluster{height:300px;order:-1}}
@media(prefers-reduced-motion:reduce){.fl,.hero .glow{animation:none}}
/* sections */
section{padding:56px 0}.sec-h{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}
h2{font-size:clamp(26px,3.2vw,38px);letter-spacing:-.03em;margin:0;font-weight:800}.sec-h p{margin:0;color:var(--muted);max-width:44ch}
@media(max-width:640px){.sec-h{flex-direction:column;align-items:flex-start;gap:6px}}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}
.card{display:flex;gap:18px;padding:22px;border-radius:var(--r);background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.025));border:1px solid var(--line);box-shadow:0 20px 50px -30px rgba(0,0,0,.8);transition:transform .2s,border-color .2s}
.card:hover{transform:translateY(-4px);border-color:rgba(94,234,212,.35)}
.card .icon{width:112px;height:112px;border-radius:26px;flex:none;box-shadow:0 14px 30px -12px rgba(0,0,0,.8)}
.card h3{margin:6px 0 6px;font-size:22px;letter-spacing:-.02em;line-height:1.15}.card h3 .sub{display:block;font-size:14px;font-weight:600;color:var(--muted);margin-top:2px}
.card p{margin:0 0 14px;color:var(--muted);font-size:15px}.tags{display:flex;flex-wrap:wrap;gap:6px}.tags span{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.06);color:var(--muted)}
.tags .hot{background:rgba(251,191,36,.14);color:var(--amber)}.soon{opacity:.85}
@media(max-width:420px){.card{flex-direction:column}.card .icon{width:88px;height:88px;border-radius:20px}}
.principles{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.pr{padding:26px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface)}.pr b{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;margin-bottom:14px;font-size:20px;background:linear-gradient(135deg,rgba(94,234,212,.25),rgba(167,139,250,.25))}
.pr h3{margin:0 0 8px;font-size:18px}.pr p{margin:0;color:var(--muted);font-size:15px}
.band{margin:24px 0;padding:44px;border-radius:36px;background:linear-gradient(120deg,rgba(94,234,212,.16),rgba(167,139,250,.16));border:1px solid var(--line);display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between}
.band h2{font-size:clamp(22px,2.6vw,30px)}.band p{margin:6px 0 0;color:var(--muted)}
footer{padding:40px 0 60px;border-top:1px solid var(--line);color:var(--muted);font-size:14px}footer .wrap{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;justify-content:space-between}footer a:hover{color:var(--ink)}
.follow a{margin-right:16px;font-weight:600}
.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}.reveal.in{opacity:1;transform:none}
/* dải thương hiệu */
.brandband{padding-top:8px}.brandband figure{margin:0;border-radius:36px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 80px -40px rgba(94,234,212,.35)}.brandband img{width:100%;height:auto;display:block}.brandband figcaption{padding:12px 20px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);background:rgba(255,255,255,.03)}
/* trang chi tiết app */
.detail-h{padding:64px 0 24px;position:relative}.detail-h .glow{position:absolute;inset:-40% -10% auto;height:130%;pointer-events:none;filter:blur(24px);opacity:.7}
.detail-h.game .glow{background:radial-gradient(45% 60% at 20% 20%,rgba(94,234,212,.24),transparent 60%)}.detail-h.app .glow{background:radial-gradient(45% 60% at 20% 20%,rgba(167,139,250,.28),transparent 60%)}
.detail-h .wrap{position:relative;display:grid;grid-template-columns:auto 1fr;gap:30px;align-items:center}.detail-h .icon{width:168px;height:168px;border-radius:38px;box-shadow:0 30px 60px -20px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.08) inset}
.detail-h h1{font-size:clamp(34px,4.6vw,58px);margin:12px 0 4px;line-height:1.05}.detail-h .sub{font-size:clamp(18px,2vw,24px);color:var(--muted);font-weight:600;margin:0 0 14px}
@media(max-width:640px){.detail-h .wrap{grid-template-columns:1fr}.detail-h .icon{width:120px;height:120px;border-radius:28px}}
.shots-strip{display:flex;gap:14px;overflow-x:auto;padding:8px 0 16px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.shots-strip img{height:min(560px,70vh);border-radius:22px;border:1px solid var(--line);scroll-snap-align:start;flex:none;box-shadow:0 20px 50px -30px rgba(0,0,0,.8)}
.two{display:grid;grid-template-columns:1.4fr .8fr;gap:28px;align-items:start}@media(max-width:820px){.two{grid-template-columns:1fr}}
.about h3{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin:26px 0 6px}.about ul{margin:0 0 12px;padding-left:20px;color:#C7D0DF}.about li{margin:4px 0}.about p{margin:0 0 12px;color:#C7D0DF}.about p:first-child{font-size:19px;color:var(--ink)}
.facts{border-radius:var(--r);border:1px solid var(--line);background:var(--surface);padding:6px 20px}.facts div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line);font-size:15px}.facts div:first-child{border-top:0}.facts span{color:var(--muted)}.facts b{text-align:right}
.card .body h3 a{color:inherit}.card .body h3 a:hover{color:var(--teal)}
/* doors: hai cửa Games / Apps trên trang chủ */
.doors{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.door{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:22px;min-height:320px;padding:32px;border-radius:36px;border:1px solid var(--line);background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.02));transition:transform .2s,border-color .2s}
.door:hover{transform:translateY(-4px)}.door.games:hover{border-color:rgba(94,234,212,.4)}.door.apps:hover{border-color:rgba(167,139,250,.45)}
.door::after{content:"";position:absolute;inset:auto -20% -40% auto;width:60%;aspect-ratio:1;border-radius:50%;filter:blur(40px);opacity:.55;pointer-events:none}
.door.games::after{background:var(--teal)}.door.apps::after{background:var(--violet)}
.door .kicker{align-self:flex-start}.door.apps .kicker{color:var(--violet);border-color:rgba(167,139,250,.35);background:rgba(167,139,250,.08)}.door.apps .kicker i{background:var(--violet);box-shadow:0 0 0 4px rgba(167,139,250,.18)}
.door h2{font-size:clamp(28px,3.4vw,40px);margin:14px 0 8px}.door p{margin:0;color:var(--muted);max-width:40ch}
.door .icons{display:flex;position:relative;z-index:1}.door .icons img{width:76px;height:76px;border-radius:18px;border:3px solid var(--bg);margin-left:-14px;box-shadow:0 12px 26px -10px rgba(0,0,0,.8)}.door .icons img:first-child{margin-left:0}.door .icons img.dim{opacity:.55;filter:saturate(.6)}
.door .go{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:var(--ink);position:relative;z-index:1}.door .go::after{content:"→";transition:transform .2s}.door:hover .go::after{transform:translateX(4px)}
@media(max-width:820px){.doors{grid-template-columns:1fr}.door{min-height:0}}
/* trang con */
.page-h{padding:72px 0 8px;position:relative}.page-h .glow{position:absolute;inset:-40% -10% auto;height:120%;pointer-events:none;filter:blur(20px);opacity:.7}
.page-h.games .glow{background:radial-gradient(50% 60% at 15% 20%,rgba(94,234,212,.22),transparent 60%)}.page-h.apps .glow{background:radial-gradient(50% 60% at 15% 20%,rgba(167,139,250,.26),transparent 60%)}
.page-h .wrap{position:relative}.page-h h1{font-size:clamp(38px,5.4vw,64px);margin:16px 0 12px}.page-h .lead{margin-bottom:8px}
.empty{padding:26px;border-radius:var(--r);border:1px dashed var(--line);color:var(--muted)}
/* press pages */
.prose{max-width:760px}.prose h1{font-size:clamp(30px,4vw,44px);margin:12px 0 6px}.prose h2{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:38px 0 10px;font-weight:700}
.prose table{border-collapse:collapse;width:100%;font-size:15px}.prose td{padding:9px 10px;border-top:1px solid var(--line);vertical-align:top}.prose td:first-child{color:var(--muted);white-space:nowrap}
.prose code{background:rgba(255,255,255,.08);padding:2px 6px;border-radius:6px}.prose li{margin:4px 0}.prose a{color:var(--teal)}
.shots{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}.shots img{height:380px;border-radius:16px;border:1px solid var(--line)}
/* ---- 12/09 review Authority: khoảng cách đồng nhất · chống tràn ngang · stats to · ảnh không méo ---- */
:root{--secY:clamp(44px,6vw,80px);--heroY:clamp(56px,8vw,104px);--gap:clamp(14px,2.2vw,20px);--pad:clamp(18px,3vw,26px);--gutter:clamp(18px,4vw,28px)}
html,body{overflow-x:hidden;max-width:100vw}
.wrap{width:min(1120px,100% - 2*var(--gutter))}
.hero,.page-h,.detail-h,.brandband{overflow:hidden}
section{padding:var(--secY) 0 0}section:last-of-type{padding-bottom:var(--secY)}
.hero{padding:var(--heroY) 0 var(--secY)}.page-h,.detail-h{padding:var(--heroY) 0 0}
.grid,.doors,.principles{gap:var(--gap)}.card,.pr{padding:var(--pad)}.door{padding:clamp(24px,4vw,34px)}
.band{padding:clamp(26px,4vw,44px);margin:0}.sec-h{margin-bottom:clamp(16px,2.6vw,26px)}.two{gap:clamp(20px,4vw,36px)}
.detail-h .wrap{gap:clamp(18px,3vw,30px)}.detail-h h1{margin:10px 0 4px}
.stats{gap:clamp(16px,3vw,28px);margin-top:clamp(28px,4vw,44px);padding-top:clamp(20px,3vw,28px)}
.stats div b{font-size:clamp(38px,5.4vw,56px);line-height:1.05;letter-spacing:-.03em}.stats div span{font-size:14px}
.card .icon,.door .icons img,.detail-h .icon{aspect-ratio:1/1;object-fit:cover}
.fl{width:calc(var(--s)*var(--k,1));height:calc(var(--s)*var(--k,1));border-radius:calc(var(--s)*var(--k,1)*.225);object-fit:cover}
@media(max-width:900px){.fl{--k:.72}}
.shots-strip img{width:auto;max-width:none;height:min(560px,70vh);object-fit:contain}
footer .wrap{gap:14px 24px}footer a{margin-right:0}.follow{display:flex;flex-wrap:wrap;gap:6px 16px}
.stats{grid-template-columns:repeat(auto-fit,minmax(105px,1fr))}
.prose td:first-child{white-space:normal;min-width:7em}.prose td{overflow-wrap:anywhere}.prose table{display:block;overflow-x:auto}.prose a{overflow-wrap:anywhere}
