@import"https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500&display=swap";:root{--bg: #ffffff;--bg-tint: #f5f8fc;--surface: #ffffff;--navy: #0b1e3d;--text: #0b1e3d;--blue: #1d4ed8;--blue-bright: #3b82f6;--blue-pale: #e4ecf9;--gray: #6b7686;--radius: 18px;--radius-lg: 26px;--shadow-soft: 0 12px 32px -16px rgba(11,30,61,.16);--shadow-pop: 0 24px 54px -18px rgba(11,30,61,.28);--ease: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}[data-theme=dark]{--bg: #0b1220;--bg-tint: #131c2e;--surface: #161f33;--text: #eef2fb;--blue-pale: #263354;--gray: #8a93a8;--shadow-soft: 0 12px 32px -16px rgba(0,0,0,.5);--shadow-pop: 0 24px 54px -18px rgba(0,0,0,.65)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .25s var(--ease),color .25s var(--ease);animation:pageFadeIn .5s var(--ease)}@keyframes pageFadeIn{0%{opacity:0}to{opacity:1}}h1,h2,h3,.display{font-family:Manrope,-apple-system,Inter,sans-serif;font-weight:800;letter-spacing:-.03em;margin:0}.mono{font-family:IBM Plex Mono,monospace;letter-spacing:-.01em}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.wrap{max-width:1180px;margin:0 auto;padding:0 28px}header.site{position:sticky;top:0;z-index:40;background:#ffffffb8;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--blue-pale);animation:navDrop .5s var(--ease)}[data-theme=dark] header.site{background:#0b1220b8}@keyframes navDrop{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.site-nav{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;max-width:1180px;margin:0 auto}.logo{display:flex;align-items:center;gap:10px;font-family:Manrope,sans-serif;font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--text)}.logo .logo-mark{width:30px;height:30px;border-radius:9px;background:#dce9ff;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .35s var(--ease-spring)}.logo:hover .logo-mark{transform:scale(1.12) rotate(-8deg)}.nav-links{display:flex;align-items:center;gap:26px}.nav-links a{position:relative;font-size:14px;font-weight:600;color:var(--gray);transition:color .2s var(--ease);padding:4px 0}.nav-links a:after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--blue);border-radius:2px;transition:right .28s var(--ease)}.nav-links a:hover{color:var(--blue)}.nav-links a:hover:after{right:0}.nav-actions{display:flex;align-items:center;gap:14px;animation:navActionsIn .55s var(--ease) .1s backwards}@keyframes navActionsIn{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.btn{position:relative;overflow:hidden;font-family:inherit;font-size:14px;font-weight:600;padding:10px 18px;border-radius:999px;border:1px solid transparent;cursor:pointer;transition:transform .22s var(--ease-spring),box-shadow .22s var(--ease),background .18s var(--ease)}.btn:active{transform:scale(.96)}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 1px 2px #1d4ed826}.btn-primary:hover{background:#1a44c2;box-shadow:0 10px 22px -6px #1d4ed866;transform:translateY(-2px)}.btn-ghost{background:transparent;color:var(--text);border-color:var(--blue-pale)}.btn-ghost:hover{border-color:var(--blue);background:var(--bg-tint);transform:translateY(-2px)}.cart-btn{position:relative;width:40px;height:40px;border-radius:999px;border:1px solid var(--blue-pale);background:var(--bg-tint);display:grid;place-items:center;cursor:pointer;transition:transform .3s var(--ease-spring),border-color .2s,box-shadow .25s var(--ease)}.cart-btn:hover{border-color:var(--blue);transform:translateY(-2px);box-shadow:0 8px 18px -8px #1d4ed866}.cart-btn.bump{animation:cartBump .5s var(--ease)}@keyframes cartBump{0%{transform:scale(1)}35%{transform:scale(1.18) rotate(-6deg)}60%{transform:scale(.95) rotate(4deg)}to{transform:scale(1) rotate(0)}}.cart-badge{position:absolute;top:-4px;right:-4px;background:var(--blue);color:#fff;font-family:IBM Plex Mono,monospace;font-size:10px;min-width:17px;height:17px;border-radius:999px;display:none;align-items:center;justify-content:center;padding:0 3px}.hero{padding:76px 0 64px;position:relative;overflow:hidden;background:linear-gradient(180deg,var(--bg-tint) 0%,var(--bg) 100%)}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;filter:blur(70px);opacity:.35;pointer-events:none;z-index:0;animation:blobDrift 12s var(--ease) infinite alternate}.hero:before{width:420px;height:420px;background:radial-gradient(circle,var(--blue-bright),transparent 70%);top:-160px;right:-120px}.hero:after{width:320px;height:320px;background:radial-gradient(circle,var(--blue),transparent 70%);bottom:-140px;left:-100px;animation-delay:2s}[data-theme=dark] .hero:before,[data-theme=dark] .hero:after{opacity:.18}@keyframes blobDrift{0%{transform:translate(0) scale(1)}to{transform:translate(-24px,24px) scale(1.12)}}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;position:relative;z-index:1}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--blue);background:var(--blue-pale);padding:6px 12px;border-radius:999px;margin-bottom:18px;animation:heroUp .6s var(--ease) backwards}.hero h1{font-size:clamp(36px,5vw,58px);line-height:1.02;color:var(--text);animation:heroUp .6s var(--ease) .08s backwards}.hero h1 span{color:var(--blue)}@keyframes heroUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.hero p.lead{color:var(--gray);font-size:17px;max-width:46ch;margin:20px 0 30px;line-height:1.55;animation:heroUp .6s var(--ease) .16s backwards}.hero-cta{display:flex;gap:12px;animation:heroUp .6s var(--ease) .24s backwards}.tag-stack{position:relative;height:360px}.price-tag{position:absolute;background:var(--surface);border:1px solid var(--blue-pale);border-radius:10px;padding:16px 18px 16px 14px;width:210px;box-shadow:0 14px 30px -12px #0b1e3d2e;animation:tagFloat 5s var(--ease) infinite}.price-tag:before{content:"";position:absolute;left:-7px;top:50%;transform:translateY(-50%);width:14px;height:14px;background:var(--surface);border:1px solid var(--blue-pale);border-radius:999px;box-shadow:inset 0 0 0 2px var(--bg)}.price-tag .swatch{width:100%;height:64px;border-radius:6px;margin-bottom:10px}.price-tag .name{font-size:14px;font-weight:700;font-family:Manrope,sans-serif}.price-tag .price{font-family:IBM Plex Mono,monospace;color:var(--blue);font-size:15px;margin-top:4px}.price-tag.t1{top:6%;left:4%;animation-delay:0s}.price-tag.t2{top:38%;left:42%;animation-delay:.6s;z-index:2;transform:rotate(-3deg)}.price-tag.t3{top:60%;left:2%;animation-delay:1.2s;transform:rotate(2deg)}.price-tag.t4{top:12%;left:55%;animation-delay:.3s;transform:rotate(1deg)}.price-tag.t5{top:72%;left:48%;animation-delay:.9s;transform:rotate(-2deg)}.price-tag.t6{top:28%;left:18%;animation-delay:1.5s;transform:rotate(3deg)}@keyframes tagFloat{0%,to{transform:translateY(0) rotate(var(--r, 0deg))}50%{transform:translateY(-10px) rotate(var(--r, 0deg))}}.price-tag.t2{--r: -3deg}.price-tag.t3{--r: 2deg}section.catalog{padding:60px 0 90px}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:28px}.section-head h2{font-size:26px}.section-head .count{color:var(--gray);font-size:13px;font-family:IBM Plex Mono,monospace}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:var(--surface);border:1px solid var(--blue-pale);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:transform .32s var(--ease-spring),box-shadow .32s var(--ease),border-color .32s var(--ease);opacity:0;transform:translateY(14px);animation:cardIn .5s var(--ease) forwards}@keyframes cardIn{to{opacity:1;transform:translateY(0)}}.card:hover{transform:translateY(-6px) scale(1.012);box-shadow:var(--shadow-pop);border-color:transparent}.card .body{padding:20px 20px 22px;position:relative;overflow:hidden}.card-bg{position:absolute;inset:0;z-index:0;pointer-events:none}.card-bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22;transition:opacity .32s var(--ease),transform .4s var(--ease)}.card-bg-svg{position:absolute;top:-18px;right:-18px;width:130px;height:130px;opacity:.16;transform:rotate(-8deg);transition:opacity .32s var(--ease),transform .4s var(--ease)}.card-bg-svg svg{width:100%;height:100%}.card-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(165deg,var(--surface) 22%,transparent 75%)}.card:hover .card-bg-img{opacity:.32;transform:scale(1.05)}.card:hover .card-bg-svg{opacity:.24;transform:rotate(-4deg) scale(1.05)}.card .body>*:not(.card-bg){position:relative;z-index:1}.icon-chip{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;position:relative;overflow:hidden;box-shadow:0 6px 14px -6px #0b1e3d33,inset 0 1px #fff9;transition:transform .3s var(--ease)}.icon-chip:before{content:"";position:absolute;inset:0;background:linear-gradient(150deg,#ffffff8c,#fff0 55%);pointer-events:none}.icon-chip svg{position:relative;z-index:1}.card:hover .icon-chip{transform:scale(1.06) rotate(-2deg)}.badge{position:absolute;top:18px;right:20px;background:var(--bg-tint);color:var(--gray);font-family:IBM Plex Mono,monospace;font-size:10px;padding:4px 9px;border-radius:999px;border:1px solid var(--blue-pale);display:flex;align-items:center;gap:4px}.card .cat{color:var(--gray);font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.card .name{font-weight:700;font-size:16px;font-family:Manrope,sans-serif;letter-spacing:-.01em}.card .variant{color:var(--gray);font-size:13px;margin-top:3px;line-height:1.4;min-height:34px}.card .foot{display:flex;align-items:center;justify-content:space-between;margin-top:16px}.card .price{font-family:IBM Plex Mono,monospace;color:var(--blue);font-weight:500;font-size:15px}.icon-btn{width:34px;height:34px;border-radius:999px;border:none;background:var(--bg-tint);display:grid;place-items:center;transition:background .2s,transform .2s var(--ease)}.icon-btn:hover{background:var(--navy)}.icon-btn:hover svg{stroke:#fff}.icon-btn:active{transform:scale(.9)}.owned-btn{background:#dcfce7;cursor:default;pointer-events:none}.overlay{position:fixed;inset:0;background:#0b1e3d59;opacity:0;pointer-events:none;transition:opacity .3s var(--ease);z-index:50}.overlay.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;height:100%;width:min(400px,92vw);background:var(--surface);z-index:51;transform:translate(100%);transition:transform .38s var(--ease);display:flex;flex-direction:column;box-shadow:-18px 0 40px #0b1e3d26}.drawer.open{transform:translate(0)}.drawer-head{padding:22px 22px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--blue-pale)}.drawer-head h3{font-size:18px}.drawer-close{cursor:pointer;color:var(--gray);font-size:22px;line-height:1;background:none;border:none}.drawer-items{flex:1;overflow-y:auto;padding:10px 22px}.drawer-item{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px dashed var(--blue-pale)}.drawer-item .sw{width:46px;height:46px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.drawer-item .info{flex:1}.drawer-item .info .n{font-size:14px;font-weight:600}.drawer-item .info .v{font-size:12px;color:var(--gray)}.drawer-item .p{font-family:IBM Plex Mono,monospace;font-size:13px;color:var(--blue)}.drawer-item .rm{background:none;border:none;color:var(--gray);cursor:pointer;font-size:18px;padding:4px}.drawer-item .rm:hover{color:#dc2626}.drawer-empty{text-align:center;color:var(--gray);padding:60px 20px;font-size:14px}.drawer-foot{padding:18px 22px 24px;border-top:1px solid var(--blue-pale)}.drawer-total{display:flex;justify-content:space-between;margin-bottom:14px;font-size:15px}.drawer-total b{font-family:IBM Plex Mono,monospace;color:var(--blue)}.drawer-foot .btn{width:100%}footer.site{border-top:1px solid var(--blue-pale);padding:40px 0;margin-top:40px}.footer-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.pay-methods{display:flex;align-items:center;gap:10px}.pay-chip{border:1px solid var(--blue-pale);border-radius:8px;padding:6px 12px;font-family:IBM Plex Mono,monospace;font-size:12px;display:flex;align-items:center;gap:6px;color:var(--text)}.pay-chip.disabled{color:var(--gray);opacity:.6}.pay-chip .soon{font-size:9px;background:var(--bg-tint);padding:2px 6px;border-radius:999px}footer .copy{color:var(--gray);font-size:13px}.auth-shell{min-height:calc(100vh - 73px);display:grid;place-items:center;background:var(--bg-tint);padding:40px 20px}.auth-card{background:var(--surface);border:1px solid var(--blue-pale);border-radius:18px;width:100%;max-width:400px;padding:34px 32px 30px;box-shadow:0 24px 50px -20px #0b1e3d2e;animation:cardIn .5s var(--ease) forwards}.auth-card h1{font-size:24px;margin-bottom:6px}.auth-card p.sub{color:var(--gray);font-size:14px;margin-bottom:24px}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:500;margin-bottom:6px}.field input{width:100%;padding:11px 13px;border-radius:10px;border:1px solid var(--blue-pale);font-family:inherit;font-size:14px;background:var(--bg-tint);transition:border-color .2s var(--ease),background .2s var(--ease),box-shadow .2s var(--ease),transform .15s var(--ease)}.field input:focus{outline:none;border-color:var(--blue);background:var(--surface);box-shadow:0 0 0 4px #1d4ed81f;transform:translateY(-1px)}.auth-card .btn{width:100%;margin-top:6px}.auth-card .btn:disabled{opacity:.45;cursor:not-allowed}.auth-switch{text-align:center;font-size:13px;color:var(--gray);margin-top:20px}.auth-switch a{color:var(--blue);font-weight:600}.hold-captcha{position:relative;width:100%;height:50px;border-radius:14px;border:1.5px solid var(--blue-pale);background:var(--bg-tint);overflow:hidden;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:none;transition:border-color .25s var(--ease),transform .15s var(--ease),box-shadow .3s var(--ease)}.hold-captcha:hover{border-color:var(--blue-bright)}.hold-captcha:active{transform:scale(.985)}.hold-captcha.holding{box-shadow:0 0 0 5px #1d4ed824;border-color:var(--blue)}.hold-fill{position:absolute;top:0;left:0;bottom:0;width:0%;background:linear-gradient(90deg,var(--blue-bright),var(--blue) 60%,var(--blue-bright));background-size:200% 100%}.hold-captcha.holding .hold-fill{animation:holdShimmer 1.3s linear infinite}@keyframes holdShimmer{0%{background-position:0% 0}to{background-position:-200% 0}}.hold-fill:after{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.28) 0 10px,transparent 10px 20px);opacity:.55}.hold-captcha.verified{border-color:#16a34a;animation:holdPop .45s var(--ease-spring)}.hold-captcha.verified .hold-fill{width:100%!important;background:linear-gradient(90deg,#34d399,#16a34a);animation:none}@keyframes holdPop{0%{transform:scale(1)}45%{transform:scale(1.015)}to{transform:scale(1)}}.hold-label{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:8px;height:100%;font-size:14px;font-weight:600;color:var(--text);transition:color .3s var(--ease)}.hold-captcha.verified .hold-label{color:#fff}.hold-check{width:16px;height:16px;flex-shrink:0;transform:scale(0) rotate(-20deg);transition:transform .4s var(--ease-spring)}.hold-captcha.verified .hold-check{transform:scale(1) rotate(0)}.checkout-shell{max-width:760px;margin:0 auto;padding:56px 28px 100px}.checkout-shell .eyebrow{margin-bottom:14px}.checkout-shell h1{font-size:30px;margin-bottom:8px}.checkout-shell .sub{color:var(--gray);font-size:14px;margin-bottom:34px}.co-item{display:flex;align-items:center;gap:14px;border:1px solid var(--blue-pale);border-radius:12px;padding:14px 16px;margin-bottom:12px}.co-item .sw{width:54px;height:54px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.co-item .n{font-weight:600;font-size:15px}.co-item .v{color:var(--gray);font-size:13px}.co-item .p{margin-left:auto;font-family:IBM Plex Mono,monospace;color:var(--blue)}.co-summary{background:var(--bg-tint);border-radius:14px;padding:20px 22px;margin:26px 0}.co-row{display:flex;justify-content:space-between;font-size:14px;padding:6px 0;color:var(--gray)}.co-row.total{color:var(--text);font-weight:600;font-size:16px;padding-top:12px;border-top:1px dashed var(--blue-pale);margin-top:6px}.co-row.total b{font-family:IBM Plex Mono,monospace;color:var(--blue)}.co-empty{text-align:center;padding:60px 20px;color:var(--gray)}.switcher{display:flex;align-items:center;gap:8px}.switcher-group{display:flex;flex-wrap:nowrap;background:var(--bg-tint);border-radius:999px;padding:2px;gap:0;flex-shrink:0}.switcher-btn{font-family:-apple-system,Inter,sans-serif;font-size:11px;font-weight:600;background:transparent;border:none;color:var(--gray);padding:5px 8px;border-radius:999px;cursor:pointer;transition:background .2s,color .2s;white-space:nowrap;flex-shrink:0}.switcher-btn:hover{color:var(--text)}.switcher-btn.active{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #0b1e3d1f}.settings-wrap{position:relative}.settings-panel{position:absolute;top:calc(100% + 10px);right:0;width:340px;background:var(--surface);border:1px solid var(--blue-pale);border-radius:18px;box-shadow:var(--shadow-pop);padding:20px;z-index:60;animation:cardIn .2s var(--ease) forwards}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:10px}.settings-row+.settings-row{border-top:1px solid var(--blue-pale)}.settings-label{font-size:14px;font-weight:600;color:var(--text)}.theme-toggle{width:44px;height:26px;border-radius:999px;background:var(--bg-tint);border:1px solid var(--blue-pale);position:relative;cursor:pointer;transition:background .2s}.theme-toggle-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:999px;background:var(--surface);box-shadow:0 1px 3px #0b1e3d4d;transition:transform .25s var(--ease)}.theme-toggle.active{background:var(--navy);border-color:var(--navy)}.theme-toggle.active .theme-toggle-knob{transform:translate(18px);background:#fff}.cat-tabs,.subcat-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.subcat-tabs{margin-bottom:26px}.tab-btn{font-family:inherit;font-size:13.5px;font-weight:600;padding:8px 16px;border-radius:999px;border:1px solid var(--blue-pale);background:var(--surface);color:var(--text);cursor:pointer;transition:background .2s,border-color .2s,color .2s;display:inline-flex;align-items:center;gap:6px}.tab-btn svg{flex-shrink:0}.tab-btn:hover{border-color:var(--blue-bright)}.tab-btn.active{background:var(--blue);border-color:var(--blue);color:#fff}.tab-btn.subtab{font-size:12.5px;padding:6px 13px;background:var(--bg-tint)}.tab-btn.subtab.active{background:var(--navy);border-color:var(--navy)}.badge-free{left:20px;right:auto;top:18px;background:var(--blue);color:#fff;border-color:var(--blue)}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--navy);color:#fff;font-size:13.5px;font-weight:500;padding:12px 20px;border-radius:999px;box-shadow:0 14px 30px -10px #0b1e3d66;opacity:0;pointer-events:none;transition:opacity .25s var(--ease),transform .25s var(--ease);z-index:80;max-width:90vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%)}.gopay-tag-inline{display:inline-block;background:var(--blue);color:#fff;font-size:9px;padding:1px 6px;border-radius:999px;margin-left:6px}.pay-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.pay-card{background:var(--surface);border:1px solid var(--blue-pale);border-radius:var(--radius-lg);padding:20px;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}.pay-card:not(.disabled):hover{transform:translateY(-3px);box-shadow:var(--shadow-soft)}.pay-card.disabled{opacity:.55}.pay-card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}.pay-card .icon-chip{margin-bottom:0;width:46px;height:46px;border-radius:14px}.pay-card-tag{font-family:IBM Plex Mono,monospace;font-size:9.5px;padding:3px 8px;border-radius:999px;background:var(--bg-tint);color:var(--gray);white-space:nowrap}.pay-card h4{font-size:15px;font-weight:600;margin-bottom:4px}.pay-card p{font-size:12.5px;color:var(--gray);line-height:1.4;margin:0}@media(max-width:860px){.pay-cards{grid-template-columns:1fr}}.pay-options{display:flex;flex-direction:column;gap:10px;margin-bottom:26px}.pay-option{display:flex;align-items:center;gap:14px;border:1.5px solid var(--blue-pale);border-radius:18px;padding:14px 16px;cursor:pointer;transition:border-color .2s,background .2s,transform .2s var(--ease)}.pay-option:hover{transform:translateY(-1px)}.pay-option.active{border-color:var(--blue);background:var(--bg-tint)}.pay-option.disabled{opacity:.5;cursor:not-allowed}.pay-option.disabled:hover{transform:none}.pay-option .icon-chip{margin-bottom:0;flex-shrink:0;width:42px;height:42px;border-radius:13px}.pay-option-text{flex:1}.pay-option-text .n{font-weight:600;font-size:14.5px;display:flex;align-items:center;gap:8px}.pay-option-text .d{font-size:12px;color:var(--gray);margin-top:2px}.pay-option-radio{width:20px;height:20px;border-radius:999px;border:1.5px solid var(--blue-pale);flex-shrink:0;position:relative}.pay-option.active .pay-option-radio{border-color:var(--blue)}.pay-option.active .pay-option-radio:after{content:"";position:absolute;inset:3px;border-radius:999px;background:var(--blue)}.pay-option .soon-label{display:inline-block;font-size:9.5px;font-weight:500;color:var(--gray);font-family:IBM Plex Mono,monospace;background:var(--bg-tint);padding:2px 7px;border-radius:999px}.card-form{border:1px solid var(--blue-pale);border-radius:20px;padding:18px 18px 6px;margin-bottom:22px;background:linear-gradient(180deg,var(--bg-tint) 0%,var(--surface) 60%);animation:cardIn .35s var(--ease) forwards}.cf-field{margin-bottom:14px}.cf-field label{display:block;font-size:12px;font-weight:500;color:var(--gray);margin-bottom:6px}.cf-field input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--blue-pale);font-family:IBM Plex Mono,monospace;font-size:14px;background:var(--surface);transition:border-color .2s,box-shadow .2s}.cf-field input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #1d4ed81f}.cf-row{display:flex;gap:12px}.cf-row .cf-field{flex:1}.gopay-overlay{position:fixed;inset:0;background:#0b1e3d73;backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:90;padding:20px}.gopay-modal{background:var(--surface);width:100%;max-width:400px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-pop);animation:cardIn .35s var(--ease) forwards;max-height:92vh;overflow-y:auto}.gopay-head{padding:20px 24px 4px;display:flex;align-items:center;gap:10px}.gopay-logo{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:19px;color:var(--text)}.gopay-body{padding:20px 24px 24px}.gopay-body h3{font-size:17px;margin-bottom:14px}.gopay-amount{display:flex;justify-content:space-between;align-items:center;background:var(--bg-tint);border-radius:14px;padding:14px 16px;font-size:13.5px;margin-bottom:18px}.gopay-amount b{color:var(--blue);font-size:17px}.gopay-choose-label{font-size:12.5px;color:var(--gray);margin-bottom:8px}.gopay-methods{display:flex;gap:10px;margin-bottom:18px}.gopay-method{flex:1;border:1.5px solid var(--blue-pale);border-radius:14px;padding:12px;text-align:center;font-size:13px;font-weight:600;cursor:pointer;transition:border-color .2s,background .2s}.gopay-method.active{border-color:var(--blue);background:var(--bg-tint);color:var(--blue)}.bank-list{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.bank-item{display:flex;align-items:center;gap:12px;border:1.5px solid var(--blue-pale);border-radius:14px;padding:10px 14px;cursor:pointer;transition:border-color .2s,background .2s}.bank-item.active{border-color:var(--blue);background:var(--bg-tint)}.bank-mark{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-family:Space Grotesk,sans-serif;font-weight:700;font-size:12px;color:#fff;flex-shrink:0}.bank-item .bank-name{font-size:13.5px;font-weight:500}.gopay-fail-btn{margin-top:10px}.gopay-cancel{display:block;width:100%;text-align:center;background:none;border:none;color:var(--gray);font-size:12.5px;padding:12px 0 0;cursor:pointer}.gopay-cancel:hover{color:var(--text)}.gopay-center{text-align:center;padding:30px 24px}.gopay-spinner{width:38px;height:38px;margin:0 auto 18px;border-radius:999px;border:3px solid var(--blue-pale);border-top-color:var(--blue);animation:gopaySpin .8s linear infinite}@keyframes gopaySpin{to{transform:rotate(360deg)}}.gopay-check,.gopay-cross{width:52px;height:52px;margin:0 auto 14px;border-radius:999px;display:grid;place-items:center;font-size:24px;color:#fff}.gopay-check{background:#16a34a}.gopay-cross{background:#dc2626}.gopay-body.gopay-center p.sub{margin-bottom:18px}.sandbox-note{text-align:center;font-size:10.5px;color:var(--gray);opacity:.7;padding:0 24px 16px}@media(max-width:860px){.hero-grid{grid-template-columns:1fr}.tag-stack{height:220px;margin-top:20px}.grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.grid{grid-template-columns:1fr}.nav-links{display:none}.pay-options{flex-direction:column}}.footer-privacy-link{color:var(--gray);font-size:12.5px;text-decoration:underline;text-underline-offset:2px}.footer-privacy-link:hover{color:var(--blue)}.footer-discord-link{display:inline-flex;align-items:center;gap:6px;color:var(--gray);font-size:12.5px;font-weight:600;transition:color .2s}.footer-discord-link:hover{color:#5865F2}.footer-discord-link svg{flex-shrink:0}.footer-row{flex-wrap:wrap;gap:10px 22px}.badge-platform,.badge-addon{position:static;display:inline-flex;align-items:center;gap:4px;margin-right:6px}.card .badge{position:absolute;top:18px;right:20px}.card .badge-platform,.card .badge-addon{position:absolute;top:18px;left:20px;right:auto;background:var(--bg-tint);color:var(--gray);font-family:IBM Plex Mono,monospace;font-size:10px;padding:4px 9px;border-radius:999px;border:1px solid var(--blue-pale)}.card .badge-addon{top:44px}.card-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;position:relative;z-index:1}.icon-chip.small{width:34px;height:34px;border-radius:10px;margin-bottom:0}.settings-row-link{padding-top:6px;border-top:1px dashed var(--blue-pale);margin-top:4px}.btn-block{display:block;width:100%;text-align:center}.product-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-46%) scale(.97);width:min(560px,92vw);max-height:86vh;overflow-y:auto;background:var(--surface);border-radius:22px;padding:30px 30px 26px;z-index:61;opacity:0;pointer-events:none;transition:opacity .28s var(--ease),transform .28s var(--ease);box-shadow:0 30px 70px -20px #0b1e3d59}.product-modal.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}#modal-overlay{z-index:60}.product-modal .drawer-close{position:absolute;top:18px;right:20px}.pm-head{display:flex;align-items:center;gap:16px;margin-bottom:14px;margin-right:30px}.pm-head h3{font-size:20px;margin-top:4px}.pm-badges{display:flex;gap:6px;flex-wrap:wrap}.pm-desc{color:var(--gray);font-size:14.5px;line-height:1.6;margin-bottom:18px}.pm-price-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:16px 0;border-top:1px solid var(--blue-pale);border-bottom:1px solid var(--blue-pale)}.pm-price-row .price{font-family:IBM Plex Mono,monospace;color:var(--blue);font-weight:600;font-size:18px}.pm-actions{display:flex;gap:10px}.no-refund-note{font-size:12px;color:var(--gray);opacity:.8;margin:12px 0 4px}.pm-addons{margin-top:20px}.pm-addons h4{font-size:14px;margin-bottom:2px}.pm-addons-desc{font-size:12.5px;color:var(--gray);margin-bottom:12px}.pm-addon-list{display:flex;flex-direction:column;gap:8px}.pm-addon{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-tint);border-radius:12px}.pm-addon-info{flex:1;min-width:0}.pm-addon-info .n{font-weight:600;font-size:13.5px}.pm-addon-info .v{font-size:12px;color:var(--gray)}.pm-addon .price{font-family:IBM Plex Mono,monospace;color:var(--blue);font-size:13px}.pm-layout{display:grid;grid-template-columns:1fr 300px;gap:28px;align-items:start}.pm-main{min-width:0}.pm-sidebar{display:flex;flex-direction:column;gap:16px;position:sticky;top:24px}.pm-license-card{background:var(--surface);border:1px solid var(--blue-pale);border-radius:var(--radius);padding:18px}.pm-license-card.is-owned{border-color:#bbf7d0;background:linear-gradient(180deg,#f0fdf4,var(--surface) 70%)}.pm-license-top{display:flex;align-items:center;gap:12px}.pm-license-icon{width:40px;height:40px;border-radius:12px;background:var(--bg-tint);color:var(--blue);display:flex;align-items:center;justify-content:center;flex-shrink:0}.pm-license-card.is-owned .pm-license-icon{background:#dcfce7;color:#16a34a}.pm-license-title{font-weight:700;font-size:13.5px}.pm-license-status{font-size:12.5px;color:var(--gray);margin-top:2px;line-height:1.4}.pm-license-note{font-size:12px;color:var(--gray);margin-top:10px}.btn-block{display:flex;width:100%;justify-content:center}.pm-detail-card{background:var(--surface);border:1px solid var(--blue-pale);border-radius:var(--radius);padding:18px}.pm-detail-card h4{font-size:13px;margin-bottom:10px}.pm-detail-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--blue-pale);font-size:12.5px}.pm-detail-row:first-of-type{border-top:none;padding-top:0}.pm-detail-row>span:first-child{color:var(--gray);flex-shrink:0}.pm-detail-row>span:last-child{color:var(--text);font-weight:600;text-align:right}.pm-detail-row a{color:var(--blue);text-decoration:none}.pm-detail-row a:hover{text-decoration:underline}.pm-lang-badges{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.pm-lang-badge{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--gray);background:var(--bg-tint);border:1px solid var(--blue-pale);border-radius:6px;padding:2px 6px}@media(max-width:860px){.pm-layout{grid-template-columns:1fr}.pm-sidebar{position:static}}.privacy-check-row{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--gray);margin:6px 0 4px;line-height:1.5}.privacy-check-row input[type=checkbox]{margin-top:3px;flex-shrink:0;width:15px;height:15px}.privacy-check-row a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}.field-error{color:#dc2626;font-size:12.5px;margin-top:6px;display:none}.field-error.show{display:block}.doc-page{max-width:760px;margin:0 auto;padding:60px 24px 90px}.doc-page h1{font-size:30px;margin-bottom:6px}.doc-page .doc-updated{color:var(--gray);font-size:12.5px;margin-bottom:32px}.doc-page h2{font-size:17px;margin:28px 0 8px}.doc-page p,.doc-page li{color:var(--text);font-size:14.5px;line-height:1.7}.doc-page ul{padding-left:20px;margin:6px 0}.mine-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:20px}.mine-card{background:var(--surface);border-radius:18px;padding:18px;border:1px solid var(--blue-pale);display:flex;flex-direction:column;gap:10px}.mine-card-top{display:flex;align-items:center;gap:12px}.mine-card .n{font-weight:700;font-size:15px}.mine-card .v{font-size:12.5px;color:var(--gray)}.mine-empty-state{text-align:center;padding:70px 20px;color:var(--gray)}.support-wrap{max-width:760px;margin:0 auto;padding:50px 24px 90px}.ticket-form{background:var(--surface);border:1px solid var(--blue-pale);border-radius:18px;padding:22px;margin:22px 0 32px}.ticket-form h3{font-size:15px;margin-bottom:14px}.ticket-list{display:flex;flex-direction:column;gap:12px}.ticket-card{background:var(--surface);border:1px solid var(--blue-pale);border-radius:16px;padding:16px 18px}.ticket-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer}.ticket-card-head .subj{font-weight:700;font-size:14.5px}.ticket-card-head .meta{font-size:11.5px;color:var(--gray);margin-top:2px}.ticket-status{font-family:IBM Plex Mono,monospace;font-size:10.5px;padding:3px 9px;border-radius:999px}.ticket-status.open{background:#dcfce7;color:#15803d}.ticket-status.closed{background:var(--bg-tint);color:var(--gray)}.ticket-messages{margin-top:14px;padding-top:14px;border-top:1px dashed var(--blue-pale);display:none;flex-direction:column;gap:10px}.ticket-messages.open{display:flex}.ticket-msg{padding:10px 12px;border-radius:12px;font-size:13.5px;line-height:1.5;max-width:90%}.ticket-msg.from-user{background:var(--bg-tint);align-self:flex-start}.ticket-msg.from-admin{background:var(--blue-pale);align-self:flex-end;text-align:right}.ticket-msg .author{font-size:10.5px;color:var(--gray);margin-bottom:3px}.ticket-reply-row{display:flex;gap:8px;margin-top:12px}.ticket-reply-row input{flex:1}.ticket-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.admin-wrap{max-width:1080px;margin:0 auto;padding:40px 24px 90px}.admin-tabs{display:flex;gap:8px;margin:18px 0 24px;flex-wrap:wrap}.admin-panel{display:none}.admin-panel.active{display:block}.admin-product-row{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--blue-pale);border-radius:14px;padding:12px 16px;margin-bottom:10px}.admin-product-row .info{flex:1;min-width:0}.admin-product-row .n{font-weight:700;font-size:14px}.admin-product-row .v{font-size:12px;color:var(--gray)}.admin-product-row .actions{display:flex;gap:8px}.admin-form{background:var(--surface);border:1px solid var(--blue-pale);border-radius:18px;padding:22px;margin-bottom:24px}.admin-form h3{font-size:15px;margin-bottom:16px}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.admin-form-grid.full{grid-template-columns:1fr}.admin-field{display:flex;flex-direction:column;gap:5px}.admin-field label{font-size:12px;color:var(--gray)}.admin-field-span2{grid-column:1 / -1}.admin-lang-tabs{display:flex;gap:6px;margin-bottom:10px}.admin-lang-panel{display:none}.admin-lang-panel.active{display:grid;grid-template-columns:1fr;gap:10px}.admin-form-actions{display:flex;gap:10px;margin-top:18px}.admin-search-row{display:flex;gap:10px;margin-bottom:16px}.admin-search-row input{flex:1}.admin-user-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--blue-pale);border-radius:14px;padding:12px 16px;margin-bottom:10px}.admin-user-row .u{font-weight:700;font-size:13.5px}.admin-user-row .e{font-size:12px;color:var(--gray)}.admin-license-chip{display:inline-flex;align-items:center;gap:6px;background:var(--bg-tint);border-radius:999px;padding:4px 10px;font-size:11.5px;margin:2px 4px 2px 0}.admin-license-chip button{border:none;background:none;color:#dc2626;cursor:pointer;font-weight:700}.admin-grant-row{display:flex;gap:8px;align-items:center;margin-top:8px;flex-wrap:wrap}.admin-note{font-size:12px;color:var(--gray);margin-top:-6px;margin-bottom:4px}@media(max-width:640px){.admin-form-grid{grid-template-columns:1fr}.product-modal{padding:24px 20px 22px}}
.admin-lang-tabs{flex-wrap:wrap}.desc-blocks{display:flex;flex-direction:column;gap:10px;margin:8px 0 4px}.desc-block{position:relative;border:1px solid var(--blue-pale);border-radius:12px;padding:12px 40px 12px 14px;background:var(--bg-tint)}.desc-block textarea{width:100%;min-height:70px;border-radius:8px;border:1px solid var(--blue-pale);padding:8px 10px;font-family:inherit;font-size:13.5px;background:var(--surface);resize:vertical}.desc-block img{max-width:100%;max-height:160px;border-radius:8px;display:block}.desc-block .db-remove{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:999px;border:none;background:var(--surface);color:#dc2626;font-weight:700;cursor:pointer;box-shadow:0 1px 4px #0b1e3d1f}.desc-blocks-actions{display:flex;gap:8px;margin-top:2px}.pm-desc-blocks{display:flex;flex-direction:column;gap:14px;margin:14px 0}.pm-desc-block-text{color:var(--text);font-size:14.5px;line-height:1.65}.pm-desc-block-image{width:100%;border-radius:14px;display:block}.request-modal{max-width:440px}.request-modal textarea{width:100%;min-height:120px;border-radius:12px;border:1px solid var(--blue-pale);padding:12px 14px;font-family:inherit;font-size:14px;background:var(--bg-tint);resize:vertical}.request-modal .admin-form-actions{margin-top:14px}.admin-request-card{background:var(--surface);border:1px solid var(--blue-pale);border-radius:14px;padding:14px 16px;margin-bottom:10px}.admin-request-card .n{font-weight:700;font-size:13.5px}.admin-request-card .meta{font-size:11.5px;color:var(--gray);margin:2px 0 8px}.admin-request-card .txt{font-size:13.5px;color:var(--text);white-space:pre-wrap;line-height:1.55}

/* admin form */
.admin-form select,
.admin-form input[type="text"],
.admin-form input[type="number"],
.admin-form input[type="file"],
.admin-form textarea {
  width:100%;padding:10px 12px;border:1.5px solid var(--blue-pale);border-radius:12px;
  background:var(--surface);color:var(--text);font-family:inherit;font-size:13.5px;
  transition:border-color .15s,box-shadow .15s;
}
.admin-form select:focus,
.admin-form input[type="text"]:focus,
.admin-form input[type="number"]:focus,
.admin-form textarea:focus {
  outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,78,216,.14);
}
.admin-form select {
  appearance:none;cursor:pointer;padding-right:32px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236b7686' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;
}
.icon-chip{overflow:hidden;padding:0!important;display:flex;align-items:center;justify-content:center}
.icon-chip .product-icon-img,.icon-chip img{width:100%!important;height:100%!important;object-fit:cover;border-radius:inherit;display:block}
.icon-chip svg{width:60%;height:60%}
.card-bg-img{width:100%;height:100%;object-fit:cover;display:block}

/* ---- expandable catalog product cards ---- */
.product-list{display:flex;flex-direction:column;gap:12px;margin-top:8px}
.product-card{background:var(--surface);border:1px solid var(--blue-pale);border-radius:var(--radius);box-shadow:var(--shadow-soft);overflow:hidden;transition:border-color .2s var(--ease),box-shadow .2s var(--ease);animation:fadeUp .45s var(--ease) both}
.product-card.is-open{border-color:color-mix(in srgb,var(--blue) 35%,var(--blue-pale));box-shadow:var(--shadow-pop)}
.pc-header{width:100%;display:flex;align-items:center;gap:14px;padding:12px 16px;min-height:68px;background:transparent;border:none;cursor:pointer;text-align:left;font-family:inherit;color:inherit;transition:background .15s}
.pc-header:hover{background:var(--bg-tint)}
.pc-icon{width:44px;height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}
.pc-icon svg,.pc-icon .product-icon-img{display:block;margin:0 auto}
.pc-header-text{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:6px}
.pc-name{font-family:Manrope,Inter,system-ui,sans-serif;font-weight:700;font-size:15px;line-height:1.25;letter-spacing:-.01em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:22px}
.pc-price{font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600;color:var(--blue);margin-left:auto}
.pc-chevron{color:var(--gray);flex-shrink:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;transition:transform .25s var(--ease),color .15s,background .15s}
.pc-header:hover .pc-chevron{background:var(--blue-pale);color:var(--blue)}
.product-card.is-open .pc-chevron{transform:rotate(180deg);color:var(--blue);background:var(--blue-pale)}
.pc-body{border-top:1px solid var(--blue-pale);padding:20px 16px 22px;animation:fadeUp .22s var(--ease)}
.pc-body-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:28px 32px;align-items:start}
@media(max-width:720px){.pc-body-grid{grid-template-columns:1fr;gap:20px}.pc-side{order:-1}}
.pc-main{min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.pc-icon-lg{width:64px;height:64px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;margin:0 0 14px;flex-shrink:0}
.pc-icon-lg svg,.pc-icon-lg .product-icon-img{display:block}
.pc-title{margin:0 0 8px;font-family:Manrope,Inter,system-ui,sans-serif;font-size:20px;font-weight:800;line-height:1.25;letter-spacing:-.02em;color:var(--text);width:100%}
.pc-desc{margin:0 0 14px;font-size:14px;line-height:1.55;color:var(--gray);width:100%}
.pc-desc-blocks{margin-top:4px;width:100%}
.pc-block-text{margin:0 0 12px;font-size:14px;line-height:1.6;color:var(--text);white-space:pre-wrap}
.pc-block-text:last-child{margin-bottom:0}
.pc-block-img{display:block;max-width:100%;width:auto;height:auto;border-radius:12px;margin:0 0 14px;border:1px solid var(--blue-pale)}
.pc-block-img:last-child{margin-bottom:0}
.pc-side{display:flex;flex-direction:column;gap:14px;width:100%;min-width:0}
.pc-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px;width:100%}
.pc-actions .btn{width:100%;display:inline-flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;min-height:40px;margin:0}
.pc-params{background:var(--bg-tint);border:1px solid var(--blue-pale);border-radius:14px;padding:12px 14px;width:100%;box-sizing:border-box}
.pc-params-title{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--gray);line-height:1.3}
.pc-params-list{margin:0;padding:0;width:100%}
.pc-param-row{display:grid;grid-template-columns:minmax(90px,42%) minmax(0,1fr);align-items:center;column-gap:12px;padding:8px 0;font-size:13px;min-height:36px}
.pc-param-row+.pc-param-row{border-top:1px solid var(--blue-pale)}
.pc-param-row dt{margin:0;padding:0;color:var(--gray);font-weight:500;line-height:1.35;text-align:left}
.pc-param-row dd{margin:0;padding:0;text-align:right;font-weight:600;color:var(--text);line-height:1.35;word-break:break-word;overflow-wrap:anywhere;display:flex;align-items:center;justify-content:flex-end;min-width:0}
.empty-catalog{padding:40px 16px;text-align:center;color:var(--gray);font-size:14px}

