:root{
  --bg:#f6fafd; --surface:#ffffff; --ink:#0f2231; --muted:#5b6f82;
  --line:#e3edf5; --accent:#5aa5de; --accent-soft:#eaf5fe;
  --accent-ink:#2d72b5; --shadow:0 1px 3px rgba(15,23,42,.06),0 8px 24px rgba(15,23,42,.06);
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:17px;scroll-behavior:smooth;scroll-padding-top:76px}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.7;font-size:1rem;-webkit-font-smoothing:antialiased}
h1,h2,h3,.brand{font-family:'Space Grotesk',sans-serif}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
section{scroll-margin-top:76px}

/* NAV */
nav{position:sticky;top:0;z-index:50;background:rgba(246,250,253,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{font-weight:700;font-size:1.05rem;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:8px}
.brand-logo{width:28px;height:28px;display:block}
.nav-links{display:flex;gap:24px;list-style:none}
.nav-links a{text-decoration:none;color:var(--muted);font-size:.9rem;font-weight:500;transition:color .15s}
.nav-links a:hover{color:var(--accent)}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:6px}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0;border-radius:2px}
@media(max-width:900px){
  .nav-links{position:absolute;top:64px;left:0;right:0;background:var(--surface);flex-direction:column;gap:0;padding:8px 24px;border-bottom:1px solid var(--line);display:none}
  .nav-links.open{display:flex}
  .nav-links li{width:100%}
  .nav-links a{display:block;padding:12px 0;border-bottom:1px solid var(--line)}
  .nav-toggle{display:block}
}

