:root{
--bg0:#05060b;
--bg1:#070a14;
--text:#ffffff;
--muted:rgba(233,236,255,.82);
--a1:#7c3aed;
--a2:#22d3ee;
--a3:#60a5fa;
--glass-shadow:0 30px 90px rgba(0,0,0,.48);
--liquid-purple:rgba(124,58,237,.35);
--liquid-cyan:rgba(34,211,238,.30);
--liquid-blue:rgba(96,165,250,.26);
}

:root{
  --text-primary: rgba(255,255,255,.96);
  --text-secondary: rgba(233,236,255,.82);
  --text-muted: rgba(233,236,255,.65);
  --text-inverse: #0b1220;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
margin:0;
font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
color:var(--text);
line-height:1.6;
overflow-x:hidden;
background:
radial-gradient(900px 700px at 12% 10%, rgba(124,58,237,.18), transparent 55%),
radial-gradient(800px 600px at 88% 18%, rgba(34,211,238,.14), transparent 55%),
radial-gradient(900px 700px at 60% 90%, rgba(96,165,250,.10), transparent 55%),
linear-gradient(180deg, var(--bg0), var(--bg1));
}

h1,h2,h3{letter-spacing:-0.02em}
.section-title{
font-weight:800;
letter-spacing:.14em;
text-transform:uppercase;
font-size:.95rem;
color:rgba(233,236,255,.85);
}
.text-gradient{
background:linear-gradient(90deg,var(--a2),var(--a1),var(--a3));
-webkit-background-clip:text;
background-clip:text;
color:transparent;
}
header{position:sticky;top:0;z-index:1000}
.nav-glass{
background:linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,.04)) !important;
backdrop-filter:blur(26px) saturate(170%);
-webkit-backdrop-filter:blur(26px) saturate(170%);
border-bottom:1px solid rgba(255,255,255,.18);
box-shadow:0 12px 44px rgba(0,0,0,.40);
}
.navbar-brand{text-transform:uppercase;letter-spacing:.14em;font-weight:800}
.nav-link{text-transform:uppercase;font-size:.82rem;letter-spacing:.12em;color:rgba(233,236,255,.78) !important;position:relative}
.nav-link:hover{color:#fff !important}
.nav-link.active-page::after{content:"";position:absolute;left:.5rem;right:.5rem;bottom:.2rem;height:2px;background:linear-gradient(90deg,var(--a1),var(--a2));border-radius:999px;opacity:.9}
.hero-section{min-height:78vh;padding:5rem 0 4rem;position:relative;overflow:hidden}
.hero-section::before{
content:"";position:absolute;inset:-30%;
background:
radial-gradient(closest-side at 20% 25%, var(--liquid-purple), transparent 60%),
radial-gradient(closest-side at 70% 30%, var(--liquid-cyan), transparent 60%),
radial-gradient(closest-side at 50% 80%, var(--liquid-blue), transparent 60%);

animation:liquidFloat 18s ease-in-out infinite alternate;
pointer-events:none;
}
@keyframes liquidFloat{0%{transform:translate3d(-2%,-2%,0) scale(1)}50%{transform:translate3d(2%,1%,0) scale(1.05)}100%{transform:translate3d(-1%,2%,0) scale(1.02)}}
.hero-kicker{display:inline-flex;align-items:center;gap:.6rem;padding:.45rem .85rem;border:1px solid rgba(255,255,255,.18);background:linear-gradient(135deg, rgba(255,255,255,.13), rgba(255,255,255,.04));backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border-radius:999px;box-shadow:0 0 0 1px rgba(255,255,255,.03) inset}
.hero-kicker .dot{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 30% 30%, #fff, var(--a2));box-shadow:0 0 22px rgba(34,211,238,.55)}
.display-4{font-weight:900;line-height:1.05;text-shadow:0 10px 40px rgba(0,0,0,.35)}
.lead{color:rgba(233,236,255,.72);max-width:52ch}
.btn{border-radius:999px !important;padding:.85rem 1.15rem}
.btn-primary{background:linear-gradient(90deg,var(--a1),var(--a2)) !important;border:none !important;box-shadow:0 16px 50px rgba(124,58,237,.18),0 16px 50px rgba(34,211,238,.12)}
.btn-primary:hover{transform:translateY(-1px);filter:brightness(1.05)}
.btn-outline-light{border-color:rgba(255,255,255,.28) !important;color:rgba(255,255,255,.92) !important}
.btn-outline-light:hover{background:rgba(255,255,255,.10) !important}
.card,.glass,.hero-visual,.stat-card{position:relative;background:linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,.04));backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);border:1px solid rgba(255,255,255,.22);border-radius:22px;box-shadow:var(--glass-shadow);overflow:hidden;transform:translateZ(0);transition:transform .35s ease,border-color .35s ease}
.card::after{content:"";position:absolute;inset:-1px;background:radial-gradient(700px 260px at var(--x,30%) var(--y,20%), rgba(255,255,255,.75), transparent 60%);opacity:.18;pointer-events:none;transition:opacity .25s ease}
.card:hover::after{opacity:.28}
.card:hover{transform:translateY(-8px);border-color:rgba(255,255,255,.30)}
.hero-visual{border-radius:24px;border:1px solid rgba(255,255,255,.28)}
.hero-badge{background:linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,.05));border:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.92);padding:.45rem .7rem;border-radius:999px}
.hero-visual-footer{display:flex;justify-content:space-between;align-items:center}
.mini-metric{display:inline-flex;align-items:center;gap:.5rem}
.mini-dot{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 30% 30%, #fff, var(--a1));box-shadow:0 0 18px rgba(124,58,237,.45)}
.hero-stats .stat-card{border-radius:18px;box-shadow:0 18px 55px rgba(0,0,0,.42)}
.stat-number{font-size:1.65rem;font-weight:900;letter-spacing:-.02em;line-height:1}
.stat-label{margin-top:6px;font-size:.85rem;color:#fff;text-transform:uppercase;letter-spacing:.12em}
video,img{border-radius:18px}
#contactForm .form-control,#contactForm .form-select{background:linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.18);color:var(--text);border-radius:14px;backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%)}
#contactForm .form-control:focus,#contactForm .form-select:focus{box-shadow:0 0 0 .25rem rgba(34,211,238,.18);border-color:rgba(34,211,238,.55)}
footer{border-top:1px solid rgba(255,255,255,.10);background:linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.02));backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%)}
html.js [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.9,.2,1)}
html.js .revealed{opacity:1 !important;transform:translateY(0) !important}
html:not(.js) [data-reveal]{opacity:1 !important;transform:none !important;transition:none !important}
#scrollProgress{position:fixed;top:0;left:0;height:3px;width:0%;z-index:1500;background:linear-gradient(90deg,var(--a1),var(--a2),var(--a3));box-shadow:0 0 20px rgba(34,211,238,.35)}
#pageTransition{position:fixed;inset:0;opacity:0;pointer-events:none;transition:opacity .35s ease;z-index:2000;background:radial-gradient(900px 700px at 40% 30%, rgba(124,58,237,.25), transparent 60%),radial-gradient(900px 700px at 70% 40%, rgba(34,211,238,.22), transparent 60%),linear-gradient(180deg,var(--bg0),var(--bg1))}
#pageTransition.active{opacity:1;pointer-events:auto}
.back-to-top{position:fixed;right:1.5rem;bottom:1.5rem;width:3rem;height:3rem;border-radius:999px;display:none;z-index:1200}
#cursorDot,#cursorRing{position:fixed;top:0;left:0;transform:translate(-50%,-50%);pointer-events:none;z-index:3000}
#cursorDot{width:8px;height:8px;border-radius:50%;background:#fff;mix-blend-mode:difference}
#cursorRing{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(8px);transition:width .15s ease,height .15s ease,border-color .15s ease,transform .06s linear}
.cursor-hover #cursorRing{width:46px;height:46px;border-color:rgba(34,211,238,.65)}
.icon-chip{position:relative;display:inline-flex;align-items:center;gap:.6rem;padding:.6rem 1rem;border-radius:999px;background:linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,.05));backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border:1px solid rgba(255,255,255,.22);color:rgba(233,236,255,.92);transition:transform .25s ease,border-color .25s ease}
.icon-chip:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.40)}
.service-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg, rgba(255,255,255,.22), rgba(255,255,255,.06));backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);border:1px solid rgba(255,255,255,.28);box-shadow:0 10px 30px rgba(0,0,0,.35);font-size:.85rem;font-weight:800;letter-spacing:.12em;color:rgba(233,236,255,.95);user-select:none}
.parallax-soft{transform:translateY(var(--py,0px));transition:transform .1s linear}
.sticky-cta{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);width:min(980px,calc(100% - 24px));z-index:1600}
.sticky-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border-radius:20px;background:linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,.04));backdrop-filter:blur(22px) saturate(170%);-webkit-backdrop-filter:blur(22px) saturate(170%);border:1px solid rgba(255,255,255,.18);box-shadow:var(--glass-shadow);overflow:hidden;position:relative}
.sticky-cta-inner::after{content:"";position:absolute;inset:-40% -20%;background:radial-gradient(closest-side at 40% 40%, rgba(255,255,255,.25), transparent 55%),radial-gradient(closest-side at 70% 50%, rgba(34,211,238,.20), transparent 60%);filter:blur(22px);opacity:.55;animation:ctaSweep 10s ease-in-out infinite alternate;pointer-events:none}
@keyframes ctaSweep{from{transform:translate3d(-2%,-2%,0) rotate(-2deg)}to{transform:translate3d(2%,1%,0) rotate(2deg)}}
.sticky-cta-title{font-weight:900;letter-spacing:-.02em}
.sticky-cta-sub{color:#fff;font-size:.92rem}
.sticky-cta-actions{display:flex;gap:10px;align-items:center;position:relative;z-index:1}
.sticky-cta-text{position:relative;z-index:1}
.sticky-cta-close{width:40px;height:40px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);color:rgba(255,255,255,.92);font-size:1.2rem;line-height:1;position:relative;z-index:1}
.sticky-cta-close:hover{background:rgba(255,255,255,.12)}
@media (max-width:575px){.sticky-cta-sub{display:none}.sticky-cta-inner{gap:10px}}
@media (max-width:991px){#cursorDot,#cursorRing{display:none}.hero-section{padding:4rem 0 3rem}}
@media print{
header,#scrollProgress,#cursorDot,#cursorRing,#pageTransition,.sticky-cta,#backToTop,.btn,.navbar{display:none !important}
body{background:#fff !important;color:#111 !important}
p,li,td,th{color:#111 !important}
.card,.glass,.hero-visual,.stat-card{box-shadow:none !important;background:#fff !important;border:1px solid #ddd !important;backdrop-filter:none !important}
a{color:#111 !important;text-decoration:none !important}
main{padding:0 !important}
h1,h2,h3 {color:#111 !important}

} 

:root{
  --addie-a1:#7c3aed; /* purple */
  --addie-a2:#22d3ee; /* cyan */
  --addie-a3:#60a5fa; /* blue */
}

#addie{ position: relative; }

#addie .addie-card{
  position: relative;
  border-radius: 26px;
  padding: 22px;
  background: linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,.04));
  border: 1px solid rgba(255,255,255,.20);
  backdrop-filter: blur(26px) saturate(170%);
  -webkit-backdrop-filter: blur(26px) saturate(170%);
  box-shadow: 0 34px 100px rgba(0,0,0,.48);
  overflow: hidden;
}

#addie .addie-card::before{
  content:"";
  position:absolute;
  inset:-45%;
  background:
    radial-gradient(closest-side at 30% 30%, rgba(124,58,237,.22), transparent 62%),
    radial-gradient(closest-side at 70% 45%, rgba(34,211,238,.18), transparent 64%),
    radial-gradient(closest-side at 55% 80%, rgba(96,165,250,.14), transparent 66%);

  opacity:.9;
  pointer-events:none;
}

#addie .addie-card > *{ position: relative; z-index: 1; }

#addie .addie-kicker{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.45rem .85rem;
  border-radius:999px;
  background: rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  color: rgba(233,236,255,.9);
}

#addie h2{
  margin-top: 12px;
  background: linear-gradient(90deg, var(--addie-a2), var(--addie-a3), var(--addie-a1));
  -webkit-background-clip:text;
  background-clip:text;
  color: transparent;
  font-weight: 900;
}

