/*
Theme Name: Raju Portfolio
Author: Md Raju
Description: Personal web designer portfolio theme with a projects post type, Customizer-editable hero and stats, and a built-in contact form.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: raju
*/
html { scroll-behavior: smooth; }
body { background:#12123A; color:#F1F0FF; font-family:'Figtree',sans-serif; overflow-x:hidden; }
:focus-visible { outline:2px solid #FFC24B; outline-offset:3px; border-radius:6px; }

.bg-grid { position:fixed; inset:0; z-index:-3; pointer-events:none;
  background-image:linear-gradient(rgba(124,140,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(124,140,255,.07) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 80%); mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 80%); }
.spot { position:fixed; inset:0; z-index:-2; pointer-events:none;
  background:radial-gradient(520px circle at var(--mx,50%) var(--my,30%),rgba(124,140,255,.20),transparent 70%); }
.blob { position:fixed; z-index:-4; border-radius:50%; filter:blur(90px); opacity:.35; pointer-events:none; animation:drift 22s ease-in-out infinite alternate; }
@keyframes drift { to { transform:translate(60px,-80px) scale(1.15); } }
@keyframes floaty { 50% { transform:translateY(-12px); } }
@keyframes marquee { to { transform:translateX(-50%); } }
@keyframes rise { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:none; } }

.hero-in > * { opacity:0; animation:rise .8s cubic-bezier(.2,.7,.2,1) forwards; }
.hero-in > *:nth-child(1){animation-delay:.1s} .hero-in > *:nth-child(2){animation-delay:.25s}
.hero-in > *:nth-child(3){animation-delay:.4s} .hero-in > *:nth-child(4){animation-delay:.55s}

.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal.show { opacity:1; transform:none; }

.glow-card { position:relative; background:#1B1C4D; border:1px solid #2E3070; border-radius:20px; overflow:hidden; transition:transform .35s ease, border-color .35s ease; }
.glow-card::before { content:""; position:absolute; inset:0; opacity:0; transition:opacity .3s; z-index:1; pointer-events:none;
  background:radial-gradient(320px circle at var(--cx,50%) var(--cy,50%),rgba(255,194,75,.16),transparent 70%); }
.glow-card:hover { transform:translateY(-6px); border-color:#7C8CFF; }
.glow-card:hover::before { opacity:1; }

.btn-sun { background:#FFC24B; color:#12123A; transition:transform .25s, box-shadow .25s; display:inline-block; }
.btn-sun:hover { transform:translateY(-3px); box-shadow:0 12px 30px -8px rgba(255,194,75,.6); }
.btn-line { border:1px solid #7C8CFF; transition:background .25s, transform .25s; display:inline-block; }
.btn-line:hover { background:rgba(124,140,255,.15); transform:translateY(-3px); }

.nav-link { position:relative; }
.nav-link::after { content:""; position:absolute; left:0; bottom:-4px; height:2px; width:0; background:#FFC24B; transition:width .3s; }
.nav-link:hover::after { width:100%; }

.tilt { transition:transform .15s ease-out; transform-style:preserve-3d; will-change:transform; }
.chip-float { animation:floaty 5s ease-in-out infinite; }
.marquee-track { animation:marquee 28s linear infinite; width:max-content; }
.marquee:hover .marquee-track { animation-play-state:paused; }
.work-card { transition:opacity .35s ease, transform .35s ease, border-color .35s ease; }
.work-card.out { opacity:0; transform:scale(.92); }
.shot { transition:transform .6s ease; }
.glow-card:hover .shot { transform:scale(1.05) translateY(-4px); }
.step-line { transform-origin:left; transform:scaleX(0); transition:transform 1.2s ease; }
.reveal.show .step-line { transform:scaleX(1); }

/* Editor content (pages, posts, project descriptions) */
.rp-content { color:#B4B6E6; line-height:1.8; font-size:1.075rem; }
.rp-content > * + * { margin-top:1.2em; }
.rp-content h2,.rp-content h3 { font-family:'Bricolage Grotesque',sans-serif; font-weight:800; color:#F1F0FF; line-height:1.2; margin-top:2em; }
.rp-content h2 { font-size:1.9rem; } .rp-content h3 { font-size:1.4rem; }
.rp-content a { color:#FFC24B; text-decoration:underline; text-underline-offset:3px; }
.rp-content img { border-radius:16px; max-width:100%; height:auto; }
.rp-content ul { list-style:disc; padding-left:1.4em; } .rp-content ol { list-style:decimal; padding-left:1.4em; }
.rp-content blockquote { border-left:3px solid #FFC24B; padding-left:1.2em; color:#F1F0FF; }
.screen-reader-text { position:absolute; left:-9999px; }

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none !important; transition:none !important; }
  .reveal,.hero-in > * { opacity:1; transform:none; }
}
