/* ══════════════════════════════════════════════════════════════
   SVD PORTFOLIO - SHARED DESIGN SYSTEM
   One canonical stylesheet for all site pages. Minimalist black/
   white/grey base; red used only as a rare accent (thin lines,
   small labels, hover states, one solid CTA per page/context).
   ══════════════════════════════════════════════════════════════ */

/* ─── RESET ─── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

/* ─── TOKENS ─── */
:root{
  --bg:#0a0a0a;--bg2:#111111;--bg3:#161616;--card:#111111;
  --w:#ffffff;--off:#c8c8c8;--m:#888888;--dim:#555555;
  --r:#cc2200;--r2:#e63000;
  --line:rgba(255,255,255,0.07);--line2:rgba(255,255,255,0.12);
  --f:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --transition:background .35s,color .35s,border-color .35s;
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;
  --sp-7:40px;--sp-8:48px;--sp-9:56px;--sp-10:64px;--sp-11:72px;--sp-12:96px;
}
body.light{
  --bg:#f4f1ec;--bg2:#ece9e3;--bg3:#e4e1da;--card:#f0ede7;
  --w:#1a1612;--off:#2e2820;--m:rgba(30,20,10,0.55);--dim:rgba(30,20,10,0.32);
  --r:#c94020;--r2:#e8532e;
  --line:rgba(30,20,10,0.1);--line2:rgba(30,20,10,0.16);
}

/* ─── BASE ─── */
html{scroll-behavior:smooth;}
body{
  font-family:var(--f);background:var(--bg);color:var(--w);
  overflow-x:hidden;cursor:none;-webkit-font-smoothing:antialiased;
  transition:var(--transition);
}

/* ─── CUSTOM CURSOR ─── */
#cur{position:fixed;top:0;left:0;width:6px;height:6px;background:var(--r);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:transform .12s,background .2s;}
#cf{position:fixed;top:0;left:0;width:30px;height:30px;border:1px solid rgba(204,34,0,.4);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:transform .4s cubic-bezier(.23,1,.32,1),opacity .3s;opacity:.5;}
#cur.h{transform:translate(-50%,-50%) scale(4);background:var(--r2);}
#cf.h{opacity:0;}

/* ─── NAVIGATION (hub pages: home / about / projects) ─── */
nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;justify-content:space-between;align-items:center;padding:0 48px;height:72px;transition:background .3s;}
nav::before{content:'';position:absolute;inset:0;background:transparent;z-index:-1;transition:background .3s,backdrop-filter .3s;}
nav.scrolled::before{background:rgba(8,8,8,0.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);}
body.light nav.scrolled::before{background:rgba(244,241,236,0.95);}
.logo-img{display:flex;align-items:center;text-decoration:none;flex-shrink:0;}
.logo-txt{font-weight:700;font-size:22.5px;letter-spacing:.02em;color:var(--w);}
.logo-mark{height:24px;width:auto;display:block;}
.nav-links{display:flex;gap:32px;list-style:none;}
.nav-links a{font-size:15px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,0.65);text-decoration:none;transition:color .2s;position:relative;padding-bottom:4px;}
.nav-links a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--r);transition:width .3s;}
.nav-links a:hover,.nav-links a.active{color:var(--w);}
.nav-links a.active::after{width:100%;}
body.light .nav-links a{color:rgba(30,20,10,0.5);}
body.light .nav-links a:hover,body.light .nav-links a.active{color:var(--w);}

/* Minimal nav (case-study pages) */
.nav-back{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;letter-spacing:.1em;color:var(--m);text-decoration:none;transition:color .2s;}
.nav-back:hover{color:var(--r);}
.nav-back svg{width:14px;height:14px;flex-shrink:0;}

/* Hamburger + mobile menu (hub pages) */
.hamburger{display:none;position:relative;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,0.25);background:rgba(255,255,255,0.05);color:var(--w);cursor:none;align-items:center;justify-content:center;transition:all .25s;flex-shrink:0;}
.hamburger:hover{border-color:var(--r);}
.hbdot{position:absolute;top:8px;right:9px;width:5px;height:5px;border-radius:50%;background:var(--r);}
body.light .hamburger{border-color:rgba(30,20,10,0.25);background:rgba(30,20,10,0.04);color:var(--w);}
.mob-menu{position:fixed;top:0;right:-100%;width:280px;height:100vh;background:var(--bg2);z-index:999;padding:80px 40px 40px;transition:right .35s cubic-bezier(.23,1,.32,1);border-left:1px solid var(--line);}
.mob-menu.open{right:0;}
.mob-menu ul{list-style:none;}
.mob-menu ul li{margin-bottom:28px;}
.mob-menu ul li a{font-size:18.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--m);text-decoration:none;transition:color .2s;}
.mob-menu ul li a:hover{color:var(--r);}
.mob-close{position:absolute;top:24px;right:24px;background:none;border:none;color:var(--m);font-size:20px;cursor:none;transition:color .2s;}
.mob-close:hover{color:var(--r);}

/* ─── PAGE WRAPPER (about.html) ─── */
.page{padding-top:72px;}

/* ─── KICKER LABELS (section eyebrow text) ─── */
.label,.sl,.proj-cat,.sb-label,.case-num{
  font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--r);margin-bottom:16px;
}
.sl,.proj-cat,.sb-label{display:flex;align-items:center;gap:14px;margin-bottom:12px;}
.sl::after,.proj-cat::before,.sb-label::after{content:'';flex:0 0 28px;height:1px;background:var(--r);opacity:.4;}
.case-num{color:var(--dim);font-weight:600;letter-spacing:.16em;}
.redline,.j-line,.h-redline{width:36px;height:3px;background:var(--r);margin-bottom:0;}
.redline.center{margin:10px auto 0;}