#addie p{
  color: rgba(233,236,255,.85);
  max-width: 740px;
}

#addie .addie-grid{
  display:grid;
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap: 14px;
  margin-top: 20px;
}

#addie .addie-step{
  position: relative;
  border-radius: 20px;
  padding: 14px 14px 16px;
  background: linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,.04));
  border: 1px solid rgba(255,255,255,.18);
  min-height: 190px;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

#addie .addie-step:hover{
  transform: translateY(-4px);
  border-color: rgba(255,255,255,.32);
  box-shadow: 0 18px 48px rgba(0,0,0,.45);
}

#addie .addie-step .letter{
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display:grid;
  place-items:center;
  font-weight:900;
  font-size:1.05rem;
  background: linear-gradient(135deg, var(--addie-a1), var(--addie-a2));
  color:#fff;
  box-shadow: 0 16px 46px rgba(0,0,0,.38);
}

#addie .addie-step .name{
  margin-top: 10px;
  font-weight: 900;
  color: rgba(255,255,255,.98);
}

#addie .addie-step .desc{
  margin-top: 6px;
  font-size: .95rem;
  line-height: 1.45;
  color: rgba(233,236,255,.8);
}

#addie .addie-step .tools{
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid rgba(255,255,255,.14);
  font-size: .85rem;
  color: rgba(233,236,255,.7);
}

