/* QQDev Apps — public site. Visual language follows qqdev.kz: dark graphite bands,
   warm light sections, one blue accent, square edges, monospace labels. */
:root{
  color-scheme:light;
  --bg:#141518;--surface:#1c1d21;--surface-2:#23252b;--on-dark:#f4f4f2;--on-dark-muted:#a5a6b0;--line-dark:#34353d;
  --paper:#f3f3f0;--card:rgba(255,255,255,.62);--ink:#17181c;--muted:#61626b;--line:#d6d6d1;--line-strong:#c8ccc6;
  --blue:#4264ff;--blue-dark:#2f4fe0;--blue-soft:#e6eaff;--sky:#008aff;
  --ok:#1f7a4d;--ok-soft:#e1f1e8;--warn:#8a5a00;--warn-soft:#f6ecd4;
  --sans:"Segoe UI",Inter,-apple-system,BlinkMacSystemFont,Arial,sans-serif;
  --mono:Consolas,"SFMono-Regular","Courier New",monospace;
  --wrap:1180px;
  font-family:var(--sans);font-size:16px;line-height:1.6;color:var(--ink);background:var(--paper)
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--blue);text-underline-offset:.22em;text-decoration-thickness:1px}
a:hover{color:var(--blue-dark)}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-weight:600;line-height:1.08;letter-spacing:-.045em}
h1{font-size:clamp(2.4rem,5.4vw,4.4rem);margin-bottom:24px}
h2{font-size:clamp(1.6rem,3vw,2.6rem);margin-bottom:18px}
h3{font-size:1.4rem;letter-spacing:-.03em}
p{margin-bottom:18px}
img{max-width:100%;height:auto}
button,input,select{font:inherit}
.container{width:min(var(--wrap),calc(100% - 64px));margin-inline:auto}
.skip-link{position:absolute;top:-100px;left:16px;background:var(--on-dark);color:var(--ink);padding:12px 16px;z-index:20}
.skip-link:focus{top:8px}
main:focus{outline:none}