/* ─── SPLIT HERO (about.html + home hero - shared two-pane pattern) ─── */
.s-banner{
  display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr auto;
  min-height:calc(100vh - 72px);
  border-bottom:1px solid var(--line);
  position:relative;overflow:hidden;
}
.banner-left{padding:var(--sp-9) var(--sp-9) var(--sp-6);display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2;}
.banner-headline{font-size:clamp(30px,3.89vw,50.5px);font-weight:700;line-height:1.12;letter-spacing:-.02em;margin-bottom:24px;margin-top:16px;}
.banner-headline .dot{color:var(--r);}
.banner-bio{font-size:16px;font-weight:400;line-height:1.82;color:var(--m);margin-bottom:36px;max-width:420px;}
.banner-right{position:relative;background:var(--bg);overflow:hidden;display:flex;align-items:center;justify-content:flex-start;padding:var(--sp-6) var(--sp-9);}
.void-watermark{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-start;pointer-events:none;padding-right:var(--sp-9);}
.void-watermark p{font-size:clamp(34px,5vw,84px);font-weight:800;line-height:1.12;letter-spacing:-.02em;color:rgba(255,255,255,.06);max-width:100%;}
.void-watermark p em{font-style:normal;color:rgba(255,255,255,.038);}
body.light .void-watermark p{color:rgba(30,20,10,.065);}
body.light .void-watermark p em{color:rgba(30,20,10,.042);}
.banner-bar{grid-column:1/-1;position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;height:64px;padding:0 var(--sp-9);border-top:1px solid var(--line);}
.void-meta{display:flex;align-items:center;gap:10px;font-size:11.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);}

/* ─── HOME HERO (taller, rebalanced two-pane, bar pinned to the very bottom) ─── */
@media(min-width:961px){
  #home.s-banner{min-height:100vh;grid-template-columns:1.25fr 1fr;padding:0;}
}
#home .banner-right{justify-content:center;padding:var(--sp-6) var(--sp-10);}
#home .void-watermark{justify-content:center;text-align:center;padding-right:0;}

/* ─── ABOUT HERO PORTRAIT ─── */
#aboutHero.s-banner{min-height:auto;padding-bottom:0;}
#aboutHero .banner-right{overflow:visible;perspective:1400px;}
#aboutHero .void-watermark{align-items:flex-start;justify-content:flex-start;padding-top:0;padding-right:0;padding-left:0;margin-top:-24px;margin-left:-36px;}
#aboutHero .void-watermark p{font-size:clamp(48px,7.6vw,116px);text-align:left;transform:scale(1.12) rotateY(-7deg) rotateX(2deg);transform-origin:left top;}
.banner-portrait{
  position:absolute;right:-20%;bottom:0;z-index:1;
  width:56vw;max-width:126%;max-height:100%;
  object-fit:contain;
  transform:scale(1.1) rotateY(-7deg) rotateX(2deg);
  transform-origin:center bottom;
  filter:drop-shadow(-24px 26px 34px rgba(0,0,0,.5));
  transition:transform .4s ease;
  -webkit-mask-image:linear-gradient(to top,transparent 0%,black 6%);
  mask-image:linear-gradient(to top,transparent 0%,black 6%);
}

/* ─── BUTTONS ─── */
.btn-cv{display:inline-flex;align-items:center;gap:8px;padding:15px 4px;color:rgba(255,255,255,0.48);font-family:var(--f);font-size:12.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;transition:color .2s;border-bottom:1px solid rgba(255,255,255,0.22);cursor:none;align-self:flex-start;}
.btn-cv:hover{color:var(--w);border-color:var(--w);}
body.light .btn-cv{color:rgba(30,20,10,0.42);border-color:rgba(30,20,10,0.18);}
body.light .btn-cv:hover{color:var(--w);border-color:var(--w);}

.btn-explore{display:inline-flex;align-items:center;gap:10px;padding:15px 32px;border:1.5px solid var(--r);background:var(--r);color:#fff;font-size:13.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;transition:all .3s;cursor:none;}
.btn-explore:hover{background:var(--r2);border-color:var(--r2);}

.github-btn,.back-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 32px;font-size:14px;font-weight:500;letter-spacing:.1em;text-decoration:none;text-transform:uppercase;transition:all .28s;}
.github-btn{border:1px solid var(--line2);color:var(--m);}
.github-btn:hover{border-color:var(--r);color:var(--r);}
.github-btn svg{width:16px;height:16px;flex-shrink:0;}
.back-btn{border:1px solid var(--line2);color:var(--m);}
.back-btn:hover{border-color:var(--r);color:var(--r);}
.back-footer{display:flex;justify-content:center;padding:44px 0;border-top:1px solid var(--line);}

