/*
Theme Name: JaeSwift
Description: Personal blog and experiments theme. Page-based navigation, no infinite scroll.
Version: 0.1.0
Text Domain: jaeswift
*/
/* JaeSwift palette: dark base, lime + blue accents */
:root{
  --navy:#0d0d0d; --blue:#00e6ff; --purple:#141414; --violet:#00e6ff; --magenta:#00ffa3;
  --aqua:#00ffa3; --teal:#00e6ff; --mint:#00ffa3; --amber:#00ffa3; --orange:#00e6ff;
  --ink:#0d0d0d; --text:#ffffff; --muted:#cccccc; --card:rgba(255,255,255,0.04); --line:rgba(0,230,255,0.18);
  --grad:linear-gradient(135deg,#00ffa3 0%,#00e6ff 100%);
  --bg:linear-gradient(135deg,#0d0d0d 0%,#161616 100%);
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--ink);color:var(--text);font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;line-height:1.6}
a{color:var(--aqua);text-decoration:none;transition:color .2s ease}
a:hover{color:var(--mint)}
h1,h2,h3{font-family:'DM Serif Display',Georgia,serif;font-weight:400;line-height:1.15;margin:0 0 .5em}
img{max-width:100%;height:auto;display:block}
.wrap{width:min(1100px,92vw);margin:0 auto}

/* header */
.site-header{position:sticky;top:0;z-index:10;backdrop-filter:blur(10px);background:rgba(13,13,13,.75);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:16px;flex-wrap:wrap}
.brand{font-family:'DM Serif Display',serif;font-size:1.5rem;color:var(--text)}
.brand span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.nav ul{list-style:none;display:flex;gap:22px;margin:0;padding:0;flex-wrap:wrap}
.nav a{color:var(--text);font-weight:500;position:relative}
.nav a::after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:var(--grad);transition:width .3s ease}
.nav a:hover::after,.nav .current-menu-item a::after{width:100%}

/* hero: one screen, no scrolling */
.hero{min-height:calc(100vh - 70px);display:flex;align-items:center;position:relative;overflow:hidden;background:var(--bg);background-size:200% 200%;animation:drift 18s ease infinite}
.hero::before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at 20% 30%,rgba(0,255,163,.25),transparent 40%),radial-gradient(circle at 80% 70%,rgba(0,230,255,.12),transparent 45%);animation:pulse 8s ease-in-out infinite;pointer-events:none}
.hero .wrap{position:relative;z-index:1}
.eyebrow{font-family:'JetBrains Mono',monospace;color:var(--aqua);font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;opacity:0;animation:fadeUp .8s .1s ease forwards}
.hero h1{font-size:clamp(2.6rem,7vw,5.2rem);max-width:14ch;opacity:0;animation:fadeUp .9s .3s ease forwards}
.hero h1 .grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{color:var(--muted);font-size:1.15rem;max-width:52ch;opacity:0;animation:fadeUp .9s .5s ease forwards}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px;opacity:0;animation:fadeUp .9s .7s ease forwards}
.btn{display:inline-block;padding:12px 22px;border-radius:999px;font-weight:600;color:var(--ink);background:var(--grad);box-shadow:0 0 0 rgba(0,255,163,0);transition:transform .25s ease,box-shadow .25s ease;border:0}
.btn:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(0,255,163,.35);color:var(--ink)}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--aqua);color:var(--aqua);box-shadow:none}
.cursor::after{content:"|";margin-left:3px;color:var(--aqua);animation:blink 1s steps(1) infinite}

/* content pages */
.page-head{padding:64px 0 24px}
.page-head p{color:var(--muted);max-width:60ch}
main{padding-bottom:64px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease;opacity:0;animation:fadeUp .6s ease forwards}
.card:nth-child(2){animation-delay:.08s}.card:nth-child(3){animation-delay:.16s}.card:nth-child(4){animation-delay:.24s}
.card:hover{transform:translateY(-6px);border-color:var(--aqua);box-shadow:0 18px 40px rgba(0,230,255,.18)}
.card h2{font-size:1.45rem}
.card h2 a{color:var(--text)}
.card .meta{color:var(--muted);font-size:.85rem;margin-bottom:8px}
.card .more{display:inline-block;margin-top:10px;color:var(--mint);font-weight:600}
.entry{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:clamp(22px,4vw,44px);animation:fadeUp .7s ease both}
.entry .content{font-size:1.05rem}
.entry .content h2,.entry .content h3{color:var(--aqua);margin-top:1.4em}
.entry .content blockquote{border-left:3px solid var(--magenta);margin:1.2em 0;padding-left:16px;color:var(--muted)}
.entry .content code,.entry .content pre{font-family:'JetBrains Mono',monospace;background:rgba(0,0,0,.35);border-radius:8px}
.entry .content pre{padding:14px;overflow:auto}
.back{display:inline-block;margin-bottom:18px;color:var(--muted)}
.pagination{margin-top:40px;display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.pagination .page-numbers{padding:8px 14px;border-radius:999px;border:1px solid var(--line);color:var(--text)}
.pagination .page-numbers.current,.pagination .page-numbers:hover{background:var(--grad);color:var(--ink);border-color:transparent}

/* footer */
.site-footer{border-top:1px solid var(--line);padding:26px 0;color:var(--muted);font-size:.9rem}
.site-footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}

/* animations */
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes drift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes blink{50%{opacity:0}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}