/* ---- catalog product cards (grid) ---- */
.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:8px}
@media(max-width:900px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.catalog-grid{grid-template-columns:1fr}}
.catalog-card{
  display:flex;flex-direction:column;gap:10px;
  background:var(--surface);border:1px solid var(--blue-pale);
  border-radius:var(--radius);box-shadow:var(--shadow-soft);
  padding:18px 18px 16px;text-decoration:none;color:inherit;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease);
  animation:fadeUp .45s var(--ease) both;min-height:180px
}
.catalog-card:hover{
  border-color:color-mix(in srgb,var(--blue) 40%,var(--blue-pale));
  box-shadow:var(--shadow-pop);transform:translateY(-2px)
}
.cc-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cc-icon{
  width:48px;height:48px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;
  overflow:hidden;flex-shrink:0
}
.cc-icon img,.cc-icon svg{display:block}
.cc-price{
  font-family:Manrope,Inter,system-ui,sans-serif;font-weight:800;font-size:16px;letter-spacing:-.02em;color:var(--blue)
}
.cc-name{
  margin:0;font-family:Manrope,Inter,system-ui,sans-serif;font-weight:800;font-size:17px;line-height:1.3;
  letter-spacing:-.02em;color:var(--navy)
}
[data-theme=dark] .cc-name{color:var(--text)}
.cc-desc{
  margin:0;font-size:13.5px;line-height:1.5;color:var(--gray);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.9em
}
.cc-desc-empty{visibility:hidden}
.cc-foot{margin-top:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cc-tags{display:flex;flex-wrap:wrap;gap:6px}
.cc-tag{
  font-size:11.5px;font-weight:600;color:var(--gray);background:var(--bg-tint);
  border:1px solid var(--blue-pale);border-radius:999px;padding:3px 9px;line-height:1.3
}

/* catalog card with banner background */
.catalog-card.has-banner{color:#fff;border-color:transparent;position:relative;overflow:hidden}
.catalog-card.has-banner .cc-name{color:#fff}
.catalog-card.has-banner .cc-desc{color:rgba(255,255,255,.88)}
.catalog-card.has-banner .cc-price{color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.catalog-card.has-banner .cc-tag{
  color:#fff;background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.28);backdrop-filter:blur(6px)
}
.catalog-card.has-banner .cc-icon{
  box-shadow:0 4px 14px rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.25)
}
.catalog-card.has-banner:hover{border-color:rgba(255,255,255,.2)}
.product-icon-img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.pm-banner{width:100%;height:180px;border-radius:var(--radius);background-size:cover;background-position:center;margin-bottom:18px;border:1px solid var(--blue-pale)}
@media(max-width:640px){.pm-banner{height:120px}}

/* product photo icon must sit above .icon-chip:before shine */
.icon-chip .product-icon-img,
.icon-chip > img,
.cc-icon .product-icon-img,
.cc-icon > img,
.pc-icon .product-icon-img,
.pc-icon-lg .product-icon-img {
  position: relative !important;
  z-index: 2 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
.icon-chip:has(.product-icon-img):before,
.icon-chip:has(> img):before {
  display: none;
}

/* background-size:cover for icon span */

.icon-chip .product-icon-img,
.cc-icon .product-icon-img,
.pc-icon .product-icon-img,
.pc-icon-lg .product-icon-img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  border-radius: inherit !important;
  position: relative !important;
  z-index: 2 !important;
  flex-shrink: 0;
}
.icon-chip:has(.product-icon-img):before {
  display: none !important;
}

/* Chip s fotkou (stejně jako banner karty) — bez bílého overlay */
.icon-chip[style*="background-image"],
.cc-icon[style*="background-image"] {
  background-color: transparent !important;
}
.icon-chip[style*="background-image"]:before {
  display: none !important;
}
.icon-chip[style*="background-image"] svg,
.cc-icon[style*="background-image"] svg {
  display: none !important;
}

/* ICON PHOTO — vyplní chip, nad overlay */
.icon-chip, .cc-icon {
  overflow: hidden !important;
  position: relative;
}
.icon-chip .product-icon-img,
.cc-icon .product-icon-img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: inherit !important;
  z-index: 2 !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}
.icon-chip:has(.product-icon-img):before {
  display: none !important;
}

/* --- Hero card element animations (admin-controlled) --- */
@keyframes animNamePulse {
  0%, 100% { opacity: 1; transform: translateY(0); }
  50% { opacity: 0.85; transform: translateY(-2px); }
}
@keyframes animBannerShimmer {
  0%, 100% { filter: brightness(1); transform: scale(1); }
  50% { filter: brightness(1.12); transform: scale(1.02); }
}
@keyframes animPriceGlow {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.04); }
}
.price-tag .name.anim-name {
  animation: animNamePulse 3.2s var(--ease) infinite;
}
.price-tag .swatch.anim-banner {
  animation: animBannerShimmer 4s var(--ease) infinite;
  transform-origin: center;
}
.price-tag .price.anim-price {
  animation: animPriceGlow 2.8s var(--ease) infinite;
}
@media (prefers-reduced-motion: reduce) {
  .price-tag .name.anim-name,
  .price-tag .swatch.anim-banner,
  .price-tag .price.anim-price {
    animation: none !important;
  }
}
.admin-lang-checks{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:6px}
.admin-lang-check{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--blue-pale);background:var(--bg-tint);font-size:12.5px;font-weight:600;cursor:pointer;user-select:none;transition:border-color .15s,background .15s}
.admin-lang-check:has(input:checked){border-color:var(--blue);background:var(--blue-pale);color:var(--blue)}
.admin-lang-check input{margin:0;accent-color:var(--blue)}