.cta{display:inline-flex;align-items:center;gap:10px;padding:13px 28px;font-family:var(--f);font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:all .25s;border:1px solid var(--line2);color:var(--m);cursor:none;}
.cta:hover{border-color:var(--w);color:var(--w);}
.cta.p{background:transparent;border-color:var(--r);color:var(--r);}
.cta.p:hover{background:var(--r);color:#fff;}

.form-submit{background:var(--r);border:none;color:#fff;font-family:var(--f);font-size:14px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:16px 32px;cursor:none;transition:background .25s;align-self:flex-start;margin-top:8px;}
.form-submit:hover{background:var(--r2);}

.filter-btn{font-family:var(--f);font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:9px 18px;border:1px solid var(--line2);background:transparent;color:var(--m);cursor:none;transition:all .2s;}
.filter-btn:hover{border-color:var(--r);color:var(--r);}
.filter-btn.active{border-color:var(--r);color:var(--r);background:transparent;}

.cert-tab{font-family:var(--f);font-size:10px;font-weight:600;letter-spacing:.06em;padding:6px 10px;border:1px solid var(--line2);background:transparent;color:var(--m);cursor:none;transition:all .2s;}
.cert-tab:hover{border-color:var(--r);color:var(--r);}
.cert-tab.active{border-color:var(--r);color:var(--r);background:transparent;}

/* ─── TAG / PILL COMPONENTS ─── */
.tag,.ec-tag,.tech-badge{font-size:12px;font-weight:500;letter-spacing:.1em;padding:6px 14px;border:1px solid var(--line2);color:var(--m);text-transform:uppercase;transition:all .2s;}
.tag:hover,.ec-tag:hover,.tech-badge:hover{border-color:var(--r);color:var(--r);}
.index-tags .ec-tag{font-size:11.5px;padding:4px 10px;color:var(--dim);}

/* ─── ABOUT / INTRO GRID (home page) ─── */
.about{background:var(--bg);}
.ag{display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:start;}
.at p{font-size:17px;font-weight:400;line-height:1.8;color:var(--m);margin-bottom:20px;}
.at p strong{color:var(--w);font-weight:500;}
.stats{display:flex;gap:48px;margin-top:48px;padding-top:48px;border-top:1px solid var(--line);}
.sn{font-size:46px;font-weight:700;line-height:1;letter-spacing:-.02em;}
.sn span{color:var(--r);}
.sl2{font-size:12.5px;font-weight:400;color:var(--dim);letter-spacing:.06em;margin-top:6px;text-transform:uppercase;}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:40px;}
.quote{padding:28px 28px 28px 24px;border-left:2px solid var(--r);background:var(--bg2);margin-top:32px;}
.quote p{font-size:17px;font-weight:400;line-height:1.75;color:var(--off);font-style:italic;}

/* Section base (home page) */
section{padding:96px 56px;}
.st{font-size:clamp(34.5px,4.32vw,54.5px);font-weight:700;line-height:1.1;letter-spacing:-.02em;margin-bottom:16px;}
.st em{font-style:normal;color:var(--m);}

/* ─── EXPERIENCE ROWS (home page) ─── */
.exp-sec{background:var(--bg2);}
.el{border-top:1px solid var(--line);}
.ei{display:grid;grid-template-columns:180px 1fr 160px;gap:40px;padding:44px 0;border-bottom:1px solid var(--line);position:relative;transition:background .2s;}
.ei:hover{background:rgba(255,255,255,.015);}
.ei::before{content:'';position:absolute;left:0;top:0;bottom:0;width:0;background:rgba(204,34,0,.07);transition:width .35s;pointer-events:none;}
.ei:hover::before{width:100%;}
.ei-d{font-size:14px;font-weight:400;color:var(--dim);letter-spacing:.04em;padding-top:4px;line-height:1.6;}
.ei-dur{display:block;color:var(--r);font-size:13px;font-weight:500;letter-spacing:.1em;margin-top:6px;text-transform:uppercase;}
.ei-r{font-size:20px;font-weight:600;letter-spacing:-.01em;margin-bottom:6px;color:var(--w);}
.ei-c{font-size:14px;font-weight:500;color:var(--r);letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px;}
.ei-txt{font-size:15px;font-weight:400;line-height:1.78;color:var(--m);}
.ei-b{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:12.5px;font-weight:500;letter-spacing:.07em;padding:6px 14px;border:1px solid rgba(204,34,0,.3);color:var(--r);text-transform:uppercase;}
.ei-loc{font-size:12.5px;font-weight:400;color:var(--dim);text-align:right;padding-top:4px;line-height:1.7;}

/* Core strengths cards (home page) */
.exp-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);}
.exp-card{padding:40px 36px;border-right:1px solid var(--line);position:relative;overflow:hidden;transition:background .3s;}
.exp-card:last-child{border-right:none;}
.exp-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--r);transform:scaleX(0);transform-origin:left;transition:transform .4s;}
.exp-card:hover::before{transform:scaleX(1);}
.exp-card:hover{background:rgba(204,34,0,.04);}
.ec-n{font-size:16px;font-weight:600;color:var(--r);margin-bottom:20px;letter-spacing:.12em;opacity:.8;}
.ec-t{font-size:20px;font-weight:600;line-height:1.25;margin-bottom:14px;letter-spacing:-.01em;}
.ec-d{font-size:15px;font-weight:400;line-height:1.78;color:var(--m);}
.ec-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:24px;}


/* ─── PROJECT ROWS (home page) ─── */
.proj-list{margin-top:56px;border-top:1px solid var(--line);}
.proj-row{display:grid;grid-template-columns:56px 1fr auto;align-items:start;gap:28px;padding:36px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;position:relative;transition:padding-left .3s,background .3s;}
.proj-row:hover{padding-left:16px;background:var(--bg3);}
body.light .proj-row:hover{background:var(--bg);}
.proj-row::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--r);transform:scaleY(0);transform-origin:bottom;transition:transform .4s;}
.proj-row:hover::before{transform:scaleY(1);}
.proj-num{font-size:19px;font-weight:600;color:var(--r);letter-spacing:.1em;padding-top:4px;}
.proj-tag{font-size:13.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--r);margin-bottom:12px;opacity:.85;}
.proj-title{font-size:21px;font-weight:600;letter-spacing:-.01em;margin-bottom:10px;line-height:1.25;}
.proj-desc{font-size:15px;font-weight:400;line-height:1.75;color:var(--m);margin-bottom:16px;max-width:640px;}
.proj-cta{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--m);white-space:nowrap;padding-top:6px;transition:gap .2s,color .2s;}
.proj-row:hover .proj-cta{gap:14px;color:var(--r);}

/* ─── SKILLS (home page) ─── */
.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-top:64px;}
.skill-cat{background:var(--bg2);padding:32px 28px;}
.skill-cat-title{font-size:14px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--r);margin-bottom:20px;}
.skill-item{font-size:15px;font-weight:400;color:var(--m);display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.skill-item::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--r);flex-shrink:0;opacity:.7;}

/* ─── EDUCATION (home page grid + about.html list) ─── */
.edu-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:64px;}
.edu-card{background:var(--bg3);padding:44px 40px;position:relative;overflow:hidden;transition:background .3s;}
.edu-card:hover{background:#1a1a1a;}
body.light .edu-card:hover{background:var(--bg2);}
.edu-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--r);transform:scaleX(0);transform-origin:left;transition:transform .4s;}
.edu-card:hover::after{transform:scaleX(1);}
.edu-deg{font-size:20px;font-weight:600;line-height:1.3;letter-spacing:-.01em;margin-bottom:8px;}
.edu-sch{font-size:14px;font-weight:500;color:var(--r);letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px;}
.edu-yr{font-size:14px;font-weight:400;color:var(--dim);margin-bottom:18px;}
.edu-grade{display:inline-block;font-size:11.5px;font-weight:500;padding:4px 12px;border:1px solid var(--line2);color:var(--dim);letter-spacing:.08em;margin-bottom:20px;text-transform:uppercase;}
.edu-hi{font-size:15px;font-weight:400;line-height:1.78;color:var(--m);}


