:root{--bg:#091116;--panel:#101a20;--ink:#f4f0f1;--muted:#a3989d;--mint:#a9ded6;--lime:#f2a8b8;--line:rgba(169,222,214,.16);--sans:Inter,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 12% 7%,rgba(242,168,184,.06),transparent 30%),radial-gradient(circle at 88% 76%,rgba(169,222,214,.035),transparent 34%),var(--bg);color:var(--ink);font-family:var(--sans);font-weight:400}.wrap{width:min(1180px,calc(100% - 64px));margin-inline:auto}a{color:inherit;text-decoration:none}
.site-header{position:relative;z-index:20;height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-size:11px;font-weight:700;letter-spacing:.14em}.brand b{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--mint);color:var(--mint);font-size:10px}.site-header nav{display:flex;gap:34px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.site-header nav a:hover{color:var(--lime)}.header-contact{border:1px solid rgba(242,168,184,.5);padding:10px 15px;color:var(--lime);font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.hero{position:relative;z-index:4;min-height:calc(100svh - 86px);display:grid;grid-template-columns:250px minmax(0,1fr);align-items:center;gap:70px;padding-block:70px 110px}.portrait-wrap{align-self:center}.portrait-wrap img{display:block;width:220px;aspect-ratio:1;object-fit:cover;filter:saturate(.78) contrast(1.02);border:1px solid rgba(242,168,184,.32);box-shadow:18px 18px 0 rgba(242,168,184,.045)}.portrait-wrap span{display:block;margin-top:18px;color:#786b70;font-size:9px;text-transform:uppercase;letter-spacing:.16em}.hero-copy{max-width:760px}.eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 26px;color:var(--mint);font-size:10px;text-transform:uppercase;letter-spacing:.16em}.eyebrow i{width:28px;height:1px;background:var(--lime);box-shadow:0 0 10px var(--lime)}h1{margin:0;font-size:clamp(66px,7.4vw,108px);font-weight:500;line-height:.89;letter-spacing:-.065em}h1 em{font-style:normal;color:var(--lime)}.lede{max-width:670px;margin:34px 0 0;color:#b9aaae;font-size:19px;line-height:1.65}.actions{display:flex;align-items:center;gap:26px;margin-top:40px}.actions a{font-size:10px;text-transform:uppercase;letter-spacing:.12em}.primary{display:flex;gap:30px;padding:16px 19px;background:var(--lime);color:#211217;font-weight:700}.secondary{padding-bottom:8px;border-bottom:1px solid rgba(169,222,214,.3);color:var(--mint)}
.sphere-stage{position:fixed;z-index:1;right:-13vw;top:50%;width:min(60vw,760px);height:min(60vw,760px);transform:translateY(-50%);pointer-events:none;opacity:.24;perspective:1000px;mask-image:radial-gradient(circle,#000 45%,transparent 74%)}.sphere-stage::before,.sphere-stage::after{content:"";position:absolute;inset:8%;border:1px solid var(--mint);border-radius:50%}.sphere-stage::after{inset:22%;border-color:var(--lime);transform:rotate(55deg) scaleY(.36)}.sphere{position:absolute;inset:13%;transform-style:preserve-3d;border:1px solid rgba(159,227,216,.8);border-radius:50%;transition:transform .15s linear;box-shadow:inset 0 0 65px rgba(159,227,216,.08),0 0 60px rgba(159,227,216,.04)}.sphere::before,.sphere::after{content:"";position:absolute;inset:0;border:1px solid rgba(159,227,216,.42);border-radius:50%;transform:rotateX(62deg)}.sphere::after{transform:rotateY(62deg)}.sphere span{position:absolute;left:50%;top:50%;padding:6px 9px;background:rgba(7,17,22,.86);border:1px solid rgba(159,227,216,.38);color:var(--mint);font-size:10px;letter-spacing:.14em;transform-style:preserve-3d;transform:rotateY(var(--y)) rotateX(var(--x)) translateZ(230px) rotateX(calc(-1 * var(--x))) rotateY(calc(-1 * var(--y)));white-space:nowrap}
@media(max-width:800px){.wrap{width:min(100% - 36px,650px)}.site-header{height:72px}.site-header nav{display:none}.hero{grid-template-columns:1fr;gap:42px;padding-block:58px 120px}.portrait-wrap img{width:150px}.hero-copy{max-width:620px}h1{font-size:clamp(54px,15vw,82px)}.lede{font-size:16px}.sphere-stage{width:620px;height:620px;right:-430px;opacity:.17}.sphere span{transform:rotateY(var(--y)) rotateX(var(--x)) translateZ(190px) rotateX(calc(-1 * var(--x))) rotateY(calc(-1 * var(--y)))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sphere{transition:none}}

.section{position:relative;z-index:4;padding-block:clamp(100px,13vw,170px)}.section-label{margin:0;color:#647b78;font-size:9px;text-transform:uppercase;letter-spacing:.18em}.section-title h2,.section-head h2,.contact h2{margin:0;font-size:clamp(43px,5.2vw,72px);font-weight:500;line-height:.98;letter-spacing:-.05em}.section-title h2 em,.section-head h2 em,.contact h2 em{font-style:normal;color:var(--mint)}
.profile{display:grid;grid-template-columns:145px .9fr 1fr;gap:52px;border-top:1px solid var(--line)}.profile-copy p{margin:0 0 24px;color:#91a3a0;font-size:16px;line-height:1.75}.section-head{display:grid;grid-template-columns:145px 1fr;gap:52px;margin-bottom:84px}.section-head>div>p{max-width:640px;margin:25px 0 0;color:#7f9390;font-size:15px;line-height:1.7}
.experience{padding-top:70px}.timeline{border-top:1px solid var(--line)}.role{position:relative;display:grid;grid-template-columns:145px 1fr;gap:52px;padding:54px 80px 54px 0;border-bottom:1px solid var(--line)}.role-year{color:#738885;font-size:10px;letter-spacing:.08em}.meta{margin:0 0 12px;color:#667f7c;font-size:9px;text-transform:uppercase;letter-spacing:.15em}.role h3{margin:0;font-size:clamp(28px,3vw,42px);font-weight:500;letter-spacing:-.04em}.company{margin:9px 0 22px;color:var(--mint);font-size:12px}.role-content>p:last-of-type{max-width:760px;color:#899b99;font-size:14px;line-height:1.7}.role ul{display:flex;flex-wrap:wrap;gap:7px;margin:23px 0 0;padding:0;list-style:none}.role li{border:1px solid var(--line);padding:7px 9px;color:#788d8a;font-size:9px;text-transform:uppercase;letter-spacing:.06em}.count{position:absolute;right:8px;top:50px;color:rgba(159,227,216,.12);font-size:58px;font-weight:300}
.expertise{background:rgba(11,27,33,.82);border-block:1px solid var(--line)}.skill-grid{display:grid;grid-template-columns:repeat(3,1fr)}.skill-card{min-height:470px;padding:34px;border:1px solid var(--line);margin-left:-1px;display:flex;flex-direction:column;background:rgba(7,17,22,.62)}.skill-card.accent{border-color:rgba(199,245,111,.32)}.skill-card>span{color:#617975;font-size:9px;letter-spacing:.15em}.skill-card h3{margin:0 0 15px;font-size:23px;font-weight:500;letter-spacing:-.03em}.skill-card>p{margin:0;color:#7f9390;font-size:13px;line-height:1.65}.skill-card ul{margin:auto 0 0;padding:20px 0 0;border-top:1px solid var(--line);list-style:none}.skill-card li{margin:8px 0;color:#728885;font-size:9px;text-transform:uppercase;letter-spacing:.08em}.skill-card li::before{content:"+";margin-right:8px;color:var(--lime)}.skill-mark{position:relative;width:130px;height:105px;margin:38px auto}.skill-mark i{position:absolute;display:block;border:1px solid rgba(159,227,216,.55)}.mark-one i{width:62px;height:62px;top:20px;left:34px;border-radius:50%}.mark-one i:nth-child(2){transform:translateX(-23px)}.mark-one i:nth-child(3){transform:translateX(23px);border-color:var(--lime)}.mark-two i{width:62px;height:62px;top:20px;left:34px;transform:rotate(45deg)}.mark-two i:nth-child(2){transform:rotate(45deg) scale(.7);border-color:var(--lime)}.mark-two i:nth-child(3){transform:rotate(45deg) scale(.32);background:var(--lime)}.mark-three i{width:34px;height:34px;top:10px;left:48px;border-radius:50%}.mark-three i:nth-child(2){width:70px;height:36px;top:58px;left:30px;border-radius:50% 50% 0 0}.mark-three i:nth-child(3){width:96px;top:101px;left:17px;border-color:var(--lime)}
.credential-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:70px}.certificate-list{border-top:1px solid var(--line)}.certificate-list>div{display:grid;grid-template-columns:50px 1fr auto;align-items:center;min-height:76px;border-bottom:1px solid var(--line)}.certificate-list b{color:var(--lime);font-size:9px}.certificate-list p{margin:0;font-size:14px}.certificate-list small{color:#667b78;font-size:8px;text-transform:uppercase;letter-spacing:.08em}.toolkit{border:1px solid var(--line);padding:35px;background:rgba(12,26,32,.7)}.toolkit h3{margin:22px 0 30px;font-size:26px;font-weight:500;line-height:1.2}.toolkit>div{display:flex;flex-wrap:wrap;gap:7px}.toolkit b{padding:8px 10px;border:1px solid var(--line);color:#8ba09d;font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:400}.toolkit>p{margin:32px 0 0;padding-top:23px;border-top:1px solid var(--line);color:#718582;font-size:12px;line-height:1.7}
.education{display:grid;grid-template-columns:145px .85fr 1fr;gap:52px;border-top:1px solid var(--line)}.education-list article{padding:0 0 30px;margin-bottom:30px;border-bottom:1px solid var(--line)}.education-list span{color:#687f7c;font-size:8px;text-transform:uppercase;letter-spacing:.1em}.education-list h3{margin:10px 0 0;font-size:19px;font-weight:500;line-height:1.4}.education-list p{color:#708481;font-size:12px}
.contact{min-height:720px;padding-bottom:100px;background:rgba(10,25,31,.9);border-top:1px solid rgba(199,245,111,.18)}.contact-inner{position:relative;z-index:2}.availability{margin:60px 0 24px;color:#7b918e;font-size:9px;text-transform:uppercase;letter-spacing:.11em}.availability i{display:inline-block;width:7px;height:7px;margin-right:9px;border-radius:50%;background:var(--lime);box-shadow:0 0 10px var(--lime)}.contact h2{font-size:clamp(58px,8vw,108px)}.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:50px}.contact-links a{padding-bottom:6px;border-bottom:1px solid rgba(159,227,216,.3);color:var(--mint);font-size:15px}.contact-links span{margin-left:14px;color:var(--lime)}.focus{max-width:650px;margin-top:42px;color:#627976;font-size:9px;text-transform:uppercase;letter-spacing:.08em;line-height:1.8}.contact footer{position:absolute;z-index:3;bottom:0;left:50%;transform:translateX(-50%);display:flex;justify-content:space-between;padding:26px 0;border-top:1px solid var(--line);color:#5c7471;font-size:8px;text-transform:uppercase;letter-spacing:.12em}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}.sphere span.active{border-color:var(--lime);color:var(--lime);box-shadow:0 0 16px rgba(199,245,111,.22);opacity:1}
@media(max-width:800px){.section{padding-block:88px}.profile,.education{grid-template-columns:1fr;gap:30px}.section-head{grid-template-columns:1fr;gap:28px;margin-bottom:54px}.role{grid-template-columns:1fr;gap:20px;padding:40px 46px 40px 0}.count{top:38px;font-size:40px}.skill-grid{grid-template-columns:1fr}.skill-card{min-height:auto;margin:-1px 0 0}.skill-mark{margin:30px auto}.credential-grid{grid-template-columns:1fr;gap:42px}.certificate-list>div{grid-template-columns:36px 1fr;padding:17px 0}.certificate-list small{grid-column:2;margin-top:6px}.contact{min-height:690px}.contact footer{width:calc(100% - 36px)}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* Persistent Three.js operations field */
.sphere-stage{position:fixed;z-index:1;left:50%;right:auto;top:50%;width:min(96vw,1280px);height:min(96vw,1280px);transform:translate(-50%,-50%);pointer-events:none;opacity:1;perspective:none;mask-image:radial-gradient(circle,#000 48%,rgba(0,0,0,.78) 64%,transparent 76%)}
.sphere-stage::before,.sphere-stage::after{display:none}.three-field,.three-field canvas,.orbital-keywords{position:absolute;inset:0;width:100%;height:100%}.three-field{opacity:.3}.three-field canvas{display:block}.orbital-keywords{overflow:visible}.orbital-keywords span{--relevance:0;position:absolute;left:0;top:0;padding:5px 8px;transform:translate(-50%,-50%);border:1px solid rgba(159,227,216,.18);background:rgba(7,17,22,.72);color:#78918d;font-size:clamp(7px,.62vw,10px);font-weight:600;line-height:1;letter-spacing:.12em;white-space:nowrap;opacity:0;transition:color .18s linear,border-color .18s linear,background .18s linear,box-shadow .18s linear,opacity .18s linear,transform .15s linear}.orbital-keywords span.front{opacity:.5}.orbital-keywords span.relevant{opacity:calc(.34 + var(--relevance) * .24);color:rgba(213,245,158,calc(.64 + var(--relevance) * .32));border-color:rgba(199,245,111,calc(.18 + var(--relevance) * .42));background:linear-gradient(rgba(199,245,111,calc(var(--relevance) * .22)),rgba(199,245,111,calc(var(--relevance) * .22))),rgba(7,17,22,.76);box-shadow:0 0 calc(5px + var(--relevance) * 14px) rgba(199,245,111,calc(var(--relevance) * .18))}.system-tag{position:absolute;right:25%;bottom:17%;color:rgba(159,227,216,.32);font-size:8px;letter-spacing:.16em}
@media(max-width:800px){.sphere-stage{left:50%;right:auto;width:145vw;height:145vw;opacity:1}.three-field{opacity:.2}.orbital-keywords span{font-size:7px;padding:4px 6px}.orbital-keywords span.front{opacity:.5}.orbital-keywords span.relevant{opacity:calc(.34 + var(--relevance) * .24)}.system-tag{display:none}}

/* Spacious experience chapters: one role dominates each viewport */
.experience .role{min-height:82vh;align-items:center;padding-top:clamp(96px,12vh,150px);padding-bottom:clamp(96px,12vh,150px)}
.experience .role-year{align-self:center;font-size:11px}.experience .role h3{font-size:clamp(38px,4.4vw,62px);line-height:1}.experience .company{margin-top:14px;margin-bottom:30px;font-size:13px}.experience .role-content>p:last-of-type{max-width:820px;font-size:16px;line-height:1.8}.experience .role ul{gap:10px;margin-top:34px}.experience .role li{padding:10px 12px;font-size:10px}.experience .count{top:clamp(96px,12vh,150px);font-size:84px}
@media(max-width:800px){.experience .role{min-height:72vh;padding-top:72px;padding-bottom:72px}.experience .role h3{font-size:clamp(34px,10vw,50px)}.experience .role-content>p:last-of-type{font-size:15px}.experience .count{top:68px;font-size:52px}}

/* Soft blush refinement */
.skill-card.accent{border-color:rgba(242,168,184,.32)}
.contact{background:linear-gradient(135deg,rgba(242,168,184,.025),transparent 44%),rgba(12,24,30,.92);border-top-color:rgba(242,168,184,.18)}
.sphere span.active{box-shadow:0 0 16px rgba(242,168,184,.2)}
.orbital-keywords span.relevant{color:rgba(250,211,219,calc(.64 + var(--relevance) * .32));border-color:rgba(242,168,184,calc(.18 + var(--relevance) * .42));background:linear-gradient(rgba(242,168,184,calc(var(--relevance) * .19)),rgba(242,168,184,calc(var(--relevance) * .19))),rgba(9,17,22,.76);box-shadow:0 0 calc(5px + var(--relevance) * 14px) rgba(242,168,184,calc(var(--relevance) * .16))}

/* Centered soft-shell cards keep the CV content above the orbital field */
.hero-copy,.profile-copy,.role-content,.education-list,.certificate-list,.toolkit,.contact-inner{position:relative;padding:clamp(24px,3vw,40px);border:1px solid rgba(169,222,214,.11);border-radius:36px 36px 12px 36px;background:linear-gradient(145deg,rgba(16,26,32,.88),rgba(9,17,22,.72));box-shadow:0 20px 56px rgba(3,9,12,.22),inset 0 1px 0 rgba(255,255,255,.025);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.hero-copy{justify-self:center;width:min(100%,780px)}
.role:nth-child(even) .role-content,.certificate-list{border-radius:36px 12px 36px 36px}
@media(max-width:800px){.hero-copy,.profile-copy,.role-content,.education-list,.certificate-list,.toolkit,.contact-inner{padding:22px;border-radius:26px 26px 9px 26px;background:linear-gradient(145deg,rgba(16,26,32,.91),rgba(9,17,22,.78));box-shadow:0 14px 36px rgba(3,9,12,.2);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}.role:nth-child(even) .role-content,.certificate-list{border-radius:26px 9px 26px 26px}}