@media (max-width: 991px){
  #addie .addie-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 575px){
  #addie .addie-grid{ grid-template-columns: 1fr; }
}

body{
  color: var(--text-primary);
}

p, li{
  color: var(--text-secondary);
}

small, .muted, .text-muted{
  color: var(--text-muted) !important;
}

.glass,
.card,
.addie-card,
.resume-photo-card,
.wip-card{
  color: var(--text-primary);
}

.glass p,
.card p,
.addie-card p,
.resume-photo-card p,
.wip-card p{
  color: var(--text-secondary);
}

.text-muted{
  color: var(--text-muted) !important;
}

.hero,
.dark,
.parallax-soft{
  color: var(--text-primary);
}

.hero p,
.dark p,
.parallax-soft p{
  color: var(--text-secondary);
}

a{
  color: #9dd7ff;
}

a:hover{
  color: #c7e7ff;
}

/* Resume logos (no glow, no borders) */
.resume-item{
  display:flex;
  gap:24px;
  align-items:flex-start;
  margin-bottom:32px;
}
.resume-logo{
  width: 104px;
  height: 104px;
  flex-shrink:0;
  border-radius: 22px;
  background: transparent;
  padding: 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  border: none;
  outline: none;
  box-shadow: none;
}
.resume-logo img{
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  display:block;
  filter:none;
}

/* Resume alignment helpers */
.edu-grid{display:flex;flex-direction:column;gap:24px}
.edu-item{display:flex;align-items:center;gap:20px}
.edu-content{flex:1}

/* Resume items + logos (no glow, no borders) */
.resume-item{
  display:flex;
  gap:24px;
  align-items:flex-start;
  margin-bottom:32px;
}
.resume-logo{
  width:104px;
  height:104px;
  flex-shrink:0;
  border-radius:22px;
  background:transparent;
  padding:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:none;
  outline:none;
  box-shadow:none;
}
.resume-logo img{
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  display:block;
  filter:none;
}

/* Resume table readability (force black text) */
.resume-page .resume-table-wrapper,
.resume-page .resume-table-wrapper table{
  color:#0b1220 !important;
}
.resume-page .resume-table-wrapper th,
.resume-page .resume-table-wrapper td{
  color:#0b1220 !important;
}
.resume-page .resume-table-wrapper .text-muted{
  color:rgba(11,18,32,.70) !important;
}

@media (max-width:575px){
  .resume-item{gap:16px}
  .resume-logo{
    width:72px;
    height:72px;
    border-radius:18px;
    padding:10px;
  }
  .edu-item{gap:14px}
}