/* Header */
.site-header{position:sticky;top:0;z-index:10;background:rgba(20,21,24,.96);border-bottom:1px solid var(--line-dark);color:var(--on-dark);backdrop-filter:blur(10px)}
.header-inner{min-height:78px;display:flex;align-items:center;gap:40px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--on-dark)}
.brand img{display:block;width:auto;height:30px}
.brand-tag{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-muted);border-left:1px solid var(--line-dark);padding-left:14px}
.site-nav{display:flex;gap:30px;flex:1}
.site-nav a{position:relative;color:#c1c1c8;text-decoration:none;font-size:.9rem;padding:6px 0}
.site-nav a:hover{color:var(--on-dark)}
.site-nav a[aria-current]{color:var(--on-dark)}
.site-nav a[aria-current]::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--blue)}
.header-cta{display:inline-flex;align-items:center;gap:18px;padding:12px 18px;border:1px solid #494a54;color:var(--on-dark);text-decoration:none;font-size:.88rem;white-space:nowrap;transition:border-color .2s,background .2s}
.header-cta:hover{border-color:var(--on-dark);color:var(--on-dark);background:rgba(255,255,255,.04)}

/* Shared atoms */
.eyebrow{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:.75rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:22px}
.eyebrow::before{content:"";width:7px;height:7px;background:var(--blue);flex:none}
.dark .eyebrow{color:var(--on-dark-muted)}
.accent{color:var(--blue)}
.dark .accent{color:#6b86ff}
.lead{font-size:1.15rem;line-height:1.7;max-width:640px;color:var(--muted)}
.dark .lead{color:var(--on-dark-muted)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:54px;padding:14px 24px;background:var(--blue);border:1px solid var(--blue);border-radius:0;color:#fff;text-decoration:none;font-size:.98rem;cursor:pointer;transition:background .2s,border-color .2s}
.button:hover{background:var(--blue-dark);border-color:var(--blue-dark);color:#fff}
.button.ghost{background:transparent;border-color:var(--line-strong);color:var(--ink)}
.button.ghost:hover{border-color:var(--ink);background:rgba(0,0,0,.03);color:var(--ink)}
.text-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:.92rem}
.text-link span{transition:transform .2s}
.text-link:hover span{transform:translateX(3px)}
.dark .text-link{color:var(--on-dark)}
.badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 9px;background:var(--ok-soft);color:var(--ok);line-height:1.3}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.metadata{font-family:var(--mono);font-size:.76rem;letter-spacing:.05em;color:var(--muted);text-transform:uppercase}
.muted{color:var(--muted)}

/* Dark bands (hero, page headings) with the blueprint grid of qqdev.kz */
.dark{position:relative;background:var(--bg);color:var(--on-dark);overflow:hidden}
.dark::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(ellipse at 70% 40%,#000 0%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 70% 40%,#000 0%,transparent 75%)}
.dark::after{content:"";position:absolute;width:520px;height:520px;right:-120px;top:-160px;pointer-events:none;background:radial-gradient(circle,rgba(66,100,255,.22),transparent 65%)}
.dark>.container{position:relative;z-index:1}
.band-meta{display:flex;justify-content:space-between;gap:20px;padding:22px 0;border-bottom:1px solid var(--line-dark);font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-muted)}

/* Home hero */
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:64px;align-items:center;padding:84px 0 96px}
.hero-grid h1{max-width:680px}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:28px;margin-top:36px}
.hero-panel{background:rgba(28,29,33,.86);border:1px solid var(--line-dark);padding:26px}
.hero-panel-head{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-muted);margin-bottom:22px}
.hero-panel-head span:first-child{color:var(--on-dark)}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:10px;counter-reset:step}
.steps li{counter-increment:step;display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;padding:16px;border:1px solid var(--line-dark);background:var(--surface)}
.steps li::before{content:"0" counter(step);font-family:var(--mono);font-size:.78rem;color:#6b86ff;padding-top:3px}
.steps li.active{background:var(--blue);border-color:var(--blue)}
.steps li.active::before{color:#fff}
.steps strong{display:block;font-weight:600;margin-bottom:2px}
.steps span{font-size:.86rem;color:var(--on-dark-muted)}
.steps li.active span{color:rgba(255,255,255,.82)}

/* Page heading band */
.page-heading{padding:64px 0 60px}
.page-heading h1{font-size:clamp(2.3rem,4.4vw,3.6rem);margin-bottom:18px}
.page-heading .lead{margin-bottom:0}
.breadcrumbs{display:flex;gap:10px;align-items:center;font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--on-dark-muted);padding-top:34px}
.breadcrumbs a{color:var(--on-dark-muted);text-decoration:none}
.breadcrumbs a:hover{color:var(--on-dark)}

/* Sections */
.section{padding:88px 0}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:40px}
.section-heading h2{margin-bottom:0}
.section-heading .eyebrow{margin-bottom:18px}

