/* freeresource front — dark violet glass explore grid */
.fr{--bg:#141021;--glass:rgba(255,255,255,.045);--line:rgba(255,255,255,.09);--fg:#ece9f8;--mut:#a49cc4;--vio:#8b5cf6;--vio2:#a78bfa;max-width:1200px;margin:0 auto;padding:0 24px 30px;color:var(--fg)}
.fr a{text-decoration:none;color:inherit}
.fr-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding:52px 0 36px}
.fr-kicker{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.09em;color:var(--vio2);background:rgba(139,92,246,.14);border:1px solid rgba(139,92,246,.3);border-radius:999px;padding:5px 14px;margin-bottom:14px}
.fr-hero h1{font-size:clamp(29px,3.9vw,45px);line-height:1.14;letter-spacing:-.02em;margin:0 0 14px;font-weight:800}
.fr-hero h1 em{font-style:normal;background:linear-gradient(100deg,#a78bfa,#67e8f9);-webkit-background-clip:text;background-clip:text;color:transparent}
.fr-hero .lead{font-size:15.5px;line-height:1.65;color:var(--mut);margin:0 0 22px;max-width:480px}
.fr-ctas{display:flex;gap:12px;flex-wrap:wrap}
.fr-btn{padding:12px 22px;border-radius:12px;font-weight:700;font-size:14px}
.fr-btn-primary{background:var(--vio);color:#fff!important;box-shadow:0 8px 26px rgba(139,92,246,.4)}
.fr-btn-primary:hover{background:#7c3aed;transform:translateY(-2px)}
.fr-btn-ghost{border:1.5px solid var(--line);color:var(--fg)!important}
.fr-btn-ghost:hover{border-color:var(--vio);color:var(--vio2)!important}
.fr-stack{background:var(--glass);border:1px solid var(--line);border-radius:20px;padding:20px;backdrop-filter:blur(10px)}
.fr-stacktitle{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--mut);margin-bottom:10px}
.fr-srow{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px dashed rgba(255,255,255,.08);font-size:13.5px}
.fr-srow:first-of-type{border-top:none}
.fr-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.fr-dot.g{background:#34d399;box-shadow:0 0 8px rgba(52,211,153,.7)}
.fr-dot.y{background:#fbbf24;box-shadow:0 0 8px rgba(251,191,36,.7)}
.fr-diff{margin-left:auto;font-size:9.5px;font-weight:800;letter-spacing:.07em;color:var(--mut);border:1px solid var(--line);border-radius:999px;padding:3px 9px}
.fr-sechead{display:flex;align-items:baseline;justify-content:space-between;margin:36px 0 18px}
.fr-sechead h2{font-size:22px;margin:0;font-weight:800;letter-spacing:-.01em}
.fr-sechead a{font-size:13px;font-weight:700;color:var(--vio2)!important}
.fr-wall{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.fr-tool{background:var(--glass);border:1px solid var(--line);border-radius:18px;padding:18px;backdrop-filter:blur(8px);display:flex;flex-direction:column;gap:8px;transition:.2s}
.fr-tool:hover{transform:translateY(-4px);border-color:rgba(139,92,246,.55);box-shadow:0 16px 40px rgba(139,92,246,.18)}
.fr-tooltop{display:flex;align-items:center;gap:10px}
.fr-ic{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,rgba(139,92,246,.35),rgba(103,232,249,.18));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;color:#fff;flex-shrink:0}
.fr-tname{font-weight:800;font-size:15px;font-family:"Cascadia Code",Consolas,monospace}
.fr-tcat{font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--vio2);background:rgba(139,92,246,.15);border-radius:999px;padding:2px 9px;margin-left:auto}
.fr-tdesc{font-size:12.5px;color:var(--mut);line-height:1.55;flex:1}
.fr-tmeta{display:flex;gap:8px;flex-wrap:wrap}
.fr-chip{font-size:10px;font-weight:700;color:var(--fg);background:rgba(255,255,255,.07);border-radius:6px;padding:3px 8px}
.fr-chip.st{color:#fbbf24}
.fr-posts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.fr-post{background:var(--glass);border:1px solid var(--line);border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:8px;transition:.2s;backdrop-filter:blur(8px)}
.fr-post:hover{transform:translateY(-4px);border-color:rgba(139,92,246,.55)}
.fr-post h3{margin:0;font-size:14.5px;line-height:1.5;font-weight:700}
.fr-post h3 a:hover{color:var(--vio2)!important}
.fr-post time{font-size:10.5px;color:#6f6594;margin-top:auto}
.fr-pill{align-self:flex-start;font-size:9.5px;font-weight:800;letter-spacing:.06em;color:var(--vio2);background:rgba(139,92,246,.15);border-radius:999px;padding:3px 10px}
.fr-band{margin:42px 0 10px;background:linear-gradient(115deg,rgba(139,92,246,.35),rgba(103,232,249,.12));border:1px solid rgba(139,92,246,.4);border-radius:22px;padding:32px 36px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;backdrop-filter:blur(8px)}
.fr-band h2{margin:0 0 4px;font-size:20px}
.fr-band p{margin:0;opacity:.9;font-size:13.5px}
.fr-band a{background:#fff;color:#6d28d9!important;font-weight:800;padding:12px 22px;border-radius:12px;font-size:14px}
@media(max-width:900px){.fr-hero{grid-template-columns:1fr;padding-top:34px}.fr-wall,.fr-posts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.fr-wall,.fr-posts{grid-template-columns:1fr}}

/* deco7 patch: Kadence heading color override + button stretch fix */
.fr h1, .fr h2, .fr h3, .fr h4 { color: #ece9f8 !important; }
.fr, .fr p, .fr span, .fr div { text-align: left; }
.fr-hero .fr-ctas { justify-content: flex-start; }
.fr .fr-btn { display: inline-block; width: auto; flex: 0 0 auto; }
