/* === Stylesheet overview ===
   - Design tokens (colors, spacing, shadows)
   - Base / reset & typography
   - Layout utilities
   - Components: buttons, cards, LinkedIn CTA, badges
   - Sections: hero, experience, education, certs, recs
   - Responsive tweaks
*/
/* Premium minimal theme (v7) */
:root{
  --ink:#0b1020; --ink-2:#2b2f42; --muted:#6b7280; --line:#e7e9ee; --paper:#ffffff;
  --brand:#1f2bff; --accent:#5b2de1;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;color:var(--ink);background:var(--paper);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:var(--brand);text-decoration:none}
.section{padding:4rem 1.2rem;max-width:1100px;margin:0 auto}
h1,h2,h3{line-height:1.15;margin:0 0 .6rem}
h1{font-weight:900;font-size:clamp(2.6rem,4vw,3.4rem);letter-spacing:-.02em}
h2{font-weight:900;font-size:clamp(1.6rem,2.8vw,2.1rem)}
h3{font-weight:800;font-size:1.15rem}
.tagline{color:var(--ink-2);font-weight:700}
.lede{max-width:70ch;color:var(--ink-2)}

.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.7);backdrop-filter:saturate(160%) blur(10px);display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;border-bottom:1px solid var(--line);transition:box-shadow .25s ease}
.site-header.is-elevated{box-shadow:0 8px 30px rgba(15,20,35,.07)}
.brand{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:999px;position:relative}
.mark{font-weight:900;letter-spacing:.06em;color:var(--ink)}
.brand::before{content:"";position:absolute;inset:0;border-radius:999px;padding:2px;background:linear-gradient(135deg,#0b0f26,var(--brand),var(--accent));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.9}

.nav-list{list-style:none;display:flex;gap:.3rem;margin:0;padding:0;align-items:center}
.nav-list a{position:relative;padding:.7rem .9rem;border-radius:999px;font-weight:700;color:var(--ink)}
.nav-list a::after{content:"";position:absolute;left:14px;right:14px;bottom:8px;height:2px;background:transparent;border-radius:2px;transition:background .2s}
.nav-list a:hover::after{background:linear-gradient(90deg,var(--brand),var(--accent))}
.nav-list a.active::after{background:linear-gradient(90deg,var(--brand),var(--accent))}
.menu-btn{display:none;background:none;border:0;font-size:1.4rem}
.cta{background:linear-gradient(45deg,var(--brand),var(--accent));color:#fff !important;padding:.6rem 1rem;border-radius:12px;font-weight:800;border:0;box-shadow:0 10px 26px rgba(38,56,255,.25)}

.hero{display:grid;gap:2rem;grid-template-columns:1.2fr .8fr;align-items:center}
.portrait.modern{--size:min(75vw,420px);width:var(--size);height:var(--size);margin:0 auto;border-radius:28px;overflow:hidden;position:relative;border:1px solid var(--line);box-shadow:0 24px 64px rgba(12,18,40,.10)}
.portrait.modern::before{content:"";position:absolute;inset:-1px;border-radius:30px;padding:2px;background:linear-gradient(140deg,rgba(31,43,255,.35),rgba(91,45,225,.3));-webkit-mask:linear-gradient(#0000,#000) content-box,linear-gradient(#000,#000);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.portrait.modern img{width:100%;height:100%;object-fit:cover;transform:scale(1.02) translateY(2px)}

.facts{list-style:none;margin:1rem 0 0;padding:0;color:var(--muted)}
.facts li{margin:.15rem 0}
.cta-row{display:flex;flex-wrap:wrap;gap:.9rem;padding:0;margin-top:.25rem}
.btn{display:inline-block;background:linear-gradient(45deg,var(--brand),var(--accent));color:#fff;padding:.7rem 1rem;border-radius:12px;font-weight:800;border:0;box-shadow:0 10px 26px rgba(38,56,255,.25)}
.btn.ghost{background:#fff;color:var(--brand);border:1px solid var(--brand);box-shadow:none}
.linkedin-cta{display:inline-flex;align-items:center;gap:.6rem;border:1px solid var(--line);padding:.6rem .8rem;border-radius:999px;background:#fff;font-weight:800}
.linkedin-cta .avatar{width:28px;height:28px;border-radius:999px;object-fit:cover}
.linkedin-cta .lk{width:18px;height:18px}

.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.1rem 1.25rem;box-shadow:0 6px 18px rgba(15,20,35,.03)}
.meta{color:var(--muted);font-size:.95rem}
.timeline{display:grid;gap:1rem}
.highlights{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}
.highlights span{padding:.4rem .6rem;border-radius:999px;border:1px solid var(--line);font-weight:700;background:linear-gradient(180deg,#fff,#f7f8fd)}

.skills-grid{display:flex;flex-wrap:wrap;gap:.6rem}
.skills-grid span{padding:.55rem .75rem;border-radius:999px;border:1px solid var(--line);background:linear-gradient(180deg,#fff,#f7f8fd);font-weight:700}

.list{margin:0 0 0 1.1rem}
.list li{padding:.3rem 0;font-weight:600;color:var(--ink)}

.cols{columns:2;column-gap:1.25rem}
.cols li{break-inside:avoid;padding:.3rem 0}

.contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem}
.card.pro{border:2px solid rgba(38,56,255,.18)}
.linkout{display:flex;align-items:center;gap:.8rem}
.linkout .avatar{width:48px;height:48px;border-radius:999px;object-fit:cover}
.linkout .lk{width:20px;height:20px}
.linkedin-only .title{font-weight:800}

.site-footer{padding:2rem 1rem;border-top:1px solid var(--line);text-align:center;color:var(--muted)}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease}
.reveal.is-visible{opacity:1;transform:none}

@media (max-width: 880px){
  .hero{grid-template-columns:1fr}
  .nav-list{display:none;position:absolute;right:1rem;top:58px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.5rem;flex-direction:column;min-width:240px}
  .menu-btn{display:block}
  .nav-list.show{display:flex}
}

/* v6.1 tweaks */
.contact.single{grid-template-columns:minmax(320px,560px);max-width:620px}
.linkedin-card .title{font-weight:900;font-size:1.05rem}

/* v6.3 updates */
.brand-img{height:40px;width:auto;display:block}
.title-row{display:flex;align-items:center;gap:.6rem}
.co-logo{width:28px;height:28px;object-fit:contain}
.edu-badge{margin:.5rem 0 1rem}
.edu-logo{width:48px;height:48px;object-fit:contain;border-radius:8px}

.recs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}
.rec-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem 1.1rem;box-shadow:0 6px 18px rgba(15,20,35,.03)}
.rec-card .role{font-weight:800;color:var(--ink);margin-bottom:.4rem}
.rec-card .excerpt{color:var(--ink-2)}
.rec-card input{display:none}
.rec-card .toggle{display:inline-block;margin-top:.4rem;font-weight:800;color:var(--brand);cursor:pointer}
.rec-card .full{max-height:0;overflow:hidden;transition:max-height .3s ease;color:var(--ink-2)}
.rec-card input:checked ~ .full{max-height:320px;margin-top:.4rem}

/* v6.4 header logo */
.brand{width:auto;height:auto;padding:0;border:none}
.brand::before{display:none !important;content:none !important}
.brand-img{height:52px;width:auto;display:block}

/* CTA row third button spacing */
.cta-row .btn + .btn{margin-left:.6rem}

/* Experience cards already styled */

/* Education list with TU badge per item */
.edu-list{list-style:none;margin:0;padding:0}
.edu-list li{display:flex;align-items:center;gap:.6rem;padding:.45rem 0}
.edu-dot{width:26px;height:26px;object-fit:cover;border-radius:999px;border:1px solid var(--line)}

/* Recommendations — full-width cards like Experience */
.rec-list{display:grid;grid-template-columns:1fr;gap:1rem}
.rec.card{padding:1.1rem 1.25rem}
.rec .rec-text{color:var(--ink-2);margin:.6rem 0 0;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.rec.expanded .rec-text{-webkit-line-clamp:unset;overflow:visible}
.read-more{margin-top:.6rem;background:none;border:0;color:var(--brand);font-weight:800;cursor:pointer;padding:0}
.read-more:hover{text-decoration:underline}

/* Company logo icon size */
.co-logo{width:32px;height:32px;object-fit:contain}

/* Mobile */
@media (max-width: 880px){
  .brand-img{height:40px}
  .rec-list{grid-template-columns:1fr}
}

/* v6.5 tidy footer + unified titles */
.site-footer{padding:1.2rem 1rem !important;margin-top:1.4rem !important;border-top:1px solid var(--line)}
/* reduce the last section's bottom padding a touch */
.section:last-of-type{padding-bottom:2.5rem}

/* Ensure all section titles look identical */
.section h2{font-size:2.25rem;font-weight:900;letter-spacing:-0.02em;margin:0 0 1rem 0;color:var(--ink)}

/* v6.7 — Recommendations typography and styling */
.rec h3{font-weight:400;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px;text-decoration-color:var(--line)}
.rec .rec-text{font-style:italic;position:relative;padding-left:2.2rem}
.rec .rec-text::before{
  content:"\201C"; /* left double quotation mark */
  position:absolute;left:.2rem;top:-.15rem;
  font-size:2.2rem;line-height:1;color:#B7BBDC;
  font-weight:700
}
.rec.expanded .rec-text::after{
  content:""; /* no closing mark to avoid duplication when long */
}

/* v6.8 — modern LinkedIn button */
.btn-linkedin{
  --bd: linear-gradient(#fff,#fff) padding-box,
        linear-gradient(135deg, var(--brand), #5b2de1) border-box;
  display:inline-flex; align-items:center; gap:.7rem;
  padding:.55rem .9rem; border-radius:999px;
  border:2px solid transparent; background:var(--bd);
  text-decoration:none; color:var(--ink); font-weight:800;
  box-shadow:0 8px 28px rgba(23,10,56,.08), inset 0 0 0 1px rgba(20,20,40,.02);
  transition:transform .18s ease, box-shadow .18s ease;
}
.btn-linkedin .label{letter-spacing:.2px}
.btn-linkedin .arrow{width:18px;height:18px;opacity:.65}
.btn-linkedin:hover{transform:translateY(-1px); box-shadow:0 12px 34px rgba(23,10,56,.12), inset 0 0 0 1px rgba(20,20,40,.03)}
.btn-linkedin:active{transform:translateY(0) scale(.99)}

/* avatar + LinkedIn badge */
.photo-badge{position:relative; width:32px; height:32px; flex:0 0 32px}
.photo-badge .face{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}
.photo-badge .lk{position:absolute; right:-4px; bottom:-4px; width:16px; height:16px; border-radius:4px; box-shadow:0 0 0 2px #fff}

/* dark backgrounds fallback */
@media (max-width:880px){
  .btn-linkedin{padding:.52rem .9rem}
}

/* v6.9 adjustments */
.contact.single{justify-items:start}
.contact.single .btn-linkedin{justify-self:start}

/* v6.10: removed contact section; no style changes needed */

/* v6.11 — upgraded LinkedIn CTA and hover interactions */

/* Animated gradient-border pill with shape morph & subtle glow */
.cta-linkedin{
  --ring: conic-gradient(from 210deg at 50% 50%, #4f46e5, #2563eb, #22c1f1, #6d28d9, #4f46e5);
  display:inline-grid; grid-auto-flow:column; align-items:center; gap:.7rem;
  position:relative; isolation:isolate;
  padding:.55rem .95rem; border-radius:999px;
  color:var(--ink); text-decoration:none; font-weight:800;
  background:linear-gradient(#fff,#fff) padding-box;
}
/* ring layer */
.cta-linkedin::before{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:2px;
  background:var(--ring); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; z-index:-1;
  transition:filter .4s ease, opacity .25s ease, border-radius .25s ease;
  opacity:.95;
}
/* soft glow */
.cta-linkedin::after{
  content:""; position:absolute; inset:-6px; border-radius:inherit; z-index:-2;
  background:radial-gradient(28% 60% at 10% 20%, rgba(99,102,241,.22), transparent 60%),
             radial-gradient(28% 60% at 90% 80%, rgba(59,130,246,.22), transparent 60%);
  opacity:.0; transition:opacity .25s ease;
}

.cta-linkedin .avatar-wrap{position:relative; width:32px; height:32px}
.cta-linkedin .avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px #fff}
.cta-linkedin .badge{position:absolute; right:-4px; bottom:-4px; width:16px; height:16px; border-radius:4px; box-shadow:0 0 0 2px #fff}
.cta-linkedin .chev{width:18px;height:18px;opacity:.7; transition:transform .25s ease, opacity .25s ease}

/* Motion + morph on hover */
@keyframes spinHue{to{filter:hue-rotate(360deg)}}
.cta-linkedin:hover{transform:translateY(-1px)}
.cta-linkedin:hover::before{animation:spinHue 6s linear infinite}
.cta-linkedin:hover::after{opacity:.8}
.cta-linkedin:hover .chev{transform:translateX(3px);opacity:1}
.cta-linkedin:active{transform:translateY(0) scale(.98)}

/* Responsive size */
@media (max-width: 520px){
  .cta-linkedin{padding:.5rem .8rem}
  .cta-linkedin .avatar-wrap{width:28px;height:28px}
  .cta-linkedin .avatar{width:28px;height:28px}
  .cta-linkedin .badge{width:14px;height:14px}
}

/* CTA buttons (Experience / Education / Recommendations) — shape & color on hover */
.btn, .btn.ghost{
  transition: border-radius .25s ease, transform .2s ease, box-shadow .2s ease, background .25s ease, color .25s ease, border-color .25s ease;
  border-radius:18px;
}
.btn:hover{
  border-radius:26px;
  transform:translateY(-1px);
  box-shadow:0 14px 30px rgba(51,64,165,.22);
  background:linear-gradient(90deg, #4f46e5, #7c3aed);
}
.btn.ghost{background:#fff}
.btn.ghost:hover{
  border-radius:24px;
  transform:translateY(-1px);
  background:radial-gradient(120% 160% at 0% 0%, rgba(99,102,241,.12), transparent 40%),
             radial-gradient(120% 160% at 100% 100%, rgba(59,130,246,.12), transparent 40%);
  color:var(--ink);
  box-shadow:0 12px 26px rgba(23,10,56,.08);
}

/* v6.12 — LinkedIn CTA: stronger hover/active states and accessibility */
.cta-linkedin{
  --ring: conic-gradient(from 210deg at 50% 50%, #5b2de1, #2563eb, #22c1f1, #7c3aed, #5b2de1);
  display:inline-grid; grid-auto-flow:column; align-items:center; gap:.7rem;
  position:relative; isolation:isolate;
  padding:.6rem 1rem; border-radius:999px;
  color:var(--ink); text-decoration:none; font-weight:800; line-height:1;
  background:linear-gradient(#fff,#fff) padding-box;
  box-shadow:0 10px 26px rgba(23,10,56,.08);
  transition:transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s ease, background .22s ease;
}
.cta-linkedin::before{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:2px;
  background:var(--ring);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; z-index:-1;
  transition:filter .4s ease, opacity .25s ease;
  opacity:.95;
}
.cta-linkedin::after{
  content:""; position:absolute; inset:-8px; border-radius:inherit; z-index:-2;
  background:radial-gradient(30% 60% at 10% 20%, rgba(99,102,241,.22), transparent 60%),
             radial-gradient(30% 60% at 90% 80%, rgba(59,130,246,.22), transparent 60%);
  opacity:.0; transition:opacity .25s ease;
}
.cta-linkedin .avatar-wrap{position:relative; width:34px; height:34px}
.cta-linkedin .avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px #fff}
.cta-linkedin .badge{position:absolute; right:-4px; bottom:-4px; width:16px; height:16px; border-radius:4px; box-shadow:0 0 0 2px #fff}
.cta-linkedin .text{background:linear-gradient(90deg, #0f172a, #0f172a); -webkit-background-clip:text; -webkit-text-fill-color:transparent; letter-spacing:.2px}
.cta-linkedin .chev{width:18px;height:18px;opacity:.75; transition:transform .25s ease, opacity .25s ease}

/* hover magic */
@keyframes spinHue12{to{filter:hue-rotate(360deg)}}
@keyframes shine{from{left:-120%} to{left:140%}}
.cta-linkedin:hover{transform:translateY(-1px); box-shadow:0 16px 34px rgba(23,10,56,.14)}
.cta-linkedin:hover::before{animation:spinHue12 7s linear infinite}
.cta-linkedin:hover::after{opacity:.85}
.cta-linkedin:hover .text{background:linear-gradient(90deg,#111827,#4f46e5,#7c3aed,#111827); -webkit-background-clip:text}
.cta-linkedin:hover .chev{transform:translateX(4px);opacity:1}
/* subtle shine sweep */
.cta-linkedin .text::after{
  content:""; position:absolute; top:0; height:100%; width:60px; left:-140%;
  background:linear-gradient(105deg, rgba(255,255,255,.0) 20%, rgba(255,255,255,.35) 50%, rgba(255,255,255,.0) 80%);
  transform:skewX(-12deg);
}
.cta-linkedin:hover .text::after{animation:shine 1.2s ease forwards}

/* active & focus */
.cta-linkedin:active{transform:translateY(0) scale(.985)}
.cta-linkedin:focus-visible{outline:3px solid #7c3aed; outline-offset:3px}

/* prefers-reduced-motion: limit animations */
@media (prefers-reduced-motion: reduce){
  .cta-linkedin::before, .cta-linkedin:hover::before{animation:none}
  .cta-linkedin .text::after, .cta-linkedin:hover .text::after{animation:none}
}

/* Responsive */
@media (max-width:520px){
  .cta-linkedin{padding:.55rem .9rem}
  .cta-linkedin .avatar-wrap{width:30px;height:30px}
  .cta-linkedin .avatar{width:30px;height:30px}
  .cta-linkedin .badge{width:14px;height:14px}
}

/* Small enhancement to CTA ghost buttons already added in v6.11 remains */

/* v6.13 — CTA row upgraded styling */
.cta-row{display:flex;flex-wrap:wrap;gap:.9rem;padding:0;margin-top:.25rem}

/* Base button reset stays the same; add sheen layer for both filled and ghost variants */
.btn, .btn.ghost{
  position:relative; overflow:hidden;
}
.btn::after, .btn.ghost::after{
  content:""; position:absolute; inset:-1px; border-radius:inherit; pointer-events:none;
  background:linear-gradient(120deg, rgba(255,255,255,.0) 20%, rgba(255,255,255,.35) 50%, rgba(255,255,255,.0) 80%);
  transform:translateX(-120%) skewX(-12deg); transition:transform .7s ease;
}
.btn:hover::after, .btn.ghost:hover::after{ transform:translateX(120%) skewX(-12deg) }

/* Filled primary */
.btn{
  background:linear-gradient(90deg, #4f46e5, #7c3aed);
  color:#fff;
  box-shadow:0 10px 24px rgba(79,70,229,.30);
}
.btn:hover{
  background:linear-gradient(90deg, #4338ca, #6d28d9);
  transform:translateY(-1px);
  box-shadow:0 16px 34px rgba(79,70,229,.35);
}

/* Ghost (outlined) — gradient border on hover */
.btn.ghost{
  background:#fff;
  border:2px solid rgba(79,70,229,.45);
  color:var(--ink);
  box-shadow:0 10px 22px rgba(17,12,52,.06);
}
.btn.ghost:hover{
  border-color:transparent;
  background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(135deg, #4f46e5, #22c1f1) border-box;
  transform:translateY(-1px);
  box-shadow:0 16px 28px rgba(17,12,52,.12);
}
.btn, .btn.ghost{ border-radius:18px; transition:transform .2s ease, border-radius .25s ease, box-shadow .2s ease, background .25s ease, border-color .25s ease }
.btn:hover, .btn.ghost:hover{ border-radius:26px }

@media (max-width:520px){
  .cta-row{display:flex;flex-wrap:wrap;gap:.9rem;padding:0;margin-top:.25rem}
  .btn, .btn.ghost{border-radius:16px}
  .btn:hover, .btn.ghost:hover{border-radius:22px}
}

/* v6.15 — CTA spacing fixes */
.cta-row{gap:1rem !important;margin-top:.25rem}
.cta-linkedin{margin-top:.75rem}

/* v6.16 — spacing above CTAs and mobile polish */
.cta-row{ margin-top: 1.1rem !important; gap: 1.1rem !important; }
.cta-linkedin{ margin-top: .85rem }
@media (max-width: 560px){
  .cta-row{ margin-top: .9rem !important; gap: .85rem !important; }
  .cta-linkedin{ margin-top: .8rem }
}

/* -- Components: Recommendation quote cards -- */
/* .rec .rec-text uses italic style and an opening quote mark; JS populates excerpt from data-full. Read-more toggles long text. */

/* -- Component: LinkedIn animated CTA (.cta-linkedin) --
   - Gradient ring (pseudo ::before) + glow (::after)
   - Avatar + LinkedIn badge overlay
   - Arrow nudge on hover; animations disabled with prefers-reduced-motion
*/


/* v6.18 — compact CTA sizing and responsive scaling */
/* ~20% smaller on desktop */
.cta-row .btn,
.cta-row .btn.ghost{
  padding: .48rem .85rem !important;
  font-size: .95rem !important;
}

/* LinkedIn CTA: reduce overall size and avatar */
.cta-linkedin{
  font-size: clamp(.9rem, 1.4vw, 1rem);
  padding: .52rem .88rem;
}
.cta-linkedin .avatar-wrap{ width:30px; height:30px }
.cta-linkedin .avatar{ width:30px; height:30px }
.cta-linkedin .badge{ width:14px; height:14px }

/* Extra spacing discipline around the block */
.cta-row{ margin-top: .9rem !important; gap: .9rem !important; }
.cta-linkedin{ margin-top: .7rem }

/* Mobile: tighter */
@media (max-width: 560px){
  .cta-row .btn,
  .cta-row .btn.ghost{
    padding: .42rem .72rem !important;
    font-size: .9rem !important;
  }
  .cta-linkedin{
    font-size: .95rem;
    padding: .44rem .78rem;
  }
  .cta-linkedin .avatar-wrap{ width:26px; height:26px }
  .cta-linkedin .avatar{ width:26px; height:26px }
  .cta-linkedin .badge{ width:12px; height:12px }
  .cta-linkedin{ margin-top: .6rem }
}
