/* Public template pages (/templates). Same tokens, nav and footer as the
   rest of gydmation.com; theme.css re-maps the tokens for light mode. */
:root{
  --bg:#0a0a0a;--bg-2:#141414;--bg-3:#1a1a1a;--bg-4:#212121;--border:rgba(255,255,255,.08);--border-2:rgba(255,255,255,.14);
  --text:#ececec;--text-2:rgba(236,236,236,.7);--text-3:rgba(236,236,236,.46);
  --accent:#5268fa;--accent-2:#8aa5ff;--accent-glow:rgba(82,104,250,.35);--success:#22c55e;
  --serif:'Space Grotesk',sans-serif;--sans:'IBM Plex Sans',sans-serif;--mono:'IBM Plex Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.65;overflow-x:hidden}
a{color:var(--accent-2);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px;border-radius:4px}
img,svg{display:block;max-width:100%}
.wrap{max-width:1080px;margin:0 auto;padding:0 28px}
.wrap.narrow{max-width:820px}
@media (max-width:640px){.wrap{padding:0 16px}}

/* ---------- nav (shared across every page) ---------- */
.nav-wrap{max-width:1180px;margin:0 auto;padding:0 28px}
@media (max-width:640px){.nav-wrap{padding:0 16px}}
nav{position:sticky;top:0;z-index:50;background:rgba(10,10,10,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-weight:600;font-size:1.02rem;color:var(--text)}
.brand:hover{text-decoration:none}
.brand-mark{width:26px;height:26px;border-radius:7px;flex-shrink:0;object-fit:contain;background:#050505}
.nav-links{display:flex;align-items:center;gap:30px;font-size:.87rem;color:var(--text-2)}
.nav-links a{color:var(--text-2);text-decoration:none}
.nav-links a:hover,.nav-links a[aria-current]{color:var(--text)}
@media (max-width:860px){.nav-links{display:none}}
.nav-cta{padding:9px 18px;border-radius:8px;background:var(--accent);color:#fff;font-size:.85rem;font-weight:500;text-decoration:none;transition:background .15s ease}
.nav-cta:hover{background:#4257e0;text-decoration:none}
.nav-burger{display:none;background:none;border:none;padding:8px;margin:-8px -6px -8px -4px;cursor:pointer;color:var(--text);align-items:center;justify-content:center}
.nav-burger svg{width:22px;height:22px;stroke:currentColor;stroke-width:2}
@media (max-width:860px){.nav-burger{display:flex}.nav-cta{display:none}}
.mobile-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg-2);border-bottom:1px solid var(--border);flex-direction:column;padding:6px 20px 20px;max-height:calc(100vh - 64px);overflow-y:auto;box-shadow:0 20px 40px -20px rgba(0,0,0,.6)}
.mobile-nav.open{display:flex}
.mobile-nav a{padding:13px 2px;color:var(--text-2);font-size:.95rem;border-bottom:1px solid var(--border);text-decoration:none}
.mobile-nav-cta{background:var(--accent)!important;color:#fff!important;text-align:center;border-radius:8px;margin-top:10px;border-bottom:none!important;font-weight:500}

/* ---------- page header ---------- */
.crumbs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.8rem;color:var(--text-3);padding-top:28px}
.crumbs a{color:var(--text-3)}
.crumbs a:hover{color:var(--accent-2)}
.crumbs span[aria-hidden]{opacity:.6}
.hero{padding:22px 0 8px}
.eyebrow{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-2)}
h1{font-family:var(--serif);font-weight:700;font-size:clamp(1.7rem,4vw,2.5rem);letter-spacing:-.02em;line-height:1.15;margin-top:10px;overflow-wrap:anywhere}
.lede{margin-top:14px;color:var(--text-2);font-size:1.02rem;max-width:68ch}
.facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.fact{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:var(--bg-2);border:1px solid var(--border-2);font-size:.78rem;color:var(--text-2)}
.fact svg{width:13px;height:13px;stroke:var(--accent-2)}
.fact.free{border-color:rgba(34,197,94,.4);color:var(--success)}
.fact.pro{border-color:rgba(138,165,255,.45);color:var(--accent-2)}

h2{font-family:var(--serif);font-weight:600;font-size:1.2rem;margin-bottom:12px}
section{padding-top:36px}
p{color:var(--text-2);font-size:.95rem}
main{padding-bottom:72px}

/* ---------- template page ---------- */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:start}
@media (max-width:900px){.layout{grid-template-columns:1fr;gap:0}}
.side{position:sticky;top:88px;margin-top:36px}
@media (max-width:900px){.side{position:static}}
.cta-card{background:linear-gradient(160deg,rgba(82,104,250,.16),var(--bg-2) 60%);border:1px solid var(--border-2);border-radius:14px;padding:22px}
.cta-card h2{font-size:1.05rem;margin-bottom:8px}
.cta-card p{font-size:.86rem}
.cta-card .plan{margin:14px 0 4px;font-size:.82rem;color:var(--text-2)}
.cta-card .plan strong{color:var(--text)}
.btn{display:flex;justify-content:center;align-items:center;gap:8px;width:100%;padding:11px 16px;border-radius:9px;font-size:.88rem;font-weight:500;margin-top:10px;text-decoration:none;transition:background .15s ease,border-color .15s ease}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:#4257e0}
.btn-ghost{border:1px solid var(--border-2);color:var(--text)}
.btn-ghost:hover{border-color:var(--accent-2)}

.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 6px;border-radius:8px;background:var(--bg-2);border:1px solid var(--border);font-size:.84rem;color:var(--text);text-decoration:none}
a.chip:hover{border-color:rgba(138,165,255,.45);text-decoration:none}