/* ─── JOURNEY / STATS (about.html) ─── */
.s-journey{display:grid;grid-template-columns:440px 1fr;background:var(--bg);}
.journey-left{padding:40px 40px;display:flex;flex-direction:column;background:#f4ede2;border-radius:16px;margin:32px 0 32px 32px;box-shadow:0 12px 40px rgba(0,0,0,.35);}
.journey-left .journey-title{color:#1a1612;}
.journey-left .journey-desc{color:#5a4f43;}
.journey-left .j-location{color:#2e2820;}
.journey-title{font-size:clamp(22.5px,2.7vw,34.5px);font-weight:700;line-height:1.18;letter-spacing:-.01em;margin-bottom:12px;margin-top:6px;}
.journey-desc{font-size:15px;font-weight:400;line-height:1.7;color:var(--m);margin-bottom:16px;}
.j-location{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--m);}
.j-location svg{color:var(--r);flex-shrink:0;}

.journey-right{padding:32px;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:1fr auto;gap:20px;}
.jcard{background:var(--bg2);border:1px solid var(--line2);border-radius:14px;padding:32px 24px;transition:border-color .3s,transform .3s,background .3s,box-shadow .3s;}
.jcard:hover{border-color:var(--r);transform:translateY(-4px);background:var(--bg3);box-shadow:0 16px 32px rgba(0,0,0,.3);}
.jcard-icon{color:var(--r);margin-bottom:20px;line-height:0;}
.jcard-val{font-size:26px;font-weight:800;line-height:1;letter-spacing:-.02em;margin-bottom:14px;}
.jcard-val span{color:var(--r);}
.jcard-rule{width:24px;height:2px;background:var(--r);opacity:.5;margin-bottom:14px;}
.jcard-label{font-size:14px;font-weight:500;color:var(--off);line-height:1.5;}
.jcard-sub{font-size:12.5px;font-weight:400;color:var(--m);line-height:1.55;margin-top:6px;}
.jcard-sub2{font-size:11px;font-weight:400;color:var(--dim);margin-top:4px;letter-spacing:.02em;}
.jcard-wide{grid-column:span 2;display:flex;align-items:center;gap:24px;}
.jcard-wide .jcard-icon{margin-bottom:0;flex-shrink:0;}
.jcard-wide-title{font-size:22px;font-weight:800;letter-spacing:-.01em;margin-bottom:8px;}
.jcard-wide-sub{font-size:14px;font-weight:400;color:var(--m);line-height:1.6;}

/* ─── EDUCATION & CERTIFICATIONS (about.html + homepage, light theme regardless of page) ─── */
.s-edu-creds{display:grid;grid-template-columns:400px 1fr;gap:64px;background:#f6f4f0;padding:110px 56px;}
.edu-intro{align-self:center;}
.edu-intro-title{font-size:clamp(32px,3.3vw,44px);font-weight:800;line-height:1.16;letter-spacing:-.02em;color:#1a1612;margin:14px 0 18px;}
.edu-intro-line{width:40px;height:3px;background:var(--r);margin-bottom:22px;}
.edu-intro-desc{font-size:15.5px;font-weight:400;line-height:1.75;color:#5c554c;max-width:340px;}

.edu-content{display:flex;flex-direction:column;gap:52px;}
.edu-block-heading{display:flex;align-items:center;gap:20px;margin-bottom:24px;}
.edu-block-heading span{font-size:15px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#1a1612;white-space:nowrap;}
.edu-block-line{flex:1;height:1px;background:#ddd7cc;}

.edu-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.edu-card2{background:#fff;border:1px solid #e6e1d7;border-radius:18px;padding:36px;box-shadow:0 4px 20px rgba(30,20,10,.04);transition:box-shadow .3s,transform .3s;}
.edu-card2:hover{box-shadow:0 14px 30px rgba(30,20,10,.08);transform:translateY(-3px);}
.edu-card2-icon{width:60px;height:60px;border-radius:50%;background:#f1eee6;color:var(--r);display:flex;align-items:center;justify-content:center;margin-bottom:22px;}
.edu-card2-degree{font-size:19px;font-weight:800;color:#1a1612;line-height:1.32;margin-bottom:8px;letter-spacing:-.01em;}
.edu-card2-field{font-size:14.5px;font-weight:600;color:#3a352e;margin-bottom:4px;}
.edu-card2-spec{font-size:13.5px;font-style:italic;color:#8a8074;margin-bottom:20px;}
.edu-card2-meta{font-size:13px;font-weight:500;color:#8a8074;margin-bottom:20px;}
.edu-card2-divider{height:1px;background:#e9e4d9;margin-bottom:20px;}
.edu-card2-school{font-size:14px;font-weight:700;color:#2e2820;margin-bottom:4px;}
.edu-card2-loc{font-size:13px;color:#8a8074;}
.edu-card2-hi{font-size:13px;font-weight:400;color:#8a8074;line-height:1.7;margin-top:14px;}

.cert-grid2{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
.cert-card2{background:#fff;border:1px solid #e6e1d7;border-radius:14px;padding:20px;transition:border-color .25s,transform .25s,box-shadow .25s;}
.cert-card2:hover{border-color:#d8d1c2;transform:translateY(-3px);box-shadow:0 12px 24px rgba(30,20,10,.07);}
.cert-card2-icon{width:44px;height:44px;border-radius:10px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:800;letter-spacing:.01em;line-height:1.15;text-align:center;margin-bottom:14px;flex-shrink:0;}
.cert-card2-icon.circle{border-radius:50%;}
.cert-card2-icon.square{border-radius:10px;}
.cert-card2-icon.ring{box-shadow:inset 0 0 0 2px rgba(255,255,255,.55);}
.cert-card2-icon.diamond{transform:rotate(45deg);border-radius:6px;width:34px;height:34px;margin:5px 5px 19px;}
.cert-card2-icon.blob{border-radius:60% 40% 55% 45%/45% 55% 40% 60%;}
.cert-card2-icon.logo{background:#fff;border:1px solid #e6e2d8;padding:8px;}
.cert-card2-icon.logo img{width:100%;height:100%;object-fit:contain;display:block;}
.cert-card2-name{font-size:13.5px;font-weight:700;color:#1a1612;line-height:1.4;margin-bottom:6px;}
.cert-card2-provider{font-size:12px;color:#8a8074;}
.cert-card2-date{font-size:11px;color:#a39a8b;margin-top:6px;letter-spacing:.02em;}
.cert-card2-view{font-size:11.5px;font-weight:600;color:var(--r);margin-top:10px;display:flex;align-items:center;gap:4px;}
.cert-card2.has-doc{cursor:pointer;}
.cert-card2.has-doc:hover{border-color:var(--r);}

/* ─── PROFESSIONAL EXPERIENCE (about.html, dark) ─── */
.s-pro-exp{display:grid;grid-template-columns:380px 1fr;gap:64px;padding:110px 56px;background:var(--bg);border-bottom:1px solid var(--line);}
.pe-intro{align-self:center;}
.pe-title{font-size:clamp(32px,3.3vw,44px);font-weight:800;line-height:1.16;letter-spacing:-.02em;margin:14px 0 20px;color:var(--w);}
.pe-title .dot{color:var(--r);}
.pe-desc{font-size:15.5px;font-weight:400;line-height:1.75;color:var(--m);max-width:340px;}

.pe-cards{display:flex;flex-direction:column;gap:20px;}
.pe-card{background:var(--bg2);border:1px solid var(--line2);border-radius:16px;padding:32px 36px;transition:border-color .3s,transform .3s;}
.pe-card:hover{border-color:rgba(204,34,0,.35);transform:translateY(-2px);}
.pe-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;}
.pe-accent{width:20px;height:3px;background:var(--r);margin-bottom:12px;}
.pe-company{font-size:19px;font-weight:800;color:var(--w);letter-spacing:-.01em;}
.pe-dates{font-size:13.5px;color:var(--m);white-space:nowrap;padding-top:4px;flex-shrink:0;}
.pe-role{font-size:15px;font-weight:600;color:var(--off);margin-top:16px;margin-bottom:4px;}
.pe-dept{font-size:13.5px;font-style:italic;color:var(--m);margin-bottom:16px;}
.pe-text{font-size:14px;line-height:1.7;color:var(--m);}

.pe-timeline2{margin:20px 0 20px;padding-left:22px;position:relative;}
.pe-timeline2::before{content:'';position:absolute;left:4px;top:6px;bottom:6px;width:1px;background:var(--line2);}
.pe-tl2-item{position:relative;font-size:15px;font-weight:600;color:var(--off);padding:8px 0;}
.pe-tl2-dot{position:absolute;left:-22px;top:14px;width:8px;height:8px;border-radius:50%;background:var(--r);}
.pe-divider{height:1px;background:var(--line);margin-bottom:16px;}
.pe-achievement{font-size:13.5px;color:var(--m);line-height:1.6;}

/* ─── SECTION HEADER / BEYOND WORK (about.html) ─── */
.section-header{text-align:center;margin-bottom:48px;}
.section-header .label{margin-bottom:0;}
.s-beyond{padding:64px 56px;background:var(--bg2);}
.beyond-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);margin-top:48px;}
.beyond-card{padding:36px 28px;border-right:1px solid var(--line);display:flex;gap:18px;align-items:flex-start;transition:background .25s;}
.beyond-card:last-child{border-right:none;}
.beyond-card:hover{background:rgba(204,34,0,.04);}
.beyond-icon{color:var(--r);flex-shrink:0;line-height:0;margin-top:2px;}
.beyond-title{font-size:16px;font-weight:700;margin-bottom:6px;}
.beyond-sub{font-size:14px;font-weight:400;color:var(--m);line-height:1.65;}


/* ─── CERTIFICATIONS (home page) ─── */
.cert-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);}
.cert-item{padding:30px 28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .22s;position:relative;overflow:hidden;}
.cert-item::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:var(--r);transform:scaleX(0);transform-origin:left;transition:transform .32s;}
.cert-item:hover::before{transform:scaleX(1);}
.cert-item:nth-child(3n){border-right:none;}
.cert-item:nth-last-child(-n+3){border-bottom:none;}
.cert-item:hover{background:rgba(204,34,0,.03);}
.ci-iss{font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--r);margin-bottom:8px;opacity:.85;}
.ci-name{font-size:16px;font-weight:500;line-height:1.35;letter-spacing:-.01em;margin-bottom:6px;transition:color .2s;}
.ci-date{font-size:12.5px;font-weight:400;color:var(--dim);}
.cert-item.has-doc{cursor:none;}
.ci-view{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--r);margin-top:12px;opacity:0;transform:translateY(4px);transition:opacity .22s,transform .22s;}
.cert-item.has-doc:hover .ci-view{opacity:1;transform:translateY(0);}
.cert-item.has-doc:hover .ci-name{color:var(--r);}
.modal-box.cert-box{max-width:520px;padding:20px;}
.cert-box .modal-close{top:16px;right:18px;}
.cert-view-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px;padding-right:32px;flex-wrap:wrap;}
.cert-view-meta .modal-tag{margin-bottom:8px;}
.cert-view-meta .modal-title{font-size:17px;margin-bottom:4px;}
.cert-view-meta .cert-view-date{font-size:12.5px;color:var(--dim);}
.cert-view-actions{display:flex;gap:10px;flex-shrink:0;}
.cert-view-actions a{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:1px solid var(--line2);color:var(--m);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;transition:all .22s;white-space:nowrap;}
.cert-view-actions a:hover{border-color:var(--r);color:var(--r);}
.cert-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.cert-tabs.hidden{display:none;}
.cert-frame-wrap{background:#3a3a3a;border:1px solid var(--line2);width:100%;height:42vh;}
.cert-frame-wrap iframe{width:100%;height:100%;border:none;display:block;}
.cert-frame-wrap img{width:100%;height:100%;object-fit:contain;}

/* ─── CONTACT (home page) ─── */
.contact-sec{background:var(--bg2);text-align:center;padding:120px 56px;position:relative;overflow:hidden;}
.contact-bg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(105px,19.44vw,273px);font-weight:700;color:rgba(255,255,255,.018);white-space:nowrap;pointer-events:none;letter-spacing:-.05em;}
body.light .contact-bg{color:rgba(30,20,10,.03);}
.contact-h{font-size:clamp(43px,6.48vw,84px);font-weight:700;letter-spacing:-.03em;line-height:1.0;margin:44px 0 16px;position:relative;}
.contact-h em{font-style:normal;color:var(--r);}
.contact-sub{font-size:17px;font-weight:400;color:var(--m);max-width:480px;margin:0 auto 52px;line-height:1.75;position:relative;}
.contact-links{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;position:relative;}

/* ─── MODAL (home page) ─── */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.78);z-index:1000;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(6px);}
.modal-overlay.active{display:flex;}
.modal-box{position:relative;background:var(--bg2);border:1px solid var(--line2);max-width:680px;width:100%;max-height:90vh;overflow-y:auto;padding:52px 48px;animation:modalIn .35s cubic-bezier(.23,1,.32,1);}
.modal-close{position:absolute;top:20px;right:24px;background:none;border:none;color:var(--m);font-size:22.5px;cursor:none;transition:color .2s;line-height:1;}
.modal-close:hover{color:var(--r);}
.modal-tag{font-size:13px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--r);margin-bottom:14px;}
.modal-title{font-size:30px;font-weight:700;letter-spacing:-.02em;margin-bottom:10px;}
.modal-sub{font-size:16px;color:var(--m);margin-bottom:36px;line-height:1.6;}
.hire-form{display:flex;flex-direction:column;gap:20px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-group{display:flex;flex-direction:column;gap:8px;}
.form-group label{font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);}
.req{color:var(--r);}
.form-group input,.form-group select,.form-group textarea{background:var(--bg3);border:1px solid var(--line2);color:var(--w);font-family:var(--f);font-size:16px;padding:13px 16px;outline:none;transition:border-color .2s;width:100%;resize:none;}
.form-group input::placeholder,.form-group textarea::placeholder{color:var(--dim);}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--r);}
.form-group select{appearance:none;cursor:none;}
.form-group select option{background:var(--bg2);color:var(--w);}
.form-success{text-align:center;padding:48px 20px;}
.success-icon{width:60px;height:60px;border-radius:50%;border:2px solid var(--r);display:flex;align-items:center;justify-content:center;font-size:27px;color:var(--r);margin:0 auto 20px;}
.form-success h3{font-size:24.5px;font-weight:700;margin-bottom:10px;}
.form-success p{color:var(--m);font-size:16px;}

/* ─── PROJECT INDEX / FILTER (projects.html) ─── */
.page-hero{padding:160px 56px 64px;border-bottom:1px solid var(--line);}
.page-h{font-size:clamp(36.5px,4.97vw,61px);font-weight:700;line-height:1.1;letter-spacing:-.02em;margin-bottom:20px;max-width:820px;}
.page-h em{font-style:normal;color:var(--m);}
.page-sub{font-size:17px;line-height:1.8;color:var(--m);max-width:620px;}
.filter-bar{display:flex;flex-wrap:wrap;gap:10px;padding:32px 56px;border-bottom:1px solid var(--line);position:sticky;top:72px;background:var(--bg);z-index:100;}
.proj-index{padding:8px 56px 24px;}
.index-list{display:flex;flex-direction:column;}
.index-row{display:grid;grid-template-columns:64px 1fr auto;align-items:start;gap:28px;padding:32px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;transition:padding-left .3s,background .3s;position:relative;}
.index-row::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--r);transform:scaleY(0);transform-origin:bottom;transition:transform .4s;}
.index-row:hover{padding-left:20px;background:var(--bg2);}
.index-row:hover::before{transform:scaleY(1);}
.index-row.hidden-row{display:none;}
.index-num{font-size:15px;font-weight:600;color:var(--r);letter-spacing:.1em;padding-top:4px;}
.index-main .index-tag{font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--r);margin-bottom:10px;opacity:.85;}
.index-title{font-size:21.5px;font-weight:600;letter-spacing:-.01em;margin-bottom:10px;line-height:1.3;}
.index-desc{font-size:15px;font-weight:400;line-height:1.75;color:var(--m);max-width:640px;margin-bottom:14px;}
.index-tags{display:flex;flex-wrap:wrap;gap:6px;}
.index-arrow{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--m);white-space:nowrap;padding-top:6px;transition:gap .2s,color .2s;}
.index-row:hover .index-arrow{gap:14px;color:var(--r);}

/* ─── CASE STUDY CONTENT (projects.html inline sections + project-*.html standalone pages) ─── */
.case{display:none;padding:96px 56px 80px;max-width:980px;margin:0 auto;scroll-margin-top:96px;}
.case.active{display:block;}
body.viewing-case .proj-index,body.viewing-case .filter-bar,body.viewing-case .case-divider{display:none;}
.case-divider{border:none;border-top:1px solid var(--line);margin:0;}
.case-head{margin-bottom:56px;}
.disclaimer-badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:7px 14px;border:1px solid rgba(204,34,0,.4);color:var(--r);background:rgba(204,34,0,.06);margin-bottom:18px;}
.case-title,.proj-title-big{font-size:clamp(28px,3.89vw,44px);font-weight:700;line-height:1.12;letter-spacing:-.02em;margin-bottom:16px;max-width:900px;}
.case-oneliner,.proj-oneliner{font-size:16.5px;line-height:1.75;color:var(--m);max-width:720px;margin-bottom:22px;}
.proj-meta-row{display:flex;gap:32px;flex-wrap:wrap;}
.proj-meta-item{display:flex;flex-direction:column;gap:4px;}
.proj-meta-label{font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);}
.proj-meta-val{font-size:15px;font-weight:500;color:var(--m);}

.proj-body{max-width:900px;margin:0 auto;padding:64px 56px 100px;}
.section-block{margin-bottom:56px;}
.sb-h{font-size:clamp(20px,2.38vw,27px);font-weight:700;line-height:1.25;letter-spacing:-.02em;margin-bottom:16px;}
.sb-p{font-size:16.5px;font-weight:400;line-height:1.8;color:var(--m);margin-bottom:14px;}
.sb-p strong{color:var(--w);font-weight:500;}
body.light .sb-p strong{color:var(--off);}
.highlight{background:var(--bg2);border-left:3px solid var(--r);padding:22px 26px;margin:24px 0;}
.highlight p{font-size:16.5px;font-weight:400;line-height:1.75;color:var(--m);font-style:italic;}
.phase-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2px;margin:24px 0;}
.phase-card{background:var(--bg2);padding:24px 22px;position:relative;overflow:hidden;}
.phase-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--r);transform:scaleX(0);transform-origin:left;transition:transform .4s;}
.phase-card:hover::before{transform:scaleX(1);}
.ph-num{font-size:11.5px;font-weight:600;letter-spacing:.14em;color:var(--r);margin-bottom:10px;text-transform:uppercase;}
.ph-title{font-size:16.5px;font-weight:600;margin-bottom:8px;letter-spacing:-.01em;}
.ph-desc{font-size:14.5px;font-weight:400;line-height:1.65;color:var(--m);}
.feat-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0;}
.feat-item{display:flex;align-items:flex-start;gap:12px;font-size:14.5px;font-weight:400;line-height:1.6;color:var(--m);padding:13px 15px;background:var(--bg2);}
.feat-item::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--r);flex-shrink:0;margin-top:5px;}
.kpi-table{width:100%;border-collapse:collapse;margin:18px 0;}
.kpi-table th{font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);padding:9px 14px;border-bottom:1px solid var(--line);text-align:left;}
.kpi-table td{font-size:14.5px;font-weight:400;color:var(--m);padding:12px 14px;border-bottom:1px solid var(--line);}
.kpi-table td:first-child{font-weight:500;color:var(--w);}
body.light .kpi-table td:first-child{color:var(--off);}
.tech-badges{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0;}
.outcome-row{display:flex;gap:36px;padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:28px 0;flex-wrap:wrap;}
.out-n{font-size:39px;font-weight:700;line-height:1;letter-spacing:-.02em;}
.out-n span{color:var(--r);}
.out-l{font-size:12px;font-weight:400;color:var(--dim);letter-spacing:.06em;margin-top:6px;text-transform:uppercase;}
.assumption-box{background:rgba(230,150,10,.05);border-left:3px solid #e6960a;padding:20px 24px;margin:22px 0;}
.assumption-box .sb-label{color:#e6960a;}
.assumption-box .sb-label::after{background:#e6960a;}
.assumption-box p{font-size:15.5px;line-height:1.75;color:var(--m);margin-bottom:8px;}
.progress-box{background:rgba(230,150,10,.08);border:1px solid rgba(230,150,10,.35);padding:18px 22px;margin:20px 0;font-size:15px;line-height:1.7;color:var(--m);}
.progress-box strong{color:#e6960a;}
.datasrc-list{list-style:none;margin:14px 0;}
.datasrc-list li{font-size:15px;color:var(--m);padding:8px 0;border-bottom:1px solid var(--line);}
.datasrc-list a{color:var(--r);text-decoration:none;}
.datasrc-list a:hover{text-decoration:underline;}
.benefits-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:24px 0;}
.benefits-col h4{font-size:14px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--r);margin-bottom:14px;}
.benefits-col ul{list-style:none;}
.benefits-col li{font-size:15px;line-height:1.7;color:var(--m);padding:8px 0 8px 18px;position:relative;}
.benefits-col li::before{content:'';position:absolute;left:0;top:15px;width:5px;height:5px;border-radius:50%;background:var(--r);}
.arch-stack{display:flex;flex-direction:column;gap:2px;margin:20px 0;}
.arch-layer{background:var(--bg2);padding:16px 22px;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.arch-layer .al-name{font-size:15px;font-weight:600;color:var(--w);}
body.light .arch-layer .al-name{color:var(--off);}
.arch-layer .al-desc{font-size:14px;color:var(--m);text-align:right;}
.proj-shot{margin:22px 0;border:1px solid var(--line2);background:var(--bg2);}
.proj-shot img{width:100%;display:block;}
.proj-shot-cap{padding:12px 16px;font-size:13px;line-height:1.6;color:var(--dim);font-style:italic;border-top:1px solid var(--line);}
.arch-diagram{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin:24px 0;}
.arch-block{background:var(--bg2);padding:20px 16px;text-align:center;position:relative;overflow:hidden;}
.arch-block::after{content:'→';position:absolute;right:-12px;top:50%;transform:translateY(-50%);color:var(--r);font-size:18.5px;z-index:2;}
.arch-block:last-child::after{display:none;}
.arch-icon{font-size:24.5px;margin-bottom:8px;}
.arch-label{font-size:12.5px;font-weight:600;letter-spacing:.08em;color:var(--w);margin-bottom:4px;}
body.light .arch-label{color:var(--off);}
.arch-sub{font-size:11.5px;color:var(--dim);}
.case-foot{display:flex;justify-content:center;gap:16px;padding-top:24px;flex-wrap:wrap;}

/* ─── CASE STUDY HERO (project-*.html standalone pages) ─── */
.proj-hero{position:relative;min-height:280px;display:flex;align-items:flex-end;padding:0 72px 56px;margin-top:64px;overflow:hidden;}
.proj-hero-bg{position:absolute;inset:0;background:var(--bg2);z-index:0;}
.proj-hero-line{position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,var(--r),transparent);z-index:2;}
.proj-hero-content{position:relative;z-index:3;padding-top:36px;}
.proj-meta-row{display:flex;gap:32px;flex-wrap:wrap;}

/* ─── FOOTER ─── */
footer{padding:32px 56px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);}
.fc{font-size:12.5px;font-weight:400;color:var(--dim);}
.fr{display:flex;align-items:center;gap:24px;}
.fr a{font-size:12.5px;font-weight:400;color:var(--dim);text-decoration:none;letter-spacing:.06em;transition:color .2s;}
.fr a:hover{color:var(--r);}
.fr-soon{font-size:12.5px;font-weight:400;color:var(--dim);letter-spacing:.06em;opacity:.5;cursor:default;}
.fdot,.city-dot{width:6px;height:6px;border-radius:50%;background:var(--r);animation:pulse 2s infinite;flex-shrink:0;}

/* ─── SCROLL CUE (home hero bottom bar) ─── */
.scroll-cue{display:flex;align-items:center;gap:14px;font-size:11.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);cursor:none;}
.scroll-cue svg{animation:bounce 2s infinite;flex-shrink:0;}