/* ========== MOBILE SUPPORT ========== */

/* Base tighter spacing on small screens */
@media (max-width: 860px) {
  .wrap {
    padding: 0 18px;
  }
  .site-nav {
    padding: 12px 16px;
    gap: 10px;
  }
  .hero {
    padding: 48px 0 40px;
  }
  .hero h1 {
    font-size: clamp(28px, 8vw, 42px);
  }
  .hero p.lead {
    font-size: 15.5px;
    margin: 14px 0 22px;
  }
  .hero-cta {
    flex-wrap: wrap;
    gap: 10px;
  }
  .hero-cta .btn {
    flex: 1 1 auto;
    text-align: center;
    justify-content: center;
  }
  .section-head {
    margin-bottom: 18px;
  }
  .section-head h2 {
    font-size: 22px;
  }
  .catalog {
    padding-bottom: 20px;
  }
  .grid {
    gap: 14px;
  }
  .card {
    border-radius: 16px;
  }
  .pay-cards {
    gap: 12px;
  }
  footer.site {
    padding: 28px 0;
    margin-top: 24px;
  }
  .footer-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }
  .checkout-shell {
    padding: 32px 18px 80px;
  }
  .admin-wrap {
    padding: 28px 16px 70px;
  }
  .doc-page {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

@media (max-width: 640px) {
  .wrap {
    padding: 0 14px;
  }
  .site-nav {
    padding: 10px 12px;
  }
  .logo {
    font-size: 17px;
    gap: 8px;
  }
  .logo .logo-mark {
    width: 26px;
    height: 26px;
    border-radius: 7px;
  }
  .nav-actions {
    gap: 8px;
  }
  .nav-actions .btn {
    padding: 8px 12px;
    font-size: 13px;
  }
  .nav-actions .mono {
    display: none; /* hide @username on very small screens */
  }
  .cart-btn {
    width: 38px;
    height: 38px;
  }
  .switcher {
    gap: 4px;
  }
  .switcher-group {
    padding: 1px;
  }
  .switcher-btn {
    padding: 4px 7px;
    font-size: 10.5px;
  }
  .hero {
    padding: 36px 0 28px;
  }
  .hero h1 {
    font-size: clamp(26px, 9vw, 36px);
    line-height: 1.08;
  }
  .hero p.lead {
    font-size: 15px;
    max-width: none;
  }
  .tag-stack {
    height: 180px !important;
    margin-top: 12px;
  }
  .btn {
    padding: 10px 16px;
    font-size: 13.5px;
  }
  .section-head h2 {
    font-size: 20px;
  }
  .cat-tabs, .subcat-tabs {
    gap: 6px;
    margin-bottom: 12px;
  }
  .cat-tabs button, .subcat-tabs button,
  .cat-tab, .subcat-tab {
    font-size: 12.5px !important;
    padding: 7px 12px !important;
  }
  .auth-shell {
    padding: 24px 14px;
    min-height: calc(100vh - 60px);
  }
  .auth-card {
    padding: 24px 18px 22px;
    border-radius: 16px;
  }
  .auth-card h1 {
    font-size: 24px;
  }
  .drawer {
    width: 100%;
    max-width: 100%;
  }
  .drawer-head {
    padding: 16px 16px 12px;
  }
  .checkout-shell {
    padding: 24px 14px 70px;
  }
  .pc-header {
    padding: 10px 12px;
    min-height: 56px;
    gap: 10px;
  }
  .pc-body-grid {
    gap: 16px;
  }
  .admin-wrap {
    padding: 20px 12px 60px;
  }
  .admin-form-grid {
    gap: 12px;
  }
  .product-modal {
    padding: 18px 14px 16px !important;
    margin: 12px;
    max-height: calc(100vh - 24px);
    overflow-y: auto;
  }
}

@media (max-width: 560px) {
  /* Hide desktop nav links — mobile menu takes over */
  .nav-links {
    display: none !important;
  }
  .hero-cta {
    flex-direction: column;
  }
  .hero-cta .btn {
    width: 100%;
  }
  .nav-actions .btn-ghost[href="/login"],
  .nav-actions .btn-primary[href="/register"] {
    padding: 8px 10px;
    font-size: 12.5px;
  }
  /* Stack lang/currency under logo area if needed */
  .site-nav {
    flex-wrap: wrap;
  }
  .footer-row {
    font-size: 13px;
  }
  .pay-methods {
    flex-wrap: wrap;
  }
}

/* Hamburger button */
.menu-toggle {
  display: none;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  border: 1px solid var(--blue-pale);
  background: var(--bg-tint);
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  padding: 0;
  transition: border-color .2s, background .2s, transform .25s var(--ease-spring);
}
.menu-toggle:hover {
  border-color: var(--blue);
  transform: translateY(-1px);
}
.menu-toggle svg {
  width: 20px;
  height: 20px;
  stroke: var(--text);
  stroke-width: 2;
  stroke-linecap: round;
  fill: none;
}
.menu-toggle[aria-expanded="true"] {
  border-color: var(--blue);
  background: var(--blue-pale);
}

/* Mobile slide-down panel */
.mobile-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--surface);
  border-bottom: 1px solid var(--blue-pale);
  box-shadow: 0 16px 32px -12px rgba(11,30,61,.18);
  padding: 12px 16px 18px;
  z-index: 45;
  animation: mobileMenuIn .28s var(--ease);
}
@keyframes mobileMenuIn {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}
.mobile-menu.open {
  display: block;
}
.mobile-menu a,
.mobile-menu .mobile-menu-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  transition: background .15s;
}
.mobile-menu a:hover,
.mobile-menu .mobile-menu-link:hover {
  background: var(--bg-tint);
}
.mobile-menu .mobile-menu-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px;
  padding-top: 12px;
  border-top: 1px solid var(--blue-pale);
}
.mobile-menu .mobile-menu-actions .btn {
  width: 100%;
  justify-content: center;
  text-align: center;
}