.flow{list-style:none;display:grid;gap:8px;position:relative}
.flow li{display:flex;align-items:center;gap:12px;padding:9px 14px 9px 10px;background:var(--bg-2);border:1px solid var(--border);border-radius:11px;font-size:.9rem;color:var(--text);transition:border-color .2s ease}
.flow li:hover{border-color:var(--border-2)}
.flow .st{flex:1;min-width:0;overflow-wrap:anywhere}
.flow .sn{font-family:var(--mono);font-size:.72rem;color:var(--text-3)}
.flow li.more{color:var(--text-3)}
.note{margin-top:10px;font-size:.84rem;color:var(--text-3)}

.need{list-style:none;display:grid;gap:8px}
.need li{position:relative;padding-left:22px;color:var(--text-2);font-size:.92rem}
.need li::before{content:'';position:absolute;left:4px;top:.6em;width:7px;height:7px;border-radius:2px;background:var(--accent-2)}

.prompts{display:grid;gap:8px}
.prompt{font-family:var(--mono);font-size:.82rem;color:var(--text);background:var(--bg-2);border:1px dashed var(--border-2);border-radius:10px;padding:11px 14px}

/* ---------- cards & grids ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.card{display:flex;flex-direction:column;gap:10px;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:16px 18px;color:var(--text);text-decoration:none;transition:transform .2s ease,border-color .2s ease,background .2s ease}
.card:hover{transform:translateY(-3px);border-color:rgba(138,165,255,.35);background:var(--bg-3);text-decoration:none}
.card h3{font-size:.95rem;font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.card p{font-size:.84rem;color:var(--text-2);line-height:1.55}
.card .meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px}
.tag{font-size:.72rem;padding:3px 8px;border-radius:6px;background:var(--bg-4);color:var(--text-2)}
.tag.free{background:rgba(34,197,94,.12);color:var(--success)}
.tag.pro{background:rgba(82,104,250,.14);color:var(--accent-2)}
@media (prefers-reduced-motion:reduce){.card,.card:hover{transition:none;transform:none}}
/* Whole card opens the template; Install / Pricing sit above that link. */
.card{position:relative}
.card h3 a{color:inherit;text-decoration:none}
.card-link::after{content:'';position:absolute;inset:0;border-radius:12px}
.card-link:focus-visible{outline:none}
.card:has(.card-link:focus-visible){outline:2px solid var(--accent-2);outline-offset:3px}
.card-cta{position:relative;z-index:1;display:flex;gap:8px;padding-top:12px;margin-top:2px;border-top:1px solid var(--border)}
.mini{flex:1;display:inline-flex;justify-content:center;align-items:center;padding:7px 10px;border-radius:8px;font-size:.8rem;font-weight:500;
  border:1px solid var(--border-2);color:var(--text);text-decoration:none;transition:background .15s ease,border-color .15s ease}