/* Product cards */
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;list-style:none;padding:0;margin:0}
.product-card{position:relative;height:100%;background:var(--card);border:1px solid var(--line-strong);padding:26px;display:flex;flex-direction:column;align-items:flex-start;transition:border-color .2s,background .2s,transform .2s}
.product-card:hover{border-color:var(--blue);background:#fff}
.card-top{display:flex;justify-content:space-between;align-items:flex-start;width:100%;margin-bottom:26px}
.product-logo{width:56px;height:56px;object-fit:contain;background:#fff;border:1px solid var(--line)}
.logo-fallback{display:grid;place-items:center;width:56px;height:56px;background:var(--bg);color:var(--on-dark);font-family:var(--mono);font-size:1.3rem}
.product-card h3{margin:0 0 8px}
.product-card h3 a{color:var(--ink);text-decoration:none}
.product-card h3 a::after{content:"";position:absolute;inset:0}
.product-card .metadata{margin-bottom:14px}
.product-card p{color:var(--muted);font-size:.95rem}
.product-card .price{margin:4px 0 0;font-family:var(--mono);font-size:1rem;font-weight:600;color:var(--ink)}
.product-card .price-free{color:var(--ok)}
.product-card .price-period{font-weight:400;color:var(--muted);font-size:.85rem}
.product-card .text-link{position:relative;margin-top:auto;padding-top:18px;border-top:1px solid var(--line);width:100%;justify-content:space-between}

/* Empty & info */
.empty-state{text-align:center;border:1px dashed var(--line-strong);background:var(--card);padding:64px 28px}
.empty-state h2,.empty-state h3{font-size:1.6rem;margin-bottom:12px}
.empty-state p{max-width:560px;margin-inline:auto;color:var(--muted)}
.empty-state p:last-child{margin-bottom:0}
.empty-symbol{display:grid;place-items:center;margin:0 auto 24px;width:56px;height:56px;font-family:var(--mono);font-size:1.4rem;background:var(--bg);color:var(--on-dark)}
.features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line-dark)}
.features article{padding:40px 32px 44px 0;border-right:1px solid var(--line-dark)}
.features article+article{padding-left:32px}
.features article:last-child{border-right:0}
.features .num{display:block;font-family:var(--mono);font-size:.75rem;color:#6b86ff;margin-bottom:22px}
.features h3{margin-bottom:12px}
.features p{color:var(--on-dark-muted);margin:0;font-size:.95rem}
.cta-band{background:var(--blue);color:#fff}
.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:32px;padding:56px 0}
.cta-inner h2{margin:0;max-width:640px}
.cta-inner .button{background:#fff;border-color:#fff;color:var(--ink)}
.cta-inner .button:hover{background:var(--on-dark);color:var(--ink)}

/* Catalog */
.catalog-body{padding:40px 0 96px}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
select,input{width:100%;min-height:54px;border:1px solid var(--line-strong);border-radius:0;padding:10px 14px;background:#fff;color:var(--ink)}
select:hover,input:hover{border-color:var(--ink)}
.catalog-search{margin-bottom:30px}
.search-bar{display:flex;gap:12px;align-items:stretch}
.search-field{position:relative;flex:1;min-width:0}
.search-field input{min-height:58px;padding-left:52px;border-color:var(--line-strong);-webkit-appearance:none;appearance:none}
.search-field input::placeholder{color:#9a9ba3}
.search-field input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}
.search-icon{position:absolute;left:17px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.search-filters{display:inline-flex;align-items:center;gap:12px;padding:0 20px;min-height:58px;background:#e9e9e5;border:1px solid transparent;color:var(--ink);text-decoration:none;font-weight:600;white-space:nowrap;transition:background .2s,border-color .2s}
.search-filters:hover{color:var(--ink);background:#e0e0db;border-color:var(--line-strong)}
.filter-count{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;background:var(--blue);color:#fff;font-family:var(--mono);font-size:.74rem;font-weight:400}
.search-submit{min-height:58px;min-width:200px;font-weight:600}
.active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;list-style:none;margin:16px 0 0;padding:0}
.active-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;background:var(--blue-soft);color:var(--ink);text-decoration:none;font-size:.9rem;overflow-wrap:anywhere}
.active-chip span{color:var(--muted)}
.active-chip:hover{color:var(--blue-dark)}
.active-filters .reset{margin-left:6px;font-size:.9rem}

/* Filters dialog: opened by the #filters anchor, works without scripts */
.filters-dialog{display:none;position:fixed;inset:0;z-index:30;align-items:center;justify-content:center;padding:24px}
.filters-dialog:target{display:flex}
html:has(.filters-dialog:target){overflow:hidden}
.filters-backdrop{position:absolute;inset:0;background:rgba(20,21,24,.62);cursor:default}
.filters-panel{position:relative;display:flex;flex-direction:column;width:min(560px,100%);max-height:min(760px,100%);background:#fff;border:1px solid var(--line-strong);box-shadow:0 30px 80px rgba(0,0,0,.28)}
.filters-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:28px 30px 8px}
.filters-head h2{font-size:1.7rem;margin:0}
.filters-close{display:grid;place-items:center;width:40px;height:40px;color:var(--muted)}
.filters-close:hover{color:var(--ink)}
.filters-body{overflow-y:auto;padding:12px 30px 24px;overscroll-behavior:contain}
.filter-group{border:0;margin:0;padding:0;min-width:0}
.filter-group+.filter-group{margin-top:26px}
.filter-group legend{float:left;width:100%;padding:0;margin-bottom:10px;font-size:.95rem;color:var(--muted)}
.filter-group legend+*{clear:left}
.check{display:flex;align-items:center;gap:14px;padding:7px 0;cursor:pointer;font-size:1.02rem}
.check input,.chip input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;pointer-events:none}
.check-box{flex:none;width:22px;height:22px;border:1.5px solid var(--line-strong);background:#fff;transition:background .15s,border-color .15s}
.check-box{position:relative}
.check input:checked+.check-box{background:var(--blue);border-color:var(--blue)}
.check input:checked+.check-box::after{content:"";position:absolute;left:6px;top:2px;width:6px;height:11px;border:solid #fff;border-width:0 2.2px 2.2px 0;transform:rotate(45deg)}
.check input:focus-visible+.check-box,.chip input:focus-visible+span{outline:2px solid var(--blue);outline-offset:3px}
.check:hover .check-box{border-color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;cursor:pointer}
.chip span{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:#efefeb;border:1px solid transparent;font-size:.95rem;transition:background .15s,border-color .15s,color .15s}
.chip:hover span{border-color:var(--line-strong)}
.chip input:checked+span{background:var(--blue);border-color:var(--blue);color:#fff}
.chip input:checked+span::after{content:"×";font-size:1.05rem;line-height:1}
.filters-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 30px;border-top:1px solid var(--line)}
.filters-reset{font-weight:600;text-decoration:none}
.filters-foot .button{min-width:240px;font-weight:600}
.result-count{font-family:var(--mono);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}

/* Application page */
.app-head{display:flex;gap:28px;align-items:flex-start}
.app-head .product-logo,.app-head .logo-fallback{width:88px;height:88px;flex:none;border-color:var(--line-dark)}
.app-head .logo-fallback{background:var(--surface-2);border:1px solid var(--line-dark);font-size:2rem}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.tag{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;padding:6px 10px;border:1px solid var(--line-dark);color:var(--on-dark-muted)}
.application-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:48px;padding:56px 0 96px;align-items:start}
.application-content section{padding-bottom:36px;margin-bottom:36px;border-bottom:1px solid var(--line)}
.application-content section:last-of-type{border-bottom:0}
.application-content h2{font-size:1.7rem}
.plain-text{white-space:normal;overflow-wrap:anywhere;font-size:1.02rem}
.screenshots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.screenshots img{display:block;width:100%;aspect-ratio:16/10;object-fit:contain;border:1px solid var(--line-strong);background:#fff}
.screenshots img:only-child{grid-column:1/-1}
.doc-link{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border:1px solid var(--line-strong);background:var(--card);text-decoration:none;color:var(--ink)}
.doc-link:hover{border-color:var(--blue);color:var(--blue)}
.action-panel{position:sticky;top:102px;background:var(--bg);color:var(--on-dark);border:1px solid var(--bg)}
.action-panel section{padding:26px}
.action-panel section+section{border-top:1px solid var(--line-dark)}
.action-panel h2{font-size:1.3rem;margin:16px 0 10px}
.action-panel section+section h2{margin-top:0}
.action-panel p{color:var(--on-dark-muted);font-size:.92rem}
.action-panel .button{width:100%;justify-content:space-between}
.action-panel a:not(.button){color:#8ea2ff}
.action-panel .badge{background:rgba(31,122,77,.2);color:#7fd8a8}
.facts{margin:0;display:grid;gap:12px}
.facts div{display:flex;justify-content:space-between;gap:16px;font-size:.9rem}
.facts dt{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--on-dark-muted);padding-top:2px}
.facts dd{margin:0;text-align:right}
.facts dd.price{font-family:var(--mono);font-weight:600;white-space:nowrap}
.price-note{margin:14px 0 0;font-size:.85rem}

/* Support */
.support-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;padding:56px 0 96px}
.support-panel{background:var(--card);border:1px solid var(--line-strong);padding:32px}
.support-panel h2{font-size:1.6rem}
.support-panel.dark-card{background:var(--bg);color:var(--on-dark);border-color:var(--bg)}
.support-panel.dark-card p{color:var(--on-dark-muted)}
.support-panel.dark-card .text-link{color:var(--on-dark)}
.contact-list{list-style:none;padding:0;margin:0 0 24px;overflow-wrap:anywhere;border-top:1px solid var(--line)}
.contact-list li{border-bottom:1px solid var(--line)}
.contact-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;padding:16px 0;color:var(--ink);text-decoration:none}
.contact-list a:hover{color:var(--blue)}
.contact-list a::after{content:"→";grid-column:2;grid-row:1/span 2;align-self:center;color:var(--muted)}
.contact-list .contact-whatsapp a::after{content:"↗"}
.contact-label{font-family:var(--mono);font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.contact-value{font-size:1.1rem;font-weight:600}
.app-contacts{list-style:none;padding:0;margin:0;display:grid;gap:10px;overflow-wrap:anywhere}
.app-contacts li{display:flex;flex-direction:column}
.action-panel .contact-label{color:var(--on-dark-muted)}

/* Documents: privacy policy and owner details */
.legal-layout{padding:56px 0 96px}
.legal-panel{max-width:820px;background:var(--card);border:1px solid var(--line-strong);padding:40px}
.legal-panel h2{font-size:1.5rem;margin:36px 0 14px}
.legal-panel h2:first-child,.legal-revision+h2{margin-top:0}
.legal-text ul{padding-left:1.2em;margin:0 0 18px}
.legal-text li{margin-bottom:10px}
.legal-revision{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:28px}
.legal-contacts{overflow-wrap:anywhere}
.legal-facts{margin:0 0 24px;border-top:1px solid var(--line);overflow-wrap:anywhere}
.legal-facts div{display:grid;grid-template-columns:minmax(140px,220px) minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.legal-facts dt{font-family:var(--mono);font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.legal-facts dd{margin:0;font-weight:600}
.owner-pending{padding:16px 18px;background:var(--warn-soft);color:var(--ink);border-left:3px solid var(--warn)}

/* 404 */
.error-state{padding:120px 0}
.error-state .button{margin-top:12px}

/* Footer */
.site-footer{background:var(--bg);color:var(--on-dark-muted);font-size:.88rem}
.footer-top{display:grid;grid-template-columns:1.2fr 1fr auto;gap:40px;align-items:center;padding:44px 0 36px}
.footer-top img{display:block;height:30px;width:auto}
.footer-top p{margin:0;max-width:260px}
.footer-brand{display:grid;gap:14px}
.footer-heading{margin:0 0 8px;font-family:var(--mono);font-size:.72rem;font-weight:400;letter-spacing:.09em;text-transform:uppercase;color:var(--on-dark-muted)}
.footer-contacts ul{list-style:none;padding:0;margin:0;display:grid;gap:4px;overflow-wrap:anywhere}
.footer-contacts a{color:var(--on-dark);text-decoration:none}
.footer-contacts a:hover{color:#8ea2ff}
.footer-nav{display:flex;gap:28px}
.footer-nav a{color:var(--on-dark);text-decoration:none}
.footer-nav a:hover{color:#8ea2ff}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding:22px 0;border-top:1px solid var(--line-dark);font-family:var(--mono);font-size:.72rem;letter-spacing:.06em}
.footer-bottom a{color:var(--on-dark-muted)}
.footer-legal{display:flex;flex-wrap:wrap;gap:6px 24px}
.footer-legal a{text-decoration:none}
.footer-legal a:hover,.footer-legal a[aria-current]{color:var(--on-dark)}

@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:48px;padding:64px 0 72px}
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .application-layout{grid-template-columns:1fr;gap:32px}
  .action-panel{position:static}
  .features{grid-template-columns:1fr}
  .features article,.features article+article{padding:30px 0;border-right:0;border-bottom:1px solid var(--line-dark)}
  .features article:last-child{border-bottom:0}
  .footer-top{grid-template-columns:1fr 1fr}
  .footer-nav{grid-column:1/-1}
}
@media(max-width:760px){
  .container{width:calc(100% - 32px)}
  .header-inner{min-height:60px;gap:16px}
  .brand img{height:22px}
  .brand-tag,.header-cta{display:none}
  .site-nav{justify-content:flex-end;gap:20px}
  .site-nav a{font-size:.88rem}
  .section{padding:60px 0}
  .section-heading{flex-direction:column;align-items:flex-start;gap:14px}
  .support-layout{grid-template-columns:1fr}
  .cta-inner{flex-direction:column;align-items:flex-start;padding:44px 0}
  .band-meta span:last-child{display:none}
  .app-head{flex-direction:column;gap:20px}
  .app-head .product-logo,.app-head .logo-fallback{width:64px;height:64px}
  .screenshots{grid-template-columns:1fr}
}
@media(max-width:560px){
  .product-grid{grid-template-columns:1fr}
  .search-bar{flex-wrap:wrap}
  .search-field{flex-basis:100%}
  .search-filters{flex:1;justify-content:center}
  .search-submit{flex:1;min-width:0}
  .filters-dialog{padding:0;align-items:flex-end}
  .filters-panel{max-height:92vh;width:100%}
  .filters-head,.filters-body,.filters-foot{padding-left:18px;padding-right:18px}
  .filters-foot .button{min-width:0;flex:1}
  .hero-actions{gap:18px}
  .hero-actions .button{width:100%;justify-content:space-between}
  .empty-state{padding:40px 18px}
  .footer-top{grid-template-columns:1fr;gap:20px}
  .footer-bottom{flex-direction:column;gap:6px}
  .footer-legal{flex-direction:column}
  .legal-panel{padding:24px 20px}
  .legal-facts div{grid-template-columns:1fr;gap:4px}
  .page-heading{padding:44px 0 44px}
}
/* Motion follows qqdev.kz: headings reveal with an 18px rise over .6s, buttons lift 2px,
   cards lift 4px and light the border, links only change colour, a data dash travels in the hero.
   CSS only: the site CSP blocks scripts. Load reveals use fill "backwards" so no transform
   stays on containers (it would trap the fixed filters dialog). */
@keyframes qq-reveal{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes qq-data-travel{from{background-position:-120px 0}to{background-position:calc(100% + 120px) 0}}

/* Reveal: top of the page on load, lower headings on scroll */
.hero-grid>*,.page-heading,.error-state .container,.catalog-search{animation:qq-reveal .6s ease backwards}
.hero-panel{animation-delay:.12s}
.catalog-search{animation-delay:.12s}
@supports (animation-timeline:view()){
  .section-heading,.section>.eyebrow,.section>h2,.application-content h2{animation:qq-reveal linear both;animation-timeline:view();animation-range:entry 10% cover 25%}
}

/* Hero: a data dash travelling along the panel edge */
.hero-panel{position:relative}
.hero-panel::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:2px;background:linear-gradient(90deg,transparent,#7b90ff,transparent) no-repeat;background-size:120px 2px;animation:qq-data-travel 7s linear infinite}

/* Hover */
.button{transition:background .2s,border-color .2s,transform .2s}
.button:hover{transform:translateY(-2px)}
.site-nav a,.footer-nav a,.footer-contacts a,.breadcrumbs a,.header-cta,.contact-list a,.doc-link,.active-chip{transition:color .2s,border-color .2s,background .2s}
.product-card{transition:border-color .25s,background .25s,transform .25s}
.product-card:hover{transform:translateY(-4px)}
.support-panel,.doc-link{transition:border-color .25s,color .25s,transform .25s}
.support-panel:hover{transform:translateY(-4px)}
.steps li{transition:transform .25s,border-color .25s,background .25s}
.steps li:not(.active):hover{transform:translateY(-4px);border-color:#7d92ff;background:#292d40}
.screenshots img{transition:border-color .25s}
.screenshots img:hover{border-color:var(--blue)}

/* Filters dialog opens with the same reveal */
.filters-dialog:target .filters-panel{animation:qq-reveal .3s ease}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
