/* ============================================================
   Qlyee Design System v2 — Minimalist Modern
   Clean white / light-gray, Google-Play-inspired
   Prefix: qn-
   ============================================================ */

/* ---------- Reset ---------- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
html{scroll-behavior:smooth}
body{
    font-family:'Google Sans','Roboto',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
    background:#f8f9fa;
    color:#202124;
    line-height:1.6;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
ul,ol{list-style:none}

/* ---------- Design Tokens ---------- */
:root{
    --qn-bg:#f8f9fa;
    --qn-white:#ffffff;
    --qn-primary:#1a73e8;
    --qn-primary-dark:#1967d2;
    --qn-primary-light:#e8f0fe;
    --qn-text:#202124;
    --qn-text-sec:#5f6368;
    --qn-text-ter:#80868b;
    --qn-border:#dadce0;
    --qn-green:#0d904f;
    --qn-red:#d93025;
    --qn-orange:#f9ab00;
    --qn-nav-h:60px;
    --qn-radius:12px;
    --qn-radius-sm:8px;
    --qn-radius-pill:100px;
    --qn-shadow:0 1px 3px rgba(60,64,67,.08),0 1px 2px rgba(60,64,67,.04);
    --qn-shadow-hover:0 4px 12px rgba(60,64,67,.12),0 2px 4px rgba(60,64,67,.06);
    --qn-max-w:1280px;
    --qn-transition:0.2s ease;
}

/* ---------- Utility ---------- */
.qn-container{max-width:var(--qn-max-w);margin:0 auto;padding:0 24px}
.qn-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* ---------- Navigation ---------- */
.qn-nav{
    position:sticky;top:0;z-index:100;
    background:var(--qn-white);
    border-bottom:1px solid var(--qn-border);
    height:var(--qn-nav-h);
}
.qn-nav-inner{
    display:flex;align-items:center;
    height:100%;max-width:var(--qn-max-w);
    margin:0 auto;padding:0 24px;gap:20px;
}
.qn-nav-brand{
    display:flex;align-items:center;gap:10px;
    flex-shrink:0;
}
.qn-nav-brand-img{
    width:32px;height:32px;border-radius:8px;object-fit:cover;
}
.qn-nav-brand-name{
    font-size:20px;font-weight:700;color:var(--qn-text);
    letter-spacing:-0.02em;
}
.qn-nav-brand-name em{font-style:normal;color:var(--qn-primary)}
.qn-nav-search{
    flex:1;max-width:560px;position:relative;
}
.qn-nav-search input{
    width:100%;height:40px;
    background:var(--qn-bg);border:1px solid var(--qn-border);
    border-radius:var(--qn-radius-pill);
    padding:0 16px 0 40px;
    font-size:14px;color:var(--qn-text);
    outline:none;transition:border var(--qn-transition);
}
.qn-nav-search input:focus{border-color:var(--qn-primary)}
.qn-nav-search-icon{
    position:absolute;left:14px;top:50%;transform:translateY(-50%);
    width:18px;height:18px;color:var(--qn-text-ter);pointer-events:none;
}
.qn-nav-links{
    display:flex;align-items:center;gap:4px;flex-shrink:0;
}
.qn-nav-link{
    padding:8px 14px;border-radius:var(--qn-radius-pill);
    font-size:14px;font-weight:500;color:var(--qn-text-sec);
    transition:background var(--qn-transition),color var(--qn-transition);
    white-space:nowrap;
}
.qn-nav-link:hover,.qn-nav-link.active{
    background:var(--qn-primary-light);color:var(--qn-primary);
}
.qn-nav-menu-btn{
    display:none;width:36px;height:36px;
    border-radius:50%;background:var(--qn-bg);
    align-items:center;justify-content:center;
    font-size:18px;
}

/* Mobile nav */
@media(max-width:768px){
    .qn-nav-links{display:none}
    .qn-nav-search{max-width:none}
    .qn-nav-menu-btn{display:flex}
    .qn-nav-search input{font-size:15px}
}