.mini:hover{border-color:var(--accent-2);text-decoration:none}
.mini-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.mini-primary:hover{background:#4257e0;border-color:#4257e0}
.more-box{margin-top:28px;padding:24px;border-radius:14px;border:1px solid rgba(138,165,255,.3);
  background:radial-gradient(120% 140% at 0% 0%,rgba(82,104,250,.22),transparent 55%),var(--bg-2);
  display:flex;flex-wrap:wrap;gap:18px 28px;align-items:center;justify-content:space-between}
.more-box>div:first-child{flex:1 1 360px}
.more-box h2{margin:0 0 6px;font-size:1.15rem}
.more-box p{font-size:.88rem}
.more-cta{display:flex;flex-wrap:wrap;gap:10px}
.more-cta .btn{width:auto;margin:0;padding:11px 18px}
@media (max-width:520px){.more-cta{width:100%}.more-cta .btn{flex:1}}
html[data-theme="light"] .more-box{border-color:rgba(77,99,247,.25);background:radial-gradient(120% 140% at 0% 0%,rgba(77,99,247,.12),transparent 55%),var(--bg-2)}

.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.tile{display:flex;align-items:center;gap:12px;padding:11px 14px;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:.9rem;text-decoration:none}
.tile:hover{border-color:rgba(138,165,255,.4);text-decoration:none}
.tile b{flex:1;min-width:0;font-weight:500;line-height:1.3}
.tile>span:last-child{font-family:var(--mono);font-size:.76rem;color:var(--text-3)}
.tile{transition:border-color .2s ease,transform .2s ease,background .2s ease}
.tile:hover{transform:translateY(-2px);background:var(--bg-3)}
@media (prefers-reduced-motion:reduce){.tile,.tile:hover{transition:none;transform:none}}

.search{position:relative;margin-top:22px;max-width:620px}
.search input{width:100%;padding:14px 16px 14px 44px;border-radius:12px;border:1px solid var(--border-2);background:var(--bg-2);color:var(--text);font:inherit;font-size:.95rem}
.search input:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 3px var(--accent-glow)}
.search svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:18px;height:18px;stroke:var(--text-3)}
.results-info{margin-top:10px;font-size:.84rem;color:var(--text-3);min-height:1.3em}
.stats{display:flex;flex-wrap:wrap;gap:28px;margin-top:22px}
.stat strong{display:block;font-family:var(--serif);font-size:1.5rem;color:var(--text)}
.stat span{font-size:.8rem;color:var(--text-3)}

.banner{margin-top:40px;padding:24px;border-radius:14px;border:1px solid var(--border-2);background:linear-gradient(120deg,rgba(82,104,250,.18),var(--bg-2) 70%);display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between}
.banner h2{margin:0 0 4px}
.banner .btn{width:auto;margin:0}

/* ---------- logos ---------- */
/* Every brand logo sits on a white tile, so dark marks (GitHub, X, Notion,
   OpenAI) stay readable on the dark theme and the set looks uniform. */