header.site {
  position: sticky;
}

@media (max-width: 720px) {
  .menu-toggle {
    display: flex;
  }
  /* On pages without nav-links, still show toggle only when we have links */
  .site-nav:not(:has(.nav-links)) .menu-toggle {
    display: none;
  }
}

/* Prevent horizontal overflow */
html, body {
  overflow-x: hidden;
  max-width: 100vw;
}

/* Product page / catalog cards on narrow screens */
@media (max-width: 480px) {
  .card .card-body,
  .card .card-info {
    padding: 12px 12px 14px;
  }
  .price-tag .name {
    font-size: 14px;
  }
  .price-tag .price {
    font-size: 15px;
  }
  .pm-banner {
    height: 100px !important;
  }
  .auth-card {
    padding: 20px 14px 18px;
  }
  .auth-card h1 {
    font-size: 22px;
  }
  .site-nav .btn {
    white-space: nowrap;
  }
}

/* Touch-friendly targets */
@media (pointer: coarse) {
  .nav-links a,
  .cat-tabs button,
  .subcat-tabs button,
  .cat-tab,
  .subcat-tab {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
  }
  .btn {
    min-height: 42px;
  }
  .cart-btn {
    min-width: 44px;
    min-height: 44px;
  }
}

/* Safe area for notched phones */
@supports (padding: max(0px)) {
  .site-nav {
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
  }
  .drawer {
    padding-bottom: env(safe-area-inset-bottom);
  }
  .mobile-menu {
    padding-left: max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
  }
}