/* HERO */
header{position:relative;overflow:hidden}
header::before{content:"";position:absolute;top:-40%;right:-10%;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(90,165,222,.14),transparent 65%);pointer-events:none}
.hero{display:grid;grid-template-columns:auto 1fr;gap:52px;align-items:center;padding:80px 0 72px;position:relative}
.ph-photo{width:260px;height:260px;border-radius:50%;object-fit:cover;object-position:50% 8%;border:3px solid #fff;box-shadow:var(--shadow);flex-shrink:0}
.avatar{width:230px;height:230px;border-radius:50%;background:linear-gradient(135deg,#8ec9f2,#3f87c7);display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Space Grotesk';font-size:5rem;font-weight:700;box-shadow:var(--shadow)}
.eyebrow{display:inline-block;color:var(--accent-ink);font-weight:700;letter-spacing:.09em;text-transform:uppercase;font-size:.86rem;background:linear-gradient(120deg,#e6f3fd,#efe8ff 55%,#fde8f2);border:1px solid #dbeaf8;border-radius:999px;padding:7px 16px}
h1{font-size:clamp(2.8rem,6.4vw,4.4rem);line-height:1.04;margin:16px 0 10px;letter-spacing:-.02em}
h1 .grad{background:linear-gradient(115deg,#4f9bdb 0%,#7c5cff 52%,#e05a97 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.role{font-size:1.35rem;color:#3f566b;margin-bottom:6px;font-weight:500}
.hero-loc{display:inline-flex;align-items:center;gap:6px;font-size:.95rem;color:var(--accent-ink);font-weight:600;background:var(--accent-soft);border:1px solid #dcebf7;border-radius:999px;padding:5px 14px;margin-bottom:18px}
.hero p.lead{font-size:1.13rem;max-width:58ch;color:#3a4f63;margin-bottom:28px}
.hero p.lead b{font-weight:700}
.b1{color:#2d72b5}
.b2{color:#7c5cff}
.b3{color:#d94f86}
.b4{color:#1f9d8a}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:600;font-size:1rem;padding:13px 24px;border-radius:10px;transition:transform .12s,box-shadow .12s}
.btn-primary{background:linear-gradient(135deg,#83c5f0,#4f9bdb);color:#fff;box-shadow:0 6px 16px rgba(90,165,222,.4)}
.btn-primary:hover{transform:translateY(-1px)}
.btn-ghost{border:1px solid var(--line);color:var(--ink);background:var(--surface)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent-ink)}
.contact-meta{color:var(--muted);font-size:.98rem;margin-top:18px;font-weight:500}
.cta-strip{padding:0 0 18px}
.cta-block{border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow);padding:20px 24px}
.cta-block .cta-row{justify-content:center;align-items:center}
.cta-block .cta-row .email-line{flex-basis:100%;text-align:center;font-size:1.05rem;color:var(--accent-ink);font-weight:700;letter-spacing:.01em;text-decoration:none;margin-bottom:6px}
.cta-block .cta-row .email-line:hover{text-decoration:underline}
.stats{display:flex;gap:28px;margin-top:28px;flex-wrap:wrap}
.stat b{font-family:'Space Grotesk';font-size:1.5rem;color:var(--accent-ink)}
.stat span{display:block;font-size:.88rem;color:var(--muted)}
@media(max-width:760px){.hero{grid-template-columns:1fr;text-align:center}.avatar,.ph-photo{margin:0 auto}.cta-row{justify-content:center}.stats{justify-content:center}}

/* SECTIONS COMMON */
.sec{padding:70px 0}
.sec-alt{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-head{margin-bottom:44px}
.sec-head h2{font-size:clamp(2rem,4vw,2.8rem);line-height:1.15;letter-spacing:-.01em}
.sec-head p{font-size:1.08rem;color:var(--muted);margin-top:8px;max-width:62ch}
.lead-bio{font-size:1.2rem;line-height:1.8;color:#33485c;max-width:74ch}
.lead-bio b{font-weight:700}


/* EXPERTISE cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.exp-demo{margin:0 0 28px;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);background:#fff}
.exp-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fff}
.exp-head h3{margin:0;font:700 1.02rem 'Space Grotesk',sans-serif;color:var(--ink)}
.exp-nav{display:flex;align-items:center;gap:8px}
.exp-arrow{width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:9px;cursor:pointer;color:var(--accent);font-size:1.2rem;line-height:1;transition:.15s}
.exp-arrow:hover{background:var(--accent-soft);border-color:var(--accent)}
.exp-dots{display:flex;gap:6px}
.exp-dots i{width:7px;height:7px;border-radius:99px;background:#cbd8e6;transition:.25s;cursor:pointer}
.exp-dots i.on{width:18px;background:var(--accent)}
.exp-view{overflow:hidden}
.exp-track{display:flex;width:200%;transition:transform .85s cubic-bezier(.72,.05,.24,1)}
.exp-slide{position:relative;width:50%;flex:none;display:block}
.exp-slide video{width:100%;display:block;aspect-ratio:16/5.4;object-fit:cover;transition:filter .2s}
.exp-slide:hover video{filter:brightness(.7)}
.exp-cap{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:30px 16px 14px;background:linear-gradient(180deg,transparent,rgba(10,24,42,.82));color:#fff;opacity:0;transition:opacity .2s}
.exp-slide:hover .exp-cap{opacity:1}
.exp-cap b{font:700 1.02rem 'Space Grotesk',sans-serif}
.exp-cap span{font-size:.85rem;opacity:.92}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:var(--shadow)}
.card.ex{position:relative;overflow:hidden;padding:26px;border-radius:16px}
.ex-bar{position:absolute;top:0;left:0;right:0;height:5px}
.ex-a{background:linear-gradient(180deg,#fdfbff,#f3eeff);border-color:#ddd3ff}
.ex-b{background:linear-gradient(180deg,#fffbf0,#fff2d6);border-color:#f7ddab}
.ex-c{background:linear-gradient(180deg,#fff7fb,#ffeef3);border-color:#f8cfe0}
.ex-a .ex-bar{background:linear-gradient(90deg,#6d4ddb,#a78bfa)}
.ex-b .ex-bar{background:linear-gradient(90deg,#b46a06,#e9b85a)}
.ex-c .ex-bar{background:linear-gradient(90deg,#cf3f7b,#f08bb4)}
.ex-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.ex-num{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1rem;color:#b9c8d8}
.ex-a .ptag{color:#6d4ddb;border-color:#ddd3ff;background:rgba(243,239,255,.94)}
.ex-b .ptag{color:#b46a06;border-color:#f7ddab;background:rgba(255,247,232,.94)}
.ex-c .ptag{color:#cf3f7b;border-color:#f8cfe0;background:rgba(255,238,246,.94)}
.ex-a .ico{color:#6d4ddb;background:#e9e2ff}
.ex-b .ico{color:#b46a06;background:#ffedc8}
.ex-c .ico{color:#cf3f7b;background:#ffdff0}
.xtags{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.xtags span{font-size:.8rem;font-weight:600;padding:4px 11px;border-radius:999px;border:1px solid;background:rgba(255,255,255,.9);box-shadow:0 1px 3px rgba(30,60,90,.08)}
.ex-a .xtags span{color:#6d4ddb;border-color:#ddd3ff}
.ex-b .xtags span{color:#b46a06;border-color:#f4d9a8}
.ex-c .xtags span{color:#cf3f7b;border-color:#f8cfe0}
.card .ico{width:40px;height:40px;border-radius:10px;background:var(--accent-soft);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-size:1.1rem;margin-bottom:14px}
.card h3{font-size:1.15rem;margin-bottom:8px}
.card p{font-size:1rem;color:var(--muted)}

/* TIMELINE (My Work) */
.timeline{border-left:2px solid var(--line);margin-left:8px;padding-left:34px}
.titem{position:relative;display:grid;grid-template-columns:88px 1fr;gap:24px;padding:20px 0}
.titem::before{content:"";position:absolute;left:calc(-34px - 1px);top:26px;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.tlogo{width:88px;height:88px;border-radius:18px;object-fit:contain;background:#fff;border:1px solid var(--line);padding:10px;box-shadow:var(--shadow)}
.tdate{font-size:.9rem;font-weight:600;color:var(--accent-ink);letter-spacing:.03em;margin-top:4px}
.tbody h3{font-size:1.2rem;margin:3px 0 4px}
.tbody p{font-size:1rem;color:var(--muted);margin:0}
@media(max-width:520px){.titem{grid-template-columns:64px 1fr;gap:16px}.tlogo{width:64px;height:64px;border-radius:14px}}

/* IMAGE PLACEHOLDERS */
.pc-ph{height:188px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:0 16px;background:repeating-linear-gradient(45deg,#eaf5fe,#eaf5fe 14px,#e0effb 14px,#e0effb 28px);border-bottom:1px solid var(--line);color:var(--accent-ink);font-size:.88rem;font-weight:600}
.pc-ph small{font-weight:500;color:var(--muted)}
.pbody .figph{border:1.5px dashed #b6d7ef;border-radius:12px;padding:44px 20px;text-align:center;color:var(--accent-ink);background:var(--accent-soft);font-size:.96rem;margin:18px 0}
.pbody .figph small{display:block;margin-top:6px;color:var(--muted);font-weight:400}

/* COMPACT TOOLKIT / TOOL MARQUEE */
.skillbar{margin-top:8px}
.tg{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;padding:9px 0;border-top:1px solid var(--line)}
.tg:first-child{border-top:0}
.tg b{min-width:150px;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-ink);font-family:'Space Grotesk'}
.chip{font-size:.84rem;font-weight:500;color:#3a5470;background:var(--accent-soft);border:1px solid #dcebf7;padding:5px 12px;border-radius:999px}
@media(max-width:760px){.skillbar .tg b{min-width:0}}
.kit-note{font-size:.95rem;color:var(--muted);margin-top:18px;max-width:84ch}
.marquee{position:relative;overflow:hidden;margin-top:22px;padding:8px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee-track{display:flex;gap:44px;width:max-content;animation:scroll-x 45s linear infinite}
.marquee.rev .marquee-track{animation-direction:reverse;animation-duration:52s}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes scroll-x{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.mitem{display:flex;flex-direction:column;align-items:center;gap:9px;min-width:104px}
.mitem img{height:58px;width:58px;object-fit:contain;filter:saturate(.95)}
.mitem span{font-size:.84rem;color:var(--muted);font-weight:500;white-space:nowrap}
.marquee+.marquee{margin-top:2px}


/* WORK timeline */
.job{margin-bottom:0}
.job-hd{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.job-hd h3{font-size:1.15rem}
.job-hd .co{color:var(--accent-ink)}
.job-date{font-size:.88rem;color:var(--muted);font-weight:600;white-space:nowrap}
.job-role{font-size:1.02rem;color:var(--muted);margin-bottom:18px}
.proj{display:grid;grid-template-columns:150px 1fr;gap:18px;padding:20px 0;border-top:1px solid var(--line)}
.proj-tag{font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);padding-top:2px}
.proj h4{font-size:1.08rem;margin-bottom:8px}
.proj ul{list-style:none}
.proj li{position:relative;padding-left:16px;font-size:1rem;color:#334a60;margin-bottom:7px}
.proj li::before{content:"";position:absolute;left:2px;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--accent)}

/* PROJECT CARDS */
.flips{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.pcard{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.pcard:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(90,165,222,.18);border-color:var(--accent)}
.pcard img,.pcard .pc-demo{width:100%;height:188px;object-fit:cover;display:block}
.pcard .pc-img{position:relative;overflow:hidden;background:#0d2238}
.pcard .pc-demo{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .18s ease}
@media(hover:hover){.pcard:hover .pc-demo{opacity:1}}
.pc-body{display:flex;flex-direction:column;flex:1;padding:16px 20px 18px}
.pc-kicker{font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink)}
.pc-body h3{font-size:1.22rem;line-height:1.3;margin:6px 0 8px}
.pc-body p{font-size:1rem;color:#3a5470;margin:0 0 12px}
.pc-go{margin-top:auto;font-size:.95rem;font-weight:600;color:var(--accent-ink);display:inline-flex;align-items:center;gap:6px;width:100%}
.pcard.hide{display:none}
.ptags{position:absolute;top:11px;left:11px;right:11px;display:flex;flex-wrap:wrap;gap:6px;z-index:2}
.ptag{font-size:.68rem;font-weight:700;letter-spacing:.035em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.92);backdrop-filter:blur(4px);border:1px solid transparent;box-shadow:0 1px 4px rgba(30,60,90,.12)}
.t-pm{color:#6d4ddb;border-color:#ddd3ff;background:rgba(243,239,255,.94)}
.t-energy{color:#b46a06;border-color:#f7ddab;background:rgba(255,247,232,.94)}
.t-geotech{color:#a15c2b;border-color:#eed6c2;background:rgba(251,241,232,.94)}
.t-climate{color:#0f8f7d;border-color:#bcece3;background:rgba(231,250,246,.94)}
.t-digital{color:#cf3f7b;border-color:#f8cfe0;background:rgba(255,238,246,.94)}
.t-dd{color:#2d72b5;border-color:#c9e0f5;background:rgba(234,244,254,.94)}
.filters{display:flex;flex-wrap:wrap;gap:9px;margin:-14px 0 30px}
.fchip{font:inherit;font-size:.86rem;font-weight:600;color:#3a5470;background:var(--surface);border:1px solid var(--line);padding:7px 15px;border-radius:999px;cursor:pointer;transition:.15s}
.fchip:hover{border-color:var(--accent);color:var(--accent-ink)}
.fchip.active{background:linear-gradient(135deg,#83c5f0,#4f9bdb);border-color:#4f9bdb;color:#fff;box-shadow:0 4px 12px rgba(90,165,222,.35)}
.filter-divider{width:1px;height:20px;background:var(--line);align-self:center}
.sort-wrap{position:relative;display:inline-flex;align-items:center;gap:10px}
.sort-label{font-size:.78rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.sort-btn{display:inline-flex;align-items:center;gap:10px;font:inherit;font-size:.88rem;font-weight:600;color:#fff;background:linear-gradient(135deg,#83c5f0,#4f9bdb);border:1px solid #4f9bdb;padding:8px 16px;border-radius:999px;cursor:pointer;box-shadow:0 4px 12px rgba(90,165,222,.35);transition:filter .15s,box-shadow .15s}
.sort-btn:hover{filter:brightness(1.06)}
.sort-btn:focus,.sort-btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(90,165,222,.28)}
.sort-arrow{transition:transform .18s;flex-shrink:0}
.sort-wrap.open .sort-arrow{transform:rotate(180deg)}
.sort-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:60;min-width:100%;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(10,20,40,.14);display:none}
.sort-wrap.open .sort-menu{display:block;animation:sortIn .14s ease}
@keyframes sortIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.sort-opt{padding:9px 14px;border-radius:8px;font-size:.88rem;font-weight:600;color:#3a5470;cursor:pointer;transition:background .12s,color .12s;white-space:nowrap}
.sort-opt:hover{background:var(--accent-soft);color:var(--accent-ink)}
.sort-opt.active{background:linear-gradient(135deg,#83c5f0,#4f9bdb);color:#fff}
@media(max-width:760px){.flips{grid-template-columns:1fr}}

/* PROJECT PAGES (detail) */
.page-nav{border-bottom:1px solid var(--line);background:rgba(246,250,253,.9);backdrop-filter:blur(10px)}
.page-nav .nav-inner{height:64px}
.page-nav a{text-decoration:none;color:var(--muted);font-weight:600;font-size:.96rem;display:inline-flex;align-items:center;gap:6px}
.page-nav a:hover{color:var(--accent-ink)}
.phead{padding:52px 0 12px}
.phead .kicker{color:var(--accent-ink);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.phead h1{font-size:clamp(2.2rem,4.4vw,3.2rem);line-height:1.15;margin:10px 0 10px}
.phead .sub{font-size:1.08rem;color:var(--muted);max-width:66ch}
.pbody{padding:26px 0 72px}
.pbody h5{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-ink);background:var(--accent-soft);border:1px solid #d8eaf9;padding:8px 16px;border-radius:999px;margin:36px 0 14px;font-weight:700}
.pbody h5:first-child{margin-top:0}
.pbody p{font-size:1.09rem;line-height:1.85;color:#33485c;margin-bottom:15px;max-width:72ch}
.pbody strong,.pbody b{color:var(--accent-ink);font-weight:600}
.pc-body strong,.pc-body b{color:var(--accent-ink);font-weight:600}
.phead .sub strong{color:var(--accent-ink);font-weight:600}
.pbody .lead{font-size:1.19rem;line-height:1.75;color:#2c4356;font-weight:500;max-width:74ch}
.hl-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:14px;margin:24px 0 30px}
.hl{background:var(--accent-soft);border:1px solid #d8eaf9;border-radius:14px;padding:16px 18px}
.hl b{display:block;font-family:'Space Grotesk';font-size:clamp(1.25rem,2.6vw,1.6rem);color:var(--accent-ink);line-height:1.08;letter-spacing:-.01em}
.hl span{font-size:.86rem;color:var(--muted);display:block;margin-top:3px}
.hl.alt{background:linear-gradient(160deg,#8ec9f2,#559fd9);border-color:#559fd9}
.hl.alt b,.hl.alt span{color:#fff}
.callout{background:#fff;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;padding:16px 20px;margin:22px 0;font-size:1.02rem;line-height:1.7;color:#33485c;max-width:76ch}
.callout a{color:var(--accent-ink);font-weight:600;text-decoration:none;word-break:break-word}
.callout a:hover{text-decoration:underline}
.pbody .figm{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin:18px 0}
.pbody .fig{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center;box-shadow:var(--shadow)}
.pbody .fig img{width:100%;border-radius:8px;display:block;background:#fff}
.pbody .fig figcaption{font-size:.86rem;color:var(--muted);margin-top:8px;padding:0 6px}
.pbody .fig figcaption a{color:var(--accent-ink);text-decoration:none;font-weight:600}
.pbody .fig figcaption a:hover{text-decoration:underline}
.pbody .fignote{display:block;margin-top:5px;font-size:.8rem;color:#94a3b3;font-style:italic}
.phero{margin:0 0 6px;border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:#fff}
.phero img{width:100%;height:auto;display:block}
.phero figcaption{font-size:.86rem;color:var(--muted);padding:11px 16px;background:var(--surface);border-top:1px solid var(--line)}
.phero figcaption a{color:var(--accent-ink);text-decoration:none;font-weight:600}
.phero figcaption a:hover{text-decoration:underline}
.pbody .table-scroll{overflow-x:auto}
.pbody table{width:100%;border-collapse:collapse;font-size:.95rem;margin:14px 0;background:#fff}
.pbody th,.pbody td{padding:10px 12px;border:1px solid var(--line);text-align:center}
.pbody th{background:var(--accent-soft);color:var(--accent-ink);font-weight:600;white-space:nowrap}
.pbody td:first-child{font-weight:600;text-align:left}
.pbody tr.hl{background:#eef6fc}
.pbody .refs{font-size:.89rem;color:var(--muted);margin-top:16px;line-height:1.7}
.pbody .refs a{color:var(--accent-ink);text-decoration:none;word-break:break-word}
.pbody .notice{display:flex;gap:14px;background:#fffbeb;border:1px solid #fcd34d;border-radius:12px;padding:16px 18px;margin:18px 0;font-size:.99rem;color:#78350f}
.pbody .impact{display:flex;flex-direction:column;gap:12px;margin:20px 0 8px}
.pbody .imp{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:start;background:#fff;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;padding:14px 18px;box-shadow:var(--shadow)}
.pbody .imp-num{font-family:'Space Grotesk',sans-serif;font-size:clamp(1.05rem,2.2vw,1.3rem);font-weight:700;color:var(--accent-ink);line-height:1.15;padding-top:3px;white-space:nowrap;letter-spacing:-.01em}
.pbody .imp h5{display:block;margin:0;background:none;border:0;border-radius:0;padding:0;text-transform:none;letter-spacing:.01em;font-size:1rem;color:var(--ink);font-weight:700}
.pbody .imp p{margin:5px 0 0;font-size:.97rem;line-height:1.6;color:#4b5f72;max-width:none}
@media(max-width:560px){.pbody .imp{grid-template-columns:1fr;gap:6px}}
.pbody .toolframe{border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);background:#fff}
.pbody .toolframe iframe{width:100%;height:720px;border:0;display:block}
.pbody .demo-panel{border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);background:#fff;margin:18px 0 0}
.pbody .demo-panel video{width:100%;display:block;aspect-ratio:16/10;background:#0d2238}
.pbody .demo-cap{font-size:.9rem;color:var(--muted);margin:0;padding:10px 14px;border-top:1px solid var(--line)}

/* CONFIDENTIALITY DISCLAIMER (case-study pages) */
.cd-note{display:inline-block;font-size:.82rem;color:var(--muted);background:var(--surface);border:1px dashed #c6d8e8;border-radius:999px;padding:6px 14px;margin-bottom:16px;letter-spacing:.01em}
@media(max-width:560px){.cd-note{display:block;border-radius:10px}}

/* 4-PART CONSULTANT-REPORT SECTIONS (Challenge / Method / Visual / Impact) */
.pbody .step{display:flex;align-items:center;gap:14px;margin:46px 0 18px;scroll-margin-top:76px}
.pbody .step:first-of-type{margin-top:20px}
.pbody .step .n{font-family:'Space Grotesk',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.09em;color:var(--accent-ink);background:var(--accent-soft);border:1px solid #d8eaf9;border-radius:999px;padding:7px 13px;white-space:nowrap}
.pbody .step h4{font-family:'Space Grotesk',sans-serif;font-size:clamp(1.15rem,2.4vw,1.35rem);letter-spacing:.01em;color:var(--ink);margin:0}
.pbody .step::after{content:"";flex:1;height:1px;background:var(--line);min-width:24px}

/* EDUCATION + SKILLS */
.edu-item{display:flex;gap:24px;align-items:flex-start;padding:20px 0;border-top:1px solid var(--line)}
.edu-logo{width:88px;height:88px;flex-shrink:0;border-radius:18px;object-fit:contain;background:#fff;border:1px solid var(--line);padding:10px;box-shadow:var(--shadow)}
.edu-item:first-of-type{border-top:0}
.edu-item h4{font-size:1.2rem;margin:3px 0 4px}
.edu-item .meta{color:var(--muted);font-size:.97rem;margin-bottom:6px}
.edu-item .note{font-size:.97rem;color:#3a4f63}

/* CERTIFICATES */
.cert{display:flex;align-items:flex-start;gap:14px;padding:16px 0;border-top:1px solid var(--line)}
.cert:first-of-type{border-top:0}
.cert .c-badge{flex-shrink:0;width:38px;height:38px;border-radius:10px;background:var(--accent-soft);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-size:1rem}
.cert h4{font-size:1.06rem}
.cert .meta{color:var(--muted);font-size:.92rem}

/* PDF viewer modal */
.viewer-btn{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font:inherit;font-size:.9rem;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);border:1px solid #d8eaf9;padding:9px 16px;border-radius:10px;cursor:pointer;transition:.15s}
.viewer-btn:hover{background:#dcf0fe;border-color:var(--accent)}
.modal-overlay{position:fixed;inset:0;z-index:100;background:rgba(18,32,48,.55);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:24px}
.modal-overlay.open{display:flex}
.modal{background:#fff;border-radius:16px;width:min(960px,100%);max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px rgba(10,20,40,.35)}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.modal-head h3{margin:0;font-size:1.02rem;color:var(--ink);min-width:0;flex:1 1 auto}
.pdf-page{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.85rem}
.pdf-nav{background:none;border:1px solid var(--line);border-radius:8px;font-size:1.1rem;line-height:1;padding:6px 12px;cursor:pointer;color:var(--muted)}
.pdf-nav:hover{color:#111;border-color:#999}
.pdf-dl{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:.9rem;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);border:1px solid #d8eaf9;padding:8px 13px;border-radius:8px;text-decoration:none;transition:.15s}
.pdf-dl:hover{background:#dcf0fe;border-color:var(--accent)}
.modal-close{background:none;border:1px solid var(--line);border-radius:8px;font-size:.95rem;line-height:1;padding:8px 12px;cursor:pointer;color:var(--muted)}
.modal-close:hover{color:#111;border-color:#999}
.modal-body{flex:1;min-height:0;overflow:hidden;background:#525659}
.modal-body iframe{width:100%;height:min(80vh,calc(92vh - 64px));border:0;display:block}
.modal-body video{width:100%;max-height:75vh;display:block;background:#0d2238}
@media(max-width:560px){.modal-head h3{flex-basis:100%}}

/* 2T1L */
.t1l{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.t1l .tl{padding:20px;border-radius:14px;background:var(--surface);border:2px solid var(--line);cursor:pointer;transition:border-color .15s,background .15s;font-size:.95rem;font-weight:500}
.t1l .tl:hover{border-color:var(--accent)}
.t1l .tl.truth{border-color:var(--accent);background:var(--accent-soft)}
.t1l .tl.lie{border-color:#dc2626;background:#fef2f2}
.t1l .tl .verdict{display:none;margin-top:8px;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.t1l .tl.truth .verdict{display:block;color:var(--accent-ink)}
.t1l .tl.lie .verdict{display:block;color:#dc2626}
.hint{font-size:.85rem;color:var(--muted);margin-top:14px;text-align:center}

/* FOOTER */
footer{border-top:1px solid var(--line);padding:28px 0;text-align:center;color:var(--muted);font-size:.95rem}
footer .brand{margin-bottom:6px;justify-content:center}

/* reveal */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}