.lg{--s:28px;--p:5px;width:var(--s);height:var(--s);flex-shrink:0;display:inline-grid;place-items:center;padding:var(--p);
  border-radius:calc(var(--s) * .28);background:#fff;border:1px solid rgba(15,23,42,.08);
  box-shadow:0 1px 2px rgba(0,0,0,.18);overflow:hidden;box-sizing:border-box}
.lg img{width:100%;height:100%;object-fit:contain;display:block}
.lg-xs{--s:20px;--p:3px}
.lg-sm{--s:28px;--p:5px}
.lg-md{--s:38px;--p:7px}
.lg-lg{--s:52px;--p:10px}
.lg-xl{--s:72px;--p:14px}
.lg-full{padding:0}
.lg-full img{object-fit:cover}
.lg-letter{border:none;color:#fff;font-family:var(--serif);font-weight:700;font-size:calc(var(--s) * .44);line-height:1;
  background:linear-gradient(135deg,hsl(var(--h) 62% 56%),hsl(calc(var(--h) + 28) 58% 42%))}
.lg-core{background:var(--bg-3);border:1px solid var(--border-2);box-shadow:none;color:var(--accent-2)}
.lg-core svg{width:62%;height:62%}
.lg-more{background:var(--bg-4);border:1px solid var(--border-2);box-shadow:none;color:var(--text-2);font-family:var(--mono);font-size:calc(var(--s) * .34)}
.stack{display:flex;align-items:center}
.stack .lg{box-shadow:0 0 0 2px var(--bg-2)}
.stack .lg + .lg{margin-left:-6px}
.card:hover .stack .lg{box-shadow:0 0 0 2px var(--bg-3)}
.cluster{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}
.cluster .lg{box-shadow:0 8px 22px -12px rgba(0,0,0,.55)}
.cb{--s:28px;width:var(--s);height:var(--s);flex-shrink:0;display:inline-grid;place-items:center;border-radius:calc(var(--s) * .28);
  background:linear-gradient(135deg,var(--accent),#3546c9);color:#fff;box-shadow:0 8px 20px -12px var(--accent-glow)}
.cb svg{width:56%;height:56%}
.cb-sm{--s:28px}
.cb-lg{--s:60px}
.strip{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:22px}
.strip>span{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}
.strip-logos{display:flex;flex-wrap:wrap;gap:8px}
.strip-logos a{display:block;transition:transform .2s ease}
.strip-logos a:hover{transform:translateY(-3px)}
@media (prefers-reduced-motion:reduce){.strip-logos a,.strip-logos a:hover{transition:none;transform:none}}
html[data-theme="light"] .lg{box-shadow:0 1px 2px rgba(15,23,42,.08);border-color:rgba(15,23,42,.1)}
html[data-theme="light"] .lg-letter{border:none}
html[data-theme="light"] .cluster .lg{box-shadow:0 8px 22px -14px rgba(15,23,42,.3)}

/* ---------- footer (shared across every page) ---------- */
.foot-wrap{max-width:1180px;margin:0 auto;padding:0 28px}
@media (max-width:640px){.foot-wrap{padding:0 16px}}
footer{position:relative;border-top:1px solid var(--border);padding:64px 0 0}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;padding-bottom:44px}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr 1fr;row-gap:32px}}
@media (max-width:480px){.foot-grid{grid-template-columns:1fr}}
.foot-tagline{margin-top:14px;color:var(--text-3);font-size:.86rem;max-width:30ch;line-height:1.6}
.foot-col h4{font-size:.74rem;font-weight:600;color:var(--text-3);margin-bottom:14px;letter-spacing:.07em;text-transform:uppercase}
.foot-col ul{list-style:none}
.foot-col li + li{margin-top:10px}
.foot-col a{font-size:.87rem;color:var(--text-2)}
.foot-col a:hover{color:var(--accent-2)}
.foot-legal{border-top:1px solid var(--border);padding:20px 0;font-size:.8rem;color:var(--text-3)}
