/* Soyo Gaming: aturan .site-ticker* DIHAPUS bersama fitur marquee header.
   Kalau nx.css disalin ulang dari base-next, hapus lagi bagian itu.
   Temuan audit: satu sisa LOLOS dari pembersihan itu — aturan yatim .site-ticker:hover
   berisi selektor keyframe 'to', pecahan @keyframes yang dihapus, dan ia membawa satu
   kurung penutup berlebih sehingga kurung berkas ini timpang dan satu blok @media
   tertutup lebih awal. Sudah dibuang. */
@media (prefers-reduced-motion: no-preference){.nx-header-in{animation: nx-drop .5s cubic-bezier(.22,.9,.25,1) both}.nx-rise{animation: nx-rise .7s cubic-bezier(.22,.9,.25,1) both}.nx-in{animation: nx-in .55s cubic-bezier(.22,.9,.25,1) both}.nx-pop{animation: nx-pop .5s cubic-bezier(.34,1.56,.64,1) both}.nx-d1{animation-delay: .08s}.nx-d2{animation-delay: .16s}.nx-d3{animation-delay: .24s}.nx-d4{animation-delay: .32s}.nx-d5{animation-delay: .40s}.nx-d6{animation-delay: .48s}}@keyframes nx-drop{from{opacity: 0;transform: translateY(-16px)}to{opacity: 1;transform: none}}@keyframes nx-rise{from{transform: translateY(18px)}to{transform: none}}@keyframes nx-in{from{opacity: 0;transform: translateY(14px)}to{opacity: 1;transform: none}}@keyframes nx-pop{from{opacity: 0;transform: translateY(10px) scale(.82)}to{opacity: 1;transform: none}}@keyframes nx-zoom{from{transform: scale(1.04)}to{transform: none}}@media (prefers-reduced-motion: no-preference){html.js [data-reveal-scroll]{opacity: 0;transform: translateY(26px);transition: opacity .6s cubic-bezier(.22,.9,.25,1),transform .6s cubic-bezier(.22,.9,.25,1)}html.js [data-reveal-scroll].is-revealed{opacity: 1;transform: none}}.nx-btn{transition: transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease,filter .2s ease}.nx-btn:hover{transform: translateY(-2px) scale(1.045)}.nx-btn:active{transform: scale(.97)}@media (prefers-reduced-motion: reduce){.nx-btn,.nx-btn:hover,.nx-btn:active{transform: none}}.nx-shimmer{color: var(--text)}@supports ((-webkit-background-clip: text) or (background-clip: text)){.nx-shimmer{background: linear-gradient(100deg,var(--text) 0%,var(--text) 38%,var(--primary) 50%,var(--text) 62%,var(--text) 100%);background-size: 220% auto;-webkit-background-clip: text;background-clip: text;color: transparent;-webkit-text-fill-color: transparent;animation: nx-sheen 5.5s linear infinite}}@keyframes nx-sheen{to{background-position: -220% center}}.home-hero__content{position: relative;overflow: hidden;isolation: isolate}.home-hero__content > :not(.nx-aura){position: relative;z-index: 1}.nx-aura{position: absolute;inset: -30%;z-index: 0;pointer-events: none;background: conic-gradient(from 0deg,transparent,var(--primary-glow),transparent 40%,var(--card-glow-a),transparent 75%);filter: blur(46px);opacity: .5;animation: nx-spin 16s linear infinite}@keyframes nx-spin{to{transform: rotate(1turn)}}.nx-btn{position: relative;overflow: hidden}.nx-btn::after{content: '';position: absolute;top: 0;left: -75%;width: 45%;height: 100%;pointer-events: none;background: linear-gradient(120deg,transparent,rgba(255,255,255,.45),transparent);transform: skewX(-20deg)}.nx-btn:hover::after{animation: nx-shine .8s ease}@keyframes nx-shine{to{left: 130%}}.section-card{transition: box-shadow .3s ease,border-color .3s ease}.section-card:hover{border-color: var(--card-border);box-shadow: 0 22px 55px rgba(0,0,0,.28),0 0 34px var(--card-glow-a)}.faq-question span{line-height: 1;font-size: 1.15rem;align-items: center;justify-content: center}.faq-item[open] .faq-answer{animation: nx-fade .32s ease}@keyframes nx-fade{from{opacity: 0;transform: translateY(-4px)}to{opacity: 1;transform: none}}.floating-top{border: 0;border-radius: 50%;background: linear-gradient(135deg,var(--primary),var(--secondary));color: var(--on-primary);box-shadow: 0 8px 22px rgba(255,176,32,.42),inset 0 1px 0 rgba(255,255,255,.35)}.floating-top:hover{background: linear-gradient(135deg,var(--primary),var(--secondary));border-color: transparent;color: var(--on-primary);filter: brightness(1.07);box-shadow: 0 12px 30px rgba(255,176,32,.55),inset 0 1px 0 rgba(255,255,255,.35)}.floating-top svg{width: 20px;height: 20px;stroke-width: 2.6}@media (prefers-reduced-motion: reduce){.nx-shimmer{animation: none}.nx-aura{animation: none}.home-banner-slide.is-active img{animation: none}.nx-btn:hover::after{animation: none}.faq-item[open] .faq-answer{animation: none}}@font-face{font-family: 'Noto Sans Thai';font-style: normal;font-weight: 400;font-display: swap;src: url('../fonts/notosansthai-400.woff2') format('woff2');unicode-range: U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family: 'Noto Sans Thai';font-style: normal;font-weight: 500;font-display: swap;src: url('../fonts/notosansthai-500.woff2') format('woff2');unicode-range: U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family: 'Noto Sans Thai';font-style: normal;font-weight: 600;font-display: swap;src: url('../fonts/notosansthai-600.woff2') format('woff2');unicode-range: U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family: 'Noto Sans Thai';font-style: normal;font-weight: 700;font-display: swap;src: url('../fonts/notosansthai-700.woff2') format('woff2');unicode-range: U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family: 'Noto Sans Thai';font-style: normal;font-weight: 800;font-display: swap;src: url('../fonts/notosansthai-800.woff2') format('woff2');unicode-range: U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}/* Soyo Gaming: deklarasi :root{--font-display/--font-body} DIHAPUS. Di WordPress, font dikendalikan preset Customizer (inc/skins.php) lewat html:root; aturan ini menimpanya diam-diam dan membuat preset font tidak berfungsi. Fallback skrip non-Latin sekarang dipilih lewat preset font 'thai' dsb. */