/* ─── ANIMATIONS ─── */
@keyframes up{to{opacity:1;transform:translateY(0);}}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(204,34,0,.6)}50%{box-shadow:0 0 0 6px rgba(204,34,0,0)}}
@keyframes modalIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.r{opacity:0;transform:translateY(22px);transition:opacity .75s cubic-bezier(.23,1,.32,1),transform .75s cubic-bezier(.23,1,.32,1);}
.r.v{opacity:1;transform:translateY(0);}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}

/* Hero entrance (home page, plays on load - independent of scroll-reveal) */
.h-hello{font-size:15.5px;font-weight:700;letter-spacing:.3em;color:var(--r);text-transform:uppercase;margin-bottom:22px;opacity:0;transform:translateY(16px);animation:up .6s .3s forwards;}
.h-name{font-weight:700;line-height:1.1;letter-spacing:-.01em;margin-bottom:22px;opacity:0;animation:up .8s .5s forwards;}
.h-name .ln1{display:block;font-size:clamp(28px,3.46vw,46px);color:var(--w);font-weight:700;white-space:nowrap;}
.h-name .ln2{display:block;font-size:clamp(27px,3.24vw,44px);color:var(--m);font-weight:700;white-space:nowrap;}
.banner-right .h-redline{margin-bottom:26px;opacity:0;animation:up .5s .75s forwards;}
.h-desc{font-size:16px;font-weight:400;line-height:1.75;color:var(--m);max-width:460px;margin-bottom:40px;opacity:0;animation:up .7s 1s forwards;}
.h-desc strong{color:var(--w);font-weight:500;}
.h-ctas{display:flex;gap:20px;align-items:center;opacity:0;animation:up .7s 1.1s forwards;flex-wrap:wrap;}