/* ---------- Footer ---------- */
.qn-footer{
    background:var(--qn-white);
    border-top:1px solid var(--qn-border);
    padding:40px 0 24px;margin-top:60px;
}
.qn-footer-inner{
    max-width:var(--qn-max-w);margin:0 auto;padding:0 24px;
}
.qn-footer-grid{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:32px;margin-bottom:32px;
}
.qn-footer-col h4{
    font-size:14px;font-weight:600;color:var(--qn-text);
    margin-bottom:12px;text-transform:uppercase;letter-spacing:0.5px;
}
.qn-footer-col a{
    display:block;font-size:14px;color:var(--qn-text-sec);
    padding:4px 0;transition:color var(--qn-transition);
}
.qn-footer-col a:hover{color:var(--qn-primary)}
.qn-footer-bottom{
    border-top:1px solid var(--qn-border);
    padding-top:20px;
    display:flex;flex-wrap:wrap;justify-content:space-between;
    align-items:center;gap:12px;
}
.qn-footer-copy{font-size:13px;color:var(--qn-text-ter)}
.qn-footer-legal{display:flex;gap:16px}
.qn-footer-legal a{font-size:13px;color:var(--qn-text-ter);transition:color var(--qn-transition)}
.qn-footer-legal a:hover{color:var(--qn-primary)}

/* ---------- Game Card ---------- */
.qn-card{
    background:var(--qn-white);
    border-radius:var(--qn-radius);
    overflow:hidden;
    box-shadow:var(--qn-shadow);
    transition:box-shadow var(--qn-transition),transform var(--qn-transition);
    display:flex;flex-direction:column;
}
.qn-card:hover{
    box-shadow:var(--qn-shadow-hover);
    transform:translateY(-3px);
}
.qn-card-thumb{
    position:relative;aspect-ratio:16/10;overflow:hidden;
    background:var(--qn-bg);
}
.qn-card-thumb img{
    width:100%;height:100%;object-fit:cover;
    transition:transform 0.3s ease;
}
.qn-card:hover .qn-card-thumb img{transform:scale(1.05)}
.qn-card-badge{
    position:absolute;top:8px;left:8px;
    background:rgba(0,0,0,0.6);color:#fff;
    font-size:11px;font-weight:500;
    padding:3px 10px;border-radius:var(--qn-radius-pill);
    backdrop-filter:blur(4px);
}
.qn-card-score{
    position:absolute;top:8px;right:8px;
    background:var(--qn-green);color:#fff;
    font-size:12px;font-weight:600;
    padding:3px 8px;border-radius:var(--qn-radius-pill);
    display:flex;align-items:center;gap:3px;
}
.qn-card-body{padding:12px 14px}
.qn-card-title{
    font-size:14px;font-weight:600;color:var(--qn-text);
    line-height:1.3;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.qn-card-meta{
    display:flex;align-items:center;gap:8px;margin-top:6px;
    font-size:12px;color:var(--qn-text-ter);
}
.qn-card-tag{
    background:var(--qn-primary-light);color:var(--qn-primary);
    font-size:11px;font-weight:500;
    padding:2px 8px;border-radius:var(--qn-radius-pill);
}

/* ---------- Grid ---------- */
.qn-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
    gap:20px;
}
@media(max-width:600px){
    .qn-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
}

/* ---------- Section Heading ---------- */
.qn-section{margin-bottom:48px}
.qn-section-head{
    display:flex;align-items:center;justify-content:space-between;
    margin-bottom:20px;
}
.qn-section-title{
    font-size:22px;font-weight:700;color:var(--qn-text);
}
.qn-section-more{
    font-size:14px;font-weight:500;color:var(--qn-primary);
    display:flex;align-items:center;gap:4px;
    transition:opacity var(--qn-transition);
}
.qn-section-more:hover{opacity:0.7}

/* ---------- Category Pills ---------- */
.qn-pills{
    display:flex;gap:8px;overflow-x:auto;
    padding-bottom:4px;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;
}
.qn-pills::-webkit-scrollbar{display:none}
.qn-pill{
    flex-shrink:0;
    padding:8px 20px;border-radius:var(--qn-radius-pill);
    font-size:14px;font-weight:500;
    background:var(--qn-white);color:var(--qn-text-sec);
    border:1px solid var(--qn-border);
    transition:all var(--qn-transition);
    white-space:nowrap;cursor:pointer;
}
.qn-pill:hover{border-color:var(--qn-primary);color:var(--qn-primary)}
.qn-pill.active{
    background:var(--qn-primary);color:#fff;border-color:var(--qn-primary);
}

/* ---------- Buttons ---------- */
.qn-btn{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    padding:10px 24px;border-radius:var(--qn-radius-pill);
    font-size:14px;font-weight:600;
    transition:all var(--qn-transition);
}
.qn-btn-primary{
    background:var(--qn-primary);color:#fff;
}
.qn-btn-primary:hover{background:var(--qn-primary-dark);box-shadow:0 2px 8px rgba(26,115,232,.3)}
.qn-btn-outline{
    background:transparent;color:var(--qn-primary);
    border:1.5px solid var(--qn-primary);
}
.qn-btn-outline:hover{background:var(--qn-primary-light)}
.qn-btn-ghost{
    background:transparent;color:var(--qn-text-sec);
}
.qn-btn-ghost:hover{background:var(--qn-bg)}

