:root{--ink:#071426;--blue:#2f80ed;--cyan:#22d3c5;--paper:#f4f7fb;--muted:#66758a;--line:#dce6f1}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Inter,system-ui,sans-serif}a{color:inherit}.wrap{width:min(1140px,calc(100% - 40px));margin:auto}.nav{position:sticky;top:0;z-index:5;background:#071426ee;color:#fff}.navin{height:74px;display:flex;align-items:center;justify-content:space-between}.brand{font-size:1.2rem;font-weight:900;text-decoration:none}.brand span,.eyebrow{color:var(--cyan)}.links{display:flex;gap:24px;align-items:center}.links a{text-decoration:none;color:#cbd7e7}.links .active{color:#fff}.btn{display:inline-block;border:0;border-radius:999px;padding:12px 19px;background:linear-gradient(135deg,var(--blue),var(--cyan));font-weight:800;text-decoration:none;color:#061321}.secondary{background:transparent;color:#fff;border:1px solid #75879c}.hero,.pagehead{color:#fff;background:radial-gradient(circle at 85% 15%,#22d3c533,transparent 28%),linear-gradient(145deg,#071426,#103e66)}.herogrid{min-height:650px;display:grid;grid-template-columns:1.1fr .9fr;gap:65px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:.75rem;font-weight:900}.hero h1,.pagehead h1{font-size:clamp(3rem,6vw,5.6rem);line-height:.98;letter-spacing:-.06em;margin:16px 0}.hero h1 span{color:var(--cyan)}.lead{font-size:1.15rem;color:#cbd7e7;max-width:680px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.portrait img{height:500px;width:100%;object-fit:cover;object-position:center 18%;border-radius:30px;box-shadow:0 25px 70px #0006}.metrics{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;margin-top:-35px;position:relative;border-radius:22px;box-shadow:0 20px 60px #07142622}.metric{padding:24px;border-right:1px solid var(--line)}.metric strong{display:block;color:var(--blue);font-size:1.45rem}section{padding:85px 0}.sectiontop h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1.08;margin:8px 0 30px}.grid3,.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card,.project,.rec,form,.contactitem{background:#fff;border:1px solid var(--line);border-radius:22px;padding:27px}.muted{color:var(--muted)}.pagehead{padding:85px 0}.twocol,.contactgrid{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px}.aboutphoto{width:100%;height:620px;object-fit:cover;border-radius:28px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:#e8f1fb;padding:7px 11px;border-radius:999px;font-size:.85rem}.timeline{border-left:2px solid var(--line);padding-left:28px}.job{margin:0 0 30px}.job h3{margin:0}.meta{color:var(--blue);font-weight:800}.projects{grid-template-columns:repeat(2,1fr)}.project{display:flex;flex-direction:column;min-height:330px}.project .num{font-size:2rem;color:var(--cyan);font-weight:900}.project .actions{margin-top:auto}.recshell{display:grid;grid-template-columns:52px 1fr 52px;gap:18px;align-items:center}.arrow{height:50px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:1.4rem}.rec{min-height:430px;padding:40px;box-shadow:0 20px 60px #07142618}.profile{display:flex;gap:16px;align-items:center}.avatar{width:70px;height:70px;object-fit:cover;border-radius:50%;background:#dfe9f4}.quote{font-size:1.05rem;margin:26px 0}.recfoot{display:flex;justify-content:space-between;color:var(--muted);font-size:.85rem}.dots{text-align:center;margin-top:20px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#c6d1dd;margin:3px}.dot.on{width:24px;border-radius:8px;background:var(--blue)}.contactcards{display:grid;gap:12px}.contactitem{text-decoration:none}.contactitem strong{display:block;color:var(--blue)}label{font-weight:800;font-size:.85rem}input,textarea{width:100%;padding:12px;border:1px solid #c5d2e0;border-radius:10px;margin:5px 0 15px;font:inherit}textarea{min-height:140px}.footer{background:#06101d;color:#9cacbe;padding:40px 0}.footerin{display:flex;justify-content:space-between}.social{display:flex;gap:15px}@media(max-width:800px){.links a:not(.btn){display:none}.herogrid,.twocol,.contactgrid{grid-template-columns:1fr}.herogrid{padding:55px 0}.metrics{grid-template-columns:1fr 1fr}.grid3,.projects{grid-template-columns:1fr}.recshell{grid-template-columns:1fr}.arrow{position:absolute}.prev{left:15px}.next{right:15px}.rec{min-height:600px}.aboutphoto{height:460px}} 
.home-intro{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:start}.home-intro h2{font-size:clamp(2.3rem,4vw,3.7rem);line-height:1.05;letter-spacing:-.045em;margin:10px 0}.section-alt{background:#eaf1f8}.splithead{display:flex;align-items:end;justify-content:space-between;gap:28px}.splithead>a{color:var(--blue);font-weight:800;text-decoration:none;margin-bottom:30px}.experience-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.experience-card{display:grid;grid-template-columns:105px 1fr;gap:20px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px}.experience-card:first-child{grid-column:1/-1}.experience-card h3{margin:3px 0 8px}.experience-card p{margin:0;color:var(--muted)}.year,.edu-year{color:var(--cyan);font-weight:900;letter-spacing:.04em}.education-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.edu-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;min-height:245px}.edu-card.featured{background:linear-gradient(145deg,#071426,#103e66);color:#fff}.edu-card.featured .meta{color:var(--cyan)}.edu-card h3{font-size:1.35rem;line-height:1.2;margin:12px 0 8px}.recommendation-section{background:linear-gradient(180deg,#eaf1f8,#f4f7fb)}.recommendation-section .rec{background:#fff}.final-cta{background:linear-gradient(145deg,#071426,#103e66);color:#fff;border-radius:28px;padding:45px 50px;display:flex;align-items:center;justify-content:space-between;gap:30px}.final-cta h2{margin:8px 0;font-size:clamp(1.6rem,3vw,2.4rem)}.dot{border:0;padding:0;cursor:pointer}
@media(max-width:800px){.home-intro,.experience-grid,.education-grid{grid-template-columns:1fr}.experience-card:first-child{grid-column:auto}.experience-card{grid-template-columns:1fr}.splithead,.final-cta{align-items:flex-start;flex-direction:column}.splithead>a{margin:0 0 24px}.final-cta{padding:32px 25px}}
.trajectory{position:relative;max-width:1000px;margin:0 auto}.trajectory:before{content:"";position:absolute;left:188px;top:12px;bottom:12px;width:2px;background:linear-gradient(var(--cyan),var(--blue),#c8d6e6)}.trajectory-item{display:grid;grid-template-columns:160px 58px 1fr;gap:0;align-items:start;margin-bottom:28px}.trajectory-date{padding:22px 22px 0 0;text-align:right;color:var(--muted);font-weight:800;font-size:.9rem}.trajectory-marker{position:relative;display:flex;justify-content:center;padding-top:17px;z-index:1}.trajectory-marker span{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--cyan));color:#061321;font-size:.78rem;font-weight:900;box-shadow:0 0 0 8px var(--paper)}.trajectory-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:27px 30px;box-shadow:0 14px 40px rgba(7,20,38,.07)}.trajectory-card h3{font-size:1.35rem;line-height:1.2;margin:0 0 5px}.trajectory-card ul{margin:20px 0 0;padding:0;list-style:none}.trajectory-card li{position:relative;padding-left:23px;margin:10px 0;color:#40526a}.trajectory-card li:before{content:"";position:absolute;left:0;top:.65em;width:8px;height:8px;border-radius:50%;background:var(--cyan)}.role-head{display:flex;justify-content:space-between;gap:20px;align-items:start}.company{color:var(--blue);font-weight:800}.role-tag{white-space:nowrap;background:#e8f1fb;color:#164f86;border-radius:999px;padding:7px 11px;font-size:.78rem;font-weight:800}
@media(max-width:800px){.trajectory:before{left:20px}.trajectory-item{grid-template-columns:42px 1fr}.trajectory-date{grid-column:2;text-align:left;padding:0 0 8px;font-size:.82rem}.trajectory-marker{grid-column:1;grid-row:1/3;justify-content:flex-start;padding-top:29px}.trajectory-marker span{width:38px;height:38px;box-shadow:0 0 0 6px var(--paper)}.trajectory-card{grid-column:2;padding:22px}.role-head{flex-direction:column}.role-tag{white-space:normal}.trajectory-card li{padding-left:19px}}
.contact-page{min-height:calc(100vh - 74px);background:radial-gradient(circle at 50% 5%,rgba(47,128,237,.12),transparent 32%),#060e1b;color:#fff}.contact-page section{padding:65px 0 90px}.contact-panel{max-width:1120px;background:#0b1527;border:1px solid #24344b;border-radius:30px;padding:54px;box-shadow:0 30px 80px rgba(0,0,0,.32)}.contact-intro{text-align:center;max-width:760px;margin:0 auto 40px}.contact-intro h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1.08;letter-spacing:-.04em;margin:0 0 15px}.contact-intro p{font-size:1.1rem;color:#b7c4d7;margin:0}.contact-channel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:44px}.channel-card{min-width:0;background:#081221;border:1px solid #1e2c42;border-radius:18px;padding:24px 16px;text-align:center;text-decoration:none;color:#fff}.channel-card:hover{border-color:var(--cyan);transform:translateY(-2px)}.channel-icon{width:42px;height:42px;margin:0 auto 10px;display:grid;place-items:center;border-radius:12px;background:#0c2b43;color:var(--cyan);font-weight:900}.channel-label{text-transform:uppercase;letter-spacing:.14em;color:#7788a3;font-size:.73rem;margin-bottom:6px}.channel-card>a,.channel-card>strong{display:block;font-size:.91rem;overflow-wrap:anywhere}.channel-actions{display:flex;justify-content:center;gap:8px;margin-top:13px}.channel-actions a{border:1px solid #2b4963;border-radius:999px;padding:5px 13px;text-decoration:none;font-size:.8rem;color:#dce9f8}.contact-form{max-width:780px;margin:0 auto;background:transparent;border:0;padding:0}.contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form label>span{display:block;color:#a8b7ca;margin:0 0 7px}.contact-form input,.contact-form textarea{background:#07101e;border:1px solid #25334a;color:#fff;border-radius:13px;padding:15px 16px;margin:0 0 18px}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#71819a}.contact-form textarea{min-height:150px}.consent{display:flex;align-items:flex-start;gap:11px;color:#c5d0df;font-size:.88rem}.consent input{width:18px;height:18px;margin:3px 0 0;flex:0 0 auto}.consent span{margin:0!important}.privacy-note{color:#7f8fa6;font-size:.78rem;line-height:1.55;margin:12px 0 20px}.send-button{width:100%;border:0;border-radius:12px;background:linear-gradient(90deg,#16a7c8,var(--blue));color:#fff;padding:16px;font:800 1rem/1 Inter,system-ui,sans-serif;cursor:pointer}.send-button:hover{filter:brightness(1.08)}.form-status{display:none;background:#103c36;border:1px solid #1f806f;color:#d9fff7;border-radius:12px;padding:14px 16px;margin-bottom:20px}.form-status.show{display:block}.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important}.contact-socials{display:flex;justify-content:center;gap:12px;margin-top:40px}.contact-socials a{width:46px;height:46px;display:grid;place-items:center;border:1px solid #26364e;border-radius:12px;text-decoration:none;color:#9eb0c8;font-weight:900}.contact-socials a:hover{border-color:var(--cyan);color:var(--cyan)}
@media(max-width:900px){.contact-channel-grid{grid-template-columns:1fr 1fr}.contact-panel{padding:35px 25px}}@media(max-width:600px){.contact-channel-grid,.contact-form .form-row{grid-template-columns:1fr}.contact-panel{width:calc(100% - 24px);padding:28px 18px}.contact-page section{padding:24px 0 50px}}
.credential-link{position:relative;cursor:pointer;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;padding-bottom:62px}.credential-link:hover,.credential-link:focus-visible{transform:translateY(-4px);border-color:var(--cyan);box-shadow:0 18px 42px rgba(7,20,38,.12);outline:none}.credential-link:after{content:"View credential  ↗";position:absolute;left:28px;bottom:25px;color:var(--blue);font-size:.86rem;font-weight:900}.credential-link.featured:after{color:var(--cyan)}.credential-link[data-external]:after{content:"Open publication  ↗"}.credential-modal{width:min(1100px,calc(100% - 32px));height:min(88vh,900px);padding:0;border:1px solid #34475f;border-radius:24px;background:#0b1527;color:#fff;box-shadow:0 30px 90px rgba(0,0,0,.5);overflow:hidden}.credential-modal::backdrop{background:rgba(3,9,17,.78);backdrop-filter:blur(5px)}.credential-modal[open]{display:grid;grid-template-rows:auto 1fr auto}.credential-modal-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;border-bottom:1px solid #25364d}.credential-modal-head h2{font-size:1.2rem;line-height:1.25;margin:4px 0 0}.credential-close{width:42px;height:42px;border:1px solid #354963;border-radius:50%;background:#101d30;color:#fff;font-size:1.7rem;cursor:pointer}.credential-modal iframe{display:block;width:100%;height:100%;border:0;background:#fff}.credential-modal-foot{display:flex;justify-content:flex-end;gap:12px;padding:15px 24px;border-top:1px solid #25364d}.credential-modal-foot .secondary{cursor:pointer}@media(max-width:600px){.credential-modal{width:100%;height:100%;max-height:none;border-radius:0}.credential-modal-head{padding:15px 16px}.credential-modal-foot{padding:12px 16px}.credential-modal-foot .btn{padding:10px 14px;font-size:.84rem}}
html{scroll-behavior:smooth}body{overflow-x:hidden}.btn{font:800 .94rem/1.2 Inter,system-ui,sans-serif;cursor:pointer}.language-list{display:grid;gap:10px;margin:10px 0 0;padding:0;list-style:none;max-width:470px}.language-list li{display:grid;grid-template-columns:8px 110px 1fr;gap:12px;align-items:center;padding:11px 14px;border:1px solid var(--line);border-radius:13px;background:#fff}.language-list li:before{content:"";width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--cyan));box-shadow:0 0 0 5px rgba(34,211,197,.12)}.language-list strong{grid-column:2}.language-list span{grid-column:3;color:var(--muted)}.presentation-modal{height:min(92vh,960px);width:min(1240px,calc(100% - 28px))}.presentation-controls{display:grid;grid-template-columns:auto auto auto 1fr;align-items:center;gap:10px;padding:14px 20px;border-top:1px solid #25364d;background:#0b1527}.presentation-controls button,.presentation-controls a{border:1px solid #354963;border-radius:999px;background:#101d30;color:#e7eef8;padding:10px 15px;font:800 .85rem/1 Inter,system-ui,sans-serif;text-decoration:none;cursor:pointer}.presentation-controls button:hover,.presentation-controls a:hover{border-color:var(--cyan);color:var(--cyan)}.presentation-controls button:disabled{opacity:.38;cursor:not-allowed}.presentation-controls span{min-width:100px;text-align:center;color:#aebed3;font-size:.85rem}.presentation-controls a{justify-self:end}.scroll-reveal{opacity:0;transform:translateY(38px) scale(.985);filter:blur(5px);transition:opacity .75s cubic-bezier(.2,.75,.25,1),transform .85s cubic-bezier(.2,.75,.25,1),filter .75s ease;transition-delay:var(--reveal-delay,0ms);will-change:opacity,transform}.scroll-reveal.is-visible{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}.portrait{overflow:hidden;border-radius:30px}.portrait img{transform:translateY(var(--portrait-shift,0));transition:transform .15s linear;will-change:transform}.project,.edu-card,.trajectory-card,.card{transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.project:hover,.card:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(7,20,38,.11);border-color:#bdd2e8}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scroll-reveal{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.portrait img{transform:none!important;transition:none!important}}@media(max-width:600px){.language-list li{grid-template-columns:8px 1fr}.language-list strong,.language-list span{grid-column:2}.presentation-controls{grid-template-columns:1fr 1fr}.presentation-controls span{grid-row:2;grid-column:1;text-align:left}.presentation-controls a{grid-row:2;grid-column:2;justify-self:end}}
.rec-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden;max-width:760px;min-height:8.25em;font-size:1.08rem;line-height:1.65}.rec-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:22px}.rec-actions .recfoot{flex:1}.rec-more{flex:0 0 auto;border:1px solid #9fc7ec;border-radius:999px;background:#eef6ff;color:#175891;padding:10px 18px;font:900 .86rem/1 Inter,system-ui,sans-serif;cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease}.rec-more:hover,.rec-more:focus-visible{transform:translateY(-2px);background:#dff7f4;border-color:var(--cyan);outline:none}.rec-enter{animation:recommendationIn .52s cubic-bezier(.2,.75,.25,1)}@keyframes recommendationIn{from{opacity:0;transform:translateX(28px) scale(.985);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}.recommendation-modal{width:min(820px,calc(100% - 32px));padding:0;border:1px solid #36506d;border-radius:28px;background:radial-gradient(circle at 90% 0,rgba(34,211,197,.18),transparent 35%),linear-gradient(145deg,#071426,#103e66);color:#fff;box-shadow:0 35px 110px rgba(0,0,0,.55);opacity:0;transform:translateY(28px) scale(.95);transition:opacity .22s ease,transform .28s cubic-bezier(.2,.8,.2,1);overflow:hidden}.recommendation-modal::backdrop{background:rgba(3,9,17,.78);backdrop-filter:blur(7px)}.recommendation-modal.is-open{opacity:1;transform:translateY(0) scale(1)}.recommendation-modal.is-closing{opacity:0;transform:translateY(18px) scale(.97)}.recommendation-modal-close{position:absolute;top:20px;right:20px;z-index:2;width:44px;height:44px;border:1px solid #50708f;border-radius:50%;background:#0e2035;color:#fff;font-size:1.65rem;cursor:pointer}.recommendation-modal-close:hover{border-color:var(--cyan);color:var(--cyan)}#recommendationModalContent{padding:48px 52px 52px}.recommendation-modal-profile{display:flex;align-items:center;gap:18px;padding-right:55px}.recommendation-modal-profile img{width:86px;height:86px;object-fit:cover;border-radius:50%;border:3px solid var(--cyan)}.recommendation-modal-profile h2{font-size:1.55rem;line-height:1.2;margin:5px 0}.recommendation-modal-profile p{color:#c3d1e1;margin:0}.recommendation-modal-profile span{display:block;color:#8fa3ba;font-size:.85rem;margin-top:4px}.recommendation-modal blockquote{position:relative;margin:35px 0 0;padding:30px 0 0;border-top:1px solid #35506d;color:#ecf4fc;font-size:1.18rem;line-height:1.85}.recommendation-modal blockquote:before{content:"“";position:absolute;top:8px;left:0;color:var(--cyan);font:900 3.5rem/1 Georgia,serif;opacity:.75}@media(max-width:700px){.rec{min-height:560px;padding:28px 24px}.rec-preview{min-height:9.9em}.rec-actions{align-items:flex-start;flex-direction:column}.rec-actions .recfoot{width:100%}.recommendation-modal{width:calc(100% - 20px);border-radius:22px}#recommendationModalContent{padding:62px 24px 32px}.recommendation-modal-profile{align-items:flex-start;padding-right:0}.recommendation-modal-profile img{width:68px;height:68px}.recommendation-modal blockquote{font-size:1rem;line-height:1.75}}@media(prefers-reduced-motion:reduce){.rec-enter{animation:none}.recommendation-modal{transition:none}}

/* Interactive analytics ecosystem */
.skills-section{position:relative;overflow:hidden;padding:90px 0 105px;background:radial-gradient(circle at 50% 44%,rgba(34,211,197,.16),transparent 28%),radial-gradient(circle at 12% 5%,rgba(47,128,237,.22),transparent 34%),linear-gradient(145deg,#050d19,#08192c 58%,#0d2941);color:#fff}.skills-section:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.28;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.4px);background-size:54px 54px}.skills-heading{position:relative;z-index:2;display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:32px}.skills-heading h2{max-width:690px;margin:10px 0 0;font-size:clamp(2.2rem,4vw,3.75rem);line-height:1.04;letter-spacing:-.045em}.skills-heading p{max-width:390px;margin:0;color:#aebed1;font-size:1.02rem}.skills-galaxy{--galaxy-rx:0deg;--galaxy-ry:0deg;position:relative;isolation:isolate;height:720px;border:1px solid rgba(145,181,216,.18);border-radius:38px;background:radial-gradient(circle at center,rgba(47,128,237,.17),transparent 18%),linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.008));box-shadow:inset 0 0 90px rgba(7,20,38,.8),0 35px 80px rgba(0,0,0,.24);overflow:hidden;transform:perspective(1200px) rotateX(var(--galaxy-rx)) rotateY(var(--galaxy-ry));transition:transform .35s ease}.galaxy-halo{position:absolute;left:50%;top:50%;border:1px solid rgba(102,176,237,.25);border-radius:50%;transform:translate(-50%,-50%) rotate(-9deg);pointer-events:none}.galaxy-halo:after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 18px 5px rgba(34,211,197,.35);animation:orbitSpark 8s linear infinite}.halo-one{width:300px;height:205px}.halo-two{width:570px;height:380px;transform:translate(-50%,-50%) rotate(10deg)}.halo-three{width:890px;height:590px;transform:translate(-50%,-50%) rotate(-5deg)}.halo-one:after{left:17%;top:1%;animation-duration:7s}.halo-two:after{right:8%;top:20%;animation-duration:10s}.halo-three:after{left:7%;bottom:17%;animation-duration:13s}.galaxy-core{position:absolute;left:50%;top:50%;z-index:3;width:168px;height:168px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px solid rgba(123,225,216,.55);border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 32% 24%,#1a5d82,#0a2540 62%,#061321);box-shadow:0 0 0 12px rgba(34,211,197,.055),0 0 70px rgba(34,211,197,.28);animation:corePulse 4.2s ease-in-out infinite}.galaxy-core span{display:grid;place-items:center;width:43px;height:43px;margin-bottom:8px;border-radius:13px;background:linear-gradient(135deg,var(--blue),var(--cyan));color:#061321;font-weight:950;letter-spacing:-.03em}.galaxy-core strong{font-size:.9rem;line-height:1.18;letter-spacing:.02em}.tool-planet{position:absolute;left:var(--x);top:var(--y);z-index:4;display:flex;align-items:center;gap:9px;max-width:205px;padding:8px 13px 8px 8px;border:1px solid rgba(151,181,211,.28);border-radius:999px;background:rgba(10,27,46,.88);color:#eaf4ff;box-shadow:0 9px 28px rgba(0,0,0,.28);backdrop-filter:blur(12px);transform:translate(-50%,-50%);scale:1;animation:planetArrive .75s cubic-bezier(.2,.85,.25,1) both,planetFloat calc(4.4s + var(--i)*.13s) ease-in-out calc(.65s + var(--i)*.08s) infinite;animation-delay:calc(var(--i)*55ms),calc(.65s + var(--i)*70ms);transition:scale .3s cubic-bezier(.2,.8,.2,1),border-color .24s ease,background .24s ease,box-shadow .24s ease,color .24s ease;outline:none}.tool-planet:hover,.tool-planet:focus-visible{z-index:9;border-color:var(--cyan);background:#102f4b;color:#fff;box-shadow:0 18px 48px rgba(0,0,0,.48),0 0 38px rgba(34,211,197,.34);animation-play-state:paused;scale:1.18}.tool-planet:hover .tool-logo,.tool-planet:focus-visible .tool-logo{transform:rotate(-5deg) scale(1.08)}.tool-logo{flex:0 0 auto;width:37px;height:37px;display:grid;place-items:center;border-radius:50%;background:#fff;box-shadow:0 4px 13px rgba(0,0,0,.25);transition:transform .3s cubic-bezier(.2,.8,.2,1)}.tool-logo img{width:23px;height:23px;display:block}.sql-logo{background:linear-gradient(135deg,#2f80ed,#22d3c5)}.database-symbol{position:relative;color:#061321;font-size:.8rem;transform:rotate(90deg);text-shadow:5px 0 0 rgba(6,19,33,.65),-5px 0 0 rgba(6,19,33,.65)}.tool-name{font-size:.79rem;font-weight:850;line-height:1.15;white-space:normal}.galaxy-hint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);margin:0;color:#7189a2;font-size:.78rem;letter-spacing:.06em}.orbit-0{padding-right:12px}.orbit-0 .tool-name{font-size:.92rem}.shooting-star{position:absolute;z-index:1;left:-22%;top:16%;width:125px;height:2px;border-radius:999px;opacity:0;transform:rotate(-21deg);background:linear-gradient(90deg,transparent,rgba(168,223,255,.35),#fff);filter:drop-shadow(0 0 5px rgba(103,198,255,.9));animation:shootingStar 10s linear infinite}.shooting-star:after{content:"";position:absolute;right:-2px;top:-2px;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 12px 4px rgba(125,211,255,.8)}.star-two{top:48%;left:-30%;width:165px;animation-delay:3.3s;transform:rotate(-17deg)}.star-three{top:75%;left:-25%;width:105px;animation-delay:6.6s;transform:rotate(-24deg)}@keyframes planetArrive{from{opacity:0;transform:translate(-50%,-50%) scale(.45);filter:blur(7px)}to{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0)}}@keyframes planetFloat{0%,100%{translate:0 0}50%{translate:0 -9px}}@keyframes corePulse{0%,100%{box-shadow:0 0 0 12px rgba(34,211,197,.055),0 0 60px rgba(34,211,197,.22)}50%{box-shadow:0 0 0 20px rgba(34,211,197,.02),0 0 85px rgba(34,211,197,.38)}}@keyframes orbitSpark{50%{filter:hue-rotate(70deg);opacity:.5}}@keyframes shootingStar{0%,6%{opacity:0;translate:0 0}8%{opacity:1}25%{opacity:1}29%,100%{opacity:0;translate:1450px 430px}}
@media(max-width:960px){.skills-heading{align-items:start;flex-direction:column;gap:14px}.skills-galaxy{height:auto;min-height:0;padding:28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;transform:none!important}.galaxy-halo,.galaxy-core,.galaxy-hint{display:none}.tool-planet{position:relative;left:auto;top:auto;max-width:none;min-height:60px;transform:none;animation:planetArriveMobile .55s cubic-bezier(.2,.85,.25,1) both;animation-delay:calc(var(--i)*45ms)}.tool-planet:hover,.tool-planet:focus-visible{transform:translateY(-4px)}}@media(max-width:560px){.skills-section{padding:68px 0}.skills-galaxy{grid-template-columns:1fr;padding:18px;border-radius:26px}.tool-name{font-size:.86rem}}@keyframes planetArriveMobile{from{opacity:0;transform:translateY(16px);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}
@media(prefers-reduced-motion:reduce){.tool-planet,.galaxy-core,.galaxy-halo:after,.shooting-star{animation:none!important}.skills-galaxy{transform:none!important}.tool-planet:hover,.tool-planet:focus-visible{scale:1.06}}
@media(max-width:960px) and (prefers-reduced-motion:reduce){.tool-planet:hover,.tool-planet:focus-visible{transform:none}}

/* Natural meteor treatment: long tapered trails with a slower full-panel crossing. */
.shooting-star{left:-260px;top:7%;width:230px;height:1px;transform:rotate(18deg);transform-origin:right center;background:linear-gradient(90deg,transparent 0,rgba(132,194,232,.04) 18%,rgba(176,222,248,.2) 62%,rgba(231,248,255,.82) 92%,#fff 100%);filter:drop-shadow(0 0 3px rgba(150,218,255,.5));will-change:translate,opacity;animation:shootingStarNatural 15s cubic-bezier(.22,.48,.42,.98) infinite}.shooting-star:before{content:"";position:absolute;right:28px;top:-1px;width:2px;height:2px;border-radius:50%;background:rgba(211,239,255,.7);box-shadow:-22px 7px 0 rgba(160,214,247,.3),-48px -6px 0 rgba(197,230,250,.22)}.shooting-star:after{right:-2px;top:-2px;width:5px;height:5px;background:radial-gradient(circle,#fff 0 28%,#c7edff 48%,rgba(125,211,255,.12) 72%,transparent 74%);box-shadow:0 0 7px 2px rgba(167,225,255,.52),0 0 16px rgba(85,182,235,.32)}.star-two{top:31%;left:-320px;width:285px;animation-delay:.75s;transform:rotate(21deg);filter:drop-shadow(0 0 3px rgba(170,211,255,.42))}.star-three{top:57%;left:-235px;width:205px;animation-delay:1.45s;transform:rotate(16deg);filter:drop-shadow(0 0 2px rgba(198,230,255,.4))}@keyframes shootingStarNatural{0%,2%{opacity:0;translate:0 0}4%{opacity:.18}8%{opacity:.78}43%{opacity:.82}56%{opacity:0;translate:1700px 520px}57%,100%{opacity:0;translate:1700px 520px}}
@media(prefers-reduced-motion:reduce){.shooting-star{animation:none!important}}

/* Hero clearance and mobile navigation */
.hero .actions{margin-top:40px;transform:translateY(-16px)}.menu-toggle{display:none;width:46px;height:42px;padding:9px;border:1px solid #38506b;border-radius:13px;background:#0d2035;cursor:pointer}.menu-toggle span{display:block;width:23px;height:2px;margin:5px auto;border-radius:4px;background:#fff;transition:transform .25s ease,opacity .2s ease}.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:800px){.navin{position:relative}.menu-toggle{display:block}.links{position:absolute;left:0;right:0;top:66px;z-index:20;display:grid;gap:6px;padding:14px;border:1px solid #2a4059;border-radius:17px;background:rgba(7,20,38,.98);box-shadow:0 22px 55px rgba(0,0,0,.38);opacity:0;visibility:hidden;transform:translateY(-10px) scale(.98);transform-origin:top;transition:opacity .22s ease,transform .22s ease,visibility .22s}.links.is-open{opacity:1;visibility:visible;transform:none}.links a,.links a:not(.btn){display:block;padding:12px 15px;border-radius:11px;color:#dce8f6}.links a.active{background:#102d49;color:#fff}.links .btn{text-align:center;margin-top:4px;color:#061321}.hero .actions{margin-top:34px;transform:translateY(-10px)}}
@media(prefers-reduced-motion:reduce){.menu-toggle span,.links{transition:none}}

/* Tool expertise popovers */
.tool-popover{position:absolute;z-index:30;top:50%;width:220px;padding:15px 16px;border:1px solid rgba(107,184,224,.42);border-radius:15px;background:linear-gradient(145deg,rgba(9,28,48,.98),rgba(10,48,72,.98));color:#fff;box-shadow:0 18px 48px rgba(0,0,0,.46),0 0 28px rgba(34,211,197,.12);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-50%) scale(.88);transition:opacity .22s ease,transform .28s cubic-bezier(.2,.8,.2,1),visibility .22s;backdrop-filter:blur(14px)}.tool-popover.popover-right{left:calc(100% + 14px);transform-origin:left center}.tool-popover.popover-left{right:calc(100% + 14px);transform-origin:right center}.tool-popover>strong{display:block;margin-bottom:9px;color:var(--cyan);font-size:.88rem}.tool-planet:hover .tool-popover,.tool-planet:focus .tool-popover{opacity:1;visibility:visible;transform:translateY(-50%) scale(1)}.expertise-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0;border-top:1px solid rgba(155,190,219,.13);font-size:.76rem}.expertise-label{color:#95a9bf}.expertise-row b{font-size:.78rem}.expertise-stars{display:flex;gap:1px;font-size:1rem;line-height:1}.expertise-star.full{color:#ffc857;text-shadow:0 0 9px rgba(255,200,87,.35)}.expertise-star.half{color:transparent;background:linear-gradient(90deg,#ffc857 50%,#445970 50%);background-clip:text;-webkit-background-clip:text}.expertise-star.empty{color:#445970}@media(max-width:960px){.tool-popover{top:calc(100% + 8px);left:50%!important;right:auto!important;transform:translate(-50%,-6px) scale(.94);transform-origin:top center}.tool-planet:hover .tool-popover,.tool-planet:focus .tool-popover{transform:translate(-50%,0) scale(1)}}@media(prefers-reduced-motion:reduce){.tool-popover{transition:none}}

/* Featured dashboard case studies */
.project--visual{grid-column:1/-1;padding:0;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);min-height:0}.project-dashboard{position:relative;margin:0;min-width:0;background:#071426;overflow:hidden}.project-dashboard img{display:block;width:100%;height:100%;min-height:370px;object-fit:cover;transition:transform .65s cubic-bezier(.2,.75,.25,1),filter .4s ease}.project-dashboard figcaption{position:absolute;left:18px;bottom:16px;padding:7px 12px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:rgba(7,20,38,.8);color:#fff;font-size:.76rem;font-weight:800;letter-spacing:.04em;backdrop-filter:blur(10px)}.project--visual:hover .project-dashboard img{transform:scale(1.025);filter:saturate(1.06)}.project-copy{display:flex;flex-direction:column;padding:30px}.project-copy h2{margin:8px 0 10px;line-height:1.18}.project-copy .actions{margin-top:auto}.project:not(.project--visual) .project-copy{display:contents}@media(max-width:900px){.project--visual{grid-template-columns:1fr}.project-dashboard img{min-height:0;aspect-ratio:16/9}.project-copy{padding:25px}}@media(prefers-reduced-motion:reduce){.project-dashboard img{transition:none}.project--visual:hover .project-dashboard img{transform:none}}

/* Click-to-explore dashboard viewer */
.dashboard-open{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}.dashboard-open:focus-visible{outline:3px solid var(--cyan);outline-offset:-4px}.dashboard-modal{width:min(1480px,calc(100% - 28px));height:min(94vh,980px);padding:0;border:1px solid #34475f;border-radius:24px;background:#081322;color:#fff;box-shadow:0 35px 110px rgba(0,0,0,.62);overflow:hidden}.dashboard-modal::backdrop{background:rgba(2,7,13,.86);backdrop-filter:blur(7px)}.dashboard-modal[open]{display:grid;grid-template-rows:auto 1fr auto}.dashboard-stage{min-height:0;overflow:hidden;background:#020812;cursor:zoom-in;outline:none}.dashboard-stage.is-zoomed{cursor:zoom-out}.dashboard-stage img{display:block;width:100%;height:100%;object-fit:contain;transform:scale(1);transition:transform .65s cubic-bezier(.2,.78,.22,1);will-change:transform}.dashboard-stage.is-zoomed img{transform:scale(2)}.dashboard-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 22px;border-top:1px solid #25364d;color:#9db0c5;font-size:.83rem}.dashboard-controls button{border:1px solid #3a5672;border-radius:999px;background:#10243a;color:#fff;padding:9px 15px;font:800 .82rem/1 Inter,system-ui,sans-serif;cursor:pointer}.dashboard-controls button:disabled{opacity:.42;cursor:default}.hero .actions{margin-top:60px;transform:translateY(-42px)}@media(max-width:800px){.hero .actions{margin-top:48px;transform:translateY(-28px)}.dashboard-modal{width:100%;height:100%;max-height:none;border-radius:0}.dashboard-controls span{font-size:.72rem}.dashboard-stage.is-zoomed img{transform:scale(2.35)}}@media(prefers-reduced-motion:reduce){.dashboard-stage img{transition:none}}

/* Corrected recommendation portraits */
.recommendation-modal-avatar{flex:0 0 90px;width:90px;height:90px;overflow:hidden;border:3px solid var(--cyan);border-radius:50%;background:#fff}.recommendation-modal-profile .recommendation-modal-avatar img{display:block;width:100%;height:100%;border:0;border-radius:0;object-fit:cover;object-position:center;transform:scale(1.18);transform-origin:50% 42%}.recommendation-modal-profile .rec-photo-05,.recommendation-modal-profile .rec-photo-07,.recommendation-modal-profile .rec-photo-08{transform:scale(1.35)}.recommendation-modal-profile .rec-photo-12{transform:scale(2.15);transform-origin:50% 27%}.recommendation-modal-profile .rec-photo-14{transform:scale(2.1);transform-origin:50% 25%}.recommendation-modal-profile .rec-photo-19{transform:scale(1.75);transform-origin:50% 38%}.recommendation-modal-profile .rec-photo-20{transform:scale(1.7);transform-origin:50% 62%}@media(max-width:600px){.recommendation-modal-avatar{flex-basis:72px;width:72px;height:72px}}