/* Secondary pages (login, product, checkout…) — compact nav */
@media (max-width: 560px) {
  .site-nav .btn.btn-ghost {
    padding: 8px 10px;
    font-size: 12.5px;
  }
  .site-nav .switcher {
    order: 3;
    width: 100%;
    justify-content: flex-start;
    margin-top: 4px;
  }
  .site-nav:has(.switcher):not(:has(.nav-links)) {
    flex-wrap: wrap;
  }
}

/* Product detail body */
@media (max-width: 720px) {
  .pc-main, .pc-side {
    width: 100%;
  }
  .pc-param-row {
    grid-template-columns: 1fr !important;
    gap: 2px;
  }
  .pc-param-row dd {
    justify-content: flex-start !important;
    text-align: left !important;
  }
}

/* Checkout form fields */
@media (max-width: 560px) {
  .checkout-shell input,
  .checkout-shell select,
  .checkout-shell textarea {
    font-size: 16px; /* prevent iOS zoom */
  }
  .auth-card input,
  .auth-card select {
    font-size: 16px;
  }
}


/* --- desc block reorder + auto-translate --- */
.desc-block{padding-left:42px}
.desc-block .db-move{position:absolute;top:8px;left:8px;display:flex;flex-direction:column;gap:2px}
.desc-block .db-move button{width:24px;height:20px;border:1px solid var(--blue-pale);border-radius:6px;background:var(--surface);color:var(--text);font-size:10px;line-height:1;cursor:pointer;padding:0}
.desc-block .db-move button:hover:not(:disabled){background:var(--blue-pale);color:var(--blue)}
.desc-block .db-move button:disabled{opacity:.35;cursor:default}
.desc-block .db-auto-tr{margin-top:8px;font-size:12px;color:var(--gray);gap:8px}
.admin-auto-translate-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;background:var(--bg-tint);border-radius:12px;border:1px solid var(--blue-pale)}