/* ---------- Grid Row (responsive) ---------- */
.qn-row{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
    gap:16px;
}

/* ---------- Scroll Buttons ---------- */
.qn-scroll-wrap{position:relative}
.qn-scroll-btn{
    position:absolute;top:50%;transform:translateY(-50%);
    width:40px;height:40px;border-radius:50%;
    background:var(--qn-white);box-shadow:var(--qn-shadow-hover);
    display:flex;align-items:center;justify-content:center;
    font-size:18px;color:var(--qn-text-sec);z-index:5;
    transition:opacity var(--qn-transition);
    opacity:0;pointer-events:none;
}
.qn-scroll-wrap:hover .qn-scroll-btn{opacity:1;pointer-events:auto}
.qn-scroll-btn:hover{background:var(--qn-primary);color:#fff}
.qn-scroll-left{left:-16px}
.qn-scroll-right{right:-16px}

/* ---------- Page Content (Legal / About) ---------- */
.qn-page{
    max-width:800px;margin:0 auto;padding:40px 24px 60px;
}
.qn-page h1{
    font-size:28px;font-weight:700;color:var(--qn-text);
    margin-bottom:8px;
}
.qn-page h2{
    font-size:20px;font-weight:600;color:var(--qn-text);
    margin:32px 0 12px;
}
.qn-page h3{
    font-size:16px;font-weight:600;color:var(--qn-text);
    margin:24px 0 8px;
}
.qn-page p{
    font-size:15px;color:var(--qn-text-sec);
    margin-bottom:14px;line-height:1.7;
}
.qn-page ul,.qn-page ol{
    margin:0 0 14px 20px;
}
.qn-page li{
    font-size:15px;color:var(--qn-text-sec);
    margin-bottom:6px;line-height:1.7;
    list-style:disc;
}
.qn-page ol li{list-style:decimal}
.qn-page a{color:var(--qn-primary);text-decoration:underline}
.qn-page-date{font-size:13px;color:var(--qn-text-ter);margin-bottom:24px}
.qn-page strong{color:var(--qn-text);font-weight:600}

/* ---------- FAQ ---------- */
.qn-faq-item{
    border-bottom:1px solid var(--qn-border);
    padding:16px 0;
}
.qn-faq-item h3{
    font-size:15px;font-weight:600;color:var(--qn-text);
    margin:0 0 8px;
}
.qn-faq-item p{margin:0;font-size:14px}

/* ---------- Detail Page ---------- */
.qn-detail{
    max-width:var(--qn-max-w);margin:0 auto;padding:32px 24px 60px;
}
.qn-detail-top{
    display:grid;grid-template-columns:300px 1fr;gap:32px;
    margin-bottom:32px;
}
@media(max-width:768px){
    .qn-detail-top{grid-template-columns:1fr;gap:20px}
}
.qn-detail-cover{
    border-radius:var(--qn-radius);overflow:hidden;
    box-shadow:var(--qn-shadow);aspect-ratio:16/10;
    background:var(--qn-bg);
}
.qn-detail-cover img{width:100%;height:100%;object-fit:cover}
.qn-detail-info h1{
    font-size:26px;font-weight:700;color:var(--qn-text);
    margin-bottom:12px;
}
.qn-detail-meta{
    display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;
}
.qn-detail-tag{
    display:inline-flex;align-items:center;gap:4px;
    padding:5px 14px;border-radius:var(--qn-radius-pill);
    font-size:13px;font-weight:500;
    background:var(--qn-bg);color:var(--qn-text-sec);
    border:1px solid var(--qn-border);
}
.qn-detail-tag.rating{background:#e6f4ea;color:var(--qn-green);border-color:#ceead6}
.qn-detail-tag.type{background:var(--qn-primary-light);color:var(--qn-primary);border-color:#d2e3fc}
.qn-detail-desc{
    font-size:15px;color:var(--qn-text-sec);
    line-height:1.8;margin-bottom:20px;
}
.qn-detail-actions{display:flex;gap:12px;flex-wrap:wrap}
.qn-play-btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:12px 32px;border-radius:var(--qn-radius-pill);
    background:var(--qn-primary);color:#fff;
    font-size:15px;font-weight:600;
    transition:all var(--qn-transition);
    box-shadow:0 2px 8px rgba(26,115,232,.25);
}
.qn-play-btn:hover{background:var(--qn-primary-dark);box-shadow:0 4px 16px rgba(26,115,232,.35)}

/* Tips / Guide card */
.qn-tips{
    background:var(--qn-white);
    border:1px solid var(--qn-border);
    border-radius:var(--qn-radius);
    padding:24px;margin-bottom:24px;
}
.qn-tips h3{
    font-size:16px;font-weight:600;color:var(--qn-text);
    margin:0 0 10px;display:flex;align-items:center;gap:8px;
}
.qn-tips p{
    font-size:14px;color:var(--qn-text-sec);line-height:1.7;margin:0;
}

/* Related games */
.qn-related{margin-top:40px}

/* ---------- Iframe (Play page) ---------- */
.qn-iframe-wrap{
    position:relative;width:100%;height:100vh;
    background:#000;
}
.qn-iframe-wrap iframe{
    display:block;width:100%;height:100%;border:0;
}
.qn-iframe-back{
    position:absolute;top:12px;left:12px;z-index:10;
    width:40px;height:40px;border-radius:50%;
    background:rgba(0,0,0,0.5);backdrop-filter:blur(4px);
    display:flex;align-items:center;justify-content:center;
    color:#fff;font-size:20px;cursor:pointer;
    transition:background var(--qn-transition);
}
.qn-iframe-back:hover{background:rgba(0,0,0,0.7)}

/* ---------- FAB (Floating Action Buttons) ---------- */
.qn-fab{
    position:fixed;bottom:24px;right:24px;z-index:90;
    display:flex;flex-direction:column;gap:10px;
}
.qn-fab button{
    width:44px;height:44px;border-radius:50%;
    background:var(--qn-white);
    box-shadow:0 2px 8px rgba(0,0,0,.12);
    display:flex;align-items:center;justify-content:center;
    transition:box-shadow var(--qn-transition);
}
.qn-fab button:hover{box-shadow:0 4px 16px rgba(0,0,0,.18)}
.qn-fab button img{width:20px;height:20px}

/* ---------- Load More ---------- */
.qn-load-more{
    text-align:center;padding:32px 0;
}
.qn-load-more button{
    padding:10px 40px;border-radius:var(--qn-radius-pill);
    font-size:14px;font-weight:600;
    color:var(--qn-primary);background:var(--qn-primary-light);
    border:1px solid transparent;
    transition:all var(--qn-transition);
}
.qn-load-more button:hover{
    border-color:var(--qn-primary);background:var(--qn-white);
}

/* ---------- Channel Hero ---------- */
.qn-channel-hero{
    background:var(--qn-white);
    border-bottom:1px solid var(--qn-border);
    padding:40px 0 32px;margin-bottom:32px;
}
.qn-channel-hero .qn-container{
    display:flex;flex-direction:column;gap:8px;
}
.qn-channel-eyebrow{
    font-size:13px;font-weight:600;color:var(--qn-primary);
    text-transform:uppercase;letter-spacing:1px;
}
.qn-channel-title{
    font-size:28px;font-weight:700;color:var(--qn-text);
}
.qn-channel-desc{
    font-size:15px;color:var(--qn-text-sec);max-width:600px;
}
.qn-channel-count{
    font-size:13px;color:var(--qn-text-ter);margin-top:4px;
}

/* ---------- Cookie Banner ---------- */
.qn-cookie{
    position:fixed;bottom:0;left:0;right:0;z-index:200;
    background:var(--qn-white);
    border-top:1px solid var(--qn-border);
    padding:16px 24px;
    display:flex;align-items:center;justify-content:center;
    gap:16px;flex-wrap:wrap;
    box-shadow:0 -2px 12px rgba(0,0,0,.08);
}
.qn-cookie p{
    font-size:14px;color:var(--qn-text-sec);margin:0;
    flex:1;min-width:280px;
}
.qn-cookie a{color:var(--qn-primary);text-decoration:underline}
.qn-cookie-btn{
    padding:8px 24px;border-radius:var(--qn-radius-pill);
    font-size:14px;font-weight:600;
    background:var(--qn-primary);color:#fff;
    transition:background var(--qn-transition);
    flex-shrink:0;
}
.qn-cookie-btn:hover{background:var(--qn-primary-dark)}
.qn-cookie.hidden{display:none}

/* ---------- Back to top ---------- */
.qn-back-top{
    display:inline-flex;align-items:center;gap:4px;
    font-size:14px;font-weight:500;color:var(--qn-text-sec);
    padding:8px 0;transition:color var(--qn-transition);
}
.qn-back-top:hover{color:var(--qn-primary)}
