/*
Theme Name: PWEncoder — PHP Source Code Protection & Licensing
Theme URI: https://puzzlesweb.com
Author: Saman Hosseini
Author URI: https://puzzlesweb.com
Description: PWEncoder turns WordPress into a complete workbench for protecting, encrypting and licensing PHP source code. It encrypts your PHP files with AES-256-GCM, signs every package (Ed25519 or HMAC-SHA256), and can lock a build to specific domains, set an expiry date and verify file integrity at runtime — so a copied or tampered file simply refuses to run. Four protection modes are available: Pure PHP (a self-contained file that runs anywhere, no loader required), Hybrid, Native Loader, and Shared Decoder — the cost-saver where you encode a single decoder file with ionCube and every other file becomes a thin stub that only runs alongside it. Encoded output follows the familiar ionCube layout: readable PHP on top, the encrypted block below. Additional features include token-based obfuscation with three safety levels, single-file or per-file (ZIP) output, custom header banners, batch builds, license management with offline validation, a server health self-test, audit logging, a REST API and a CLI. Everything is driven from a polished right-to-left Persian control panel rendered on a normal WordPress page — outside wp-admin — built entirely on WordPress core (custom tables, users, roles, capabilities and nonces). The encryption engine ships inside the theme; no external service is involved.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 8.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pwencoder
Tags: rtl-language-support, custom-colors, translation-ready, full-site-editing
*/

/* ---------- فونت وزیرمتن (پیوست‌شده، محلی) ---------- */
@font-face {
  font-family: 'Vazirmatn';
  src: url('assets/fonts/Vazirmatn-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Vazirmatn';
  src: url('assets/fonts/Vazirmatn-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Vazirmatn VF';
  src: url('assets/fonts/Vazirmatn-Variable.woff2') format('woff2-variations');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --pw-brand:#4f46e5; --pw-brand-2:#6366f1; --pw-ink:#0f172a; --pw-muted:#64748b;
}
html { scroll-behavior:smooth; }
body.pwenc-body, body.pw-home {
  margin:0;
  font-family:'Vazirmatn','Vazirmatn VF',Tahoma,'Segoe UI',system-ui,sans-serif;
  direction:rtl;
  color:var(--pw-ink);
  background:#0b1220;
}

/* ---------- صفحهٔ معرفی (index.php) ---------- */
.pw-home { min-height:100vh; display:flex; flex-direction:column; }
.pw-hero {
  flex:1; display:flex; align-items:center; justify-content:center; padding:2rem 1.25rem;
  background:
    radial-gradient(1100px 520px at 80% -10%, rgba(99,102,241,.28), transparent 60%),
    radial-gradient(900px 500px at 10% 110%, rgba(16,185,129,.18), transparent 60%),
    linear-gradient(160deg,#0b1220 0%,#111827 55%,#0b1220 100%);
}
.pw-hero-inner { width:100%; max-width:1060px; }
.pw-hero-top { display:flex; align-items:center; gap:.75rem; margin-bottom:1.6rem; }
.pw-logo { width:52px; height:52px; border-radius:14px; background:linear-gradient(135deg,var(--pw-brand),var(--pw-brand-2)); display:grid; place-items:center; font-size:26px; box-shadow:0 8px 30px rgba(79,70,229,.5); }
.pw-hero-top b { color:#fff; font-size:1.35rem; font-weight:700; }
.pw-hero-top small { display:block; color:#94a3b8; font-size:.8rem; }
.pw-hero h1 { color:#fff; font-size:clamp(1.9rem,4.6vw,3.2rem); line-height:1.35; margin:.2rem 0 1rem; font-weight:700; }
.pw-hero h1 span { background:linear-gradient(120deg,#a5b4fc,#6ee7b7); -webkit-background-clip:text; background-clip:text; color:transparent; }
.pw-hero p.lead { color:#cbd5e1; font-size:clamp(1rem,2.2vw,1.2rem); max-width:720px; line-height:2; margin:0 0 1.8rem; }
.pw-cta { display:flex; gap:.8rem; flex-wrap:wrap; align-items:center; }
.pw-btn { display:inline-flex; align-items:center; gap:.5rem; padding:.85rem 1.7rem; border-radius:12px; font-weight:700; font-size:1.02rem; text-decoration:none; border:1px solid transparent; transition:transform .12s ease, box-shadow .12s ease; }
.pw-btn.primary { background:linear-gradient(135deg,var(--pw-brand),var(--pw-brand-2)); color:#fff; box-shadow:0 10px 30px rgba(79,70,229,.45); }
.pw-btn.primary:hover { transform:translateY(-2px); box-shadow:0 14px 38px rgba(79,70,229,.55); }
.pw-btn.ghost { background:rgba(255,255,255,.06); color:#e2e8f0; border-color:rgba(255,255,255,.16); }
.pw-btn.ghost:hover { background:rgba(255,255,255,.12); }
.pw-note { color:#94a3b8; font-size:.9rem; margin-top:1rem; }

.pw-features { display:grid; grid-template-columns:repeat(4,1fr); gap:.9rem; margin-top:2.4rem; }
.pw-feature { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.09); border-radius:14px; padding:1rem 1.1rem; }
.pw-feature .ic { font-size:1.5rem; }
.pw-feature b { color:#fff; display:block; margin:.35rem 0 .2rem; font-size:.98rem; }
.pw-feature small { color:#94a3b8; font-size:.82rem; line-height:1.7; }

.pw-foot { text-align:center; color:#64748b; font-size:.82rem; padding:1rem; border-top:1px solid rgba(255,255,255,.06); }

@media (max-width:820px){ .pw-features { grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .pw-features { grid-template-columns:1fr; } .pw-cta { flex-direction:column; align-items:stretch; } .pw-btn { justify-content:center; } }