/* --- owned badge on catalog cards --- */
.cc-owned{display:inline-flex;align-items:center;gap:4px;margin-left:auto;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:#dcfce7;color:#15803d;white-space:nowrap}
.catalog-card.has-banner .cc-owned{background:rgba(220,252,231,.92);color:#166534}
.catalog-card.is-owned{box-shadow:0 0 0 1.5px rgba(22,163,74,.35)}

/* --- checkout polish --- */
.checkout-shell{max-width:720px}
.co-layout{display:grid;gap:22px}
@media(min-width:860px){
  .checkout-shell{max-width:960px}
  .co-layout{grid-template-columns:1.1fr .9fr;align-items:start}
  .co-pay-col{position:sticky;top:88px}
}
.co-summary-card,.co-pay-card{background:var(--surface);border:1px solid var(--blue-pale);border-radius:18px;padding:18px 18px 16px}
.co-summary-title,.co-pay-title{font-size:13px;font-weight:700;color:var(--gray);text-transform:uppercase;letter-spacing:.04em;margin:0 0 12px}
.co-trust{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.co-trust span{font-size:11.5px;color:var(--gray);background:var(--bg-tint);border-radius:999px;padding:4px 10px}
.co-step{display:flex;gap:8px;margin-bottom:14px}
.co-step span{flex:1;height:4px;border-radius:999px;background:var(--blue-pale)}
.co-step span.on{background:var(--blue)}
.pay-option{transition:border-color .2s,box-shadow .2s,transform .15s}
.pay-option.active{box-shadow:0 0 0 2px var(--blue);border-color:var(--blue)}
.pay-option:not(.disabled):hover{transform:translateY(-1px)}
.card-form{background:var(--bg-tint);border-radius:14px;padding:14px;border:1px solid var(--blue-pale);margin-top:12px}
.co-pay-btn-wrap{margin-top:14px}
.co-secure-note{font-size:11.5px;color:var(--gray);margin-top:8px;text-align:center}