/* ─── RESPONSIVE ─── */
@media(max-width:1024px){
  .s-journey{grid-template-columns:1fr;}
  .journey-left{margin:24px;}
  .journey-right{grid-template-columns:repeat(2,1fr);}
  .jcard-wide{grid-column:span 2;}
  .beyond-grid{grid-template-columns:repeat(2,1fr);}
  .beyond-card:nth-child(2){border-right:none;}
  .beyond-card:nth-child(3),.beyond-card:nth-child(4){border-top:1px solid var(--line);}
  .beyond-card:nth-child(4){border-right:none;}
  .s-edu-creds{grid-template-columns:320px 1fr;gap:40px;}
  .cert-grid2{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:960px){
  nav{padding:0 20px;height:60px;}
  .nav-links{display:none;}
  .hamburger{display:flex;}
  .s-banner{grid-template-columns:1fr;min-height:auto;}
  .banner-right{display:none;}
  .banner-left{padding:100px 24px 52px;}
  .banner-bar{padding:0 24px;}
  section{padding:72px 24px;}
  .ag{grid-template-columns:1fr;gap:44px;}
  .exp-grid{grid-template-columns:1fr;}
  .exp-card{border-right:none;border-bottom:1px solid var(--line);}
  .exp-card:last-child{border-bottom:none;}
  .ei{grid-template-columns:1fr;gap:6px;}
  .ei-loc{text-align:left;}
  .stats{flex-wrap:wrap;gap:28px;}
  .proj-row{grid-template-columns:32px 1fr;}
  .proj-cta{display:none;}
  .edu-grid{grid-template-columns:1fr;}
  .cert-grid{grid-template-columns:1fr 1fr;}
  .skills-grid{grid-template-columns:1fr 1fr;}
  .form-row{grid-template-columns:1fr;}
  .modal-box{padding:36px 24px;}
  .s-beyond{padding:52px 24px;}
  .s-edu-creds{grid-template-columns:1fr;gap:40px;padding:72px 24px;}
  .edu-intro{align-self:start;}
  .s-pro-exp{grid-template-columns:1fr;gap:40px;padding:72px 24px;}
  .pe-card{padding:28px 24px;}
  .page-hero{padding:120px 24px 40px;}
  .filter-bar{padding:20px 24px;top:60px;}
  .proj-index{padding:8px 24px 24px;}
  .index-row{grid-template-columns:40px 1fr;gap:16px;}
  .index-arrow{display:none;}
  .case{padding:64px 24px 56px;}
  .proj-hero{padding:0 24px 40px;}
  .proj-body{padding:56px 24px 80px;}
  .phase-grid,.feat-list,.benefits-grid{grid-template-columns:1fr;}
  .arch-diagram{grid-template-columns:1fr;}
  .arch-block::after{content:'↓';right:50%;top:auto;bottom:-14px;transform:translateX(50%);}
  footer{flex-direction:column;gap:14px;text-align:center;padding:24px;}
  body{cursor:auto;}
  #cur,#cf{display:none;}
}
@media(max-width:540px){
  .cert-grid{grid-template-columns:1fr;}
  .skills-grid{grid-template-columns:1fr;}
  .h-name .ln1{font-size:clamp(30px,7.56vw,50.5px);}
  .h-name .ln2{font-size:clamp(22.5px,5.94vw,39px);}
  .edu-cards{grid-template-columns:1fr;}
  .cert-grid2{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:480px){
  .beyond-grid{grid-template-columns:1fr;}
  .beyond-card{border-right:none!important;border-bottom:1px solid var(--line)!important;}
  .beyond-card:last-child{border-bottom:none!important;}
  .journey-right{grid-template-columns:1fr;}
  .jcard-wide{grid-column:span 1;}
}
